From 4e55d7c02692251e1bd8065cd196a527f92478c8 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 20 Jul 2023 23:28:05 +0900 Subject: [PATCH 01/80] Parse const generic parameters --- src/coreclr/ilasm/asmparse.y | 4 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 13812 ++++++++++++++++------ src/coreclr/ilasm/typar.hpp | 7 + src/coreclr/inc/il_kywd.h | 1 + 4 files changed, 10104 insertions(+), 3720 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 73ef9a892b5ef..41fef5232e0a7 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -142,6 +142,7 @@ /* newly added tokens go here */ %token CONSTRAINT_ +%token CONST_ /* nonTerminals */ %type dottedName id methodName atOpt slashedName @@ -495,7 +496,8 @@ typarAttribs : /* EMPTY */ { $$ = 0; } | typarAttrib typarAttribs { $$ = $1 | $2; } ; -typars : typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} +typars : CONST_ type dottedName typarsRest {$$ = new TyParList($2, NULL, $3, $4); } + | typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} | typarAttribs dottedName typarsRest {$$ = new TyParList($1, NULL, $2, $3);} ; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 6bf91f56c57f4..55b8cdb89b762 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -1,24 +1,32 @@ +#line 8 "btyaccpa.ske" + /* - * Created by Microsoft VCBU Internal YACC from "asmparse.y" - */ +** @(#)btyaccpar, based on byacc 1.8 (Berkeley) +*/ +#define YYBTYACC 1 + +#include +#include +#include +#include + +typedef int Yshort; #line 2 "asmparse.y" -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. +/* Licensed to the .NET Foundation under one or more agreements.*/ +/* The .NET Foundation licenses this file to you under the MIT license.*/ -// -// File asmparse.y -// +/**/ +/* File asmparse.y*/ +/**/ #include "ilasmpch.h" #include "grammar_before.cpp" #line 15 "asmparse.y" - -#define UNION 1 -typedef union { +typedef union { CorRegTypeAttr classAttr; CorMethodAttr methAttr; CorFieldAttr fieldAttr; @@ -38,7 +46,7 @@ typedef union { char* string; BinStr* binstr; Labels* labels; - Instr* instr; // instruction opcode + Instr* instr; /* instruction opcode*/ NVPair* pair; pTyParList typarlist; mdToken token; @@ -46,506 +54,1007 @@ typedef union { CustomDescr* cad; unsigned short opcode; } YYSTYPE; -# define ERROR_ 257 -# define BAD_COMMENT_ 258 -# define BAD_LITERAL_ 259 -# define ID 260 -# define DOTTEDNAME 261 -# define QSTRING 262 -# define SQSTRING 263 -# define INT32 264 -# define INT64 265 -# define FLOAT64 266 -# define HEXBYTE 267 -# define TYPEDEF_T 268 -# define TYPEDEF_M 269 -# define TYPEDEF_F 270 -# define TYPEDEF_TS 271 -# define TYPEDEF_MR 272 -# define TYPEDEF_CA 273 -# define DCOLON 274 -# define ELLIPSIS 275 -# define VOID_ 276 -# define BOOL_ 277 -# define CHAR_ 278 -# define UNSIGNED_ 279 -# define INT_ 280 -# define INT8_ 281 -# define INT16_ 282 -# define INT32_ 283 -# define INT64_ 284 -# define FLOAT_ 285 -# define FLOAT32_ 286 -# define FLOAT64_ 287 -# define BYTEARRAY_ 288 -# define UINT_ 289 -# define UINT8_ 290 -# define UINT16_ 291 -# define UINT32_ 292 -# define UINT64_ 293 -# define FLAGS_ 294 -# define CALLCONV_ 295 -# define MDTOKEN_ 296 -# define OBJECT_ 297 -# define STRING_ 298 -# define NULLREF_ 299 -# define DEFAULT_ 300 -# define CDECL_ 301 -# define VARARG_ 302 -# define STDCALL_ 303 -# define THISCALL_ 304 -# define FASTCALL_ 305 -# define CLASS_ 306 -# define BYREFLIKE_ 307 -# define GENCONSTRAINT_ 308 -# define TYPEDREF_ 309 -# define UNMANAGED_ 310 -# define FINALLY_ 311 -# define HANDLER_ 312 -# define CATCH_ 313 -# define FILTER_ 314 -# define FAULT_ 315 -# define EXTENDS_ 316 -# define IMPLEMENTS_ 317 -# define TO_ 318 -# define AT_ 319 -# define TLS_ 320 -# define TRUE_ 321 -# define FALSE_ 322 -# define _INTERFACEIMPL 323 -# define VALUE_ 324 -# define VALUETYPE_ 325 -# define NATIVE_ 326 -# define INSTANCE_ 327 -# define SPECIALNAME_ 328 -# define FORWARDER_ 329 -# define STATIC_ 330 -# define PUBLIC_ 331 -# define PRIVATE_ 332 -# define FAMILY_ 333 -# define FINAL_ 334 -# define SYNCHRONIZED_ 335 -# define INTERFACE_ 336 -# define SEALED_ 337 -# define NESTED_ 338 -# define ABSTRACT_ 339 -# define AUTO_ 340 -# define SEQUENTIAL_ 341 -# define EXPLICIT_ 342 -# define ANSI_ 343 -# define UNICODE_ 344 -# define AUTOCHAR_ 345 -# define IMPORT_ 346 -# define ENUM_ 347 -# define VIRTUAL_ 348 -# define NOINLINING_ 349 -# define AGGRESSIVEINLINING_ 350 -# define NOOPTIMIZATION_ 351 -# define AGGRESSIVEOPTIMIZATION_ 352 -# define UNMANAGEDEXP_ 353 -# define BEFOREFIELDINIT_ 354 -# define STRICT_ 355 -# define RETARGETABLE_ 356 -# define WINDOWSRUNTIME_ 357 -# define NOPLATFORM_ 358 -# define METHOD_ 359 -# define FIELD_ 360 -# define PINNED_ 361 -# define MODREQ_ 362 -# define MODOPT_ 363 -# define SERIALIZABLE_ 364 -# define PROPERTY_ 365 -# define TYPE_ 366 -# define ASSEMBLY_ 367 -# define FAMANDASSEM_ 368 -# define FAMORASSEM_ 369 -# define PRIVATESCOPE_ 370 -# define HIDEBYSIG_ 371 -# define NEWSLOT_ 372 -# define RTSPECIALNAME_ 373 -# define PINVOKEIMPL_ 374 -# define _CTOR 375 -# define _CCTOR 376 -# define LITERAL_ 377 -# define NOTSERIALIZED_ 378 -# define INITONLY_ 379 -# define REQSECOBJ_ 380 -# define CIL_ 381 -# define OPTIL_ 382 -# define MANAGED_ 383 -# define FORWARDREF_ 384 -# define PRESERVESIG_ 385 -# define RUNTIME_ 386 -# define INTERNALCALL_ 387 -# define _IMPORT 388 -# define NOMANGLE_ 389 -# define LASTERR_ 390 -# define WINAPI_ 391 -# define AS_ 392 -# define BESTFIT_ 393 -# define ON_ 394 -# define OFF_ 395 -# define CHARMAPERROR_ 396 -# define INSTR_NONE 397 -# define INSTR_VAR 398 -# define INSTR_I 399 -# define INSTR_I8 400 -# define INSTR_R 401 -# define INSTR_BRTARGET 402 -# define INSTR_METHOD 403 -# define INSTR_FIELD 404 -# define INSTR_TYPE 405 -# define INSTR_STRING 406 -# define INSTR_SIG 407 -# define INSTR_TOK 408 -# define INSTR_SWITCH 409 -# define _CLASS 410 -# define _NAMESPACE 411 -# define _METHOD 412 -# define _FIELD 413 -# define _DATA 414 -# define _THIS 415 -# define _BASE 416 -# define _NESTER 417 -# define _EMITBYTE 418 -# define _TRY 419 -# define _MAXSTACK 420 -# define _LOCALS 421 -# define _ENTRYPOINT 422 -# define _ZEROINIT 423 -# define _EVENT 424 -# define _ADDON 425 -# define _REMOVEON 426 -# define _FIRE 427 -# define _OTHER 428 -# define _PROPERTY 429 -# define _SET 430 -# define _GET 431 -# define _PERMISSION 432 -# define _PERMISSIONSET 433 -# define REQUEST_ 434 -# define DEMAND_ 435 -# define ASSERT_ 436 -# define DENY_ 437 -# define PERMITONLY_ 438 -# define LINKCHECK_ 439 -# define INHERITCHECK_ 440 -# define REQMIN_ 441 -# define REQOPT_ 442 -# define REQREFUSE_ 443 -# define PREJITGRANT_ 444 -# define PREJITDENY_ 445 -# define NONCASDEMAND_ 446 -# define NONCASLINKDEMAND_ 447 -# define NONCASINHERITANCE_ 448 -# define _LINE 449 -# define P_LINE 450 -# define _LANGUAGE 451 -# define _CUSTOM 452 -# define INIT_ 453 -# define _SIZE 454 -# define _PACK 455 -# define _VTABLE 456 -# define _VTFIXUP 457 -# define FROMUNMANAGED_ 458 -# define CALLMOSTDERIVED_ 459 -# define _VTENTRY 460 -# define RETAINAPPDOMAIN_ 461 -# define _FILE 462 -# define NOMETADATA_ 463 -# define _HASH 464 -# define _ASSEMBLY 465 -# define _PUBLICKEY 466 -# define _PUBLICKEYTOKEN 467 -# define ALGORITHM_ 468 -# define _VER 469 -# define _LOCALE 470 -# define EXTERN_ 471 -# define _MRESOURCE 472 -# define _MODULE 473 -# define _EXPORT 474 -# define LEGACY_ 475 -# define LIBRARY_ 476 -# define X86_ 477 -# define AMD64_ 478 -# define ARM_ 479 -# define ARM64_ 480 -# define MARSHAL_ 481 -# define CUSTOM_ 482 -# define SYSSTRING_ 483 -# define FIXED_ 484 -# define VARIANT_ 485 -# define CURRENCY_ 486 -# define SYSCHAR_ 487 -# define DECIMAL_ 488 -# define DATE_ 489 -# define BSTR_ 490 -# define TBSTR_ 491 -# define LPSTR_ 492 -# define LPWSTR_ 493 -# define LPTSTR_ 494 -# define OBJECTREF_ 495 -# define IUNKNOWN_ 496 -# define IDISPATCH_ 497 -# define STRUCT_ 498 -# define SAFEARRAY_ 499 -# define BYVALSTR_ 500 -# define LPVOID_ 501 -# define ANY_ 502 -# define ARRAY_ 503 -# define LPSTRUCT_ 504 -# define IIDPARAM_ 505 -# define IN_ 506 -# define OUT_ 507 -# define OPT_ 508 -# define _PARAM 509 -# define _OVERRIDE 510 -# define WITH_ 511 -# define NULL_ 512 -# define HRESULT_ 513 -# define CARRAY_ 514 -# define USERDEFINED_ 515 -# define RECORD_ 516 -# define FILETIME_ 517 -# define BLOB_ 518 -# define STREAM_ 519 -# define STORAGE_ 520 -# define STREAMED_OBJECT_ 521 -# define STORED_OBJECT_ 522 -# define BLOB_OBJECT_ 523 -# define CF_ 524 -# define CLSID_ 525 -# define VECTOR_ 526 -# define _SUBSYSTEM 527 -# define _CORFLAGS 528 -# define ALIGNMENT_ 529 -# define _IMAGEBASE 530 -# define _STACKRESERVE 531 -# define _TYPEDEF 532 -# define _TEMPLATE 533 -# define _TYPELIST 534 -# define _MSCORLIB 535 -# define P_DEFINE 536 -# define P_UNDEF 537 -# define P_IFDEF 538 -# define P_IFNDEF 539 -# define P_ELSE 540 -# define P_ENDIF 541 -# define P_INCLUDE 542 -# define CONSTRAINT_ 543 -#define yyclearin yychar = -1 -#define yyerrok yyerrflag = 0 -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 150 -#endif -YYSTYPE yylval, yyval; -#ifndef YYFARDATA -#define YYFARDATA /*nothing*/ -#endif -#if ! defined YYSTATIC -#define YYSTATIC /*nothing*/ -#endif -#if ! defined YYCONST -#define YYCONST /*nothing*/ -#endif -#ifndef YYACT -#define YYACT yyact -#endif -#ifndef YYPACT -#define YYPACT yypact -#endif -#ifndef YYPGO -#define YYPGO yypgo -#endif -#ifndef YYR1 -#define YYR1 yyr1 -#endif -#ifndef YYR2 -#define YYR2 yyr2 -#endif -#ifndef YYCHK -#define YYCHK yychk -#endif -#ifndef YYDEF -#define YYDEF yydef -#endif -#ifndef YYV -#define YYV yyv -#endif -#ifndef YYS -#define YYS yys -#endif -#ifndef YYLOCAL -#define YYLOCAL -#endif -#ifndef YYR_T -#define YYR_T int -#endif -typedef YYR_T yyr_t; -#ifndef YYEXIND_T -#define YYEXIND_T unsigned int -#endif -typedef YYEXIND_T yyexind_t; -#ifndef YYOPTTIME -#define YYOPTTIME 0 -#endif -# define YYERRCODE 256 - -#line 2063 "asmparse.y" - - -#include "grammar_after.cpp" -YYSTATIC YYCONST short yyexca[] = { -#if !(YYOPTTIME) --1, 1, -#endif - 0, -1, - -2, 0, -#if !(YYOPTTIME) --1, 452, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 622, -#endif - 274, 557, - 47, 557, - -2, 232, -#if !(YYOPTTIME) --1, 643, -#endif - 40, 312, - 60, 312, - -2, 557, -#if !(YYOPTTIME) --1, 665, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 690, -#endif - 274, 557, - 47, 557, - -2, 518, -#if !(YYOPTTIME) --1, 811, -#endif - 123, 237, - -2, 557, -#if !(YYOPTTIME) --1, 838, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 963, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 997, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 998, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1328, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1329, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1336, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1344, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1470, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1502, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1569, -#endif - 41, 540, - -2, 313, -#if !(YYOPTTIME) --1, 1586, -#endif - 41, 540, - -2, 313, - +#define YYSTYPE YYSTYPE +#line 59 "asmparse.cpp.tab.c" +#define ERROR_ 257 +#define BAD_COMMENT_ 258 +#define BAD_LITERAL_ 259 +#define ID 260 +#define DOTTEDNAME 261 +#define QSTRING 262 +#define SQSTRING 263 +#define INT32 264 +#define INT64 265 +#define FLOAT64 266 +#define HEXBYTE 267 +#define TYPEDEF_T 268 +#define TYPEDEF_M 269 +#define TYPEDEF_F 270 +#define TYPEDEF_TS 271 +#define TYPEDEF_MR 272 +#define TYPEDEF_CA 273 +#define DCOLON 274 +#define ELLIPSIS 275 +#define VOID_ 276 +#define BOOL_ 277 +#define CHAR_ 278 +#define UNSIGNED_ 279 +#define INT_ 280 +#define INT8_ 281 +#define INT16_ 282 +#define INT32_ 283 +#define INT64_ 284 +#define FLOAT_ 285 +#define FLOAT32_ 286 +#define FLOAT64_ 287 +#define BYTEARRAY_ 288 +#define UINT_ 289 +#define UINT8_ 290 +#define UINT16_ 291 +#define UINT32_ 292 +#define UINT64_ 293 +#define FLAGS_ 294 +#define CALLCONV_ 295 +#define MDTOKEN_ 296 +#define OBJECT_ 297 +#define STRING_ 298 +#define NULLREF_ 299 +#define DEFAULT_ 300 +#define CDECL_ 301 +#define VARARG_ 302 +#define STDCALL_ 303 +#define THISCALL_ 304 +#define FASTCALL_ 305 +#define CLASS_ 306 +#define BYREFLIKE_ 307 +#define TYPEDREF_ 308 +#define UNMANAGED_ 309 +#define FINALLY_ 310 +#define HANDLER_ 311 +#define CATCH_ 312 +#define FILTER_ 313 +#define FAULT_ 314 +#define EXTENDS_ 315 +#define IMPLEMENTS_ 316 +#define TO_ 317 +#define AT_ 318 +#define TLS_ 319 +#define TRUE_ 320 +#define FALSE_ 321 +#define _INTERFACEIMPL 322 +#define VALUE_ 323 +#define VALUETYPE_ 324 +#define NATIVE_ 325 +#define INSTANCE_ 326 +#define SPECIALNAME_ 327 +#define FORWARDER_ 328 +#define STATIC_ 329 +#define PUBLIC_ 330 +#define PRIVATE_ 331 +#define FAMILY_ 332 +#define FINAL_ 333 +#define SYNCHRONIZED_ 334 +#define INTERFACE_ 335 +#define SEALED_ 336 +#define NESTED_ 337 +#define ABSTRACT_ 338 +#define AUTO_ 339 +#define SEQUENTIAL_ 340 +#define EXPLICIT_ 341 +#define ANSI_ 342 +#define UNICODE_ 343 +#define AUTOCHAR_ 344 +#define IMPORT_ 345 +#define ENUM_ 346 +#define VIRTUAL_ 347 +#define NOINLINING_ 348 +#define AGGRESSIVEINLINING_ 349 +#define NOOPTIMIZATION_ 350 +#define AGGRESSIVEOPTIMIZATION_ 351 +#define UNMANAGEDEXP_ 352 +#define BEFOREFIELDINIT_ 353 +#define STRICT_ 354 +#define RETARGETABLE_ 355 +#define WINDOWSRUNTIME_ 356 +#define NOPLATFORM_ 357 +#define METHOD_ 358 +#define FIELD_ 359 +#define PINNED_ 360 +#define MODREQ_ 361 +#define MODOPT_ 362 +#define SERIALIZABLE_ 363 +#define PROPERTY_ 364 +#define TYPE_ 365 +#define ASSEMBLY_ 366 +#define FAMANDASSEM_ 367 +#define FAMORASSEM_ 368 +#define PRIVATESCOPE_ 369 +#define HIDEBYSIG_ 370 +#define NEWSLOT_ 371 +#define RTSPECIALNAME_ 372 +#define PINVOKEIMPL_ 373 +#define _CTOR 374 +#define _CCTOR 375 +#define LITERAL_ 376 +#define NOTSERIALIZED_ 377 +#define INITONLY_ 378 +#define REQSECOBJ_ 379 +#define CIL_ 380 +#define OPTIL_ 381 +#define MANAGED_ 382 +#define FORWARDREF_ 383 +#define PRESERVESIG_ 384 +#define RUNTIME_ 385 +#define INTERNALCALL_ 386 +#define _IMPORT 387 +#define NOMANGLE_ 388 +#define LASTERR_ 389 +#define WINAPI_ 390 +#define AS_ 391 +#define BESTFIT_ 392 +#define ON_ 393 +#define OFF_ 394 +#define CHARMAPERROR_ 395 +#define INSTR_NONE 396 +#define INSTR_VAR 397 +#define INSTR_I 398 +#define INSTR_I8 399 +#define INSTR_R 400 +#define INSTR_BRTARGET 401 +#define INSTR_METHOD 402 +#define INSTR_FIELD 403 +#define INSTR_TYPE 404 +#define INSTR_STRING 405 +#define INSTR_SIG 406 +#define INSTR_TOK 407 +#define INSTR_SWITCH 408 +#define _CLASS 409 +#define _NAMESPACE 410 +#define _METHOD 411 +#define _FIELD 412 +#define _DATA 413 +#define _THIS 414 +#define _BASE 415 +#define _NESTER 416 +#define _EMITBYTE 417 +#define _TRY 418 +#define _MAXSTACK 419 +#define _LOCALS 420 +#define _ENTRYPOINT 421 +#define _ZEROINIT 422 +#define _EVENT 423 +#define _ADDON 424 +#define _REMOVEON 425 +#define _FIRE 426 +#define _OTHER 427 +#define _PROPERTY 428 +#define _SET 429 +#define _GET 430 +#define _PERMISSION 431 +#define _PERMISSIONSET 432 +#define REQUEST_ 433 +#define DEMAND_ 434 +#define ASSERT_ 435 +#define DENY_ 436 +#define PERMITONLY_ 437 +#define LINKCHECK_ 438 +#define INHERITCHECK_ 439 +#define REQMIN_ 440 +#define REQOPT_ 441 +#define REQREFUSE_ 442 +#define PREJITGRANT_ 443 +#define PREJITDENY_ 444 +#define NONCASDEMAND_ 445 +#define NONCASLINKDEMAND_ 446 +#define NONCASINHERITANCE_ 447 +#define _LINE 448 +#define P_LINE 449 +#define _LANGUAGE 450 +#define _CUSTOM 451 +#define INIT_ 452 +#define _SIZE 453 +#define _PACK 454 +#define _VTABLE 455 +#define _VTFIXUP 456 +#define FROMUNMANAGED_ 457 +#define CALLMOSTDERIVED_ 458 +#define _VTENTRY 459 +#define RETAINAPPDOMAIN_ 460 +#define _FILE 461 +#define NOMETADATA_ 462 +#define _HASH 463 +#define _ASSEMBLY 464 +#define _PUBLICKEY 465 +#define _PUBLICKEYTOKEN 466 +#define ALGORITHM_ 467 +#define _VER 468 +#define _LOCALE 469 +#define EXTERN_ 470 +#define _MRESOURCE 471 +#define _MODULE 472 +#define _EXPORT 473 +#define LEGACY_ 474 +#define LIBRARY_ 475 +#define X86_ 476 +#define AMD64_ 477 +#define ARM_ 478 +#define ARM64_ 479 +#define MARSHAL_ 480 +#define CUSTOM_ 481 +#define SYSSTRING_ 482 +#define FIXED_ 483 +#define VARIANT_ 484 +#define CURRENCY_ 485 +#define SYSCHAR_ 486 +#define DECIMAL_ 487 +#define DATE_ 488 +#define BSTR_ 489 +#define TBSTR_ 490 +#define LPSTR_ 491 +#define LPWSTR_ 492 +#define LPTSTR_ 493 +#define OBJECTREF_ 494 +#define IUNKNOWN_ 495 +#define IDISPATCH_ 496 +#define STRUCT_ 497 +#define SAFEARRAY_ 498 +#define BYVALSTR_ 499 +#define LPVOID_ 500 +#define ANY_ 501 +#define ARRAY_ 502 +#define LPSTRUCT_ 503 +#define IIDPARAM_ 504 +#define IN_ 505 +#define OUT_ 506 +#define OPT_ 507 +#define _PARAM 508 +#define _OVERRIDE 509 +#define WITH_ 510 +#define NULL_ 511 +#define HRESULT_ 512 +#define CARRAY_ 513 +#define USERDEFINED_ 514 +#define RECORD_ 515 +#define FILETIME_ 516 +#define BLOB_ 517 +#define STREAM_ 518 +#define STORAGE_ 519 +#define STREAMED_OBJECT_ 520 +#define STORED_OBJECT_ 521 +#define BLOB_OBJECT_ 522 +#define CF_ 523 +#define CLSID_ 524 +#define VECTOR_ 525 +#define _SUBSYSTEM 526 +#define _CORFLAGS 527 +#define ALIGNMENT_ 528 +#define _IMAGEBASE 529 +#define _STACKRESERVE 530 +#define _TYPEDEF 531 +#define _TEMPLATE 532 +#define _TYPELIST 533 +#define _MSCORLIB 534 +#define P_DEFINE 535 +#define P_UNDEF 536 +#define P_IFDEF 537 +#define P_IFNDEF 538 +#define P_ELSE 539 +#define P_ENDIF 540 +#define P_INCLUDE 541 +#define CONSTRAINT_ 542 +#define CONST_ 543 +#define YYERRCODE 256 +static int yylhs[] = { -1, + 0, 0, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 135, 135, + 36, 36, 132, 132, 132, 2, 2, 1, 1, 1, + 9, 24, 24, 23, 23, 23, 133, 133, 133, 133, + 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 93, 93, 93, 93, 94, 94, 94, 94, 10, 11, + 73, 72, 72, 59, 61, 61, 61, 62, 62, 62, + 65, 65, 131, 131, 131, 60, 60, 60, 60, 60, + 60, 129, 129, 129, 118, 12, 12, 12, 12, 12, + 12, 117, 136, 112, 137, 138, 110, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 139, 139, 140, 140, 111, 111, + 141, 141, 56, 56, 57, 57, 69, 69, 18, 18, + 18, 18, 18, 18, 18, 19, 19, 68, 68, 68, + 67, 67, 58, 21, 21, 22, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 115, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 4, 4, 35, 35, 16, 16, + 75, 75, 75, 75, 75, 75, 75, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 8, 8, 76, + 74, 74, 74, 74, 74, 74, 143, 143, 81, 81, + 81, 144, 144, 149, 149, 149, 149, 149, 149, 149, + 149, 145, 82, 82, 82, 146, 146, 150, 150, 150, + 150, 150, 150, 150, 151, 38, 38, 34, 34, 152, + 113, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 3, 3, 3, 13, 13, 13, 13, 13, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 153, 114, 114, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 157, 158, 155, 160, 160, 159, 159, + 159, 162, 161, 161, 161, 161, 165, 165, 165, 168, + 163, 166, 167, 164, 164, 164, 116, 169, 169, 171, + 171, 171, 170, 170, 172, 172, 14, 14, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 174, 31, 31, 32, 32, 39, 39, 39, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 42, 42, 42, 43, + 43, 43, 47, 47, 46, 46, 45, 45, 44, 44, + 48, 48, 49, 49, 49, 50, 50, 50, 50, 51, + 51, 148, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 6, + 6, 6, 6, 6, 53, 53, 54, 54, 55, 55, + 25, 25, 26, 26, 27, 27, 27, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 5, 5, 71, + 71, 71, 71, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 20, 20, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 30, 30, 29, 29, 29, 29, 29, 130, 130, + 130, 130, 130, 130, 64, 64, 64, 63, 63, 87, + 87, 84, 84, 85, 17, 17, 37, 37, 37, 37, + 37, 37, 37, 37, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 175, + 175, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 120, 120, 88, 88, 89, 89, 176, 121, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 122, 122, 177, 177, 177, 66, 66, 178, 178, 178, + 178, 178, 178, 179, 181, 180, 123, 123, 124, 124, + 182, 182, 182, 182, 125, 147, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 126, 126, 183, 183, + 183, 183, 183, 183, 183, 127, 127, 92, 92, 92, + 128, 128, 184, 184, 184, 184, }; - -# define YYNPROD 846 -#if YYOPTTIME -YYSTATIC YYCONST yyexind_t yyexcaind[] = { +static int yylen[] = { 2, + 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 1, 1, 1, 2, 2, + 3, 2, 2, 1, 1, 1, 4, 1, 0, 2, + 1, 3, 2, 4, 6, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, + 4, 2, 3, 2, 2, 2, 1, 1, 2, 1, + 2, 4, 6, 3, 5, 7, 9, 3, 4, 7, + 1, 1, 1, 2, 0, 2, 2, 0, 6, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 3, 1, 2, 3, 7, 0, 2, 2, 2, 2, + 2, 3, 3, 2, 1, 4, 3, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 5, 0, 2, 0, 2, 0, 2, + 3, 1, 0, 1, 1, 3, 0, 3, 1, 1, + 1, 1, 1, 1, 4, 0, 2, 4, 4, 3, + 0, 2, 3, 0, 1, 5, 3, 4, 4, 4, + 1, 1, 1, 1, 1, 2, 2, 4, 13, 22, + 1, 1, 5, 3, 7, 5, 4, 7, 0, 2, + 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, + 2, 2, 2, 5, 0, 2, 0, 2, 0, 3, + 9, 9, 7, 7, 1, 1, 1, 2, 2, 1, + 4, 0, 1, 1, 2, 2, 2, 2, 1, 4, + 2, 5, 3, 2, 2, 1, 4, 3, 0, 2, + 2, 0, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 9, 0, 2, 2, 0, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 0, 4, 1, 3, 1, + 13, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 5, 8, 6, 5, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 4, 4, 4, 5, + 1, 1, 1, 0, 4, 4, 4, 4, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 5, 1, 0, 2, 2, 1, 2, + 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 4, 6, 4, 4, 11, 1, 5, 3, + 7, 5, 5, 3, 1, 2, 2, 1, 2, 4, + 4, 1, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 1, 1, 1, 4, 4, 2, 4, 2, 0, + 1, 1, 3, 1, 3, 1, 0, 3, 5, 4, + 3, 5, 5, 5, 5, 5, 5, 2, 2, 2, + 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, + 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, + 4, 3, 2, 0, 1, 1, 2, 1, 1, 1, + 1, 4, 4, 5, 4, 4, 4, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 0, 2, 2, 0, + 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 5, 3, 2, + 2, 2, 2, 2, 5, 4, 6, 2, 4, 0, + 3, 3, 1, 1, 0, 3, 0, 1, 1, 3, + 0, 1, 1, 3, 1, 3, 4, 4, 4, 4, + 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 3, 4, 1, 0, 10, 6, 5, 6, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 1, 2, 3, + 4, 6, 5, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 2, 2, 4, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 1, 0, 5, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 3, 2, 3, 4, 2, 2, 2, 5, 5, + 7, 4, 3, 2, 3, 2, 1, 1, 2, 3, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 3, 0, 1, 1, 3, 2, 6, 7, + 3, 3, 3, 6, 0, 1, 3, 5, 6, 4, + 4, 1, 3, 3, 1, 1, 1, 1, 4, 1, + 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 5, 4, 7, 6, 7, 6, 9, + 8, 3, 8, 4, 0, 2, 0, 1, 3, 3, + 0, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 0, 2, 3, 1, 1, 1, 1, 3, 8, 2, + 3, 1, 1, 3, 3, 3, 4, 6, 0, 2, + 3, 1, 3, 1, 4, 3, 0, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 0, 2, 2, 3, + 3, 4, 2, 1, 1, 3, 5, 0, 2, 2, + 0, 2, 4, 3, 1, 1, +}; +static int yydefred[] = { 1, + 0, 85, 0, 0, 265, 0, 0, 0, 0, 760, + 761, 0, 0, 0, 0, 0, 0, 838, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, + 0, 0, 336, 6, 7, 8, 9, 10, 11, 0, + 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, + 108, 0, 272, 0, 0, 817, 36, 39, 37, 0, + 38, 0, 189, 391, 392, 0, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 0, 0, 0, 216, 217, 0, 0, 223, 224, + 0, 0, 0, 0, 0, 220, 0, 71, 215, 0, + 0, 0, 0, 781, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 554, 711, 0, 688, 696, + 694, 0, 697, 698, 699, 700, 701, 702, 707, 708, + 709, 710, 671, 695, 0, 687, 0, 0, 0, 492, + 0, 555, 556, 557, 0, 0, 0, 0, 0, 692, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 436, 0, 0, 0, 0, 139, 1, 0, + 791, 809, 827, 841, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 560, 0, 553, 0, 31, 0, 0, 0, 0, 0, + 0, 225, 226, 227, 228, 218, 219, 72, 0, 73, + 0, 0, 103, 0, 21, 776, 0, 0, 782, 783, + 784, 786, 0, 787, 788, 789, 790, 0, 839, 840, + 0, 0, 0, 703, 704, 705, 706, 670, 0, 673, + 0, 689, 691, 234, 235, 0, 0, 0, 0, 0, + 0, 0, 684, 0, 678, 0, 0, 0, 0, 0, + 677, 676, 0, 0, 0, 0, 0, 231, 0, 0, + 0, 64, 437, 68, 722, 0, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 0, 372, 0, 335, 343, 344, 0, 0, 0, 0, + 365, 5, 0, 507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 345, 349, 348, + 351, 350, 352, 0, 337, 339, 346, 358, 336, 0, + 0, 0, 0, 0, 0, 102, 0, 111, 132, 109, + 110, 113, 114, 0, 115, 116, 117, 118, 119, 120, + 121, 122, 112, 131, 124, 123, 133, 0, 136, 0, + 107, 0, 278, 273, 274, 275, 276, 277, 281, 279, + 289, 280, 282, 283, 284, 285, 286, 287, 288, 0, + 290, 314, 0, 0, 0, 413, 0, 412, 0, 411, + 0, 410, 0, 408, 0, 409, 433, 0, 0, 0, + 0, 772, 762, 0, 0, 820, 819, 818, 0, 0, + 0, 210, 0, 196, 190, 191, 192, 193, 198, 199, + 200, 201, 195, 202, 203, 194, 0, 0, 388, 0, + 0, 0, 0, 0, 731, 0, 730, 0, 0, 0, + 0, 0, 311, 312, 0, 0, 0, 0, 75, 69, + 0, 96, 778, 0, 0, 785, 0, 672, 690, 0, + 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, + 0, 715, 674, 0, 712, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 27, 0, 105, 239, 253, + 0, 0, 817, 0, 0, 3, 0, 336, 171, 172, + 174, 173, 175, 181, 182, 140, 0, 0, 0, 4, + 338, 340, 0, 0, 0, 0, 0, 0, 0, 347, + 509, 508, 510, 511, 44, 0, 0, 506, 512, 513, + 516, 515, 517, 521, 522, 0, 520, 523, 0, 0, + 0, 0, 528, 0, 0, 0, 0, 0, 382, 0, + 380, 383, 366, 0, 0, 0, 0, 0, 0, 0, + 0, 369, 0, 0, 0, 0, 12, 794, 802, 803, + 792, 795, 0, 0, 814, 0, 0, 13, 0, 812, + 0, 810, 0, 0, 0, 0, 14, 834, 835, 828, + 0, 0, 15, 845, 846, 842, 0, 125, 126, 127, + 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, + 0, 401, 0, 0, 821, 822, 823, 824, 825, 826, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 32, 0, 221, 230, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 675, 682, + 0, 0, 0, 0, 0, 176, 177, 0, 0, 0, + 0, 0, 139, 0, 242, 256, 827, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 514, 0, 545, 0, + 0, 0, 543, 364, 381, 367, 0, 384, 373, 374, + 375, 376, 378, 379, 377, 0, 0, 0, 0, 797, + 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 833, 0, 0, 0, 0, 0, 0, 151, + 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, + 0, 0, 0, 395, 400, 0, 764, 0, 0, 580, + 618, 572, 573, 0, 607, 574, 575, 576, 577, 578, + 579, 609, 585, 586, 587, 588, 0, 0, 0, 615, + 0, 0, 0, 0, 570, 571, 594, 595, 596, 613, + 597, 598, 599, 600, 0, 0, 603, 0, 611, 617, + 270, 0, 0, 0, 0, 0, 0, 0, 719, 0, + 0, 0, 0, 724, 0, 35, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 441, 0, 77, 0, 97, 98, 0, 99, 100, + 101, 0, 0, 0, 0, 679, 680, 717, 713, 0, + 0, 0, 241, 240, 0, 0, 255, 254, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 0, 355, 0, 0, 0, 0, 0, 0, 356, 0, + 0, 0, 0, 526, 0, 0, 529, 0, 0, 0, + 341, 0, 0, 0, 370, 371, 793, 804, 0, 806, + 798, 801, 779, 805, 811, 813, 0, 0, 0, 0, + 0, 134, 0, 0, 157, 0, 0, 0, 148, 141, + 291, 0, 0, 0, 302, 303, 304, 305, 297, 298, + 299, 296, 300, 301, 0, 0, 294, 0, 0, 0, + 0, 0, 0, 399, 407, 406, 405, 404, 402, 403, + 0, 0, 204, 608, 581, 582, 583, 584, 0, 604, + 610, 612, 616, 0, 0, 0, 614, 601, 602, 656, + 625, 626, 0, 653, 627, 628, 629, 630, 631, 632, + 655, 637, 638, 639, 640, 623, 624, 645, 646, 647, + 648, 649, 650, 651, 652, 622, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 641, + 0, 0, 589, 197, 0, 206, 0, 188, 0, 735, + 736, 738, 737, 0, 734, 0, 733, 720, 0, 727, + 78, 75, 70, 0, 0, 536, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 82, 0, 80, 0, 95, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 168, 0, 0, 0, 0, 169, 248, 249, 250, + 251, 243, 0, 0, 0, 170, 262, 261, 263, 264, + 257, 178, 0, 359, 0, 362, 363, 0, 45, 46, + 0, 525, 0, 531, 532, 342, 0, 544, 0, 0, + 0, 832, 843, 0, 0, 0, 0, 145, 0, 160, + 0, 0, 293, 0, 0, 0, 315, 316, 317, 318, + 0, 0, 768, 0, 766, 0, 0, 0, 0, 654, + 633, 634, 635, 636, 643, 0, 0, 644, 0, 590, + 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 440, 0, 208, 438, 0, + 0, 78, 0, 0, 0, 214, 213, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 0, 87, 86, 0, 432, 773, 681, + 0, 183, 0, 186, 0, 0, 244, 245, 246, 247, + 260, 258, 259, 354, 0, 0, 527, 547, 385, 386, + 0, 155, 158, 163, 0, 162, 159, 0, 0, 306, + 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, + 0, 642, 0, 0, 591, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 728, 67, 166, 0, 0, + 431, 0, 430, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 421, 0, 420, 0, 419, 0, 418, 0, + 416, 414, 0, 415, 417, 0, 429, 0, 428, 0, + 427, 0, 426, 0, 447, 0, 443, 442, 0, 446, + 0, 445, 0, 0, 90, 0, 0, 0, 0, 0, + 0, 361, 0, 0, 146, 292, 310, 267, 0, 770, + 0, 0, 567, 0, 593, 0, 739, 0, 0, 0, + 744, 729, 212, 211, 481, 477, 425, 0, 424, 0, + 423, 0, 422, 0, 479, 477, 475, 473, 467, 470, + 479, 477, 475, 473, 490, 483, 444, 486, 89, 91, + 0, 0, 185, 0, 0, 0, 0, 165, 0, 0, + 620, 0, 566, 0, 592, 0, 0, 0, 0, 0, + 479, 477, 475, 473, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 0, 0, 799, 319, 0, 741, 742, 743, 463, 482, + 462, 478, 0, 0, 0, 0, 453, 480, 452, 451, + 476, 450, 474, 448, 469, 468, 449, 471, 472, 457, + 456, 455, 454, 466, 491, 485, 484, 464, 487, 0, + 465, 489, 252, 0, 0, 0, 0, 0, 461, 460, + 459, 458, 488, 0, 0, 357, 0, 324, 320, 329, + 330, 331, 332, 333, 321, 322, 323, 325, 326, 327, + 328, 271, 0, 0, 0, 0, 565, 0, 0, 0, + 0, 179, 334, 0, 0, 0, 0, 0, 0, 0, + 0, 180, +}; +static int yydgoto[] = { 1, + 157, 71, 467, 846, 158, 725, 105, 106, 751, 35, + 36, 676, 730, 406, 1061, 73, 1073, 777, 778, 1010, + 1467, 1468, 549, 1523, 731, 732, 733, 210, 495, 496, + 174, 175, 842, 843, 1068, 656, 1075, 993, 1238, 881, + 882, 1489, 1490, 1485, 1480, 1487, 1488, 1479, 1496, 1497, + 1495, 160, 672, 498, 499, 1186, 1187, 968, 674, 1297, + 675, 883, 662, 663, 1127, 752, 1190, 779, 625, 211, + 228, 229, 107, 230, 108, 213, 186, 189, 207, 1547, + 694, 695, 783, 657, 658, 92, 37, 113, 474, 115, + 204, 116, 38, 39, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 40, 41, + 296, 42, 43, 180, 44, 338, 46, 47, 339, 49, + 50, 352, 51, 353, 52, 354, 53, 355, 54, 340, + 341, 342, 58, 343, 290, 60, 61, 62, 188, 381, + 627, 526, 527, 919, 528, 920, 529, 214, 1152, 1161, + 63, 844, 344, 345, 346, 347, 738, 349, 350, 573, + 574, 351, 575, 739, 576, 577, 578, 579, 64, 200, + 76, 418, 419, 885, 65, 599, 591, 592, 593, 594, + 601, 602, 610, 616, +}; +static int yysindex[] = { 0, +12708, 0, -367, 774, 0, 51, -230, 1707, 1707, 0, + 0, -143, 1606, 124, 134, -332, -210, 0, -138, 72, + 72, 513, 513, 9470, 142, 0, 774, 774, 774, 774, + 0, 0, 15, 0, 128, 128, 128, 0, 0, 0, + 256, 295, 0, 0, 0, 0, 0, 0, 0, 324, + 329, 346, 351, 0, 0, 0, 0, 0, 0, 128, + 0, 182, 0, 1377, 72, 0, 0, 0, 0, 456, + 0, 72, 0, 0, 0, -23, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13865, 75, 475, 0, 0, 527, 539, 0, 0, + 703, 776, 776,13762, 5310, 0, 530, 0, 0, 554, + 72, 72, -50, 0, 1068, -82, 774, 456, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5310, 0, 0, + 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 162, 0, 344, 162, 713, 0, + 5148, 0, 0, 0, 146, 222, 456, 607, 117, 0, + 275, 284, 0, 301, 307, 2403, 162, 27, 456, 456, + 456, 0, 0, 681, 436, 706, 741, 0, 0, 1557, + 0, 0, 0, 0, 773, 4506,13865, 428, 7917, 717, + 93, 125, 155, 364, 384, 393, 749, 1425, 806, 0, + 0, 128, 165, 625, 774, 801,12997, 811, 196, 753, + 0, 65, 0, 776, 0, 857, 68, 862, 637, 72, + 72, 0, 0, 0, 0, 0, 0, 0, 866, 0, +13259, 76, 0, 827, 0, 0, 5, 1068, 0, 0, + 0, 0, 470, 0, 0, 0, 0, 456, 0, 0, + 22, 456, 0, 0, 0, 0, 0, 0, 162, 0, + 667, 0, 0, 0, 0,13580, 774, 849, 140, 859, + 787, 456, 0, 774, 0, 918, 923, 774, -81, 5310, + 0, 0, 774, 774, 774, 774, 5310, 0, 162, 840, + 862, 0, 0, 0, 0, 797,12597, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 0, 72, 0, 0, 0, 72, 876, -38,13924, + 0, 0, 915, 0, 602, 72, 513, 440, 602, 2403, + 4838,13865, -128, 776,13762, 935, 128, 0, 0, 0, + 0, 0, 0, 19, 0, 0, 0, 0, 0, 1069, + 305, 598, 503, 814, 45, 0, 937, 0, 0, 0, + 0, 0, 0, 1026, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 682, 0,13865, + 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, + 0, 0, 954, 72, 72, 0, 72, 0, 72, 0, + 513, 0, 577, 0, 577, 0, 0, 873, 956, -23, + 962, 0, 0, 72, 72, 0, 0, 0, 1146, 456, + 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 252, 0, 774, + 166, 751, 897, 5310, 0,14024, 0, 760, 981, 990, + 1004, 2403, 0, 0, 89, 456, 996, 786, 0, 0, + 862, 0, 0, 611, 24, 0, 774, 0, 0, 456, + 815, 383, 774, 774, 774, 456, 0, 456,13865,13865, + 456, 0, 0, 823, 0, 94, 753, 1030, 1060, 456, + 456, 456, 456,13416, 0, 0, 755, 0, 0, 0, + 72, 72, 0, -318,14083, 0, 1005, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1031, 1045, 1049, 0, + 0, 0, 1058, 72, -16, 402, 72, 0, 910, 0, + 0, 0, 0, 0, 0, 1110, 1150, 0, 0, 0, + 0, 0, 0, 0, 0,13580, 0, 0, 1190, 862, + 128, 5310, 0, 602, 1145, 1191, 0,11680, 0,13865, + 0, 0, 0, 1069, -42, -42, -42, -42, 305, 925, + 927, 0, 785, 1179, 23, 13, 0, 0, 0, 0, + 0, 0, 128, 128, 0, 1193, 1198, 0, 128, 0, + 128, 0, 1220, -202, 774, 791, 0, 0, 0, 0, + 774, 799, 0, 0, 0, 0, 72, 0, 0, 0, + 0, 0, 0, -9, 0, 0, 1229, 72, 751, 5458, + 751, 1233, 1195, 1236, 1249, 1251, 1254, 1255, 0, 1425, + 1257, 0, 1241, 1256, 0, 0, 0, 0, 0, 0, + 72,14133, 33, 388, 0, 618, 1261, 1279, 0, 919, + 928, 1281, 1201, 1269, 0, 1076, 0, 0, 1280, 5768, + 1300, 1305, 494, 1237, 2274, 615, 128, 774, 456, 774, + 774, 607, 607, 607, 1322, 1331, 72, -81, 0, 0, + 5310, 1335,13865,13684, 1064, 0, 0, 625, 469, 524, + 0, 1102, 0,11763, 0, 0, 0, 72, 1285, 72, + 456, 72, 669, 1291, 5310, 494, 72, 513, 456, 1111, + 751, 1354, 129, 1355, 1357, 1359, 0, 0, 0, 5458, + 1360, 1364, 0, 0, 0, 0, 602, 0, 0, 0, + 0, 0, 0, 0, 0, -23, 72, 72, 1372, 0, + 0, 1346, 1376, 862, 1380, 1381, 1386, 1387, 1389, 1390, + 72, 774, 0, 456, 774, 39, 774, 1392, 1388, 0, + 0, 0, 0, 5310, 0, 0, 365, 238, 1351,13865, + 1393, 11, 489, -214, 38, 761, 1344, 0, 1344, 1344, + 1344, 1344, 1344, 0, 0, 72, 0, 72, 1401, 0, + 0, 0, 0, 1003, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1403, 949, 958, 0, + 948, 1411, -285, 1178, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1403, 1403, 0, 7194, 0, 0, + 0, 115, 1412, 128, -23, 1395, 0, 1177, 0, 751, + 1333, 0,14024, 0, 1336, 0, 108, 72, 1399, 0, + 0, 456, 996, 0, 455, 465, 1032, 467, 507, 514, + 532, 550, 564, 579, 591, 608, 609, 647, 662, 671, + 0, 0, 314, 0, 128, 0, 0, -23, 0, 0, + 0, 1421, 456, 456, 607, 0, 0, 0, 0, 753, + 0, 1019, 0, 0, 456, 774, 0, 0, 5310, 456, + 72, 456, 72, 779, 5310, 494, 6291, 0, 697, 378, + 968, 0, 1080, 1391, 1394,13865, 1395,13580, 0, 1433, + 1439, 774, 795, 0, 0, 602, 0, 602, 1440, 38, + 0, 0, 1169, 1172, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 1449, 607, 456, 72, + 456, 0, 72, 252, 0,13865, 836, 774, 0, 0, + 0, 751, 711, 1454, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1437, 1438, 0, 1406, 1408, 1409, + 1417, 1471, 494, 0, 0, 0, 0, 0, 0, 0, + 1472, 0, 0, 0, 0, 0, 0, 0, 1011, 0, + 0, 0, 0, 751, 1426, 1427, 0, 0, 0, 0, + 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 133, 0, 0, -24, 0, 2876, 0, 1479, 0, + 0, 0, 0, 862, 0, 1481, 0, 0, 1402, 0, + 0, 0, 0, 862, 1434, 0, 1485, 1494, 1496, 1497, + 748, 72, 72, 72, 705, 746, 757, 766, 72, 72, + 72, 72, 72, 72, 513, 72, 916, 72, 843, 72, + 72, 72, 72, 72, 72, 72, 513, 72, 2274, 72, + -119, 72, 425, 72, 0, 0, 2576, 0, 1498, 0, + 1117, 1499, 2403, 0, 456, 252, 1458, 1460,13865,13580, + 1047, 0, 2403, 2403, 2403, 2403, 0, 0, 0, 0, + 0, 0, 2403, 2403, 2403, 0, 0, 0, 0, 0, + 0, 0, -23, 0, 1514, 0, 0, 1292, 0, 0, + 456, 0, 1526, 0, 0, 0, -23, 0, -23, 72, + 1510, 0, 0, 1528, 836, 1530, 1529, 0, -9, 0, + 836, 862, 0, 72, 688, 718, 0, 0, 0, 0, +14133, 1512, 0, 72, 0, 1513, 1083, 72, 72, 0, + 0, 0, 0, 0, 0, 751, 1482, 0, 72, 0, + 97, 0, 1540, 1541, 1184, 1542, 1544, 1545, 1546, 1554, + 1556, 1559, 1567, 1572, 1581, 0, 862, 0, 0, 72, + 933, 0, 229, 1502, 1535, 0, 0, 0, 0, 1587, + 1536, 1589, 1539, 72, 72, 72, 72, 72, 72, 513, + 72, 1593, 1543, 1596, 1548, 1603, 1555, 1612, 1563, 1616, + 1621, 1575, 1628, 1629, 1578, 1631, 1580, 1634, 1586, 1640, + 1590, 1643, 1597, 1652, 1601, 1654, 1655, 1604, 1657, 1384, + 1658, 1611, 0, 303, 0, 0, 538, 0, 0, 0, + 152, 0, 1661, 0, 1348, 776, 0, 0, 0, 0, + 0, 0, 0, 0,13865, 494, 0, 0, 0, 0, + 23, 0, 0, 0,13865, 0, 0, 1373, 1669, 0, + 0, 0, 0, 1673, 1679, 0, 72, 751, 1627, 1667, + 862, 0, 1676, 72, 0, 1681, 1682, 1726, 1730, 1731, + 1713, 1715, 1716, 1738, 280, 0, 0, 0, 1743, 1746, + 0, 1749, 0, 1754, 1760, 1710, 1769, 1719, 1772, 1721, + 1774, 1723, 0, 1778, 0, 1781, 0, 1787, 0, 1788, + 0, 0, 1789, 0, 0, 1791, 0, 1794, 0, 1798, + 0, 1800, 0, 1804, 0, 1805, 0, 0, 1806, 0, + 1807, 0, 1809, 1584, 0, 1757, 112, 0,13865, 494, + 5310, 0, 1792, 1793, 0, 0, 0, 0, 0, 0, + 1818, 1021, 0,14171, 0, 1776, 0, 72, 72, 72, + 0, 0, 0, 0, 0, 0, 0, 1830, 0, 1831, + 0, 1832, 0, 1833, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2274, 1835, 0, 1792,13580, 1783, 1837, 0, 23, 1838, + 0, 751, 0, 0, 0, 1842, 1843, 1844, 25, 36, + 0, 0, 0, 0, 47, 80, 98, 31, 360, 793, + 102, 104, 105, 83, 1968, 41, 995, 0, 1395, 1846, + 1614, 0, 0, 0, 1149, 0, 0, 0, 0, 0, + 0, 0, 113, 122, 127, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637, + 0, 0, 0, 0, 494, 1849, 2234, 751, 0, 0, + 0, 0, 0, 1850, 1852, 0, 1863, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 817, 1397, 0, 72, 0, 1547, 1868, 1869, + 776, 0, 0, 5310,13580, 1630, 494, 1792, 1871, 0, + 1872, 0, +}; +static int yyrindex[] = { 0, + 0, 0, 5024, 0, 0,13112, 1662, 0, 0, 0, + 0, 0, 5620, 0, 0, -31, 2450, 0, 9904, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1873, 1873, 1873, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1873, + 0, -60, 0, 0, 0, 0, 0, 0, 0, 1797, + 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7701, 0, 0, 0, 0, 0, 0, + 6078, 6946, 6946, 0, 0, 0, 6220, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10016, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1764, 2372, 0, 0, + 0, 0, 0, 0, 0, 5620, 1796, 4801, 5111, 5421, + 5731, 0, 0, 0, 1875, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1801, 6946, 0, + 9404, 9404, 9404, 9404, 9404, 9404, 0, 0, 0, 0, + 0, 1873, 8076, 0, 0, 0, 0, 0, 0, 7093, + 0, 9011, 0, 5620, 0, 0, 0, 9184, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1808, 0, 0, + 1811,10149, 4500, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3892, 0, 0, 0, 0, 0, 0, 1879, 1855, + 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, + 6041, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5620, + 0, 0, 0, 5620, 0, 0, 1873, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1810, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, + 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1812, 0, 0, 7903, 0, + 0, 5620, 0, 0, 1879, 46, 1889, 0, 0, 0, + 6475, 0, 0,10260, 1815, 0, 0, 0, 0,11127, + 0, 0, 0, 0, 0, 4196, 0, 2068, 0, 0, +10291, 0, 0, 159, 0, 0, 473, 0, 1877,10446, +10587,10618,10729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,11914, + 1873, 0, 0, 1900, 0, 0,14195, 0, 0, 0, + 0, 0, 0,12081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1873, 1873, 0, 0, 0, 0, 1873, 0, + 1873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 474, 0, 0, 1819, 0, 1538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8260, 0, 0, 0, 0, 0, 0, + 0, 642, 9712, 0, 7344, 0, 0, 1910, 0, 0, + 0, 1827, 0, 0, 0, 0, 0, 0, 6654, 1855, + 0, 0, 0, 0, -54, 0, 1873, 0, 1845, 0, + 0, 2676, 2980, 3284, 0, 0, 206, 450, 0, 0, + 0,13521, 0, 0, 5620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12164, 0, 0, 0, 0, 0, 0, 0,11597, 0, + 0, 0, 0, 1925, 0, 1926, 0,14195, 0, 0, + 0, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, + 0, 1538, 0, 0, 643, 0, 9404, 0, 9404, 9404, + 9404, 9404, 9404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, + 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 833, 833, 0, 8, 0, 0, + 0, 1930, 0, 0, 0, 9873, 7528, 0, 0, 0, + 0, 986, 1812, 0, 0, 0, 0, 0, 0,14195, +14195,10963, 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1847, 0, 1873, 0, 0, 0, 0, 0, + 0, 0, 1857,11279, 3588, 0, 0, 0, 0, 663, +14195, 0, 0, 0, 480, 0, 0, 0, 0, 1858, + 0,12777, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12247, 0, 0, 0,12398, 0, 0, 0, + 0, 0, 0, 0,14195, 1900, 0, 1900, 0, 56, + 0,11477, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1358, 1860, 0, + 1024, 0, 0, 0, 0, 1932, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8452, 8636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 768, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10760, 0, 5620, 0, 1861, 0, 0, 0, 0, 0, + 0, 0, 5620, 5620, 5620, 5620, 0, 0, 0, 0, + 0, 0, 5620, 5620, 5620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12565, 0, 0, 0, 0, 0, 826, 0, 0, 0, + 0, 0, 0, 0, 1920, 0, 1942, 0, 474, 0, + 1920, 1538, 0, 0, 0, 0, 0, 0, 0, 0, + 642, 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9571, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14195,14195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8809, 0, 0, 0, 0, + 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14195, 0, 0, + 0, 0, 1947, 0, 0, 0, 0, 0,14195, 0, + 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1947, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1949, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1870, 0, + 0,14195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,14195, 0, 0, 0, 0, 0, + 5620, 0, 0, 0, 0, 0, 0, 1947, 0,14195, + 0, 0, +}; +static int yycindex[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,11446, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1649, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1898, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -560,20 +1069,20 @@ YYSTATIC YYCONST yyexind_t yyexcaind[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,11031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -581,12 +1090,15 @@ YYSTATIC YYCONST yyexind_t yyexcaind[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1733, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -596,24 +1108,31 @@ YYSTATIC YYCONST yyexind_t yyexcaind[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1956, 0, 0, + 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, + 0, 1938, 0, 0, 0, 0, 0, 0, 0, 1725, + 1727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 42, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1729, 0, 0, 0, 0, 0, + 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1748, 1750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -631,10 +1150,8 @@ YYSTATIC YYCONST yyexind_t yyexcaind[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1739, 1740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 54, - 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -642,4310 +1159,10167 @@ YYSTATIC YYCONST yyexind_t yyexcaind[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1742, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 78 + 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1747, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1751, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1753, + 0, 0, }; -#endif -# define YYLAST 3872 - -YYSTATIC YYCONST short YYFARDATA YYACT[] = { - 703, 1421, 1136, 640, 660, 1490, 191, 1039, 888, 974, - 1489, 790, 1488, 702, 1487, 1149, 625, 779, 887, 729, - 73, 75, 150, 414, 536, 977, 1422, 1526, 975, 190, - 478, 757, 794, 176, 760, 755, 1080, 110, 106, 107, - 694, 275, 862, 604, 662, 44, 273, 219, 780, 24, - 78, 81, 217, 86, 17, 599, 262, 153, 204, 214, - 301, 7, 6, 654, 85, 5, 76, 3, 188, 1574, - 218, 1210, 10, 1257, 115, 1128, 1072, 264, 461, 74, - 516, 133, 1261, 178, 179, 180, 181, 221, 1258, 26, - 136, 677, 1126, 300, 139, 137, 1073, 278, 1127, 581, - 74, 719, 716, 202, 203, 113, 112, 700, 272, 376, - 322, 265, 520, 1028, 220, 452, 18, 994, 88, 87, - 462, 89, 216, 338, 56, 941, 942, 277, 676, 268, - 68, 56, 537, 1247, 1248, 1259, 352, 305, 1245, 1246, - 353, 343, 591, 88, 87, 327, 89, 368, 339, 277, - 342, 98, 366, 277, 1034, 361, 360, 359, 357, 358, - 225, 940, 656, 352, 1346, 185, 345, 353, 1578, 1042, - 348, 56, 198, 1542, 277, 365, 271, 199, 1041, 200, - 369, 88, 87, 699, 89, 357, 374, 201, 362, 351, - 514, 364, 698, 373, 1141, 1142, 105, 1437, 277, 258, - 84, 379, 417, 418, 195, 816, 748, 749, 750, 450, - 387, 451, 98, 363, 480, 615, 351, 388, 782, 196, - 783, 1510, 664, 1284, 456, 470, 186, 468, 472, 471, - 376, 473, 475, 416, 481, 482, 484, 502, 410, 1074, - 655, 663, 751, 752, 753, 501, 767, 495, 457, 1583, - 815, 493, 441, 24, 1501, 376, 346, 434, 17, 1283, - 476, 479, 491, 597, 433, 7, 486, 432, 269, 74, - 428, 492, 429, 483, 1334, 435, 10, 1218, 307, 487, - 600, 597, 835, 544, 474, 1342, 1341, 1340, 1339, 485, - 803, 793, 442, 26, 777, 541, 641, 642, 500, 668, - 943, 944, 420, 945, 421, 422, 423, 714, 542, 572, - 108, 545, 321, 505, 575, 268, 576, 154, 577, 436, - 18, 864, 865, 866, 1568, 579, 580, 88, 87, 116, - 89, 1567, 192, 80, 79, 480, 499, 571, 46, 574, - 573, 549, 74, 1253, 88, 87, 266, 89, 512, 512, - 529, 535, 601, 459, 1564, 481, 482, 494, 569, 1440, - 627, 628, 629, 177, 88, 87, 267, 89, 613, 80, - 79, 582, 583, 477, 498, 511, 511, 528, 534, 310, - 312, 314, 316, 318, 596, 46, 88, 624, 678, 89, - 371, 370, 607, 608, 609, 610, 630, 631, 632, 606, - 372, 614, 1373, 621, 1357, 519, 1566, 74, 612, 480, - 611, 619, 620, 622, 192, 340, 341, 884, 1131, 352, - 644, 375, 957, 353, 878, 704, 879, 880, 881, 481, - 482, 706, 1157, 586, 74, 585, 584, 1158, 649, 650, - 639, 357, 587, 1512, 635, 600, 1541, 886, 88, 87, - 643, 89, 74, 1141, 1142, 1536, 666, 348, 154, 354, - 355, 356, 674, 600, 652, 669, 873, 874, 875, 788, - 685, 857, 351, 88, 87, 1535, 89, 595, 277, 1511, - 1565, 784, 786, 347, 177, 321, 354, 355, 356, 1522, - 135, 869, 682, 671, 673, 747, 1534, 348, 696, 588, - 785, 546, 1533, 537, 759, 192, 488, 1525, 182, 177, - 154, 689, 872, 876, 877, 1252, 882, 63, 1413, 883, - 506, 690, 1143, 684, 973, 953, 715, 56, 453, 520, - 460, 513, 521, 692, 508, 509, 1133, 693, 1196, 1271, - 543, 705, 566, 375, 41, 43, 701, 74, 727, 707, - 787, 695, 216, 538, 74, 709, 413, 710, 713, 645, - 1531, 683, 999, 1529, 63, 1250, 718, 1527, 745, 88, - 1260, 659, 89, 74, 56, 97, 504, 723, 513, 863, - 728, 508, 509, 730, 675, 1145, 724, 758, 725, 1473, - 225, 1256, 651, 1021, 679, 680, 681, 80, 79, 480, - 734, 49, 50, 51, 52, 53, 54, 55, 49, 50, - 51, 52, 53, 54, 55, 1416, 762, 720, 648, 481, - 482, 1195, 754, 152, 601, 258, 768, 769, 733, 74, - 56, 647, 348, 646, 789, 539, 639, 352, 593, 838, - 1012, 353, 1188, 1187, 1186, 1185, 643, 74, 49, 50, - 51, 52, 53, 54, 55, 88, 87, 542, 89, 357, - 804, 543, 82, 72, 71, 814, 70, 795, 823, 74, - 821, 827, 824, 828, 773, 774, 775, 198, 74, 832, - 809, 810, 199, 69, 200, 98, 377, 833, 806, 808, - 351, 811, 201, 817, 348, 367, 1363, 67, 74, 216, - 843, 844, 825, 80, 79, 799, 820, 792, 802, 195, - 66, 826, 80, 79, 480, 834, 352, 1462, 856, 74, - 353, 592, 1460, 836, 196, 80, 79, 867, 1519, 1349, - 80, 79, 831, 932, 481, 482, 74, 225, 357, 1367, - 325, 46, 354, 355, 356, 860, 946, 947, 870, 277, - 855, 1458, 842, 858, 324, 1132, 969, 56, 193, 859, - 348, 194, 88, 1456, 527, 89, 74, 601, 959, 351, - 952, 111, 854, 350, 1266, 1262, 1263, 1264, 1265, 1348, - 773, 948, 517, 74, 198, 177, 74, 744, 46, 199, - 74, 200, 88, 87, 637, 956, 861, 996, 496, 201, - 155, 1079, 1075, 1076, 1077, 1078, 1024, 1022, 1025, 1255, - 362, 965, 807, 962, 968, 96, 195, 1439, 104, 103, - 102, 101, 958, 99, 100, 105, 1430, 825, 177, 1429, - 970, 196, 88, 87, 964, 89, 74, 825, 606, 1427, - 1000, 696, 696, 1047, 1029, 1412, 1023, 441, 1010, 1019, - 1035, 277, 434, 1038, 1410, 1027, 1030, 1400, 1052, 433, - 1050, 766, 432, 1032, 1031, 428, 1054, 429, 1398, 1045, - 435, 1008, 1018, 382, 383, 384, 385, 636, 525, 976, - 1396, 1048, 1049, 1394, 337, 1392, 74, 442, 1011, 1020, - 529, 1390, 375, 1065, 695, 695, 825, 277, 776, 56, - 1388, 1060, 352, 1359, 1360, 1361, 772, 192, 88, 87, - 765, 89, 805, 1386, 436, 1009, 1017, 528, 1384, 964, - 63, 56, 88, 87, 357, 89, 74, 672, 277, 1070, - 524, 1157, 670, 526, 308, 1381, 1158, 1378, 88, 87, - 1066, 89, 1376, 1016, 722, 1014, 1015, 156, 157, 158, - 1372, 74, 1137, 480, 1082, 351, 1083, 455, 326, 323, - 354, 355, 356, 1356, 61, 62, 47, 63, 1147, 1332, - 1213, 1212, 1154, 481, 482, 616, 88, 87, 762, 89, - 1059, 88, 87, 1139, 89, 1058, 1134, 522, 1057, 1144, - 1056, 1037, 1036, 1153, 1130, 830, 822, 737, 1140, 618, - 1201, 1148, 1199, 1200, 49, 50, 51, 52, 53, 54, - 55, 617, 578, 565, 109, 934, 348, 935, 936, 937, - 938, 939, 92, 1198, 276, 1320, 1068, 1194, 1318, 1197, - 1202, 966, 1316, 1193, 1203, 1204, 1205, 1206, 1314, 354, - 355, 356, 591, 1238, 1207, 1208, 1209, 1211, 1, 1191, - 1214, 49, 50, 51, 52, 53, 54, 55, 1157, 770, - 951, 1040, 1156, 1158, 1215, 1249, 1221, 1354, 1146, 1189, - 1251, 1242, 1222, 145, 1243, 1069, 1321, 995, 1241, 1319, - 1244, 88, 87, 1317, 89, 1183, 1216, 955, 1217, 1315, - 88, 87, 1181, 89, 589, 1237, 88, 87, 1179, 89, - 1192, 88, 87, 1254, 89, 1177, 1175, 49, 50, 51, - 52, 53, 54, 55, 277, 590, 205, 993, 992, 991, - 1190, 986, 985, 984, 983, 712, 981, 982, 105, 1438, - 990, 989, 988, 987, 1267, 46, 1184, 980, 978, 711, - 708, 634, 412, 1182, 187, 97, 277, 1423, 1173, 1180, - 626, 1171, 56, 1169, 796, 1270, 1178, 1176, 527, 1167, - 626, 1285, 1165, 1289, 1273, 1291, 1293, 1294, 1274, 1297, - 1163, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1279, 1307, - 1308, 1309, 1310, 1311, 1312, 1313, 328, 329, 330, 1435, - 1322, 1323, 1290, 1325, 1324, 1296, 1292, 1298, 1295, 1174, - 1161, 56, 1172, 1434, 1170, 1306, 979, 1327, 1287, 1159, - 1168, 332, 317, 1166, 145, 1433, 1424, 1333, 1002, 1240, - 315, 1164, 1337, 1063, 1062, 354, 355, 356, 313, 311, - 94, 309, 846, 746, 49, 50, 51, 52, 53, 54, - 55, 152, 306, 1338, 667, 454, 45, 415, 1150, 1336, - 277, 1162, 825, 1350, 1343, 277, 1352, 1353, 378, 1026, - 1160, 277, 829, 308, 277, 277, 145, 530, 1335, 1358, - 1362, 308, 525, 192, 192, 192, 192, 591, 1563, 308, - 308, 1364, 308, 192, 192, 192, 1475, 1276, 591, 1474, - 1355, 591, 1351, 308, 1219, 140, 138, 192, 56, 1576, - 1365, 591, 1046, 954, 591, 331, 950, 333, 334, 335, - 336, 933, 1366, 591, 63, 841, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 840, 524, 819, 771, 526, 764, 1369, - 721, 567, 349, 1414, 1415, 591, 303, 1588, 1418, 1579, - 1577, 1420, 1401, 117, 1570, 1546, 1509, 1508, 1507, 1425, - 1426, 1477, 1472, 1469, 1466, 1431, 1465, 1461, 1156, 1419, - 1459, 1457, 258, 1455, 798, 1442, 46, 1436, 825, 1432, - 1411, 1409, 1399, 1397, 1586, 1417, 49, 50, 51, 52, - 53, 54, 55, 1428, 152, 96, 1395, 134, 104, 103, - 102, 101, 56, 99, 100, 105, 1393, 1391, 49, 50, - 51, 52, 53, 54, 55, 1389, 1387, 1385, 1383, 1382, - 88, 87, 348, 89, 74, 46, 1380, 1379, 155, 1377, - 1468, 1375, 1374, 1371, 1370, 1347, 1345, 1331, 1330, 1326, - 1277, 1275, 1272, 1138, 1478, 1479, 1480, 1239, 1471, 1476, - 1129, 1467, 1067, 1053, 1051, 1571, 177, 1513, 1044, 1043, - 1033, 972, 1156, 961, 960, 949, 258, 868, 697, 851, - 1494, 850, 848, 56, 1493, 1492, 1491, 1481, 845, 839, - 837, 1141, 1142, 1569, 1499, 1504, 818, 1503, 797, 778, - 742, 741, 740, 739, 738, 736, 1521, 735, 688, 1528, - 1530, 1532, 638, 1528, 1530, 1532, 570, 152, 425, 88, - 1530, 424, 89, 1543, 1540, 1544, 1506, 1545, 1539, 1538, - 1537, 344, 46, 1518, 1524, 320, 1520, 1523, 1004, 1005, - 1006, 1007, 1502, 152, 1498, 1497, 1496, 1495, 1470, 1001, - 1516, 1464, 1463, 1454, 1453, 825, 1452, 1451, 531, 1528, - 1530, 1532, 61, 62, 47, 63, 1450, 1449, 1448, 1447, - 1446, 1445, 1444, 88, 87, 1443, 89, 56, 1441, 1320, - 1318, 155, 1316, 1314, 523, 156, 157, 158, 1344, 1191, - 1189, 1183, 1575, 1181, 1573, 1179, 1177, 1175, 1173, 1171, - 1169, 1167, 1165, 56, 1329, 1580, 1585, 1584, 1328, 177, - 1269, 1587, 1288, 88, 63, 1572, 89, 1268, 1081, 1286, - 1071, 1064, 1055, 998, 532, 1582, 46, 533, 997, 971, - 963, 853, 852, 849, 847, 732, 731, 825, 717, 691, - 687, 258, 1581, 206, 686, 665, 633, 603, 602, 49, - 50, 51, 52, 53, 54, 55, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 449, - 594, 568, 548, 59, 547, 497, 419, 208, 259, 210, - 228, 212, 213, 411, 386, 319, 88, 87, 304, 89, - 302, 41, 43, 515, 155, 518, 510, 46, 49, 50, - 51, 52, 53, 54, 55, 507, 503, 36, 61, 62, - 47, 63, 88, 87, 56, 89, 184, 93, 33, 223, - 155, 469, 177, 467, 95, 1514, 466, 465, 156, 157, - 158, 464, 1515, 222, 244, 463, 227, 243, 215, 209, - 207, 211, 889, 31, 1013, 1003, 439, 444, 177, 801, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 431, 800, 430, 427, 59, 226, 224, - 540, 208, 259, 210, 228, 212, 213, 270, 88, 83, - 29, 89, 57, 56, 34, 41, 43, 25, 16, 263, - 15, 46, 14, 261, 13, 49, 50, 51, 52, 53, - 54, 55, 61, 62, 47, 63, 260, 12, 11, 9, - 8, 4, 2, 223, 234, 242, 241, 46, 240, 239, - 238, 237, 236, 235, 233, 232, 231, 222, 230, 229, - 114, 77, 42, 756, 448, 152, 58, 32, 59, 658, - 657, 156, 157, 158, 1505, 299, 90, 183, 445, 426, - 1155, 761, 791, 446, 1278, 967, 41, 43, 1152, 1151, - 605, 1484, 226, 224, 1483, 1482, 1500, 156, 157, 158, - 1486, 1485, 1220, 61, 62, 47, 63, 1135, 437, 438, - 598, 661, 781, 91, 1084, 743, 65, 64, 197, 49, - 50, 51, 52, 53, 54, 55, 885, 0, 447, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 0, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 46, 0, - 0, 0, 59, 443, 440, 0, 208, 259, 210, 228, - 212, 213, 1547, 0, 0, 0, 0, 0, 0, 0, - 41, 43, 0, 0, 38, 30, 58, 32, 59, 0, - 49, 50, 51, 52, 53, 54, 55, 61, 62, 47, - 63, 0, 0, 1101, 0, 0, 41, 43, 223, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 222, 61, 62, 47, 63, 46, 0, 0, - 60, 35, 0, 0, 88, 87, 21, 89, 0, 37, - 0, 0, 155, 0, 0, 0, 39, 40, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 226, 224, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 0, 0, 0, 0, 0, 0, 444, 0, 0, - 1368, 0, 0, 0, 49, 50, 51, 52, 53, 54, - 55, 0, 0, 0, 0, 38, 30, 58, 32, 59, - 0, 19, 20, 0, 22, 23, 48, 0, 27, 28, - 49, 50, 51, 52, 53, 54, 55, 41, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 62, 47, 63, 0, 0, - 1061, 60, 35, 1562, 0, 0, 0, 21, 0, 931, - 37, 0, 0, 0, 0, 0, 0, 39, 40, 1552, - 0, 0, 0, 0, 448, 0, 58, 32, 59, 0, - 0, 0, 0, 0, 1517, 1548, 0, 0, 445, 0, - 0, 0, 0, 446, 1557, 0, 41, 43, 0, 156, - 157, 158, 0, 0, 0, 0, 0, 0, 1558, 1559, - 1560, 1561, 0, 61, 62, 47, 63, 0, 437, 438, - 0, 0, 19, 20, 0, 22, 23, 48, 1112, 27, - 28, 49, 50, 51, 52, 53, 54, 55, 447, 0, - 1549, 1550, 1551, 1553, 1554, 1555, 1556, 1088, 1089, 0, - 1096, 1110, 1090, 1091, 1092, 1093, 0, 1094, 1095, 0, - 1111, 1097, 1098, 1099, 1100, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 440, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 903, 0, 0, 0, 0, 0, 0, - 49, 50, 51, 52, 53, 54, 55, 930, 0, 0, - 0, 0, 895, 896, 0, 904, 921, 897, 898, 899, - 900, 0, 901, 902, 0, 922, 905, 906, 907, 908, - 903, 0, 0, 0, 0, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 930, 0, 0, 0, 0, 895, - 896, 0, 904, 921, 897, 898, 899, 900, 0, 901, - 902, 348, 922, 905, 906, 907, 908, 0, 0, 0, - 0, 0, 919, 0, 923, 0, 1236, 1235, 1230, 925, - 1229, 1228, 1227, 1226, 0, 1224, 1225, 105, 189, 1234, - 1233, 1232, 1231, 0, 0, 927, 0, 0, 1223, 0, - 0, 871, 0, 884, 0, 0, 0, 0, 0, 919, - 878, 923, 879, 880, 881, 0, 925, 0, 0, 0, - 993, 992, 991, 0, 986, 985, 984, 983, 928, 981, - 982, 105, 927, 990, 989, 988, 987, 0, 0, 0, - 980, 978, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 873, 874, 875, 0, 1086, 1087, 0, 1102, - 1103, 1104, 0, 1105, 1106, 928, 0, 1107, 1108, 0, - 1109, 0, 0, 0, 0, 0, 0, 0, 0, 146, - 0, 0, 0, 1085, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1120, 1121, 1122, 1123, 1124, 1125, 0, 872, 876, - 877, 0, 882, 0, 0, 883, 0, 0, 0, 979, - 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, - 891, 892, 893, 894, 909, 910, 911, 926, 912, 913, - 914, 915, 916, 917, 918, 920, 924, 152, 0, 0, - 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 890, 0, 891, 892, 893, - 894, 909, 910, 911, 926, 912, 913, 914, 915, 916, - 917, 918, 920, 924, 175, 0, 0, 929, 151, 148, - 163, 161, 170, 146, 164, 165, 166, 167, 352, 168, - 169, 0, 772, 171, 172, 173, 174, 564, 0, 0, - 142, 162, 0, 0, 0, 0, 0, 0, 0, 141, - 357, 0, 147, 0, 0, 0, 0, 193, 0, 0, - 194, 0, 0, 0, 0, 0, 0, 143, 144, 149, - 0, 556, 0, 550, 551, 552, 553, 0, 0, 0, - 0, 623, 146, 198, 177, 0, 0, 352, 199, 0, - 200, 353, 0, 0, 884, 0, 0, 0, 201, 0, - 0, 878, 160, 879, 880, 881, 0, 0, 0, 357, - 558, 559, 560, 561, 0, 195, 555, 0, 0, 0, - 562, 563, 554, 0, 0, 0, 0, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 623, 0, 0, 873, 874, 875, 88, 87, 0, 89, - 0, 0, 0, 0, 155, 0, 0, 175, 0, 0, - 0, 151, 148, 163, 161, 170, 0, 164, 165, 166, - 167, 0, 168, 169, 0, 0, 171, 172, 173, 174, - 0, 0, 177, 142, 162, 0, 0, 0, 0, 872, - 876, 877, 141, 882, 0, 147, 883, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 144, 149, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 146, 0, 0, 0, 0, 352, 0, 0, - 0, 353, 0, 0, 0, 160, 159, 0, 0, 0, - 88, 87, 0, 89, 0, 0, 0, 0, 155, 357, - 0, 175, 0, 0, 0, 151, 148, 163, 161, 170, - 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, - 171, 172, 173, 174, 0, 0, 177, 142, 162, 0, - 623, 0, 146, 0, 0, 0, 141, 0, 0, 147, - 0, 156, 157, 158, 0, 0, 0, 0, 0, 88, - 87, 0, 89, 0, 143, 144, 149, 155, 0, 0, - 175, 0, 0, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 63, 171, - 172, 173, 174, 0, 0, 177, 142, 162, 0, 160, - 274, 354, 355, 356, 0, 141, 0, 0, 147, 88, - 87, 0, 89, 0, 0, 641, 642, 0, 0, 0, - 0, 0, 0, 143, 144, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 409, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 157, 158, 160, 0, - 354, 355, 356, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 391, 641, 642, 0, 407, 0, 0, - 389, 390, 0, 0, 0, 393, 394, 405, 395, 396, - 397, 398, 399, 400, 401, 402, 392, 0, 0, 0, - 274, 146, 0, 406, 0, 0, 404, 0, 0, 88, - 87, 0, 89, 403, 156, 157, 158, 155, 0, 0, - 175, 0, 408, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, - 172, 173, 174, 0, 0, 177, 142, 162, 0, 0, - 0, 0, 0, 0, 0, 141, 0, 0, 147, 274, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 87, 0, 89, 143, 144, 149, 0, 155, 0, 0, - 175, 0, 0, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, - 172, 173, 174, 146, 0, 177, 142, 162, 160, 0, - 354, 355, 356, 0, 0, 141, 0, 0, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 175, 143, 144, 149, 0, 813, 163, 161, - 170, 0, 164, 165, 166, 167, 0, 168, 169, 0, - 0, 171, 172, 173, 174, 0, 0, 0, 1281, 162, - 0, 274, 146, 0, 156, 157, 158, 0, 160, 88, - 87, 0, 89, 0, 0, 0, 0, 155, 0, 0, - 175, 0, 812, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, - 172, 173, 174, 0, 0, 177, 142, 162, 1282, 0, - 0, 0, 0, 0, 0, 141, 0, 0, 147, 0, - 274, 0, 0, 0, 156, 157, 158, 1280, 88, 87, - 0, 89, 0, 143, 144, 149, 155, 0, 0, 175, - 0, 0, 0, 151, 148, 163, 161, 170, 0, 164, - 165, 166, 167, 0, 168, 169, 0, 0, 171, 172, - 173, 174, 146, 0, 177, 142, 162, 0, 160, 159, - 0, 0, 0, 0, 141, 0, 0, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 143, 144, 149, 0, 0, 993, 992, 991, - 0, 986, 985, 984, 983, 0, 981, 982, 105, 0, - 990, 989, 988, 987, 0, 0, 0, 980, 978, 0, - 274, 0, 0, 0, 156, 157, 158, 160, 0, 0, - 88, 87, 0, 89, 0, 0, 0, 0, 155, 0, - 0, 175, 0, 0, 0, 151, 148, 163, 161, 170, - 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, - 171, 172, 173, 174, 0, 0, 177, 142, 162, 0, - 0, 0, 0, 0, 0, 0, 763, 146, 0, 147, - 0, 0, 0, 156, 157, 158, 979, 0, 0, 88, - 87, 0, 89, 0, 143, 144, 149, 155, 0, 0, - 175, 0, 0, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, - 172, 173, 174, 0, 0, 177, 142, 162, 0, 160, - 0, 0, 0, 0, 146, 141, 0, 0, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 143, 144, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 157, 158, 653, 88, - 87, 146, 89, 0, 0, 0, 0, 155, 0, 0, - 175, 0, 0, 0, 151, 148, 163, 161, 170, 0, - 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, - 172, 173, 174, 0, 0, 177, 142, 162, 0, 0, - 0, 297, 198, 0, 0, 141, 0, 199, 147, 200, - 0, 0, 0, 146, 156, 157, 158, 201, 0, 999, - 0, 0, 0, 143, 144, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 284, 0, 279, 280, 281, - 282, 283, 0, 0, 0, 0, 287, 0, 0, 196, - 0, 0, 0, 0, 0, 285, 0, 0, 458, 0, - 295, 0, 286, 0, 0, 146, 0, 0, 0, 0, - 0, 726, 0, 0, 288, 289, 290, 291, 292, 293, - 294, 298, 0, 0, 489, 175, 490, 296, 0, 151, - 148, 163, 161, 170, 0, 164, 165, 166, 167, 0, - 168, 169, 0, 0, 171, 172, 173, 174, 0, 0, - 177, 142, 162, 0, 156, 157, 158, 0, 0, 0, - 141, 0, 0, 147, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, - 149, 380, 175, 381, 0, 0, 151, 148, 163, 161, - 170, 0, 164, 165, 166, 167, 0, 168, 169, 0, - 0, 171, 172, 173, 174, 0, 0, 0, 142, 162, - 0, 0, 0, 160, 0, 0, 0, 141, 0, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 144, 149, 0, 175, - 0, 0, 0, 151, 148, 163, 161, 170, 0, 164, - 165, 166, 167, 0, 168, 169, 0, 0, 171, 172, - 173, 174, 0, 0, 0, 142, 162, 0, 0, 0, - 160, 0, 0, 0, 141, 0, 0, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 175, 143, 144, 149, 151, 148, 163, 161, 170, - 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, - 171, 172, 173, 174, 0, 0, 0, 142, 162, 0, - 0, 0, 0, 0, 0, 0, 141, 160, 0, 147, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 175, 143, 144, 149, 151, 148, 163, - 161, 170, 0, 164, 165, 166, 167, 0, 168, 169, - 0, 0, 171, 172, 173, 174, 0, 0, 0, 142, - 162, 0, 0, 0, 0, 0, 0, 0, 141, 160, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 144, 149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160 +static int yygindex[] = { 1822, + -4, 42, -652, 0, -427, -46, -99, 0, 63, 0, + 0, 0, 1619, -155, 0, 0,-1036, 0, 1246, 391, +-1370, -422, -399, -21, -699, 0, 1087, -14, 1343, 0, + 59, 1189, 610, 835, -907, -76, 0, 1104, 0,-1050, + 982, 0, 0,-1364,-1231,-1034, -867, 0, 0, 0, + 0, 926, 1196, 1382, 0, 0, 0, 0, -616, 0, + 0,-1003, 0, 1205, 0, -918, -596, 875, 865, -18, + 55, 1734, 1609, 2050, -158, -2, 0, 0, 0, 0, + 0, 0, -754, 1234, 0, 2076, 0, 0, 959, 1977, + 1591, 0, -19, 2075, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -287, + 1400, 0, -284, -242, -277, 34, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 1398, 0, 0, 0, 26, + 29, 17, 0, 6, 1824, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, -147, 0, 0, 1533, + 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, + 0, 1462, 2036, -32, 0, 1642, 0, 1758, 0, 0, + 0, 0, 0, 0, }; - -YYSTATIC YYCONST short YYFARDATA YYPACT[] = { --1000, 1635,-1000, 587, 574,-1000,-1000,-1000,-1000,-1000, --1000,-1000, 560, 543, 541, 540,-1000,-1000,-1000, 78, - 78, -463, 105, 105,-1000,-1000,-1000, 539,-1000, -116, - 395,-1000, 931, 1107, 43, 923, 78, -365, -366,-1000, - -142, 1445, 43, 1445,-1000,-1000,-1000, 227, 2386, 395, - 395, 395, 395,-1000,-1000, 246,-1000,-1000,-1000, -155, - 1083,-1000,-1000, 2288, 43, 43,-1000,-1000, 1498,-1000, --1000,-1000,-1000,-1000,-1000,-1000, 78, -117,-1000,-1000, --1000,-1000, 1432, -141, 2918, 1219,-1000,-1000,-1000,-1000, - 3187,-1000, 78,-1000, 537,-1000, 1294, 1628, 43, 1202, - 1191, 1189, 1188, 1180, 1172, 1625, 1474, 45,-1000, 78, - 696, 830,-1000,-1000, 84, 1219, 395, 2918,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000, 1470, 195, 1288, 381, -233, -235, -236, - -237, 1432,-1000, -93, 1432, 489, 662,-1000,-1000, 111, --1000, 3512, 213, 1211,-1000,-1000,-1000,-1000,-1000, 3351, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 592,-1000,-1000,-1000,-1000,-1000, 1219, 1624, 432, 1219, - 1219, 1219,-1000, 2599, 126,-1000,-1000, 1623, 1081, 2859, --1000, 3512,-1000,-1000,-1000, 382, 382,-1000, 1616,-1000, --1000, 1, 1460, 1457, 1704, 1524,-1000,-1000, 78,-1000, - 78, 75,-1000,-1000,-1000,-1000, 1187,-1000,-1000,-1000, --1000,-1000, 866, 78, 3179,-1000, -13, -86,-1000,-1000, - 309, 78, 105, 333, 43, 309, 489, 3294, 2918, -92, - 382, 2859, 1615,-1000, 502,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 112, 65, 862, 1142,-1000, 81,-1000, 428, 1432,-1000, --1000, 2918,-1000,-1000, 67, 125, 382, 395,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000, 1614, 1612, 2243, - 920, 417, 1287, 1611, 126, 1455, -52,-1000, 78, -52, --1000, 105,-1000, 78,-1000, 78,-1000, 78,-1000,-1000, --1000,-1000, 919,-1000, 78, 78,-1000, 1219,-1000,-1000, --1000, -377,-1000,-1000,-1000,-1000,-1000, 830, 104, 107, --1000,-1000, 1219, 1054,-1000, 1292, 598, 1610,-1000, 214, - 395, 170,-1000,-1000,-1000, 1588, 1587, 3512, 395, 395, - 395, 395,-1000, 1432,-1000,-1000, 3512, 572,-1000, 1219, --1000, -65,-1000, 125, 882, 918, 906, 395, 395, 2699, --1000,-1000,-1000,-1000,-1000,-1000, 78, 1292, 1100,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000, 29,-1000,-1000,-1000, 1586, - 1080,-1000, 754, 1451,-1000,-1000, 2549,-1000,-1000, 78, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 510, - 508, 495,-1000,-1000,-1000,-1000,-1000, 78, 78, 469, - 3079,-1000,-1000, -303, -204,-1000,-1000,-1000,-1000,-1000, --1000,-1000, -34, 1585,-1000, 78, 1186, 25, 382, 841, - 836, 78,-1000, -86, 76, 76, 76, 76, 2918, 502, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000, 1584, 1580, 1447,-1000,-1000,-1000, 2699,-1000,-1000, --1000,-1000, 1292, 1579, 43, 3512,-1000, 309, 1333,-1000, - -126, -135,-1000,-1000, -361,-1000,-1000, 43, 383, 370, - 43,-1000,-1000, 1079,-1000,-1000, 43,-1000, 43,-1000, - 1078, 1064,-1000,-1000, 395, -164, -369, 1578,-1000,-1000, --1000,-1000, 395, -370,-1000,-1000, -352,-1000,-1000,-1000, - 1286,-1000, 851, 395, 3512, 1219, 3460, 78, 235, 678, --1000,-1000,-1000,-1000,-1000,-1000,-1000, 1576,-1000,-1000, --1000,-1000,-1000,-1000, 1575,-1000,-1000, 537, 235, 1446, --1000, 1444, 904, 1443, 1442, 1441, 1440, 1439,-1000, 524, - 1175,-1000, 103, 1219,-1000,-1000,-1000, -125, 395, 235, - 464, 242, 3020,-1000,-1000, 1284, 1219,-1000, 817,-1000, --1000, -29, 2918, 2918, 997, 1282, 125, 1219, 1219, 1219, - 1219,-1000, 2490,-1000, 1219,-1000, 395, 395, 395, 805, - 1219, 20, 1219, 188, 1438,-1000, 175,-1000,-1000,-1000, --1000,-1000,-1000, 78,-1000, 1292,-1000,-1000, 489, 17, - 1094,-1000,-1000, 1219, 1437, 1239,-1000,-1000,-1000,-1000, --1000,-1000, 16, 382, 821, 721, 2918, 2759, -123, 104, - 1435, 1281,-1000,-1000, 3460, -34, 903, 78, -79, 3512, - 78, 1219, 78, 1218, 902,-1000,-1000,-1000, 309,-1000, --1000,-1000,-1000,-1000,-1000,-1000, 78, 105,-1000, 8, - 1219, 235, 1429, 599, 1428, 1279, 1271,-1000, 126, 78, - 78, 1427, 1174,-1000,-1000, 1292, 1574, 1421, 1573, 1420, - 1418, 1572, 1571, 1219, 395,-1000, 395, 78, 152, 395, - 43, 2918, 395, 703, 864, 98, -185, 1416, 99, 2300, - 128, 1976, 78,-1000, 1270,-1000, 843,-1000, 843, 843, - 843, 843, 843, -158,-1000, 78, 78, 395,-1000,-1000, --1000,-1000,-1000,-1000, 1219, 1414, 1262, 999,-1000,-1000, - 400, 1259, 1026, 532, 159,-1000, 5, 78, 1413, 1412, --1000, 3512, 1570, 1211, 1211, 1211, 395, 395,-1000, 969, - 716, 175,-1000,-1000,-1000,-1000,-1000,-1000, 1569, 1410, - 399, 840, 1016, -79, 1568, 1563, 3408,-1000,-1000, 1404, - 1093, 515, 468, -79, 3512, 78, 1219, 78, 1215, -339, - 395, 1219,-1000,-1000, 3512,-1000,-1000, 1219,-1000, -34, - 98, 1409, -238,-1000,-1000, 1219, 2699, 899, 898, 2918, - 1000, -140, -149, 1408, 1407, 395, 1261,-1000, -34,-1000, - 309, 309,-1000,-1000,-1000,-1000, 383,-1000,-1000,-1000, --1000,-1000,-1000,-1000, 1211, 1219, 1403, 78, 1219, 1402, --1000, 395, -79, 1562, 897, 895, 892, 887,-1000, 235, - 2049,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000, 1166, 1165, 1561, 1000, 126, 1401, 984, 43, - 1560, -407, -38,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000, 521,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000, 1558, 1558,-1000, 1558, - 1911,-1000,-1000, -406,-1000, -392,-1000,-1000, -427,-1000, --1000,-1000, 1399,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 126,-1000,-1000,-1000,-1000,-1000, 155, 492, 1219,-1000, - 235, 1150, 397,-1000, 3020, 462, 1007,-1000,-1000,-1000, --1000,-1000, 125, -34, 1211, 1219,-1000, 395, 1204, 2918, --1000, 78,-1000,-1000, 698,-1000,-1000,-1000, 1169, 1160, - 1130, 1122, 1119, 1113, 1111, 1108, 1066, 1065, 1058, 1052, - 1045, 361, 1029, 1009, 43, 498, 1094, -34, -34, 78, - 968,-1000,-1000,-1000, 489, 489, 489, 489,-1000,-1000, --1000,-1000,-1000,-1000, 489, 489, 489,-1000,-1000,-1000, --1000,-1000, -440, 2699, 878, 877, 2918,-1000, 489, 1219, - 678,-1000, 126,-1000, 126, 3,-1000, 1250,-1000,-1000, - 2039, 126, 78,-1000,-1000, 1219,-1000, 1396,-1000,-1000, - 1161,-1000,-1000, -290, 1090, 1976,-1000,-1000,-1000,-1000, - 1292,-1000, -256, -261, 78,-1000,-1000,-1000,-1000, 472, - 218, 235, 718, 500,-1000,-1000,-1000,-1000,-1000,-1000, --1000, -432,-1000,-1000, 44,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000, 494,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000, 78,-1000,-1000,-1000,-1000, 1557, 1292, - 1550,-1000,-1000,-1000,-1000,-1000, 416, 1391, 1204,-1000, - 175, 1390, 1243,-1000, 1389, 2811,-1000,-1000,-1000, -40, - 78, 1293, 78, 2970, 78, 143, 78, 69, 78, 105, - 78, 78, 78, 78, 78, 78, 78, 105, 78, 78, - 78, 78, 78, 78, 78, 998, 992, 988, 985, 78, - 78, -127, 78, 1388, 1292,-1000,-1000, 1548, 1544, 1387, - 1386, 876,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 382, 0,-1000, 1224,-1000, 1209,-1000,-1000, -79, 2918, --1000,-1000, 1292,-1000, 1542, 1541, 1540, 1539, 1538, 1537, - 4, 1536, 1535, 1533, 1531, 1530, 1529,-1000,-1000,-1000, - 383,-1000, 1528, 1385, 123,-1000,-1000,-1000,-1000, 1384, --1000, 686, 78,-1000, 1248, 78, 78, 1006, 235, 870, --1000,-1000,-1000,-1000,-1000,-1000,-1000, 141, 78, 622, - 571,-1000,-1000,-1000,-1000,-1000, 2918,-1000, 648,-1000, --1000,-1000, 1724, 1383, 1382, 857, 139, 1381, 1380, 849, - 1378, 844, 1376, 1375, 842, 1368, 1367, 825, 1366, 820, - 1365, 807, 1364, 798, 1356, 792, 1355, 790, 1345, 787, - 1332, 775, 1331, 764, 105, 78, 78, 78, 78, 78, - 78, 78, 1330, 761, 1329, 752,-1000, 393, -34, -34, --1000,-1000, 553, 3512, -79, 2918, -34, 1087,-1000, 1523, - 1522, 1520, 1519, 1158, -34,-1000,-1000,-1000,-1000, 78, - 746, 235, 736, 733, 78, 1292,-1000,-1000, 1328, 1157, - 1145, 1131, 1326,-1000, 72,-1000, 1068, 724, 96,-1000, --1000,-1000, 1518, 1324,-1000,-1000, 1515,-1000, 1512,-1000, --1000, 1511,-1000,-1000, 1510,-1000, 1509,-1000, 1508,-1000, - 1507,-1000, 1506,-1000, 1497,-1000, 1496,-1000, 1494,-1000, - 1493, 1322, 670, 1320, 658, 1319, 629, 1316, 624,-1000, - 1492,-1000, 1491,-1000, 1315, 1313,-1000, 2699, 1087,-1000, - 1312, 1488,-1000, 471, 383, 1311, 496,-1000, 1245,-1000, - 2013, 1310,-1000, 78, 78, 78,-1000,-1000, 2970,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000, 1487,-1000, 1486,-1000, - 1485,-1000, 1484,-1000,-1000,-1000,-1000, -20, 1482, 1000, - -34,-1000,-1000,-1000, 235,-1000, 984,-1000, 1307, 1306, - 1305,-1000, 180, 1406, 2083, 687, 448, 466, 526, 522, - 519, 461, 455, 434, 414,-1000,-1000,-1000,-1000, 405, - 132, -79, -34,-1000, 1304, 1799, 1234,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000, 91,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000, 439, 365, 290, - 283,-1000,-1000,-1000, 1433, 1303,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000, 1405, 235,-1000,-1000,-1000,-1000,-1000, -34, - -442, 78, 1258, 1299, -191, 1298,-1000,-1000, 382,-1000, - 3512, 2699, -25, -79, 1087, 1334, -34, 1296,-1000 +#define YYTABLESIZE 14674 +static int yytable[] = { 70, + 124, 125, 226, 227, 164, 161, 59, 288, 517, 159, + 109, 518, 48, 637, 118, 638, 218, 57, 519, 1167, + 863, 163, 168, 169, 170, 171, 55, 973, 939, 56, + 1181, 202, 348, 775, 45, 776, 408, 410, 412, 414, + 416, 1218, 851, 800, 671, 621, 699, 1216, 621, 119, + 205, 621, 537, 458, 1250, 682, 683, 684, 567, 91, + 166, 119, 135, 929, 750, 1509, 287, 205, 1284, 205, + 78, 1522, 205, 753, 710, 282, 1511, 1243, 205, 281, + 321, 1538, 120, 121, 205, 313, 1491, 1517, 74, 402, + 231, 291, 558, 1500, 176, 177, 266, 280, 621, 266, + 1222, 163, 66, 34, 452, 313, 568, 457, 237, 800, + 248, 251, 252, 253, 454, 470, 1513, 208, 185, 94, + 1519, 67, 68, 1533, 69, 453, 258, 203, 279, 260, + 268, 1552, 404, 215, 206, 217, 266, 688, 1520, 1344, + 166, 72, 1530, 1286, 1531, 1532, 212, 1083, 289, 75, + 269, 272, 270, 1549, 282, 471, 1063, 205, 281, 197, + 1087, 1088, 1550, 109, 407, 202, 282, 1551, 935, 613, + 281, 553, 1461, 234, 235, 1219, 280, 67, 68, 1287, + 69, 378, 119, 405, 110, 205, 689, 268, 280, 1345, + 456, 1408, 448, 492, 409, 112, 1015, 205, 469, 430, + 431, 1132, 716, 582, 451, 1062, 270, 279, 424, 67, + 68, 205, 69, 559, 1486, 405, 1016, 1589, 273, 279, + 1492, 323, 425, 700, 111, 1220, 466, 683, 775, 775, + 1082, 775, 484, 475, 562, 1173, 67, 268, 1355, 69, + 478, 379, 293, 67, 68, 405, 69, 249, 250, 718, + 1514, 716, 155, 895, 271, 135, 560, 800, 655, 114, + 421, 480, 482, 1141, 167, 497, 486, 762, 737, 488, + 289, 147, 504, 491, 215, 704, 172, 966, 500, 501, + 502, 503, 460, 461, 769, 468, 119, 34, 215, 282, + 988, 989, 990, 281, 122, 123, 770, 771, 718, 119, + 561, 525, 59, 1536, 78, 544, 550, 521, 48, 78, + 119, 280, 524, 57, 772, 266, 556, 2, 266, 558, + 481, 522, 55, 800, 523, 56, 535, 109, 557, 520, + 45, 117, 163, 487, 958, 119, 215, 215, 34, 1537, + 1202, 494, 279, 119, 1070, 1071, 122, 123, 67, 68, + 845, 69, 119, 1356, 122, 123, 960, 590, 590, 609, + 615, 119, 216, 492, 773, 119, 541, 119, 119, 215, + 551, 166, 34, 531, 539, 532, 119, 588, 178, 533, + 589, 589, 608, 614, 98, 119, 558, 542, 543, 636, + 119, 552, 580, 155, 173, 565, 119, 275, 276, 277, + 1524, 972, 1414, 411, 1432, 67, 68, 775, 69, 776, + 1498, 236, 477, 581, 678, 800, 800, 179, 1493, 895, + 348, 67, 68, 413, 69, 473, 422, 321, 205, 126, + 775, 745, 415, 205, 626, 800, 34, 1328, 715, 660, + 1089, 98, 1510, 653, 1535, 654, 181, 800, 1515, 800, + 800, 182, 800, 800, 405, 67, 68, 98, 69, 109, + 451, 641, 270, 147, 147, 1244, 632, 633, 183, 634, + 566, 635, 679, 184, 405, 681, 275, 276, 277, 548, + 847, 67, 68, 405, 69, 119, 643, 644, 275, 276, + 277, 98, 712, 714, 1091, 13, 187, 67, 68, 466, + 69, 205, 1156, 536, 1093, 611, 1099, 278, 612, 754, + 664, 67, 68, 156, 69, 155, 539, 992, 219, 800, + 800, 800, 800, 800, 800, 800, 558, 494, 1215, 987, + 711, 713, 621, 774, 539, 70, 73, 76, 79, 82, + 85, 88, 714, 685, 686, 1092, 1101, 723, 1359, 1360, + 1503, 719, 782, 1103, 786, 1094, 348, 1100, 468, 911, + 450, 34, 67, 68, 67, 69, 220, 69, 119, 702, + 126, 1105, 124, 696, 697, 152, 153, 154, 221, 27, + 28, 29, 30, 31, 32, 33, 1494, 1125, 1323, 1107, + 232, 1543, 1126, 233, 1327, 909, 709, 1102, 98, 714, + 764, 915, 238, 1109, 1104, 724, 766, 202, 1404, 323, + 720, 275, 276, 277, 913, 785, 1516, 267, 1111, 722, + 743, 121, 1106, 119, 735, 545, 726, 598, 1406, 517, + 1113, 995, 518, 996, 997, 998, 999, 1000, 1125, 519, + 1108, 744, 258, 1126, 933, 546, 547, 1115, 1117, 259, + 2, 755, 756, 274, 1110, 497, 34, 759, 769, 760, + 458, 67, 68, 1413, 69, 283, 763, 450, 862, 1112, + 770, 771, 1125, 893, 284, 894, 900, 1126, 848, 768, + 884, 1114, 564, 564, 67, 68, 1119, 69, 772, 905, + 781, 285, 126, 910, 912, 914, 931, 286, 1116, 1118, + 928, 1121, 293, 122, 123, 545, 540, 1271, 1462, 1273, + 1123, 862, 926, 799, 205, 940, 152, 153, 154, 1470, + 98, 292, 587, 1289, 540, 546, 547, 205, 67, 68, + 1290, 69, 564, 156, 156, 892, 156, 1120, 773, 558, + 558, 624, 558, 380, 1254, 323, 294, 902, 906, 898, + 494, 1193, 1122, 67, 68, 34, 69, 1464, 403, 964, + 959, 1124, 961, 27, 28, 29, 30, 31, 32, 33, + 922, 1074, 924, 967, 925, 2, 122, 123, 943, 930, + 1084, 295, 974, 67, 68, 1256, 69, 945, 417, 975, + 282, 976, 977, 978, 281, 1255, 1258, 67, 68, 944, + 69, 994, 1546, 458, 1153, 1260, 1154, 1155, 740, 946, + 947, 740, 280, 356, 27, 28, 29, 30, 31, 32, + 33, 1147, 1139, 957, 205, 10, 11, 12, 13, 1076, + 979, 980, 981, 1527, 970, 1172, 1257, 458, 152, 153, + 154, 595, 545, 279, 1554, 420, 991, 1259, 27, 28, + 29, 30, 31, 32, 33, 34, 1261, 1577, 1001, 458, + 1002, 67, 546, 547, 69, 119, 546, 463, 464, 546, + 2, 449, 34, 619, 619, 1579, 982, 983, 984, 1189, + 985, 205, 1134, 986, 67, 68, 1066, 69, 1128, 1174, + 1591, 1175, 1555, 432, 1136, 1192, 455, 886, 887, 459, + 1140, 1135, 266, 266, 458, 266, 462, 664, 569, 569, + 1072, 862, 27, 28, 29, 30, 31, 32, 33, 472, + 1085, 516, 525, 619, 1151, 1160, 609, 1171, 521, 1130, + 1148, 1157, 888, 524, 1588, 1150, 1159, 1207, 607, 606, + 606, 483, 522, 1129, 476, 523, 479, 1149, 1158, 608, + 520, 485, 426, 13, 427, 428, 282, 489, 569, 1185, + 692, 429, 490, 1191, 506, 596, 534, 584, 597, 2, + 585, 586, 540, 1137, 564, 1138, 617, 724, 280, 724, + 1166, 628, 1168, 629, 1307, 1308, 1309, 1310, 862, 606, + 1237, 261, 262, 631, 1311, 1312, 1313, 639, 726, 640, + 726, 263, 642, 222, 974, 223, 224, 225, 651, 279, + 652, 975, 215, 976, 977, 978, 266, 266, 155, 659, + 1188, 665, 1183, 37, 666, 1184, 34, 37, 8, 9, + 667, 37, 37, 67, 68, 1541, 69, 27, 28, 29, + 30, 31, 32, 33, 668, 37, 67, 68, 13, 69, + 119, 829, 979, 980, 981, 670, 122, 123, 545, 673, + 583, 1473, 584, 458, 1472, 585, 586, 1070, 1071, 2, + 97, 889, 890, 596, 891, 99, 37, 100, 546, 547, + 1330, 1331, 844, 1268, 101, 155, 2, 1274, 680, 1526, + 1528, 690, 1162, 61, 64, 1282, 67, 687, 982, 983, + 984, 102, 985, 691, 1291, 986, 122, 123, 545, 603, + 1332, 1333, 275, 276, 277, 708, 103, 829, 507, 693, + 1143, 1144, 1145, 1146, 1221, 458, 1338, 703, 546, 547, + 109, 1301, 27, 28, 29, 30, 31, 32, 33, 1341, + 109, 109, 109, 109, 10, 11, 12, 13, 844, 717, + 109, 109, 109, 705, 1251, 1252, 1253, 254, 255, 256, + 257, 1262, 1263, 1264, 1265, 1266, 1267, 706, 1269, 1270, + 1272, 707, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 119, + 1283, 545, 1285, 716, 1288, 727, 1292, 67, 68, 718, + 852, 458, 1548, 1304, 1305, 126, 119, 97, 100, 25, + 103, 546, 547, 22, 1314, 508, 1411, 5, 6, 7, + 740, 741, 742, 1351, 1352, 1353, 605, 605, 1318, 509, + 1319, 19, 604, 98, 510, 1018, 1019, 8, 9, 721, + 728, 27, 28, 29, 30, 31, 32, 33, 1371, 749, + 2, 746, 1320, 747, 10, 11, 12, 13, 1128, 511, + 512, 748, 16, 757, 67, 68, 1329, 69, 758, 761, + 765, 1422, 126, 603, 13, 829, 1336, 155, 767, 513, + 1339, 1340, 780, 787, 605, 1405, 789, 606, 275, 276, + 277, 1343, 1004, 1005, 1006, 1007, 1008, 788, 829, 790, + 98, 791, 1407, 1539, 792, 793, 844, 795, 796, 798, + 1540, 849, 1350, 1354, 514, 515, 1210, 1211, 1212, 1213, + 1214, 862, 1095, 1096, 1097, 1098, 1365, 1366, 1367, 1368, + 1369, 1370, 850, 1372, 853, 854, 40, 67, 68, 855, + 69, 27, 28, 29, 30, 31, 32, 33, 856, 860, + 857, 152, 153, 154, 861, 37, 37, 37, 27, 28, + 29, 30, 31, 32, 33, 618, 619, 620, 97, 40, + 1128, 864, 896, 99, 40, 100, 40, 40, 40, 1412, + 40, 897, 101, 40, 901, 916, 604, 923, 569, 1415, + 570, 571, 572, 927, 932, 40, 40, 40, 40, 102, + 907, 621, 622, 623, 934, 1505, 1465, 937, 936, 1421, + 941, 829, 938, 949, 103, 862, 1426, 942, 152, 153, + 154, 948, 969, 1416, 199, 950, 830, 40, 13, 40, + 951, 952, 239, 240, 241, 953, 954, 963, 605, 955, + 956, 606, 962, 971, 405, 908, 67, 68, 215, 69, + 119, 1003, 1009, 829, 126, 1011, 1012, 242, 1013, 40, + 1014, 40, 1064, 829, 1017, 1067, 829, 1078, 1081, 1069, + 1086, 1131, 199, 1463, 1346, 1347, 1348, 1349, 1529, 1133, + 1163, 1573, 98, 1169, 844, 645, 646, 647, 1542, 1170, + 1176, 1584, 830, 1164, 844, 1179, 1165, 844, 1180, 1182, + 1476, 1477, 1478, 1194, 1195, 1196, 1070, 1071, 1197, 198, + 1198, 1199, 27, 28, 29, 30, 31, 32, 33, 1200, + 1201, 648, 649, 650, 1206, 1204, 1208, 1209, 1240, 1501, + 1241, 7, 10, 13, 1242, 1246, 1245, 829, 829, 829, + 829, 829, 829, 829, 1247, 1248, 1249, 473, 1298, 1300, + 862, 243, 1512, 244, 245, 246, 247, 1518, 1512, 1521, + 1302, 1525, 1303, 1518, 1512, 1521, 1306, 1315, 844, 844, + 844, 844, 844, 844, 844, 1316, 1317, 1321, 1322, 1585, + 1324, 624, 1325, 1337, 1342, 1518, 1512, 1521, 295, 1091, + 1093, 1099, 862, 1101, 1103, 1105, 40, 40, 40, 40, + 152, 153, 154, 1107, 40, 1109, 1358, 40, 1111, 40, + 40, 40, 40, 40, 40, 40, 1113, 40, 40, 40, + 40, 1115, 40, 40, 40, 34, 40, 40, 40, 40, + 1117, 1410, 40, 40, 40, 40, 1357, 1361, 1362, 1363, + 830, 1364, 40, 1373, 40, 1374, 1375, 40, 1580, 1586, + 1376, 40, 40, 1377, 40, 104, 1401, 1378, 40, 40, + 40, 40, 1379, 830, 190, 1380, 1381, 191, 192, 193, + 194, 1382, 195, 196, 197, 40, 974, 1383, 1384, 1385, + 1386, 1387, 1388, 975, 1389, 976, 977, 978, 1390, 321, + 1391, 322, 1392, 1393, 40, 40, 40, 40, 40, 1394, + 40, 40, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 390, + 40, 40, 190, 1403, 1409, 191, 192, 193, 194, 1417, + 195, 196, 197, 1418, 979, 980, 981, 40, 1419, 1423, + 1254, 1256, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 1424, + 982, 983, 984, 558, 985, 1258, 830, 986, 1425, 1260, + 1428, 1427, 1429, 1430, 40, 40, 40, 40, 1431, 40, + 40, 40, 40, 1433, 390, 40, 1434, 40, 1435, 40, + 40, 40, 40, 1436, 40, 40, 558, 40, 40, 40, + 1437, 558, 1438, 558, 558, 558, 40, 558, 830, 1439, + 558, 1440, 1441, 1442, 1443, 1444, 67, 1445, 830, 69, + 1446, 830, 558, 558, 558, 558, 1447, 1448, 1449, 2, + 1450, 295, 389, 1451, 40, 40, 40, 1452, 295, 1453, + 295, 295, 295, 1454, 1455, 1456, 1459, 1457, 1458, 1460, + 1469, 1466, 40, 40, 558, 40, 40, 40, 1471, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 1475, 1481, + 1482, 1483, 1484, 858, 95, 1499, 1502, 96, 1504, 295, + 295, 295, 1506, 1507, 1508, 1544, 558, 1545, 558, 1556, + 1574, 1575, 830, 830, 830, 830, 830, 830, 830, 1553, + 97, 98, 1576, 1587, 1581, 99, 1578, 100, 1582, 1583, + 1590, 4, 1592, 434, 101, 435, 537, 389, 831, 104, + 29, 390, 714, 137, 390, 295, 295, 295, 535, 295, + 780, 102, 295, 836, 396, 815, 725, 807, 538, 390, + 530, 138, 390, 390, 390, 390, 103, 390, 390, 390, + 732, 726, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 533, 534, 837, 542, 7, + 268, 74, 143, 311, 312, 313, 314, 315, 316, 808, + 816, 161, 144, 237, 831, 147, 164, 8, 9, 568, + 28, 28, 207, 31, 55, 58, 55, 94, 106, 55, + 297, 55, 55, 55, 10, 11, 12, 13, 1534, 55, + 109, 115, 112, 55, 55, 317, 55, 118, 55, 55, + 630, 55, 965, 558, 558, 55, 558, 55, 1178, 318, + 899, 558, 1065, 1474, 558, 1334, 558, 558, 558, 558, + 558, 558, 558, 1177, 558, 558, 558, 558, 1239, 558, + 558, 859, 1296, 558, 558, 558, 558, 1080, 1090, 558, + 558, 558, 558, 1326, 319, 320, 1335, 559, 563, 558, + 669, 558, 389, 162, 558, 389, 389, 389, 389, 558, + 389, 389, 389, 1077, 93, 558, 558, 558, 558, 1299, + 238, 27, 28, 29, 30, 31, 32, 33, 165, 201, + 559, 794, 917, 698, 921, 559, 736, 559, 559, 559, + 600, 559, 505, 0, 559, 677, 0, 0, 0, 0, + 0, 558, 0, 558, 558, 558, 559, 559, 559, 559, + 0, 0, 831, 0, 0, 0, 0, 558, 558, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 558, 831, 0, 0, 559, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, + 559, 558, 559, 0, 558, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 558, 558, 558, 558, 0, 558, 558, 558, 558, + 0, 0, 558, 0, 558, 0, 558, 558, 558, 0, + 0, 558, 558, 0, 558, 558, 558, 0, 0, 0, + 0, 0, 0, 558, 865, 866, 867, 0, 868, 869, + 870, 871, 0, 872, 873, 197, 0, 874, 875, 876, + 877, 0, 0, 0, 878, 879, 0, 0, 831, 0, + 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, + 558, 0, 558, 558, 558, 0, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, + 831, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 831, 0, 0, 831, 0, 0, 0, 559, 559, 0, + 559, 0, 880, 0, 0, 559, 0, 0, 559, 0, + 559, 559, 559, 559, 559, 559, 559, 0, 559, 559, + 559, 559, 0, 559, 559, 0, 1572, 559, 559, 559, + 559, 0, 0, 559, 559, 559, 559, 0, 0, 0, + 0, 552, 0, 559, 0, 559, 0, 0, 559, 0, + 0, 0, 0, 559, 0, 0, 0, 0, 0, 559, + 559, 559, 559, 0, 831, 831, 831, 831, 831, 831, + 831, 0, 0, 0, 552, 0, 0, 0, 0, 552, + 0, 552, 552, 552, 0, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 559, 0, 559, 559, 559, + 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, + 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, + 0, 0, 552, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 0, 0, 0, 552, 559, 552, 0, 559, 559, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 559, 559, 559, 559, 0, + 559, 559, 559, 559, 0, 0, 559, 1557, 559, 0, + 559, 559, 559, 0, 0, 559, 559, 0, 559, 559, + 559, 0, 1558, 0, 0, 0, 0, 559, 0, 0, + 865, 866, 867, 0, 868, 869, 870, 871, 1559, 872, + 873, 197, 0, 874, 875, 876, 877, 1560, 0, 0, + 878, 879, 0, 0, 0, 559, 559, 0, 0, 0, + 0, 1561, 1562, 1563, 1564, 0, 0, 0, 0, 0, + 0, 0, 0, 559, 559, 0, 559, 559, 559, 0, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 0, + 0, 0, 0, 1565, 1566, 1567, 1568, 1569, 1570, 1571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 552, 552, 0, 552, 0, 0, 0, 880, 552, + 0, 0, 552, 0, 552, 552, 552, 552, 552, 552, + 552, 0, 552, 552, 552, 552, 0, 552, 552, 0, + 0, 552, 552, 552, 552, 0, 0, 552, 552, 552, + 552, 95, 0, 0, 96, 550, 0, 552, 0, 552, + 0, 0, 552, 0, 0, 0, 0, 552, 0, 0, + 0, 0, 0, 552, 552, 552, 552, 97, 98, 0, + 0, 0, 99, 0, 100, 0, 0, 0, 550, 781, + 781, 101, 781, 550, 0, 550, 550, 550, 0, 550, + 0, 0, 0, 0, 0, 0, 0, 0, 102, 552, + 0, 552, 552, 552, 550, 550, 550, 550, 0, 0, + 0, 0, 0, 103, 0, 552, 552, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 552, 0, 0, 0, 550, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 0, 0, 0, 550, 552, + 550, 0, 552, 552, 781, 781, 781, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, + 552, 552, 552, 0, 552, 552, 552, 552, 0, 781, + 552, 0, 552, 0, 552, 552, 552, 0, 0, 552, + 552, 0, 552, 552, 552, 0, 127, 0, 0, 0, + 0, 552, 130, 131, 132, 0, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 0, 1293, 144, 0, 0, 0, 0, 0, 552, + 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 552, 552, 0, + 552, 552, 552, 0, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 0, 0, 0, 0, 0, 0, 0, + 0, 1294, 0, 781, 0, 781, 781, 781, 781, 0, + 0, 0, 0, 0, 0, 550, 550, 0, 550, 0, + 1295, 0, 0, 550, 0, 0, 550, 0, 550, 550, + 550, 550, 550, 550, 550, 0, 550, 550, 550, 550, + 0, 550, 550, 0, 0, 550, 550, 550, 550, 0, + 0, 550, 550, 550, 550, 0, 0, 0, 0, 548, + 0, 550, 0, 550, 0, 0, 550, 0, 0, 0, + 0, 550, 0, 0, 0, 0, 0, 550, 550, 550, + 550, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 548, 0, 0, 0, 0, 548, 0, 548, + 548, 548, 0, 548, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 550, 0, 550, 550, 550, 548, 548, + 548, 548, 0, 0, 0, 0, 0, 0, 0, 550, + 550, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, + 548, 550, 550, 550, 550, 550, 550, 550, 550, 550, + 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, + 550, 550, 550, 550, 550, 550, 550, 550, 550, 0, + 0, 0, 548, 550, 548, 0, 550, 550, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 550, 550, 550, 550, 0, 550, 550, + 550, 550, 0, 0, 550, 0, 550, 215, 550, 550, + 550, 0, 0, 550, 550, 0, 550, 550, 550, 0, + 0, 0, 1223, 1224, 1225, 550, 1226, 1227, 1228, 1229, + 0, 1230, 1231, 197, 0, 1232, 1233, 1234, 1235, 0, + 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, + 0, 0, 0, 550, 550, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 550, 550, 0, 550, 550, 550, 0, 550, 550, + 550, 550, 550, 550, 550, 550, 550, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, + 548, 0, 548, 0, 0, 0, 0, 548, 0, 0, + 548, 0, 548, 548, 548, 548, 548, 548, 548, 0, + 548, 548, 548, 548, 0, 548, 548, 0, 0, 548, + 548, 548, 548, 0, 0, 548, 548, 548, 548, 0, + 0, 0, 0, 549, 0, 548, 0, 548, 0, 0, + 548, 0, 0, 0, 0, 548, 0, 0, 0, 0, + 0, 548, 548, 548, 548, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, + 0, 549, 0, 549, 549, 549, 0, 549, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 548, 0, 548, + 548, 548, 549, 549, 549, 549, 0, 0, 0, 0, + 0, 0, 0, 548, 548, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 548, 0, 0, 0, 549, 548, 548, 548, 548, 548, + 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, + 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, + 548, 548, 548, 0, 0, 0, 549, 548, 549, 0, + 548, 548, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 548, 548, 548, + 548, 0, 548, 548, 548, 548, 0, 0, 548, 0, + 548, 0, 548, 548, 548, 0, 0, 548, 548, 0, + 548, 548, 548, 0, 0, 0, 0, 0, 0, 548, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 548, 548, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 548, 548, 0, 548, 548, + 548, 0, 548, 548, 548, 548, 548, 548, 548, 548, + 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 549, 549, 0, 549, 0, 0, 0, + 0, 549, 0, 0, 549, 0, 549, 549, 549, 549, + 549, 549, 549, 0, 549, 549, 549, 549, 0, 549, + 549, 0, 0, 549, 549, 549, 549, 0, 0, 549, + 549, 549, 549, 0, 0, 0, 0, 551, 0, 549, + 0, 549, 0, 0, 549, 0, 0, 0, 0, 549, + 0, 0, 0, 0, 0, 549, 549, 549, 549, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 0, 0, 0, 0, 551, 0, 551, 551, 551, + 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 549, 0, 549, 549, 549, 551, 551, 551, 551, + 0, 0, 0, 0, 0, 0, 0, 549, 549, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 549, 0, 0, 0, 551, 549, + 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 549, 549, 549, 549, 0, 0, 0, + 551, 549, 551, 0, 549, 549, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 549, 549, 549, 549, 0, 549, 549, 549, 549, + 0, 0, 549, 0, 549, 0, 549, 549, 549, 0, + 0, 549, 549, 0, 549, 549, 549, 0, 0, 0, + 0, 0, 0, 549, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 549, 549, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, + 549, 0, 549, 549, 549, 0, 549, 549, 549, 549, + 549, 549, 549, 549, 549, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 551, 551, 0, + 551, 0, 0, 0, 0, 551, 0, 0, 551, 0, + 551, 551, 551, 551, 551, 551, 551, 0, 551, 551, + 551, 551, 0, 551, 551, 0, 0, 551, 551, 551, + 551, 0, 0, 551, 551, 551, 551, 0, 0, 0, + 0, 686, 0, 551, 0, 551, 0, 0, 551, 0, + 0, 0, 0, 551, 0, 0, 0, 0, 0, 551, + 551, 551, 551, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 686, 0, 0, 0, 0, 686, + 0, 686, 686, 686, 0, 686, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 551, 0, 551, 551, 551, + 686, 686, 686, 686, 0, 0, 0, 0, 0, 0, + 0, 551, 551, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, + 0, 0, 686, 551, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 551, 0, 0, 0, 686, 551, 686, 0, 551, 551, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 551, 551, 551, 551, 0, + 551, 551, 551, 551, 0, 0, 551, 0, 551, 0, + 551, 551, 551, 0, 0, 551, 551, 0, 551, 551, + 551, 0, 0, 0, 0, 0, 0, 551, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 551, 551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 551, 551, 0, 551, 551, 551, 0, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 686, 686, 0, 686, 0, 0, 0, 0, 686, + 0, 0, 686, 0, 686, 686, 686, 686, 686, 686, + 686, 0, 686, 686, 686, 686, 0, 686, 686, 0, + 0, 686, 686, 686, 686, 0, 0, 686, 686, 686, + 0, 0, 0, 0, 0, 685, 0, 686, 0, 686, + 0, 0, 686, 0, 0, 0, 0, 686, 0, 0, + 0, 0, 0, 686, 686, 686, 686, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, + 0, 0, 0, 685, 0, 685, 685, 685, 0, 685, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, + 0, 686, 686, 686, 685, 685, 685, 685, 0, 0, + 0, 0, 0, 0, 0, 686, 686, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 686, 0, 0, 0, 685, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 0, 0, 0, 685, 686, + 685, 0, 686, 686, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, + 686, 686, 686, 0, 686, 686, 686, 686, 0, 0, + 686, 0, 686, 0, 686, 686, 686, 0, 0, 686, + 686, 0, 686, 686, 686, 0, 0, 0, 0, 0, + 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, + 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 686, 686, 0, + 686, 686, 686, 0, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 685, 685, 0, 685, 0, + 0, 0, 0, 685, 0, 0, 685, 0, 685, 685, + 685, 685, 685, 685, 685, 0, 685, 685, 685, 685, + 0, 685, 685, 0, 0, 685, 685, 685, 685, 0, + 0, 685, 685, 685, 0, 0, 0, 0, 0, 693, + 0, 685, 0, 685, 0, 0, 685, 0, 0, 0, + 0, 685, 0, 0, 0, 0, 0, 685, 685, 685, + 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 693, 0, 0, 0, 0, 0, 0, 693, + 693, 0, 0, 693, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 685, 0, 685, 685, 685, 693, 0, + 693, 693, 0, 0, 0, 0, 0, 0, 0, 685, + 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, + 0, 685, 685, 685, 685, 685, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 685, 685, 0, + 0, 0, 693, 685, 693, 0, 685, 685, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 685, 685, 685, 685, 0, 685, 685, + 685, 685, 0, 0, 685, 0, 685, 0, 685, 685, + 685, 0, 0, 685, 685, 0, 685, 685, 685, 0, + 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 685, 685, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 685, 685, 0, 685, 685, 685, 0, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 693, + 693, 0, 693, 0, 0, 67, 68, 693, 69, 0, + 693, 0, 693, 693, 693, 693, 693, 693, 693, 0, + 693, 693, 693, 693, 0, 693, 693, 0, 0, 693, + 693, 693, 693, 0, 0, 693, 693, 693, 0, 357, + 52, 0, 0, 0, 0, 693, 0, 693, 0, 0, + 693, 0, 0, 0, 0, 693, 0, 0, 0, 0, + 0, 693, 693, 693, 693, 0, 0, 0, 358, 0, + 0, 0, 359, 0, 0, 360, 361, 0, 0, 0, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 0, 0, 0, 0, 0, 693, 374, 52, + 0, 375, 0, 0, 0, 0, 0, 0, 376, 0, + 156, 0, 0, 693, 693, 0, 0, 377, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 693, 0, 0, 0, 0, 693, 693, 693, 693, 693, + 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 693, 693, 52, 0, 52, 0, 693, 0, 0, + 693, 693, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 693, 693, 693, + 693, 0, 693, 693, 693, 693, 0, 0, 693, 0, + 693, 0, 693, 693, 693, 0, 0, 693, 693, 0, + 693, 693, 693, 0, 0, 0, 0, 0, 0, 693, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 693, 693, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 693, 693, 0, 693, 693, + 693, 0, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 52, 52, 52, + 0, 52, 52, 52, 52, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 0, 52, 52, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 554, 127, 555, + 54, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 52, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 98, 143, 144, 0, 0, 0, 52, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 147, 148, 149, 0, 52, 52, 0, 0, 0, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 54, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, + 0, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 105, 0, 105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 52, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 156, 0, 0, 0, 105, 0, 0, 0, + 105, 0, 0, 105, 105, 0, 0, 0, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 54, 0, 0, 54, 0, 0, 105, 0, 0, 105, + 0, 0, 0, 54, 0, 0, 105, 54, 54, 54, + 0, 54, 54, 54, 54, 105, 54, 54, 54, 0, + 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 264, 127, 265, + 55, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 54, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 54, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 147, 148, 149, 0, 54, 54, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 55, 0, 55, 0, 0, 784, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, + 0, 54, 0, 54, 54, 54, 54, 0, 54, 54, + 127, 54, 54, 54, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 54, 54, 0, 54, + 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 222, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 55, 55, 55, + 0, 55, 55, 55, 55, 0, 55, 55, 55, 0, + 55, 55, 55, 55, 0, 0, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 56, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 55, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 55, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 147, 148, 149, 0, 55, 55, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 56, 0, 56, 0, 0, 858, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, + 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, + 222, 55, 55, 55, 222, 222, 222, 222, 222, 0, + 222, 222, 222, 222, 0, 222, 222, 0, 0, 222, + 222, 222, 222, 0, 0, 0, 222, 222, 0, 0, + 0, 0, 0, 0, 0, 222, 0, 222, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 222, 222, 222, 0, 55, 55, 0, 55, + 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 0, 56, 56, 56, + 0, 56, 56, 56, 56, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 0, 0, 56, 56, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 53, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 56, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 56, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 147, 148, 149, 0, 56, 56, 0, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 53, 0, 53, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, + 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 0, 0, 0, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 53, 53, 53, + 0, 53, 53, 53, 53, 0, 53, 53, 53, 0, + 53, 53, 53, 53, 0, 0, 53, 53, 53, 0, + 0, 0, 61, 0, 61, 0, 0, 0, 229, 34, + 0, 0, 229, 229, 229, 229, 229, 0, 229, 229, + 229, 229, 53, 229, 229, 0, 0, 229, 229, 229, + 229, 0, 0, 0, 229, 229, 0, 0, 0, 53, + 0, 0, 0, 229, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 229, 229, 229, 0, 53, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 62, 0, 0, 0, 0, 61, + 0, 0, 61, 0, 0, 0, 0, 0, 53, 53, + 53, 53, 61, 53, 53, 53, 53, 0, 0, 53, + 0, 53, 0, 53, 53, 53, 53, 0, 53, 53, + 0, 53, 53, 53, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 53, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, + 0, 0, 0, 2, 0, 0, 53, 53, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 507, 0, 0, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 61, 61, + 61, 0, 61, 61, 61, 61, 0, 0, 61, 0, + 61, 0, 61, 61, 61, 61, 0, 61, 61, 0, + 61, 61, 61, 0, 0, 0, 0, 0, 0, 508, + 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 509, 0, 0, 0, 0, 510, 0, + 0, 8, 9, 0, 0, 0, 0, 61, 61, 0, + 0, 0, 0, 0, 62, 0, 0, 62, 10, 11, + 12, 13, 0, 511, 512, 61, 61, 62, 61, 61, + 61, 0, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 0, 0, 513, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 65, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 514, 515, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, + 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 0, 66, 0, + 0, 0, 0, 65, 0, 0, 65, 0, 0, 0, + 0, 0, 62, 62, 62, 62, 65, 62, 62, 62, + 62, 0, 0, 62, 0, 62, 0, 62, 62, 62, + 62, 0, 62, 62, 0, 62, 62, 62, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 222, 0, + 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 62, 62, 0, 62, 62, 62, 0, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 66, 0, 0, 222, 0, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 0, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, + 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 65, 65, 0, 65, 65, 65, 65, + 0, 0, 65, 0, 65, 0, 65, 65, 65, 65, + 0, 65, 65, 0, 65, 65, 65, 0, 0, 0, + 0, 0, 563, 563, 0, 0, 563, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 0, 563, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, + 65, 66, 65, 65, 65, 0, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 222, 563, 0, 0, + 222, 222, 222, 222, 222, 0, 222, 222, 222, 222, + 66, 222, 222, 0, 0, 222, 222, 222, 222, 0, + 0, 0, 222, 222, 0, 0, 0, 66, 0, 0, + 0, 222, 0, 222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 222, 222, + 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 222, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 0, 0, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 563, 0, 563, 66, 66, 66, 66, + 0, 66, 66, 66, 66, 563, 563, 66, 0, 66, + 0, 66, 66, 66, 66, 0, 66, 66, 0, 66, + 66, 66, 0, 561, 561, 0, 0, 561, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 561, 563, 561, 0, 0, 0, 563, 0, + 0, 0, 0, 0, 563, 0, 66, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 66, 0, 66, 66, 66, + 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 1020, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 561, 0, 561, 1021, + 1022, 0, 1023, 1024, 1025, 1026, 1027, 1028, 0, 1029, + 1030, 0, 1031, 1032, 1033, 1034, 1035, 0, 563, 563, + 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, + 563, 563, 563, 563, 563, 563, 0, 0, 0, 563, + 563, 563, 563, 563, 563, 563, 0, 0, 0, 0, + 563, 0, 0, 563, 563, 0, 0, 562, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 563, 563, 563, 0, 563, 563, 563, 563, 0, + 0, 563, 0, 563, 0, 563, 563, 563, 0, 0, + 563, 563, 0, 563, 563, 563, 0, 562, 562, 0, + 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 0, 562, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 563, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 561, 561, 563, 563, + 0, 563, 563, 563, 0, 563, 563, 563, 563, 563, + 563, 563, 563, 563, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 0, 562, 0, 561, 0, 0, 0, 0, 561, + 0, 0, 0, 0, 0, 561, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1036, 1037, 0, + 1038, 1039, 1040, 0, 1041, 1042, 0, 0, 1043, 1044, + 0, 1045, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 0, 0, 33, + 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, + 0, 561, 0, 0, 561, 561, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 561, 561, 561, 561, 0, 561, 561, 561, 561, + 562, 562, 561, 0, 561, 0, 561, 561, 561, 0, + 0, 561, 561, 0, 561, 561, 561, 0, 0, 0, + 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, + 0, 0, 0, 562, 0, 0, 0, 0, 0, 562, + 0, 561, 561, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, + 561, 0, 561, 561, 561, 0, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 0, 0, 0, 562, 562, 562, 562, 562, 562, + 562, 0, 0, 0, 0, 562, 0, 0, 562, 562, + 33, 34, 0, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 562, 562, 562, 562, 0, + 562, 562, 562, 562, 0, 0, 562, 0, 562, 0, + 562, 562, 562, 0, 0, 562, 562, 0, 562, 562, + 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 34, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 562, 562, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 562, 0, 562, 562, 562, 0, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 0, + 0, 0, 0, 0, 0, 763, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 0, 763, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 33, 33, 0, 33, 33, 33, 33, 0, 0, 33, + 0, 33, 34, 0, 33, 34, 0, 0, 0, 0, + 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 0, + 763, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 382, 97, 0, 0, 0, 0, 99, 0, 100, 0, + 0, 0, 0, 0, 34, 101, 33, 33, 0, 33, + 33, 33, 0, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 102, 383, 0, 384, 385, 386, 387, 388, + 0, 0, 0, 0, 389, 0, 0, 103, 0, 765, + 0, 0, 0, 390, 0, 0, 0, 0, 391, 0, + 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, + 777, 0, 0, 0, 0, 401, 0, 0, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 0, 0, 765, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 763, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 777, + 34, 34, 34, 34, 0, 34, 34, 34, 34, 0, + 0, 34, 0, 34, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, + 0, 0, 765, 0, 765, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 0, 0, 0, 777, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, + 0, 34, 34, 34, 0, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 763, 763, 763, 763, 763, 763, 763, 763, + 763, 763, 763, 763, 763, 763, 763, 763, 763, 0, + 0, 0, 763, 763, 763, 763, 763, 763, 763, 763, + 763, 763, 763, 763, 763, 763, 763, 763, 0, 0, + 769, 0, 0, 0, 0, 0, 0, 0, 0, 765, + 0, 0, 0, 763, 763, 763, 763, 0, 763, 763, + 763, 763, 765, 0, 763, 0, 763, 0, 0, 763, + 0, 0, 0, 0, 0, 0, 763, 763, 763, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 769, 0, 769, 0, 0, 0, + 0, 765, 0, 763, 763, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 763, 0, 763, 763, 763, 0, 763, 763, + 763, 763, 763, 763, 763, 763, 763, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 765, 765, 765, 765, 765, + 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 765, 765, 0, 0, 0, 765, 765, 765, 765, + 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 765, 0, 0, 767, 0, 0, 0, 0, 777, + 777, 777, 777, 777, 0, 0, 0, 765, 765, 765, + 765, 769, 765, 765, 765, 765, 0, 0, 765, 0, + 765, 777, 777, 765, 769, 0, 0, 0, 0, 0, + 765, 765, 765, 0, 0, 0, 0, 0, 777, 777, + 777, 777, 0, 0, 0, 777, 777, 0, 0, 0, + 0, 777, 0, 777, 777, 0, 0, 0, 767, 0, + 767, 777, 777, 0, 0, 0, 0, 765, 765, 0, + 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 765, 765, 0, 765, 765, + 765, 0, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 0, 0, 0, 0, 0, 0, 0, 771, 0, + 0, 0, 0, 0, 0, 0, 777, 777, 0, 777, + 777, 777, 0, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 769, 769, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 769, 0, 0, 771, 769, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 0, 0, 0, 769, + 769, 769, 769, 0, 769, 769, 769, 769, 767, 0, + 769, 0, 769, 0, 0, 769, 0, 0, 0, 0, + 0, 0, 769, 769, 769, 0, 0, 0, 0, 0, + 0, 771, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 767, 0, 769, + 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 769, 769, 0, + 769, 769, 769, 0, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 767, 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, 767, 0, + 0, 0, 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, 771, 721, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 771, 0, 767, 767, 767, 767, 0, 767, 767, + 767, 767, 0, 0, 767, 0, 767, 0, 0, 767, + 0, 0, 0, 0, 0, 0, 767, 767, 767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 771, 0, 0, 721, 0, 721, 0, 0, 0, 0, + 0, 0, 0, 767, 767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 767, 767, 0, 767, 767, 767, 0, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 0, 0, 0, + 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 0, 0, 0, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 0, 723, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 771, 771, 771, 771, + 0, 771, 771, 771, 771, 0, 0, 771, 0, 771, + 721, 0, 771, 721, 0, 0, 0, 0, 0, 771, + 771, 771, 0, 721, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 723, 0, 723, 0, + 0, 0, 0, 0, 0, 0, 771, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 721, 0, 771, 771, 0, 771, 771, 771, + 0, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 397, 0, 0, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 721, 721, 0, 0, 0, 721, 721, 721, + 721, 721, 721, 721, 0, 0, 0, 0, 721, 0, + 0, 721, 721, 723, 0, 0, 723, 397, 0, 0, + 0, 0, 0, 0, 0, 0, 723, 0, 721, 721, + 721, 721, 397, 721, 721, 721, 721, 0, 0, 721, + 0, 721, 0, 721, 721, 721, 0, 0, 721, 721, + 0, 721, 721, 721, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 723, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 721, + 0, 0, 0, 0, 0, 0, 397, 0, 397, 0, + 0, 0, 0, 0, 0, 0, 721, 721, 0, 721, + 721, 721, 0, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 439, 0, 0, 0, 0, 0, 0, 0, 0, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 0, 0, 0, + 723, 723, 723, 723, 723, 723, 723, 0, 0, 0, + 0, 723, 0, 0, 723, 723, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, + 0, 723, 723, 723, 723, 0, 723, 723, 723, 723, + 0, 0, 723, 0, 723, 0, 723, 723, 723, 0, + 0, 723, 723, 0, 723, 723, 723, 0, 0, 0, + 0, 0, 0, 397, 0, 0, 397, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 723, 723, 439, 0, 439, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 723, + 723, 205, 723, 723, 723, 0, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 397, 0, 0, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 205, 0, 205, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 397, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, + 397, 397, 397, 397, 397, 397, 397, 150, 151, 0, + 439, 397, 0, 439, 397, 397, 205, 0, 0, 0, + 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, + 0, 397, 397, 397, 397, 0, 397, 397, 397, 397, + 0, 0, 397, 0, 397, 0, 0, 397, 0, 0, + 0, 0, 207, 0, 397, 397, 397, 0, 0, 0, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, + 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 397, + 397, 207, 397, 397, 397, 0, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 0, 439, 439, 439, 439, + 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, + 439, 439, 439, 439, 205, 0, 0, 439, 439, 439, + 439, 439, 439, 439, 0, 0, 0, 207, 439, 0, + 0, 439, 439, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 439, 439, + 439, 439, 0, 439, 439, 439, 439, 0, 92, 439, + 0, 439, 0, 205, 439, 0, 0, 0, 0, 0, + 0, 439, 439, 439, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 439, 439, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 439, 439, 0, 439, + 439, 439, 0, 439, 439, 439, 439, 439, 439, 439, + 439, 439, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 205, 205, 205, 205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 0, 0, 0, 0, 205, + 93, 0, 205, 205, 0, 207, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, + 205, 205, 205, 0, 205, 205, 205, 205, 0, 0, + 0, 0, 205, 0, 0, 205, 92, 0, 0, 0, + 0, 0, 205, 205, 205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, + 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 205, 205, 0, + 205, 205, 205, 0, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 0, 0, 0, 0, 0, 0, 774, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, + 0, 207, 207, 207, 207, 207, 0, 0, 93, 0, + 47, 0, 0, 0, 0, 207, 0, 0, 0, 0, + 207, 0, 0, 207, 207, 0, 0, 0, 0, 0, + 0, 0, 92, 92, 92, 92, 92, 0, 774, 0, + 207, 207, 207, 207, 0, 207, 207, 207, 207, 0, + 0, 0, 0, 207, 92, 92, 207, 0, 0, 0, + 0, 0, 0, 207, 207, 207, 0, 0, 0, 47, + 0, 92, 92, 92, 92, 0, 0, 0, 92, 92, + 0, 0, 0, 0, 92, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 92, 92, 0, 0, 0, 0, + 207, 207, 0, 0, 774, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 207, 207, + 0, 207, 207, 207, 0, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 0, 47, 0, 0, 0, 0, + 0, 94, 0, 0, 93, 93, 93, 93, 93, 92, + 92, 0, 92, 92, 92, 0, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 48, 93, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 93, 93, 93, 0, 0, 0, + 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 93, 0, 93, 93, 93, 0, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, + 94, 94, 0, 47, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 94, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 94, 94, 94, 94, + 0, 0, 0, 94, 94, 0, 0, 0, 0, 94, + 0, 0, 94, 0, 0, 0, 0, 50, 0, 94, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 774, 774, + 774, 774, 774, 0, 94, 94, 50, 94, 94, 94, + 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 774, 774, 0, 0, 0, 0, 0, 0, 0, 47, + 47, 47, 47, 47, 0, 0, 0, 774, 774, 774, + 774, 49, 0, 0, 774, 774, 0, 0, 48, 0, + 774, 47, 47, 774, 0, 0, 0, 0, 51, 0, + 774, 774, 0, 0, 0, 0, 0, 0, 47, 47, + 47, 47, 50, 0, 0, 47, 47, 0, 0, 0, + 0, 47, 0, 0, 47, 0, 0, 0, 0, 777, + 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 774, 774, 51, 774, 774, + 774, 0, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 47, 47, 777, 47, + 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 51, 48, 48, 48, 48, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, + 50, 0, 0, 48, 48, 48, 48, 0, 0, 0, + 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, + 0, 51, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, + 0, 313, 313, 0, 0, 0, 50, 50, 50, 50, + 50, 0, 777, 0, 49, 49, 49, 49, 0, 0, + 0, 49, 49, 0, 0, 0, 0, 49, 50, 50, + 49, 0, 0, 0, 0, 0, 0, 49, 49, 0, + 0, 0, 0, 33, 0, 50, 50, 50, 50, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 50, 0, + 0, 50, 0, 0, 0, 313, 0, 313, 50, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 49, 0, 49, 49, 49, 0, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 51, 0, 50, 50, 0, 50, 50, 50, 0, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, + 51, 0, 0, 0, 0, 0, 0, 233, 777, 777, + 777, 777, 777, 558, 0, 0, 51, 51, 51, 51, + 0, 0, 0, 51, 51, 233, 0, 0, 33, 51, + 777, 777, 51, 0, 0, 0, 0, 0, 0, 51, + 51, 0, 0, 0, 0, 0, 0, 777, 777, 777, + 777, 0, 0, 0, 777, 777, 0, 0, 0, 0, + 777, 0, 313, 777, 0, 313, 0, 0, 0, 0, + 777, 777, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, + 0, 233, 0, 0, 51, 51, 0, 51, 51, 51, + 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 777, 777, 0, 777, 777, + 777, 0, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 33, 0, 0, 0, 33, 33, 33, 33, 33, + 0, 33, 33, 33, 33, 0, 33, 33, 0, 232, + 33, 33, 33, 33, 0, 37, 0, 33, 33, 0, + 40, 0, 43, 0, 0, 0, 33, 232, 33, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 49, 0, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 52, 0, 0, 0, 313, 0, 0, 0, 313, + 313, 313, 313, 313, 313, 0, 233, 0, 33, 233, + 0, 0, 0, 313, 313, 0, 0, 0, 0, 233, + 558, 232, 0, 232, 0, 0, 0, 0, 0, 0, + 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 33, 0, 0, 0, + 33, 33, 33, 33, 33, 313, 33, 33, 33, 33, + 0, 33, 33, 0, 0, 33, 33, 33, 33, 0, + 37, 0, 33, 33, 0, 40, 0, 43, 0, 0, + 0, 33, 0, 33, 46, 0, 0, 0, 0, 0, + 313, 313, 313, 0, 0, 0, 0, 0, 33, 33, + 33, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 313, 313, 313, + 313, 313, 313, 313, 0, 0, 0, 0, 0, 314, + 0, 0, 0, 33, 0, 0, 0, 233, 0, 0, + 0, 0, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 0, 0, 0, 232, 233, + 0, 232, 0, 233, 233, 233, 233, 233, 233, 0, + 0, 232, 0, 0, 0, 0, 0, 233, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 233, 233, 233, 233, 0, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 233, 233, 0, 0, 0, 0, + 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, + 0, 233, 233, 233, 233, 233, 233, 233, 0, 232, + 0, 0, 0, 0, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 0, 0, 0, + 0, 232, 0, 0, 0, 232, 232, 232, 232, 232, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 232, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 519, + 0, 519, 0, 0, 0, 0, 232, 232, 232, 232, + 0, 0, 0, 0, 0, 0, 0, 232, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 232, 314, 314, 314, 314, 0, 314, 314, 314, + 314, 0, 314, 314, 0, 0, 314, 314, 314, 314, + 0, 0, 0, 314, 314, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 314, 0, 232, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, + 314, 314, 321, 0, 734, 0, 0, 0, 0, 0, + 0, 0, 0, 232, 232, 232, 232, 232, 232, 232, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 519, 0, 0, 519, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 321, 0, 918, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 0, 0, 0, 0, 519, + 0, 0, 0, 519, 519, 519, 519, 519, 519, 0, + 0, 0, 67, 0, 0, 69, 0, 519, 519, 0, + 0, 0, 0, 0, 0, 2, 524, 0, 524, 0, + 0, 0, 0, 0, 519, 519, 519, 519, 0, 0, + 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, + 0, 0, 0, 0, 0, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 0, + 0, 0, 7, 0, 0, 0, 311, 312, 313, 314, + 315, 316, 0, 0, 519, 519, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, + 13, 519, 519, 519, 519, 519, 519, 519, 317, 368, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 0, 0, 524, 0, 7, 524, 0, 0, 311, + 312, 313, 314, 315, 316, 0, 524, 319, 320, 0, + 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 368, 0, 368, 0, 0, 0, 0, + 10, 11, 12, 13, 27, 28, 29, 30, 31, 32, + 33, 317, 360, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 319, 320, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 360, 0, 360, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 353, 0, 0, 0, 524, + 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, + 524, 524, 0, 0, 0, 0, 524, 0, 0, 0, + 524, 524, 524, 524, 524, 524, 0, 0, 0, 0, + 368, 0, 0, 368, 524, 524, 0, 0, 0, 0, + 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, + 0, 524, 524, 524, 524, 0, 0, 0, 0, 353, + 0, 353, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 524, 524, 360, 0, 0, 360, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 524, 524, + 524, 524, 524, 524, 524, 0, 207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 368, 368, 368, 368, + 368, 368, 368, 368, 368, 368, 368, 368, 368, 0, + 0, 0, 0, 368, 0, 0, 0, 368, 368, 368, + 368, 368, 368, 0, 0, 0, 353, 0, 0, 353, + 0, 368, 368, 0, 0, 0, 0, 0, 0, 353, + 207, 0, 207, 0, 0, 0, 0, 0, 368, 368, + 368, 368, 0, 0, 0, 0, 0, 0, 0, 368, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 368, 0, 0, 0, 0, 0, 360, + 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 0, 0, 0, 0, 360, 0, 0, 0, + 360, 360, 360, 360, 360, 360, 0, 0, 368, 368, + 0, 0, 0, 0, 360, 360, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 360, 360, 360, 360, 368, 368, 368, 368, 368, + 368, 368, 360, 518, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, + 0, 0, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 34, 0, 207, 0, 353, + 207, 0, 0, 353, 353, 353, 353, 353, 353, 0, + 207, 360, 360, 0, 0, 0, 0, 353, 353, 0, + 0, 0, 0, 0, 0, 0, 0, 518, 0, 518, + 0, 0, 0, 0, 353, 353, 353, 353, 360, 360, + 360, 360, 360, 360, 360, 353, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, + 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 353, 353, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 353, 353, 353, 353, 353, 353, 0, 0, + 0, 0, 0, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 0, 0, 0, 0, + 207, 0, 0, 0, 207, 207, 207, 207, 207, 207, + 0, 0, 0, 0, 518, 0, 0, 518, 207, 207, + 0, 0, 0, 0, 0, 184, 0, 518, 0, 0, + 0, 0, 0, 0, 0, 207, 207, 207, 207, 0, + 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 207, 207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 207, 207, 207, 207, 207, 207, 207, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 0, 0, 0, 0, 518, 0, 0, + 2, 518, 518, 518, 518, 518, 518, 0, 0, 0, + 0, 0, 0, 0, 0, 518, 518, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, + 0, 0, 518, 518, 518, 518, 0, 0, 0, 0, + 0, 0, 0, 518, 0, 0, 0, 8, 9, 156, + 0, 0, 0, 0, 0, 0, 0, 518, 0, 0, + 0, 0, 0, 0, 10, 11, 12, 13, 0, 184, + 0, 14, 15, 0, 0, 0, 0, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, + 0, 0, 518, 518, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 518, + 518, 518, 518, 518, 518, 518, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, + 7, 0, 20, 21, 0, 22, 23, 24, 0, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 8, 9, + 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 0, 0, 16, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 18, 19, + 0, 0, 0, 0, 0, 184, 0, 184, 184, 184, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 0, 0, 0, 0, 184, 0, 0, 184, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 184, 184, 184, 0, 184, + 184, 0, 0, 20, 21, 0, 22, 23, 24, 0, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 184, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 184, 184, 139, 140, 141, 142, + 433, 156, 0, 143, 144, 0, 282, 0, 0, 0, + 281, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 184, 184, 184, 184, 184, 184, 184, 280, 147, + 148, 149, 0, 434, 0, 435, 436, 437, 438, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, + 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, + 0, 0, 439, 440, 441, 442, 0, 0, 443, 0, + 0, 0, 444, 445, 446, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 0, 0, 209, 209, 209, 209, + 209, 0, 209, 209, 209, 209, 0, 209, 209, 0, + 0, 209, 209, 209, 209, 209, 0, 0, 209, 209, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 209, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 209, 209, 0, 209, 0, + 209, 209, 209, 209, 0, 0, 0, 0, 156, 0, + 0, 0, 0, 282, 0, 0, 0, 692, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 0, 280, 447, 209, 209, 209, + 209, 0, 0, 209, 0, 0, 0, 209, 209, 209, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 677, 98, 143, 144, 0, 677, 0, + 0, 0, 677, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 677, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 677, 156, 0, 0, 0, 150, 282, 275, 276, + 277, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 463, 464, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 465, 0, 152, 153, 154, 67, 68, 0, 69, 0, + 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, + 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 98, 143, 144, 0, 0, 156, 0, 0, 0, + 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 209, 275, 276, 277, 0, 0, + 677, 677, 0, 677, 0, 0, 0, 0, 677, 463, + 464, 677, 0, 0, 156, 677, 677, 677, 677, 677, + 0, 677, 677, 677, 677, 0, 677, 677, 0, 0, + 677, 677, 677, 677, 0, 0, 677, 677, 677, 0, + 0, 0, 0, 0, 0, 0, 677, 0, 677, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 69, 677, 677, 677, 0, 126, 0, 0, + 127, 0, 209, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 677, 0, + 677, 677, 677, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 677, 677, 0, 156, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 677, 677, 677, 150, 0, 275, + 276, 277, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 209, 156, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 903, 0, 0, 0, 209, 0, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 150, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 904, 156, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 156, 0, 0, 0, 150, + 151, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 209, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 67, 68, 0, 69, 147, 148, 149, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 150, 0, 0, 0, 0, 314, 0, 145, + 0, 146, 0, 0, 0, 541, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 841, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, + 154, 538, 0, 67, 68, 314, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 661, + 0, 146, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 67, 68, 0, 69, 147, 148, 149, 0, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 150, 0, 0, 0, 0, 0, 0, 145, 800, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 801, 0, 147, 148, 149, 802, 803, + 0, 804, 805, 806, 807, 808, 809, 0, 810, 811, + 0, 812, 813, 814, 815, 816, 0, 800, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 701, 801, 0, 0, 0, 0, 802, 803, 0, 804, + 805, 806, 807, 808, 809, 0, 810, 811, 0, 812, + 813, 814, 815, 816, 0, 314, 0, 817, 0, 818, + 314, 314, 314, 314, 819, 314, 314, 314, 314, 0, + 314, 314, 0, 0, 314, 314, 314, 314, 0, 0, + 820, 314, 314, 0, 0, 0, 152, 153, 154, 0, + 314, 0, 314, 0, 0, 817, 0, 818, 0, 0, + 0, 0, 819, 0, 0, 0, 0, 314, 314, 314, + 0, 0, 0, 821, 0, 0, 0, 0, 820, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 822, 0, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 0, 0, 0, 840, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 822, 0, 823, 824, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, + 0, 0, 0, 840, }; - -YYSTATIC YYCONST short YYFARDATA YYPGO[] = { - 0, 33, 53, 3, 1876, 57, 40, 6, 1868, 0, - 1867, 1866, 1865, 222, 278, 1864, 1863, 2, 1862, 48, - 36, 1, 26, 30, 27, 4, 1861, 44, 41, 55, - 1860, 38, 39, 8, 18, 7, 31, 1857, 42, 1852, - 28, 25, 1851, 1850, 5, 10, 12, 14, 1846, 1845, - 1844, 1841, 22, 32, 43, 1840, 1839, 1838, 1835, 11, - 1834, 1832, 9, 1831, 34, 1830, 13, 15, 17, 16, - 46, 23, 556, 68, 1247, 29, 268, 1827, 1826, 1825, - 1824, 1820, 1819, 19, 35, 1813, 1343, 1812, 1811, 24, - 771, 123, 1810, 45, 1246, 1809, 1808, 1806, 1805, 1804, - 1803, 1802, 1801, 1800, 1799, 1798, 1796, 1795, 1794, 1048, - 1792, 67, 58, 1791, 65, 130, 62, 59, 1790, 1789, - 70, 1788, 1787, 1786, 1774, 1773, 1772, 56, 1770, 1769, - 1768, 52, 114, 47, 1767, 87, 366, 1764, 1762, 1760, - 1759, 1757, 1750, 1746, 1745, 1744, 1743, 1729, 1726, 1024, - 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 91, 1717, - 1716, 120, 1715, 1714, 1711, 128, 1707, 1706, 1703, 1701, - 1698, 1697, 1696, 60, 1670, 117, 1687, 80, 1686, 520, - 1685, 1676, 1675, 1673, 1564, 1538 +static int yycheck[] = { 4, + 22, 23, 102, 103, 24, 24, 1, 166, 296, 24, + 13, 296, 1, 413, 19, 415, 93, 1, 296, 927, + 673, 24, 27, 28, 29, 30, 1, 782, 728, 1, + 949, 64, 180, 43, 1, 45, 192, 193, 194, 195, + 196, 38, 659, 59, 467, 38, 365, 44, 41, 264, + 46, 44, 91, 43, 1091, 483, 484, 485, 40, 59, + 24, 264, 123, 716, 42, 41, 166, 46, 1119, 46, + 125, 41, 46, 61, 91, 38, 41, 1081, 46, 42, + 123, 41, 20, 21, 46, 40, 1451, 41, 319, 189, + 105, 168, 47, 1464, 36, 37, 41, 60, 91, 44, + 125, 104, 470, 59, 40, 60, 349, 40, 113, 125, + 115, 116, 117, 128, 214, 40, 1481, 76, 60, 263, + 41, 260, 261, 41, 263, 61, 145, 65, 91, 148, + 42, 41, 40, 262, 72, 61, 151, 44, 41, 43, + 104, 91, 41, 263, 41, 41, 92, 40, 167, 380, + 155, 156, 155, 41, 38, 232, 42, 46, 42, 288, + 860, 861, 41, 166, 40, 198, 38, 41, 40, 125, + 42, 330, 61, 111, 112, 43, 60, 260, 261, 299, + 263, 186, 264, 91, 61, 46, 93, 42, 60, 93, + 123, 40, 207, 275, 40, 528, 482, 46, 123, 204, + 205, 901, 44, 351, 209, 91, 209, 91, 44, 260, + 261, 46, 263, 342, 1446, 91, 502, 1588, 156, 91, + 1452, 180, 58, 542, 91, 93, 231, 655, 260, 261, + 123, 263, 93, 238, 334, 935, 260, 42, 1242, 263, + 259, 187, 267, 260, 261, 91, 263, 330, 331, 44, + 1482, 93, 91, 681, 33, 316, 333, 273, 93, 470, + 202, 266, 267, 916, 123, 280, 271, 470, 311, 274, + 289, 123, 287, 278, 262, 518, 262, 40, 283, 284, + 285, 286, 220, 221, 294, 231, 264, 59, 262, 38, + 505, 506, 507, 42, 264, 265, 306, 307, 93, 264, + 333, 296, 297, 263, 359, 327, 328, 296, 297, 364, + 264, 60, 296, 297, 324, 260, 331, 273, 263, 274, + 266, 296, 297, 339, 296, 297, 365, 330, 331, 296, + 297, 470, 335, 271, 762, 264, 262, 262, 59, 299, + 993, 279, 91, 264, 320, 321, 264, 265, 260, 261, + 318, 263, 264, 125, 264, 265, 318, 352, 353, 354, + 355, 264, 288, 275, 374, 264, 325, 264, 264, 262, + 329, 335, 59, 311, 320, 313, 264, 352, 123, 317, + 352, 353, 354, 355, 296, 264, 332, 325, 326, 411, + 264, 329, 351, 91, 267, 337, 264, 360, 361, 362, + 41, 391, 1321, 40, 125, 260, 261, 43, 263, 45, + 1461, 462, 391, 351, 391, 431, 432, 123, 1453, 847, + 568, 260, 261, 40, 263, 421, 262, 123, 46, 268, + 462, 579, 40, 46, 380, 451, 59, 1192, 538, 454, + 863, 296, 1479, 448, 1495, 450, 123, 463, 1483, 465, + 466, 123, 468, 469, 91, 260, 261, 296, 263, 462, + 465, 420, 465, 315, 316, 1082, 404, 405, 123, 407, + 452, 409, 477, 123, 91, 93, 360, 361, 362, 40, + 93, 260, 261, 91, 263, 264, 424, 425, 360, 361, + 362, 296, 91, 44, 40, 451, 315, 260, 261, 504, + 263, 46, 125, 542, 40, 461, 40, 391, 464, 586, + 456, 260, 261, 40, 263, 91, 44, 480, 44, 535, + 536, 537, 538, 539, 540, 541, 47, 465, 525, 41, + 535, 536, 525, 543, 62, 535, 536, 537, 538, 539, + 540, 541, 93, 489, 490, 91, 40, 562, 1248, 1249, + 1469, 556, 629, 40, 631, 91, 704, 91, 504, 91, + 472, 59, 260, 261, 260, 263, 40, 263, 264, 515, + 268, 40, 42, 511, 512, 414, 415, 416, 40, 535, + 536, 537, 538, 539, 540, 541, 1454, 359, 1185, 40, + 61, 1499, 364, 40, 1191, 695, 534, 91, 296, 537, + 605, 701, 123, 40, 91, 564, 611, 640, 306, 568, + 556, 360, 361, 362, 91, 630, 1484, 472, 40, 561, + 579, 91, 91, 264, 570, 266, 564, 125, 91, 917, + 40, 787, 917, 789, 790, 791, 792, 793, 359, 917, + 91, 579, 661, 364, 721, 286, 287, 40, 40, 306, + 273, 593, 594, 47, 91, 670, 59, 599, 294, 601, + 43, 260, 261, 1316, 263, 391, 604, 472, 673, 91, + 306, 307, 359, 678, 391, 680, 691, 364, 61, 617, + 675, 91, 41, 42, 260, 261, 40, 263, 324, 694, + 628, 391, 268, 698, 699, 700, 718, 391, 91, 91, + 715, 40, 267, 264, 265, 266, 44, 1107, 1408, 1109, + 40, 716, 44, 651, 46, 730, 414, 415, 416, 1419, + 296, 41, 125, 299, 62, 286, 287, 46, 260, 261, + 306, 263, 91, 260, 261, 677, 263, 91, 374, 260, + 261, 60, 263, 316, 40, 704, 41, 693, 694, 687, + 688, 41, 91, 260, 261, 59, 263, 1410, 42, 774, + 765, 91, 767, 535, 536, 537, 538, 539, 540, 541, + 708, 848, 710, 778, 712, 273, 264, 265, 737, 717, + 857, 41, 294, 260, 261, 40, 263, 746, 40, 301, + 38, 303, 304, 305, 42, 91, 40, 260, 261, 737, + 263, 41, 1502, 43, 427, 40, 429, 430, 41, 747, + 748, 44, 60, 41, 535, 536, 537, 538, 539, 540, + 541, 125, 44, 761, 46, 448, 449, 450, 451, 848, + 342, 343, 344, 41, 780, 41, 91, 43, 414, 415, + 416, 339, 266, 91, 1544, 40, 784, 91, 535, 536, + 537, 538, 539, 540, 541, 59, 91, 41, 796, 43, + 798, 260, 286, 287, 263, 264, 41, 374, 375, 44, + 273, 61, 59, 41, 42, 1575, 388, 389, 390, 44, + 392, 46, 902, 395, 260, 261, 845, 263, 883, 936, + 1590, 938, 1545, 93, 909, 972, 40, 283, 284, 263, + 915, 906, 260, 261, 43, 263, 41, 853, 41, 42, + 848, 916, 535, 536, 537, 538, 539, 540, 541, 93, + 858, 125, 917, 91, 919, 920, 921, 932, 917, 888, + 919, 920, 318, 917, 1587, 919, 920, 1014, 125, 41, + 42, 93, 917, 885, 475, 917, 280, 919, 920, 921, + 917, 93, 328, 451, 330, 331, 38, 40, 91, 964, + 42, 337, 40, 968, 125, 463, 91, 465, 466, 273, + 468, 469, 58, 911, 40, 913, 40, 936, 60, 938, + 926, 40, 928, 40, 1143, 1144, 1145, 1146, 993, 91, + 1067, 279, 280, 40, 1153, 1154, 1155, 125, 936, 44, + 938, 289, 41, 301, 294, 303, 304, 305, 40, 91, + 40, 301, 262, 303, 304, 305, 374, 375, 91, 123, + 966, 262, 960, 38, 44, 963, 59, 42, 431, 432, + 41, 46, 47, 260, 261, 41, 263, 535, 536, 537, + 538, 539, 540, 541, 41, 60, 260, 261, 451, 263, + 264, 59, 342, 343, 344, 60, 264, 265, 266, 274, + 463, 41, 465, 43, 44, 468, 469, 320, 321, 273, + 295, 457, 458, 463, 460, 300, 91, 302, 286, 287, + 393, 394, 59, 1105, 309, 91, 273, 1109, 274, 1489, + 1490, 62, 125, 260, 261, 1117, 263, 275, 388, 389, + 390, 326, 392, 44, 1123, 395, 264, 265, 266, 296, + 393, 394, 360, 361, 362, 58, 341, 125, 322, 365, + 424, 425, 426, 427, 1062, 43, 44, 123, 286, 287, + 1133, 1136, 535, 536, 537, 538, 539, 540, 541, 1216, + 1143, 1144, 1145, 1146, 448, 449, 450, 451, 125, 40, + 1153, 1154, 1155, 123, 1092, 1093, 1094, 281, 282, 283, + 284, 1099, 1100, 1101, 1102, 1103, 1104, 123, 1106, 1107, + 1108, 123, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 264, + 1118, 266, 1120, 274, 1122, 41, 1124, 260, 261, 40, + 263, 43, 44, 1139, 1140, 268, 264, 260, 261, 38, + 263, 286, 287, 42, 1163, 409, 1306, 411, 412, 413, + 576, 577, 578, 281, 282, 283, 41, 42, 1177, 423, + 1179, 60, 409, 296, 428, 835, 836, 431, 432, 40, + 40, 535, 536, 537, 538, 539, 540, 541, 1260, 61, + 273, 317, 1180, 317, 448, 449, 450, 451, 1243, 453, + 454, 467, 91, 61, 260, 261, 1194, 263, 61, 40, + 470, 1338, 268, 296, 451, 273, 1204, 91, 470, 473, + 1208, 1209, 44, 41, 461, 1294, 41, 464, 360, 361, + 362, 1219, 280, 281, 282, 283, 284, 93, 296, 41, + 296, 41, 1297, 299, 41, 41, 273, 41, 58, 44, + 306, 41, 1240, 1241, 508, 509, 280, 281, 282, 283, + 284, 1316, 281, 282, 283, 284, 1254, 1255, 1256, 1257, + 1258, 1259, 44, 1261, 44, 125, 0, 260, 261, 61, + 263, 535, 536, 537, 538, 539, 540, 541, 263, 40, + 61, 414, 415, 416, 40, 360, 361, 362, 535, 536, + 537, 538, 539, 540, 541, 330, 331, 332, 295, 33, + 1355, 125, 41, 300, 38, 302, 40, 41, 42, 1315, + 44, 41, 309, 47, 40, 274, 409, 93, 310, 1325, + 312, 313, 314, 93, 274, 59, 60, 61, 62, 326, + 327, 366, 367, 368, 41, 1472, 1411, 41, 44, 1337, + 41, 409, 44, 58, 341, 1410, 1344, 44, 414, 415, + 416, 40, 62, 41, 38, 40, 59, 91, 451, 93, + 41, 41, 355, 356, 357, 40, 40, 40, 461, 41, + 41, 464, 41, 41, 91, 372, 260, 261, 262, 263, + 264, 41, 40, 451, 268, 497, 489, 380, 501, 123, + 40, 125, 41, 461, 277, 61, 464, 125, 123, 283, + 62, 41, 38, 1409, 281, 282, 283, 284, 1490, 451, + 391, 1548, 296, 41, 451, 330, 331, 332, 1497, 41, + 41, 1581, 125, 93, 461, 317, 93, 464, 317, 41, + 1428, 1429, 1430, 40, 58, 58, 320, 321, 93, 123, + 93, 93, 535, 536, 537, 538, 539, 540, 541, 93, + 40, 366, 367, 368, 504, 44, 91, 91, 40, 1465, + 40, 360, 361, 362, 123, 41, 93, 535, 536, 537, + 538, 539, 540, 541, 41, 40, 40, 421, 41, 41, + 1545, 474, 1480, 476, 477, 478, 479, 1485, 1486, 1487, + 93, 1489, 93, 1491, 1492, 1493, 510, 44, 535, 536, + 537, 538, 539, 540, 541, 274, 41, 58, 41, 1584, + 41, 60, 44, 61, 93, 1513, 1514, 1515, 41, 40, + 40, 40, 1587, 40, 40, 40, 260, 261, 262, 263, + 414, 415, 416, 40, 268, 40, 62, 271, 40, 273, + 274, 275, 276, 277, 278, 279, 40, 281, 282, 283, + 284, 40, 286, 287, 288, 59, 290, 291, 292, 293, + 40, 274, 296, 297, 298, 299, 125, 41, 93, 41, + 273, 93, 306, 41, 308, 93, 41, 311, 1576, 1585, + 93, 315, 316, 41, 318, 40, 263, 93, 322, 323, + 324, 325, 41, 296, 278, 93, 41, 281, 282, 283, + 284, 41, 286, 287, 288, 339, 294, 93, 41, 41, + 93, 41, 93, 301, 41, 303, 304, 305, 93, 123, + 41, 125, 93, 41, 358, 359, 360, 361, 362, 93, + 364, 365, 41, 93, 41, 41, 93, 41, 41, 38, + 374, 375, 278, 93, 44, 281, 282, 283, 284, 41, + 286, 287, 288, 41, 342, 343, 344, 391, 40, 93, + 40, 40, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 93, + 388, 389, 390, 0, 392, 40, 409, 395, 93, 40, + 58, 41, 58, 58, 448, 449, 450, 451, 41, 453, + 454, 455, 456, 41, 123, 459, 41, 461, 40, 463, + 464, 465, 466, 40, 468, 469, 33, 471, 472, 473, + 41, 38, 93, 40, 41, 42, 480, 44, 451, 41, + 47, 93, 41, 93, 41, 93, 260, 40, 461, 263, + 40, 464, 59, 60, 61, 62, 40, 40, 40, 273, + 40, 294, 38, 40, 508, 509, 510, 40, 301, 40, + 303, 304, 305, 40, 40, 40, 263, 41, 40, 93, + 58, 60, 526, 527, 91, 529, 530, 531, 41, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 93, 40, + 40, 40, 40, 91, 269, 41, 40, 272, 41, 342, + 343, 344, 41, 41, 41, 40, 123, 274, 125, 41, + 41, 40, 535, 536, 537, 538, 539, 540, 541, 263, + 295, 296, 40, 274, 358, 300, 510, 302, 41, 41, + 40, 263, 41, 41, 309, 41, 62, 123, 59, 123, + 125, 260, 44, 123, 263, 388, 389, 390, 40, 392, + 123, 326, 395, 123, 125, 123, 125, 123, 62, 278, + 41, 123, 281, 282, 283, 284, 341, 286, 287, 288, + 41, 125, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 41, 41, 123, 41, 413, + 41, 125, 41, 417, 418, 419, 420, 421, 422, 123, + 123, 62, 41, 123, 125, 40, 40, 431, 432, 41, + 93, 93, 123, 46, 275, 263, 275, 42, 61, 275, + 179, 275, 275, 275, 448, 449, 450, 451, 41, 275, + 263, 91, 263, 275, 275, 459, 275, 263, 275, 275, + 402, 275, 777, 260, 261, 275, 263, 275, 942, 473, + 688, 268, 844, 1424, 271, 1201, 273, 274, 275, 276, + 277, 278, 279, 940, 281, 282, 283, 284, 1067, 286, + 287, 670, 1127, 290, 291, 292, 293, 853, 863, 296, + 297, 298, 299, 1189, 508, 509, 1202, 0, 335, 306, + 462, 308, 278, 24, 311, 281, 282, 283, 284, 316, + 286, 287, 288, 850, 9, 322, 323, 324, 325, 1131, + 114, 535, 536, 537, 538, 539, 540, 541, 24, 64, + 33, 640, 703, 513, 707, 38, 574, 40, 41, 42, + 353, 44, 289, -1, 47, 474, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, 273, -1, -1, -1, -1, 374, 375, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 391, 296, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, 409, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + 451, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 461, -1, -1, 464, -1, -1, -1, 260, 261, -1, + 263, -1, 365, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, 123, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, 294, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, 309, -1, -1, -1, -1, 480, -1, -1, + 277, 278, 279, -1, 281, 282, 283, 284, 325, 286, + 287, 288, -1, 290, 291, 292, 293, 334, -1, -1, + 297, 298, -1, -1, -1, 508, 509, -1, -1, -1, + -1, 348, 349, 350, 351, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 380, 381, 382, 383, 384, 385, 386, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, 365, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + 299, 269, -1, -1, 272, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, 295, 296, -1, + -1, -1, 300, -1, 302, -1, -1, -1, 33, 260, + 261, 309, 263, 38, -1, 40, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, 326, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, 341, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, 355, 356, 357, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 380, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, 271, -1, -1, -1, + -1, 480, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, 346, -1, 474, -1, 476, 477, 478, 479, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + 365, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, 262, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, 277, 278, 279, 480, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, -1, -1, -1, 299, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, -1, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, 260, 261, 268, 263, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, 294, + 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, 323, -1, + -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, -1, -1, -1, -1, -1, 358, 353, 59, + -1, 356, -1, -1, -1, -1, -1, -1, 363, -1, + 33, -1, -1, 374, 375, -1, -1, 372, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 123, -1, 125, -1, 428, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 33, -1, -1, -1, 323, -1, -1, -1, + 327, -1, -1, 330, 331, -1, -1, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 260, -1, -1, 263, -1, -1, 353, -1, -1, 356, + -1, -1, -1, 273, -1, -1, 363, 277, 278, 279, + -1, 281, 282, 283, 284, 372, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, 123, -1, 125, -1, -1, -1, 271, 59, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 0, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, 273, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, 322, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 409, + -1, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, 260, -1, -1, 263, 448, 449, + 450, 451, -1, 453, 454, 526, 527, 273, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, 473, -1, -1, -1, -1, -1, -1, + 296, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, 0, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, 448, 449, 450, 451, 273, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + 466, -1, 468, 469, -1, 471, 472, 473, -1, 296, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, 33, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, 91, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 273, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 271, 125, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 273, 274, 459, -1, 461, + -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, + 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 311, 61, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, 276, + 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, + 287, -1, 289, 290, 291, 292, 293, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, 40, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, 274, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 484, 485, -1, + 487, 488, 489, -1, 491, 492, -1, -1, 495, 496, + -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 273, 274, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, + 260, 59, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, + -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, + 294, 295, -1, -1, -1, -1, 300, -1, 302, -1, + -1, -1, -1, -1, 322, 309, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 326, 327, -1, 329, 330, 331, 332, 333, + -1, -1, -1, -1, 338, -1, -1, 341, -1, 0, + -1, -1, -1, 347, -1, -1, -1, -1, 352, -1, + 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 366, 367, 368, 369, 370, 371, 372, 373, + 0, -1, -1, -1, -1, 379, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 260, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 59, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 273, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 59, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, + 451, 260, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 431, 432, 464, 273, -1, -1, -1, -1, -1, + 471, 472, 473, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, 463, 464, -1, -1, -1, 123, -1, + 125, 471, 472, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 273, -1, + 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 260, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + 260, -1, 464, 263, -1, -1, -1, -1, -1, 471, + 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, 260, -1, -1, 263, 44, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, + 450, 451, 59, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 0, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 322, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + 59, -1, 61, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 358, 359, -1, + 260, 428, -1, 263, 431, 432, 125, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, + -1, -1, 0, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + 451, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 273, -1, -1, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 125, 428, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 125, 459, + -1, 461, -1, 322, 464, -1, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 423, -1, -1, -1, -1, 428, + 125, -1, 431, 432, -1, 273, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, 273, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, 273, -1, + 0, -1, -1, -1, -1, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, 59, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, -1, -1, 461, 431, 432, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, 59, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, + 508, 509, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 125, -1, -1, -1, -1, + -1, 273, -1, -1, 409, 410, 411, 412, 413, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 409, 410, 411, + 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, 0, -1, 471, + 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, 526, 527, 59, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 431, 432, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, + 451, 125, -1, -1, 455, 456, -1, -1, 273, -1, + 461, 431, 432, 464, -1, -1, -1, -1, 0, -1, + 471, 472, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 125, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, 59, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, 59, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, 409, 410, 411, 412, 413, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + 273, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, + -1, 273, 40, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, + -1, 59, 60, -1, -1, -1, 409, 410, 411, 412, + 413, -1, 273, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, 431, 432, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, + -1, -1, -1, 33, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, 123, -1, 125, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, + 432, -1, -1, -1, -1, -1, -1, 41, 409, 410, + 411, 412, 413, 47, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, 59, -1, -1, 33, 461, + 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, + 461, -1, 260, 464, -1, 263, -1, -1, -1, -1, + 471, 472, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, 41, + 290, 291, 292, 293, -1, 295, -1, 297, 298, -1, + 300, -1, 302, -1, -1, -1, 306, 59, 308, 309, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, 326, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 341, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, -1, 260, -1, 358, 263, + -1, -1, -1, 431, 432, -1, -1, -1, -1, 273, + 274, 123, -1, 125, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, + -1, 459, -1, -1, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, 473, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + 295, -1, 297, 298, -1, 300, -1, 302, -1, -1, + -1, 306, -1, 308, 309, -1, -1, -1, -1, -1, + 508, 509, 510, -1, -1, -1, -1, -1, 323, 324, + 325, 326, -1, -1, -1, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 341, 535, 536, 537, + 538, 539, 540, 541, 59, -1, -1, -1, -1, 33, + -1, -1, -1, 358, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, -1, 260, 413, + -1, 263, -1, 417, 418, 419, 420, 421, 422, -1, + -1, 273, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 123, -1, + 125, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, -1, -1, 260, -1, -1, 263, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 273, 123, + -1, 125, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, -1, -1, -1, -1, 459, 59, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, + -1, 473, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, + -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, + 274, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, + -1, -1, 260, -1, -1, 263, -1, 431, 432, -1, + -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, -1, -1, 508, 509, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, + 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, + -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, + 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + 260, -1, -1, 263, 431, 432, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, + -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, -1, 260, -1, -1, 263, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, + 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, + 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 59, -1, 260, -1, 413, + 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, + 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, + 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, -1, 260, -1, -1, 263, 431, 432, + -1, -1, -1, -1, -1, 59, -1, 273, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 125, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + 273, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + -1, -1, -1, 459, -1, -1, -1, 431, 432, 33, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 273, + -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, + 413, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 431, 432, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, 409, -1, 411, 412, 413, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 508, 509, 290, 291, 292, 293, + 294, 33, -1, 297, 298, -1, 38, -1, -1, -1, + 42, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, 60, 323, + 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, 366, 367, 368, 369, -1, -1, 372, -1, + -1, -1, 376, 377, 378, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, + 329, 330, 331, 332, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, -1, -1, 42, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, -1, -1, -1, -1, 60, 480, 366, 367, 368, + 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, 33, 296, 297, 298, -1, 38, -1, + -1, -1, 42, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 60, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 91, 33, -1, -1, -1, 358, 38, 360, 361, + 362, 42, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 91, -1, 414, 415, 416, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, 33, -1, -1, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, 91, 360, 361, 362, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, 374, + 375, 271, -1, -1, 33, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, 414, + 415, 416, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, 323, 324, 325, -1, 268, -1, -1, + 271, -1, 91, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 358, -1, + 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, 374, 375, -1, 33, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 416, 358, -1, 360, + 361, 362, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, 91, 33, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, 414, 415, 416, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + 327, -1, -1, -1, 91, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, 358, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 372, 33, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, 33, -1, -1, -1, 358, + 359, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, 91, -1, 414, 415, 416, -1, -1, + -1, -1, -1, 260, 261, -1, 263, 323, 324, 325, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 358, -1, -1, -1, -1, 33, -1, 306, + -1, 308, -1, -1, -1, 41, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, + 416, 358, -1, 260, 261, 91, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, 260, 261, -1, 263, 323, 324, 325, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 358, -1, -1, -1, -1, -1, -1, 306, 257, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 271, -1, 323, 324, 325, 276, 277, + -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, + -1, 289, 290, 291, 292, 293, -1, 257, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + 358, 271, -1, -1, -1, -1, 276, 277, -1, 279, + 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, + 290, 291, 292, 293, -1, 271, -1, 335, -1, 337, + 276, 277, 278, 279, 342, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 358, 297, 298, -1, -1, -1, 414, 415, 416, -1, + 306, -1, 308, -1, -1, 335, -1, 337, -1, -1, + -1, -1, 342, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, 391, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 481, -1, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, -1, -1, 503, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, -1, -1, 503, }; -YYSTATIC YYCONST yyr_t YYFARDATA YYR1[]={ - - 0, 109, 109, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 136, - 136, 36, 36, 133, 133, 133, 2, 2, 1, 1, - 1, 9, 24, 24, 23, 23, 23, 134, 134, 134, - 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 93, 93, 93, 93, 94, 94, 94, 94, 10, - 11, 73, 72, 72, 59, 61, 61, 61, 62, 62, - 62, 65, 65, 132, 132, 132, 60, 60, 60, 60, - 60, 60, 130, 130, 130, 119, 12, 12, 12, 12, - 12, 12, 118, 137, 113, 138, 139, 111, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 140, 140, 141, 141, 112, - 112, 142, 142, 56, 56, 57, 57, 69, 69, 18, - 18, 18, 18, 18, 18, 18, 19, 19, 68, 68, - 67, 67, 58, 21, 21, 22, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 116, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 4, 4, 35, 35, 16, 16, - 75, 75, 75, 75, 75, 75, 75, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, 8, 76, - 74, 74, 74, 74, 74, 74, 144, 144, 81, 81, - 81, 145, 145, 150, 150, 150, 150, 150, 150, 150, - 150, 146, 82, 82, 82, 147, 147, 151, 151, 151, - 151, 151, 151, 151, 152, 38, 38, 34, 34, 153, - 114, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 3, 3, 3, 13, 13, 13, 13, 13, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 154, 115, 115, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 158, 159, 156, 161, 161, 160, 160, - 160, 163, 162, 162, 162, 162, 166, 166, 166, 169, - 164, 167, 168, 165, 165, 165, 117, 170, 170, 172, - 172, 172, 171, 171, 173, 173, 14, 14, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 175, 31, 31, 32, 32, 39, 39, 39, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 42, 42, 42, 43, - 43, 43, 47, 47, 46, 46, 45, 45, 44, 44, - 48, 48, 49, 49, 49, 50, 50, 50, 50, 51, - 51, 149, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 6, - 6, 6, 6, 6, 53, 53, 54, 54, 55, 55, - 25, 25, 26, 26, 27, 27, 27, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 5, 5, 71, - 71, 71, 71, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 20, 20, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 30, 30, 29, 29, 29, 29, 29, 131, 131, - 131, 131, 131, 131, 64, 64, 64, 63, 63, 87, - 87, 84, 84, 85, 17, 17, 37, 37, 37, 37, - 37, 37, 37, 37, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 176, - 176, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 121, 121, 88, 88, 89, 89, 177, 122, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 123, 123, 178, 178, 178, 66, 66, 179, 179, 179, - 179, 179, 179, 180, 182, 181, 124, 124, 125, 125, - 183, 183, 183, 183, 126, 148, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 127, 127, 184, 184, - 184, 184, 184, 184, 184, 128, 128, 92, 92, 92, - 129, 129, 185, 185, 185, 185 }; -YYSTATIC YYCONST yyr_t YYFARDATA YYR2[]={ - - 0, 0, 2, 4, 4, 3, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 1, 1, 1, 2, - 2, 3, 2, 2, 1, 1, 1, 4, 1, 0, - 2, 1, 3, 2, 4, 6, 1, 1, 1, 1, - 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, - 4, 4, 2, 3, 2, 2, 2, 1, 1, 2, - 1, 2, 4, 6, 3, 5, 7, 9, 3, 4, - 7, 1, 1, 1, 2, 0, 2, 2, 0, 6, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 3, 1, 2, 3, 7, 0, 2, 2, 2, - 2, 2, 3, 3, 2, 1, 4, 3, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 5, 0, 2, 0, 2, 0, - 2, 3, 1, 0, 1, 1, 3, 0, 3, 1, - 1, 1, 1, 1, 1, 4, 0, 2, 4, 3, - 0, 2, 3, 0, 1, 5, 3, 4, 4, 4, - 1, 1, 1, 1, 1, 2, 2, 4, 13, 22, - 1, 1, 5, 3, 7, 5, 4, 7, 0, 2, - 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, - 2, 2, 2, 5, 0, 2, 0, 2, 0, 3, - 9, 9, 7, 7, 1, 1, 1, 2, 2, 1, - 4, 0, 1, 1, 2, 2, 2, 2, 1, 4, - 2, 5, 3, 2, 2, 1, 4, 3, 0, 2, - 2, 0, 2, 2, 2, 2, 2, 1, 1, 1, - 1, 9, 0, 2, 2, 0, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 0, 4, 1, 3, 1, - 13, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 5, 8, 6, 5, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 4, 4, 4, 4, 5, - 1, 1, 1, 0, 4, 4, 4, 4, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 5, 1, 0, 2, 2, 1, 2, - 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 4, 6, 4, 4, 11, 1, 5, 3, - 7, 5, 5, 3, 1, 2, 2, 1, 2, 4, - 4, 1, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 1, 1, 1, 4, 4, 2, 4, 2, 0, - 1, 1, 3, 1, 3, 1, 0, 3, 5, 4, - 3, 5, 5, 5, 5, 5, 5, 2, 2, 2, - 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, - 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, - 4, 3, 2, 0, 1, 1, 2, 1, 1, 1, - 1, 4, 4, 5, 4, 4, 4, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 0, 2, 2, 0, - 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 5, 3, 2, - 2, 2, 2, 2, 5, 4, 6, 2, 4, 0, - 3, 3, 1, 1, 0, 3, 0, 1, 1, 3, - 0, 1, 1, 3, 1, 3, 4, 4, 4, 4, - 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 3, 4, 1, 0, 10, 6, 5, 6, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 2, 3, - 4, 6, 5, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 2, 2, 4, 1, 2, 1, 2, - 1, 2, 1, 2, 1, 2, 1, 1, 0, 5, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 3, 2, 3, 4, 2, 2, 2, 5, 5, - 7, 4, 3, 2, 3, 2, 1, 1, 2, 3, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 2, 6, 7, - 3, 3, 3, 6, 0, 1, 3, 5, 6, 4, - 4, 1, 3, 3, 1, 1, 1, 1, 4, 1, - 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 5, 4, 7, 6, 7, 6, 9, - 8, 3, 8, 4, 0, 2, 0, 1, 3, 3, - 0, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 0, 2, 3, 1, 1, 1, 1, 3, 8, 2, - 3, 1, 1, 3, 3, 3, 4, 6, 0, 2, - 3, 1, 3, 1, 4, 3, 0, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 0, 2, 2, 3, - 3, 4, 2, 1, 1, 3, 5, 0, 2, 2, - 0, 2, 4, 3, 1, 1 }; -YYSTATIC YYCONST short YYFARDATA YYCHK[]={ - --1000,-109,-110,-111,-113,-114,-116,-117,-118,-119, --120,-121,-122,-124,-126,-128,-130,-131,-132, 527, - 528, 462, 530, 531,-133,-134,-135, 534, 535,-139, - 411,-152, 413,-170,-137, 457,-176, 465, 410, 472, - 473, 432, -87, 433, -93, -94, 273, 451, 532, 536, - 537, 538, 539, 540, 541, 542, 59,-138, 412, 414, - 456, 449, 450, 452, -10, -11, 123, 123,-115, 123, - 123, 123, 123, -9, 264, -9, 529, -88, -24, 265, - 264, -24, 123,-140, 316, -1, -2, 261, 260, 263, - -78, -16, 91,-171, 123,-174, 278, 38,-175, 286, - 287, 284, 283, 282, 281, 288, -31, -32, 267, 91, - -9, -90, 471, 471, -92, -1, 471, -86, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, -31, -86, 263, -28, -70, -74, -93, - -94, 306, 297, 324, 325,-149, 33, 309, 276, 326, - -52, 275, 91, -5, -76, 268, 415, 416, 417, 360, - 359, 278, 298, 277, 281, 282, 283, 284, 286, 287, - 279, 290, 291, 292, 293, 271, -1, 296, -1, -1, - -1, -1, 262, -77,-172, 320, 381, 61, -73, 40, - -75, -7, -76, 269, 272, 327, 342, -8, 295, 300, - 302, 310, -31, -31,-112,-109, 125,-155, 418,-156, - 420,-154, 422, 423,-117,-157, -2,-131,-120,-133, --132,-135, 474, 460, 510,-158, 509,-160, 421, -95, - -96, -97, -98, -99,-108,-100,-101,-102,-103,-104, --105,-106,-107,-159,-163, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 123, 419, --123,-125,-127,-129, -9, -1, 463,-136, -70, -76, --141, 317, -71, -70, 91, -28,-149, 46, -7, 330, - 331, 332, 333, 334, 328, 348, 355, 339, 367, 368, - 369, 370, 371, 372, 373, 353, 380, 294, 374, -79, - -9,-173,-174, 42, 40, -31, 40, -14, 91, 40, - -14, 40, -14, 40, -14, 40, -14, 40, -14, 40, - 41, 267, -9, 263, 58, 44, 262, -1, 356, 357, - 358, 475, 381, 477, 478, 479, 480, -90, -91, -1, - 331, 332, -1, -71, 41, -36, 61, 288, 262, 44, - 392, 91, 38, 42, 361, 362, 363, 60, 392, 392, - 392, 392, -70, 306, -70, -75, -7, 33, -9, -1, - 280, 279, 289, -28, -1, -76, 42, 473, 47, -28, - 270, 272, 281, 282, 283, 284, 40, -36, -1, 331, - 332, 324, 347, 336, 337, 339, 340, 341, 342, 343, - 344, 345, 346, 364, 357, 338, 354, 328, 373, 294, - -2, 40, 61, -72, -71, -74, -28, -7, -7, 40, - 301, 303, 304, 305, 41, 41, 125,-143,-114,-111, --144,-146,-116,-117,-131,-120,-132, 454, 455,-148, - 510,-133,-135, 509, 323, 424, 429, 474, 410, 125, - -9, -9, 40, 453, 58, 91, -9, -71, 359, 366, - 543, 91,-161,-162,-164,-166,-167,-168, 313,-169, - 311, 315, 314, -9, -2, -9, -24, 40, -23, -24, - 266, 286, 287, -31, -9, -2, -75, -28, -76, 270, - 272, -71, -36, 343,-175, -7, -72, 40,-115,-158, - -2, -9, 125,-178, 464,-131,-179,-180, 469, 470, --181,-132,-135, 466, 125,-183,-177,-179,-182, 340, - 464, 467, 125,-184, 462, 410, 465, 296,-132,-135, - 125,-185, 462, 465,-132,-135, -89, 422, 125,-136, --142, -71, -1, 473, -7, -1, -13, 40, 40, -28, - 330, 331, 332, 333, 379, 373, 328, 481, 367, 368, - 369, 370, 377, 378, 294, 93, 125, 44, 40, -2, - 41, -23, -9, -23, -24, -9, -9, -9, 93, -9, - -9, 476, -1, -1, 332, 331, 329, 338, 392, 40, - 61, 43, 123, 40, 40, 263, -1, 93, -30, -29, - 275, -9, 40, 40, -54, -55, -28, -1, -1, -1, - -1, -70, -28, -9, -1, 280, 93, 93, 93, -1, - -1, -71, -1, 91, -9, -69, 60, 331, 332, 333, - 367, 368, 369, 40, 61, -36, 123, 40, 41, -71, - -3, 375, 376, -1, -9,-115, 123, 123, 123, -9, - -9, 123, -71, 359, 366, 543, 366, -81, -82, -91, - -25, -26, -27, 275, -13, 40, -9, 58, 274, -7, - 91, -1, 91, -1, -9,-161,-165,-158, 312,-165, --165,-165, -71,-158, -2, -9, 40, 40, 41, -71, - -1, 40, -31, -28, -6, -2, -9, 125, 318, 318, - 468, -31, -66, -9, 42, -36, 61, -31, 61, -31, - -31, 61, 61, -1, 471, -9, 471, 40, -1, 471, --177, 44, 93, -1, -28, -28, 91, -9, -36, -83, - -1, 40, 40,-173, -36, 41, 41, 93, 41, 41, - 41, 41, 41, -12, 263, 44, 58, 392, 331, 332, - 333, 367, 368, 369, -1, -84, -85, -36, 123, 262, - -64, -63, -71, 306, 44, 93, 44, 275, -71, -71, - 62, 44, 42, -5, -5, -5, 93, 274, 41, -68, - -19, -18, 43, 45, 306, 325, 307, 375, 294, -9, - -59, -61, -73, 274, -53, -22, 60, 41, 125,-112, --145,-147,-127, 274, -7, 91, -1, 91, -1, -71, - -71, -1, 373, 328, -7, 373, 328, -1, 41, 44, - -28, -25, 93, -9, -3, -1, -28, -9, -9, 44, - 93, -2, -9, -9, -24, 274, -36, 41, 40, 41, - 44, 44, -2, -9, -9, 41, 58, 40, 41, 40, - 41, 41, 40, 40, -5, -1, -9, 319, -1, -31, - -71, 93, -38, 481, 506, 507, 508, -9, 41, 392, - -83, 41, 389, 343, 344, 345, 390, 391, 301, 303, - 304, 305, 393, 396, 294, -4, 319, -34, -33,-153, - 482, 484, 485, 486, 487, 276, 277, 281, 282, 283, - 284, 286, 287, 257, 279, 290, 291, 292, 293, 488, - 489, 490, 492, 493, 494, 495, 496, 497, 498, 336, - 499, 280, 289, 338, 500, 343, 491, 359, 392, 504, - 271, 123, -9, 41, -14, -14, -14, -14, -14, -14, - 319, 283, 284, 458, 459, 461, -9, -9, -1, 41, - 44, 61, -59, 125, 44, 61, 263, 263, -29, -9, - 41, 41, -28, 40, -5, -1, 62, -58, -1, 40, - -19, 40, 41, 125, -62, -40,-135, -41, 298, 366, - 297, 286, 287, 284, 283, 282, 281, 293, 292, 291, - 290, 279, 278, 277,-175, 61, -3, 40, 40, 91, - -54, 125, 125,-150, 425, 426, 427, 428,-120,-132, --133,-135, 125,-151, 430, 431, 428,-132,-120,-133, --135, 125, -3, -28, -9, -9, 44, -93, 452, -1, - -28, -27, -38, 41, 392, -71, 93, 93, -71, -35, - 61, 318, 318, 41, 41, -1, 41, -25, -6, -6, - -66, 41, -9, 41, -3, 40, 93, 93, 93, 93, - -36, 41, 58, 58, 40, -35, -2, 41, 42, 91, - -32, 40, 483, 503, 277, 281, 282, 283, 284, 280, - -20, 40, -20, -20, -15, 512, 485, 486, 276, 277, - 281, 282, 283, 284, 286, 287, 279, 290, 291, 292, - 293, 42, 488, 489, 490, 492, 493, 496, 497, 499, - 280, 289, 257, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 498, 490, 502, 41, - -2, 263, 263, 44, -84, -37, -17, -9, 283, -36, - -70, 321, 322, 125, -64, 123, 61, -25, -1, -67, - 44, -56, -57, -71, -9, -65,-135, 360, 365, 40, - 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, - 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, - 91, 40, 91, 40, 91, 284, 283, 282, 281, 40, - 91, 40, 91, -31, -36, 123, 40, -53, -22, -25, - -25, -9, 62, -75, -75, -75, -75, -75, -75, -75, - 511, -71, 93, 93, -71, -1, -2, -2, 274, 44, - -39, -41, -36, 299, 286, 287, 284, 283, 282, 281, - 279, 293, 292, 291, 290, 278, 277, -2, -9, 41, - 58, -89, -69, -34, -83, 394, 395, 394, 395, -9, - 93, -9, 43, 125, -36, 91, 91, 505, 44, 91, - 526, 38, 281, 282, 283, 284, 280, -9, 40, 40, - -62, 123, 41, -67, -68, 41, 44, 41, -60, -52, - 366, 297, 347, 299, 263, -9, 306, -70, 299, -9, - -40, -9, -23, -9, -9, -23, -24, -9, -24, -9, - -9, -9, -9, -9, -9, -9, -24, -9, -9, -9, - -9, -9, -9, -9, 40, 91, 40, 91, 40, 91, - 40, 91, -9, -9, -17, -9, 41, -59, 40, 40, - 41, 41, 93, -7, 274, 44, 40, -3, -71, 284, - 283, 282, 281, -66, 40, 41, 41, 41, 93, 43, - -9, 44, -9, -9, 61, -36, 93, 263, -9, 281, - 282, 283, -9, 125, -62, -71, -1, 91, 306, -70, - 41, 41, 93, 263, 41, 41, 93, 41, 93, 41, - 41, 93, 41, 41, 93, 41, 93, 41, 93, 41, - 93, 41, 93, 41, 93, 41, 93, 41, 93, 41, - 93, -24, -9, -9, -9, -9, -9, -9, -9, 41, - 93, 41, 93, 125, -25, -25, 62, -28, -3, -71, - -25, -21, -22, 60, 58, -25, -9, 93, -36, 93, - 93, -9, 41, 58, 58, 58, 41, 125, 61, 93, - 263, 40, 41, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 41, 93, 41, 93, 41, - 93, 41, 93, 40, 40, 41, 41, -71, -21, 41, - 40, -66, 41, 93, 44, 41, -33, 41, -9, -9, - -9, -40, -49, -50, -51, -42, -43, -47, -46, -45, - -44, -47, -46, -45, -44, 40, 40, 40, 40, -45, - -48, 274, 40, -35, -25, -80, -36, 41, 41, 41, - 41, 299, 263, 41, 299, 306, -70, 41, -40, 41, - -23, -9, 41, -23, -24, 41, -24, 41, -9, 41, - -9, 41, -9, 41, 41, 41, 41, -47, -46, -45, - -44, 41, 41, -17, -3, -25, 41, 123, 326, 381, - 382, 383, 310, 384, 385, 386, 387, 335, 349, 350, - 351, 352, 294, 44, 263, 41, 41, 41, 41, 40, - 41, 40, -36, -25, 511, -9, 41, 41, 359, 41, - -7, -28, -71, 274, -3, -21, 40, -25, 41 }; -YYSTATIC YYCONST short YYFARDATA YYDEF[]={ - - 1, -2, 2, 0, 0, 335, 6, 7, 8, 9, - 10, 11, 0, 0, 0, 0, 16, 17, 18, 0, - 0, 774, 0, 0, 24, 25, 26, 0, 28, 135, - 0, 271, 208, 0, 433, 0, 0, 780, 105, 837, - 92, 0, 433, 0, 83, 84, 85, 0, 0, 0, - 0, 0, 0, 57, 58, 0, 60, 108, 264, 389, - 0, 759, 760, 221, 433, 433, 139, 1, 0, 790, - 808, 826, 840, 19, 41, 20, 0, 0, 22, 42, - 43, 23, 29, 137, 0, 104, 38, 39, 36, 37, - 221, 188, 0, 386, 0, 393, 0, 0, 433, 396, - 396, 396, 396, 396, 396, 0, 0, 434, 435, 0, - 762, 0, 780, 816, 0, 93, 0, 0, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, - 756, 757, 758, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 670, 0, 0, 221, 0, 686, 687, 0, - 691, 0, 0, 551, 235, 553, 554, 555, 556, 0, - 491, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 0, 706, 707, 708, 709, 710, 557, 0, 52, 54, - 55, 56, 59, 0, 388, 390, 391, 0, 61, 0, - 71, 0, 214, 215, 216, 221, 221, 219, 0, 222, - 223, 228, 0, 0, 0, 0, 5, 336, 0, 338, - 0, 0, 342, 343, 344, 345, 0, 347, 348, 349, - 350, 351, 0, 0, 0, 357, 0, 0, 334, 506, - 0, 0, 0, 0, 433, 0, 221, 0, 0, 0, - 221, 0, 0, 335, 0, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 364, 371, - 0, 0, 0, 0, 21, 776, 775, 0, 29, 552, - 107, 0, 136, 559, 0, 562, 221, 0, 313, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 0, 0, 0, - 0, 0, 395, 0, 0, 0, 0, 407, 0, 0, - 408, 0, 409, 0, 410, 0, 411, 0, 412, 432, - 102, 436, 0, 761, 0, 0, 771, 779, 781, 782, - 783, 0, 785, 786, 787, 788, 789, 0, 0, 835, - 838, 839, 94, 720, 721, 722, 0, 0, 31, 0, - 0, 713, 675, 676, 677, 0, 0, 536, 0, 0, - 0, 0, 669, 0, 672, 230, 0, 0, 683, 685, - 688, 0, 690, 692, 0, 0, 0, 0, 0, 0, - 233, 234, 702, 703, 704, 705, 0, 53, 147, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 0, 131, 132, 133, 0, - 0, 103, 0, 0, 72, 73, 0, 217, 218, 0, - 224, 225, 226, 227, 64, 68, 3, 140, 335, 0, - 0, 0, 170, 171, 172, 173, 174, 0, 0, 0, - 0, 180, 181, 0, 0, 238, 252, 816, 105, 4, - 337, 339, -2, 0, 346, 0, 0, 0, 221, 0, - 0, 0, 365, 367, 0, 0, 0, 0, 0, 0, - 381, 382, 379, 507, 508, 509, 510, 505, 511, 512, - 44, 0, 0, 0, 514, 515, 516, 0, 519, 520, - 521, 522, 523, 0, 433, 0, 527, 529, 0, 368, - 0, 0, 12, 791, 0, 793, 794, 433, 0, 0, - 433, 801, 802, 0, 13, 809, 433, 811, 433, 813, - 0, 0, 14, 827, 0, 0, 0, 0, 833, 834, - 15, 841, 0, 0, 844, 845, 773, 777, 27, 30, - 138, 142, 0, 0, 0, 40, 0, 0, 294, 0, - 189, 190, 191, 192, 193, 194, 195, 0, 197, 198, - 199, 200, 201, 202, 0, 209, 392, 0, 0, 0, - 400, 0, 0, 0, 0, 0, 0, 0, 96, 764, - 0, 784, 806, 814, 817, 818, 819, 0, 0, 0, - 0, 0, 724, 729, 730, 34, 47, 673, 0, 711, - 714, 715, 0, 0, 0, 537, 538, 48, 49, 50, - 51, 671, 0, 682, 684, 689, 0, 0, 0, 0, - 558, 0, -2, 713, 0, 106, 156, 125, 126, 127, - 128, 129, 130, 0, 387, 62, 75, 69, 221, 0, - 534, 310, 311, -2, 0, 0, 139, 241, 255, 175, - 176, 826, 0, 221, 0, 0, 0, 0, 221, 0, - 0, 541, 542, 544, 0, -2, 0, 0, 0, 0, - 0, 359, 0, 0, 0, 366, 372, 383, 0, 373, - 374, 375, 380, 376, 377, 378, 0, 0, 513, 0, - -2, 0, 0, 0, 0, 532, 533, 363, 0, 0, - 0, 0, 0, 795, 796, 799, 0, 0, 0, 0, - 0, 0, 0, 828, 0, 832, 0, 0, 0, 0, - 433, 0, 560, 0, 0, 265, 0, 0, 294, 0, - 204, 563, 0, 394, 0, 399, 396, 397, 396, 396, - 396, 396, 396, 0, 763, 0, 0, 0, 820, 821, - 822, 823, 824, 825, 836, 0, 731, 0, 75, 32, - 0, 725, 0, 0, 0, 674, 713, 717, 0, 0, - 681, 0, 676, 547, 548, 549, 0, 0, 229, 0, - 0, 156, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 78, 65, 0, 0, 0, 536, 220, 166, 0, - 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, - 0, -2, 239, 240, 0, 253, 254, 815, 340, 313, - 265, 0, 352, 354, 355, 312, 0, 0, 0, 0, - 206, 0, 0, 0, 0, 0, 0, 525, -2, 528, - 529, 529, 369, 370, 792, 797, 0, 805, 800, 803, - 810, 812, 778, 804, 829, 830, 0, 0, 843, 0, - 141, 561, 0, 0, 0, 0, 0, 0, 290, 0, - 0, 293, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 0, 0, 0, 206, 0, 0, 267, 0, - 0, 0, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 0, 584, 585, 586, 587, 593, - 594, 595, 596, 597, 598, 599, 618, 618, 602, 618, - 620, 606, 608, 0, 610, 0, 612, 614, 0, 616, - 617, 269, 0, 398, 401, 402, 403, 404, 405, 406, - 0, 97, 98, 99, 100, 101, 766, 768, 807, 718, - 0, 0, 0, 723, 724, 0, 37, 35, 712, 716, - 678, 679, 539, -2, 550, 231, 148, 0, 160, 143, - 157, 0, 134, 63, 74, 76, 77, 440, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 433, 0, 534, -2, -2, 0, - 0, 167, 168, 242, 221, 221, 221, 221, 247, 248, - 249, 250, 169, 256, 221, 221, 221, 260, 261, 262, - 263, 177, 0, 0, 0, 0, 0, 186, 221, 236, - 0, 543, 545, 341, 0, 0, 358, 0, 361, 362, - 0, 0, 0, 45, 46, 517, 524, 0, 530, 531, - 0, 831, 842, 776, 147, 563, 314, 315, 316, 317, - 294, 292, 0, 0, 0, 187, 205, 196, 588, 0, - 0, 0, 0, 0, 613, 580, 581, 582, 583, 607, - 600, 0, 601, 603, 604, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 0, 636, 637, 638, - 639, 640, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 609, 611, 615, 203, - 95, 765, 767, 0, 732, 733, 736, 737, 0, 739, - 0, 734, 735, 719, 726, 78, 0, 0, 160, 159, - 156, 0, 144, 145, 0, 0, 80, 81, 82, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 75, 70, 0, 0, 0, - 0, 0, 535, 243, 244, 245, 246, 257, 258, 259, - 221, 0, 182, 0, 185, 0, 546, 353, 0, 0, - 207, 437, 438, 439, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 384, 385, 526, - 0, 772, 0, 0, 0, 305, 306, 307, 308, 0, - 589, 0, 0, 268, 0, 0, 0, 0, 0, 0, - 642, 643, 632, 633, 634, 635, 653, 770, 0, 0, - 0, 78, 680, 158, 161, 162, 0, 155, 0, 86, - 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 431, 0, -2, -2, - 212, 213, 0, 0, 0, 0, -2, 163, 360, 0, - 0, 0, 0, 0, -2, 266, 291, 309, 590, 0, - 0, 0, 0, 0, 0, 605, 641, 769, 0, 0, - 0, 0, 0, 727, 0, 146, 0, 0, 0, 90, - 441, 442, 0, 0, 444, 445, 0, 446, 0, 413, - 415, 0, 414, 416, 0, 417, 0, 418, 0, 419, - 0, 420, 0, 425, 0, 426, 0, 427, 0, 428, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 429, - 0, 430, 0, 67, 0, 0, 165, 0, 163, 184, - 0, 0, 164, 0, 0, 0, 0, 592, 0, 566, - 563, 0, 738, 0, 0, 0, 743, 728, 0, 91, - 89, 482, 443, 485, 489, 466, 469, 472, 474, 476, - 478, 472, 474, 476, 478, 421, 0, 422, 0, 423, - 0, 424, 0, 476, 480, 210, 211, 0, 0, 206, - -2, 798, 318, 591, 0, 565, 567, 619, 0, 0, - 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 472, 474, 476, 478, 0, - 0, 0, -2, 251, 0, 0, 0, 740, 741, 742, - 463, 483, 484, 464, 486, 0, 488, 465, 490, 447, - 467, 468, 448, 470, 471, 449, 473, 450, 475, 451, - 477, 452, 479, 453, 454, 455, 456, 0, 0, 0, - 0, 461, 462, 481, 0, 0, 356, 270, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 0, 0, 487, 457, 458, 459, 460, -2, - 0, 0, 0, 0, 0, 0, 564, 178, 221, 333, - 0, 0, 0, 0, 163, 0, -2, 0, 179 }; -#ifdef YYRECOVER -YYSTATIC YYCONST short yyrecover[] = { --1000 +static int yyctable[] = { -1, + 236, 553, -1, 423, 763, -1, 275, 693, -1, 276, + 693, -1, 277, 693, -1, 279, 693, -1, 280, 693, + -1, 281, 693, -1, 282, 693, -1, 493, 714, -1, + 205, 40, -1, 222, 492, -1, 97, 492, -1, 99, + 492, -1, 100, 492, -1, 101, 492, -1, 102, 492, + -1, 103, 492, -1, 729, 314, -1, 797, 765, -1, + 67, 561, -1, 68, 561, -1, 69, 561, -1, 27, + 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, + -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, + 34, 78, -1, 1060, 621, -1, 67, 562, -1, 68, + 562, -1, 69, 562, -1, 1079, 37, -1, 1203, 769, + -1, 1205, 767, -1, 1217, 605, -1, 1420, 771, -1, + 1062, 568, -1, 1063, 568, -1, +}; +#ifdef YYDESTRUCT +static int yyastable[] = { 0, + 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, + 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, + 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 296, 319, 320, 396, 402, 403, 418, + 419, 421, 422, 424, 425, 426, 427, 428, 429, 430, + 432, 434, 436, 438, 439, 440, 441, 442, 443, 445, + 446, 447, 460, 478, 484, 215, 5, 6, 8, 310, + 311, 298, 325, 64, 125, 480, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 395, 395, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 294, 316, 317, 382, 384, 385, 297, + 298, 273, 397, 215, 399, 401, 215, 310, 9, 318, + 318, 9, 10, 333, 333, 13, 16, 20, 21, 22, + 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, + 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, + 104, 159, 160, 161, 298, 307, 310, 314, 337, 361, + 379, 383, 385, 402, 403, 457, 289, 310, 310, 310, + 310, 7, 12, 340, 341, 340, 340, 289, 289, 423, + 289, 289, 289, 289, 340, 386, 60, 448, 387, 23, + 26, 27, 28, 29, 31, 32, 33, 289, 305, 479, + 482, 483, 318, 400, 293, 318, 388, 311, 298, 337, + 379, 380, 385, 457, 7, 33, 297, 345, 292, 294, + 294, 46, 48, 49, 50, 316, 316, 380, 381, 383, + 337, 297, 294, 318, 318, 207, 310, 399, 100, 101, + 102, 125, 219, 221, 222, 223, 224, 310, 75, 76, + 310, 310, 337, 26, 27, 28, 29, 379, 51, 379, + 24, 25, 34, 15, 17, 337, 217, 304, 310, 385, + 307, 310, 318, 306, 105, 106, 107, 136, 298, 300, + 304, 305, 136, 136, 136, 136, 316, 384, 379, 444, + 345, 295, 12, 295, 295, 420, 309, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 162, 163, 164, 165, 166, 167, 204, 218, 253, 254, + 289, 290, 311, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 425, 428, 439, + 440, 441, 443, 462, 463, 464, 465, 466, 467, 468, + 471, 431, 433, 435, 437, 295, 39, 68, 72, 75, + 76, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 98, 101, 108, 117, 310, 380, 61, + 449, 39, 72, 74, 75, 76, 77, 78, 83, 92, + 97, 99, 111, 112, 113, 114, 115, 116, 117, 118, + 124, 316, 304, 294, 298, 323, 294, 323, 294, 323, + 294, 323, 294, 323, 294, 323, 294, 481, 482, 294, + 340, 7, 8, 292, 303, 73, 75, 76, 82, 310, + 310, 299, 39, 72, 74, 75, 76, 77, 111, 112, + 113, 114, 117, 121, 122, 123, 225, 337, 297, 217, + 310, 294, 297, 316, 294, 289, 294, 291, 8, 318, + 318, 295, 119, 120, 298, 310, 312, 380, 289, 294, + 345, 299, 166, 398, 310, 220, 136, 379, 25, 310, + 380, 310, 299, 299, 299, 310, 318, 310, 294, 294, + 310, 20, 299, 318, 338, 339, 337, 363, 364, 310, + 310, 310, 310, 337, 444, 290, 67, 154, 168, 173, + 198, 199, 218, 253, 254, 290, 419, 422, 424, 425, + 428, 439, 440, 441, 443, 451, 452, 454, 456, 290, + 318, 318, 318, 298, 110, 287, 298, 103, 380, 303, + 311, 318, 318, 333, 11, 31, 32, 294, 332, 333, + 311, 318, 384, 15, 17, 337, 385, 380, 87, 345, + 483, 316, 381, 294, 340, 197, 294, 423, 55, 57, + 58, 59, 469, 470, 472, 474, 475, 476, 477, 311, + 318, 466, 208, 210, 213, 214, 290, 439, 440, 443, + 486, 487, 488, 489, 84, 208, 211, 290, 485, 487, + 490, 491, 41, 154, 206, 209, 290, 440, 443, 492, + 206, 209, 290, 440, 443, 493, 294, 75, 76, 77, + 111, 112, 113, 300, 378, 380, 450, 294, 294, 322, + 294, 318, 318, 318, 318, 333, 332, 332, 290, 292, + 311, 295, 318, 318, 75, 76, 77, 111, 112, 113, + 294, 294, 310, 310, 299, 345, 393, 394, 289, 337, + 51, 372, 373, 380, 7, 292, 295, 295, 382, 300, + 331, 362, 19, 368, 370, 321, 485, 136, 310, 19, + 299, 314, 314, 314, 380, 380, 20, 292, 299, 301, + 292, 304, 110, 390, 391, 318, 318, 400, 110, 287, + 103, 380, 289, 423, 289, 289, 289, 303, 318, 298, + 310, 298, 310, 318, 316, 19, 294, 294, 310, 380, + 294, 340, 337, 311, 315, 318, 295, 294, 20, 322, + 334, 335, 336, 290, 380, 469, 56, 466, 473, 473, + 473, 473, 311, 318, 466, 62, 62, 212, 297, 304, + 318, 375, 297, 345, 340, 340, 297, 297, 340, 340, + 294, 215, 318, 310, 215, 310, 215, 318, 39, 51, + 52, 69, 119, 288, 291, 302, 327, 328, 377, 292, + 318, 345, 392, 298, 337, 345, 295, 299, 295, 295, + 295, 295, 295, 481, 295, 303, 8, 292, 318, 2, + 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, + 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, + 136, 226, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 248, + 289, 342, 343, 461, 63, 313, 299, 297, 295, 292, + 368, 8, 292, 290, 297, 8, 297, 298, 363, 294, + 294, 310, 312, 290, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 35, 36, 37, 38, 42, 43, 110, + 349, 350, 371, 443, 483, 28, 29, 63, 202, 203, + 205, 340, 310, 310, 314, 295, 295, 318, 338, 337, + 294, 380, 72, 117, 310, 380, 72, 117, 316, 310, + 298, 310, 298, 310, 316, 19, 420, 290, 453, 455, + 435, 318, 299, 318, 318, 292, 299, 337, 312, 318, + 333, 19, 345, 295, 294, 292, 295, 292, 334, 337, + 295, 292, 311, 318, 311, 318, 318, 294, 303, 294, + 295, 295, 294, 294, 295, 295, 318, 314, 310, 63, + 310, 295, 294, 337, 328, 294, 310, 367, 301, 380, + 295, 136, 392, 39, 46, 48, 49, 50, 87, 88, + 89, 133, 134, 135, 137, 140, 295, 250, 251, 252, + 318, 225, 347, 295, 323, 323, 323, 323, 323, 323, + 318, 318, 295, 25, 26, 27, 28, 29, 294, 329, + 242, 234, 246, 294, 227, 247, 22, 329, 329, 2, + 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, + 34, 35, 36, 37, 38, 229, 230, 232, 233, 234, + 236, 237, 240, 241, 243, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 304, + 324, 298, 304, 295, 341, 311, 297, 344, 28, 65, + 66, 318, 326, 345, 346, 379, 393, 290, 297, 373, + 289, 289, 294, 345, 318, 301, 334, 334, 331, 362, + 294, 298, 294, 298, 26, 27, 28, 29, 294, 298, + 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, + 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, + 294, 298, 294, 298, 104, 109, 374, 443, 340, 311, + 295, 334, 196, 402, 310, 337, 318, 318, 292, 337, + 312, 290, 169, 170, 171, 172, 290, 428, 440, 441, + 443, 458, 172, 174, 175, 290, 428, 440, 441, 443, + 459, 290, 136, 299, 299, 380, 344, 380, 295, 295, + 310, 295, 334, 315, 315, 295, 347, 336, 62, 62, + 375, 295, 318, 318, 310, 365, 366, 380, 292, 376, + 310, 345, 295, 294, 303, 303, 299, 299, 299, 299, + 294, 312, 8, 292, 8, 249, 345, 298, 298, 25, + 26, 27, 28, 29, 270, 292, 298, 305, 291, 299, + 318, 290, 22, 23, 24, 26, 27, 28, 29, 31, + 32, 35, 36, 37, 38, 44, 345, 348, 350, 294, + 294, 289, 371, 368, 299, 295, 295, 294, 294, 326, + 318, 318, 318, 294, 298, 294, 298, 294, 298, 294, + 298, 318, 318, 318, 318, 318, 318, 333, 318, 318, + 332, 318, 332, 333, 318, 318, 318, 318, 318, 318, + 318, 333, 318, 349, 318, 8, 44, 318, 44, 51, + 379, 318, 42, 91, 110, 361, 369, 295, 398, 295, + 310, 299, 299, 380, 380, 255, 384, 384, 384, 384, + 384, 384, 384, 311, 292, 19, 295, 311, 311, 318, + 303, 295, 376, 295, 292, 377, 376, 392, 318, 138, + 139, 138, 139, 343, 378, 318, 297, 292, 318, 318, + 345, 299, 318, 291, 299, 26, 27, 28, 29, 318, + 26, 27, 28, 318, 371, 290, 290, 301, 334, 334, + 295, 299, 295, 299, 318, 318, 318, 318, 318, 318, + 333, 318, 295, 299, 295, 299, 295, 299, 295, 299, + 295, 295, 299, 295, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 295, 299, 295, + 8, 295, 299, 51, 379, 298, 310, 294, 292, 19, + 316, 380, 312, 375, 380, 295, 295, 295, 294, 8, + 318, 345, 299, 299, 299, 318, 295, 303, 303, 303, + 295, 290, 295, 295, 294, 294, 295, 299, 295, 299, + 295, 299, 295, 299, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 295, 294, 8, 299, + 297, 334, 380, 312, 337, 300, 330, 331, 303, 334, + 295, 292, 295, 342, 299, 318, 318, 318, 357, 354, + 294, 294, 294, 294, 353, 354, 355, 356, 351, 352, + 353, 354, 355, 356, 360, 358, 359, 349, 295, 330, + 380, 294, 375, 295, 345, 295, 295, 295, 295, 326, + 295, 318, 353, 354, 355, 356, 295, 318, 295, 295, + 318, 295, 333, 295, 318, 332, 295, 332, 333, 295, + 295, 295, 295, 295, 349, 8, 44, 295, 44, 51, + 295, 379, 344, 294, 19, 334, 389, 292, 295, 295, + 295, 295, 8, 334, 312, 295, 39, 54, 70, 79, + 93, 94, 95, 96, 125, 126, 127, 128, 129, 130, + 131, 289, 345, 295, 294, 294, 295, 255, 334, 318, + 103, 295, 295, 316, 337, 380, 19, 312, 330, 294, + 334, 295, +}; +#endif /* YYDESTRUCT */ +#define YYFINAL 1 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 543 +#if YYDEBUG +static const char *yyname[] = { +"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +"'!'",0,0,0,0,"'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0, +0,0,0,0,0,"':'","';'","'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"ERROR_","BAD_COMMENT_", +"BAD_LITERAL_","ID","DOTTEDNAME","QSTRING","SQSTRING","INT32","INT64","FLOAT64", +"HEXBYTE","TYPEDEF_T","TYPEDEF_M","TYPEDEF_F","TYPEDEF_TS","TYPEDEF_MR", +"TYPEDEF_CA","DCOLON","ELLIPSIS","VOID_","BOOL_","CHAR_","UNSIGNED_","INT_", +"INT8_","INT16_","INT32_","INT64_","FLOAT_","FLOAT32_","FLOAT64_","BYTEARRAY_", +"UINT_","UINT8_","UINT16_","UINT32_","UINT64_","FLAGS_","CALLCONV_","MDTOKEN_", +"OBJECT_","STRING_","NULLREF_","DEFAULT_","CDECL_","VARARG_","STDCALL_", +"THISCALL_","FASTCALL_","CLASS_","BYREFLIKE_","TYPEDREF_","UNMANAGED_", +"FINALLY_","HANDLER_","CATCH_","FILTER_","FAULT_","EXTENDS_","IMPLEMENTS_", +"TO_","AT_","TLS_","TRUE_","FALSE_","_INTERFACEIMPL","VALUE_","VALUETYPE_", +"NATIVE_","INSTANCE_","SPECIALNAME_","FORWARDER_","STATIC_","PUBLIC_", +"PRIVATE_","FAMILY_","FINAL_","SYNCHRONIZED_","INTERFACE_","SEALED_","NESTED_", +"ABSTRACT_","AUTO_","SEQUENTIAL_","EXPLICIT_","ANSI_","UNICODE_","AUTOCHAR_", +"IMPORT_","ENUM_","VIRTUAL_","NOINLINING_","AGGRESSIVEINLINING_", +"NOOPTIMIZATION_","AGGRESSIVEOPTIMIZATION_","UNMANAGEDEXP_","BEFOREFIELDINIT_", +"STRICT_","RETARGETABLE_","WINDOWSRUNTIME_","NOPLATFORM_","METHOD_","FIELD_", +"PINNED_","MODREQ_","MODOPT_","SERIALIZABLE_","PROPERTY_","TYPE_","ASSEMBLY_", +"FAMANDASSEM_","FAMORASSEM_","PRIVATESCOPE_","HIDEBYSIG_","NEWSLOT_", +"RTSPECIALNAME_","PINVOKEIMPL_","_CTOR","_CCTOR","LITERAL_","NOTSERIALIZED_", +"INITONLY_","REQSECOBJ_","CIL_","OPTIL_","MANAGED_","FORWARDREF_", +"PRESERVESIG_","RUNTIME_","INTERNALCALL_","_IMPORT","NOMANGLE_","LASTERR_", +"WINAPI_","AS_","BESTFIT_","ON_","OFF_","CHARMAPERROR_","INSTR_NONE", +"INSTR_VAR","INSTR_I","INSTR_I8","INSTR_R","INSTR_BRTARGET","INSTR_METHOD", +"INSTR_FIELD","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", +"INSTR_SWITCH","_CLASS","_NAMESPACE","_METHOD","_FIELD","_DATA","_THIS","_BASE", +"_NESTER","_EMITBYTE","_TRY","_MAXSTACK","_LOCALS","_ENTRYPOINT","_ZEROINIT", +"_EVENT","_ADDON","_REMOVEON","_FIRE","_OTHER","_PROPERTY","_SET","_GET", +"_PERMISSION","_PERMISSIONSET","REQUEST_","DEMAND_","ASSERT_","DENY_", +"PERMITONLY_","LINKCHECK_","INHERITCHECK_","REQMIN_","REQOPT_","REQREFUSE_", +"PREJITGRANT_","PREJITDENY_","NONCASDEMAND_","NONCASLINKDEMAND_", +"NONCASINHERITANCE_","_LINE","P_LINE","_LANGUAGE","_CUSTOM","INIT_","_SIZE", +"_PACK","_VTABLE","_VTFIXUP","FROMUNMANAGED_","CALLMOSTDERIVED_","_VTENTRY", +"RETAINAPPDOMAIN_","_FILE","NOMETADATA_","_HASH","_ASSEMBLY","_PUBLICKEY", +"_PUBLICKEYTOKEN","ALGORITHM_","_VER","_LOCALE","EXTERN_","_MRESOURCE", +"_MODULE","_EXPORT","LEGACY_","LIBRARY_","X86_","AMD64_","ARM_","ARM64_", +"MARSHAL_","CUSTOM_","SYSSTRING_","FIXED_","VARIANT_","CURRENCY_","SYSCHAR_", +"DECIMAL_","DATE_","BSTR_","TBSTR_","LPSTR_","LPWSTR_","LPTSTR_","OBJECTREF_", +"IUNKNOWN_","IDISPATCH_","STRUCT_","SAFEARRAY_","BYVALSTR_","LPVOID_","ANY_", +"ARRAY_","LPSTRUCT_","IIDPARAM_","IN_","OUT_","OPT_","_PARAM","_OVERRIDE", +"WITH_","NULL_","HRESULT_","CARRAY_","USERDEFINED_","RECORD_","FILETIME_", +"BLOB_","STREAM_","STORAGE_","STREAMED_OBJECT_","STORED_OBJECT_","BLOB_OBJECT_", +"CF_","CLSID_","VECTOR_","_SUBSYSTEM","_CORFLAGS","ALIGNMENT_","_IMAGEBASE", +"_STACKRESERVE","_TYPEDEF","_TEMPLATE","_TYPELIST","_MSCORLIB","P_DEFINE", +"P_UNDEF","P_IFDEF","P_IFNDEF","P_ELSE","P_ENDIF","P_INCLUDE","CONSTRAINT_", +"CONST_", +}; +static const char *yyrule[] = { +"$accept : decls", +"decls :", +"decls : decls decl", +"decl : classHead '{' classDecls '}'", +"decl : nameSpaceHead '{' decls '}'", +"decl : methodHead methodDecls '}'", +"decl : fieldDecl", +"decl : dataDecl", +"decl : vtableDecl", +"decl : vtfixupDecl", +"decl : extSourceSpec", +"decl : fileDecl", +"decl : assemblyHead '{' assemblyDecls '}'", +"decl : assemblyRefHead '{' assemblyRefDecls '}'", +"decl : exptypeHead '{' exptypeDecls '}'", +"decl : manifestResHead '{' manifestResDecls '}'", +"decl : moduleHead", +"decl : secDecl", +"decl : customAttrDecl", +"decl : _SUBSYSTEM int32", +"decl : _CORFLAGS int32", +"decl : _FILE ALIGNMENT_ int32", +"decl : _IMAGEBASE int64", +"decl : _STACKRESERVE int64", +"decl : languageDecl", +"decl : typedefDecl", +"decl : compControl", +"decl : _TYPELIST '{' classNameSeq '}'", +"decl : _MSCORLIB", +"classNameSeq :", +"classNameSeq : className classNameSeq", +"compQstring : QSTRING", +"compQstring : compQstring '+' QSTRING", +"languageDecl : _LANGUAGE SQSTRING", +"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING", +"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING", +"id : ID", +"id : SQSTRING", +"dottedName : id", +"dottedName : DOTTEDNAME", +"dottedName : dottedName '.' dottedName", +"int32 : INT32", +"int64 : INT64", +"int64 : INT32", +"float64 : FLOAT64", +"float64 : FLOAT32_ '(' int32 ')'", +"float64 : FLOAT64_ '(' int64 ')'", +"typedefDecl : _TYPEDEF type AS_ dottedName", +"typedefDecl : _TYPEDEF className AS_ dottedName", +"typedefDecl : _TYPEDEF memberRef AS_ dottedName", +"typedefDecl : _TYPEDEF customDescr AS_ dottedName", +"typedefDecl : _TYPEDEF customDescrWithOwner AS_ dottedName", +"compControl : P_DEFINE dottedName", +"compControl : P_DEFINE dottedName compQstring", +"compControl : P_UNDEF dottedName", +"compControl : P_IFDEF dottedName", +"compControl : P_IFNDEF dottedName", +"compControl : P_ELSE", +"compControl : P_ENDIF", +"compControl : P_INCLUDE QSTRING", +"compControl : ';'", +"customDescr : _CUSTOM customType", +"customDescr : _CUSTOM customType '=' compQstring", +"customDescr : _CUSTOM customType '=' '{' customBlobDescr '}'", +"customDescr : customHead bytes ')'", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' compQstring", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}'", +"customDescrWithOwner : customHeadWithOwner bytes ')'", +"customHead : _CUSTOM customType '=' '('", +"customHeadWithOwner : _CUSTOM '(' ownerType ')' customType '=' '('", +"customType : methodRef", +"ownerType : typeSpec", +"ownerType : memberRef", +"customBlobDescr : customBlobArgs customBlobNVPairs", +"customBlobArgs :", +"customBlobArgs : customBlobArgs serInit", +"customBlobArgs : customBlobArgs compControl", +"customBlobNVPairs :", +"customBlobNVPairs : customBlobNVPairs fieldOrProp serializType dottedName '=' serInit", +"customBlobNVPairs : customBlobNVPairs compControl", +"fieldOrProp : FIELD_", +"fieldOrProp : PROPERTY_", +"customAttrDecl : customDescr", +"customAttrDecl : customDescrWithOwner", +"customAttrDecl : TYPEDEF_CA", +"serializType : simpleType", +"serializType : TYPE_", +"serializType : OBJECT_", +"serializType : ENUM_ CLASS_ SQSTRING", +"serializType : ENUM_ className", +"serializType : serializType '[' ']'", +"moduleHead : _MODULE", +"moduleHead : _MODULE dottedName", +"moduleHead : _MODULE EXTERN_ dottedName", +"vtfixupDecl : _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id", +"vtfixupAttr :", +"vtfixupAttr : vtfixupAttr INT32_", +"vtfixupAttr : vtfixupAttr INT64_", +"vtfixupAttr : vtfixupAttr FROMUNMANAGED_", +"vtfixupAttr : vtfixupAttr CALLMOSTDERIVED_", +"vtfixupAttr : vtfixupAttr RETAINAPPDOMAIN_", +"vtableDecl : vtableHead bytes ')'", +"vtableHead : _VTABLE '=' '('", +"nameSpaceHead : _NAMESPACE dottedName", +"_class : _CLASS", +"classHeadBegin : _class classAttr dottedName typarsClause", +"classHead : classHeadBegin extendsClause implClause", +"classAttr :", +"classAttr : classAttr PUBLIC_", +"classAttr : classAttr PRIVATE_", +"classAttr : classAttr VALUE_", +"classAttr : classAttr ENUM_", +"classAttr : classAttr INTERFACE_", +"classAttr : classAttr SEALED_", +"classAttr : classAttr ABSTRACT_", +"classAttr : classAttr AUTO_", +"classAttr : classAttr SEQUENTIAL_", +"classAttr : classAttr EXPLICIT_", +"classAttr : classAttr ANSI_", +"classAttr : classAttr UNICODE_", +"classAttr : classAttr AUTOCHAR_", +"classAttr : classAttr IMPORT_", +"classAttr : classAttr SERIALIZABLE_", +"classAttr : classAttr WINDOWSRUNTIME_", +"classAttr : classAttr NESTED_ PUBLIC_", +"classAttr : classAttr NESTED_ PRIVATE_", +"classAttr : classAttr NESTED_ FAMILY_", +"classAttr : classAttr NESTED_ ASSEMBLY_", +"classAttr : classAttr NESTED_ FAMANDASSEM_", +"classAttr : classAttr NESTED_ FAMORASSEM_", +"classAttr : classAttr BEFOREFIELDINIT_", +"classAttr : classAttr SPECIALNAME_", +"classAttr : classAttr RTSPECIALNAME_", +"classAttr : classAttr FLAGS_ '(' int32 ')'", +"extendsClause :", +"extendsClause : EXTENDS_ typeSpec", +"implClause :", +"implClause : IMPLEMENTS_ implList", +"classDecls :", +"classDecls : classDecls classDecl", +"implList : implList ',' typeSpec", +"implList : typeSpec", +"typeList :", +"typeList : typeListNotEmpty", +"typeListNotEmpty : typeSpec", +"typeListNotEmpty : typeListNotEmpty ',' typeSpec", +"typarsClause :", +"typarsClause : '<' typars '>'", +"typarAttrib : '+'", +"typarAttrib : '-'", +"typarAttrib : CLASS_", +"typarAttrib : VALUETYPE_", +"typarAttrib : BYREFLIKE_", +"typarAttrib : _CTOR", +"typarAttrib : FLAGS_ '(' int32 ')'", +"typarAttribs :", +"typarAttribs : typarAttrib typarAttribs", +"typars : CONST_ type dottedName typarsRest", +"typars : typarAttribs tyBound dottedName typarsRest", +"typars : typarAttribs dottedName typarsRest", +"typarsRest :", +"typarsRest : ',' typars", +"tyBound : '(' typeList ')'", +"genArity :", +"genArity : genArityNotEmpty", +"genArityNotEmpty : '<' '[' int32 ']' '>'", +"classDecl : methodHead methodDecls '}'", +"classDecl : classHead '{' classDecls '}'", +"classDecl : eventHead '{' eventDecls '}'", +"classDecl : propHead '{' propDecls '}'", +"classDecl : fieldDecl", +"classDecl : dataDecl", +"classDecl : secDecl", +"classDecl : extSourceSpec", +"classDecl : customAttrDecl", +"classDecl : _SIZE int32", +"classDecl : _PACK int32", +"classDecl : exportHead '{' exptypeDecls '}'", +"classDecl : _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')'", +"classDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", +"classDecl : languageDecl", +"classDecl : compControl", +"classDecl : _PARAM TYPE_ '[' int32 ']'", +"classDecl : _PARAM TYPE_ dottedName", +"classDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", +"classDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", +"classDecl : _INTERFACEIMPL TYPE_ typeSpec customDescr", +"fieldDecl : _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt", +"fieldAttr :", +"fieldAttr : fieldAttr STATIC_", +"fieldAttr : fieldAttr PUBLIC_", +"fieldAttr : fieldAttr PRIVATE_", +"fieldAttr : fieldAttr FAMILY_", +"fieldAttr : fieldAttr INITONLY_", +"fieldAttr : fieldAttr RTSPECIALNAME_", +"fieldAttr : fieldAttr SPECIALNAME_", +"fieldAttr : fieldAttr MARSHAL_ '(' marshalBlob ')'", +"fieldAttr : fieldAttr ASSEMBLY_", +"fieldAttr : fieldAttr FAMANDASSEM_", +"fieldAttr : fieldAttr FAMORASSEM_", +"fieldAttr : fieldAttr PRIVATESCOPE_", +"fieldAttr : fieldAttr LITERAL_", +"fieldAttr : fieldAttr NOTSERIALIZED_", +"fieldAttr : fieldAttr FLAGS_ '(' int32 ')'", +"atOpt :", +"atOpt : AT_ id", +"initOpt :", +"initOpt : '=' fieldInit", +"repeatOpt :", +"repeatOpt : '[' int32 ']'", +"methodRef : callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')'", +"methodRef : callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')'", +"methodRef : callConv type methodName tyArgs0 '(' sigArgs0 ')'", +"methodRef : callConv type methodName genArityNotEmpty '(' sigArgs0 ')'", +"methodRef : mdtoken", +"methodRef : TYPEDEF_M", +"methodRef : TYPEDEF_MR", +"callConv : INSTANCE_ callConv", +"callConv : EXPLICIT_ callConv", +"callConv : callKind", +"callConv : CALLCONV_ '(' int32 ')'", +"callKind :", +"callKind : DEFAULT_", +"callKind : VARARG_", +"callKind : UNMANAGED_ CDECL_", +"callKind : UNMANAGED_ STDCALL_", +"callKind : UNMANAGED_ THISCALL_", +"callKind : UNMANAGED_ FASTCALL_", +"callKind : UNMANAGED_", +"mdtoken : MDTOKEN_ '(' int32 ')'", +"memberRef : methodSpec methodRef", +"memberRef : FIELD_ type typeSpec DCOLON dottedName", +"memberRef : FIELD_ type dottedName", +"memberRef : FIELD_ TYPEDEF_F", +"memberRef : FIELD_ TYPEDEF_MR", +"memberRef : mdtoken", +"eventHead : _EVENT eventAttr typeSpec dottedName", +"eventHead : _EVENT eventAttr dottedName", +"eventAttr :", +"eventAttr : eventAttr RTSPECIALNAME_", +"eventAttr : eventAttr SPECIALNAME_", +"eventDecls :", +"eventDecls : eventDecls eventDecl", +"eventDecl : _ADDON methodRef", +"eventDecl : _REMOVEON methodRef", +"eventDecl : _FIRE methodRef", +"eventDecl : _OTHER methodRef", +"eventDecl : extSourceSpec", +"eventDecl : customAttrDecl", +"eventDecl : languageDecl", +"eventDecl : compControl", +"propHead : _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt", +"propAttr :", +"propAttr : propAttr RTSPECIALNAME_", +"propAttr : propAttr SPECIALNAME_", +"propDecls :", +"propDecls : propDecls propDecl", +"propDecl : _SET methodRef", +"propDecl : _GET methodRef", +"propDecl : _OTHER methodRef", +"propDecl : customAttrDecl", +"propDecl : extSourceSpec", +"propDecl : languageDecl", +"propDecl : compControl", +"methodHeadPart1 : _METHOD", +"marshalClause :", +"marshalClause : MARSHAL_ '(' marshalBlob ')'", +"marshalBlob : nativeType", +"marshalBlob : marshalBlobHead hexbytes '}'", +"marshalBlobHead : '{'", +"methodHead : methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{'", +"methAttr :", +"methAttr : methAttr STATIC_", +"methAttr : methAttr PUBLIC_", +"methAttr : methAttr PRIVATE_", +"methAttr : methAttr FAMILY_", +"methAttr : methAttr FINAL_", +"methAttr : methAttr SPECIALNAME_", +"methAttr : methAttr VIRTUAL_", +"methAttr : methAttr STRICT_", +"methAttr : methAttr ABSTRACT_", +"methAttr : methAttr ASSEMBLY_", +"methAttr : methAttr FAMANDASSEM_", +"methAttr : methAttr FAMORASSEM_", +"methAttr : methAttr PRIVATESCOPE_", +"methAttr : methAttr HIDEBYSIG_", +"methAttr : methAttr NEWSLOT_", +"methAttr : methAttr RTSPECIALNAME_", +"methAttr : methAttr UNMANAGEDEXP_", +"methAttr : methAttr REQSECOBJ_", +"methAttr : methAttr FLAGS_ '(' int32 ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' pinvAttr ')'", +"pinvAttr :", +"pinvAttr : pinvAttr NOMANGLE_", +"pinvAttr : pinvAttr ANSI_", +"pinvAttr : pinvAttr UNICODE_", +"pinvAttr : pinvAttr AUTOCHAR_", +"pinvAttr : pinvAttr LASTERR_", +"pinvAttr : pinvAttr WINAPI_", +"pinvAttr : pinvAttr CDECL_", +"pinvAttr : pinvAttr STDCALL_", +"pinvAttr : pinvAttr THISCALL_", +"pinvAttr : pinvAttr FASTCALL_", +"pinvAttr : pinvAttr BESTFIT_ ':' ON_", +"pinvAttr : pinvAttr BESTFIT_ ':' OFF_", +"pinvAttr : pinvAttr CHARMAPERROR_ ':' ON_", +"pinvAttr : pinvAttr CHARMAPERROR_ ':' OFF_", +"pinvAttr : pinvAttr FLAGS_ '(' int32 ')'", +"methodName : _CTOR", +"methodName : _CCTOR", +"methodName : dottedName", +"paramAttr :", +"paramAttr : paramAttr '[' IN_ ']'", +"paramAttr : paramAttr '[' OUT_ ']'", +"paramAttr : paramAttr '[' OPT_ ']'", +"paramAttr : paramAttr '[' int32 ']'", +"implAttr :", +"implAttr : implAttr NATIVE_", +"implAttr : implAttr CIL_", +"implAttr : implAttr OPTIL_", +"implAttr : implAttr MANAGED_", +"implAttr : implAttr UNMANAGED_", +"implAttr : implAttr FORWARDREF_", +"implAttr : implAttr PRESERVESIG_", +"implAttr : implAttr RUNTIME_", +"implAttr : implAttr INTERNALCALL_", +"implAttr : implAttr SYNCHRONIZED_", +"implAttr : implAttr NOINLINING_", +"implAttr : implAttr AGGRESSIVEINLINING_", +"implAttr : implAttr NOOPTIMIZATION_", +"implAttr : implAttr AGGRESSIVEOPTIMIZATION_", +"implAttr : implAttr FLAGS_ '(' int32 ')'", +"localsHead : _LOCALS", +"methodDecls :", +"methodDecls : methodDecls methodDecl", +"methodDecl : _EMITBYTE int32", +"methodDecl : sehBlock", +"methodDecl : _MAXSTACK int32", +"methodDecl : localsHead '(' sigArgs0 ')'", +"methodDecl : localsHead INIT_ '(' sigArgs0 ')'", +"methodDecl : _ENTRYPOINT", +"methodDecl : _ZEROINIT", +"methodDecl : dataDecl", +"methodDecl : instr", +"methodDecl : id ':'", +"methodDecl : secDecl", +"methodDecl : extSourceSpec", +"methodDecl : languageDecl", +"methodDecl : customAttrDecl", +"methodDecl : compControl", +"methodDecl : _EXPORT '[' int32 ']'", +"methodDecl : _EXPORT '[' int32 ']' AS_ id", +"methodDecl : _VTENTRY int32 ':' int32", +"methodDecl : _OVERRIDE typeSpec DCOLON methodName", +"methodDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", +"methodDecl : scopeBlock", +"methodDecl : _PARAM TYPE_ '[' int32 ']'", +"methodDecl : _PARAM TYPE_ dottedName", +"methodDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", +"methodDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", +"methodDecl : _PARAM '[' int32 ']' initOpt", +"scopeBlock : scopeOpen methodDecls '}'", +"scopeOpen : '{'", +"sehBlock : tryBlock sehClauses", +"sehClauses : sehClause sehClauses", +"sehClauses : sehClause", +"tryBlock : tryHead scopeBlock", +"tryBlock : tryHead id TO_ id", +"tryBlock : tryHead int32 TO_ int32", +"tryHead : _TRY", +"sehClause : catchClause handlerBlock", +"sehClause : filterClause handlerBlock", +"sehClause : finallyClause handlerBlock", +"sehClause : faultClause handlerBlock", +"filterClause : filterHead scopeBlock", +"filterClause : filterHead id", +"filterClause : filterHead int32", +"filterHead : FILTER_", +"catchClause : CATCH_ typeSpec", +"finallyClause : FINALLY_", +"faultClause : FAULT_", +"handlerBlock : scopeBlock", +"handlerBlock : HANDLER_ id TO_ id", +"handlerBlock : HANDLER_ int32 TO_ int32", +"dataDecl : ddHead ddBody", +"ddHead : _DATA tls id '='", +"ddHead : _DATA tls", +"tls :", +"tls : TLS_", +"tls : CIL_", +"ddBody : '{' ddItemList '}'", +"ddBody : ddItem", +"ddItemList : ddItem ',' ddItemList", +"ddItemList : ddItem", +"ddItemCount :", +"ddItemCount : '[' int32 ']'", +"ddItem : CHAR_ '*' '(' compQstring ')'", +"ddItem : '&' '(' id ')'", +"ddItem : bytearrayhead bytes ')'", +"ddItem : FLOAT32_ '(' float64 ')' ddItemCount", +"ddItem : FLOAT64_ '(' float64 ')' ddItemCount", +"ddItem : INT64_ '(' int64 ')' ddItemCount", +"ddItem : INT32_ '(' int32 ')' ddItemCount", +"ddItem : INT16_ '(' int32 ')' ddItemCount", +"ddItem : INT8_ '(' int32 ')' ddItemCount", +"ddItem : FLOAT32_ ddItemCount", +"ddItem : FLOAT64_ ddItemCount", +"ddItem : INT64_ ddItemCount", +"ddItem : INT32_ ddItemCount", +"ddItem : INT16_ ddItemCount", +"ddItem : INT8_ ddItemCount", +"fieldSerInit : FLOAT32_ '(' float64 ')'", +"fieldSerInit : FLOAT64_ '(' float64 ')'", +"fieldSerInit : FLOAT32_ '(' int32 ')'", +"fieldSerInit : FLOAT64_ '(' int64 ')'", +"fieldSerInit : INT64_ '(' int64 ')'", +"fieldSerInit : INT32_ '(' int32 ')'", +"fieldSerInit : INT16_ '(' int32 ')'", +"fieldSerInit : INT8_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT64_ '(' int64 ')'", +"fieldSerInit : UNSIGNED_ INT32_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT16_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT8_ '(' int32 ')'", +"fieldSerInit : UINT64_ '(' int64 ')'", +"fieldSerInit : UINT32_ '(' int32 ')'", +"fieldSerInit : UINT16_ '(' int32 ')'", +"fieldSerInit : UINT8_ '(' int32 ')'", +"fieldSerInit : CHAR_ '(' int32 ')'", +"fieldSerInit : BOOL_ '(' truefalse ')'", +"fieldSerInit : bytearrayhead bytes ')'", +"bytearrayhead : BYTEARRAY_ '('", +"bytes :", +"bytes : hexbytes", +"hexbytes : HEXBYTE", +"hexbytes : hexbytes HEXBYTE", +"fieldInit : fieldSerInit", +"fieldInit : compQstring", +"fieldInit : NULLREF_", +"serInit : fieldSerInit", +"serInit : STRING_ '(' NULLREF_ ')'", +"serInit : STRING_ '(' SQSTRING ')'", +"serInit : TYPE_ '(' CLASS_ SQSTRING ')'", +"serInit : TYPE_ '(' className ')'", +"serInit : TYPE_ '(' NULLREF_ ')'", +"serInit : OBJECT_ '(' serInit ')'", +"serInit : FLOAT32_ '[' int32 ']' '(' f32seq ')'", +"serInit : FLOAT64_ '[' int32 ']' '(' f64seq ')'", +"serInit : INT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : INT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : INT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : INT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : UINT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : UINT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : UINT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : UINT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : CHAR_ '[' int32 ']' '(' i16seq ')'", +"serInit : BOOL_ '[' int32 ']' '(' boolSeq ')'", +"serInit : STRING_ '[' int32 ']' '(' sqstringSeq ')'", +"serInit : TYPE_ '[' int32 ']' '(' classSeq ')'", +"serInit : OBJECT_ '[' int32 ']' '(' objSeq ')'", +"f32seq :", +"f32seq : f32seq float64", +"f32seq : f32seq int32", +"f64seq :", +"f64seq : f64seq float64", +"f64seq : f64seq int64", +"i64seq :", +"i64seq : i64seq int64", +"i32seq :", +"i32seq : i32seq int32", +"i16seq :", +"i16seq : i16seq int32", +"i8seq :", +"i8seq : i8seq int32", +"boolSeq :", +"boolSeq : boolSeq truefalse", +"sqstringSeq :", +"sqstringSeq : sqstringSeq NULLREF_", +"sqstringSeq : sqstringSeq SQSTRING", +"classSeq :", +"classSeq : classSeq NULLREF_", +"classSeq : classSeq CLASS_ SQSTRING", +"classSeq : classSeq className", +"objSeq :", +"objSeq : objSeq serInit", +"methodSpec : METHOD_", +"instr_none : INSTR_NONE", +"instr_var : INSTR_VAR", +"instr_i : INSTR_I", +"instr_i8 : INSTR_I8", +"instr_r : INSTR_R", +"instr_brtarget : INSTR_BRTARGET", +"instr_method : INSTR_METHOD", +"instr_field : INSTR_FIELD", +"instr_type : INSTR_TYPE", +"instr_string : INSTR_STRING", +"instr_sig : INSTR_SIG", +"instr_tok : INSTR_TOK", +"instr_switch : INSTR_SWITCH", +"instr_r_head : instr_r '('", +"instr : instr_none", +"instr : instr_var int32", +"instr : instr_var id", +"instr : instr_i int32", +"instr : instr_i8 int64", +"instr : instr_r float64", +"instr : instr_r int64", +"instr : instr_r_head bytes ')'", +"instr : instr_brtarget int32", +"instr : instr_brtarget id", +"instr : instr_method methodRef", +"instr : instr_field type typeSpec DCOLON dottedName", +"instr : instr_field type dottedName", +"instr : instr_field mdtoken", +"instr : instr_field TYPEDEF_F", +"instr : instr_field TYPEDEF_MR", +"instr : instr_type typeSpec", +"instr : instr_string compQstring", +"instr : instr_string ANSI_ '(' compQstring ')'", +"instr : instr_string bytearrayhead bytes ')'", +"instr : instr_sig callConv type '(' sigArgs0 ')'", +"instr : instr_tok ownerType", +"instr : instr_switch '(' labels ')'", +"labels :", +"labels : id ',' labels", +"labels : int32 ',' labels", +"labels : id", +"labels : int32", +"tyArgs0 :", +"tyArgs0 : '<' tyArgs1 '>'", +"tyArgs1 :", +"tyArgs1 : tyArgs2", +"tyArgs2 : type", +"tyArgs2 : tyArgs2 ',' type", +"sigArgs0 :", +"sigArgs0 : sigArgs1", +"sigArgs1 : sigArg", +"sigArgs1 : sigArgs1 ',' sigArg", +"sigArg : ELLIPSIS", +"sigArg : paramAttr type marshalClause", +"sigArg : paramAttr type marshalClause id", +"className : '[' dottedName ']' slashedName", +"className : '[' mdtoken ']' slashedName", +"className : '[' '*' ']' slashedName", +"className : '[' _MODULE dottedName ']' slashedName", +"className : slashedName", +"className : mdtoken", +"className : TYPEDEF_T", +"className : _THIS", +"className : _BASE", +"className : _NESTER", +"slashedName : dottedName", +"slashedName : slashedName '/' dottedName", +"typeSpec : className", +"typeSpec : '[' dottedName ']'", +"typeSpec : '[' _MODULE dottedName ']'", +"typeSpec : type", +"nativeType :", +"nativeType : CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')'", +"nativeType : CUSTOM_ '(' compQstring ',' compQstring ')'", +"nativeType : FIXED_ SYSSTRING_ '[' int32 ']'", +"nativeType : FIXED_ ARRAY_ '[' int32 ']' nativeType", +"nativeType : VARIANT_", +"nativeType : CURRENCY_", +"nativeType : SYSCHAR_", +"nativeType : VOID_", +"nativeType : BOOL_", +"nativeType : INT8_", +"nativeType : INT16_", +"nativeType : INT32_", +"nativeType : INT64_", +"nativeType : FLOAT32_", +"nativeType : FLOAT64_", +"nativeType : ERROR_", +"nativeType : UNSIGNED_ INT8_", +"nativeType : UNSIGNED_ INT16_", +"nativeType : UNSIGNED_ INT32_", +"nativeType : UNSIGNED_ INT64_", +"nativeType : UINT8_", +"nativeType : UINT16_", +"nativeType : UINT32_", +"nativeType : UINT64_", +"nativeType : nativeType '*'", +"nativeType : nativeType '[' ']'", +"nativeType : nativeType '[' int32 ']'", +"nativeType : nativeType '[' int32 '+' int32 ']'", +"nativeType : nativeType '[' '+' int32 ']'", +"nativeType : DECIMAL_", +"nativeType : DATE_", +"nativeType : BSTR_", +"nativeType : LPSTR_", +"nativeType : LPWSTR_", +"nativeType : LPTSTR_", +"nativeType : OBJECTREF_", +"nativeType : IUNKNOWN_ iidParamIndex", +"nativeType : IDISPATCH_ iidParamIndex", +"nativeType : STRUCT_", +"nativeType : INTERFACE_ iidParamIndex", +"nativeType : SAFEARRAY_ variantType", +"nativeType : SAFEARRAY_ variantType ',' compQstring", +"nativeType : INT_", +"nativeType : UNSIGNED_ INT_", +"nativeType : UINT_", +"nativeType : NESTED_ STRUCT_", +"nativeType : BYVALSTR_", +"nativeType : ANSI_ BSTR_", +"nativeType : TBSTR_", +"nativeType : VARIANT_ BOOL_", +"nativeType : METHOD_", +"nativeType : AS_ ANY_", +"nativeType : LPSTRUCT_", +"nativeType : TYPEDEF_TS", +"iidParamIndex :", +"iidParamIndex : '(' IIDPARAM_ '=' int32 ')'", +"variantType :", +"variantType : NULL_", +"variantType : VARIANT_", +"variantType : CURRENCY_", +"variantType : VOID_", +"variantType : BOOL_", +"variantType : INT8_", +"variantType : INT16_", +"variantType : INT32_", +"variantType : INT64_", +"variantType : FLOAT32_", +"variantType : FLOAT64_", +"variantType : UNSIGNED_ INT8_", +"variantType : UNSIGNED_ INT16_", +"variantType : UNSIGNED_ INT32_", +"variantType : UNSIGNED_ INT64_", +"variantType : UINT8_", +"variantType : UINT16_", +"variantType : UINT32_", +"variantType : UINT64_", +"variantType : '*'", +"variantType : variantType '[' ']'", +"variantType : variantType VECTOR_", +"variantType : variantType '&'", +"variantType : DECIMAL_", +"variantType : DATE_", +"variantType : BSTR_", +"variantType : LPSTR_", +"variantType : LPWSTR_", +"variantType : IUNKNOWN_", +"variantType : IDISPATCH_", +"variantType : SAFEARRAY_", +"variantType : INT_", +"variantType : UNSIGNED_ INT_", +"variantType : UINT_", +"variantType : ERROR_", +"variantType : HRESULT_", +"variantType : CARRAY_", +"variantType : USERDEFINED_", +"variantType : RECORD_", +"variantType : FILETIME_", +"variantType : BLOB_", +"variantType : STREAM_", +"variantType : STORAGE_", +"variantType : STREAMED_OBJECT_", +"variantType : STORED_OBJECT_", +"variantType : BLOB_OBJECT_", +"variantType : CF_", +"variantType : CLSID_", +"type : CLASS_ className", +"type : OBJECT_", +"type : VALUE_ CLASS_ className", +"type : VALUETYPE_ className", +"type : type '[' ']'", +"type : type '[' bounds1 ']'", +"type : type '&'", +"type : type '*'", +"type : type PINNED_", +"type : type MODREQ_ '(' typeSpec ')'", +"type : type MODOPT_ '(' typeSpec ')'", +"type : methodSpec callConv type '*' '(' sigArgs0 ')'", +"type : type '<' tyArgs1 '>'", +"type : '!' '!' int32", +"type : '!' int32", +"type : '!' '!' dottedName", +"type : '!' dottedName", +"type : TYPEDREF_", +"type : VOID_", +"type : NATIVE_ INT_", +"type : NATIVE_ UNSIGNED_ INT_", +"type : NATIVE_ UINT_", +"type : simpleType", +"type : ELLIPSIS type", +"simpleType : CHAR_", +"simpleType : STRING_", +"simpleType : BOOL_", +"simpleType : INT8_", +"simpleType : INT16_", +"simpleType : INT32_", +"simpleType : INT64_", +"simpleType : FLOAT32_", +"simpleType : FLOAT64_", +"simpleType : UNSIGNED_ INT8_", +"simpleType : UNSIGNED_ INT16_", +"simpleType : UNSIGNED_ INT32_", +"simpleType : UNSIGNED_ INT64_", +"simpleType : UINT8_", +"simpleType : UINT16_", +"simpleType : UINT32_", +"simpleType : UINT64_", +"simpleType : TYPEDEF_TS", +"bounds1 : bound", +"bounds1 : bounds1 ',' bound", +"bound :", +"bound : ELLIPSIS", +"bound : int32", +"bound : int32 ELLIPSIS int32", +"bound : int32 ELLIPSIS", +"secDecl : _PERMISSION secAction typeSpec '(' nameValPairs ')'", +"secDecl : _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}'", +"secDecl : _PERMISSION secAction typeSpec", +"secDecl : psetHead bytes ')'", +"secDecl : _PERMISSIONSET secAction compQstring", +"secDecl : _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}'", +"secAttrSetBlob :", +"secAttrSetBlob : secAttrBlob", +"secAttrSetBlob : secAttrBlob ',' secAttrSetBlob", +"secAttrBlob : typeSpec '=' '{' customBlobNVPairs '}'", +"secAttrBlob : CLASS_ SQSTRING '=' '{' customBlobNVPairs '}'", +"psetHead : _PERMISSIONSET secAction '=' '('", +"psetHead : _PERMISSIONSET secAction BYTEARRAY_ '('", +"nameValPairs : nameValPair", +"nameValPairs : nameValPair ',' nameValPairs", +"nameValPair : compQstring '=' caValue", +"truefalse : TRUE_", +"truefalse : FALSE_", +"caValue : truefalse", +"caValue : int32", +"caValue : INT32_ '(' int32 ')'", +"caValue : compQstring", +"caValue : className '(' INT8_ ':' int32 ')'", +"caValue : className '(' INT16_ ':' int32 ')'", +"caValue : className '(' INT32_ ':' int32 ')'", +"caValue : className '(' int32 ')'", +"secAction : REQUEST_", +"secAction : DEMAND_", +"secAction : ASSERT_", +"secAction : DENY_", +"secAction : PERMITONLY_", +"secAction : LINKCHECK_", +"secAction : INHERITCHECK_", +"secAction : REQMIN_", +"secAction : REQOPT_", +"secAction : REQREFUSE_", +"secAction : PREJITGRANT_", +"secAction : PREJITDENY_", +"secAction : NONCASDEMAND_", +"secAction : NONCASLINKDEMAND_", +"secAction : NONCASINHERITANCE_", +"esHead : _LINE", +"esHead : P_LINE", +"extSourceSpec : esHead int32 SQSTRING", +"extSourceSpec : esHead int32", +"extSourceSpec : esHead int32 ':' int32 SQSTRING", +"extSourceSpec : esHead int32 ':' int32", +"extSourceSpec : esHead int32 ':' int32 ',' int32 SQSTRING", +"extSourceSpec : esHead int32 ':' int32 ',' int32", +"extSourceSpec : esHead int32 ',' int32 ':' int32 SQSTRING", +"extSourceSpec : esHead int32 ',' int32 ':' int32", +"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING", +"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32", +"extSourceSpec : esHead int32 QSTRING", +"fileDecl : _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry", +"fileDecl : _FILE fileAttr dottedName fileEntry", +"fileAttr :", +"fileAttr : fileAttr NOMETADATA_", +"fileEntry :", +"fileEntry : _ENTRYPOINT", +"hashHead : _HASH '=' '('", +"assemblyHead : _ASSEMBLY asmAttr dottedName", +"asmAttr :", +"asmAttr : asmAttr RETARGETABLE_", +"asmAttr : asmAttr WINDOWSRUNTIME_", +"asmAttr : asmAttr NOPLATFORM_", +"asmAttr : asmAttr LEGACY_ LIBRARY_", +"asmAttr : asmAttr CIL_", +"asmAttr : asmAttr X86_", +"asmAttr : asmAttr AMD64_", +"asmAttr : asmAttr ARM_", +"asmAttr : asmAttr ARM64_", +"assemblyDecls :", +"assemblyDecls : assemblyDecls assemblyDecl", +"assemblyDecl : _HASH ALGORITHM_ int32", +"assemblyDecl : secDecl", +"assemblyDecl : asmOrRefDecl", +"intOrWildcard : int32", +"intOrWildcard : '*'", +"asmOrRefDecl : publicKeyHead bytes ')'", +"asmOrRefDecl : _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard", +"asmOrRefDecl : _LOCALE compQstring", +"asmOrRefDecl : localeHead bytes ')'", +"asmOrRefDecl : customAttrDecl", +"asmOrRefDecl : compControl", +"publicKeyHead : _PUBLICKEY '=' '('", +"publicKeyTokenHead : _PUBLICKEYTOKEN '=' '('", +"localeHead : _LOCALE '=' '('", +"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName", +"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName", +"assemblyRefDecls :", +"assemblyRefDecls : assemblyRefDecls assemblyRefDecl", +"assemblyRefDecl : hashHead bytes ')'", +"assemblyRefDecl : asmOrRefDecl", +"assemblyRefDecl : publicKeyTokenHead bytes ')'", +"assemblyRefDecl : AUTO_", +"exptypeHead : _CLASS EXTERN_ exptAttr dottedName", +"exportHead : _EXPORT exptAttr dottedName", +"exptAttr :", +"exptAttr : exptAttr PRIVATE_", +"exptAttr : exptAttr PUBLIC_", +"exptAttr : exptAttr FORWARDER_", +"exptAttr : exptAttr NESTED_ PUBLIC_", +"exptAttr : exptAttr NESTED_ PRIVATE_", +"exptAttr : exptAttr NESTED_ FAMILY_", +"exptAttr : exptAttr NESTED_ ASSEMBLY_", +"exptAttr : exptAttr NESTED_ FAMANDASSEM_", +"exptAttr : exptAttr NESTED_ FAMORASSEM_", +"exptypeDecls :", +"exptypeDecls : exptypeDecls exptypeDecl", +"exptypeDecl : _FILE dottedName", +"exptypeDecl : _CLASS EXTERN_ slashedName", +"exptypeDecl : _ASSEMBLY EXTERN_ dottedName", +"exptypeDecl : MDTOKEN_ '(' int32 ')'", +"exptypeDecl : _CLASS int32", +"exptypeDecl : customAttrDecl", +"exptypeDecl : compControl", +"manifestResHead : _MRESOURCE manresAttr dottedName", +"manifestResHead : _MRESOURCE manresAttr dottedName AS_ dottedName", +"manresAttr :", +"manresAttr : manresAttr PUBLIC_", +"manresAttr : manresAttr PRIVATE_", +"manifestResDecls :", +"manifestResDecls : manifestResDecls manifestResDecl", +"manifestResDecl : _FILE dottedName AT_ int32", +"manifestResDecl : _ASSEMBLY EXTERN_ dottedName", +"manifestResDecl : customAttrDecl", +"manifestResDecl : compControl", }; #endif +#line 52 "btyaccpa.ske" -/* SCCSWHAT( "@(#)yypars.c 3.1 88/11/16 22:00:49 " ) */ -#line 3 "F:\\NetFXDev1\\src\\tools\\devdiv\\amd64\\yypars.c" -#if ! defined(YYAPI_PACKAGE) /* -** YYAPI_TOKENNAME : name used for return value of yylex -** YYAPI_TOKENTYPE : type of the token -** YYAPI_TOKENEME(t) : the value of the token that the parser should see -** YYAPI_TOKENNONE : the representation when there is no token -** YYAPI_VALUENAME : the name of the value of the token -** YYAPI_VALUETYPE : the type of the value of the token (if null, then the value is derivable from the token itself) -** YYAPI_VALUEOF(v) : how to get the value of the token. +** YYPOSN is user-defined text position type. */ -#define YYAPI_TOKENNAME yychar -#define YYAPI_TOKENTYPE int -#define YYAPI_TOKENEME(t) (t) -#define YYAPI_TOKENNONE -1 -#define YYAPI_TOKENSTR(t) (sprintf_s(yytokbuf, ARRAY_SIZE(yytokbuf), "%d", t), yytokbuf) -#define YYAPI_VALUENAME yylval -#define YYAPI_VALUETYPE YYSTYPE -#define YYAPI_VALUEOF(v) (v) -#endif -#if ! defined(YYAPI_CALLAFTERYYLEX) -#define YYAPI_CALLAFTERYYLEX +#ifdef YYPOSN +#ifdef YYREDUCEPOSNFUNC +#define YYCALLREDUCEPOSN(e) \ + if(reduce_posn) { \ + YYREDUCEPOSNFUNC(yyps->pos, &(yyps->psp)[1-yym], &(yyps->vsp)[1-yym], \ + yym, yyps->psp - yyps->ps, yychar, yyposn, e); \ + reduce_posn = 0; \ + } + +#ifndef YYCALLREDUCEPOSNARG +#define YYCALLREDUCEPOSNARG yyps->val #endif -# define YYFLAG -1000 -# define YYERROR goto yyerrlab -# define YYACCEPT return(0) -# define YYABORT return(1) -#ifdef YYDEBUG /* RRR - 10/9/85 */ -char yytokbuf[20]; -# ifndef YYDBFLG -# define YYDBFLG (yydebug) -# endif -# define yyprintf(a, b, c, d) if (YYDBFLG) YYPRINT(a, b, c, d) -#else -# define yyprintf(a, b, c, d) +#define YYPOSNARG(n) ((yyps->psp)[1-yym+(n)-1]) +#define YYPOSNOUT (yyps->pos) +#endif /* YYREDUCEPOSNFUNC */ +#endif /* YYPOSN */ + +/* If delete function is not defined by the user, do not deletions. */ +#ifndef YYDELETEVAL +#define YYDELETEVAL(v, x) #endif -#ifndef YYPRINT -#define YYPRINT printf +/* If delete function is not defined by the user, do not deletions. */ +#ifndef YYDELETEPOSN +#define YYDELETEPOSN(v, x) #endif -/* parser for yacc output */ +#define yyclearin (yychar=(-1)) -#ifdef YYDUMP -int yydump = 1; /* 1 for dumping */ -void yydumpinfo(void); -#endif -#ifdef YYDEBUG -YYSTATIC int yydebug = 0; /* 1 for debugging */ -#endif -YYSTATIC YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ -YYSTATIC short yys[YYMAXDEPTH]; /* the parse stack */ +#define yyerrok (yyps->errflag=0) -#if ! defined(YYRECURSIVE) -YYSTATIC YYAPI_TOKENTYPE YYAPI_TOKENNAME = YYAPI_TOKENNONE; -#if defined(YYAPI_VALUETYPE) -// YYSTATIC YYAPI_VALUETYPE YYAPI_VALUENAME; FIX -#endif -YYSTATIC int yynerrs = 0; /* number of errors */ -YYSTATIC short yyerrflag = 0; /* error recovery flag */ +#ifndef YYSTACKGROWTH +#define YYSTACKGROWTH 16 #endif -#ifdef YYRECOVER -/* -** yyscpy : copy f onto t and return a ptr to the null terminator at the -** end of t. -*/ -YYSTATIC char *yyscpy(register char*t, register char*f) - { - while(*t = *f++) - t++; - return(t); /* ptr to the null char */ - } +#ifndef YYDEFSTACKSIZE +#define YYDEFSTACKSIZE 12 #endif -#ifndef YYNEAR -#define YYNEAR -#endif -#ifndef YYPASCAL -#define YYPASCAL -#endif -#ifndef YYLOCAL -#define YYLOCAL -#endif -#if ! defined YYPARSER -#define YYPARSER yyparse -#endif -#if ! defined YYLEX -#define YYLEX yylex +#ifdef YYDEBUG +int yydebug; #endif -#if defined(YYRECURSIVE) +extern void yyerror(const char *); - YYSTATIC YYAPI_TOKENTYPE YYAPI_TOKENNAME = YYAPI_TOKENNONE; - #if defined(YYAPI_VALUETYPE) - YYSTATIC YYAPI_VALUETYPE YYAPI_VALUENAME; - #endif - YYSTATIC int yynerrs = 0; /* number of errors */ - YYSTATIC short yyerrflag = 0; /* error recovery flag */ +int yynerrs; - YYSTATIC short yyn; - YYSTATIC short yystate = 0; - YYSTATIC short *yyps= &yys[-1]; - YYSTATIC YYSTYPE *yypv= &yyv[-1]; - YYSTATIC short yyj; - YYSTATIC short yym; +/* These value/posn are taken from the lexer */ +YYSTYPE yylval; +#ifdef YYPOSN +YYPOSN yyposn; +#endif /* YYPOSN */ -#endif +/* These value/posn of the root non-terminal are returned to the caller */ +YYSTYPE yyretlval; +#ifdef YYPOSN +YYPOSN yyretposn; +#endif /* YYPOSN */ -#pragma warning(disable:102) -YYLOCAL YYNEAR YYPASCAL YYPARSER() -{ -#if ! defined(YYRECURSIVE) +#define YYABORT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +#define YYERROR_QUIET goto yyerrquiet +#define YYVALID do { if (yyps->save) goto yyvalid; } while(0) +#define YYVALID_NESTED do { if (yyps->save && \ + yyps->save->save==0) goto yyvalid; } while(0) - register short yyn; - short yystate, *yyps; - YYSTYPE *yypv; - short yyj, yym; +struct yyparsestate { + struct yyparsestate *save; /* Previously saved parser state */ + int state; + int errflag; + Yshort *ss; /* state stack base */ + Yshort *ssp; /* state stack pointer */ + YYSTYPE *vs; /* values stack base */ + YYSTYPE *vsp; /* value stack pointer */ + YYSTYPE val; /* value as returned by actions */ +#ifdef YYPOSN + YYPOSN *ps; /* position stack base */ + YYPOSN *psp; /* position stack pointer */ + YYPOSN pos; /* position as returned by universal action */ +#endif /* YYPOSN */ + ptrdiff_t lexeme; /* index of the conflict lexeme in the lexical queue */ + size_t stacksize; /* current maximum stack size */ + Yshort ctry; /* index in yyctable[] for this conflict */ +}; - YYAPI_TOKENNAME = YYAPI_TOKENNONE; - yystate = 0; +/* Current parser state */ +static struct yyparsestate *yyps=0; -#ifdef _PREFAST_ -#pragma warning(push) -#pragma warning(disable:6200) // Index '-1' is out of valid index range...for non-stack buffer... -#endif - yyps= &yys[-1]; - yypv= &yyv[-1]; -#ifdef _PREFAST_ -#pragma warning(pop) -#endif +/* yypath!=NULL: do the full parse, starting at *yypath parser state. */ +static struct yyparsestate *yypath=0; -#endif +/* Base of the lexical value queue */ +static YYSTYPE *yylvals=0; -#ifdef YYDUMP - yydumpinfo(); -#endif - yystack: /* put a state and value onto the stack */ +/* Current posistion at lexical value queue */ +static YYSTYPE *yylvp=0; -#ifdef YYDEBUG - if(YYAPI_TOKENNAME == YYAPI_TOKENNONE) { - yyprintf( "state %d, token # '%d'\n", yystate, -1, 0 ); - } - else { - yyprintf( "state %d, token # '%s'\n", yystate, YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0 ); - } -#endif - if( ++yyps > &yys[YYMAXDEPTH] ) { - yyerror( "yacc stack overflow" ); - return(1); - } - *yyps = yystate; - ++yypv; +/* End position of lexical value queue */ +static YYSTYPE *yylve=0; - *yypv = yyval; +/* The last allocated position at the lexical value queue */ +static YYSTYPE *yylvlim=0; -yynewstate: +#ifdef YYPOSN +/* Base of the lexical position queue */ +static YYPOSN *yylpsns=0; - yyn = YYPACT[yystate]; +/* Current posistion at lexical position queue */ +static YYPOSN *yylpp=0; - if( yyn <= YYFLAG ) { /* simple state, no lookahead */ - goto yydefault; - } - if( YYAPI_TOKENNAME == YYAPI_TOKENNONE ) { /* need a lookahead */ - YYAPI_TOKENNAME = YYLEX(); - YYAPI_CALLAFTERYYLEX(YYAPI_TOKENNAME); - } - if( ((yyn += (short)YYAPI_TOKENEME(YYAPI_TOKENNAME)) < 0) || (yyn >= YYLAST) ) { - goto yydefault; - } - if( YYCHK[ yyn = YYACT[ yyn ] ] == YYAPI_TOKENEME(YYAPI_TOKENNAME) ) { /* valid shift */ - yyval = YYAPI_VALUEOF(YYAPI_VALUENAME); - yystate = yyn; - yyprintf( "SHIFT: saw token '%s', now in state %4d\n", YYAPI_TOKENSTR(YYAPI_TOKENNAME), yystate, 0 ); - YYAPI_TOKENNAME = YYAPI_TOKENNONE; - if( yyerrflag > 0 ) { - --yyerrflag; - } - goto yystack; - } +/* End position of lexical position queue */ +static YYPOSN *yylpe=0; - yydefault: - /* default state action */ +/* The last allocated position at the lexical position queue */ +static YYPOSN *yylplim=0; +#endif /* YYPOSN */ - if( (yyn = YYDEF[yystate]) == -2 ) { - register YYCONST short *yyxi; +/* Current position at lexical token queue */ +static Yshort *yylexp=0; + +static Yshort *yylexemes=0; - if( YYAPI_TOKENNAME == YYAPI_TOKENNONE ) { - YYAPI_TOKENNAME = YYLEX(); - YYAPI_CALLAFTERYYLEX(YYAPI_TOKENNAME); - yyprintf("LOOKAHEAD: token '%s'\n", YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0, 0); - } /* -** search exception table, we find a -1 followed by the current state. -** if we find one, we'll look through terminal,state pairs. if we find -** a terminal which matches the current one, we have a match. -** the exception table is when we have a reduce on a terminal. +** For use in generated program */ +#define yytrial (yyps->save) +#define yyvsp (yyps->vsp) +#define yyval (yyps->val) +#define yypsp (yyps->psp) +#define yypos (yyps->pos) +#define yydepth (yyps->ssp - yyps->ss) -#if YYOPTTIME - yyxi = yyexca + yyexcaind[yystate]; - while(( *yyxi != YYAPI_TOKENEME(YYAPI_TOKENNAME) ) && ( *yyxi >= 0 )){ - yyxi += 2; - } -#else - for(yyxi = yyexca; - (*yyxi != (-1)) || (yyxi[1] != yystate); - yyxi += 2 - ) { - ; /* VOID */ - } - while( *(yyxi += 2) >= 0 ){ - if( *yyxi == YYAPI_TOKENEME(YYAPI_TOKENNAME) ) { - break; - } - } +/* +** Local prototypes. +*/ +int yyparse(void); +int yylex(void); + +static void YYSCopy(YYSTYPE *to, YYSTYPE *from, ptrdiff_t size) { + ptrdiff_t i; + for (i = size-1; i >= 0; i--) + to[i] = from[i]; +} + +#ifdef YYPOSN +static void YYPCopy(YYPOSN *to, YYPOSN *from, int size) { + int i; + for (i = size-1; i >= 0; i--) + to[i] = from[i]; +} +#endif /* YYPOSN */ + +static int yyexpand() { + ptrdiff_t p = yylvp-yylvals; + ptrdiff_t s = yylvlim-yylvals; + s += YYSTACKGROWTH; +#ifdef __cplusplus + Yshort *tl = yylexemes; + yylexemes = new Yshort[s]; + memcpy(yylexemes, tl, (s-YYSTACKGROWTH)*sizeof(Yshort)); + delete[] tl; + YYSTYPE *tv = yylvals; + yylvals = new YYSTYPE[s]; + YYSCopy(yylvals, tv, s-YYSTACKGROWTH); + delete[] tv; +#ifdef YYPOSN + YYPOSN *tp = yylpsns; + yylpsns = new YYPOSN[s]; + YYPCopy(yylpsns, tp, s-YYSTACKGROWTH); + delete[] tp; +#endif /* YYPOSN */ +#else + yylexemes = realloc(yylexemes, sizeof(Yshort) * s); + yylvals = realloc(yylvals, sizeof(YYSTYPE) * s); +#ifdef YYPOSN + yylpsns = realloc(yylpsns, sizeof(YYPOSN) * s); +#endif /* YYPOSN */ #endif - if( (yyn = yyxi[1]) < 0 ) { - return(0); /* accept */ - } - } + yylexp = yylexemes + p; + yylvp = yylve = yylvals + p; + yylvlim = yylvals + s; +#ifdef YYPOSN + yylpp = yylpe = yylpsns + p; + yylplim = yylpsns + s; +#endif /* YYPOSN */ + return 0; +} - if( yyn == 0 ){ /* error */ - /* error ... attempt to resume parsing */ +static int YYLex1() { + if(yylvpsave) { + if(yylvp==yylvlim) { + yyexpand(); + } + *yylexp = yylex(); + *yylvp++ = yylval; + yylve++; +#ifdef YYPOSN + *yylpp++ = yyposn; + yylpe++; +#endif /* YYPOSN */ + return *yylexp++; + } else { + return yylex(); + } + } +} - switch( yyerrflag ){ +static void YYMoreStack(struct yyparsestate *yyps) { + ptrdiff_t p = yyps->ssp - yyps->ss; +#ifdef __cplusplus + Yshort *tss = yyps->ss; + yyps->ss = new Yshort [yyps->stacksize + YYSTACKGROWTH]; + memcpy(yyps->ss, tss, yyps->stacksize * sizeof(Yshort)); + delete[] tss; + YYSTYPE *tvs = yyps->vs; + yyps->vs = new YYSTYPE[yyps->stacksize + YYSTACKGROWTH]; + YYSCopy(yyps->vs, tvs, yyps->stacksize); + delete[] tvs; +#ifdef YYPOSN + YYPOSN *tps = yyps->ps; + yyps->ps = new YYPOSN [yyps->stacksize + YYSTACKGROWTH]; + YYPCopy(yyps->ps, tps, yyps->stacksize); + delete[] tps; +#endif /* YYPOSN */ + yyps->stacksize += YYSTACKGROWTH; +#else + yyps->stacksize += YYSTACKGROWTH; + yyps->ss = realloc(yyps->ss, sizeof(Yshort ) * yyps->stacksize); + yyps->vs = realloc(yyps->vs, sizeof(YYSTYPE) * yyps->stacksize); +#ifdef YYPOSN + yyps->ps = realloc(yyps->ps, sizeof(YYPOSN ) * yyps->stacksize); +#endif /* YYPOSN */ +#endif + yyps->ssp = yyps->ss + p; + yyps->vsp = yyps->vs + p; +#ifdef YYPOSN + yyps->psp = yyps->ps + p; +#endif /* YYPOSN */ +} - case 0: /* brand new error */ -#ifdef YYRECOVER - { - register int i,j; +static struct yyparsestate *YYNewState(size_t size) { +#ifdef __cplusplus + yyparsestate *p = new yyparsestate; + p->ss = new Yshort [size + 4]; + p->vs = new YYSTYPE[size + 4]; +#ifdef YYPOSN + p->ps = new YYPOSN [size + 4]; +#endif /* YYPOSN */ +#else + struct yyparsestate *p = malloc(sizeof(struct yyparsestate)); + p->ss = malloc(sizeof(Yshort ) * (size + 4)); + p->vs = malloc(sizeof(YYSTYPE) * (size + 4)); +#ifdef YYPOSN + p->ps = malloc(sizeof(YYPOSN ) * (size + 4)); +#endif /* YYPOSN */ +#endif + p->stacksize = size+4; +#ifndef YYSTYPE_CONSTRUCTOR + memset(&p->vs[0], 0, (size+4)*sizeof(YYSTYPE)); +#endif +#ifdef YYPOSN +#ifndef YYPOSN_CONSTRUCTOR + memset(&p->ps[0], 0, (size+4)*sizeof(YYPOSN)); +#endif +#endif /* YYPOSN */ + return p; +} - for(i = 0; - (yyrecover[i] != -1000) && (yystate > yyrecover[i]); - i += 3 - ) { - ; - } - if(yystate == yyrecover[i]) { - yyprintf("recovered, from state %d to state %d on token # %d\n", - yystate,yyrecover[i+2],yyrecover[i+1] - ); - j = yyrecover[i + 1]; - if(j < 0) { - /* - ** here we have one of the injection set, so we're not quite - ** sure that the next valid thing will be a shift. so we'll - ** count it as an error and continue. - ** actually we're not absolutely sure that the next token - ** we were supposed to get is the one when j > 0. for example, - ** for(+) {;} error recovery with yyerrflag always set, stops - ** after inserting one ; before the +. at the point of the +, - ** we're pretty sure the guy wants a 'for' loop. without - ** setting the flag, when we're almost absolutely sure, we'll - ** give him one, since the only thing we can shift on this - ** error is after finding an expression followed by a + - */ - yyerrflag++; - j = -j; - } - if(yyerrflag <= 1) { /* only on first insertion */ - yyrecerr(YYAPI_TOKENNAME, j); /* what was, what should be first */ - } - yyval = yyeval(j); - yystate = yyrecover[i + 2]; - goto yystack; - } - } +static void YYFreeState(struct yyparsestate *p) { +#ifdef __cplusplus + delete[] p->ss; + delete[] p->vs; +#ifdef YYPOSN + delete[] p->ps; +#endif /* YYPOSN */ + delete p; +#else + free(p->ss); + free(p->vs); +#ifdef YYPOSN + free(p->ps); +#endif /* YYPOSN */ + free(p); #endif - yyerror("syntax error"); +} + +#line 2065 "asmparse.y" - yyerrlab: - ++yynerrs; - FALLTHROUGH; - case 1: - case 2: /* incompletely recovered error ... try again */ - yyerrflag = 3; +#include "grammar_after.cpp" +#line 5548 "asmparse.cpp.tab.c" +#line 354 "btyaccpa.ske" + +/* +** Parser function +*/ +int yyparse() { + int yym, yyn, yystate, yychar, yynewerrflag; + struct yyparsestate *yyerrctx = NULL; +#ifdef YYREDUCEPOSNFUNC + int reduce_posn; +#endif /* YYREDUCEPOSNFUNC */ - /* find a state where "error" is a legal shift action */ +#if YYDEBUG + const char *yys; + + if ((yys = getenv("YYDEBUG"))) { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } +#endif + + yym = 0; + yyn = 0; + yyps = YYNewState(YYDEFSTACKSIZE); + yyps->save = 0; + yynerrs = 0; + yyps->errflag = 0; + yychar = (-1); + + yyps->ssp = yyps->ss; + yyps->vsp = yyps->vs; +#ifdef YYPOSN + yyps->psp = yyps->ps; +#endif /* YYPOSN */ + *(yyps->ssp) = yystate = 0; + - while ( yyps >= yys ) { - yyn = YYPACT[*yyps] + YYERRCODE; - if( yyn>= 0 && yyn < YYLAST && YYCHK[YYACT[yyn]] == YYERRCODE ){ - yystate = YYACT[yyn]; /* simulate a shift of "error" */ - yyprintf( "SHIFT 'error': now in state %4d\n", yystate, 0, 0 ); - goto yystack; - } - yyn = YYPACT[*yyps]; + /* + ** Main parsing loop + */ + yyloop: + if ((yyn = yydefred[yystate])) { + goto yyreduce; + } - /* the current yyps has no shift onn "error", pop stack */ + /* + ** Read one token + */ + if (yychar < 0) { + if ((yychar = YYLex1()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug[%d,%d]: state %d, reading %d (%s)", + (int)yydepth, yytrial!=0, yystate, yychar, yys); +#ifdef YYDBPR + printf("<"); + YYDBPR(yylval); + printf(">"); +#endif + printf("\n"); + } +#endif + } - yyprintf( "error recovery pops state %4d, uncovers %4d\n", *yyps, yyps[-1], 0 ); - --yyps; - --yypv; - } + /* + ** Do we have a conflict? + */ + if ((yyn = yycindex[yystate]) && + (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && + yycheck[yyn] == yychar) { + int ctry; - /* there is no state on the stack with an error shift ... abort */ + if (yypath) { +#if YYDEBUG + if (yydebug) { + printf("yydebug[%d,%d]: CONFLICT in state %d: following successful " + "trial parse\n", (int)yydepth, yytrial!=0, yystate); + } +#endif + /* Switch to the next conflict context */ + struct yyparsestate *save = yypath; + yypath = save->save; + ctry = save->ctry; + if (save->state != yystate) + goto yyabort; + YYFreeState(save); - yyabort: - return(1); + } else { +#if YYDEBUG + if (yydebug) { + printf("yydebug[%d,%d]: CONFLICT in state %d. ", + (int)yydepth, yytrial!=0, yystate); + if(yyps->save) { + printf("ALREADY in conflict. Continue trial parse."); + } else { + printf("Start trial parse."); + } + printf("\n"); + } +#endif + struct yyparsestate *save = YYNewState(yyps->ssp - yyps->ss); + save->save = yyps->save; + save->state = yystate; + save->errflag = yyps->errflag; + save->ssp = save->ss + (yyps->ssp - yyps->ss); + save->vsp = save->vs + (yyps->vsp - yyps->vs); + memcpy (save->ss, yyps->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); + YYSCopy(save->vs, yyps->vs, (yyps->ssp - yyps->ss + 1)); +#ifdef YYPOSN + save->psp = save->ps + (yyps->psp - yyps->ps); + YYPCopy(save->ps, yyps->ps, (yyps->ssp - yyps->ss + 1)); +#endif /* YYPOSN */ + ctry = yytable[yyn]; + if (yyctable[ctry] == -1) { +#if YYDEBUG + if (yydebug && yychar >= 0) + printf("yydebug[%d]: backtracking 1 token\n", + yytrial!=0); +#endif + ctry++; + } + save->ctry = ctry; + if (!yyps->save) { + /* If this is a first conflict in the stack, start saving lexemes */ + if (!yylexemes) { +#ifdef __cplusplus + yylexemes = new Yshort[YYSTACKGROWTH]; + yylvals = new YYSTYPE[YYSTACKGROWTH]; +#ifdef YYPOSN + yylpsns = new YYPOSN[YYSTACKGROWTH]; +#endif /* YYPOSN */ +#else + yylexemes = malloc(sizeof(Yshort) * YYSTACKGROWTH); + yylvals = malloc(sizeof(YYSTYPE) * YYSTACKGROWTH); +#ifdef YYPOSN + yylpsns = malloc(sizeof(YYPOSN) * YYSTACKGROWTH); +#endif /* YYPOSN */ +#endif + yylvlim = yylvals + YYSTACKGROWTH; +#ifdef YYPOSN + yylplim = yylpsns + YYSTACKGROWTH; +#endif /* YYPOSN */ + } + if (yylvp == yylve) { + yylvp = yylve = yylvals; +#ifdef YYPOSN + yylpp = yylpe = yylpsns; +#endif /* YYPOSN */ + yylexp = yylexemes; + if (yychar >= 0) { + *yylve++ = yylval; +#ifdef YYPOSN + *yylpe++ = yyposn; +#endif /* YYPOSN */ + *yylexp = yychar; + yychar = -1; + } + } + } + if (yychar >= 0) { + yylvp--; +#ifdef YYPOSN + yylpp--; +#endif /* YYPOSN */ + yylexp--; + yychar = -1; + } + save->lexeme = yylvp - yylvals; + yyps->save = save; + } + if (yytable[yyn] == ctry) { +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: state %d, shifting to state %d\n", + (int)yydepth, yytrial!=0, yystate, yyctable[ctry]); +#endif + if (yychar < 0) { + yylvp++; +#ifdef YYPOSN + yylpp++; +#endif /* YYPOSN */ + yylexp++; + } + yychar = -1; + if (yyps->errflag > 0) --yyps->errflag; + yystate = yyctable[ctry]; + goto yyshift; + } else { + yyn = yyctable[ctry]; + goto yyreduce; + } + } - case 3: /* no shift yet; clobber input char */ + /* + ** Is action a shift? + */ + if ((yyn = yysindex[yystate]) && + (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && + yycheck[yyn] == yychar) { +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: state %d, shifting to state %d\n", + (int)yydepth, yytrial!=0, yystate, yytable[yyn]); +#endif + yychar = (-1); + if (yyps->errflag > 0) --yyps->errflag; + yystate = yytable[yyn]; + yyshift: + if (yyps->ssp >= yyps->ss + yyps->stacksize - 1) { + YYMoreStack(yyps); + } + *++(yyps->ssp) = yystate; + *++(yyps->vsp) = yylval; +#ifdef YYPOSN + *++(yyps->psp) = yyposn; +#endif /* YYPOSN */ + goto yyloop; + } + if ((yyn = yyrindex[yystate]) && + (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && + yycheck[yyn] == yychar) { + yyn = yytable[yyn]; + goto yyreduce; + } + yym = 0; /* no reduction to clean up after */ - yyprintf( "error recovery discards token '%s'\n", YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0, 0 ); + /* + ** Action: error + */ + if (yyps->errflag) goto yyinrecovery; + else goto yyerrlab; /* redundant goto to avoid 'unused label' warnings */ +yyerrlab: + /* explicit YYERROR from an action -- pop the rhs of the rule reduced + * before looking for error recovery */ + yyps->ssp -= yym; + yystate = *(yyps->ssp); + yyps->vsp -= yym; +#ifdef YYPOSN + yyps->psp -= yym; +#endif /* YYPOSN */ - if( YYAPI_TOKENEME(YYAPI_TOKENNAME) == 0 ) goto yyabort; /* don't discard EOF, quit */ - YYAPI_TOKENNAME = YYAPI_TOKENNONE; - goto yynewstate; /* try again in the same state */ - } - } + yynewerrflag = 1; + goto yyerrhandler; + goto yyerrquiet; /* redundant goto to avoid 'unused label' warnings */ +yyerrquiet: + yynewerrflag = 0; +yyerrhandler: + while (yyps->save) { + int ctry; + struct yyparsestate *save = yyps->save; +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: ERROR in state %d, CONFLICT BACKTRACKING to " + "state %d, %d tokens\n", (int)yydepth, yytrial!=0, yystate, + yyps->save->state, (int)(yylvp - yylvals - yyps->save->lexeme)); +#endif + /* Memorize most forward-looking error state in case + * it's really an error. */ + if(yyerrctx==NULL || yyerrctx->lexemessp - yyps->ss); + yyerrctx->save = yyps->save; + yyerrctx->state = yystate; + yyerrctx->errflag = yyps->errflag; + yyerrctx->ssp = yyerrctx->ss + (yyps->ssp - yyps->ss); + yyerrctx->vsp = yyerrctx->vs + (yyps->vsp - yyps->vs); + memcpy(yyerrctx->ss, yyps->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); + YYSCopy(yyerrctx->vs, yyps->vs, (yyps->ssp - yyps->ss + 1)); +#ifdef YYPOSN + yyerrctx->psp = yyerrctx->ps + (yyps->psp - yyps->ps); + YYPCopy(yyerrctx->ps, yyps->ps, (yyps->ssp - yyps->ss + 1)); +#endif /* YYPOSN */ + yyerrctx->lexeme = yylvp - yylvals; + } + yychar = -1; + yylexp = yylexemes + save->lexeme; + yyps->ssp = yyps->ss + (save->ssp - save->ss); + memcpy (yyps->ss, save->ss, (yyps->ssp - yyps->ss + 1) * sizeof(Yshort)); + yylvp = yylvals + save->lexeme; + yyps->vsp = yyps->vs + (save->vsp - save->vs); + YYSCopy(yyps->vs, save->vs, yyps->vsp - yyps->vs + 1); +#ifdef YYPOSN + yylpp = yylpsns + save->lexeme; + yyps->psp = yyps->ps + (save->psp - save->ps); + YYPCopy(yyps->ps, save->ps, yyps->psp - yyps->ps + 1); +#endif /* YYPOSN */ + ctry = ++save->ctry; + yystate = save->state; + /* We tried shift, try reduce now */ + if ((yyn = yyctable[ctry]) >= 0) { + goto yyreduce; + } + yyps->save = save->save; + YYFreeState(save); + /* + ** Nothing left on the stack -- error + */ + if (!yyps->save) { +#if YYDEBUG + if (yydebug) { + printf("yydebug[%d]: trial parse FAILED, entering ERROR mode\n", + yytrial!=0); + } +#endif + /* Restore state as it was in the most forward-advanced error */ + yylexp = yylexemes + yyerrctx->lexeme; + yychar = yylexp[-1]; + yyps->ssp = yyps->ss + (yyerrctx->ssp - yyerrctx->ss); + memcpy(yyps->ss, yyerrctx->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); + yylvp = yylvals + yyerrctx->lexeme; + yylval = yylvp[-1]; + yyps->vsp = yyps->vs + (yyerrctx->vsp - yyerrctx->vs); + YYSCopy(yyps->vs, yyerrctx->vs, yyps->vsp - yyps->vs + 1); +#ifdef YYPOSN + yylpp = yylpsns + yyerrctx->lexeme; + yyposn = yylpp[-1]; + yyps->psp = yyps->ps + (yyerrctx->psp - yyerrctx->ps); + YYPCopy(yyps->ps, yyerrctx->ps, yyps->psp - yyps->ps + 1); +#endif /* YYPOSN */ + yystate = yyerrctx->state; + YYFreeState(yyerrctx); + yyerrctx = NULL; + } + yynewerrflag = 1; + } + if (yynewerrflag) { +#ifdef YYERROR_DETAILED + yyerror_detailed("syntax error", yychar, yylval, yyposn); +#else + yyerror("syntax error"); +#endif + } + ++yynerrs; + yyinrecovery: + if (yyps->errflag < 3) { + yyps->errflag = 3; + for (;;) { + if ((yyn = yysindex[*(yyps->ssp)]) && + (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && + yycheck[yyn] == YYERRCODE) { +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: state %d, ERROR recovery shifts to state " + "%d\n", (int)yydepth, yytrial!=0, *(yyps->ssp), yytable[yyn]); +#endif + yystate = yytable[yyn]; + goto yyshift; + } else { +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: ERROR recovery discards state %d\n", + (int)yydepth, yytrial!=0, *(yyps->ssp)); +#endif + if (yyps->ssp <= yyps->ss) { + goto yyabort; + } + if(!yytrial) { + YYDELETEVAL(yyps->vsp[0],1); + YYDELETEPOSN(yyps->psp[0],1); + } +#ifdef YYDESTRUCT + YYDESTRUCT(yytrial!=0, yyastable[yyps->ssp[0]], yyps->vsp, yyps->psp); +#endif /* YYDESTRUCT */ + --(yyps->ssp); + --(yyps->vsp); +#ifdef YYPOSN + --(yyps->psp); +#endif /* YYPOSN */ + } + } + } else { + if (yychar == 0) goto yyabort; +#if YYDEBUG + if (yydebug) { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug[%d,%d]: state %d, ERROR recovery discards token %d " + "(%s)\n", (int)yydepth, yytrial!=0, yystate, yychar, yys); + } +#endif + if(!yytrial) { + YYDELETEVAL(yylval,0); + YYDELETEPOSN(yyposn,0); + } +#ifdef YYDESTRUCT + if (yychar > 0) + YYDESTRUCT(yytrial!=0, yyastable[yyttable[yychar]], &yylval, &yyposn); +#endif /* YYDESTRUCT */ + yychar = (-1); + goto yyloop; + } - /* reduction by production yyn */ + /* + ** Reduce the rule + */ yyreduce: - { - register YYSTYPE *yypvt; - yypvt = yypv; - yyps -= YYR2[yyn]; - yypv -= YYR2[yyn]; - yyval = yypv[1]; - yyprintf("REDUCE: rule %4d, popped %2d tokens, uncovered state %4d, ",yyn, YYR2[yyn], *yyps); - yym = yyn; - yyn = (short)YYR1[yyn]; /* consult goto table to find next state */ - yyj = YYPGO[yyn] + *yyps + 1; - if( (yyj >= YYLAST) || (YYCHK[ yystate = YYACT[yyj] ] != -yyn) ) { - yystate = YYACT[YYPGO[yyn]]; - } - yyprintf("goto state %4d\n", yystate, 0, 0); -#ifdef YYDUMP - yydumpinfo(); + yym = yylen[yyn]; +#if YYDEBUG + if (yydebug) { + printf("yydebug[%d,%d]: state %d, reducing by rule %d (%s)", + (int)yydepth, yytrial!=0, yystate, yyn, yyrule[yyn]); +#ifdef YYDBPR + if (yym) { + int i; + printf("<"); + for (i=yym; i>0; i--) { + if (i!=yym) printf(", "); + YYDBPR((yyps->vsp)[1-i]); + } + printf(">"); + } +#endif + printf("\n"); + } #endif - switch(yym){ + if (yyps->ssp + 1 - yym >= yyps->ss + yyps->stacksize) { + YYMoreStack(yyps); + } + + /* "$$ = $1" default action */ + yyval = yyvsp[0]; + +#ifdef YYPOSN + /* default reduced position is NULL -- no position at all. + no position will be assigned at trial time and if no position handling + is present */ +#ifndef YYPOSN_CONSTRUCTOR + memset(&yyps->pos, 0, sizeof(yyps->pos)); +#endif +#ifdef YYREDUCEPOSNFUNC + reduce_posn = 1; +#endif /* YYREDUCEPOSNFUNC */ +#endif /* YYPOSN */ + + switch (yyn) { case 3: -#line 193 "asmparse.y" -{ PASM->EndClass(); } break; -case 4: + if (!yytrial) #line 194 "asmparse.y" -{ PASM->EndNameSpace(); } break; -case 5: +{ PASM->EndClass(); } +#line 6001 "asmparse.cpp.tab.c" +break; +case 4: + if (!yytrial) #line 195 "asmparse.y" +{ PASM->EndNameSpace(); } +#line 6007 "asmparse.cpp.tab.c" +break; +case 5: + if (!yytrial) +#line 196 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} - PASM->EndMethod(); } break; + PASM->EndMethod(); } +#line 6016 "asmparse.cpp.tab.c" +break; case 12: -#line 205 "asmparse.y" -{ PASMM->EndAssembly(); } break; -case 13: + if (!yytrial) #line 206 "asmparse.y" -{ PASMM->EndAssembly(); } break; -case 14: +{ PASMM->EndAssembly(); } +#line 6022 "asmparse.cpp.tab.c" +break; +case 13: + if (!yytrial) #line 207 "asmparse.y" -{ PASMM->EndComType(); } break; -case 15: +{ PASMM->EndAssembly(); } +#line 6028 "asmparse.cpp.tab.c" +break; +case 14: + if (!yytrial) #line 208 "asmparse.y" -{ PASMM->EndManifestRes(); } break; +{ PASMM->EndComType(); } +#line 6034 "asmparse.cpp.tab.c" +break; +case 15: + if (!yytrial) +#line 209 "asmparse.y" +{ PASMM->EndManifestRes(); } +#line 6040 "asmparse.cpp.tab.c" +break; case 19: -#line 212 "asmparse.y" + if (!yytrial) +#line 213 "asmparse.y" { #ifdef _PREFAST_ #pragma warning(push) -#pragma warning(disable:22011) // Suppress PREFast warning about integer overflow/underflow +#pragma warning(disable:22011) /* Suppress PREFast warning about integer overflow/underflow*/ #endif - PASM->m_dwSubsystem = yypvt[-0].int32; + PASM->m_dwSubsystem = yyvsp[0].int32; #ifdef _PREFAST_ #pragma warning(pop) #endif - } break; + } +#line 6055 "asmparse.cpp.tab.c" +break; case 20: -#line 222 "asmparse.y" -{ PASM->m_dwComImageFlags = yypvt[-0].int32; } break; -case 21: + if (!yytrial) #line 223 "asmparse.y" -{ PASM->m_dwFileAlignment = yypvt[-0].int32; - if((yypvt[-0].int32 & (yypvt[-0].int32 - 1))||(yypvt[-0].int32 < 0x200)||(yypvt[-0].int32 > 0x10000)) - PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} break; +{ PASM->m_dwComImageFlags = yyvsp[0].int32; } +#line 6061 "asmparse.cpp.tab.c" +break; +case 21: + if (!yytrial) +#line 224 "asmparse.y" +{ PASM->m_dwFileAlignment = yyvsp[0].int32; + if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) + PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} +#line 6069 "asmparse.cpp.tab.c" +break; case 22: -#line 226 "asmparse.y" -{ PASM->m_stBaseAddress = (ULONGLONG)(*(yypvt[-0].int64)); delete yypvt[-0].int64; + if (!yytrial) +#line 227 "asmparse.y" +{ PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) - PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} break; + PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} +#line 6077 "asmparse.cpp.tab.c" +break; case 23: -#line 229 "asmparse.y" -{ PASM->m_stSizeOfStackReserve = (size_t)(*(yypvt[-0].int64)); delete yypvt[-0].int64; } break; + if (!yytrial) +#line 230 "asmparse.y" +{ PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } +#line 6083 "asmparse.cpp.tab.c" +break; case 28: -#line 234 "asmparse.y" -{ PASM->m_fIsMscorlib = TRUE; } break; + if (!yytrial) +#line 235 "asmparse.y" +{ PASM->m_fIsMscorlib = TRUE; } +#line 6089 "asmparse.cpp.tab.c" +break; case 31: -#line 241 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; -case 32: + if (!yytrial) #line 242 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; +{ yyval.binstr = yyvsp[0].binstr; } +#line 6095 "asmparse.cpp.tab.c" +break; +case 32: + if (!yytrial) +#line 243 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 6101 "asmparse.cpp.tab.c" +break; case 33: -#line 245 "asmparse.y" -{ LPCSTRToGuid(yypvt[-0].string,&(PASM->m_guidLang)); } break; -case 34: + if (!yytrial) #line 246 "asmparse.y" -{ LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidLang)); - LPCSTRToGuid(yypvt[-0].string,&(PASM->m_guidLangVendor));} break; +{ LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } +#line 6107 "asmparse.cpp.tab.c" +break; +case 34: + if (!yytrial) +#line 247 "asmparse.y" +{ LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); + LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} +#line 6114 "asmparse.cpp.tab.c" +break; case 35: -#line 248 "asmparse.y" -{ LPCSTRToGuid(yypvt[-4].string,&(PASM->m_guidLang)); - LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidLangVendor)); - LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidDoc));} break; + if (!yytrial) +#line 249 "asmparse.y" +{ LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); + LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); + LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} +#line 6122 "asmparse.cpp.tab.c" +break; case 36: -#line 253 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; -case 37: + if (!yytrial) #line 254 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; +{ yyval.string = yyvsp[0].string; } +#line 6128 "asmparse.cpp.tab.c" +break; +case 37: + if (!yytrial) +#line 255 "asmparse.y" +{ yyval.string = yyvsp[0].string; } +#line 6134 "asmparse.cpp.tab.c" +break; case 38: -#line 257 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; -case 39: + if (!yytrial) #line 258 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; -case 40: +{ yyval.string = yyvsp[0].string; } +#line 6140 "asmparse.cpp.tab.c" +break; +case 39: + if (!yytrial) #line 259 "asmparse.y" -{ yyval.string = newStringWDel(yypvt[-2].string, '.', yypvt[-0].string); } break; +{ yyval.string = yyvsp[0].string; } +#line 6146 "asmparse.cpp.tab.c" +break; +case 40: + if (!yytrial) +#line 260 "asmparse.y" +{ yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } +#line 6152 "asmparse.cpp.tab.c" +break; case 41: -#line 262 "asmparse.y" -{ yyval.int32 = yypvt[-0].int32; } break; + if (!yytrial) +#line 263 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 6158 "asmparse.cpp.tab.c" +break; case 42: -#line 265 "asmparse.y" -{ yyval.int64 = yypvt[-0].int64; } break; -case 43: + if (!yytrial) #line 266 "asmparse.y" -{ yyval.int64 = neg ? new __int64(yypvt[-0].int32) : new __int64((unsigned)yypvt[-0].int32); } break; +{ yyval.int64 = yyvsp[0].int64; } +#line 6164 "asmparse.cpp.tab.c" +break; +case 43: + if (!yytrial) +#line 267 "asmparse.y" +{ yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } +#line 6170 "asmparse.cpp.tab.c" +break; case 44: -#line 269 "asmparse.y" -{ yyval.float64 = yypvt[-0].float64; } break; -case 45: + if (!yytrial) #line 270 "asmparse.y" -{ float f; *((__int32*) (&f)) = yypvt[-1].int32; yyval.float64 = new double(f); } break; -case 46: +{ yyval.float64 = yyvsp[0].float64; } +#line 6176 "asmparse.cpp.tab.c" +break; +case 45: + if (!yytrial) #line 271 "asmparse.y" -{ yyval.float64 = (double*) yypvt[-1].int64; } break; +{ float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } +#line 6182 "asmparse.cpp.tab.c" +break; +case 46: + if (!yytrial) +#line 272 "asmparse.y" +{ yyval.float64 = (double*) yyvsp[-1].int64; } +#line 6188 "asmparse.cpp.tab.c" +break; case 47: -#line 275 "asmparse.y" -{ PASM->AddTypeDef(yypvt[-2].binstr,yypvt[-0].string); } break; -case 48: + if (!yytrial) #line 276 "asmparse.y" -{ PASM->AddTypeDef(yypvt[-2].token,yypvt[-0].string); } break; -case 49: +{ PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } +#line 6194 "asmparse.cpp.tab.c" +break; +case 48: + if (!yytrial) #line 277 "asmparse.y" -{ PASM->AddTypeDef(yypvt[-2].token,yypvt[-0].string); } break; -case 50: +{ PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } +#line 6200 "asmparse.cpp.tab.c" +break; +case 49: + if (!yytrial) #line 278 "asmparse.y" -{ yypvt[-2].cad->tkOwner = 0; PASM->AddTypeDef(yypvt[-2].cad,yypvt[-0].string); } break; -case 51: +{ PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } +#line 6206 "asmparse.cpp.tab.c" +break; +case 50: + if (!yytrial) #line 279 "asmparse.y" -{ PASM->AddTypeDef(yypvt[-2].cad,yypvt[-0].string); } break; +{ yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } +#line 6212 "asmparse.cpp.tab.c" +break; +case 51: + if (!yytrial) +#line 280 "asmparse.y" +{ PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } +#line 6218 "asmparse.cpp.tab.c" +break; case 52: -#line 284 "asmparse.y" -{ DefineVar(yypvt[-0].string, NULL); } break; -case 53: + if (!yytrial) #line 285 "asmparse.y" -{ DefineVar(yypvt[-1].string, yypvt[-0].binstr); } break; -case 54: +{ DefineVar(yyvsp[0].string, NULL); } +#line 6224 "asmparse.cpp.tab.c" +break; +case 53: + if (!yytrial) #line 286 "asmparse.y" -{ UndefVar(yypvt[-0].string); } break; -case 55: +{ DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } +#line 6230 "asmparse.cpp.tab.c" +break; +case 54: + if (!yytrial) #line 287 "asmparse.y" -{ SkipToken = !IsVarDefined(yypvt[-0].string); +{ UndefVar(yyvsp[0].string); } +#line 6236 "asmparse.cpp.tab.c" +break; +case 55: + if (!yytrial) +#line 288 "asmparse.y" +{ SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; - } break; + } +#line 6244 "asmparse.cpp.tab.c" +break; case 56: -#line 290 "asmparse.y" -{ SkipToken = IsVarDefined(yypvt[-0].string); + if (!yytrial) +#line 291 "asmparse.y" +{ SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; - } break; + } +#line 6252 "asmparse.cpp.tab.c" +break; case 57: -#line 293 "asmparse.y" -{ if(IfEndif == 1) SkipToken = !SkipToken;} break; -case 58: + if (!yytrial) #line 294 "asmparse.y" +{ if(IfEndif == 1) SkipToken = !SkipToken;} +#line 6258 "asmparse.cpp.tab.c" +break; +case 58: + if (!yytrial) +#line 295 "asmparse.y" { if(IfEndif == 0) PASM->report->error("Unmatched #endif\n"); else IfEndif--; - } break; + } +#line 6267 "asmparse.cpp.tab.c" +break; case 59: -#line 298 "asmparse.y" -{ _ASSERTE(!"yylex should have dealt with this"); } break; -case 60: + if (!yytrial) #line 299 "asmparse.y" -{ } break; +{ _ASSERTE(!"yylex should have dealt with this"); } +#line 6273 "asmparse.cpp.tab.c" +break; +case 60: + if (!yytrial) +#line 300 "asmparse.y" +{ } +#line 6279 "asmparse.cpp.tab.c" +break; case 61: -#line 303 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-0].token, NULL); } break; -case 62: + if (!yytrial) #line 304 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].token, yypvt[-0].binstr); } break; -case 63: +{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } +#line 6285 "asmparse.cpp.tab.c" +break; +case 62: + if (!yytrial) #line 305 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-4].token, yypvt[-1].binstr); } break; -case 64: +{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } +#line 6291 "asmparse.cpp.tab.c" +break; +case 63: + if (!yytrial) #line 306 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].int32, yypvt[-1].binstr); } break; +{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } +#line 6297 "asmparse.cpp.tab.c" +break; +case 64: + if (!yytrial) +#line 307 "asmparse.y" +{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } +#line 6303 "asmparse.cpp.tab.c" +break; case 65: -#line 309 "asmparse.y" -{ yyval.cad = new CustomDescr(yypvt[-2].token, yypvt[-0].token, NULL); } break; -case 66: + if (!yytrial) #line 310 "asmparse.y" -{ yyval.cad = new CustomDescr(yypvt[-4].token, yypvt[-2].token, yypvt[-0].binstr); } break; +{ yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } +#line 6309 "asmparse.cpp.tab.c" +break; +case 66: + if (!yytrial) +#line 311 "asmparse.y" +{ yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } +#line 6315 "asmparse.cpp.tab.c" +break; case 67: -#line 312 "asmparse.y" -{ yyval.cad = new CustomDescr(yypvt[-6].token, yypvt[-4].token, yypvt[-1].binstr); } break; -case 68: + if (!yytrial) #line 313 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].int32, yypvt[-1].binstr); } break; +{ yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } +#line 6321 "asmparse.cpp.tab.c" +break; +case 68: + if (!yytrial) +#line 314 "asmparse.y" +{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } +#line 6327 "asmparse.cpp.tab.c" +break; case 69: -#line 316 "asmparse.y" -{ yyval.int32 = yypvt[-2].token; bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 317 "asmparse.y" +{ yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } +#line 6333 "asmparse.cpp.tab.c" +break; case 70: -#line 320 "asmparse.y" + if (!yytrial) +#line 321 "asmparse.y" { PASM->m_pCustomDescrList = NULL; - PASM->m_tkCurrentCVOwner = yypvt[-4].token; - yyval.int32 = yypvt[-2].token; bParsingByteArray = TRUE; } break; + PASM->m_tkCurrentCVOwner = yyvsp[-4].token; + yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } +#line 6341 "asmparse.cpp.tab.c" +break; case 71: -#line 325 "asmparse.y" -{ yyval.token = yypvt[-0].token; } break; + if (!yytrial) +#line 326 "asmparse.y" +{ yyval.token = yyvsp[0].token; } +#line 6347 "asmparse.cpp.tab.c" +break; case 72: -#line 328 "asmparse.y" -{ yyval.token = yypvt[-0].token; } break; -case 73: + if (!yytrial) #line 329 "asmparse.y" -{ yyval.token = yypvt[-0].token; } break; +{ yyval.token = yyvsp[0].token; } +#line 6353 "asmparse.cpp.tab.c" +break; +case 73: + if (!yytrial) +#line 330 "asmparse.y" +{ yyval.token = yyvsp[0].token; } +#line 6359 "asmparse.cpp.tab.c" +break; case 74: -#line 333 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; + if (!yytrial) +#line 334 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); - yyval.binstr->append(yypvt[-0].binstr); - nCustomBlobNVPairs = 0; } break; + yyval.binstr->append(yyvsp[0].binstr); + nCustomBlobNVPairs = 0; } +#line 6368 "asmparse.cpp.tab.c" +break; case 75: -#line 339 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } break; -case 76: + if (!yytrial) #line 340 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - AppendFieldToCustomBlob(yyval.binstr,yypvt[-0].binstr); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } +#line 6374 "asmparse.cpp.tab.c" +break; +case 76: + if (!yytrial) +#line 341 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } +#line 6381 "asmparse.cpp.tab.c" +break; case 77: -#line 342 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 343 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 6387 "asmparse.cpp.tab.c" +break; case 78: -#line 345 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 346 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 6393 "asmparse.cpp.tab.c" +break; case 79: -#line 347 "asmparse.y" -{ yyval.binstr = yypvt[-5].binstr; yyval.binstr->appendInt8(yypvt[-4].int32); - yyval.binstr->append(yypvt[-3].binstr); - AppendStringWithLength(yyval.binstr,yypvt[-2].string); - AppendFieldToCustomBlob(yyval.binstr,yypvt[-0].binstr); - nCustomBlobNVPairs++; } break; + if (!yytrial) +#line 348 "asmparse.y" +{ yyval.binstr = yyvsp[-5].binstr; yyval.binstr->appendInt8(yyvsp[-4].int32); + yyval.binstr->append(yyvsp[-3].binstr); + AppendStringWithLength(yyval.binstr,yyvsp[-2].string); + AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); + nCustomBlobNVPairs++; } +#line 6403 "asmparse.cpp.tab.c" +break; case 80: -#line 352 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 353 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 6409 "asmparse.cpp.tab.c" +break; case 81: -#line 355 "asmparse.y" -{ yyval.int32 = SERIALIZATION_TYPE_FIELD; } break; -case 82: + if (!yytrial) #line 356 "asmparse.y" -{ yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } break; +{ yyval.int32 = SERIALIZATION_TYPE_FIELD; } +#line 6415 "asmparse.cpp.tab.c" +break; +case 82: + if (!yytrial) +#line 357 "asmparse.y" +{ yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } +#line 6421 "asmparse.cpp.tab.c" +break; case 83: -#line 359 "asmparse.y" -{ if(yypvt[-0].cad->tkOwner && !yypvt[-0].cad->tkInterfacePair) - PASM->DefineCV(yypvt[-0].cad); + if (!yytrial) +#line 360 "asmparse.y" +{ if(yyvsp[0].cad->tkOwner && !yyvsp[0].cad->tkInterfacePair) + PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH(yypvt[-0].cad); } break; + PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } +#line 6430 "asmparse.cpp.tab.c" +break; case 84: -#line 363 "asmparse.y" -{ PASM->DefineCV(yypvt[-0].cad); } break; -case 85: + if (!yytrial) #line 364 "asmparse.y" -{ CustomDescr* pNew = new CustomDescr(yypvt[-0].tdd->m_pCA); +{ PASM->DefineCV(yyvsp[0].cad); } +#line 6436 "asmparse.cpp.tab.c" +break; +case 85: + if (!yytrial) +#line 365 "asmparse.y" +{ CustomDescr* pNew = new CustomDescr(yyvsp[0].tdd->m_pCA); if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; if(pNew->tkOwner) PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH(pNew); } break; + PASM->m_pCustomDescrList->PUSH(pNew); } +#line 6447 "asmparse.cpp.tab.c" +break; case 86: -#line 372 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; -case 87: + if (!yytrial) #line 373 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } break; -case 88: +{ yyval.binstr = yyvsp[0].binstr; } +#line 6453 "asmparse.cpp.tab.c" +break; +case 87: + if (!yytrial) #line 374 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } break; -case 89: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } +#line 6459 "asmparse.cpp.tab.c" +break; +case 88: + if (!yytrial) #line 375 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } +#line 6465 "asmparse.cpp.tab.c" +break; +case 89: + if (!yytrial) +#line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength(yyval.binstr,yypvt[-0].string); } break; + AppendStringWithLength(yyval.binstr,yyvsp[0].string); } +#line 6472 "asmparse.cpp.tab.c" +break; case 90: -#line 377 "asmparse.y" + if (!yytrial) +#line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-0].token)); } break; + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } +#line 6479 "asmparse.cpp.tab.c" +break; case 91: -#line 379 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 380 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6485 "asmparse.cpp.tab.c" +break; case 92: -#line 384 "asmparse.y" -{ PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } break; -case 93: + if (!yytrial) #line 385 "asmparse.y" -{ PASMM->SetModuleName(yypvt[-0].string); PASM->m_tkCurrentCVOwner=1; } break; -case 94: +{ PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } +#line 6491 "asmparse.cpp.tab.c" +break; +case 93: + if (!yytrial) #line 386 "asmparse.y" +{ PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } +#line 6497 "asmparse.cpp.tab.c" +break; +case 94: + if (!yytrial) +#line 387 "asmparse.y" { BinStr* pbs = new BinStr(); - unsigned L = (unsigned)strlen(yypvt[-0].string); - memcpy((char*)(pbs->getBuff(L)),yypvt[-0].string,L); - PASM->EmitImport(pbs); delete pbs;} break; + unsigned L = (unsigned)strlen(yyvsp[0].string); + memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); + PASM->EmitImport(pbs); delete pbs;} +#line 6506 "asmparse.cpp.tab.c" +break; case 95: -#line 393 "asmparse.y" + if (!yytrial) +#line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ - PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yypvt[-4].int32, (USHORT)yypvt[-2].int32, yypvt[-0].string)); } break; + PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } +#line 6513 "asmparse.cpp.tab.c" +break; case 96: -#line 397 "asmparse.y" -{ yyval.int32 = 0; } break; -case 97: + if (!yytrial) #line 398 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | COR_VTABLE_32BIT; } break; -case 98: +{ yyval.int32 = 0; } +#line 6519 "asmparse.cpp.tab.c" +break; +case 97: + if (!yytrial) #line 399 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | COR_VTABLE_64BIT; } break; -case 99: +{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } +#line 6525 "asmparse.cpp.tab.c" +break; +case 98: + if (!yytrial) #line 400 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } break; -case 100: +{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } +#line 6531 "asmparse.cpp.tab.c" +break; +case 99: + if (!yytrial) #line 401 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } break; -case 101: +{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } +#line 6537 "asmparse.cpp.tab.c" +break; +case 100: + if (!yytrial) #line 402 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } break; +{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } +#line 6543 "asmparse.cpp.tab.c" +break; +case 101: + if (!yytrial) +#line 403 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } +#line 6549 "asmparse.cpp.tab.c" +break; case 102: -#line 405 "asmparse.y" -{ PASM->m_pVTable = yypvt[-1].binstr; } break; + if (!yytrial) +#line 406 "asmparse.y" +{ PASM->m_pVTable = yyvsp[-1].binstr; } +#line 6555 "asmparse.cpp.tab.c" +break; case 103: -#line 408 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 409 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 6561 "asmparse.cpp.tab.c" +break; case 104: -#line 412 "asmparse.y" -{ PASM->StartNameSpace(yypvt[-0].string); } break; + if (!yytrial) +#line 413 "asmparse.y" +{ PASM->StartNameSpace(yyvsp[0].string); } +#line 6567 "asmparse.cpp.tab.c" +break; case 105: -#line 415 "asmparse.y" -{ newclass = TRUE; } break; + if (!yytrial) +#line 416 "asmparse.y" +{ newclass = TRUE; } +#line 6573 "asmparse.cpp.tab.c" +break; case 106: -#line 418 "asmparse.y" -{ if(yypvt[-0].typarlist) FixupConstraints(); - PASM->StartClass(yypvt[-1].string, yypvt[-2].classAttr, yypvt[-0].typarlist); + if (!yytrial) +#line 419 "asmparse.y" +{ if(yyvsp[0].typarlist) FixupConstraints(); + PASM->StartClass(yyvsp[-1].string, yyvsp[-2].classAttr, yyvsp[0].typarlist); TyParFixupList.RESET(false); newclass = FALSE; - } break; + } +#line 6583 "asmparse.cpp.tab.c" +break; case 107: -#line 424 "asmparse.y" -{ PASM->AddClass(); } break; + if (!yytrial) +#line 425 "asmparse.y" +{ PASM->AddClass(); } +#line 6589 "asmparse.cpp.tab.c" +break; case 108: -#line 427 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) 0; } break; -case 109: + if (!yytrial) #line 428 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdVisibilityMask) | tdPublic); } break; -case 110: +{ yyval.classAttr = (CorRegTypeAttr) 0; } +#line 6595 "asmparse.cpp.tab.c" +break; +case 109: + if (!yytrial) #line 429 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } break; -case 111: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } +#line 6601 "asmparse.cpp.tab.c" +break; +case 110: + if (!yytrial) #line 430 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | 0x80000000 | tdSealed); } break; -case 112: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } +#line 6607 "asmparse.cpp.tab.c" +break; +case 111: + if (!yytrial) #line 431 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | 0x40000000); } break; -case 113: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } +#line 6613 "asmparse.cpp.tab.c" +break; +case 112: + if (!yytrial) #line 432 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdInterface | tdAbstract); } break; -case 114: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } +#line 6619 "asmparse.cpp.tab.c" +break; +case 113: + if (!yytrial) #line 433 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSealed); } break; -case 115: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } +#line 6625 "asmparse.cpp.tab.c" +break; +case 114: + if (!yytrial) #line 434 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdAbstract); } break; -case 116: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } +#line 6631 "asmparse.cpp.tab.c" +break; +case 115: + if (!yytrial) #line 435 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } break; -case 117: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } +#line 6637 "asmparse.cpp.tab.c" +break; +case 116: + if (!yytrial) #line 436 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } break; -case 118: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } +#line 6643 "asmparse.cpp.tab.c" +break; +case 117: + if (!yytrial) #line 437 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } break; -case 119: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } +#line 6649 "asmparse.cpp.tab.c" +break; +case 118: + if (!yytrial) #line 438 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } break; -case 120: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } +#line 6655 "asmparse.cpp.tab.c" +break; +case 119: + if (!yytrial) #line 439 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } break; -case 121: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } +#line 6661 "asmparse.cpp.tab.c" +break; +case 120: + if (!yytrial) #line 440 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } break; -case 122: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } +#line 6667 "asmparse.cpp.tab.c" +break; +case 121: + if (!yytrial) #line 441 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdImport); } break; -case 123: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } +#line 6673 "asmparse.cpp.tab.c" +break; +case 122: + if (!yytrial) #line 442 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSerializable); } break; -case 124: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } +#line 6679 "asmparse.cpp.tab.c" +break; +case 123: + if (!yytrial) #line 443 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdWindowsRuntime); } break; -case 125: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } +#line 6685 "asmparse.cpp.tab.c" +break; +case 124: + if (!yytrial) #line 444 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } break; -case 126: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } +#line 6691 "asmparse.cpp.tab.c" +break; +case 125: + if (!yytrial) #line 445 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } break; -case 127: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } +#line 6697 "asmparse.cpp.tab.c" +break; +case 126: + if (!yytrial) #line 446 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } break; -case 128: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } +#line 6703 "asmparse.cpp.tab.c" +break; +case 127: + if (!yytrial) #line 447 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } break; -case 129: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } +#line 6709 "asmparse.cpp.tab.c" +break; +case 128: + if (!yytrial) #line 448 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } break; -case 130: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } +#line 6715 "asmparse.cpp.tab.c" +break; +case 129: + if (!yytrial) #line 449 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } break; -case 131: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } +#line 6721 "asmparse.cpp.tab.c" +break; +case 130: + if (!yytrial) #line 450 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdBeforeFieldInit); } break; -case 132: +{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } +#line 6727 "asmparse.cpp.tab.c" +break; +case 131: + if (!yytrial) #line 451 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSpecialName); } break; -case 133: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } +#line 6733 "asmparse.cpp.tab.c" +break; +case 132: + if (!yytrial) #line 452 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr); } break; -case 134: +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } +#line 6739 "asmparse.cpp.tab.c" +break; +case 133: + if (!yytrial) #line 453 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].int32); } break; +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } +#line 6745 "asmparse.cpp.tab.c" +break; +case 134: + if (!yytrial) +#line 454 "asmparse.y" +{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } +#line 6751 "asmparse.cpp.tab.c" +break; case 136: -#line 457 "asmparse.y" -{ PASM->m_crExtends = yypvt[-0].token; } break; + if (!yytrial) +#line 458 "asmparse.y" +{ PASM->m_crExtends = yyvsp[0].token; } +#line 6757 "asmparse.cpp.tab.c" +break; case 141: -#line 468 "asmparse.y" -{ PASM->AddToImplList(yypvt[-0].token); } break; -case 142: + if (!yytrial) #line 469 "asmparse.y" -{ PASM->AddToImplList(yypvt[-0].token); } break; +{ PASM->AddToImplList(yyvsp[0].token); } +#line 6763 "asmparse.cpp.tab.c" +break; +case 142: + if (!yytrial) +#line 470 "asmparse.y" +{ PASM->AddToImplList(yyvsp[0].token); } +#line 6769 "asmparse.cpp.tab.c" +break; case 143: -#line 473 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; -case 144: + if (!yytrial) #line 474 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; +{ yyval.binstr = new BinStr(); } +#line 6775 "asmparse.cpp.tab.c" +break; +case 144: + if (!yytrial) +#line 475 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 6781 "asmparse.cpp.tab.c" +break; case 145: -#line 477 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-0].token); } break; -case 146: + if (!yytrial) #line 478 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->appendInt32(yypvt[-0].token); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } +#line 6787 "asmparse.cpp.tab.c" +break; +case 146: + if (!yytrial) +#line 479 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } +#line 6793 "asmparse.cpp.tab.c" +break; case 147: -#line 481 "asmparse.y" -{ yyval.typarlist = NULL; PASM->m_TyParList = NULL;} break; -case 148: + if (!yytrial) #line 482 "asmparse.y" -{ yyval.typarlist = yypvt[-1].typarlist; PASM->m_TyParList = yypvt[-1].typarlist;} break; +{ yyval.typarlist = NULL; PASM->m_TyParList = NULL;} +#line 6799 "asmparse.cpp.tab.c" +break; +case 148: + if (!yytrial) +#line 483 "asmparse.y" +{ yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} +#line 6805 "asmparse.cpp.tab.c" +break; case 149: -#line 485 "asmparse.y" -{ yyval.int32 = gpCovariant; } break; -case 150: + if (!yytrial) #line 486 "asmparse.y" -{ yyval.int32 = gpContravariant; } break; -case 151: +{ yyval.int32 = gpCovariant; } +#line 6811 "asmparse.cpp.tab.c" +break; +case 150: + if (!yytrial) #line 487 "asmparse.y" -{ yyval.int32 = gpReferenceTypeConstraint; } break; -case 152: +{ yyval.int32 = gpContravariant; } +#line 6817 "asmparse.cpp.tab.c" +break; +case 151: + if (!yytrial) #line 488 "asmparse.y" -{ yyval.int32 = gpNotNullableValueTypeConstraint; } break; -case 153: +{ yyval.int32 = gpReferenceTypeConstraint; } +#line 6823 "asmparse.cpp.tab.c" +break; +case 152: + if (!yytrial) #line 489 "asmparse.y" -{ yyval.int32 = gpAcceptByRefLike; } break; -case 154: +{ yyval.int32 = gpNotNullableValueTypeConstraint; } +#line 6829 "asmparse.cpp.tab.c" +break; +case 153: + if (!yytrial) #line 490 "asmparse.y" -{ yyval.int32 = gpDefaultConstructorConstraint; } break; -case 155: +{ yyval.int32 = gpAcceptByRefLike; } +#line 6835 "asmparse.cpp.tab.c" +break; +case 154: + if (!yytrial) #line 491 "asmparse.y" -{ yyval.int32 = (CorGenericParamAttr)yypvt[-1].int32; } break; +{ yyval.int32 = gpDefaultConstructorConstraint; } +#line 6841 "asmparse.cpp.tab.c" +break; +case 155: + if (!yytrial) +#line 492 "asmparse.y" +{ yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } +#line 6847 "asmparse.cpp.tab.c" +break; case 156: -#line 494 "asmparse.y" -{ yyval.int32 = 0; } break; -case 157: + if (!yytrial) #line 495 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | yypvt[-0].int32; } break; +{ yyval.int32 = 0; } +#line 6853 "asmparse.cpp.tab.c" +break; +case 157: + if (!yytrial) +#line 496 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } +#line 6859 "asmparse.cpp.tab.c" +break; case 158: -#line 498 "asmparse.y" -{yyval.typarlist = new TyParList(yypvt[-3].int32, yypvt[-2].binstr, yypvt[-1].string, yypvt[-0].typarlist);} break; -case 159: + if (!yytrial) #line 499 "asmparse.y" -{yyval.typarlist = new TyParList(yypvt[-2].int32, NULL, yypvt[-1].string, yypvt[-0].typarlist);} break; +{yyval.typarlist = new TyParList(yyvsp[-2].binstr, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } +#line 6865 "asmparse.cpp.tab.c" +break; +case 159: + if (!yytrial) +#line 500 "asmparse.y" +{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} +#line 6871 "asmparse.cpp.tab.c" +break; case 160: -#line 502 "asmparse.y" -{ yyval.typarlist = NULL; } break; + if (!yytrial) +#line 501 "asmparse.y" +{yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} +#line 6877 "asmparse.cpp.tab.c" +break; case 161: -#line 503 "asmparse.y" -{ yyval.typarlist = yypvt[-0].typarlist; } break; + if (!yytrial) +#line 504 "asmparse.y" +{ yyval.typarlist = NULL; } +#line 6883 "asmparse.cpp.tab.c" +break; case 162: -#line 506 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 505 "asmparse.y" +{ yyval.typarlist = yyvsp[0].typarlist; } +#line 6889 "asmparse.cpp.tab.c" +break; case 163: -#line 509 "asmparse.y" -{ yyval.int32= 0; } break; + if (!yytrial) +#line 508 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 6895 "asmparse.cpp.tab.c" +break; case 164: -#line 510 "asmparse.y" -{ yyval.int32 = yypvt[-0].int32; } break; + if (!yytrial) +#line 511 "asmparse.y" +{ yyval.int32= 0; } +#line 6901 "asmparse.cpp.tab.c" +break; case 165: -#line 513 "asmparse.y" -{ yyval.int32 = yypvt[-2].int32; } break; + if (!yytrial) +#line 512 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 6907 "asmparse.cpp.tab.c" +break; case 166: -#line 517 "asmparse.y" + if (!yytrial) +#line 515 "asmparse.y" +{ yyval.int32 = yyvsp[-2].int32; } +#line 6913 "asmparse.cpp.tab.c" +break; +case 167: + if (!yytrial) +#line 519 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} - PASM->EndMethod(); } break; -case 167: -#line 521 "asmparse.y" -{ PASM->EndClass(); } break; + PASM->EndMethod(); } +#line 6922 "asmparse.cpp.tab.c" +break; case 168: -#line 522 "asmparse.y" -{ PASM->EndEvent(); } break; -case 169: + if (!yytrial) #line 523 "asmparse.y" -{ PASM->EndProp(); } break; -case 175: -#line 529 "asmparse.y" -{ PASM->m_pCurClass->m_ulSize = yypvt[-0].int32; } break; +{ PASM->EndClass(); } +#line 6928 "asmparse.cpp.tab.c" +break; +case 169: + if (!yytrial) +#line 524 "asmparse.y" +{ PASM->EndEvent(); } +#line 6934 "asmparse.cpp.tab.c" +break; +case 170: + if (!yytrial) +#line 525 "asmparse.y" +{ PASM->EndProp(); } +#line 6940 "asmparse.cpp.tab.c" +break; case 176: -#line 530 "asmparse.y" -{ PASM->m_pCurClass->m_ulPack = yypvt[-0].int32; } break; -case 177: + if (!yytrial) #line 531 "asmparse.y" -{ PASMM->EndComType(); } break; +{ PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } +#line 6946 "asmparse.cpp.tab.c" +break; +case 177: + if (!yytrial) +#line 532 "asmparse.y" +{ PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } +#line 6952 "asmparse.cpp.tab.c" +break; case 178: + if (!yytrial) #line 533 "asmparse.y" -{ BinStr *sig1 = parser->MakeSig(yypvt[-7].int32, yypvt[-6].binstr, yypvt[-1].binstr); +{ PASMM->EndComType(); } +#line 6958 "asmparse.cpp.tab.c" +break; +case 179: + if (!yytrial) +#line 535 "asmparse.y" +{ BinStr *sig1 = parser->MakeSig(yyvsp[-7].int32, yyvsp[-6].binstr, yyvsp[-1].binstr); BinStr *sig2 = new BinStr(); sig2->append(sig1); - PASM->AddMethodImpl(yypvt[-11].token,yypvt[-9].string,sig1,yypvt[-5].token,yypvt[-3].string,sig2); + PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); - } break; -case 179: -#line 539 "asmparse.y" -{ PASM->AddMethodImpl(yypvt[-17].token,yypvt[-15].string, - (yypvt[-14].int32==0 ? parser->MakeSig(yypvt[-19].int32,yypvt[-18].binstr,yypvt[-12].binstr) : - parser->MakeSig(yypvt[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-18].binstr,yypvt[-12].binstr,yypvt[-14].int32)), - yypvt[-6].token,yypvt[-4].string, - (yypvt[-3].int32==0 ? parser->MakeSig(yypvt[-8].int32,yypvt[-7].binstr,yypvt[-1].binstr) : - parser->MakeSig(yypvt[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-7].binstr,yypvt[-1].binstr,yypvt[-3].int32))); + } +#line 6968 "asmparse.cpp.tab.c" +break; +case 180: + if (!yytrial) +#line 541 "asmparse.y" +{ PASM->AddMethodImpl(yyvsp[-17].token,yyvsp[-15].string, + (yyvsp[-14].int32==0 ? parser->MakeSig(yyvsp[-19].int32,yyvsp[-18].binstr,yyvsp[-12].binstr) : + parser->MakeSig(yyvsp[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-18].binstr,yyvsp[-12].binstr,yyvsp[-14].int32)), + yyvsp[-6].token,yyvsp[-4].string, + (yyvsp[-3].int32==0 ? parser->MakeSig(yyvsp[-8].int32,yyvsp[-7].binstr,yyvsp[-1].binstr) : + parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); - } break; -case 182: -#line 549 "asmparse.y" -{ if((yypvt[-1].int32 > 0) && (yypvt[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yypvt[-1].int32-1].CAList(); + } +#line 6981 "asmparse.cpp.tab.c" +break; +case 183: + if (!yytrial) +#line 551 "asmparse.y" +{ if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yyvsp[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); - } break; -case 183: -#line 554 "asmparse.y" -{ int n = PASM->m_pCurClass->FindTyPar(yypvt[-0].string); + } +#line 6991 "asmparse.cpp.tab.c" +break; +case 184: + if (!yytrial) +#line 556 "asmparse.y" +{ int n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else - PASM->report->error("Type parameter '%s' undefined\n",yypvt[-0].string); - } break; -case 184: -#line 560 "asmparse.y" -{ PASM->AddGenericParamConstraint(yypvt[-3].int32, 0, yypvt[-0].token); } break; + PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); + } +#line 7002 "asmparse.cpp.tab.c" +break; case 185: -#line 561 "asmparse.y" -{ PASM->AddGenericParamConstraint(0, yypvt[-2].string, yypvt[-0].token); } break; -case 186: + if (!yytrial) #line 562 "asmparse.y" -{ yypvt[-0].cad->tkInterfacePair = yypvt[-1].token; - if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH(yypvt[-0].cad); - } break; +{ PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } +#line 7008 "asmparse.cpp.tab.c" +break; +case 186: + if (!yytrial) +#line 563 "asmparse.y" +{ PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } +#line 7014 "asmparse.cpp.tab.c" +break; case 187: -#line 570 "asmparse.y" -{ yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - PASM->AddField(yypvt[-2].string, yypvt[-3].binstr, yypvt[-4].fieldAttr, yypvt[-1].string, yypvt[-0].binstr, yypvt[-5].int32); } break; + if (!yytrial) +#line 564 "asmparse.y" +{ yyvsp[0].cad->tkInterfacePair = yyvsp[-1].token; + if(PASM->m_pCustomDescrList) + PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); + } +#line 7023 "asmparse.cpp.tab.c" +break; case 188: -#line 574 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) 0; } break; + if (!yytrial) +#line 572 "asmparse.y" +{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } +#line 7030 "asmparse.cpp.tab.c" +break; case 189: -#line 575 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdStatic); } break; -case 190: + if (!yytrial) #line 576 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } break; -case 191: +{ yyval.fieldAttr = (CorFieldAttr) 0; } +#line 7036 "asmparse.cpp.tab.c" +break; +case 190: + if (!yytrial) #line 577 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } break; -case 192: +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } +#line 7042 "asmparse.cpp.tab.c" +break; +case 191: + if (!yytrial) #line 578 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } break; -case 193: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } +#line 7048 "asmparse.cpp.tab.c" +break; +case 192: + if (!yytrial) #line 579 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdInitOnly); } break; -case 194: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } +#line 7054 "asmparse.cpp.tab.c" +break; +case 193: + if (!yytrial) #line 580 "asmparse.y" -{ yyval.fieldAttr = yypvt[-1].fieldAttr; } break; -case 195: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } +#line 7060 "asmparse.cpp.tab.c" +break; +case 194: + if (!yytrial) #line 581 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdSpecialName); } break; +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } +#line 7066 "asmparse.cpp.tab.c" +break; +case 195: + if (!yytrial) +#line 582 "asmparse.y" +{ yyval.fieldAttr = yyvsp[-1].fieldAttr; } +#line 7072 "asmparse.cpp.tab.c" +break; case 196: -#line 594 "asmparse.y" -{ PASM->m_pMarshal = yypvt[-1].binstr; } break; + if (!yytrial) +#line 583 "asmparse.y" +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } +#line 7078 "asmparse.cpp.tab.c" +break; case 197: -#line 595 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } break; -case 198: + if (!yytrial) #line 596 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } break; -case 199: +{ PASM->m_pMarshal = yyvsp[-1].binstr; } +#line 7084 "asmparse.cpp.tab.c" +break; +case 198: + if (!yytrial) #line 597 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } break; -case 200: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } +#line 7090 "asmparse.cpp.tab.c" +break; +case 199: + if (!yytrial) #line 598 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } break; -case 201: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } +#line 7096 "asmparse.cpp.tab.c" +break; +case 200: + if (!yytrial) #line 599 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdLiteral); } break; -case 202: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } +#line 7102 "asmparse.cpp.tab.c" +break; +case 201: + if (!yytrial) #line 600 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdNotSerialized); } break; -case 203: +{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } +#line 7108 "asmparse.cpp.tab.c" +break; +case 202: + if (!yytrial) #line 601 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].int32); } break; +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } +#line 7114 "asmparse.cpp.tab.c" +break; +case 203: + if (!yytrial) +#line 602 "asmparse.y" +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } +#line 7120 "asmparse.cpp.tab.c" +break; case 204: -#line 604 "asmparse.y" -{ yyval.string = 0; } break; + if (!yytrial) +#line 603 "asmparse.y" +{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } +#line 7126 "asmparse.cpp.tab.c" +break; case 205: -#line 605 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; + if (!yytrial) +#line 606 "asmparse.y" +{ yyval.string = 0; } +#line 7132 "asmparse.cpp.tab.c" +break; case 206: -#line 608 "asmparse.y" -{ yyval.binstr = NULL; } break; + if (!yytrial) +#line 607 "asmparse.y" +{ yyval.string = yyvsp[0].string; } +#line 7138 "asmparse.cpp.tab.c" +break; case 207: -#line 609 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 610 "asmparse.y" +{ yyval.binstr = NULL; } +#line 7144 "asmparse.cpp.tab.c" +break; case 208: -#line 612 "asmparse.y" -{ yyval.int32 = 0xFFFFFFFF; } break; + if (!yytrial) +#line 611 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 7150 "asmparse.cpp.tab.c" +break; case 209: -#line 613 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32; } break; + if (!yytrial) +#line 614 "asmparse.y" +{ yyval.int32 = 0xFFFFFFFF; } +#line 7156 "asmparse.cpp.tab.c" +break; case 210: -#line 618 "asmparse.y" + if (!yytrial) +#line 615 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32; } +#line 7162 "asmparse.cpp.tab.c" +break; +case 211: + if (!yytrial) +#line 620 "asmparse.y" { PASM->ResetArgNameList(); - if (yypvt[-3].binstr == NULL) + if (yyvsp[-3].binstr == NULL) { - if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, parser->MakeSig(yypvt[-8].int32|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr)); + if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr)); } else { mdToken mr; - if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, - parser->MakeSig(yypvt[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr, corCountArgs(yypvt[-3].binstr))); + if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, + parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, corCountArgs(yyvsp[-3].binstr))); yyval.token = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yypvt[-3].binstr)); + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } - } break; -case 211: -#line 635 "asmparse.y" -{ PASM->ResetArgNameList(); - if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, - parser->MakeSig(yypvt[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr, yypvt[-3].int32)); - } break; + } +#line 7183 "asmparse.cpp.tab.c" +break; case 212: -#line 641 "asmparse.y" + if (!yytrial) +#line 637 "asmparse.y" +{ PASM->ResetArgNameList(); + if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, + parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); + } +#line 7193 "asmparse.cpp.tab.c" +break; +case 213: + if (!yytrial) +#line 643 "asmparse.y" { PASM->ResetArgNameList(); - if (yypvt[-3].binstr == NULL) + if (yyvsp[-3].binstr == NULL) { - if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr)); + if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr)); } else { mdToken mr; - if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr, corCountArgs(yypvt[-3].binstr))); + if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, corCountArgs(yyvsp[-3].binstr))); yyval.token = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yypvt[-3].binstr)); + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } - } break; -case 213: -#line 657 "asmparse.y" -{ PASM->ResetArgNameList(); - if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr, yypvt[-3].int32)); - } break; + } +#line 7213 "asmparse.cpp.tab.c" +break; case 214: -#line 661 "asmparse.y" -{ yyval.token = yypvt[-0].token; } break; + if (!yytrial) +#line 659 "asmparse.y" +{ PASM->ResetArgNameList(); + if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); + } +#line 7222 "asmparse.cpp.tab.c" +break; case 215: -#line 662 "asmparse.y" -{ yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; -case 216: + if (!yytrial) #line 663 "asmparse.y" -{ yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; +{ yyval.token = yyvsp[0].token; } +#line 7228 "asmparse.cpp.tab.c" +break; +case 216: + if (!yytrial) +#line 664 "asmparse.y" +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } +#line 7234 "asmparse.cpp.tab.c" +break; case 217: -#line 666 "asmparse.y" -{ yyval.int32 = (yypvt[-0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } break; + if (!yytrial) +#line 665 "asmparse.y" +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } +#line 7240 "asmparse.cpp.tab.c" +break; case 218: -#line 667 "asmparse.y" -{ yyval.int32 = (yypvt[-0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } break; -case 219: + if (!yytrial) #line 668 "asmparse.y" -{ yyval.int32 = yypvt[-0].int32; } break; -case 220: +{ yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } +#line 7246 "asmparse.cpp.tab.c" +break; +case 219: + if (!yytrial) #line 669 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32; } break; +{ yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } +#line 7252 "asmparse.cpp.tab.c" +break; +case 220: + if (!yytrial) +#line 670 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 7258 "asmparse.cpp.tab.c" +break; case 221: -#line 672 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } break; + if (!yytrial) +#line 671 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32; } +#line 7264 "asmparse.cpp.tab.c" +break; case 222: -#line 673 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } break; -case 223: + if (!yytrial) #line 674 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } break; -case 224: +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 7270 "asmparse.cpp.tab.c" +break; +case 223: + if (!yytrial) #line 675 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } break; -case 225: +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 7276 "asmparse.cpp.tab.c" +break; +case 224: + if (!yytrial) #line 676 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } break; -case 226: +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } +#line 7282 "asmparse.cpp.tab.c" +break; +case 225: + if (!yytrial) #line 677 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } break; -case 227: +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } +#line 7288 "asmparse.cpp.tab.c" +break; +case 226: + if (!yytrial) #line 678 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } break; -case 228: +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } +#line 7294 "asmparse.cpp.tab.c" +break; +case 227: + if (!yytrial) #line 679 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } break; +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } +#line 7300 "asmparse.cpp.tab.c" +break; +case 228: + if (!yytrial) +#line 680 "asmparse.y" +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } +#line 7306 "asmparse.cpp.tab.c" +break; case 229: -#line 682 "asmparse.y" -{ yyval.token = yypvt[-1].int32; } break; + if (!yytrial) +#line 681 "asmparse.y" +{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } +#line 7312 "asmparse.cpp.tab.c" +break; case 230: -#line 685 "asmparse.y" -{ yyval.token = yypvt[-0].token; + if (!yytrial) +#line 684 "asmparse.y" +{ yyval.token = yyvsp[-1].int32; } +#line 7318 "asmparse.cpp.tab.c" +break; +case 231: + if (!yytrial) +#line 687 "asmparse.y" +{ yyval.token = yyvsp[0].token; PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); - PASM->SetMemberRefFixup(yypvt[-0].token,iOpcodeLen); } break; -case 231: -#line 691 "asmparse.y" -{ yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - yyval.token = PASM->MakeMemberRef(yypvt[-2].token, yypvt[-0].string, yypvt[-3].binstr); - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; + PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } +#line 7328 "asmparse.cpp.tab.c" +break; case 232: -#line 695 "asmparse.y" -{ yypvt[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - yyval.token = PASM->MakeMemberRef(NULL, yypvt[-0].string, yypvt[-1].binstr); - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; + if (!yytrial) +#line 693 "asmparse.y" +{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 7336 "asmparse.cpp.tab.c" +break; case 233: -#line 698 "asmparse.y" -{ yyval.token = yypvt[-0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; + if (!yytrial) +#line 697 "asmparse.y" +{ yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 7344 "asmparse.cpp.tab.c" +break; case 234: + if (!yytrial) #line 700 "asmparse.y" -{ yyval.token = yypvt[-0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 7351 "asmparse.cpp.tab.c" +break; case 235: + if (!yytrial) #line 702 "asmparse.y" -{ yyval.token = yypvt[-0].token; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 7358 "asmparse.cpp.tab.c" +break; case 236: -#line 707 "asmparse.y" -{ PASM->ResetEvent(yypvt[-0].string, yypvt[-1].token, yypvt[-2].eventAttr); } break; + if (!yytrial) +#line 704 "asmparse.y" +{ yyval.token = yyvsp[0].token; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 7365 "asmparse.cpp.tab.c" +break; case 237: -#line 708 "asmparse.y" -{ PASM->ResetEvent(yypvt[-0].string, mdTypeRefNil, yypvt[-1].eventAttr); } break; + if (!yytrial) +#line 709 "asmparse.y" +{ PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } +#line 7371 "asmparse.cpp.tab.c" +break; case 238: -#line 712 "asmparse.y" -{ yyval.eventAttr = (CorEventAttr) 0; } break; + if (!yytrial) +#line 710 "asmparse.y" +{ PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } +#line 7377 "asmparse.cpp.tab.c" +break; case 239: -#line 713 "asmparse.y" -{ yyval.eventAttr = yypvt[-1].eventAttr; } break; -case 240: + if (!yytrial) #line 714 "asmparse.y" -{ yyval.eventAttr = (CorEventAttr) (yypvt[-1].eventAttr | evSpecialName); } break; -case 243: -#line 721 "asmparse.y" -{ PASM->SetEventMethod(0, yypvt[-0].token); } break; +{ yyval.eventAttr = (CorEventAttr) 0; } +#line 7383 "asmparse.cpp.tab.c" +break; +case 240: + if (!yytrial) +#line 715 "asmparse.y" +{ yyval.eventAttr = yyvsp[-1].eventAttr; } +#line 7389 "asmparse.cpp.tab.c" +break; +case 241: + if (!yytrial) +#line 716 "asmparse.y" +{ yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } +#line 7395 "asmparse.cpp.tab.c" +break; case 244: -#line 722 "asmparse.y" -{ PASM->SetEventMethod(1, yypvt[-0].token); } break; -case 245: + if (!yytrial) #line 723 "asmparse.y" -{ PASM->SetEventMethod(2, yypvt[-0].token); } break; -case 246: +{ PASM->SetEventMethod(0, yyvsp[0].token); } +#line 7401 "asmparse.cpp.tab.c" +break; +case 245: + if (!yytrial) #line 724 "asmparse.y" -{ PASM->SetEventMethod(3, yypvt[-0].token); } break; -case 251: -#line 733 "asmparse.y" -{ PASM->ResetProp(yypvt[-4].string, - parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | - (yypvt[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yypvt[-5].binstr,yypvt[-2].binstr), yypvt[-7].propAttr, yypvt[-0].binstr);} break; +{ PASM->SetEventMethod(1, yyvsp[0].token); } +#line 7407 "asmparse.cpp.tab.c" +break; +case 246: + if (!yytrial) +#line 725 "asmparse.y" +{ PASM->SetEventMethod(2, yyvsp[0].token); } +#line 7413 "asmparse.cpp.tab.c" +break; +case 247: + if (!yytrial) +#line 726 "asmparse.y" +{ PASM->SetEventMethod(3, yyvsp[0].token); } +#line 7419 "asmparse.cpp.tab.c" +break; case 252: -#line 738 "asmparse.y" -{ yyval.propAttr = (CorPropertyAttr) 0; } break; + if (!yytrial) +#line 735 "asmparse.y" +{ PASM->ResetProp(yyvsp[-4].string, + parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | + (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} +#line 7427 "asmparse.cpp.tab.c" +break; case 253: -#line 739 "asmparse.y" -{ yyval.propAttr = yypvt[-1].propAttr; } break; -case 254: + if (!yytrial) #line 740 "asmparse.y" -{ yyval.propAttr = (CorPropertyAttr) (yypvt[-1].propAttr | prSpecialName); } break; -case 257: -#line 748 "asmparse.y" -{ PASM->SetPropMethod(0, yypvt[-0].token); } break; +{ yyval.propAttr = (CorPropertyAttr) 0; } +#line 7433 "asmparse.cpp.tab.c" +break; +case 254: + if (!yytrial) +#line 741 "asmparse.y" +{ yyval.propAttr = yyvsp[-1].propAttr; } +#line 7439 "asmparse.cpp.tab.c" +break; +case 255: + if (!yytrial) +#line 742 "asmparse.y" +{ yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } +#line 7445 "asmparse.cpp.tab.c" +break; case 258: -#line 749 "asmparse.y" -{ PASM->SetPropMethod(1, yypvt[-0].token); } break; -case 259: + if (!yytrial) #line 750 "asmparse.y" -{ PASM->SetPropMethod(2, yypvt[-0].token); } break; -case 264: -#line 758 "asmparse.y" +{ PASM->SetPropMethod(0, yyvsp[0].token); } +#line 7451 "asmparse.cpp.tab.c" +break; +case 259: + if (!yytrial) +#line 751 "asmparse.y" +{ PASM->SetPropMethod(1, yyvsp[0].token); } +#line 7457 "asmparse.cpp.tab.c" +break; +case 260: + if (!yytrial) +#line 752 "asmparse.y" +{ PASM->SetPropMethod(2, yyvsp[0].token); } +#line 7463 "asmparse.cpp.tab.c" +break; +case 265: + if (!yytrial) +#line 760 "asmparse.y" { PASM->ResetForNextMethod(); uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; - } break; -case 265: -#line 764 "asmparse.y" -{ yyval.binstr = NULL; } break; + } +#line 7472 "asmparse.cpp.tab.c" +break; case 266: -#line 765 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 766 "asmparse.y" +{ yyval.binstr = NULL; } +#line 7478 "asmparse.cpp.tab.c" +break; case 267: -#line 768 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 767 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 7484 "asmparse.cpp.tab.c" +break; case 268: -#line 769 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 770 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 7490 "asmparse.cpp.tab.c" +break; case 269: -#line 772 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 771 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 7496 "asmparse.cpp.tab.c" +break; case 270: -#line 776 "asmparse.y" + if (!yytrial) +#line 774 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 7502 "asmparse.cpp.tab.c" +break; +case 271: + if (!yytrial) +#line 778 "asmparse.y" { BinStr* sig; - if (yypvt[-5].typarlist == NULL) sig = parser->MakeSig(yypvt[-10].int32, yypvt[-8].binstr, yypvt[-3].binstr); + if (yyvsp[-5].typarlist == NULL) sig = parser->MakeSig(yyvsp[-10].int32, yyvsp[-8].binstr, yyvsp[-3].binstr); else { - FixupTyPars(yypvt[-8].binstr); - sig = parser->MakeSig(yypvt[-10].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC, yypvt[-8].binstr, yypvt[-3].binstr, yypvt[-5].typarlist->Count()); + FixupTyPars(yyvsp[-8].binstr); + sig = parser->MakeSig(yyvsp[-10].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC, yyvsp[-8].binstr, yyvsp[-3].binstr, yyvsp[-5].typarlist->Count()); FixupConstraints(); } - PASM->StartMethod(yypvt[-6].string, sig, yypvt[-11].methAttr, yypvt[-7].binstr, yypvt[-9].int32, yypvt[-5].typarlist); + PASM->StartMethod(yyvsp[-6].string, sig, yyvsp[-11].methAttr, yyvsp[-7].binstr, yyvsp[-9].int32, yyvsp[-5].typarlist); TyParFixupList.RESET(false); - PASM->SetImplAttr((USHORT)yypvt[-1].implAttr); + PASM->SetImplAttr((USHORT)yyvsp[-1].implAttr); PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; - } break; -case 271: -#line 791 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) 0; } break; + } +#line 7520 "asmparse.cpp.tab.c" +break; case 272: -#line 792 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdStatic); } break; -case 273: + if (!yytrial) #line 793 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } break; -case 274: +{ yyval.methAttr = (CorMethodAttr) 0; } +#line 7526 "asmparse.cpp.tab.c" +break; +case 273: + if (!yytrial) #line 794 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } break; -case 275: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } +#line 7532 "asmparse.cpp.tab.c" +break; +case 274: + if (!yytrial) #line 795 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } break; -case 276: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } +#line 7538 "asmparse.cpp.tab.c" +break; +case 275: + if (!yytrial) #line 796 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdFinal); } break; -case 277: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } +#line 7544 "asmparse.cpp.tab.c" +break; +case 276: + if (!yytrial) #line 797 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdSpecialName); } break; -case 278: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } +#line 7550 "asmparse.cpp.tab.c" +break; +case 277: + if (!yytrial) #line 798 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdVirtual); } break; -case 279: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } +#line 7556 "asmparse.cpp.tab.c" +break; +case 278: + if (!yytrial) #line 799 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdCheckAccessOnOverride); } break; -case 280: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } +#line 7562 "asmparse.cpp.tab.c" +break; +case 279: + if (!yytrial) #line 800 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdAbstract); } break; -case 281: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } +#line 7568 "asmparse.cpp.tab.c" +break; +case 280: + if (!yytrial) #line 801 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } break; -case 282: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } +#line 7574 "asmparse.cpp.tab.c" +break; +case 281: + if (!yytrial) #line 802 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } break; -case 283: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } +#line 7580 "asmparse.cpp.tab.c" +break; +case 282: + if (!yytrial) #line 803 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } break; -case 284: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } +#line 7586 "asmparse.cpp.tab.c" +break; +case 283: + if (!yytrial) #line 804 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } break; -case 285: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } +#line 7592 "asmparse.cpp.tab.c" +break; +case 284: + if (!yytrial) #line 805 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdHideBySig); } break; -case 286: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } +#line 7598 "asmparse.cpp.tab.c" +break; +case 285: + if (!yytrial) #line 806 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdNewSlot); } break; -case 287: +{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } +#line 7604 "asmparse.cpp.tab.c" +break; +case 286: + if (!yytrial) #line 807 "asmparse.y" -{ yyval.methAttr = yypvt[-1].methAttr; } break; -case 288: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } +#line 7610 "asmparse.cpp.tab.c" +break; +case 287: + if (!yytrial) #line 808 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdUnmanagedExport); } break; -case 289: +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } +#line 7616 "asmparse.cpp.tab.c" +break; +case 288: + if (!yytrial) #line 809 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdRequireSecObject); } break; -case 290: +{ yyval.methAttr = yyvsp[-1].methAttr; } +#line 7622 "asmparse.cpp.tab.c" +break; +case 289: + if (!yytrial) #line 810 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yypvt[-1].int32); } break; +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } +#line 7628 "asmparse.cpp.tab.c" +break; +case 290: + if (!yytrial) +#line 811 "asmparse.y" +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } +#line 7634 "asmparse.cpp.tab.c" +break; case 291: + if (!yytrial) #line 812 "asmparse.y" -{ PASM->SetPinvoke(yypvt[-4].binstr,0,yypvt[-2].binstr,yypvt[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yypvt[-7].methAttr | mdPinvokeImpl); } break; +{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } +#line 7640 "asmparse.cpp.tab.c" +break; case 292: -#line 815 "asmparse.y" -{ PASM->SetPinvoke(yypvt[-2].binstr,0,NULL,yypvt[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yypvt[-5].methAttr | mdPinvokeImpl); } break; + if (!yytrial) +#line 814 "asmparse.y" +{ PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } +#line 7647 "asmparse.cpp.tab.c" +break; case 293: -#line 818 "asmparse.y" -{ PASM->SetPinvoke(new BinStr(),0,NULL,yypvt[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yypvt[-4].methAttr | mdPinvokeImpl); } break; + if (!yytrial) +#line 817 "asmparse.y" +{ PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } +#line 7654 "asmparse.cpp.tab.c" +break; case 294: -#line 822 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) 0; } break; + if (!yytrial) +#line 820 "asmparse.y" +{ PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } +#line 7661 "asmparse.cpp.tab.c" +break; case 295: -#line 823 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmNoMangle); } break; -case 296: + if (!yytrial) #line 824 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetAnsi); } break; -case 297: +{ yyval.pinvAttr = (CorPinvokeMap) 0; } +#line 7667 "asmparse.cpp.tab.c" +break; +case 296: + if (!yytrial) #line 825 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetUnicode); } break; -case 298: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } +#line 7673 "asmparse.cpp.tab.c" +break; +case 297: + if (!yytrial) #line 826 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetAuto); } break; -case 299: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } +#line 7679 "asmparse.cpp.tab.c" +break; +case 298: + if (!yytrial) #line 827 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmSupportsLastError); } break; -case 300: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } +#line 7685 "asmparse.cpp.tab.c" +break; +case 299: + if (!yytrial) #line 828 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvWinapi); } break; -case 301: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } +#line 7691 "asmparse.cpp.tab.c" +break; +case 300: + if (!yytrial) #line 829 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvCdecl); } break; -case 302: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } +#line 7697 "asmparse.cpp.tab.c" +break; +case 301: + if (!yytrial) #line 830 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvStdcall); } break; -case 303: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } +#line 7703 "asmparse.cpp.tab.c" +break; +case 302: + if (!yytrial) #line 831 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvThiscall); } break; -case 304: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } +#line 7709 "asmparse.cpp.tab.c" +break; +case 303: + if (!yytrial) #line 832 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvFastcall); } break; -case 305: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } +#line 7715 "asmparse.cpp.tab.c" +break; +case 304: + if (!yytrial) #line 833 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmBestFitEnabled); } break; -case 306: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } +#line 7721 "asmparse.cpp.tab.c" +break; +case 305: + if (!yytrial) #line 834 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmBestFitDisabled); } break; -case 307: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } +#line 7727 "asmparse.cpp.tab.c" +break; +case 306: + if (!yytrial) #line 835 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } break; -case 308: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } +#line 7733 "asmparse.cpp.tab.c" +break; +case 307: + if (!yytrial) #line 836 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } break; -case 309: +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } +#line 7739 "asmparse.cpp.tab.c" +break; +case 308: + if (!yytrial) #line 837 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].int32); } break; +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } +#line 7745 "asmparse.cpp.tab.c" +break; +case 309: + if (!yytrial) +#line 838 "asmparse.y" +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } +#line 7751 "asmparse.cpp.tab.c" +break; case 310: -#line 840 "asmparse.y" -{ yyval.string = newString(COR_CTOR_METHOD_NAME); } break; + if (!yytrial) +#line 839 "asmparse.y" +{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } +#line 7757 "asmparse.cpp.tab.c" +break; case 311: -#line 841 "asmparse.y" -{ yyval.string = newString(COR_CCTOR_METHOD_NAME); } break; -case 312: + if (!yytrial) #line 842 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; +{ yyval.string = newString(COR_CTOR_METHOD_NAME); } +#line 7763 "asmparse.cpp.tab.c" +break; +case 312: + if (!yytrial) +#line 843 "asmparse.y" +{ yyval.string = newString(COR_CCTOR_METHOD_NAME); } +#line 7769 "asmparse.cpp.tab.c" +break; case 313: -#line 845 "asmparse.y" -{ yyval.int32 = 0; } break; + if (!yytrial) +#line 844 "asmparse.y" +{ yyval.string = yyvsp[0].string; } +#line 7775 "asmparse.cpp.tab.c" +break; case 314: -#line 846 "asmparse.y" -{ yyval.int32 = yypvt[-3].int32 | pdIn; } break; -case 315: + if (!yytrial) #line 847 "asmparse.y" -{ yyval.int32 = yypvt[-3].int32 | pdOut; } break; -case 316: +{ yyval.int32 = 0; } +#line 7781 "asmparse.cpp.tab.c" +break; +case 315: + if (!yytrial) #line 848 "asmparse.y" -{ yyval.int32 = yypvt[-3].int32 | pdOptional; } break; -case 317: +{ yyval.int32 = yyvsp[-3].int32 | pdIn; } +#line 7787 "asmparse.cpp.tab.c" +break; +case 316: + if (!yytrial) #line 849 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 + 1; } break; +{ yyval.int32 = yyvsp[-3].int32 | pdOut; } +#line 7793 "asmparse.cpp.tab.c" +break; +case 317: + if (!yytrial) +#line 850 "asmparse.y" +{ yyval.int32 = yyvsp[-3].int32 | pdOptional; } +#line 7799 "asmparse.cpp.tab.c" +break; case 318: -#line 852 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } break; + if (!yytrial) +#line 851 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32 + 1; } +#line 7805 "asmparse.cpp.tab.c" +break; case 319: -#line 853 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miNative); } break; -case 320: + if (!yytrial) #line 854 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miIL); } break; -case 321: +{ yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } +#line 7811 "asmparse.cpp.tab.c" +break; +case 320: + if (!yytrial) #line 855 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miOPTIL); } break; -case 322: +{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } +#line 7817 "asmparse.cpp.tab.c" +break; +case 321: + if (!yytrial) #line 856 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFFB) | miManaged); } break; -case 323: +{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } +#line 7823 "asmparse.cpp.tab.c" +break; +case 322: + if (!yytrial) #line 857 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFFB) | miUnmanaged); } break; -case 324: +{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } +#line 7829 "asmparse.cpp.tab.c" +break; +case 323: + if (!yytrial) #line 858 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miForwardRef); } break; -case 325: +{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } +#line 7835 "asmparse.cpp.tab.c" +break; +case 324: + if (!yytrial) #line 859 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miPreserveSig); } break; -case 326: +{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } +#line 7841 "asmparse.cpp.tab.c" +break; +case 325: + if (!yytrial) #line 860 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miRuntime); } break; -case 327: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } +#line 7847 "asmparse.cpp.tab.c" +break; +case 326: + if (!yytrial) #line 861 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miInternalCall); } break; -case 328: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } +#line 7853 "asmparse.cpp.tab.c" +break; +case 327: + if (!yytrial) #line 862 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miSynchronized); } break; -case 329: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } +#line 7859 "asmparse.cpp.tab.c" +break; +case 328: + if (!yytrial) #line 863 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miNoInlining); } break; -case 330: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } +#line 7865 "asmparse.cpp.tab.c" +break; +case 329: + if (!yytrial) #line 864 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miAggressiveInlining); } break; -case 331: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } +#line 7871 "asmparse.cpp.tab.c" +break; +case 330: + if (!yytrial) #line 865 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miNoOptimization); } break; -case 332: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } +#line 7877 "asmparse.cpp.tab.c" +break; +case 331: + if (!yytrial) #line 866 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miAggressiveOptimization); } break; -case 333: +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } +#line 7883 "asmparse.cpp.tab.c" +break; +case 332: + if (!yytrial) #line 867 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yypvt[-1].int32); } break; +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } +#line 7889 "asmparse.cpp.tab.c" +break; +case 333: + if (!yytrial) +#line 868 "asmparse.y" +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } +#line 7895 "asmparse.cpp.tab.c" +break; case 334: -#line 870 "asmparse.y" + if (!yytrial) +#line 869 "asmparse.y" +{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } +#line 7901 "asmparse.cpp.tab.c" +break; +case 335: + if (!yytrial) +#line 872 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; - } break; -case 337: -#line 878 "asmparse.y" -{ PASM->EmitByte(yypvt[-0].int32); } break; + } +#line 7908 "asmparse.cpp.tab.c" +break; case 338: -#line 879 "asmparse.y" -{ delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } break; -case 339: + if (!yytrial) #line 880 "asmparse.y" -{ PASM->EmitMaxStack(yypvt[-0].int32); } break; -case 340: +{ PASM->EmitByte(yyvsp[0].int32); } +#line 7914 "asmparse.cpp.tab.c" +break; +case 339: + if (!yytrial) #line 881 "asmparse.y" -{ PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yypvt[-1].binstr)); - } break; +{ delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } +#line 7920 "asmparse.cpp.tab.c" +break; +case 340: + if (!yytrial) +#line 882 "asmparse.y" +{ PASM->EmitMaxStack(yyvsp[0].int32); } +#line 7926 "asmparse.cpp.tab.c" +break; case 341: + if (!yytrial) #line 883 "asmparse.y" -{ PASM->EmitZeroInit(); - PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yypvt[-1].binstr)); - } break; +{ PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); + } +#line 7933 "asmparse.cpp.tab.c" +break; case 342: -#line 886 "asmparse.y" -{ PASM->EmitEntryPoint(); } break; + if (!yytrial) +#line 885 "asmparse.y" +{ PASM->EmitZeroInit(); + PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); + } +#line 7941 "asmparse.cpp.tab.c" +break; case 343: -#line 887 "asmparse.y" -{ PASM->EmitZeroInit(); } break; -case 346: -#line 890 "asmparse.y" -{ PASM->AddLabel(PASM->m_CurPC,yypvt[-1].string); /*PASM->EmitLabel($1);*/ } break; -case 352: -#line 896 "asmparse.y" + if (!yytrial) +#line 888 "asmparse.y" +{ PASM->EmitEntryPoint(); } +#line 7947 "asmparse.cpp.tab.c" +break; +case 344: + if (!yytrial) +#line 889 "asmparse.y" +{ PASM->EmitZeroInit(); } +#line 7953 "asmparse.cpp.tab.c" +break; +case 347: + if (!yytrial) +#line 892 "asmparse.y" +{ PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } +#line 7959 "asmparse.cpp.tab.c" +break; +case 353: + if (!yytrial) +#line 898 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { - PASM->m_pCurMethod->m_dwExportOrdinal = yypvt[-1].int32; + PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-1].int32; PASM->m_pCurMethod->m_szExportAlias = NULL; if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yypvt[-1].int32 + 0x8000); + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[-1].int32 + 0x8000); } else PASM->report->warn("Duplicate .export directive, ignored\n"); - } break; -case 353: -#line 906 "asmparse.y" + } +#line 7974 "asmparse.cpp.tab.c" +break; +case 354: + if (!yytrial) +#line 908 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { - PASM->m_pCurMethod->m_dwExportOrdinal = yypvt[-3].int32; - PASM->m_pCurMethod->m_szExportAlias = yypvt[-0].string; + PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-3].int32; + PASM->m_pCurMethod->m_szExportAlias = yyvsp[0].string; if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yypvt[-3].int32 + 0x8000); + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[-3].int32 + 0x8000); } else PASM->report->warn("Duplicate .export directive, ignored\n"); - } break; -case 354: -#line 916 "asmparse.y" -{ PASM->m_pCurMethod->m_wVTEntry = (WORD)yypvt[-2].int32; - PASM->m_pCurMethod->m_wVTSlot = (WORD)yypvt[-0].int32; } break; + } +#line 7989 "asmparse.cpp.tab.c" +break; case 355: -#line 919 "asmparse.y" -{ PASM->AddMethodImpl(yypvt[-2].token,yypvt[-0].string,NULL,NULL,NULL,NULL); } break; + if (!yytrial) +#line 918 "asmparse.y" +{ PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; + PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } +#line 7996 "asmparse.cpp.tab.c" +break; case 356: -#line 922 "asmparse.y" -{ PASM->AddMethodImpl(yypvt[-6].token,yypvt[-4].string, - (yypvt[-3].int32==0 ? parser->MakeSig(yypvt[-8].int32,yypvt[-7].binstr,yypvt[-1].binstr) : - parser->MakeSig(yypvt[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-7].binstr,yypvt[-1].binstr,yypvt[-3].int32)) + if (!yytrial) +#line 921 "asmparse.y" +{ PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } +#line 8002 "asmparse.cpp.tab.c" +break; +case 357: + if (!yytrial) +#line 924 "asmparse.y" +{ PASM->AddMethodImpl(yyvsp[-6].token,yyvsp[-4].string, + (yyvsp[-3].int32==0 ? parser->MakeSig(yyvsp[-8].int32,yyvsp[-7].binstr,yyvsp[-1].binstr) : + parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32)) ,NULL,NULL,NULL); PASM->ResetArgNameList(); - } break; -case 358: -#line 929 "asmparse.y" -{ if((yypvt[-1].int32 > 0) && (yypvt[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yypvt[-1].int32-1].CAList(); + } +#line 8013 "asmparse.cpp.tab.c" +break; +case 359: + if (!yytrial) +#line 931 "asmparse.y" +{ if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yyvsp[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); - } break; -case 359: -#line 934 "asmparse.y" -{ int n = PASM->m_pCurMethod->FindTyPar(yypvt[-0].string); + } +#line 8023 "asmparse.cpp.tab.c" +break; +case 360: + if (!yytrial) +#line 936 "asmparse.y" +{ int n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else - PASM->report->error("Type parameter '%s' undefined\n",yypvt[-0].string); - } break; -case 360: -#line 940 "asmparse.y" -{ PASM->m_pCurMethod->AddGenericParamConstraint(yypvt[-3].int32, 0, yypvt[-0].token); } break; + PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); + } +#line 8034 "asmparse.cpp.tab.c" +break; case 361: -#line 941 "asmparse.y" -{ PASM->m_pCurMethod->AddGenericParamConstraint(0, yypvt[-2].string, yypvt[-0].token); } break; + if (!yytrial) +#line 942 "asmparse.y" +{ PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } +#line 8040 "asmparse.cpp.tab.c" +break; case 362: -#line 944 "asmparse.y" -{ if( yypvt[-2].int32 ) { - ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yypvt[-2].int32 - 1); + if (!yytrial) +#line 943 "asmparse.y" +{ PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } +#line 8046 "asmparse.cpp.tab.c" +break; +case 363: + if (!yytrial) +#line 946 "asmparse.y" +{ if( yyvsp[-2].int32 ) { + ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yyvsp[-2].int32 - 1); if(pAN) { PASM->m_pCustomDescrList = &(pAN->CustDList); - pAN->pValue = yypvt[-0].binstr; + pAN->pValue = yyvsp[0].binstr; } else { PASM->m_pCustomDescrList = NULL; - if(yypvt[-0].binstr) delete yypvt[-0].binstr; + if(yyvsp[0].binstr) delete yyvsp[0].binstr; } } else { PASM->m_pCustomDescrList = &(PASM->m_pCurMethod->m_RetCustDList); - PASM->m_pCurMethod->m_pRetValue = yypvt[-0].binstr; + PASM->m_pCurMethod->m_pRetValue = yyvsp[0].binstr; } PASM->m_tkCurrentCVOwner = 0; - } break; -case 363: -#line 964 "asmparse.y" -{ PASM->m_pCurMethod->CloseScope(); } break; + } +#line 8069 "asmparse.cpp.tab.c" +break; case 364: -#line 967 "asmparse.y" -{ PASM->m_pCurMethod->OpenScope(); } break; -case 368: -#line 978 "asmparse.y" -{ PASM->m_SEHD->tryTo = PASM->m_CurPC; } break; + if (!yytrial) +#line 966 "asmparse.y" +{ PASM->m_pCurMethod->CloseScope(); } +#line 8075 "asmparse.cpp.tab.c" +break; +case 365: + if (!yytrial) +#line 969 "asmparse.y" +{ PASM->m_pCurMethod->OpenScope(); } +#line 8081 "asmparse.cpp.tab.c" +break; case 369: -#line 979 "asmparse.y" -{ PASM->SetTryLabels(yypvt[-2].string, yypvt[-0].string); } break; -case 370: + if (!yytrial) #line 980 "asmparse.y" -{ if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yypvt[-2].int32; - PASM->m_SEHD->tryTo = yypvt[-0].int32;} } break; +{ PASM->m_SEHD->tryTo = PASM->m_CurPC; } +#line 8087 "asmparse.cpp.tab.c" +break; +case 370: + if (!yytrial) +#line 981 "asmparse.y" +{ PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } +#line 8093 "asmparse.cpp.tab.c" +break; case 371: -#line 984 "asmparse.y" -{ PASM->NewSEHDescriptor(); - PASM->m_SEHD->tryFrom = PASM->m_CurPC; } break; + if (!yytrial) +#line 982 "asmparse.y" +{ if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; + PASM->m_SEHD->tryTo = yyvsp[0].int32;} } +#line 8100 "asmparse.cpp.tab.c" +break; case 372: -#line 989 "asmparse.y" -{ PASM->EmitTry(); } break; + if (!yytrial) +#line 986 "asmparse.y" +{ PASM->NewSEHDescriptor(); + PASM->m_SEHD->tryFrom = PASM->m_CurPC; } +#line 8107 "asmparse.cpp.tab.c" +break; case 373: -#line 990 "asmparse.y" -{ PASM->EmitTry(); } break; -case 374: + if (!yytrial) #line 991 "asmparse.y" -{ PASM->EmitTry(); } break; -case 375: +{ PASM->EmitTry(); } +#line 8113 "asmparse.cpp.tab.c" +break; +case 374: + if (!yytrial) #line 992 "asmparse.y" -{ PASM->EmitTry(); } break; +{ PASM->EmitTry(); } +#line 8119 "asmparse.cpp.tab.c" +break; +case 375: + if (!yytrial) +#line 993 "asmparse.y" +{ PASM->EmitTry(); } +#line 8125 "asmparse.cpp.tab.c" +break; case 376: -#line 996 "asmparse.y" -{ PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; + if (!yytrial) +#line 994 "asmparse.y" +{ PASM->EmitTry(); } +#line 8131 "asmparse.cpp.tab.c" +break; case 377: -#line 997 "asmparse.y" -{ PASM->SetFilterLabel(yypvt[-0].string); - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; + if (!yytrial) +#line 998 "asmparse.y" +{ PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8137 "asmparse.cpp.tab.c" +break; case 378: + if (!yytrial) #line 999 "asmparse.y" -{ PASM->m_SEHD->sehFilter = yypvt[-0].int32; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; +{ PASM->SetFilterLabel(yyvsp[0].string); + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8144 "asmparse.cpp.tab.c" +break; case 379: -#line 1003 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; - PASM->m_SEHD->sehFilter = PASM->m_CurPC; } break; + if (!yytrial) +#line 1001 "asmparse.y" +{ PASM->m_SEHD->sehFilter = yyvsp[0].int32; + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8151 "asmparse.cpp.tab.c" +break; case 380: -#line 1007 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; - PASM->SetCatchClass(yypvt[-0].token); - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; + if (!yytrial) +#line 1005 "asmparse.y" +{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; + PASM->m_SEHD->sehFilter = PASM->m_CurPC; } +#line 8158 "asmparse.cpp.tab.c" +break; case 381: -#line 1012 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; + if (!yytrial) +#line 1009 "asmparse.y" +{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; + PASM->SetCatchClass(yyvsp[0].token); + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8166 "asmparse.cpp.tab.c" +break; case 382: -#line 1016 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; + if (!yytrial) +#line 1014 "asmparse.y" +{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8173 "asmparse.cpp.tab.c" +break; case 383: -#line 1020 "asmparse.y" -{ PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } break; + if (!yytrial) +#line 1018 "asmparse.y" +{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 8180 "asmparse.cpp.tab.c" +break; case 384: -#line 1021 "asmparse.y" -{ PASM->SetHandlerLabels(yypvt[-2].string, yypvt[-0].string); } break; -case 385: + if (!yytrial) #line 1022 "asmparse.y" -{ PASM->m_SEHD->sehHandler = yypvt[-2].int32; - PASM->m_SEHD->sehHandlerTo = yypvt[-0].int32; } break; -case 387: -#line 1030 "asmparse.y" -{ PASM->EmitDataLabel(yypvt[-1].string); } break; -case 389: -#line 1034 "asmparse.y" -{ PASM->SetDataSection(); } break; +{ PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } +#line 8186 "asmparse.cpp.tab.c" +break; +case 385: + if (!yytrial) +#line 1023 "asmparse.y" +{ PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } +#line 8192 "asmparse.cpp.tab.c" +break; +case 386: + if (!yytrial) +#line 1024 "asmparse.y" +{ PASM->m_SEHD->sehHandler = yyvsp[-2].int32; + PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } +#line 8199 "asmparse.cpp.tab.c" +break; +case 388: + if (!yytrial) +#line 1032 "asmparse.y" +{ PASM->EmitDataLabel(yyvsp[-1].string); } +#line 8205 "asmparse.cpp.tab.c" +break; case 390: -#line 1035 "asmparse.y" -{ PASM->SetTLSSection(); } break; -case 391: + if (!yytrial) #line 1036 "asmparse.y" -{ PASM->SetILSection(); } break; -case 396: -#line 1047 "asmparse.y" -{ yyval.int32 = 1; } break; +{ PASM->SetDataSection(); } +#line 8211 "asmparse.cpp.tab.c" +break; +case 391: + if (!yytrial) +#line 1037 "asmparse.y" +{ PASM->SetTLSSection(); } +#line 8217 "asmparse.cpp.tab.c" +break; +case 392: + if (!yytrial) +#line 1038 "asmparse.y" +{ PASM->SetILSection(); } +#line 8223 "asmparse.cpp.tab.c" +break; case 397: -#line 1048 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32; - if(yypvt[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yypvt[-1].int32); - if(!PASM->OnErrGo) yyval.int32 = 1; }} break; + if (!yytrial) +#line 1049 "asmparse.y" +{ yyval.int32 = 1; } +#line 8229 "asmparse.cpp.tab.c" +break; case 398: -#line 1053 "asmparse.y" -{ PASM->EmitDataString(yypvt[-1].binstr); } break; + if (!yytrial) +#line 1050 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32; + if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); + if(!PASM->OnErrGo) yyval.int32 = 1; }} +#line 8237 "asmparse.cpp.tab.c" +break; case 399: -#line 1054 "asmparse.y" -{ PASM->EmitDD(yypvt[-1].string); } break; -case 400: + if (!yytrial) #line 1055 "asmparse.y" -{ PASM->EmitData(yypvt[-1].binstr->ptr(),yypvt[-1].binstr->length()); } break; +{ PASM->EmitDataString(yyvsp[-1].binstr); } +#line 8243 "asmparse.cpp.tab.c" +break; +case 400: + if (!yytrial) +#line 1056 "asmparse.y" +{ PASM->EmitDD(yyvsp[-1].string); } +#line 8249 "asmparse.cpp.tab.c" +break; case 401: + if (!yytrial) #line 1057 "asmparse.y" -{ float f = (float) (*yypvt[-2].float64); float* p = new (nothrow) float[yypvt[-0].int32]; - if(p != NULL) { - for(int i=0; i < yypvt[-0].int32; i++) p[i] = f; - PASM->EmitData(p, sizeof(float)*yypvt[-0].int32); delete yypvt[-2].float64; delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(float)*yypvt[-0].int32); } break; +{ PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } +#line 8255 "asmparse.cpp.tab.c" +break; case 402: -#line 1064 "asmparse.y" -{ double* p = new (nothrow) double[yypvt[-0].int32]; + if (!yytrial) +#line 1059 "asmparse.y" +{ float f = (float) (*yyvsp[-2].float64); float* p = new (nothrow) float[yyvsp[0].int32]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(double)*yypvt[-0].int32); delete yypvt[-2].float64; delete [] p; + for(int i=0; i < yyvsp[0].int32; i++) p[i] = f; + PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(double)*yypvt[-0].int32); } break; + sizeof(float)*yyvsp[0].int32); } +#line 8266 "asmparse.cpp.tab.c" +break; case 403: -#line 1071 "asmparse.y" -{ __int64* p = new (nothrow) __int64[yypvt[-0].int32]; + if (!yytrial) +#line 1066 "asmparse.y" +{ double* p = new (nothrow) double[yyvsp[0].int32]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(__int64)*yypvt[-0].int32); delete yypvt[-2].int64; delete [] p; + for(int i=0; iEmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int64)*yypvt[-0].int32); } break; + sizeof(double)*yyvsp[0].int32); } +#line 8277 "asmparse.cpp.tab.c" +break; case 404: -#line 1078 "asmparse.y" -{ __int32* p = new (nothrow) __int32[yypvt[-0].int32]; + if (!yytrial) +#line 1073 "asmparse.y" +{ __int64* p = new (nothrow) __int64[yyvsp[0].int32]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(__int32)*yypvt[-0].int32); delete [] p; + for(int i=0; iEmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int32)*yypvt[-0].int32); } break; + sizeof(__int64)*yyvsp[0].int32); } +#line 8288 "asmparse.cpp.tab.c" +break; case 405: -#line 1085 "asmparse.y" -{ __int16 i = (__int16) yypvt[-2].int32; FAIL_UNLESS(i == yypvt[-2].int32, ("Value %d too big\n", yypvt[-2].int32)); - __int16* p = new (nothrow) __int16[yypvt[-0].int32]; + if (!yytrial) +#line 1080 "asmparse.y" +{ __int32* p = new (nothrow) __int32[yyvsp[0].int32]; if(p != NULL) { - for(int j=0; jEmitData(p, sizeof(__int16)*yypvt[-0].int32); delete [] p; + for(int i=0; iEmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int16)*yypvt[-0].int32); } break; + sizeof(__int32)*yyvsp[0].int32); } +#line 8299 "asmparse.cpp.tab.c" +break; case 406: -#line 1093 "asmparse.y" -{ __int8 i = (__int8) yypvt[-2].int32; FAIL_UNLESS(i == yypvt[-2].int32, ("Value %d too big\n", yypvt[-2].int32)); - __int8* p = new (nothrow) __int8[yypvt[-0].int32]; + if (!yytrial) +#line 1087 "asmparse.y" +{ __int16 i = (__int16) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); + __int16* p = new (nothrow) __int16[yyvsp[0].int32]; if(p != NULL) { - for(int j=0; jEmitData(p, sizeof(__int8)*yypvt[-0].int32); delete [] p; + for(int j=0; jEmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int8)*yypvt[-0].int32); } break; + sizeof(__int16)*yyvsp[0].int32); } +#line 8311 "asmparse.cpp.tab.c" +break; case 407: -#line 1100 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(float)*yypvt[-0].int32); } break; + if (!yytrial) +#line 1095 "asmparse.y" +{ __int8 i = (__int8) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); + __int8* p = new (nothrow) __int8[yyvsp[0].int32]; + if(p != NULL) { + for(int j=0; jEmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(__int8)*yyvsp[0].int32); } +#line 8323 "asmparse.cpp.tab.c" +break; case 408: -#line 1101 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(double)*yypvt[-0].int32); } break; -case 409: + if (!yytrial) #line 1102 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int64)*yypvt[-0].int32); } break; -case 410: +{ PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } +#line 8329 "asmparse.cpp.tab.c" +break; +case 409: + if (!yytrial) #line 1103 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int32)*yypvt[-0].int32); } break; -case 411: +{ PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } +#line 8335 "asmparse.cpp.tab.c" +break; +case 410: + if (!yytrial) #line 1104 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int16)*yypvt[-0].int32); } break; -case 412: +{ PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } +#line 8341 "asmparse.cpp.tab.c" +break; +case 411: + if (!yytrial) #line 1105 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int8)*yypvt[-0].int32); } break; +{ PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } +#line 8347 "asmparse.cpp.tab.c" +break; +case 412: + if (!yytrial) +#line 1106 "asmparse.y" +{ PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } +#line 8353 "asmparse.cpp.tab.c" +break; case 413: -#line 1109 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*yypvt[-1].float64); - yyval.binstr->appendInt32(*((__int32*)&f)); delete yypvt[-1].float64; } break; + if (!yytrial) +#line 1107 "asmparse.y" +{ PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } +#line 8359 "asmparse.cpp.tab.c" +break; case 414: -#line 1112 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yypvt[-1].float64); delete yypvt[-1].float64; } break; + if (!yytrial) +#line 1111 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*yyvsp[-1].float64); + yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } +#line 8367 "asmparse.cpp.tab.c" +break; case 415: + if (!yytrial) #line 1114 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } +#line 8374 "asmparse.cpp.tab.c" +break; case 416: + if (!yytrial) #line 1116 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 8381 "asmparse.cpp.tab.c" +break; case 417: + if (!yytrial) #line 1118 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); - yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 8388 "asmparse.cpp.tab.c" +break; case 418: + if (!yytrial) #line 1120 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 8395 "asmparse.cpp.tab.c" +break; case 419: + if (!yytrial) #line 1122 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); - yyval.binstr->appendInt16(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 8402 "asmparse.cpp.tab.c" +break; case 420: + if (!yytrial) #line 1124 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); - yyval.binstr->appendInt8(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 8409 "asmparse.cpp.tab.c" +break; case 421: + if (!yytrial) #line 1126 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 8416 "asmparse.cpp.tab.c" +break; case 422: + if (!yytrial) #line 1128 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 8423 "asmparse.cpp.tab.c" +break; case 423: + if (!yytrial) #line 1130 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 8430 "asmparse.cpp.tab.c" +break; case 424: + if (!yytrial) #line 1132 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 8437 "asmparse.cpp.tab.c" +break; case 425: + if (!yytrial) #line 1134 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 8444 "asmparse.cpp.tab.c" +break; case 426: + if (!yytrial) #line 1136 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 8451 "asmparse.cpp.tab.c" +break; case 427: + if (!yytrial) #line 1138 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 8458 "asmparse.cpp.tab.c" +break; case 428: + if (!yytrial) #line 1140 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 8465 "asmparse.cpp.tab.c" +break; case 429: + if (!yytrial) #line 1142 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); - yyval.binstr->appendInt16(yypvt[-1].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 8472 "asmparse.cpp.tab.c" +break; case 430: + if (!yytrial) #line 1144 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); - yyval.binstr->appendInt8(yypvt[-1].int32);} break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 8479 "asmparse.cpp.tab.c" +break; case 431: + if (!yytrial) #line 1146 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); - yyval.binstr->append(yypvt[-1].binstr); delete yypvt[-1].binstr;} break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yyvsp[-1].int32);} +#line 8486 "asmparse.cpp.tab.c" +break; case 432: -#line 1150 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1148 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); + yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} +#line 8493 "asmparse.cpp.tab.c" +break; case 433: -#line 1153 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1152 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 8499 "asmparse.cpp.tab.c" +break; case 434: -#line 1154 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1155 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8505 "asmparse.cpp.tab.c" +break; case 435: -#line 1157 "asmparse.y" -{ __int8 i = (__int8) yypvt[-0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } break; + if (!yytrial) +#line 1156 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 8511 "asmparse.cpp.tab.c" +break; case 436: -#line 1158 "asmparse.y" -{ __int8 i = (__int8) yypvt[-0].int32; yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(i); } break; + if (!yytrial) +#line 1159 "asmparse.y" +{ __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } +#line 8517 "asmparse.cpp.tab.c" +break; case 437: -#line 1162 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1160 "asmparse.y" +{ __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } +#line 8523 "asmparse.cpp.tab.c" +break; case 438: -#line 1163 "asmparse.y" -{ yyval.binstr = BinStrToUnicode(yypvt[-0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} break; -case 439: + if (!yytrial) #line 1164 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); - yyval.binstr->appendInt32(0); } break; +{ yyval.binstr = yyvsp[0].binstr; } +#line 8529 "asmparse.cpp.tab.c" +break; +case 439: + if (!yytrial) +#line 1165 "asmparse.y" +{ yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} +#line 8535 "asmparse.cpp.tab.c" +break; case 440: -#line 1169 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1166 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); + yyval.binstr->appendInt32(0); } +#line 8542 "asmparse.cpp.tab.c" +break; case 441: -#line 1170 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } break; -case 442: + if (!yytrial) #line 1171 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); - AppendStringWithLength(yyval.binstr,yypvt[-1].string); delete [] yypvt[-1].string;} break; +{ yyval.binstr = yyvsp[0].binstr; } +#line 8548 "asmparse.cpp.tab.c" +break; +case 442: + if (!yytrial) +#line 1172 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } +#line 8554 "asmparse.cpp.tab.c" +break; case 443: + if (!yytrial) #line 1173 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength(yyval.binstr,yypvt[-1].string); delete [] yypvt[-1].string;} break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); + AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} +#line 8561 "asmparse.cpp.tab.c" +break; case 444: + if (!yytrial) #line 1175 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-1].token));} break; + AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} +#line 8568 "asmparse.cpp.tab.c" +break; case 445: + if (!yytrial) #line 1177 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} +#line 8575 "asmparse.cpp.tab.c" +break; case 446: -#line 1178 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} break; + if (!yytrial) +#line 1179 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } +#line 8581 "asmparse.cpp.tab.c" +break; case 447: + if (!yytrial) #line 1180 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_R4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} +#line 8587 "asmparse.cpp.tab.c" +break; case 448: -#line 1184 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_R8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1182 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_R4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8595 "asmparse.cpp.tab.c" +break; case 449: -#line 1188 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1186 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_R8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8603 "asmparse.cpp.tab.c" +break; case 450: -#line 1192 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1190 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8611 "asmparse.cpp.tab.c" +break; case 451: -#line 1196 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1194 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8619 "asmparse.cpp.tab.c" +break; case 452: -#line 1200 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1198 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8627 "asmparse.cpp.tab.c" +break; case 453: -#line 1204 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1202 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8635 "asmparse.cpp.tab.c" +break; case 454: -#line 1208 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1206 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8643 "asmparse.cpp.tab.c" +break; case 455: -#line 1212 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1210 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8651 "asmparse.cpp.tab.c" +break; case 456: -#line 1216 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1214 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8659 "asmparse.cpp.tab.c" +break; case 457: -#line 1220 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1218 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8667 "asmparse.cpp.tab.c" +break; case 458: -#line 1224 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1222 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8675 "asmparse.cpp.tab.c" +break; case 459: -#line 1228 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1226 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8683 "asmparse.cpp.tab.c" +break; case 460: -#line 1232 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1230 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8691 "asmparse.cpp.tab.c" +break; case 461: -#line 1236 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1234 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8699 "asmparse.cpp.tab.c" +break; case 462: -#line 1240 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1238 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8707 "asmparse.cpp.tab.c" +break; case 463: -#line 1244 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1242 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8715 "asmparse.cpp.tab.c" +break; case 464: -#line 1248 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1246 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8723 "asmparse.cpp.tab.c" +break; case 465: -#line 1252 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); - yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; + if (!yytrial) +#line 1250 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8731 "asmparse.cpp.tab.c" +break; case 466: -#line 1258 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1254 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); + yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8739 "asmparse.cpp.tab.c" +break; case 467: -#line 1259 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - float f = (float) (*yypvt[-0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yypvt[-0].float64; } break; + if (!yytrial) +#line 1260 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8745 "asmparse.cpp.tab.c" +break; case 468: + if (!yytrial) #line 1261 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - yyval.binstr->appendInt32(yypvt[-0].int32); } break; +{ yyval.binstr = yyvsp[-1].binstr; + float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } +#line 8752 "asmparse.cpp.tab.c" +break; case 469: -#line 1265 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1263 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 8759 "asmparse.cpp.tab.c" +break; case 470: -#line 1266 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yypvt[-0].float64); delete yypvt[-0].float64; } break; + if (!yytrial) +#line 1267 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8765 "asmparse.cpp.tab.c" +break; case 471: + if (!yytrial) #line 1268 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yypvt[-0].int64); delete yypvt[-0].int64; } break; +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } +#line 8772 "asmparse.cpp.tab.c" +break; case 472: -#line 1272 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1270 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } +#line 8779 "asmparse.cpp.tab.c" +break; case 473: -#line 1273 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yypvt[-0].int64); delete yypvt[-0].int64; } break; + if (!yytrial) +#line 1274 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8785 "asmparse.cpp.tab.c" +break; case 474: -#line 1277 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1275 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } +#line 8792 "asmparse.cpp.tab.c" +break; case 475: -#line 1278 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt32(yypvt[-0].int32);} break; + if (!yytrial) +#line 1279 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8798 "asmparse.cpp.tab.c" +break; case 476: -#line 1281 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1280 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} +#line 8804 "asmparse.cpp.tab.c" +break; case 477: -#line 1282 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt16(yypvt[-0].int32);} break; + if (!yytrial) +#line 1283 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8810 "asmparse.cpp.tab.c" +break; case 478: -#line 1285 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1284 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} +#line 8816 "asmparse.cpp.tab.c" +break; case 479: -#line 1286 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(yypvt[-0].int32); } break; + if (!yytrial) +#line 1287 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8822 "asmparse.cpp.tab.c" +break; case 480: -#line 1289 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1288 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } +#line 8828 "asmparse.cpp.tab.c" +break; case 481: -#line 1290 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - yyval.binstr->appendInt8(yypvt[-0].int32);} break; + if (!yytrial) +#line 1291 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8834 "asmparse.cpp.tab.c" +break; case 482: -#line 1294 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1292 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt8(yyvsp[0].int32);} +#line 8841 "asmparse.cpp.tab.c" +break; case 483: -#line 1295 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(0xFF); } break; -case 484: + if (!yytrial) #line 1296 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - AppendStringWithLength(yyval.binstr,yypvt[-0].string); delete [] yypvt[-0].string;} break; +{ yyval.binstr = new BinStr(); } +#line 8847 "asmparse.cpp.tab.c" +break; +case 484: + if (!yytrial) +#line 1297 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 8853 "asmparse.cpp.tab.c" +break; case 485: -#line 1300 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1298 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} +#line 8860 "asmparse.cpp.tab.c" +break; case 486: -#line 1301 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(0xFF); } break; -case 487: + if (!yytrial) #line 1302 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; - AppendStringWithLength(yyval.binstr,yypvt[-0].string); delete [] yypvt[-0].string;} break; +{ yyval.binstr = new BinStr(); } +#line 8866 "asmparse.cpp.tab.c" +break; +case 487: + if (!yytrial) +#line 1303 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 8872 "asmparse.cpp.tab.c" +break; case 488: + if (!yytrial) #line 1304 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-0].token));} break; +{ yyval.binstr = yyvsp[-2].binstr; + AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} +#line 8879 "asmparse.cpp.tab.c" +break; case 489: -#line 1308 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1306 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} +#line 8886 "asmparse.cpp.tab.c" +break; case 490: -#line 1309 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; + if (!yytrial) +#line 1310 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8892 "asmparse.cpp.tab.c" +break; case 491: -#line 1313 "asmparse.y" + if (!yytrial) +#line 1311 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 8898 "asmparse.cpp.tab.c" +break; +case 492: + if (!yytrial) +#line 1315 "asmparse.y" { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; - PASM->m_lastArgName = NULL; } break; -case 492: -#line 1319 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + PASM->m_lastArgName = NULL; } +#line 8907 "asmparse.cpp.tab.c" +break; case 493: -#line 1322 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1321 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8913 "asmparse.cpp.tab.c" +break; case 494: -#line 1325 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1324 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8919 "asmparse.cpp.tab.c" +break; case 495: -#line 1328 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1327 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8925 "asmparse.cpp.tab.c" +break; case 496: -#line 1331 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1330 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8931 "asmparse.cpp.tab.c" +break; case 497: -#line 1334 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1333 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8937 "asmparse.cpp.tab.c" +break; case 498: -#line 1337 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); + if (!yytrial) +#line 1336 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8943 "asmparse.cpp.tab.c" +break; +case 499: + if (!yytrial) +#line 1339 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); if((!PASM->OnErrGo)&& - ((yypvt[-0].opcode == CEE_NEWOBJ)|| - (yypvt[-0].opcode == CEE_CALLVIRT))) + ((yyvsp[0].opcode == CEE_NEWOBJ)|| + (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; - } break; -case 499: -#line 1345 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + } +#line 8954 "asmparse.cpp.tab.c" +break; case 500: -#line 1348 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1347 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8960 "asmparse.cpp.tab.c" +break; case 501: -#line 1351 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1350 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8966 "asmparse.cpp.tab.c" +break; case 502: -#line 1354 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1353 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8972 "asmparse.cpp.tab.c" +break; case 503: -#line 1357 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } break; + if (!yytrial) +#line 1356 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8978 "asmparse.cpp.tab.c" +break; case 504: -#line 1360 "asmparse.y" -{ yyval.instr = SetupInstr(yypvt[-0].opcode); } break; + if (!yytrial) +#line 1359 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } +#line 8984 "asmparse.cpp.tab.c" +break; case 505: -#line 1363 "asmparse.y" -{ yyval.instr = yypvt[-1].instr; bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1362 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 8990 "asmparse.cpp.tab.c" +break; case 506: -#line 1367 "asmparse.y" -{ PASM->EmitOpcode(yypvt[-0].instr); } break; + if (!yytrial) +#line 1365 "asmparse.y" +{ yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } +#line 8996 "asmparse.cpp.tab.c" +break; case 507: -#line 1368 "asmparse.y" -{ PASM->EmitInstrVar(yypvt[-1].instr, yypvt[-0].int32); } break; -case 508: + if (!yytrial) #line 1369 "asmparse.y" -{ PASM->EmitInstrVarByName(yypvt[-1].instr, yypvt[-0].string); } break; -case 509: +{ PASM->EmitOpcode(yyvsp[0].instr); } +#line 9002 "asmparse.cpp.tab.c" +break; +case 508: + if (!yytrial) #line 1370 "asmparse.y" -{ PASM->EmitInstrI(yypvt[-1].instr, yypvt[-0].int32); } break; -case 510: +{ PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9008 "asmparse.cpp.tab.c" +break; +case 509: + if (!yytrial) #line 1371 "asmparse.y" -{ PASM->EmitInstrI8(yypvt[-1].instr, yypvt[-0].int64); } break; -case 511: +{ PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } +#line 9014 "asmparse.cpp.tab.c" +break; +case 510: + if (!yytrial) #line 1372 "asmparse.y" -{ PASM->EmitInstrR(yypvt[-1].instr, yypvt[-0].float64); delete (yypvt[-0].float64);} break; -case 512: +{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9020 "asmparse.cpp.tab.c" +break; +case 511: + if (!yytrial) #line 1373 "asmparse.y" -{ double f = (double) (*yypvt[-0].int64); PASM->EmitInstrR(yypvt[-1].instr, &f); } break; -case 513: +{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } +#line 9026 "asmparse.cpp.tab.c" +break; +case 512: + if (!yytrial) #line 1374 "asmparse.y" -{ unsigned L = yypvt[-1].binstr->length(); +{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} +#line 9032 "asmparse.cpp.tab.c" +break; +case 513: + if (!yytrial) +#line 1375 "asmparse.y" +{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } +#line 9038 "asmparse.cpp.tab.c" +break; +case 514: + if (!yytrial) +#line 1376 "asmparse.y" +{ unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); if(L < sizeof(float)) {YYERROR; } else { - double f = (L >= sizeof(double)) ? *((double *)(yypvt[-1].binstr->ptr())) - : (double)(*(float *)(yypvt[-1].binstr->ptr())); - PASM->EmitInstrR(yypvt[-2].instr,&f); } - delete yypvt[-1].binstr; } break; -case 514: -#line 1383 "asmparse.y" -{ PASM->EmitInstrBrOffset(yypvt[-1].instr, yypvt[-0].int32); } break; + double f = (L >= sizeof(double)) ? *((double *)(yyvsp[-1].binstr->ptr())) + : (double)(*(float *)(yyvsp[-1].binstr->ptr())); + PASM->EmitInstrR(yyvsp[-2].instr,&f); } + delete yyvsp[-1].binstr; } +#line 9052 "asmparse.cpp.tab.c" +break; case 515: -#line 1384 "asmparse.y" -{ PASM->EmitInstrBrTarget(yypvt[-1].instr, yypvt[-0].string); } break; + if (!yytrial) +#line 1385 "asmparse.y" +{ PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9058 "asmparse.cpp.tab.c" +break; case 516: + if (!yytrial) #line 1386 "asmparse.y" -{ PASM->SetMemberRefFixup(yypvt[-0].token,PASM->OpcodeLen(yypvt[-1].instr)); - PASM->EmitInstrI(yypvt[-1].instr,yypvt[-0].token); - PASM->m_tkCurrentCVOwner = yypvt[-0].token; - PASM->m_pCustomDescrList = NULL; - iCallConv = 0; - } break; +{ PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } +#line 9064 "asmparse.cpp.tab.c" +break; case 517: -#line 1393 "asmparse.y" -{ yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef(yypvt[-2].token, yypvt[-0].string, yypvt[-3].binstr); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-4].instr)); - PASM->EmitInstrI(yypvt[-4].instr,mr); - PASM->m_tkCurrentCVOwner = mr; + if (!yytrial) +#line 1388 "asmparse.y" +{ PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); + PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); + PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; - } break; + iCallConv = 0; + } +#line 9075 "asmparse.cpp.tab.c" +break; case 518: -#line 1401 "asmparse.y" -{ yypvt[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef(mdTokenNil, yypvt[-0].string, yypvt[-1].binstr); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-2].instr)); - PASM->EmitInstrI(yypvt[-2].instr,mr); + if (!yytrial) +#line 1395 "asmparse.y" +{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); + PASM->EmitInstrI(yyvsp[-4].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; - } break; + } +#line 9087 "asmparse.cpp.tab.c" +break; case 519: -#line 1408 "asmparse.y" -{ mdToken mr = yypvt[-0].token; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); - PASM->EmitInstrI(yypvt[-1].instr,mr); + if (!yytrial) +#line 1403 "asmparse.y" +{ yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); + PASM->EmitInstrI(yyvsp[-2].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; - } break; + } +#line 9099 "asmparse.cpp.tab.c" +break; case 520: -#line 1414 "asmparse.y" -{ mdToken mr = yypvt[-0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); - PASM->EmitInstrI(yypvt[-1].instr,mr); + if (!yytrial) +#line 1410 "asmparse.y" +{ mdToken mr = yyvsp[0].token; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); + PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; - } break; + } +#line 9110 "asmparse.cpp.tab.c" +break; case 521: -#line 1420 "asmparse.y" -{ mdToken mr = yypvt[-0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); - PASM->EmitInstrI(yypvt[-1].instr,mr); + if (!yytrial) +#line 1416 "asmparse.y" +{ mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); + PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; - } break; + } +#line 9121 "asmparse.cpp.tab.c" +break; case 522: -#line 1426 "asmparse.y" -{ PASM->EmitInstrI(yypvt[-1].instr, yypvt[-0].token); - PASM->m_tkCurrentCVOwner = yypvt[-0].token; + if (!yytrial) +#line 1422 "asmparse.y" +{ mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); + PASM->EmitInstrI(yyvsp[-1].instr,mr); + PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; - } break; + } +#line 9132 "asmparse.cpp.tab.c" +break; case 523: -#line 1430 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yypvt[-1].instr, yypvt[-0].binstr,TRUE); } break; + if (!yytrial) +#line 1428 "asmparse.y" +{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); + PASM->m_tkCurrentCVOwner = yyvsp[0].token; + PASM->m_pCustomDescrList = NULL; + } +#line 9141 "asmparse.cpp.tab.c" +break; case 524: + if (!yytrial) #line 1432 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yypvt[-4].instr, yypvt[-1].binstr,FALSE); } break; +{ PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } +#line 9147 "asmparse.cpp.tab.c" +break; case 525: + if (!yytrial) #line 1434 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yypvt[-3].instr, yypvt[-1].binstr,FALSE,TRUE); } break; +{ PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } +#line 9153 "asmparse.cpp.tab.c" +break; case 526: + if (!yytrial) #line 1436 "asmparse.y" -{ PASM->EmitInstrSig(yypvt[-5].instr, parser->MakeSig(yypvt[-4].int32, yypvt[-3].binstr, yypvt[-1].binstr)); - PASM->ResetArgNameList(); - } break; +{ PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } +#line 9159 "asmparse.cpp.tab.c" +break; case 527: -#line 1440 "asmparse.y" -{ PASM->EmitInstrI(yypvt[-1].instr,yypvt[-0].token); - PASM->m_tkCurrentCVOwner = yypvt[-0].token; + if (!yytrial) +#line 1438 "asmparse.y" +{ PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); + PASM->ResetArgNameList(); + } +#line 9167 "asmparse.cpp.tab.c" +break; +case 528: + if (!yytrial) +#line 1442 "asmparse.y" +{ PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); + PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; - } break; -case 528: -#line 1445 "asmparse.y" -{ PASM->EmitInstrSwitch(yypvt[-3].instr, yypvt[-1].labels); } break; + } +#line 9177 "asmparse.cpp.tab.c" +break; case 529: -#line 1448 "asmparse.y" -{ yyval.labels = 0; } break; + if (!yytrial) +#line 1447 "asmparse.y" +{ PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } +#line 9183 "asmparse.cpp.tab.c" +break; case 530: -#line 1449 "asmparse.y" -{ yyval.labels = new Labels(yypvt[-2].string, yypvt[-0].labels, TRUE); } break; -case 531: + if (!yytrial) #line 1450 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yypvt[-2].int32, yypvt[-0].labels, FALSE); } break; -case 532: +{ yyval.labels = 0; } +#line 9189 "asmparse.cpp.tab.c" +break; +case 531: + if (!yytrial) #line 1451 "asmparse.y" -{ yyval.labels = new Labels(yypvt[-0].string, NULL, TRUE); } break; -case 533: +{ yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } +#line 9195 "asmparse.cpp.tab.c" +break; +case 532: + if (!yytrial) #line 1452 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yypvt[-0].int32, NULL, FALSE); } break; +{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } +#line 9201 "asmparse.cpp.tab.c" +break; +case 533: + if (!yytrial) +#line 1453 "asmparse.y" +{ yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } +#line 9207 "asmparse.cpp.tab.c" +break; case 534: -#line 1456 "asmparse.y" -{ yyval.binstr = NULL; } break; + if (!yytrial) +#line 1454 "asmparse.y" +{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } +#line 9213 "asmparse.cpp.tab.c" +break; case 535: -#line 1457 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; } break; + if (!yytrial) +#line 1458 "asmparse.y" +{ yyval.binstr = NULL; } +#line 9219 "asmparse.cpp.tab.c" +break; case 536: -#line 1460 "asmparse.y" -{ yyval.binstr = NULL; } break; + if (!yytrial) +#line 1459 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 9225 "asmparse.cpp.tab.c" +break; case 537: -#line 1461 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1462 "asmparse.y" +{ yyval.binstr = NULL; } +#line 9231 "asmparse.cpp.tab.c" +break; case 538: -#line 1464 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1463 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9237 "asmparse.cpp.tab.c" +break; case 539: -#line 1465 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; + if (!yytrial) +#line 1466 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9243 "asmparse.cpp.tab.c" +break; case 540: -#line 1469 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1467 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 9249 "asmparse.cpp.tab.c" +break; case 541: -#line 1470 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr;} break; + if (!yytrial) +#line 1471 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 9255 "asmparse.cpp.tab.c" +break; case 542: -#line 1473 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1472 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr;} +#line 9261 "asmparse.cpp.tab.c" +break; case 543: -#line 1474 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; + if (!yytrial) +#line 1475 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9267 "asmparse.cpp.tab.c" +break; case 544: -#line 1477 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } break; + if (!yytrial) +#line 1476 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 9273 "asmparse.cpp.tab.c" +break; case 545: -#line 1478 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-1].binstr); PASM->addArgName(NULL, yypvt[-1].binstr, yypvt[-0].binstr, yypvt[-2].int32); } break; -case 546: + if (!yytrial) #line 1479 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-2].binstr); PASM->addArgName(yypvt[-0].string, yypvt[-2].binstr, yypvt[-1].binstr, yypvt[-3].int32);} break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } +#line 9279 "asmparse.cpp.tab.c" +break; +case 546: + if (!yytrial) +#line 1480 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } +#line 9285 "asmparse.cpp.tab.c" +break; case 547: -#line 1483 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yypvt[-2].string), yypvt[-0].string, NULL); delete[] yypvt[-2].string;} break; + if (!yytrial) +#line 1481 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} +#line 9291 "asmparse.cpp.tab.c" +break; case 548: -#line 1484 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(yypvt[-2].token, yypvt[-0].string, NULL); } break; -case 549: + if (!yytrial) #line 1485 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(mdTokenNil, yypvt[-0].string, NULL); } break; -case 550: +{ yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} +#line 9297 "asmparse.cpp.tab.c" +break; +case 549: + if (!yytrial) #line 1486 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yypvt[-2].string),yypvt[-0].string, NULL); delete[] yypvt[-2].string;} break; -case 551: +{ yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } +#line 9303 "asmparse.cpp.tab.c" +break; +case 550: + if (!yytrial) #line 1487 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(1,yypvt[-0].string,NULL); } break; -case 552: +{ yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } +#line 9309 "asmparse.cpp.tab.c" +break; +case 551: + if (!yytrial) #line 1488 "asmparse.y" -{ yyval.token = yypvt[-0].token; } break; -case 553: +{ yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} +#line 9315 "asmparse.cpp.tab.c" +break; +case 552: + if (!yytrial) #line 1489 "asmparse.y" -{ yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; -case 554: +{ yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } +#line 9321 "asmparse.cpp.tab.c" +break; +case 553: + if (!yytrial) #line 1490 "asmparse.y" +{ yyval.token = yyvsp[0].token; } +#line 9327 "asmparse.cpp.tab.c" +break; +case 554: + if (!yytrial) +#line 1491 "asmparse.y" +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } +#line 9333 "asmparse.cpp.tab.c" +break; +case 555: + if (!yytrial) +#line 1492 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } - } break; -case 555: -#line 1493 "asmparse.y" + } +#line 9341 "asmparse.cpp.tab.c" +break; +case 556: + if (!yytrial) +#line 1495 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } - } break; -case 556: -#line 1499 "asmparse.y" + } +#line 9352 "asmparse.cpp.tab.c" +break; +case 557: + if (!yytrial) +#line 1501 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } - } break; -case 557: -#line 1506 "asmparse.y" -{ yyval.string = yypvt[-0].string; } break; + } +#line 9362 "asmparse.cpp.tab.c" +break; case 558: -#line 1507 "asmparse.y" -{ yyval.string = newStringWDel(yypvt[-2].string, NESTING_SEP, yypvt[-0].string); } break; + if (!yytrial) +#line 1508 "asmparse.y" +{ yyval.string = yyvsp[0].string; } +#line 9368 "asmparse.cpp.tab.c" +break; case 559: -#line 1510 "asmparse.y" -{ yyval.token = yypvt[-0].token;} break; + if (!yytrial) +#line 1509 "asmparse.y" +{ yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } +#line 9374 "asmparse.cpp.tab.c" +break; case 560: -#line 1511 "asmparse.y" -{ yyval.token = PASM->GetAsmRef(yypvt[-1].string); delete[] yypvt[-1].string;} break; -case 561: + if (!yytrial) #line 1512 "asmparse.y" -{ yyval.token = PASM->GetModRef(yypvt[-1].string); delete[] yypvt[-1].string;} break; -case 562: +{ yyval.token = yyvsp[0].token;} +#line 9380 "asmparse.cpp.tab.c" +break; +case 561: + if (!yytrial) #line 1513 "asmparse.y" -{ yyval.token = PASM->ResolveTypeSpec(yypvt[-0].binstr); } break; +{ yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} +#line 9386 "asmparse.cpp.tab.c" +break; +case 562: + if (!yytrial) +#line 1514 "asmparse.y" +{ yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} +#line 9392 "asmparse.cpp.tab.c" +break; case 563: -#line 1517 "asmparse.y" -{ yyval.binstr = new BinStr(); } break; + if (!yytrial) +#line 1515 "asmparse.y" +{ yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } +#line 9398 "asmparse.cpp.tab.c" +break; case 564: + if (!yytrial) #line 1519 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); - corEmitInt(yyval.binstr,yypvt[-7].binstr->length()); yyval.binstr->append(yypvt[-7].binstr); - corEmitInt(yyval.binstr,yypvt[-5].binstr->length()); yyval.binstr->append(yypvt[-5].binstr); - corEmitInt(yyval.binstr,yypvt[-3].binstr->length()); yyval.binstr->append(yypvt[-3].binstr); - corEmitInt(yyval.binstr,yypvt[-1].binstr->length()); yyval.binstr->append(yypvt[-1].binstr); - PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} break; +{ yyval.binstr = new BinStr(); } +#line 9404 "asmparse.cpp.tab.c" +break; case 565: -#line 1526 "asmparse.y" + if (!yytrial) +#line 1521 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); + corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); + corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); + corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); + corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); + PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} +#line 9415 "asmparse.cpp.tab.c" +break; +case 566: + if (!yytrial) +#line 1528 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); - corEmitInt(yyval.binstr,yypvt[-3].binstr->length()); yyval.binstr->append(yypvt[-3].binstr); - corEmitInt(yyval.binstr,yypvt[-1].binstr->length()); yyval.binstr->append(yypvt[-1].binstr); } break; -case 566: -#line 1531 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); - corEmitInt(yyval.binstr,yypvt[-1].int32); } break; + corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); + corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } +#line 9425 "asmparse.cpp.tab.c" +break; case 567: -#line 1534 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); - corEmitInt(yyval.binstr,yypvt[-2].int32); yyval.binstr->append(yypvt[-0].binstr); } break; + if (!yytrial) +#line 1533 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); + corEmitInt(yyval.binstr,yyvsp[-1].int32); } +#line 9432 "asmparse.cpp.tab.c" +break; case 568: + if (!yytrial) #line 1536 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); - PASM->report->warn("Deprecated native type 'variant'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); + corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } +#line 9439 "asmparse.cpp.tab.c" +break; case 569: + if (!yytrial) #line 1538 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); + PASM->report->warn("Deprecated native type 'variant'\n"); } +#line 9446 "asmparse.cpp.tab.c" +break; case 570: -#line 1539 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); - PASM->report->warn("Deprecated native type 'syschar'\n"); } break; + if (!yytrial) +#line 1540 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } +#line 9452 "asmparse.cpp.tab.c" +break; case 571: + if (!yytrial) #line 1541 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); - PASM->report->warn("Deprecated native type 'void'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); + PASM->report->warn("Deprecated native type 'syschar'\n"); } +#line 9459 "asmparse.cpp.tab.c" +break; case 572: + if (!yytrial) #line 1543 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); + PASM->report->warn("Deprecated native type 'void'\n"); } +#line 9466 "asmparse.cpp.tab.c" +break; case 573: -#line 1544 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } break; -case 574: + if (!yytrial) #line 1545 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } break; -case 575: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } +#line 9472 "asmparse.cpp.tab.c" +break; +case 574: + if (!yytrial) #line 1546 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } break; -case 576: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } +#line 9478 "asmparse.cpp.tab.c" +break; +case 575: + if (!yytrial) #line 1547 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } break; -case 577: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } +#line 9484 "asmparse.cpp.tab.c" +break; +case 576: + if (!yytrial) #line 1548 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } break; -case 578: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } +#line 9490 "asmparse.cpp.tab.c" +break; +case 577: + if (!yytrial) #line 1549 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } break; -case 579: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } +#line 9496 "asmparse.cpp.tab.c" +break; +case 578: + if (!yytrial) #line 1550 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } break; -case 580: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } +#line 9502 "asmparse.cpp.tab.c" +break; +case 579: + if (!yytrial) #line 1551 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } break; -case 581: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } +#line 9508 "asmparse.cpp.tab.c" +break; +case 580: + if (!yytrial) #line 1552 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } break; -case 582: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } +#line 9514 "asmparse.cpp.tab.c" +break; +case 581: + if (!yytrial) #line 1553 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } break; -case 583: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 9520 "asmparse.cpp.tab.c" +break; +case 582: + if (!yytrial) #line 1554 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } break; -case 584: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 9526 "asmparse.cpp.tab.c" +break; +case 583: + if (!yytrial) #line 1555 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } break; -case 585: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 9532 "asmparse.cpp.tab.c" +break; +case 584: + if (!yytrial) #line 1556 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } break; -case 586: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 9538 "asmparse.cpp.tab.c" +break; +case 585: + if (!yytrial) #line 1557 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } break; -case 587: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 9544 "asmparse.cpp.tab.c" +break; +case 586: + if (!yytrial) #line 1558 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } break; -case 588: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 9550 "asmparse.cpp.tab.c" +break; +case 587: + if (!yytrial) #line 1559 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); - PASM->report->warn("Deprecated native type '*'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 9556 "asmparse.cpp.tab.c" +break; +case 588: + if (!yytrial) +#line 1560 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 9562 "asmparse.cpp.tab.c" +break; case 589: + if (!yytrial) #line 1561 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } break; +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); + PASM->report->warn("Deprecated native type '*'\n"); } +#line 9569 "asmparse.cpp.tab.c" +break; case 590: + if (!yytrial) #line 1563 "asmparse.y" -{ yyval.binstr = yypvt[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,0); - corEmitInt(yyval.binstr,yypvt[-1].int32); - corEmitInt(yyval.binstr,0); } break; +{ yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } +#line 9576 "asmparse.cpp.tab.c" +break; case 591: -#line 1568 "asmparse.y" -{ yyval.binstr = yypvt[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + if (!yytrial) +#line 1565 "asmparse.y" +{ yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,yypvt[-1].int32); - corEmitInt(yyval.binstr,yypvt[-3].int32); - corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } break; + corEmitInt(yyval.binstr,0); + corEmitInt(yyval.binstr,yyvsp[-1].int32); + corEmitInt(yyval.binstr,0); } +#line 9586 "asmparse.cpp.tab.c" +break; case 592: -#line 1573 "asmparse.y" -{ yyval.binstr = yypvt[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + if (!yytrial) +#line 1570 "asmparse.y" +{ yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,yypvt[-1].int32); } break; + corEmitInt(yyval.binstr,yyvsp[-1].int32); + corEmitInt(yyval.binstr,yyvsp[-3].int32); + corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } +#line 9596 "asmparse.cpp.tab.c" +break; case 593: -#line 1576 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); - PASM->report->warn("Deprecated native type 'decimal'\n"); } break; + if (!yytrial) +#line 1575 "asmparse.y" +{ yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt(yyval.binstr,yyvsp[-1].int32); } +#line 9604 "asmparse.cpp.tab.c" +break; case 594: + if (!yytrial) #line 1578 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); - PASM->report->warn("Deprecated native type 'date'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); + PASM->report->warn("Deprecated native type 'decimal'\n"); } +#line 9611 "asmparse.cpp.tab.c" +break; case 595: + if (!yytrial) #line 1580 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); + PASM->report->warn("Deprecated native type 'date'\n"); } +#line 9618 "asmparse.cpp.tab.c" +break; case 596: -#line 1581 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } break; -case 597: + if (!yytrial) #line 1582 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } break; -case 598: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } +#line 9624 "asmparse.cpp.tab.c" +break; +case 597: + if (!yytrial) #line 1583 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } break; -case 599: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } +#line 9630 "asmparse.cpp.tab.c" +break; +case 598: + if (!yytrial) #line 1584 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); - PASM->report->warn("Deprecated native type 'objectref'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } +#line 9636 "asmparse.cpp.tab.c" +break; +case 599: + if (!yytrial) +#line 1585 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } +#line 9642 "asmparse.cpp.tab.c" +break; case 600: + if (!yytrial) #line 1586 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); - if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); + PASM->report->warn("Deprecated native type 'objectref'\n"); } +#line 9649 "asmparse.cpp.tab.c" +break; case 601: + if (!yytrial) #line 1588 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); - if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); + if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } +#line 9656 "asmparse.cpp.tab.c" +break; case 602: + if (!yytrial) #line 1590 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); + if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } +#line 9663 "asmparse.cpp.tab.c" +break; case 603: -#line 1591 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); - if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; + if (!yytrial) +#line 1592 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } +#line 9669 "asmparse.cpp.tab.c" +break; case 604: + if (!yytrial) #line 1593 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt(yyval.binstr,yypvt[-0].int32); - corEmitInt(yyval.binstr,0);} break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); + if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } +#line 9676 "asmparse.cpp.tab.c" +break; case 605: -#line 1596 "asmparse.y" + if (!yytrial) +#line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt(yyval.binstr,yypvt[-2].int32); - corEmitInt(yyval.binstr,yypvt[-0].binstr->length()); yyval.binstr->append(yypvt[-0].binstr); } break; + corEmitInt(yyval.binstr,yyvsp[0].int32); + corEmitInt(yyval.binstr,0);} +#line 9684 "asmparse.cpp.tab.c" +break; case 606: -#line 1600 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } break; + if (!yytrial) +#line 1598 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); + corEmitInt(yyval.binstr,yyvsp[-2].int32); + corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } +#line 9692 "asmparse.cpp.tab.c" +break; case 607: -#line 1601 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } break; -case 608: + if (!yytrial) #line 1602 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } break; -case 609: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } +#line 9698 "asmparse.cpp.tab.c" +break; +case 608: + if (!yytrial) #line 1603 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); - PASM->report->warn("Deprecated native type 'nested struct'\n"); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 9704 "asmparse.cpp.tab.c" +break; +case 609: + if (!yytrial) +#line 1604 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 9710 "asmparse.cpp.tab.c" +break; case 610: + if (!yytrial) #line 1605 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); + PASM->report->warn("Deprecated native type 'nested struct'\n"); } +#line 9717 "asmparse.cpp.tab.c" +break; case 611: -#line 1606 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } break; -case 612: + if (!yytrial) #line 1607 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } break; -case 613: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } +#line 9723 "asmparse.cpp.tab.c" +break; +case 612: + if (!yytrial) #line 1608 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } break; -case 614: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } +#line 9729 "asmparse.cpp.tab.c" +break; +case 613: + if (!yytrial) #line 1609 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } break; -case 615: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } +#line 9735 "asmparse.cpp.tab.c" +break; +case 614: + if (!yytrial) #line 1610 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } break; -case 616: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } +#line 9741 "asmparse.cpp.tab.c" +break; +case 615: + if (!yytrial) #line 1611 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } break; -case 617: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } +#line 9747 "asmparse.cpp.tab.c" +break; +case 616: + if (!yytrial) #line 1612 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-0].tdd->m_pbsTypeSpec); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } +#line 9753 "asmparse.cpp.tab.c" +break; +case 617: + if (!yytrial) +#line 1613 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } +#line 9759 "asmparse.cpp.tab.c" +break; case 618: -#line 1615 "asmparse.y" -{ yyval.int32 = -1; } break; + if (!yytrial) +#line 1614 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } +#line 9765 "asmparse.cpp.tab.c" +break; case 619: -#line 1616 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32; } break; + if (!yytrial) +#line 1617 "asmparse.y" +{ yyval.int32 = -1; } +#line 9771 "asmparse.cpp.tab.c" +break; case 620: -#line 1619 "asmparse.y" -{ yyval.int32 = VT_EMPTY; } break; + if (!yytrial) +#line 1618 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32; } +#line 9777 "asmparse.cpp.tab.c" +break; case 621: -#line 1620 "asmparse.y" -{ yyval.int32 = VT_NULL; } break; -case 622: + if (!yytrial) #line 1621 "asmparse.y" -{ yyval.int32 = VT_VARIANT; } break; -case 623: +{ yyval.int32 = VT_EMPTY; } +#line 9783 "asmparse.cpp.tab.c" +break; +case 622: + if (!yytrial) #line 1622 "asmparse.y" -{ yyval.int32 = VT_CY; } break; -case 624: +{ yyval.int32 = VT_NULL; } +#line 9789 "asmparse.cpp.tab.c" +break; +case 623: + if (!yytrial) #line 1623 "asmparse.y" -{ yyval.int32 = VT_VOID; } break; -case 625: +{ yyval.int32 = VT_VARIANT; } +#line 9795 "asmparse.cpp.tab.c" +break; +case 624: + if (!yytrial) #line 1624 "asmparse.y" -{ yyval.int32 = VT_BOOL; } break; -case 626: +{ yyval.int32 = VT_CY; } +#line 9801 "asmparse.cpp.tab.c" +break; +case 625: + if (!yytrial) #line 1625 "asmparse.y" -{ yyval.int32 = VT_I1; } break; -case 627: +{ yyval.int32 = VT_VOID; } +#line 9807 "asmparse.cpp.tab.c" +break; +case 626: + if (!yytrial) #line 1626 "asmparse.y" -{ yyval.int32 = VT_I2; } break; -case 628: +{ yyval.int32 = VT_BOOL; } +#line 9813 "asmparse.cpp.tab.c" +break; +case 627: + if (!yytrial) #line 1627 "asmparse.y" -{ yyval.int32 = VT_I4; } break; -case 629: +{ yyval.int32 = VT_I1; } +#line 9819 "asmparse.cpp.tab.c" +break; +case 628: + if (!yytrial) #line 1628 "asmparse.y" -{ yyval.int32 = VT_I8; } break; -case 630: +{ yyval.int32 = VT_I2; } +#line 9825 "asmparse.cpp.tab.c" +break; +case 629: + if (!yytrial) #line 1629 "asmparse.y" -{ yyval.int32 = VT_R4; } break; -case 631: +{ yyval.int32 = VT_I4; } +#line 9831 "asmparse.cpp.tab.c" +break; +case 630: + if (!yytrial) #line 1630 "asmparse.y" -{ yyval.int32 = VT_R8; } break; -case 632: +{ yyval.int32 = VT_I8; } +#line 9837 "asmparse.cpp.tab.c" +break; +case 631: + if (!yytrial) #line 1631 "asmparse.y" -{ yyval.int32 = VT_UI1; } break; -case 633: +{ yyval.int32 = VT_R4; } +#line 9843 "asmparse.cpp.tab.c" +break; +case 632: + if (!yytrial) #line 1632 "asmparse.y" -{ yyval.int32 = VT_UI2; } break; -case 634: +{ yyval.int32 = VT_R8; } +#line 9849 "asmparse.cpp.tab.c" +break; +case 633: + if (!yytrial) #line 1633 "asmparse.y" -{ yyval.int32 = VT_UI4; } break; -case 635: +{ yyval.int32 = VT_UI1; } +#line 9855 "asmparse.cpp.tab.c" +break; +case 634: + if (!yytrial) #line 1634 "asmparse.y" -{ yyval.int32 = VT_UI8; } break; -case 636: +{ yyval.int32 = VT_UI2; } +#line 9861 "asmparse.cpp.tab.c" +break; +case 635: + if (!yytrial) #line 1635 "asmparse.y" -{ yyval.int32 = VT_UI1; } break; -case 637: +{ yyval.int32 = VT_UI4; } +#line 9867 "asmparse.cpp.tab.c" +break; +case 636: + if (!yytrial) #line 1636 "asmparse.y" -{ yyval.int32 = VT_UI2; } break; -case 638: +{ yyval.int32 = VT_UI8; } +#line 9873 "asmparse.cpp.tab.c" +break; +case 637: + if (!yytrial) #line 1637 "asmparse.y" -{ yyval.int32 = VT_UI4; } break; -case 639: +{ yyval.int32 = VT_UI1; } +#line 9879 "asmparse.cpp.tab.c" +break; +case 638: + if (!yytrial) #line 1638 "asmparse.y" -{ yyval.int32 = VT_UI8; } break; -case 640: +{ yyval.int32 = VT_UI2; } +#line 9885 "asmparse.cpp.tab.c" +break; +case 639: + if (!yytrial) #line 1639 "asmparse.y" -{ yyval.int32 = VT_PTR; } break; -case 641: +{ yyval.int32 = VT_UI4; } +#line 9891 "asmparse.cpp.tab.c" +break; +case 640: + if (!yytrial) #line 1640 "asmparse.y" -{ yyval.int32 = yypvt[-2].int32 | VT_ARRAY; } break; -case 642: +{ yyval.int32 = VT_UI8; } +#line 9897 "asmparse.cpp.tab.c" +break; +case 641: + if (!yytrial) #line 1641 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | VT_VECTOR; } break; -case 643: +{ yyval.int32 = VT_PTR; } +#line 9903 "asmparse.cpp.tab.c" +break; +case 642: + if (!yytrial) #line 1642 "asmparse.y" -{ yyval.int32 = yypvt[-1].int32 | VT_BYREF; } break; -case 644: +{ yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } +#line 9909 "asmparse.cpp.tab.c" +break; +case 643: + if (!yytrial) #line 1643 "asmparse.y" -{ yyval.int32 = VT_DECIMAL; } break; -case 645: +{ yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } +#line 9915 "asmparse.cpp.tab.c" +break; +case 644: + if (!yytrial) #line 1644 "asmparse.y" -{ yyval.int32 = VT_DATE; } break; -case 646: +{ yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } +#line 9921 "asmparse.cpp.tab.c" +break; +case 645: + if (!yytrial) #line 1645 "asmparse.y" -{ yyval.int32 = VT_BSTR; } break; -case 647: +{ yyval.int32 = VT_DECIMAL; } +#line 9927 "asmparse.cpp.tab.c" +break; +case 646: + if (!yytrial) #line 1646 "asmparse.y" -{ yyval.int32 = VT_LPSTR; } break; -case 648: +{ yyval.int32 = VT_DATE; } +#line 9933 "asmparse.cpp.tab.c" +break; +case 647: + if (!yytrial) #line 1647 "asmparse.y" -{ yyval.int32 = VT_LPWSTR; } break; -case 649: +{ yyval.int32 = VT_BSTR; } +#line 9939 "asmparse.cpp.tab.c" +break; +case 648: + if (!yytrial) #line 1648 "asmparse.y" -{ yyval.int32 = VT_UNKNOWN; } break; -case 650: +{ yyval.int32 = VT_LPSTR; } +#line 9945 "asmparse.cpp.tab.c" +break; +case 649: + if (!yytrial) #line 1649 "asmparse.y" -{ yyval.int32 = VT_DISPATCH; } break; -case 651: +{ yyval.int32 = VT_LPWSTR; } +#line 9951 "asmparse.cpp.tab.c" +break; +case 650: + if (!yytrial) #line 1650 "asmparse.y" -{ yyval.int32 = VT_SAFEARRAY; } break; -case 652: +{ yyval.int32 = VT_UNKNOWN; } +#line 9957 "asmparse.cpp.tab.c" +break; +case 651: + if (!yytrial) #line 1651 "asmparse.y" -{ yyval.int32 = VT_INT; } break; -case 653: +{ yyval.int32 = VT_DISPATCH; } +#line 9963 "asmparse.cpp.tab.c" +break; +case 652: + if (!yytrial) #line 1652 "asmparse.y" -{ yyval.int32 = VT_UINT; } break; -case 654: +{ yyval.int32 = VT_SAFEARRAY; } +#line 9969 "asmparse.cpp.tab.c" +break; +case 653: + if (!yytrial) #line 1653 "asmparse.y" -{ yyval.int32 = VT_UINT; } break; -case 655: +{ yyval.int32 = VT_INT; } +#line 9975 "asmparse.cpp.tab.c" +break; +case 654: + if (!yytrial) #line 1654 "asmparse.y" -{ yyval.int32 = VT_ERROR; } break; -case 656: +{ yyval.int32 = VT_UINT; } +#line 9981 "asmparse.cpp.tab.c" +break; +case 655: + if (!yytrial) #line 1655 "asmparse.y" -{ yyval.int32 = VT_HRESULT; } break; -case 657: +{ yyval.int32 = VT_UINT; } +#line 9987 "asmparse.cpp.tab.c" +break; +case 656: + if (!yytrial) #line 1656 "asmparse.y" -{ yyval.int32 = VT_CARRAY; } break; -case 658: +{ yyval.int32 = VT_ERROR; } +#line 9993 "asmparse.cpp.tab.c" +break; +case 657: + if (!yytrial) #line 1657 "asmparse.y" -{ yyval.int32 = VT_USERDEFINED; } break; -case 659: +{ yyval.int32 = VT_HRESULT; } +#line 9999 "asmparse.cpp.tab.c" +break; +case 658: + if (!yytrial) #line 1658 "asmparse.y" -{ yyval.int32 = VT_RECORD; } break; -case 660: +{ yyval.int32 = VT_CARRAY; } +#line 10005 "asmparse.cpp.tab.c" +break; +case 659: + if (!yytrial) #line 1659 "asmparse.y" -{ yyval.int32 = VT_FILETIME; } break; -case 661: +{ yyval.int32 = VT_USERDEFINED; } +#line 10011 "asmparse.cpp.tab.c" +break; +case 660: + if (!yytrial) #line 1660 "asmparse.y" -{ yyval.int32 = VT_BLOB; } break; -case 662: +{ yyval.int32 = VT_RECORD; } +#line 10017 "asmparse.cpp.tab.c" +break; +case 661: + if (!yytrial) #line 1661 "asmparse.y" -{ yyval.int32 = VT_STREAM; } break; -case 663: +{ yyval.int32 = VT_FILETIME; } +#line 10023 "asmparse.cpp.tab.c" +break; +case 662: + if (!yytrial) #line 1662 "asmparse.y" -{ yyval.int32 = VT_STORAGE; } break; -case 664: +{ yyval.int32 = VT_BLOB; } +#line 10029 "asmparse.cpp.tab.c" +break; +case 663: + if (!yytrial) #line 1663 "asmparse.y" -{ yyval.int32 = VT_STREAMED_OBJECT; } break; -case 665: +{ yyval.int32 = VT_STREAM; } +#line 10035 "asmparse.cpp.tab.c" +break; +case 664: + if (!yytrial) #line 1664 "asmparse.y" -{ yyval.int32 = VT_STORED_OBJECT; } break; -case 666: +{ yyval.int32 = VT_STORAGE; } +#line 10041 "asmparse.cpp.tab.c" +break; +case 665: + if (!yytrial) #line 1665 "asmparse.y" -{ yyval.int32 = VT_BLOB_OBJECT; } break; -case 667: +{ yyval.int32 = VT_STREAMED_OBJECT; } +#line 10047 "asmparse.cpp.tab.c" +break; +case 666: + if (!yytrial) #line 1666 "asmparse.y" -{ yyval.int32 = VT_CF; } break; -case 668: +{ yyval.int32 = VT_STORED_OBJECT; } +#line 10053 "asmparse.cpp.tab.c" +break; +case 667: + if (!yytrial) #line 1667 "asmparse.y" -{ yyval.int32 = VT_CLSID; } break; +{ yyval.int32 = VT_BLOB_OBJECT; } +#line 10059 "asmparse.cpp.tab.c" +break; +case 668: + if (!yytrial) +#line 1668 "asmparse.y" +{ yyval.int32 = VT_CF; } +#line 10065 "asmparse.cpp.tab.c" +break; case 669: -#line 1671 "asmparse.y" -{ if(yypvt[-0].token == PASM->m_tkSysString) + if (!yytrial) +#line 1669 "asmparse.y" +{ yyval.int32 = VT_CLSID; } +#line 10071 "asmparse.cpp.tab.c" +break; +case 670: + if (!yytrial) +#line 1673 "asmparse.y" +{ if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } - else if(yypvt[-0].token == PASM->m_tkSysObject) + else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else - yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yypvt[-0].token); } break; -case 670: -#line 1677 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } break; + yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } +#line 10082 "asmparse.cpp.tab.c" +break; case 671: -#line 1678 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yypvt[-0].token); } break; -case 672: + if (!yytrial) #line 1679 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yypvt[-0].token); } break; -case 673: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } +#line 10088 "asmparse.cpp.tab.c" +break; +case 672: + if (!yytrial) #line 1680 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; -case 674: +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } +#line 10094 "asmparse.cpp.tab.c" +break; +case 673: + if (!yytrial) #line 1681 "asmparse.y" -{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yypvt[-3].binstr, yypvt[-1].binstr); } break; -case 675: +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } +#line 10100 "asmparse.cpp.tab.c" +break; +case 674: + if (!yytrial) #line 1682 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } break; -case 676: +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10106 "asmparse.cpp.tab.c" +break; +case 675: + if (!yytrial) #line 1683 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } break; -case 677: +{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } +#line 10112 "asmparse.cpp.tab.c" +break; +case 676: + if (!yytrial) #line 1684 "asmparse.y" -{ yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } break; -case 678: +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 10118 "asmparse.cpp.tab.c" +break; +case 677: + if (!yytrial) #line 1685 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yypvt[-1].token); - yyval.binstr->append(yypvt[-4].binstr); } break; +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 10124 "asmparse.cpp.tab.c" +break; +case 678: + if (!yytrial) +#line 1686 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 10130 "asmparse.cpp.tab.c" +break; case 679: + if (!yytrial) #line 1687 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yypvt[-1].token); - yyval.binstr->append(yypvt[-4].binstr); } break; +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); + yyval.binstr->append(yyvsp[-4].binstr); } +#line 10137 "asmparse.cpp.tab.c" +break; case 680: -#line 1690 "asmparse.y" -{ yyval.binstr = parser->MakeSig(yypvt[-5].int32, yypvt[-4].binstr, yypvt[-1].binstr); + if (!yytrial) +#line 1689 "asmparse.y" +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); + yyval.binstr->append(yyvsp[-4].binstr); } +#line 10144 "asmparse.cpp.tab.c" +break; +case 681: + if (!yytrial) +#line 1692 "asmparse.y" +{ yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); - } break; -case 681: -#line 1696 "asmparse.y" -{ if(yypvt[-1].binstr == NULL) yyval.binstr = yypvt[-3].binstr; + } +#line 10155 "asmparse.cpp.tab.c" +break; +case 682: + if (!yytrial) +#line 1698 "asmparse.y" +{ if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_GENERICINST); - yyval.binstr->append(yypvt[-3].binstr); - corEmitInt(yyval.binstr, corCountArgs(yypvt[-1].binstr)); - yyval.binstr->append(yypvt[-1].binstr); delete yypvt[-3].binstr; delete yypvt[-1].binstr; }} break; -case 682: -#line 1703 "asmparse.y" -{ //if(PASM->m_pCurMethod) { - // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) - // PASM->report->error("Invalid method type parameter '%d'\n",$3); - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yypvt[-0].int32); - //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); - } break; + yyval.binstr->append(yyvsp[-3].binstr); + corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); + yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} +#line 10167 "asmparse.cpp.tab.c" +break; case 683: -#line 1709 "asmparse.y" -{ //if(PASM->m_pCurClass) { - // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) - // PASM->report->error("Invalid type parameter '%d'\n",$2); - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yypvt[-0].int32); - //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); - } break; + if (!yytrial) +#line 1705 "asmparse.y" +{ /*if(PASM->m_pCurMethod) {*/ + /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ + /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); + /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ + } +#line 10178 "asmparse.cpp.tab.c" +break; case 684: -#line 1715 "asmparse.y" + if (!yytrial) +#line 1711 "asmparse.y" +{ /*if(PASM->m_pCurClass) {*/ + /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ + /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); + /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ + } +#line 10189 "asmparse.cpp.tab.c" +break; +case 685: + if (!yytrial) +#line 1717 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; - if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yypvt[-0].string); + if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yypvt[-0].string); + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); if(n == -1) { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yypvt[-0].string); + TyParFixupList.PUSH(yyvsp[0].string); eltype = ELEMENT_TYPE_MVARFIXUP; } } - if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",yypvt[-0].string); + if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",yyvsp[0].string); n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } break; -case 685: -#line 1730 "asmparse.y" + } +#line 10209 "asmparse.cpp.tab.c" +break; +case 686: + if (!yytrial) +#line 1732 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; - if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yypvt[-0].string); + if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yypvt[-0].string); + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); if(n == -1) { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yypvt[-0].string); + TyParFixupList.PUSH(yyvsp[0].string); eltype = ELEMENT_TYPE_VARFIXUP; } } - if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",yypvt[-0].string); + if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",yyvsp[0].string); n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } break; -case 686: -#line 1745 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } break; + } +#line 10229 "asmparse.cpp.tab.c" +break; case 687: -#line 1746 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } break; -case 688: + if (!yytrial) #line 1747 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } break; -case 689: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 10235 "asmparse.cpp.tab.c" +break; +case 688: + if (!yytrial) #line 1748 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } break; -case 690: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } +#line 10241 "asmparse.cpp.tab.c" +break; +case 689: + if (!yytrial) #line 1749 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } break; -case 691: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } +#line 10247 "asmparse.cpp.tab.c" +break; +case 690: + if (!yytrial) #line 1750 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; -case 692: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 10253 "asmparse.cpp.tab.c" +break; +case 691: + if (!yytrial) #line 1751 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 10259 "asmparse.cpp.tab.c" +break; +case 692: + if (!yytrial) +#line 1752 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 10265 "asmparse.cpp.tab.c" +break; case 693: -#line 1754 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } break; + if (!yytrial) +#line 1753 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 10271 "asmparse.cpp.tab.c" +break; case 694: -#line 1755 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } break; -case 695: + if (!yytrial) #line 1756 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } break; -case 696: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } +#line 10277 "asmparse.cpp.tab.c" +break; +case 695: + if (!yytrial) #line 1757 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } break; -case 697: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } +#line 10283 "asmparse.cpp.tab.c" +break; +case 696: + if (!yytrial) #line 1758 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } break; -case 698: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 10289 "asmparse.cpp.tab.c" +break; +case 697: + if (!yytrial) #line 1759 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } break; -case 699: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } +#line 10295 "asmparse.cpp.tab.c" +break; +case 698: + if (!yytrial) #line 1760 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } break; -case 700: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } +#line 10301 "asmparse.cpp.tab.c" +break; +case 699: + if (!yytrial) #line 1761 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } break; -case 701: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } +#line 10307 "asmparse.cpp.tab.c" +break; +case 700: + if (!yytrial) #line 1762 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } break; -case 702: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } +#line 10313 "asmparse.cpp.tab.c" +break; +case 701: + if (!yytrial) #line 1763 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } break; -case 703: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } +#line 10319 "asmparse.cpp.tab.c" +break; +case 702: + if (!yytrial) #line 1764 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } break; -case 704: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } +#line 10325 "asmparse.cpp.tab.c" +break; +case 703: + if (!yytrial) #line 1765 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } break; -case 705: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 10331 "asmparse.cpp.tab.c" +break; +case 704: + if (!yytrial) #line 1766 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } break; -case 706: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 10337 "asmparse.cpp.tab.c" +break; +case 705: + if (!yytrial) #line 1767 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } break; -case 707: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 10343 "asmparse.cpp.tab.c" +break; +case 706: + if (!yytrial) #line 1768 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } break; -case 708: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 10349 "asmparse.cpp.tab.c" +break; +case 707: + if (!yytrial) #line 1769 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } break; -case 709: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 10355 "asmparse.cpp.tab.c" +break; +case 708: + if (!yytrial) #line 1770 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } break; -case 710: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 10361 "asmparse.cpp.tab.c" +break; +case 709: + if (!yytrial) #line 1771 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-0].tdd->m_pbsTypeSpec); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 10367 "asmparse.cpp.tab.c" +break; +case 710: + if (!yytrial) +#line 1772 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 10373 "asmparse.cpp.tab.c" +break; case 711: -#line 1774 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; } break; + if (!yytrial) +#line 1773 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } +#line 10379 "asmparse.cpp.tab.c" +break; case 712: -#line 1775 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yypvt[-2].binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; + if (!yytrial) +#line 1776 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 10385 "asmparse.cpp.tab.c" +break; case 713: -#line 1778 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } break; + if (!yytrial) +#line 1777 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 10391 "asmparse.cpp.tab.c" +break; case 714: -#line 1779 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } break; -case 715: + if (!yytrial) #line 1780 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yypvt[-0].int32); } break; -case 716: +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 10397 "asmparse.cpp.tab.c" +break; +case 715: + if (!yytrial) #line 1781 "asmparse.y" -{ FAIL_UNLESS(yypvt[-2].int32 <= yypvt[-0].int32, ("lower bound %d must be <= upper bound %d\n", yypvt[-2].int32, yypvt[-0].int32)); - if (yypvt[-2].int32 > yypvt[-0].int32) { YYERROR; }; - yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-2].int32); yyval.binstr->appendInt32(yypvt[-0].int32-yypvt[-2].int32+1); } break; +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 10403 "asmparse.cpp.tab.c" +break; +case 716: + if (!yytrial) +#line 1782 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 10409 "asmparse.cpp.tab.c" +break; case 717: -#line 1784 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } break; + if (!yytrial) +#line 1783 "asmparse.y" +{ FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); + if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; + yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } +#line 10417 "asmparse.cpp.tab.c" +break; case 718: -#line 1789 "asmparse.y" -{ PASM->AddPermissionDecl(yypvt[-4].secAct, yypvt[-3].token, yypvt[-1].pair); } break; + if (!yytrial) +#line 1786 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 10423 "asmparse.cpp.tab.c" +break; case 719: + if (!yytrial) #line 1791 "asmparse.y" -{ PASM->AddPermissionDecl(yypvt[-5].secAct, yypvt[-4].token, yypvt[-1].binstr); } break; +{ PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } +#line 10429 "asmparse.cpp.tab.c" +break; case 720: -#line 1792 "asmparse.y" -{ PASM->AddPermissionDecl(yypvt[-1].secAct, yypvt[-0].token, (NVPair *)NULL); } break; -case 721: + if (!yytrial) #line 1793 "asmparse.y" -{ PASM->AddPermissionSetDecl(yypvt[-2].secAct, yypvt[-1].binstr); } break; +{ PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } +#line 10435 "asmparse.cpp.tab.c" +break; +case 721: + if (!yytrial) +#line 1794 "asmparse.y" +{ PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } +#line 10441 "asmparse.cpp.tab.c" +break; case 722: + if (!yytrial) #line 1795 "asmparse.y" -{ PASM->AddPermissionSetDecl(yypvt[-1].secAct,BinStrToUnicode(yypvt[-0].binstr,true));} break; +{ PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } +#line 10447 "asmparse.cpp.tab.c" +break; case 723: + if (!yytrial) #line 1797 "asmparse.y" +{ PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} +#line 10453 "asmparse.cpp.tab.c" +break; +case 724: + if (!yytrial) +#line 1799 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); - ret->append(yypvt[-1].binstr); - PASM->AddPermissionSetDecl(yypvt[-4].secAct,ret); - nSecAttrBlobs = 0; } break; -case 724: -#line 1805 "asmparse.y" -{ yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} break; + ret->append(yyvsp[-1].binstr); + PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); + nSecAttrBlobs = 0; } +#line 10464 "asmparse.cpp.tab.c" +break; case 725: -#line 1806 "asmparse.y" -{ yyval.binstr = yypvt[-0].binstr; nSecAttrBlobs = 1; } break; -case 726: + if (!yytrial) #line 1807 "asmparse.y" -{ yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); nSecAttrBlobs++; } break; +{ yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} +#line 10470 "asmparse.cpp.tab.c" +break; +case 726: + if (!yytrial) +#line 1808 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } +#line 10476 "asmparse.cpp.tab.c" +break; case 727: -#line 1811 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yypvt[-4].token),yypvt[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } break; + if (!yytrial) +#line 1809 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } +#line 10482 "asmparse.cpp.tab.c" +break; case 728: -#line 1814 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(yypvt[-4].string,yypvt[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } break; + if (!yytrial) +#line 1813 "asmparse.y" +{ yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 10489 "asmparse.cpp.tab.c" +break; case 729: -#line 1818 "asmparse.y" -{ yyval.secAct = yypvt[-2].secAct; bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1816 "asmparse.y" +{ yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 10496 "asmparse.cpp.tab.c" +break; case 730: + if (!yytrial) #line 1820 "asmparse.y" -{ yyval.secAct = yypvt[-2].secAct; bParsingByteArray = TRUE; } break; +{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } +#line 10502 "asmparse.cpp.tab.c" +break; case 731: -#line 1823 "asmparse.y" -{ yyval.pair = yypvt[-0].pair; } break; + if (!yytrial) +#line 1822 "asmparse.y" +{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } +#line 10508 "asmparse.cpp.tab.c" +break; case 732: -#line 1824 "asmparse.y" -{ yyval.pair = yypvt[-2].pair->Concat(yypvt[-0].pair); } break; + if (!yytrial) +#line 1825 "asmparse.y" +{ yyval.pair = yyvsp[0].pair; } +#line 10514 "asmparse.cpp.tab.c" +break; case 733: -#line 1827 "asmparse.y" -{ yypvt[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yypvt[-2].binstr, yypvt[-0].binstr); } break; + if (!yytrial) +#line 1826 "asmparse.y" +{ yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } +#line 10520 "asmparse.cpp.tab.c" +break; case 734: -#line 1830 "asmparse.y" -{ yyval.int32 = 1; } break; + if (!yytrial) +#line 1829 "asmparse.y" +{ yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } +#line 10526 "asmparse.cpp.tab.c" +break; case 735: -#line 1831 "asmparse.y" -{ yyval.int32 = 0; } break; + if (!yytrial) +#line 1832 "asmparse.y" +{ yyval.int32 = 1; } +#line 10532 "asmparse.cpp.tab.c" +break; case 736: -#line 1834 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); - yyval.binstr->appendInt8(yypvt[-0].int32); } break; + if (!yytrial) +#line 1833 "asmparse.y" +{ yyval.int32 = 0; } +#line 10538 "asmparse.cpp.tab.c" +break; case 737: -#line 1837 "asmparse.y" + if (!yytrial) +#line 1836 "asmparse.y" { yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); - yyval.binstr->appendInt32(yypvt[-0].int32); } break; + yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yyvsp[0].int32); } +#line 10546 "asmparse.cpp.tab.c" +break; case 738: -#line 1840 "asmparse.y" + if (!yytrial) +#line 1839 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; + yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 10554 "asmparse.cpp.tab.c" +break; case 739: -#line 1843 "asmparse.y" + if (!yytrial) +#line 1842 "asmparse.y" { yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); - yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; - yyval.binstr->appendInt8(0); } break; + yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 10562 "asmparse.cpp.tab.c" +break; case 740: -#line 1847 "asmparse.y" + if (!yytrial) +#line 1845 "asmparse.y" +{ yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); + yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; + yyval.binstr->appendInt8(0); } +#line 10571 "asmparse.cpp.tab.c" +break; +case 741: + if (!yytrial) +#line 1849 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yypvt[-5].token); + char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; -case 741: -#line 1853 "asmparse.y" + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 10582 "asmparse.cpp.tab.c" +break; +case 742: + if (!yytrial) +#line 1855 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yypvt[-5].token); + char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; -case 742: -#line 1859 "asmparse.y" + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 10593 "asmparse.cpp.tab.c" +break; +case 743: + if (!yytrial) +#line 1861 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yypvt[-5].token); + char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; -case 743: -#line 1865 "asmparse.y" + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 10604 "asmparse.cpp.tab.c" +break; +case 744: + if (!yytrial) +#line 1867 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yypvt[-3].token); + char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); - yyval.binstr->appendInt32(yypvt[-1].int32); } break; -case 744: -#line 1873 "asmparse.y" -{ yyval.secAct = dclRequest; } break; + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 10615 "asmparse.cpp.tab.c" +break; case 745: -#line 1874 "asmparse.y" -{ yyval.secAct = dclDemand; } break; -case 746: + if (!yytrial) #line 1875 "asmparse.y" -{ yyval.secAct = dclAssert; } break; -case 747: +{ yyval.secAct = dclRequest; } +#line 10621 "asmparse.cpp.tab.c" +break; +case 746: + if (!yytrial) #line 1876 "asmparse.y" -{ yyval.secAct = dclDeny; } break; -case 748: +{ yyval.secAct = dclDemand; } +#line 10627 "asmparse.cpp.tab.c" +break; +case 747: + if (!yytrial) #line 1877 "asmparse.y" -{ yyval.secAct = dclPermitOnly; } break; -case 749: +{ yyval.secAct = dclAssert; } +#line 10633 "asmparse.cpp.tab.c" +break; +case 748: + if (!yytrial) #line 1878 "asmparse.y" -{ yyval.secAct = dclLinktimeCheck; } break; -case 750: +{ yyval.secAct = dclDeny; } +#line 10639 "asmparse.cpp.tab.c" +break; +case 749: + if (!yytrial) #line 1879 "asmparse.y" -{ yyval.secAct = dclInheritanceCheck; } break; -case 751: +{ yyval.secAct = dclPermitOnly; } +#line 10645 "asmparse.cpp.tab.c" +break; +case 750: + if (!yytrial) #line 1880 "asmparse.y" -{ yyval.secAct = dclRequestMinimum; } break; -case 752: +{ yyval.secAct = dclLinktimeCheck; } +#line 10651 "asmparse.cpp.tab.c" +break; +case 751: + if (!yytrial) #line 1881 "asmparse.y" -{ yyval.secAct = dclRequestOptional; } break; -case 753: +{ yyval.secAct = dclInheritanceCheck; } +#line 10657 "asmparse.cpp.tab.c" +break; +case 752: + if (!yytrial) #line 1882 "asmparse.y" -{ yyval.secAct = dclRequestRefuse; } break; -case 754: +{ yyval.secAct = dclRequestMinimum; } +#line 10663 "asmparse.cpp.tab.c" +break; +case 753: + if (!yytrial) #line 1883 "asmparse.y" -{ yyval.secAct = dclPrejitGrant; } break; -case 755: +{ yyval.secAct = dclRequestOptional; } +#line 10669 "asmparse.cpp.tab.c" +break; +case 754: + if (!yytrial) #line 1884 "asmparse.y" -{ yyval.secAct = dclPrejitDenied; } break; -case 756: +{ yyval.secAct = dclRequestRefuse; } +#line 10675 "asmparse.cpp.tab.c" +break; +case 755: + if (!yytrial) #line 1885 "asmparse.y" -{ yyval.secAct = dclNonCasDemand; } break; -case 757: +{ yyval.secAct = dclPrejitGrant; } +#line 10681 "asmparse.cpp.tab.c" +break; +case 756: + if (!yytrial) #line 1886 "asmparse.y" -{ yyval.secAct = dclNonCasLinkDemand; } break; -case 758: +{ yyval.secAct = dclPrejitDenied; } +#line 10687 "asmparse.cpp.tab.c" +break; +case 757: + if (!yytrial) #line 1887 "asmparse.y" -{ yyval.secAct = dclNonCasInheritance; } break; +{ yyval.secAct = dclNonCasDemand; } +#line 10693 "asmparse.cpp.tab.c" +break; +case 758: + if (!yytrial) +#line 1888 "asmparse.y" +{ yyval.secAct = dclNonCasLinkDemand; } +#line 10699 "asmparse.cpp.tab.c" +break; case 759: -#line 1891 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } break; + if (!yytrial) +#line 1889 "asmparse.y" +{ yyval.secAct = dclNonCasInheritance; } +#line 10705 "asmparse.cpp.tab.c" +break; case 760: -#line 1892 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } break; + if (!yytrial) +#line 1893 "asmparse.y" +{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 10711 "asmparse.cpp.tab.c" +break; case 761: -#line 1895 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-1].int32; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yypvt[-0].string);} break; + if (!yytrial) +#line 1894 "asmparse.y" +{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } +#line 10717 "asmparse.cpp.tab.c" +break; case 762: -#line 1898 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-0].int32; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } break; + if (!yytrial) +#line 1897 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yyvsp[0].string);} +#line 10725 "asmparse.cpp.tab.c" +break; case 763: + if (!yytrial) #line 1900 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-3].int32; - PENV->nExtCol=yypvt[-1].int32; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yypvt[-0].string);} break; +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } +#line 10732 "asmparse.cpp.tab.c" +break; case 764: -#line 1903 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-2].int32; - PENV->nExtCol=yypvt[-0].int32; PENV->nExtColEnd = static_cast(-1);} break; + if (!yytrial) +#line 1902 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; + PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yyvsp[0].string);} +#line 10740 "asmparse.cpp.tab.c" +break; case 765: -#line 1906 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-5].int32; - PENV->nExtCol=yypvt[-3].int32; PENV->nExtColEnd = yypvt[-1].int32; - PASM->SetSourceFileName(yypvt[-0].string);} break; + if (!yytrial) +#line 1905 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; + PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} +#line 10747 "asmparse.cpp.tab.c" +break; case 766: -#line 1910 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-4].int32; - PENV->nExtCol=yypvt[-2].int32; PENV->nExtColEnd = yypvt[-0].int32; } break; + if (!yytrial) +#line 1908 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; + PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; + PASM->SetSourceFileName(yyvsp[0].string);} +#line 10755 "asmparse.cpp.tab.c" +break; case 767: -#line 1913 "asmparse.y" -{ PENV->nExtLine = yypvt[-5].int32; PENV->nExtLineEnd = yypvt[-3].int32; - PENV->nExtCol=yypvt[-1].int32; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yypvt[-0].string);} break; + if (!yytrial) +#line 1912 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; + PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } +#line 10762 "asmparse.cpp.tab.c" +break; case 768: -#line 1917 "asmparse.y" -{ PENV->nExtLine = yypvt[-4].int32; PENV->nExtLineEnd = yypvt[-2].int32; - PENV->nExtCol=yypvt[-0].int32; PENV->nExtColEnd = static_cast(-1); } break; + if (!yytrial) +#line 1915 "asmparse.y" +{ PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; + PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yyvsp[0].string);} +#line 10770 "asmparse.cpp.tab.c" +break; case 769: -#line 1920 "asmparse.y" -{ PENV->nExtLine = yypvt[-7].int32; PENV->nExtLineEnd = yypvt[-5].int32; - PENV->nExtCol=yypvt[-3].int32; PENV->nExtColEnd = yypvt[-1].int32; - PASM->SetSourceFileName(yypvt[-0].string);} break; + if (!yytrial) +#line 1919 "asmparse.y" +{ PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; + PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } +#line 10777 "asmparse.cpp.tab.c" +break; case 770: -#line 1924 "asmparse.y" -{ PENV->nExtLine = yypvt[-6].int32; PENV->nExtLineEnd = yypvt[-4].int32; - PENV->nExtCol=yypvt[-2].int32; PENV->nExtColEnd = yypvt[-0].int32; } break; + if (!yytrial) +#line 1922 "asmparse.y" +{ PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; + PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; + PASM->SetSourceFileName(yyvsp[0].string);} +#line 10785 "asmparse.cpp.tab.c" +break; case 771: + if (!yytrial) #line 1926 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yypvt[-1].int32 - 1; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yypvt[-0].binstr);} break; +{ PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; + PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } +#line 10792 "asmparse.cpp.tab.c" +break; case 772: -#line 1933 "asmparse.y" -{ PASMM->AddFile(yypvt[-5].string, yypvt[-6].fileAttr|yypvt[-4].fileAttr|yypvt[-0].fileAttr, yypvt[-2].binstr); } break; + if (!yytrial) +#line 1928 "asmparse.y" +{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yyvsp[0].binstr);} +#line 10800 "asmparse.cpp.tab.c" +break; case 773: -#line 1934 "asmparse.y" -{ PASMM->AddFile(yypvt[-1].string, yypvt[-2].fileAttr|yypvt[-0].fileAttr, NULL); } break; + if (!yytrial) +#line 1935 "asmparse.y" +{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } +#line 10806 "asmparse.cpp.tab.c" +break; case 774: -#line 1937 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } break; + if (!yytrial) +#line 1936 "asmparse.y" +{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } +#line 10812 "asmparse.cpp.tab.c" +break; case 775: -#line 1938 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) (yypvt[-1].fileAttr | ffContainsNoMetaData); } break; + if (!yytrial) +#line 1939 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0; } +#line 10818 "asmparse.cpp.tab.c" +break; case 776: -#line 1941 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } break; + if (!yytrial) +#line 1940 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } +#line 10824 "asmparse.cpp.tab.c" +break; case 777: -#line 1942 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0x80000000; } break; + if (!yytrial) +#line 1943 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0; } +#line 10830 "asmparse.cpp.tab.c" +break; case 778: -#line 1945 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1944 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0x80000000; } +#line 10836 "asmparse.cpp.tab.c" +break; case 779: -#line 1948 "asmparse.y" -{ PASMM->StartAssembly(yypvt[-0].string, NULL, (DWORD)yypvt[-1].asmAttr, FALSE); } break; + if (!yytrial) +#line 1947 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 10842 "asmparse.cpp.tab.c" +break; case 780: -#line 1951 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) 0; } break; + if (!yytrial) +#line 1950 "asmparse.y" +{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } +#line 10848 "asmparse.cpp.tab.c" +break; case 781: -#line 1952 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afRetargetable); } break; -case 782: + if (!yytrial) #line 1953 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afContentType_WindowsRuntime); } break; -case 783: +{ yyval.asmAttr = (CorAssemblyFlags) 0; } +#line 10854 "asmparse.cpp.tab.c" +break; +case 782: + if (!yytrial) #line 1954 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afPA_NoPlatform); } break; -case 784: +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } +#line 10860 "asmparse.cpp.tab.c" +break; +case 783: + if (!yytrial) #line 1955 "asmparse.y" -{ yyval.asmAttr = yypvt[-2].asmAttr; } break; -case 785: +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } +#line 10866 "asmparse.cpp.tab.c" +break; +case 784: + if (!yytrial) #line 1956 "asmparse.y" -{ SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_MSIL); } break; -case 786: +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } +#line 10872 "asmparse.cpp.tab.c" +break; +case 785: + if (!yytrial) #line 1957 "asmparse.y" -{ SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_x86); } break; -case 787: +{ yyval.asmAttr = yyvsp[-2].asmAttr; } +#line 10878 "asmparse.cpp.tab.c" +break; +case 786: + if (!yytrial) #line 1958 "asmparse.y" -{ SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_AMD64); } break; -case 788: +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } +#line 10884 "asmparse.cpp.tab.c" +break; +case 787: + if (!yytrial) #line 1959 "asmparse.y" -{ SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_ARM); } break; -case 789: +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } +#line 10890 "asmparse.cpp.tab.c" +break; +case 788: + if (!yytrial) #line 1960 "asmparse.y" -{ SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_ARM64); } break; -case 792: -#line 1967 "asmparse.y" -{ PASMM->SetAssemblyHashAlg(yypvt[-0].int32); } break; -case 795: -#line 1972 "asmparse.y" -{ yyval.int32 = yypvt[-0].int32; } break; +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } +#line 10896 "asmparse.cpp.tab.c" +break; +case 789: + if (!yytrial) +#line 1961 "asmparse.y" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } +#line 10902 "asmparse.cpp.tab.c" +break; +case 790: + if (!yytrial) +#line 1962 "asmparse.y" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } +#line 10908 "asmparse.cpp.tab.c" +break; +case 793: + if (!yytrial) +#line 1969 "asmparse.y" +{ PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } +#line 10914 "asmparse.cpp.tab.c" +break; case 796: -#line 1973 "asmparse.y" -{ yyval.int32 = 0xFFFF; } break; + if (!yytrial) +#line 1974 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 10920 "asmparse.cpp.tab.c" +break; case 797: -#line 1976 "asmparse.y" -{ PASMM->SetAssemblyPublicKey(yypvt[-1].binstr); } break; + if (!yytrial) +#line 1975 "asmparse.y" +{ yyval.int32 = 0xFFFF; } +#line 10926 "asmparse.cpp.tab.c" +break; case 798: + if (!yytrial) #line 1978 "asmparse.y" -{ PASMM->SetAssemblyVer((USHORT)yypvt[-6].int32, (USHORT)yypvt[-4].int32, (USHORT)yypvt[-2].int32, (USHORT)yypvt[-0].int32); } break; +{ PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } +#line 10932 "asmparse.cpp.tab.c" +break; case 799: -#line 1979 "asmparse.y" -{ yypvt[-0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yypvt[-0].binstr,TRUE); } break; -case 800: + if (!yytrial) #line 1980 "asmparse.y" -{ PASMM->SetAssemblyLocale(yypvt[-1].binstr,FALSE); } break; -case 803: -#line 1985 "asmparse.y" -{ bParsingByteArray = TRUE; } break; +{ PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } +#line 10938 "asmparse.cpp.tab.c" +break; +case 800: + if (!yytrial) +#line 1981 "asmparse.y" +{ yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } +#line 10944 "asmparse.cpp.tab.c" +break; +case 801: + if (!yytrial) +#line 1982 "asmparse.y" +{ PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } +#line 10950 "asmparse.cpp.tab.c" +break; case 804: -#line 1988 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1987 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 10956 "asmparse.cpp.tab.c" +break; case 805: -#line 1991 "asmparse.y" -{ bParsingByteArray = TRUE; } break; + if (!yytrial) +#line 1990 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 10962 "asmparse.cpp.tab.c" +break; case 806: -#line 1995 "asmparse.y" -{ PASMM->StartAssembly(yypvt[-0].string, NULL, yypvt[-1].asmAttr, TRUE); } break; + if (!yytrial) +#line 1993 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 10968 "asmparse.cpp.tab.c" +break; case 807: + if (!yytrial) #line 1997 "asmparse.y" -{ PASMM->StartAssembly(yypvt[-2].string, yypvt[-0].string, yypvt[-3].asmAttr, TRUE); } break; -case 810: -#line 2004 "asmparse.y" -{ PASMM->SetAssemblyHashBlob(yypvt[-1].binstr); } break; -case 812: +{ PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } +#line 10974 "asmparse.cpp.tab.c" +break; +case 808: + if (!yytrial) +#line 1999 "asmparse.y" +{ PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } +#line 10980 "asmparse.cpp.tab.c" +break; +case 811: + if (!yytrial) #line 2006 "asmparse.y" -{ PASMM->SetAssemblyPublicKeyToken(yypvt[-1].binstr); } break; +{ PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } +#line 10986 "asmparse.cpp.tab.c" +break; case 813: -#line 2007 "asmparse.y" -{ PASMM->SetAssemblyAutodetect(); } break; + if (!yytrial) +#line 2008 "asmparse.y" +{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } +#line 10992 "asmparse.cpp.tab.c" +break; case 814: -#line 2010 "asmparse.y" -{ PASMM->StartComType(yypvt[-0].string, yypvt[-1].exptAttr);} break; + if (!yytrial) +#line 2009 "asmparse.y" +{ PASMM->SetAssemblyAutodetect(); } +#line 10998 "asmparse.cpp.tab.c" +break; case 815: -#line 2013 "asmparse.y" -{ PASMM->StartComType(yypvt[-0].string, yypvt[-1].exptAttr); } break; + if (!yytrial) +#line 2012 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} +#line 11004 "asmparse.cpp.tab.c" +break; case 816: -#line 2016 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) 0; } break; + if (!yytrial) +#line 2015 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } +#line 11010 "asmparse.cpp.tab.c" +break; case 817: -#line 2017 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdNotPublic); } break; -case 818: + if (!yytrial) #line 2018 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdPublic); } break; -case 819: +{ yyval.exptAttr = (CorTypeAttr) 0; } +#line 11016 "asmparse.cpp.tab.c" +break; +case 818: + if (!yytrial) #line 2019 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdForwarder); } break; -case 820: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } +#line 11022 "asmparse.cpp.tab.c" +break; +case 819: + if (!yytrial) #line 2020 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedPublic); } break; -case 821: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } +#line 11028 "asmparse.cpp.tab.c" +break; +case 820: + if (!yytrial) #line 2021 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedPrivate); } break; -case 822: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } +#line 11034 "asmparse.cpp.tab.c" +break; +case 821: + if (!yytrial) #line 2022 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamily); } break; -case 823: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } +#line 11040 "asmparse.cpp.tab.c" +break; +case 822: + if (!yytrial) #line 2023 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedAssembly); } break; -case 824: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } +#line 11046 "asmparse.cpp.tab.c" +break; +case 823: + if (!yytrial) #line 2024 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamANDAssem); } break; -case 825: +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } +#line 11052 "asmparse.cpp.tab.c" +break; +case 824: + if (!yytrial) #line 2025 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamORAssem); } break; -case 828: -#line 2032 "asmparse.y" -{ PASMM->SetComTypeFile(yypvt[-0].string); } break; +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } +#line 11058 "asmparse.cpp.tab.c" +break; +case 825: + if (!yytrial) +#line 2026 "asmparse.y" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } +#line 11064 "asmparse.cpp.tab.c" +break; +case 826: + if (!yytrial) +#line 2027 "asmparse.y" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } +#line 11070 "asmparse.cpp.tab.c" +break; case 829: -#line 2033 "asmparse.y" -{ PASMM->SetComTypeComType(yypvt[-0].string); } break; -case 830: + if (!yytrial) #line 2034 "asmparse.y" -{ PASMM->SetComTypeAsmRef(yypvt[-0].string); } break; -case 831: +{ PASMM->SetComTypeFile(yyvsp[0].string); } +#line 11076 "asmparse.cpp.tab.c" +break; +case 830: + if (!yytrial) #line 2035 "asmparse.y" -{ if(!PASMM->SetComTypeImplementationTok(yypvt[-1].int32)) - PASM->report->error("Invalid implementation of exported type\n"); } break; +{ PASMM->SetComTypeComType(yyvsp[0].string); } +#line 11082 "asmparse.cpp.tab.c" +break; +case 831: + if (!yytrial) +#line 2036 "asmparse.y" +{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } +#line 11088 "asmparse.cpp.tab.c" +break; case 832: + if (!yytrial) #line 2037 "asmparse.y" -{ if(!PASMM->SetComTypeClassTok(yypvt[-0].int32)) - PASM->report->error("Invalid TypeDefID of exported type\n"); } break; -case 835: -#line 2043 "asmparse.y" -{ PASMM->StartManifestRes(yypvt[-0].string, yypvt[-0].string, yypvt[-1].manresAttr); } break; +{ if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) + PASM->report->error("Invalid implementation of exported type\n"); } +#line 11095 "asmparse.cpp.tab.c" +break; +case 833: + if (!yytrial) +#line 2039 "asmparse.y" +{ if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) + PASM->report->error("Invalid TypeDefID of exported type\n"); } +#line 11102 "asmparse.cpp.tab.c" +break; case 836: + if (!yytrial) #line 2045 "asmparse.y" -{ PASMM->StartManifestRes(yypvt[-2].string, yypvt[-0].string, yypvt[-3].manresAttr); } break; +{ PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } +#line 11108 "asmparse.cpp.tab.c" +break; case 837: -#line 2048 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) 0; } break; + if (!yytrial) +#line 2047 "asmparse.y" +{ PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } +#line 11114 "asmparse.cpp.tab.c" +break; case 838: -#line 2049 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) (yypvt[-1].manresAttr | mrPublic); } break; -case 839: + if (!yytrial) #line 2050 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) (yypvt[-1].manresAttr | mrPrivate); } break; -case 842: -#line 2057 "asmparse.y" -{ PASMM->SetManifestResFile(yypvt[-2].string, (ULONG)yypvt[-0].int32); } break; +{ yyval.manresAttr = (CorManifestResourceFlags) 0; } +#line 11120 "asmparse.cpp.tab.c" +break; +case 839: + if (!yytrial) +#line 2051 "asmparse.y" +{ yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } +#line 11126 "asmparse.cpp.tab.c" +break; +case 840: + if (!yytrial) +#line 2052 "asmparse.y" +{ yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } +#line 11132 "asmparse.cpp.tab.c" +break; case 843: -#line 2058 "asmparse.y" -{ PASMM->SetManifestResAsmRef(yypvt[-0].string); } break;/* End of actions */ -#line 329 "F:\\NetFXDev1\\src\\tools\\devdiv\\amd64\\yypars.c" - } - } - goto yystack; /* stack new state and value */ - } -#pragma warning(default:102) + if (!yytrial) +#line 2059 "asmparse.y" +{ PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } +#line 11138 "asmparse.cpp.tab.c" +break; +case 844: + if (!yytrial) +#line 2060 "asmparse.y" +{ PASMM->SetManifestResAsmRef(yyvsp[0].string); } +#line 11144 "asmparse.cpp.tab.c" +break; +#line 11146 "asmparse.cpp.tab.c" +#line 802 "btyaccpa.ske" + default: + break; + } -#ifdef YYDUMP -YYLOCAL void YYNEAR YYPASCAL yydumpinfo(void) -{ - short stackindex; - short valindex; +#if YYDEBUG && defined(YYDBPR) + if (yydebug) { + printf("yydebug[%d]: after reduction, result is ", yytrial!=0); + YYDBPR(yyps->val); + printf("\n"); + } +#endif - //dump yys - printf("short yys[%d] {\n", YYMAXDEPTH); - for (stackindex = 0; stackindex < YYMAXDEPTH; stackindex++){ - if (stackindex) - printf(", %s", stackindex % 10 ? "\0" : "\n"); - printf("%6d", yys[stackindex]); - } - printf("\n};\n"); +#ifdef YYPOSN + /* Perform user-defined position reduction */ +#ifdef YYREDUCEPOSNFUNC + if(!yytrial) { + YYCALLREDUCEPOSN(YYREDUCEPOSNFUNCARG); + } +#endif +#endif /* YYPOSN */ - //dump yyv - printf("YYSTYPE yyv[%d] {\n", YYMAXDEPTH); - for (valindex = 0; valindex < YYMAXDEPTH; valindex++){ - if (valindex) - printf(", %s", valindex % 5 ? "\0" : "\n"); - printf("%#*x", 3+sizeof(YYSTYPE), yyv[valindex]); - } - printf("\n};\n"); - } + yyps->ssp -= yym; + yystate = *(yyps->ssp); + yyps->vsp -= yym; +#ifdef YYPOSN + yyps->psp -= yym; +#endif /* YYPOSN */ + + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) { +#if YYDEBUG + if (yydebug) { + printf("yydebug[%d,%d]: after reduction, shifting from state 0 to state " + "%d\n", (int)yydepth, yytrial!=0, YYFINAL); + } +#endif + yystate = YYFINAL; + *++(yyps->ssp) = YYFINAL; + *++(yyps->vsp) = yyps->val; + yyretlval = yyps->val; /* return value of root non-terminal to yylval */ +#ifdef YYPOSN + *++(yyps->psp) = yyps->pos; + yyretposn = yyps->pos; /* return value of root position to yyposn */ +#endif /* YYPOSN */ + if (yychar < 0) { + if ((yychar = YYLex1()) < 0) { + yychar = 0; + } +#if YYDEBUG + if (yydebug) { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug[%d,%d]: state %d, reading %d (%s)\n", + (int)yydepth, yytrial!=0, YYFINAL, yychar, yys); + } +#endif + } + if (yychar == 0) goto yyaccept; + goto yyloop; + } + + if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yystate) { + yystate = yytable[yyn]; + } else { + yystate = yydgoto[yym]; + } +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: after reduction, shifting from state %d to state " + "%d\n", (int)yydepth, yytrial!=0, *(yyps->ssp), yystate); +#endif + if (yyps->ssp >= yyps->ss + yyps->stacksize - 1) { + YYMoreStack(yyps); + } + *++(yyps->ssp) = yystate; + *++(yyps->vsp) = yyps->val; +#ifdef YYPOSN + *++(yyps->psp) = yyps->pos; +#endif /* YYPOSN */ + goto yyloop; + + + /* + ** Reduction declares that this path is valid. + ** Set yypath and do a full parse + */ +yyvalid: + if (yypath) { + goto yyabort; + } + while (yyps->save) { + struct yyparsestate *save = yyps->save; + yyps->save = save->save; + save->save = yypath; + yypath = save; + } +#if YYDEBUG + if (yydebug) + printf("yydebug[%d,%d]: CONFLICT trial successful, backtracking to state " + "%d, %d tokens\n", (int)yydepth, yytrial!=0, yypath->state, + (int)(yylvp - yylvals - yypath->lexeme)); +#endif + if(yyerrctx) { + YYFreeState(yyerrctx); yyerrctx = NULL; + } + yychar = -1; + yyps->ssp = yyps->ss + (yypath->ssp - yypath->ss); + memcpy (yyps->ss, yypath->ss, (yyps->ssp - yyps->ss + 1) * sizeof(Yshort)); + yylexp = yylexemes + yypath->lexeme; + yyps->vsp = yyps->vs + (yypath->vsp - yypath->vs); + YYSCopy(yyps->vs, yypath->vs, yyps->vsp - yyps->vs + 1); + yylvp = yylvals + yypath->lexeme; +#ifdef YYPOSN + yyps->psp = yyps->ps + (yypath->psp - yypath->ps); + YYPCopy(yyps->ps, yypath->ps, yyps->psp - yyps->ps + 1); + yylpp = yylpsns + yypath->lexeme; +#endif /* YYPOSN */ + yystate = yypath->state; + goto yyloop; + +yyabort: + if(yyerrctx) { + YYFreeState(yyerrctx); yyerrctx = NULL; + } + + { + YYSTYPE *pv; +#ifdef YYPOSN + YYPOSN *pp = yyps->ps; #endif +#ifdef YYDESTRUCT + Yshort *ps = yyps->ss; +#endif + for(pv=yyps->vs; pvvsp; pv++) { + YYDELETEVAL(*pv,2); +#if defined(YYDESTRUCT) + YYDESTRUCT(yytrial!=0, yyastable[*ps++], pv, pp++); +#endif /* YYDESTRUCT */ + } +#ifdef YYPOSN + for(pp=yyps->ps; pppsp; pp++) { + YYDELETEPOSN(*pp,2); + } +#endif /* YYPOSN */ + } + + while (yyps) { + struct yyparsestate *save = yyps; + yyps = save->save; + YYFreeState(save); + } + while (yypath) { + struct yyparsestate *save = yypath; + yypath = save->save; + YYFreeState(save); + } + return (1); + + +yyaccept: + if (yyps->save) goto yyvalid; + if(yyerrctx) { + YYFreeState(yyerrctx); yyerrctx = NULL; + } + while (yyps) { + struct yyparsestate *save = yyps; + yyps = save->save; + YYFreeState(save); + } + while (yypath) { + struct yyparsestate *save = yypath; + yypath = save->save; + YYFreeState(save); + } + return (0); +} diff --git a/src/coreclr/ilasm/typar.hpp b/src/coreclr/ilasm/typar.hpp index aee0c32c45262..72e7cc46709db 100644 --- a/src/coreclr/ilasm/typar.hpp +++ b/src/coreclr/ilasm/typar.hpp @@ -63,6 +63,12 @@ class TyParList { bound->appendInt32(0); // zero terminator attrs = a; name = n; next = nx; }; + TyParList(BinStr* a, BinStr* b, LPCUTF8 n, TyParList* nx = NULL) + { + bound = (b == NULL) ? new BinStr() : b; + bound->appendInt32(0); // zero terminator + type = a; name = n; next = nx; + }; ~TyParList() { if( bound) delete bound; @@ -171,6 +177,7 @@ class TyParList { BinStr* Bound() { return bound; }; private: BinStr* bound; + BinStr* type; LPCUTF8 name; TyParList* next; DWORD attrs; diff --git a/src/coreclr/inc/il_kywd.h b/src/coreclr/inc/il_kywd.h index 3a3b86a85fbeb..3795e999a52a9 100644 --- a/src/coreclr/inc/il_kywd.h +++ b/src/coreclr/inc/il_kywd.h @@ -268,6 +268,7 @@ /* Null reference keyword for InitOpt */ KYWD( "nullref", NULLREF_, NO_VALUE ) KYWD( "type", TYPE_, NO_VALUE ) + KYWD( "const", CONST_, NO_VALUE ) KYWD( ".interfaceimpl", _INTERFACEIMPL, NO_VALUE ) /* Header flags keywords */ KYWD( ".subsystem", _SUBSYSTEM, NO_VALUE ) From 72fcce6d526b0b131a814c03a11d02a319f7dc20 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 21 Jul 2023 19:03:42 +0900 Subject: [PATCH 02/80] Fixes to parsing and add basic binary layout support --- src/coreclr/ilasm/asmparse.y | 11 +- src/coreclr/ilasm/assem.cpp | 2 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 10967 +++++++++-------- src/coreclr/ilasm/typar.hpp | 29 +- src/coreclr/inc/cor.h | 4 +- src/coreclr/inc/metamodelpub.h | 1 + src/coreclr/md/compiler/emit.cpp | 30 +- src/coreclr/md/compiler/regmeta.h | 6 +- src/coreclr/md/inc/metamodel.h | 8 + src/coreclr/md/runtime/metamodelcolumndefs.h | 1 + 10 files changed, 5566 insertions(+), 5493 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 41fef5232e0a7..62454711762f5 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -147,7 +147,7 @@ /* nonTerminals */ %type dottedName id methodName atOpt slashedName %type labels -%type callConv callKind int32 customHead customHeadWithOwner vtfixupAttr paramAttr ddItemCount variantType repeatOpt truefalse typarAttrib typarAttribs +%type callConv callKind int32 customHead customHeadWithOwner vtfixupAttr paramAttr ddItemCount variantType repeatOpt truefalse typarAttrib typarAttribs conTyparAttrib conTyparAttribs %type iidParamIndex genArity genArityNotEmpty %type float64 %type int64 @@ -496,7 +496,14 @@ typarAttribs : /* EMPTY */ { $$ = 0; } | typarAttrib typarAttribs { $$ = $1 | $2; } ; -typars : CONST_ type dottedName typarsRest {$$ = new TyParList($2, NULL, $3, $4); } +conTyparAttrib : FLAGS_ '(' int32 ')' { $$ = (CorGenericParamAttr)$3; } + ; + +conTyparAttribs : /* EMPTY */ { $$ = 0; } + | conTyparAttrib conTyparAttribs { $$ = $1 | $2; } + ; + +typars : CONST_ conTyparAttribs typeSpec dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } | typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} | typarAttribs dottedName typarsRest {$$ = new TyParList($1, NULL, $2, $3);} ; diff --git a/src/coreclr/ilasm/assem.cpp b/src/coreclr/ilasm/assem.cpp index dd2c91ac093ac..e6326e5558445 100644 --- a/src/coreclr/ilasm/assem.cpp +++ b/src/coreclr/ilasm/assem.cpp @@ -1118,7 +1118,7 @@ BOOL Assembler::EmitClass(Class *pClass) mdGenericParam tkGP = mdTokenNil; for(i = 0; i < pClass->m_NumTyPars; i++) { - if (FAILED(m_pEmitter->DefineGenericParam(pClass->m_cl, i, pClass->m_TyPars[i].Attrs(), pClass->m_TyPars[i].Name(), 0, &tkNil, &tkGP))) + if (FAILED(m_pEmitter->DefineGenericParam(pClass->m_cl, i, pClass->m_TyPars[i].Attrs(), pClass->m_TyPars[i].Name(), pClass->m_TyPars[i].Type(), &tkNil, &tkGP))) { report->error("Unable to define generic param: %s'\n", pClass->m_TyPars[i].Name()); } diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 55b8cdb89b762..0a8d27134f1a0 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -345,91 +345,91 @@ typedef union { #define CONST_ 543 #define YYERRCODE 256 static int yylhs[] = { -1, - 0, 0, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 135, 135, - 36, 36, 132, 132, 132, 2, 2, 1, 1, 1, - 9, 24, 24, 23, 23, 23, 133, 133, 133, 133, - 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 93, 93, 93, 93, 94, 94, 94, 94, 10, 11, - 73, 72, 72, 59, 61, 61, 61, 62, 62, 62, - 65, 65, 131, 131, 131, 60, 60, 60, 60, 60, - 60, 129, 129, 129, 118, 12, 12, 12, 12, 12, - 12, 117, 136, 112, 137, 138, 110, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 139, 139, 140, 140, 111, 111, - 141, 141, 56, 56, 57, 57, 69, 69, 18, 18, - 18, 18, 18, 18, 18, 19, 19, 68, 68, 68, - 67, 67, 58, 21, 21, 22, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 115, 79, 79, + 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 137, 137, + 38, 38, 134, 134, 134, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 135, 135, 135, 135, + 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 95, 95, 95, 95, 96, 96, 96, 96, 10, 11, + 75, 74, 74, 61, 63, 63, 63, 64, 64, 64, + 67, 67, 133, 133, 133, 62, 62, 62, 62, 62, + 62, 131, 131, 131, 120, 12, 12, 12, 12, 12, + 12, 119, 138, 114, 139, 140, 112, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 4, 4, 35, 35, 16, 16, - 75, 75, 75, 75, 75, 75, 75, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, 8, 76, - 74, 74, 74, 74, 74, 74, 143, 143, 81, 81, - 81, 144, 144, 149, 149, 149, 149, 149, 149, 149, - 149, 145, 82, 82, 82, 146, 146, 150, 150, 150, - 150, 150, 150, 150, 151, 38, 38, 34, 34, 152, - 113, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 3, 3, 3, 13, 13, 13, 13, 13, 80, 80, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 141, 141, 142, 142, 113, 113, + 143, 143, 58, 58, 59, 59, 71, 71, 18, 18, + 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, + 70, 70, 70, 69, 69, 60, 23, 23, 24, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 117, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 4, 4, 37, + 37, 16, 16, 77, 77, 77, 77, 77, 77, 77, + 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 78, 76, 76, 76, 76, 76, 76, 145, + 145, 83, 83, 83, 146, 146, 151, 151, 151, 151, + 151, 151, 151, 151, 147, 84, 84, 84, 148, 148, + 152, 152, 152, 152, 152, 152, 152, 153, 40, 40, + 36, 36, 154, 115, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 153, 114, 114, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 157, 158, 155, 160, 160, 159, 159, - 159, 162, 161, 161, 161, 161, 165, 165, 165, 168, - 163, 166, 167, 164, 164, 164, 116, 169, 169, 171, - 171, 171, 170, 170, 172, 172, 14, 14, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 174, 31, 31, 32, 32, 39, 39, 39, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 42, 42, 42, 43, - 43, 43, 47, 47, 46, 46, 45, 45, 44, 44, - 48, 48, 49, 49, 49, 50, 50, 50, 50, 51, - 51, 148, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 156, 156, 156, 156, + 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 3, 3, 3, 13, 13, 13, 13, + 13, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 155, 116, 116, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 6, - 6, 6, 6, 6, 53, 53, 54, 54, 55, 55, - 25, 25, 26, 26, 27, 27, 27, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 5, 5, 71, - 71, 71, 71, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 20, 20, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 159, 160, 157, 162, + 162, 161, 161, 161, 164, 163, 163, 163, 163, 167, + 167, 167, 170, 165, 168, 169, 166, 166, 166, 118, + 171, 171, 173, 173, 173, 172, 172, 174, 174, 14, + 14, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 176, 33, 33, 34, 34, + 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, + 44, 44, 45, 45, 45, 49, 49, 48, 48, 47, + 47, 46, 46, 50, 50, 51, 51, 51, 52, 52, + 52, 52, 53, 53, 150, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 6, 6, 6, 6, 6, 55, 55, 56, + 56, 57, 57, 27, 27, 28, 28, 29, 29, 29, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 5, 5, 73, 73, 73, 73, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 30, 30, 29, 29, 29, 29, 29, 130, 130, - 130, 130, 130, 130, 64, 64, 64, 63, 63, 87, - 87, 84, 84, 85, 17, 17, 37, 37, 37, 37, - 37, 37, 37, 37, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 175, - 175, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 120, 120, 88, 88, 89, 89, 176, 121, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 122, 122, 177, 177, 177, 66, 66, 178, 178, 178, - 178, 178, 178, 179, 181, 180, 123, 123, 124, 124, - 182, 182, 182, 182, 125, 147, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 126, 126, 183, 183, - 183, 183, 183, 183, 183, 127, 127, 92, 92, 92, - 128, 128, 184, 184, 184, 184, + 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 32, 32, 31, 31, 31, 31, + 31, 132, 132, 132, 132, 132, 132, 66, 66, 66, + 65, 65, 89, 89, 86, 86, 87, 17, 17, 39, + 39, 39, 39, 39, 39, 39, 39, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 177, 177, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 122, 122, 90, 90, 91, + 91, 178, 123, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 124, 124, 179, 179, 179, 68, 68, + 180, 180, 180, 180, 180, 180, 181, 183, 182, 125, + 125, 126, 126, 184, 184, 184, 184, 127, 149, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 128, + 128, 185, 185, 185, 185, 185, 185, 185, 129, 129, + 94, 94, 94, 130, 130, 186, 186, 186, 186, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -447,583 +447,583 @@ static int yylen[] = { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 5, 0, 2, 0, 2, 0, 2, 3, 1, 0, 1, 1, 3, 0, 3, 1, 1, - 1, 1, 1, 1, 4, 0, 2, 4, 4, 3, - 0, 2, 3, 0, 1, 5, 3, 4, 4, 4, - 1, 1, 1, 1, 1, 2, 2, 4, 13, 22, - 1, 1, 5, 3, 7, 5, 4, 7, 0, 2, - 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, - 2, 2, 2, 5, 0, 2, 0, 2, 0, 3, - 9, 9, 7, 7, 1, 1, 1, 2, 2, 1, - 4, 0, 1, 1, 2, 2, 2, 2, 1, 4, - 2, 5, 3, 2, 2, 1, 4, 3, 0, 2, - 2, 0, 2, 2, 2, 2, 2, 1, 1, 1, - 1, 9, 0, 2, 2, 0, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 0, 4, 1, 3, 1, - 13, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 4, 0, 2, 4, 0, 2, + 5, 4, 3, 0, 2, 3, 0, 1, 5, 3, + 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, + 4, 13, 22, 1, 1, 5, 3, 7, 5, 4, + 7, 0, 2, 2, 2, 2, 2, 2, 2, 5, + 2, 2, 2, 2, 2, 2, 5, 0, 2, 0, + 2, 0, 3, 9, 9, 7, 7, 1, 1, 1, + 2, 2, 1, 4, 0, 1, 1, 2, 2, 2, + 2, 1, 4, 2, 5, 3, 2, 2, 1, 4, + 3, 0, 2, 2, 0, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 9, 0, 2, 2, 0, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 0, 4, + 1, 3, 1, 13, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 5, 8, 6, 5, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 4, 4, 4, 4, 5, - 1, 1, 1, 0, 4, 4, 4, 4, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 5, 1, 0, 2, 2, 1, 2, - 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 4, 6, 4, 4, 11, 1, 5, 3, - 7, 5, 5, 3, 1, 2, 2, 1, 2, 4, - 4, 1, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 1, 1, 1, 4, 4, 2, 4, 2, 0, - 1, 1, 3, 1, 3, 1, 0, 3, 5, 4, - 3, 5, 5, 5, 5, 5, 5, 2, 2, 2, - 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, - 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, - 4, 3, 2, 0, 1, 1, 2, 1, 1, 1, - 1, 4, 4, 5, 4, 4, 4, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 0, 2, 2, 0, - 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 5, 3, 2, - 2, 2, 2, 2, 5, 4, 6, 2, 4, 0, - 3, 3, 1, 1, 0, 3, 0, 1, 1, 3, - 0, 1, 1, 3, 1, 3, 4, 4, 4, 4, - 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 3, 4, 1, 0, 10, 6, 5, 6, 1, 1, + 2, 2, 2, 5, 8, 6, 5, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, + 4, 4, 5, 1, 1, 1, 0, 4, 4, 4, + 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 5, 1, 0, 2, + 2, 1, 2, 4, 5, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 4, 6, 4, 4, 11, + 1, 5, 3, 7, 5, 5, 3, 1, 2, 2, + 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, + 4, 2, 0, 1, 1, 3, 1, 3, 1, 0, + 3, 5, 4, 3, 5, 5, 5, 5, 5, 5, + 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, + 4, 4, 4, 4, 3, 2, 0, 1, 1, 2, + 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 7, 7, 7, 7, 7, 0, + 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, + 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, + 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, + 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, + 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, + 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 2, 3, - 4, 6, 5, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 2, 2, 4, 1, 2, 1, 2, - 1, 2, 1, 2, 1, 2, 1, 1, 0, 5, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 3, 2, 3, 4, 2, 2, 2, 5, 5, - 7, 4, 3, 2, 3, 2, 1, 1, 2, 3, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 2, 6, 7, - 3, 3, 3, 6, 0, 1, 3, 5, 6, 4, - 4, 1, 3, 3, 1, 1, 1, 1, 4, 1, - 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 3, 2, 3, 4, 2, 2, + 2, 5, 5, 7, 4, 3, 2, 3, 2, 1, + 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, + 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, + 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, + 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 5, 4, 7, 6, 7, 6, 9, - 8, 3, 8, 4, 0, 2, 0, 1, 3, 3, - 0, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 0, 2, 3, 1, 1, 1, 1, 3, 8, 2, - 3, 1, 1, 3, 3, 3, 4, 6, 0, 2, - 3, 1, 3, 1, 4, 3, 0, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 0, 2, 2, 3, - 3, 4, 2, 1, 1, 3, 5, 0, 2, 2, - 0, 2, 4, 3, 1, 1, + 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, + 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, + 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, + 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, + 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, + 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, + 0, 2, 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 265, 0, 0, 0, 0, 760, - 761, 0, 0, 0, 0, 0, 0, 838, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 0, 0, 841, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, - 0, 0, 336, 6, 7, 8, 9, 10, 11, 0, + 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 272, 0, 0, 817, 36, 39, 37, 0, - 38, 0, 189, 391, 392, 0, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 0, 0, 0, 216, 217, 0, 0, 223, 224, - 0, 0, 0, 0, 0, 220, 0, 71, 215, 0, - 0, 0, 0, 781, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 554, 711, 0, 688, 696, - 694, 0, 697, 698, 699, 700, 701, 702, 707, 708, - 709, 710, 671, 695, 0, 687, 0, 0, 0, 492, - 0, 555, 556, 557, 0, 0, 0, 0, 0, 692, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 436, 0, 0, 0, 0, 139, 1, 0, - 791, 809, 827, 841, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, - 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 560, 0, 553, 0, 31, 0, 0, 0, 0, 0, - 0, 225, 226, 227, 228, 218, 219, 72, 0, 73, - 0, 0, 103, 0, 21, 776, 0, 0, 782, 783, - 784, 786, 0, 787, 788, 789, 790, 0, 839, 840, - 0, 0, 0, 703, 704, 705, 706, 670, 0, 673, - 0, 689, 691, 234, 235, 0, 0, 0, 0, 0, - 0, 0, 684, 0, 678, 0, 0, 0, 0, 0, - 677, 676, 0, 0, 0, 0, 0, 231, 0, 0, - 0, 64, 437, 68, 722, 0, 0, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 0, 372, 0, 335, 343, 344, 0, 0, 0, 0, - 365, 5, 0, 507, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 345, 349, 348, - 351, 350, 352, 0, 337, 339, 346, 358, 336, 0, + 108, 0, 275, 0, 0, 820, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, + 0, 0, 0, 784, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 557, 714, 0, 691, 699, + 697, 0, 700, 701, 702, 703, 704, 705, 710, 711, + 712, 713, 674, 698, 0, 690, 0, 0, 0, 495, + 0, 558, 559, 560, 0, 0, 0, 0, 0, 695, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 439, 0, 0, 0, 0, 139, 1, 0, + 794, 812, 830, 844, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, + 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 0, 556, 0, 31, 0, 0, 0, 0, 0, + 0, 228, 229, 230, 231, 221, 222, 72, 0, 73, + 0, 0, 103, 0, 21, 779, 0, 0, 785, 786, + 787, 789, 0, 790, 791, 792, 793, 0, 842, 843, + 0, 0, 0, 706, 707, 708, 709, 673, 0, 676, + 0, 692, 694, 237, 238, 0, 0, 0, 0, 0, + 0, 0, 687, 0, 681, 0, 0, 0, 0, 0, + 680, 679, 0, 0, 0, 0, 0, 234, 0, 0, + 0, 64, 440, 68, 725, 0, 0, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 0, 375, 0, 338, 346, 347, 0, 0, 0, 0, + 368, 5, 0, 510, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 348, 352, 351, + 354, 353, 355, 0, 340, 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, 123, 133, 0, 136, 0, - 107, 0, 278, 273, 274, 275, 276, 277, 281, 279, - 289, 280, 282, 283, 284, 285, 286, 287, 288, 0, - 290, 314, 0, 0, 0, 413, 0, 412, 0, 411, - 0, 410, 0, 408, 0, 409, 433, 0, 0, 0, - 0, 772, 762, 0, 0, 820, 819, 818, 0, 0, - 0, 210, 0, 196, 190, 191, 192, 193, 198, 199, - 200, 201, 195, 202, 203, 194, 0, 0, 388, 0, - 0, 0, 0, 0, 731, 0, 730, 0, 0, 0, - 0, 0, 311, 312, 0, 0, 0, 0, 75, 69, - 0, 96, 778, 0, 0, 785, 0, 672, 690, 0, - 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, - 0, 715, 674, 0, 712, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 27, 0, 105, 239, 253, - 0, 0, 817, 0, 0, 3, 0, 336, 171, 172, - 174, 173, 175, 181, 182, 140, 0, 0, 0, 4, - 338, 340, 0, 0, 0, 0, 0, 0, 0, 347, - 509, 508, 510, 511, 44, 0, 0, 506, 512, 513, - 516, 515, 517, 521, 522, 0, 520, 523, 0, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 382, 0, - 380, 383, 366, 0, 0, 0, 0, 0, 0, 0, - 0, 369, 0, 0, 0, 0, 12, 794, 802, 803, - 792, 795, 0, 0, 814, 0, 0, 13, 0, 812, - 0, 810, 0, 0, 0, 0, 14, 834, 835, 828, - 0, 0, 15, 845, 846, 842, 0, 125, 126, 127, + 107, 0, 281, 276, 277, 278, 279, 280, 284, 282, + 292, 283, 285, 286, 287, 288, 289, 290, 291, 0, + 293, 317, 0, 0, 0, 416, 0, 415, 0, 414, + 0, 413, 0, 411, 0, 412, 436, 0, 0, 0, + 0, 775, 765, 0, 0, 823, 822, 821, 0, 0, + 0, 213, 0, 199, 193, 194, 195, 196, 201, 202, + 203, 204, 198, 205, 206, 197, 0, 0, 391, 0, + 0, 0, 0, 0, 734, 0, 733, 0, 0, 0, + 0, 0, 314, 315, 0, 0, 0, 0, 75, 69, + 0, 96, 781, 0, 0, 788, 0, 675, 693, 0, + 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, + 0, 718, 677, 0, 715, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 27, 0, 105, 242, 256, + 0, 0, 820, 0, 0, 3, 0, 339, 174, 175, + 177, 176, 178, 184, 185, 140, 0, 0, 0, 4, + 341, 343, 0, 0, 0, 0, 0, 0, 0, 350, + 512, 511, 513, 514, 44, 0, 0, 509, 515, 516, + 519, 518, 520, 524, 525, 0, 523, 526, 0, 0, + 0, 0, 531, 0, 0, 0, 0, 0, 385, 0, + 383, 386, 369, 0, 0, 0, 0, 0, 0, 0, + 0, 372, 0, 0, 0, 0, 12, 797, 805, 806, + 795, 798, 0, 0, 817, 0, 0, 13, 0, 815, + 0, 813, 0, 0, 0, 0, 14, 837, 838, 831, + 0, 0, 15, 848, 849, 845, 0, 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, - 0, 401, 0, 0, 821, 822, 823, 824, 825, 826, + 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, + 0, 404, 0, 0, 824, 825, 826, 827, 828, 829, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 32, 0, 221, 230, 0, 0, + 0, 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 675, 682, - 0, 0, 0, 0, 0, 176, 177, 0, 0, 0, - 0, 0, 139, 0, 242, 256, 827, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 678, 685, + 0, 0, 0, 0, 0, 179, 180, 0, 0, 0, + 0, 0, 139, 0, 245, 259, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 514, 0, 545, 0, - 0, 0, 543, 364, 381, 367, 0, 384, 373, 374, - 375, 376, 378, 379, 377, 0, 0, 0, 0, 797, - 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 833, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 0, 0, 0, 517, 0, 548, 0, + 0, 0, 546, 367, 384, 370, 0, 387, 376, 377, + 378, 379, 381, 382, 380, 0, 0, 0, 0, 800, + 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 836, 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, - 0, 0, 0, 395, 400, 0, 764, 0, 0, 580, - 618, 572, 573, 0, 607, 574, 575, 576, 577, 578, - 579, 609, 585, 586, 587, 588, 0, 0, 0, 615, - 0, 0, 0, 0, 570, 571, 594, 595, 596, 613, - 597, 598, 599, 600, 0, 0, 603, 0, 611, 617, - 270, 0, 0, 0, 0, 0, 0, 0, 719, 0, - 0, 0, 0, 724, 0, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, + 0, 0, 0, 398, 403, 0, 767, 0, 0, 583, + 621, 575, 576, 0, 610, 577, 578, 579, 580, 581, + 582, 612, 588, 589, 590, 591, 0, 0, 0, 618, + 0, 0, 0, 0, 573, 574, 597, 598, 599, 616, + 600, 601, 602, 603, 0, 0, 606, 0, 614, 620, + 273, 0, 0, 0, 0, 0, 0, 0, 722, 0, + 0, 0, 0, 727, 0, 35, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 441, 0, 77, 0, 97, 98, 0, 99, 100, - 101, 0, 0, 0, 0, 679, 680, 717, 713, 0, - 0, 0, 241, 240, 0, 0, 255, 254, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, - 0, 355, 0, 0, 0, 0, 0, 0, 356, 0, - 0, 0, 0, 526, 0, 0, 529, 0, 0, 0, - 341, 0, 0, 0, 370, 371, 793, 804, 0, 806, - 798, 801, 779, 805, 811, 813, 0, 0, 0, 0, - 0, 134, 0, 0, 157, 0, 0, 0, 148, 141, - 291, 0, 0, 0, 302, 303, 304, 305, 297, 298, - 299, 296, 300, 301, 0, 0, 294, 0, 0, 0, - 0, 0, 0, 399, 407, 406, 405, 404, 402, 403, - 0, 0, 204, 608, 581, 582, 583, 584, 0, 604, - 610, 612, 616, 0, 0, 0, 614, 601, 602, 656, - 625, 626, 0, 653, 627, 628, 629, 630, 631, 632, - 655, 637, 638, 639, 640, 623, 624, 645, 646, 647, - 648, 649, 650, 651, 652, 622, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 641, - 0, 0, 589, 197, 0, 206, 0, 188, 0, 735, - 736, 738, 737, 0, 734, 0, 733, 720, 0, 727, - 78, 75, 70, 0, 0, 536, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 82, 0, 80, 0, 95, - 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 169, 248, 249, 250, - 251, 243, 0, 0, 0, 170, 262, 261, 263, 264, - 257, 178, 0, 359, 0, 362, 363, 0, 45, 46, - 0, 525, 0, 531, 532, 342, 0, 544, 0, 0, - 0, 832, 843, 0, 0, 0, 0, 145, 0, 160, - 0, 0, 293, 0, 0, 0, 315, 316, 317, 318, - 0, 0, 768, 0, 766, 0, 0, 0, 0, 654, - 633, 634, 635, 636, 643, 0, 0, 644, 0, 590, - 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 440, 0, 208, 438, 0, - 0, 78, 0, 0, 0, 214, 213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 87, 86, 0, 432, 773, 681, - 0, 183, 0, 186, 0, 0, 244, 245, 246, 247, - 260, 258, 259, 354, 0, 0, 527, 547, 385, 386, - 0, 155, 158, 163, 0, 162, 159, 0, 0, 306, - 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 642, 0, 0, 591, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 728, 67, 166, 0, 0, - 431, 0, 430, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 421, 0, 420, 0, 419, 0, 418, 0, - 416, 414, 0, 415, 417, 0, 429, 0, 428, 0, - 427, 0, 426, 0, 447, 0, 443, 442, 0, 446, - 0, 445, 0, 0, 90, 0, 0, 0, 0, 0, - 0, 361, 0, 0, 146, 292, 310, 267, 0, 770, - 0, 0, 567, 0, 593, 0, 739, 0, 0, 0, - 744, 729, 212, 211, 481, 477, 425, 0, 424, 0, - 423, 0, 422, 0, 479, 477, 475, 473, 467, 470, - 479, 477, 475, 473, 490, 483, 444, 486, 89, 91, - 0, 0, 185, 0, 0, 0, 0, 165, 0, 0, - 620, 0, 566, 0, 592, 0, 0, 0, 0, 0, - 479, 477, 475, 473, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, - 0, 0, 799, 319, 0, 741, 742, 743, 463, 482, - 462, 478, 0, 0, 0, 0, 453, 480, 452, 451, - 476, 450, 474, 448, 469, 468, 449, 471, 472, 457, - 456, 455, 454, 466, 491, 485, 484, 464, 487, 0, - 465, 489, 252, 0, 0, 0, 0, 0, 461, 460, - 459, 458, 488, 0, 0, 357, 0, 324, 320, 329, - 330, 331, 332, 333, 321, 322, 323, 325, 326, 327, - 328, 271, 0, 0, 0, 0, 565, 0, 0, 0, - 0, 179, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 180, + 76, 444, 0, 77, 0, 97, 98, 0, 99, 100, + 101, 0, 0, 0, 0, 682, 683, 720, 716, 0, + 0, 0, 244, 243, 0, 0, 258, 257, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, + 0, 358, 0, 0, 0, 0, 0, 0, 359, 0, + 0, 0, 0, 529, 0, 0, 532, 0, 0, 0, + 344, 0, 0, 0, 373, 374, 796, 807, 0, 809, + 801, 804, 782, 808, 814, 816, 0, 0, 0, 0, + 0, 134, 0, 0, 0, 0, 157, 0, 0, 0, + 148, 141, 294, 0, 0, 0, 305, 306, 307, 308, + 300, 301, 302, 299, 303, 304, 0, 0, 297, 0, + 0, 0, 0, 0, 0, 402, 410, 409, 408, 407, + 405, 406, 0, 0, 207, 611, 584, 585, 586, 587, + 0, 607, 613, 615, 619, 0, 0, 0, 617, 604, + 605, 659, 628, 629, 0, 656, 630, 631, 632, 633, + 634, 635, 658, 640, 641, 642, 643, 626, 627, 648, + 649, 650, 651, 652, 653, 654, 655, 625, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 644, 0, 0, 592, 200, 0, 209, 0, 191, + 0, 738, 739, 741, 740, 0, 737, 0, 736, 723, + 0, 730, 78, 75, 70, 0, 0, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 81, 82, 0, 80, + 0, 95, 0, 0, 0, 190, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 172, 251, + 252, 253, 254, 246, 0, 0, 0, 173, 265, 264, + 266, 267, 260, 181, 0, 362, 0, 365, 366, 0, + 45, 46, 0, 528, 0, 534, 535, 345, 0, 547, + 0, 0, 0, 835, 846, 0, 0, 160, 0, 0, + 0, 145, 0, 163, 0, 0, 296, 0, 0, 0, + 318, 319, 320, 321, 0, 0, 771, 0, 769, 0, + 0, 0, 0, 657, 636, 637, 638, 639, 646, 0, + 0, 647, 0, 593, 0, 272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 211, 441, 0, 0, 78, 0, 0, 0, 217, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 0, 87, 86, + 0, 435, 776, 684, 0, 186, 0, 189, 0, 0, + 247, 248, 249, 250, 263, 261, 262, 357, 0, 0, + 530, 550, 388, 389, 0, 155, 0, 0, 166, 0, + 165, 162, 0, 0, 309, 310, 311, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 645, 0, 0, 594, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 731, 67, 169, 0, 0, 434, 0, 433, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 424, 0, 423, + 0, 422, 0, 421, 0, 419, 417, 0, 418, 420, + 0, 432, 0, 431, 0, 430, 0, 429, 0, 450, + 0, 446, 445, 0, 449, 0, 448, 0, 0, 90, + 0, 0, 0, 0, 0, 0, 364, 0, 0, 158, + 161, 146, 295, 313, 270, 0, 773, 0, 0, 570, + 0, 596, 0, 742, 0, 0, 0, 747, 732, 215, + 214, 484, 480, 428, 0, 427, 0, 426, 0, 425, + 0, 482, 480, 478, 476, 470, 473, 482, 480, 478, + 476, 493, 486, 447, 489, 89, 91, 0, 0, 188, + 0, 0, 0, 0, 168, 0, 0, 623, 0, 569, + 0, 595, 0, 0, 0, 0, 0, 482, 480, 478, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 0, 0, 0, 0, 802, + 322, 0, 744, 745, 746, 466, 485, 465, 481, 0, + 0, 0, 0, 456, 483, 455, 454, 479, 453, 477, + 451, 472, 471, 452, 474, 475, 460, 459, 458, 457, + 469, 494, 488, 487, 467, 490, 0, 468, 492, 255, + 0, 0, 0, 0, 0, 464, 463, 462, 461, 491, + 0, 0, 360, 0, 327, 323, 332, 333, 334, 335, + 336, 324, 325, 326, 328, 329, 330, 331, 274, 0, + 0, 0, 0, 568, 0, 0, 0, 0, 182, 337, + 0, 0, 0, 0, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, 157, 71, 467, 846, 158, 725, 105, 106, 751, 35, - 36, 676, 730, 406, 1061, 73, 1073, 777, 778, 1010, - 1467, 1468, 549, 1523, 731, 732, 733, 210, 495, 496, - 174, 175, 842, 843, 1068, 656, 1075, 993, 1238, 881, - 882, 1489, 1490, 1485, 1480, 1487, 1488, 1479, 1496, 1497, - 1495, 160, 672, 498, 499, 1186, 1187, 968, 674, 1297, - 675, 883, 662, 663, 1127, 752, 1190, 779, 625, 211, - 228, 229, 107, 230, 108, 213, 186, 189, 207, 1547, - 694, 695, 783, 657, 658, 92, 37, 113, 474, 115, - 204, 116, 38, 39, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 40, 41, - 296, 42, 43, 180, 44, 338, 46, 47, 339, 49, - 50, 352, 51, 353, 52, 354, 53, 355, 54, 340, - 341, 342, 58, 343, 290, 60, 61, 62, 188, 381, - 627, 526, 527, 919, 528, 920, 529, 214, 1152, 1161, - 63, 844, 344, 345, 346, 347, 738, 349, 350, 573, - 574, 351, 575, 739, 576, 577, 578, 579, 64, 200, - 76, 418, 419, 885, 65, 599, 591, 592, 593, 594, - 601, 602, 610, 616, + 36, 676, 730, 406, 1063, 73, 1075, 777, 778, 965, + 966, 1012, 1474, 1475, 549, 1530, 731, 732, 733, 210, + 495, 496, 174, 175, 842, 843, 1070, 656, 1077, 995, + 1242, 881, 882, 1496, 1497, 1492, 1487, 1494, 1495, 1486, + 1503, 1504, 1502, 160, 672, 498, 499, 1190, 1191, 970, + 674, 1301, 675, 883, 662, 663, 1129, 752, 1194, 779, + 625, 211, 228, 229, 107, 230, 108, 213, 186, 189, + 207, 1554, 694, 695, 783, 657, 658, 92, 37, 113, + 474, 115, 204, 116, 38, 39, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 40, 41, 296, 42, 43, 180, 44, 338, 46, 47, + 339, 49, 50, 352, 51, 353, 52, 354, 53, 355, + 54, 340, 341, 342, 58, 343, 290, 60, 61, 62, + 188, 381, 627, 526, 527, 919, 528, 920, 529, 214, + 1154, 1163, 63, 844, 344, 345, 346, 347, 738, 349, + 350, 573, 574, 351, 575, 739, 576, 577, 578, 579, + 64, 200, 76, 418, 419, 885, 65, 599, 591, 592, + 593, 594, 601, 602, 610, 616, }; static int yysindex[] = { 0, -12708, 0, -367, 774, 0, 51, -230, 1707, 1707, 0, - 0, -143, 1606, 124, 134, -332, -210, 0, -138, 72, - 72, 513, 513, 9470, 142, 0, 774, 774, 774, 774, - 0, 0, 15, 0, 128, 128, 128, 0, 0, 0, - 256, 295, 0, 0, 0, 0, 0, 0, 0, 324, - 329, 346, 351, 0, 0, 0, 0, 0, 0, 128, - 0, 182, 0, 1377, 72, 0, 0, 0, 0, 456, - 0, 72, 0, 0, 0, -23, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13865, 75, 475, 0, 0, 527, 539, 0, 0, - 703, 776, 776,13762, 5310, 0, 530, 0, 0, 554, - 72, 72, -50, 0, 1068, -82, 774, 456, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5310, 0, 0, - 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 162, 0, 344, 162, 713, 0, - 5148, 0, 0, 0, 146, 222, 456, 607, 117, 0, - 275, 284, 0, 301, 307, 2403, 162, 27, 456, 456, - 456, 0, 0, 681, 436, 706, 741, 0, 0, 1557, - 0, 0, 0, 0, 773, 4506,13865, 428, 7917, 717, - 93, 125, 155, 364, 384, 393, 749, 1425, 806, 0, - 0, 128, 165, 625, 774, 801,12997, 811, 196, 753, - 0, 65, 0, 776, 0, 857, 68, 862, 637, 72, - 72, 0, 0, 0, 0, 0, 0, 0, 866, 0, -13259, 76, 0, 827, 0, 0, 5, 1068, 0, 0, - 0, 0, 470, 0, 0, 0, 0, 456, 0, 0, - 22, 456, 0, 0, 0, 0, 0, 0, 162, 0, - 667, 0, 0, 0, 0,13580, 774, 849, 140, 859, - 787, 456, 0, 774, 0, 918, 923, 774, -81, 5310, - 0, 0, 774, 774, 774, 774, 5310, 0, 162, 840, - 862, 0, 0, 0, 0, 797,12597, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 0, 72, 0, 0, 0, 72, 876, -38,13924, - 0, 0, 915, 0, 602, 72, 513, 440, 602, 2403, - 4838,13865, -128, 776,13762, 935, 128, 0, 0, 0, - 0, 0, 0, 19, 0, 0, 0, 0, 0, 1069, - 305, 598, 503, 814, 45, 0, 937, 0, 0, 0, - 0, 0, 0, 1026, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 682, 0,13865, - 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, - 0, 0, 954, 72, 72, 0, 72, 0, 72, 0, - 513, 0, 577, 0, 577, 0, 0, 873, 956, -23, - 962, 0, 0, 72, 72, 0, 0, 0, 1146, 456, - 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 971, 252, 0, 774, - 166, 751, 897, 5310, 0,14024, 0, 760, 981, 990, - 1004, 2403, 0, 0, 89, 456, 996, 786, 0, 0, - 862, 0, 0, 611, 24, 0, 774, 0, 0, 456, - 815, 383, 774, 774, 774, 456, 0, 456,13865,13865, - 456, 0, 0, 823, 0, 94, 753, 1030, 1060, 456, - 456, 456, 456,13416, 0, 0, 755, 0, 0, 0, - 72, 72, 0, -318,14083, 0, 1005, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1031, 1045, 1049, 0, - 0, 0, 1058, 72, -16, 402, 72, 0, 910, 0, - 0, 0, 0, 0, 0, 1110, 1150, 0, 0, 0, - 0, 0, 0, 0, 0,13580, 0, 0, 1190, 862, - 128, 5310, 0, 602, 1145, 1191, 0,11680, 0,13865, - 0, 0, 0, 1069, -42, -42, -42, -42, 305, 925, - 927, 0, 785, 1179, 23, 13, 0, 0, 0, 0, - 0, 0, 128, 128, 0, 1193, 1198, 0, 128, 0, - 128, 0, 1220, -202, 774, 791, 0, 0, 0, 0, - 774, 799, 0, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 0, -9, 0, 0, 1229, 72, 751, 5458, - 751, 1233, 1195, 1236, 1249, 1251, 1254, 1255, 0, 1425, - 1257, 0, 1241, 1256, 0, 0, 0, 0, 0, 0, - 72,14133, 33, 388, 0, 618, 1261, 1279, 0, 919, - 928, 1281, 1201, 1269, 0, 1076, 0, 0, 1280, 5768, - 1300, 1305, 494, 1237, 2274, 615, 128, 774, 456, 774, - 774, 607, 607, 607, 1322, 1331, 72, -81, 0, 0, - 5310, 1335,13865,13684, 1064, 0, 0, 625, 469, 524, - 0, 1102, 0,11763, 0, 0, 0, 72, 1285, 72, - 456, 72, 669, 1291, 5310, 494, 72, 513, 456, 1111, - 751, 1354, 129, 1355, 1357, 1359, 0, 0, 0, 5458, - 1360, 1364, 0, 0, 0, 0, 602, 0, 0, 0, - 0, 0, 0, 0, 0, -23, 72, 72, 1372, 0, - 0, 1346, 1376, 862, 1380, 1381, 1386, 1387, 1389, 1390, - 72, 774, 0, 456, 774, 39, 774, 1392, 1388, 0, - 0, 0, 0, 5310, 0, 0, 365, 238, 1351,13865, - 1393, 11, 489, -214, 38, 761, 1344, 0, 1344, 1344, - 1344, 1344, 1344, 0, 0, 72, 0, 72, 1401, 0, - 0, 0, 0, 1003, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1403, 949, 958, 0, - 948, 1411, -285, 1178, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1403, 1403, 0, 7194, 0, 0, - 0, 115, 1412, 128, -23, 1395, 0, 1177, 0, 751, - 1333, 0,14024, 0, 1336, 0, 108, 72, 1399, 0, - 0, 456, 996, 0, 455, 465, 1032, 467, 507, 514, - 532, 550, 564, 579, 591, 608, 609, 647, 662, 671, - 0, 0, 314, 0, 128, 0, 0, -23, 0, 0, - 0, 1421, 456, 456, 607, 0, 0, 0, 0, 753, - 0, 1019, 0, 0, 456, 774, 0, 0, 5310, 456, - 72, 456, 72, 779, 5310, 494, 6291, 0, 697, 378, - 968, 0, 1080, 1391, 1394,13865, 1395,13580, 0, 1433, - 1439, 774, 795, 0, 0, 602, 0, 602, 1440, 38, - 0, 0, 1169, 1172, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 1449, 607, 456, 72, - 456, 0, 72, 252, 0,13865, 836, 774, 0, 0, - 0, 751, 711, 1454, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1437, 1438, 0, 1406, 1408, 1409, - 1417, 1471, 494, 0, 0, 0, 0, 0, 0, 0, - 1472, 0, 0, 0, 0, 0, 0, 0, 1011, 0, - 0, 0, 0, 751, 1426, 1427, 0, 0, 0, 0, - 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 133, 0, 0, -24, 0, 2876, 0, 1479, 0, - 0, 0, 0, 862, 0, 1481, 0, 0, 1402, 0, - 0, 0, 0, 862, 1434, 0, 1485, 1494, 1496, 1497, - 748, 72, 72, 72, 705, 746, 757, 766, 72, 72, - 72, 72, 72, 72, 513, 72, 916, 72, 843, 72, - 72, 72, 72, 72, 72, 72, 513, 72, 2274, 72, - -119, 72, 425, 72, 0, 0, 2576, 0, 1498, 0, - 1117, 1499, 2403, 0, 456, 252, 1458, 1460,13865,13580, - 1047, 0, 2403, 2403, 2403, 2403, 0, 0, 0, 0, - 0, 0, 2403, 2403, 2403, 0, 0, 0, 0, 0, - 0, 0, -23, 0, 1514, 0, 0, 1292, 0, 0, - 456, 0, 1526, 0, 0, 0, -23, 0, -23, 72, - 1510, 0, 0, 1528, 836, 1530, 1529, 0, -9, 0, - 836, 862, 0, 72, 688, 718, 0, 0, 0, 0, -14133, 1512, 0, 72, 0, 1513, 1083, 72, 72, 0, - 0, 0, 0, 0, 0, 751, 1482, 0, 72, 0, - 97, 0, 1540, 1541, 1184, 1542, 1544, 1545, 1546, 1554, - 1556, 1559, 1567, 1572, 1581, 0, 862, 0, 0, 72, - 933, 0, 229, 1502, 1535, 0, 0, 0, 0, 1587, - 1536, 1589, 1539, 72, 72, 72, 72, 72, 72, 513, - 72, 1593, 1543, 1596, 1548, 1603, 1555, 1612, 1563, 1616, - 1621, 1575, 1628, 1629, 1578, 1631, 1580, 1634, 1586, 1640, - 1590, 1643, 1597, 1652, 1601, 1654, 1655, 1604, 1657, 1384, - 1658, 1611, 0, 303, 0, 0, 538, 0, 0, 0, - 152, 0, 1661, 0, 1348, 776, 0, 0, 0, 0, - 0, 0, 0, 0,13865, 494, 0, 0, 0, 0, - 23, 0, 0, 0,13865, 0, 0, 1373, 1669, 0, - 0, 0, 0, 1673, 1679, 0, 72, 751, 1627, 1667, - 862, 0, 1676, 72, 0, 1681, 1682, 1726, 1730, 1731, - 1713, 1715, 1716, 1738, 280, 0, 0, 0, 1743, 1746, - 0, 1749, 0, 1754, 1760, 1710, 1769, 1719, 1772, 1721, - 1774, 1723, 0, 1778, 0, 1781, 0, 1787, 0, 1788, - 0, 0, 1789, 0, 0, 1791, 0, 1794, 0, 1798, - 0, 1800, 0, 1804, 0, 1805, 0, 0, 1806, 0, - 1807, 0, 1809, 1584, 0, 1757, 112, 0,13865, 494, - 5310, 0, 1792, 1793, 0, 0, 0, 0, 0, 0, - 1818, 1021, 0,14171, 0, 1776, 0, 72, 72, 72, - 0, 0, 0, 0, 0, 0, 0, 1830, 0, 1831, - 0, 1832, 0, 1833, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2274, 1835, 0, 1792,13580, 1783, 1837, 0, 23, 1838, - 0, 751, 0, 0, 0, 1842, 1843, 1844, 25, 36, - 0, 0, 0, 0, 47, 80, 98, 31, 360, 793, - 102, 104, 105, 83, 1968, 41, 995, 0, 1395, 1846, - 1614, 0, 0, 0, 1149, 0, 0, 0, 0, 0, - 0, 0, 113, 122, 127, 91, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637, - 0, 0, 0, 0, 494, 1849, 2234, 751, 0, 0, - 0, 0, 0, 1850, 1852, 0, 1863, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 817, 1397, 0, 72, 0, 1547, 1868, 1869, - 776, 0, 0, 5310,13580, 1630, 494, 1792, 1871, 0, - 1872, 0, + 1078, 0, -348, 648, 0, 174, -232, 1890, 1890, 0, + 0, 113, 1269, 211, 302, -113, -46, 0, -127, 227, + 227, -176, -176, 9519, 305, 0, 648, 648, 648, 648, + 0, 0, 250, 0, 276, 276, 276, 0, 0, 0, + 441, 480, 0, 0, 0, 0, 0, 0, 0, 509, + 516, 548, 564, 0, 0, 0, 0, 0, 0, 276, + 0, 268, 0, 427, 227, 0, 0, 0, 0, 609, + 0, 227, 0, 0, 0, 536, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13805, 9, 655, 0, 0, 680, 749, 0, 0, + 660, 812, 812,13705, 5359, 0, 767, 0, 0, 799, + 227, 227, -24, 0, 1463, 266, 648, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5359, 0, 0, + 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 813, 0, 543, 813, 525, 0, + 5197, 0, 0, 0, -8, 215, 609, 819, 738, 0, + 455, 468, 0, 479, 485, 1623, 813, 57, 609, 609, + 609, 0, 0, 848, 654, 856, 885, 0, 0, 1606, + 0, 0, 0, 0, 889, 5073,13805, 631, 7966, 908, + 76, 85, 101, 115, 123, 144, 928, 1430, 938, 0, + 0, 276, 28, 1216, 648, 899,12904, 921, 26, 902, + 0, 179, 0, 812, 0, 959, 65, 957, 740, 227, + 227, 0, 0, 0, 0, 0, 0, 0, 971, 0, +13166, 177, 0, 925, 0, 0, 2, 1463, 0, 0, + 0, 0, 541, 0, 0, 0, 0, 609, 0, 0, + 16, 609, 0, 0, 0, 0, 0, 0, 813, 0, + 766, 0, 0, 0, 0,13524, 648, 936, 104, 955, + 833, 609, 0, 648, 0, 1011, 1012, 648, -147, 5359, + 0, 0, 648, 648, 648, 648, 5359, 0, 813, 934, + 957, 0, 0, 0, 0, 6340, 924, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 0, 227, 0, 0, 0, 227, 977, -55,13864, + 0, 0, 1009, 0, 600, 227, -176, 170, 600, 1623, + 4887,13805, -143, 812,13705, 1032, 276, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 853, + 273, 316, 504, -19, 83, 0, 1037, 0, 0, 0, + 0, 0, 0, 961, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 643, 0,13805, + 0, 1038, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1039, + 0, 0, 1049, 227, 227, 0, 227, 0, 227, 0, + -176, 0, 520, 0, 520, 0, 0, 981, 1064, 536, + 1072, 0, 0, 227, 227, 0, 0, 0, 1164, 609, + 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1083, 827, 0, 648, + 140, 862, 995, 5359, 0,13967, 0, 866, 1086, 1094, + 1095, 1623, 0, 0, 87, 609, 1098, 888, 0, 0, + 957, 0, 0, 706, 17, 0, 648, 0, 0, 609, + 897, 521, 648, 648, 648, 609, 0, 609,13805,13805, + 609, 0, 0, 932, 0, 51, 902, 1110, 1167, 609, + 609, 609, 609,13315, 0, 0, 858, 0, 0, 0, + 227, 227, 0, -292,14026, 0, 1102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1107, 1109, 1111, 0, + 0, 0, 1163, 227, 499, 534, 227, 0, 966, 0, + 0, 0, 0, 0, 0, 1193, 1201, 0, 0, 0, + 0, 0, 0, 0, 0,13524, 0, 0, 1206, 957, + 276, 5359, 0, 600, 1209, 1217, 0,11729, 0,13805, + 0, 0, 0, 853, -47, -47, -47, -47, 273, 944, + 948, 0, 800, 1205, 43, 21, 0, 0, 0, 0, + 0, 0, 276, 276, 0, 1208, 1211, 0, 276, 0, + 276, 0, 1230, -186, 648, 804, 0, 0, 0, 0, + 648, 805, 0, 0, 0, 0, 227, 0, 0, 0, + 0, 0, 0, -1, 0, 0, 1232, 227, 862, 5507, + 862, 1237, 1188, 1244, 1245, 1247, 1248, 1258, 0, 1430, + 1261, 0, 1252, 1259, 0, 0, 0, 0, 0, 0, + 227,14175, 31, 540, 0, 532, 1265, 1267, 0, 1280, + 1210, 1271, 1194, 1260, 0, 1057, 0, 0, 1263, 5817, + 1285, 1290, -159, 1214, 2627, 414, 276, 648, 609, 648, + 648, 819, 819, 819, 1297, 1300, 227, -147, 0, 0, + 5359, 1302,13805,13627, 1005, 0, 0, 1216, 659, 754, + 0, 1069, 0,11812, 0, 0, 0, 227, 1254, 227, + 609, 227, 141, 1255, 5359, -159, 227, -176, 609, 1075, + 862, 1311, 771, 1309, 1313, 1320, 0, 0, 0, 5507, + 1316, 1326, 0, 0, 0, 0, 600, 0, 0, 0, + 0, 0, 0, 0, 0, 536, 227, 227, 1338, 0, + 0, 1323, 1342, 957, 1345, 1346, 1343, 1353, 1356, 1360, + 227, 648, 0, 609, 648, 34, 648, 1366, 1354, 0, + 0, 0, 0, 1114, 0, 0, 164, 128, 1348,13805, + 1371, 8, 727, -85, 135, 442, 1322, 0, 1322, 1322, + 1322, 1322, 1322, 0, 0, 227, 0, 227, 1374, 0, + 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1379, 931, 933, 0, + 920, 1389, -251, 1154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1379, 1379, 0, 7243, 0, 0, + 0, 73, 1391, 276, 536, 1372, 0, 975, 0, 862, + 1314, 0,13967, 0, 1317, 0, 251, 227, 1381, 0, + 0, 609, 1098, 0, 150, 151, 909, 158, 184, 372, + 393, 415, 432, 437, 501, 545, 547, 630, 678, 684, + 0, 0, 41, 0, 276, 0, 0, 536, 0, 0, + 0, 1393, 609, 609, 819, 0, 0, 0, 0, 902, + 0, 990, 0, 0, 609, 648, 0, 0, 5359, 609, + 227, 609, 227, 527, 5359, -159,12516, 0, 217, 976, + 449, 0, 1053, 1352, 1355,13805, 1372,13524, 0, 1405, + 1406, 648, 604, 0, 0, 600, 0, 600, 1411, 135, + 0, 0, 1139, 1149, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 0, 1433, 819, 609, 227, + 609, 0, 227, 1435, 1114,13805, 0,13805, 757, 648, + 0, 0, 0, 862, 1586, 1444, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1428, 1434, 0, 1400, + 1407, 1409, 1410, 1465, -159, 0, 0, 0, 0, 0, + 0, 0, 1464, 0, 0, 0, 0, 0, 0, 0, + 1003, 0, 0, 0, 0, 862, 1427, 1429, 0, 0, + 0, 0, 0, 0, 860, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 96, 0, 0, -44, 0, 2925, 0, + 1479, 0, 0, 0, 0, 957, 0, 1482, 0, 0, + 1401, 0, 0, 0, 0, 957, 1432, 0, 1499, 1502, + 1483, 1505, -61, 227, 227, 227, 687, 724, 750, 751, + 227, 227, 227, 227, 227, 227, -176, 227, 506, 227, + 861, 227, 227, 227, 227, 227, 227, 227, -176, 227, + 2627, 227, -103, 227, 984, 227, 0, 0, 2322, 0, + 1510, 0, 1131, 1513, 1623, 0, 609, 827, 1462, 1470, +13805,13524, 1056, 0, 1623, 1623, 1623, 1623, 0, 0, + 0, 0, 0, 0, 1623, 1623, 1623, 0, 0, 0, + 0, 0, 0, 0, 536, 0, 1523, 0, 0, 1294, + 0, 0, 609, 0, 1529, 0, 0, 0, 536, 0, + 536, 227, 1514, 0, 0, 1535, 227, 0, 648, 1538, + 1536, 0, -1, 0, 757, 957, 0, 227, 234, 336, + 0, 0, 0, 0,14175, 1521, 0, 227, 0, 1522, + 839, 227, 227, 0, 0, 0, 0, 0, 0, 862, + 1489, 0, 227, 0, 132, 0, 1544, 1545, 1085, 1546, + 1548, 1549, 1551, 1557, 1561, 1562, 1563, 1566, 1583, 0, + 957, 0, 0, 227, 624, 0, 122, 1503, 1567, 0, + 0, 0, 0, 1589, 1539, 1590, 1540, 227, 227, 227, + 227, 227, 227, -176, 227, 1594, 1550, 1604, 1553, 1607, + 1568, 1615, 1577, 1630, 1636, 1585, 1638, 1639, 1588, 1644, + 1595, 1649, 1602, 1655, 1609, 1656, 1610, 1663, 1612, 1665, + 1666, 1616, 1669, 1456, 1679, 1628, 0, 741, 0, 0, + 801, 0, 0, 0, 116, 0, 1678, 0, 1451, 812, + 0, 0, 0, 0, 0, 0, 0, 0,13805, -159, + 0, 0, 0, 0, 43, 0, 1686, 757, 0,13805, + 0, 0, 1652, 1687, 0, 0, 0, 0, 1689, 1692, + 0, 227, 862, 1640, 1646, 957, 0, 1651, 227, 0, + 1702, 1706, 1707, 1708, 1704, 1691, 1694, 1695, 1713, 202, + 0, 0, 0, 1714, 1715, 0, 1717, 0, 1718, 1727, + 1676, 1729, 1716, 1730, 1719, 1769, 1721, 0, 1771, 0, + 1775, 0, 1776, 0, 1777, 0, 0, 1781, 0, 0, + 1782, 0, 1783, 0, 1793, 0, 1794, 0, 1796, 0, + 1798, 0, 0, 1810, 0, 1811, 0, 1818, 1496, 0, + 1766, 428, 0,13805, -159, 5359, 0, 1801, 1804, 0, + 0, 0, 0, 0, 0, 0, 0, 1822, 850, 0, +14266, 0, 1772, 0, 227, 227, 227, 0, 0, 0, + 0, 0, 0, 0, 1824, 0, 1827, 0, 1828, 0, + 1830, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2627, 1835, 0, + 1801,13524, 1780, 1837, 0, 43, 1842, 0, 862, 0, + 0, 0, 1847, 1852, 1853, 25, 38, 0, 0, 0, + 0, 49, 69, 77, 66, 91, 228, 94, 97, 99, + 89, 2017, 33, 759, 0, 1372, 1841, 1622, 0, 0, + 0, 873, 0, 0, 0, 0, 0, 0, 0, 106, + 130, 133, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, + 0, -159, 1857, 2587, 862, 0, 0, 0, 0, 0, + 1858, 1861, 0, 1868, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, + 1412, 0, 227, 0, 1569, 1879, 1880, 812, 0, 0, + 5359,13524, 1650, -159, 1801, 1886, 0, 1892, 0, }; static int yyrindex[] = { 0, - 0, 0, 5024, 0, 0,13112, 1662, 0, 0, 0, - 0, 0, 5620, 0, 0, -31, 2450, 0, 9904, 0, + 0, 0, 6003, 0, 0,13014, 1705, 0, 0, 0, + 0, 0, 5669, 0, 0, 309, 1891, 0, 9953, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1893, 1893, 1893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1873, 1873, 1873, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1893, + 0, -31, 0, 0, 0, 0, 0, 0, 0, 1812, + 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1873, - 0, -60, 0, 0, 0, 0, 0, 0, 0, 1797, - 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, + 0, 0, 0, 7750, 0, 0, 0, 0, 0, 0, + 6127, 6995, 6995, 0, 0, 0, 6269, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7701, 0, 0, 0, 0, 0, 0, - 6078, 6946, 6946, 0, 0, 0, 6220, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1813, 2421, 0, 0, + 0, 0, 0, 0, 0, 5669, 1819, 4850, 5160, 5470, + 5780, 0, 0, 0, 1902, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1825, 6995, 0, + 9453, 9453, 9453, 9453, 9453, 9453, 0, 0, 0, 0, + 0, 1893, 8125, 0, 0, 0, 0, 0, 0, 7142, + 0, 9060, 0, 5669, 0, 0, 0, 9233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1764, 2372, 0, 0, - 0, 0, 0, 0, 0, 5620, 1796, 4801, 5111, 5421, - 5731, 0, 0, 0, 1875, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1801, 6946, 0, - 9404, 9404, 9404, 9404, 9404, 9404, 0, 0, 0, 0, - 0, 1873, 8076, 0, 0, 0, 0, 0, 0, 7093, - 0, 9011, 0, 5620, 0, 0, 0, 9184, 0, 0, + 0, 0, 0, 0, 0, 0, 8340, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1829, 0, 0, + 1831,10198, 4549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1808, 0, 0, - 1811,10149, 4500, 0, 0, 0, 0, 0, 0, 0, + 0, 3941, 0, 0, 0, 0, 0, 0, 1901, 1885, + 0, 0, 0, 0, 0, 0, 0, 0, 1819, 0, + 6090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3892, 0, 0, 0, 0, 0, 0, 1879, 1855, - 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, - 6041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5669, + 0, 0, 0, 5669, 0, 0, 1893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5620, - 0, 0, 0, 5620, 0, 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1826, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1836, + 1376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1810, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, - 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1833, 0, 0, 7952, 0, + 0, 5669, 0, 0, 1901, 24, 1910, 0, 0, 0, + 6524, 0, 0,10309, 1838, 0, 0, 0, 0,11176, + 0, 0, 0, 0, 0, 4245, 0, 2117, 0, 0, +10340, 0, 0, 185, 0, 0, 555, 0, 1898,10495, +10636,10667,10778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1812, 0, 0, 7903, 0, - 0, 5620, 0, 0, 1879, 46, 1889, 0, 0, 0, - 6475, 0, 0,10260, 1815, 0, 0, 0, 0,11127, - 0, 0, 0, 0, 0, 4196, 0, 2068, 0, 0, -10291, 0, 0, 159, 0, 0, 473, 0, 1877,10446, -10587,10618,10729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,11963, + 1893, 0, 0, 1921, 0, 0,14296, 0, 0, 0, + 0, 0, 0,12130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11914, - 1873, 0, 0, 1900, 0, 0,14195, 0, 0, 0, - 0, 0, 0,12081, 0, 0, 0, 0, 0, 0, + 0, 0, 1893, 1893, 0, 0, 0, 0, 1893, 0, + 1893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1873, 1873, 0, 0, 0, 0, 1873, 0, - 1873, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 0, 1843, 0, 4594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 474, 0, 0, 1819, 0, 1538, 0, + 0, 0, 0, 8309, 0, 0, 0, 0, 0, 0, + 0, 460, 9761, 0, 7393, 0, 0, 1922, 0, 0, + 0, 1844, 0, 0, 0, 0, 0, 0, 6703, 1885, + 0, 0, 0, 0, -65, 0, 1893, 0, 1848, 0, + 0, 2725, 3029, 3333, 0, 0, 387, 410, 0, 0, + 0,13465, 0, 0, 5669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8260, 0, 0, 0, 0, 0, 0, - 0, 642, 9712, 0, 7344, 0, 0, 1910, 0, 0, - 0, 1827, 0, 0, 0, 0, 0, 0, 6654, 1855, - 0, 0, 0, 0, -54, 0, 1873, 0, 1845, 0, - 0, 2676, 2980, 3284, 0, 0, 206, 450, 0, 0, - 0,13521, 0, 0, 5620, 0, 0, 0, 0, 0, +12213, 0, 0, 0, 0, 0, 0, 0,11646, 0, + 0, 0, 0, 1926, 0, 1929, 0,14296, 0, 0, + 0, 1931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12164, 0, 0, 0, 0, 0, 0, 0,11597, 0, - 0, 0, 0, 1925, 0, 1926, 0,14195, 0, 0, - 0, 1928, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2325, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14125, 0, 0, 143, 0, 0, 0, + 0, 4594, 0, 0, 682, 0, 9453, 0, 9453, 9453, + 9453, 9453, 9453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, - 0, 1538, 0, 0, 643, 0, 9404, 0, 9404, 9404, - 9404, 9404, 9404, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, + 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 692, 692, 0, 5, 0, 0, + 0, 1932, 0, 0, 0, 9922, 7577, 0, 0, 0, + 0, 1213, 1833, 0, 0, 0, 0, 0, 0,14296, +14296,11012, 1910, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1854, 0, 1893, 0, 0, 0, 0, 0, + 0, 0, 1859,11328, 3637, 0, 0, 0, 0, 569, +14296, 0, 0, 0, 412, 0, 0, 0, 0, 1862, + 0,12684, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12296, 0, 0, 0,12447, 0, 0, 0, + 0, 0, 0, 0,14296, 1921, 0, 1921, 0, 328, + 0,11526, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1021, 1225, 0, + 285, 0, 0, 0,14125, 0, 0, 1936, 1918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, - 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 833, 833, 0, 8, 0, 0, - 0, 1930, 0, 0, 0, 9873, 7528, 0, 0, 0, - 0, 986, 1812, 0, 0, 0, 0, 0, 0,14195, -14195,10963, 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1847, 0, 1873, 0, 0, 0, 0, 0, - 0, 0, 1857,11279, 3588, 0, 0, 0, 0, 663, -14195, 0, 0, 0, 480, 0, 0, 0, 0, 1858, - 0,12777, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12247, 0, 0, 0,12398, 0, 0, 0, - 0, 0, 0, 0,14195, 1900, 0, 1900, 0, 56, - 0,11477, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1358, 1860, 0, - 1024, 0, 0, 0, 0, 1932, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8501, 8685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8452, 8636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,10809, 0, 5669, 0, 1867, 0, 0, 0, + 0, 0, 0, 0, 5669, 5669, 5669, 5669, 0, 0, + 0, 0, 0, 0, 5669, 5669, 5669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12614, 0, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10760, 0, 5620, 0, 1861, 0, 0, 0, 0, 0, - 0, 0, 5620, 5620, 5620, 5620, 0, 0, 0, 0, - 0, 0, 5620, 5620, 5620, 0, 0, 0, 0, 0, + 1943, 0, 143, 0, 1918, 4594, 0, 0, 0, 0, + 0, 0, 0, 0, 460, 1957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12565, 0, 0, 0, 0, 0, 826, 0, 0, 0, - 0, 0, 0, 0, 1920, 0, 1942, 0, 474, 0, - 1920, 1538, 0, 0, 0, 0, 0, 0, 0, 0, - 642, 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9571, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14195,14195, 0, + 9620, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,14296,14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5620, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8858, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8809, 0, 0, 0, 0, - 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14195, 0, 0, - 0, 0, 1947, 0, 0, 0, 0, 0,14195, 0, - 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, + 0, 0,14296, 0, 0, 0, 0, 1958, 0, 0, + 0, 0, 0, 0, 0,14296, 0, 0, 0, 0, + 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1947, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1949, 0, 0, 0, 0, 0, 0, + 1958, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1870, 0, - 0,14195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1876, 0, 0,14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,14195, 0, 0, 0, 0, 0, - 5620, 0, 0, 0, 0, 0, 0, 1947, 0,14195, - 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,14296, 0, 0, 0, 0, 0, 5669, 0, 0, + 0, 0, 0, 0, 1958, 0,14296, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1042,18 +1042,19 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,11446, 0, 0, 0, 0, 0, 0, 0, + 0, 0,11495, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1068,37 +1069,37 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,11080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,11031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1757, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1733, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1108,31 +1109,31 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1980, 0, 0, + 0, 0, 0, 0, 0, 0, 993, 0, 0, 0, + 0, 1968, 0, 0, 0, 0, 0, 0, 0, 1755, + 1756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1956, 0, 0, - 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, - 0, 1938, 0, 0, 0, 0, 0, 0, 0, 1725, - 1727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1759, 0, 0, 0, 0, 0, + 0, 1760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1729, 0, 0, 0, 0, 0, - 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1773, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1748, 1750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1150,7 +1151,7 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1739, 1740, 0, + 0, 1764, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1159,3173 +1160,3190 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1755, 0, 0, 0, 0, + 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1742, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1744, 0, + 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, + 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1747, 0, 0, 0, 0, 0, 0, + 1787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1751, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1753, - 0, 0, + 0, 1788, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1789, 0, 0, }; -static int yygindex[] = { 1822, - -4, 42, -652, 0, -427, -46, -99, 0, 63, 0, - 0, 0, 1619, -155, 0, 0,-1036, 0, 1246, 391, --1370, -422, -399, -21, -699, 0, 1087, -14, 1343, 0, - 59, 1189, 610, 835, -907, -76, 0, 1104, 0,-1050, - 982, 0, 0,-1364,-1231,-1034, -867, 0, 0, 0, - 0, 926, 1196, 1382, 0, 0, 0, 0, -616, 0, - 0,-1003, 0, 1205, 0, -918, -596, 875, 865, -18, - 55, 1734, 1609, 2050, -158, -2, 0, 0, 0, 0, - 0, 0, -754, 1234, 0, 2076, 0, 0, 959, 1977, - 1591, 0, -19, 2075, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -287, - 1400, 0, -284, -242, -277, 34, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 1398, 0, 0, 0, 26, - 29, 17, 0, 6, 1824, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 0, 0, -147, 0, 0, 1533, - 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, - 0, 1462, 2036, -32, 0, 1642, 0, 1758, 0, 0, - 0, 0, 0, 0, +static int yygindex[] = { 1871, + -4, -11, -671, 0, -263, 72, -91, 0, 100, 0, + 0, 0, 1658, -139, 0, 0,-1034, 0, 1274, 0, + 1081, 198,-1377, -420, -386, -16, -707, 0, 1119, -14, + 1364, 0, 1, 1222, 636, 863, -908, -75, 0, 1129, + 0,-1054, 1001, 0, 0,-1327, -586,-1023, -951, 0, + 0, 0, 0, 942, 1212, 1402, 0, 0, 0, 0, + -624, 0, 0,-1000, 0, 1224, 0, -927,-1098, 887, + 872, -21, -88, 1747, 1621, 2061, -150, 4, 0, 0, + 0, 0, 0, 0, -743, 1243, 0, 2089, 0, 0, + 968, 1988, 1600, 0, -23, 2083, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -291, 1413, 0, -287, -223, -282, 29, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 1415, 0, 0, + 0, 7, 12, 40, 0, 32, 1834, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, + 0, 1534, 0, 0, 0, 622, 0, 0, 0, 0, + 0, 0, 0, 1478, 2056, -32, 0, 1653, 0, 1779, + 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 14674 +#define YYTABLESIZE 14769 static int yytable[] = { 70, - 124, 125, 226, 227, 164, 161, 59, 288, 517, 159, - 109, 518, 48, 637, 118, 638, 218, 57, 519, 1167, - 863, 163, 168, 169, 170, 171, 55, 973, 939, 56, - 1181, 202, 348, 775, 45, 776, 408, 410, 412, 414, - 416, 1218, 851, 800, 671, 621, 699, 1216, 621, 119, - 205, 621, 537, 458, 1250, 682, 683, 684, 567, 91, - 166, 119, 135, 929, 750, 1509, 287, 205, 1284, 205, - 78, 1522, 205, 753, 710, 282, 1511, 1243, 205, 281, - 321, 1538, 120, 121, 205, 313, 1491, 1517, 74, 402, - 231, 291, 558, 1500, 176, 177, 266, 280, 621, 266, - 1222, 163, 66, 34, 452, 313, 568, 457, 237, 800, - 248, 251, 252, 253, 454, 470, 1513, 208, 185, 94, - 1519, 67, 68, 1533, 69, 453, 258, 203, 279, 260, - 268, 1552, 404, 215, 206, 217, 266, 688, 1520, 1344, - 166, 72, 1530, 1286, 1531, 1532, 212, 1083, 289, 75, - 269, 272, 270, 1549, 282, 471, 1063, 205, 281, 197, - 1087, 1088, 1550, 109, 407, 202, 282, 1551, 935, 613, - 281, 553, 1461, 234, 235, 1219, 280, 67, 68, 1287, - 69, 378, 119, 405, 110, 205, 689, 268, 280, 1345, - 456, 1408, 448, 492, 409, 112, 1015, 205, 469, 430, - 431, 1132, 716, 582, 451, 1062, 270, 279, 424, 67, - 68, 205, 69, 559, 1486, 405, 1016, 1589, 273, 279, - 1492, 323, 425, 700, 111, 1220, 466, 683, 775, 775, - 1082, 775, 484, 475, 562, 1173, 67, 268, 1355, 69, - 478, 379, 293, 67, 68, 405, 69, 249, 250, 718, - 1514, 716, 155, 895, 271, 135, 560, 800, 655, 114, - 421, 480, 482, 1141, 167, 497, 486, 762, 737, 488, - 289, 147, 504, 491, 215, 704, 172, 966, 500, 501, - 502, 503, 460, 461, 769, 468, 119, 34, 215, 282, - 988, 989, 990, 281, 122, 123, 770, 771, 718, 119, - 561, 525, 59, 1536, 78, 544, 550, 521, 48, 78, - 119, 280, 524, 57, 772, 266, 556, 2, 266, 558, - 481, 522, 55, 800, 523, 56, 535, 109, 557, 520, - 45, 117, 163, 487, 958, 119, 215, 215, 34, 1537, - 1202, 494, 279, 119, 1070, 1071, 122, 123, 67, 68, - 845, 69, 119, 1356, 122, 123, 960, 590, 590, 609, - 615, 119, 216, 492, 773, 119, 541, 119, 119, 215, - 551, 166, 34, 531, 539, 532, 119, 588, 178, 533, - 589, 589, 608, 614, 98, 119, 558, 542, 543, 636, - 119, 552, 580, 155, 173, 565, 119, 275, 276, 277, - 1524, 972, 1414, 411, 1432, 67, 68, 775, 69, 776, - 1498, 236, 477, 581, 678, 800, 800, 179, 1493, 895, - 348, 67, 68, 413, 69, 473, 422, 321, 205, 126, - 775, 745, 415, 205, 626, 800, 34, 1328, 715, 660, - 1089, 98, 1510, 653, 1535, 654, 181, 800, 1515, 800, - 800, 182, 800, 800, 405, 67, 68, 98, 69, 109, - 451, 641, 270, 147, 147, 1244, 632, 633, 183, 634, - 566, 635, 679, 184, 405, 681, 275, 276, 277, 548, - 847, 67, 68, 405, 69, 119, 643, 644, 275, 276, - 277, 98, 712, 714, 1091, 13, 187, 67, 68, 466, - 69, 205, 1156, 536, 1093, 611, 1099, 278, 612, 754, - 664, 67, 68, 156, 69, 155, 539, 992, 219, 800, - 800, 800, 800, 800, 800, 800, 558, 494, 1215, 987, - 711, 713, 621, 774, 539, 70, 73, 76, 79, 82, - 85, 88, 714, 685, 686, 1092, 1101, 723, 1359, 1360, - 1503, 719, 782, 1103, 786, 1094, 348, 1100, 468, 911, - 450, 34, 67, 68, 67, 69, 220, 69, 119, 702, - 126, 1105, 124, 696, 697, 152, 153, 154, 221, 27, - 28, 29, 30, 31, 32, 33, 1494, 1125, 1323, 1107, - 232, 1543, 1126, 233, 1327, 909, 709, 1102, 98, 714, - 764, 915, 238, 1109, 1104, 724, 766, 202, 1404, 323, - 720, 275, 276, 277, 913, 785, 1516, 267, 1111, 722, - 743, 121, 1106, 119, 735, 545, 726, 598, 1406, 517, - 1113, 995, 518, 996, 997, 998, 999, 1000, 1125, 519, - 1108, 744, 258, 1126, 933, 546, 547, 1115, 1117, 259, - 2, 755, 756, 274, 1110, 497, 34, 759, 769, 760, - 458, 67, 68, 1413, 69, 283, 763, 450, 862, 1112, - 770, 771, 1125, 893, 284, 894, 900, 1126, 848, 768, - 884, 1114, 564, 564, 67, 68, 1119, 69, 772, 905, - 781, 285, 126, 910, 912, 914, 931, 286, 1116, 1118, - 928, 1121, 293, 122, 123, 545, 540, 1271, 1462, 1273, - 1123, 862, 926, 799, 205, 940, 152, 153, 154, 1470, - 98, 292, 587, 1289, 540, 546, 547, 205, 67, 68, - 1290, 69, 564, 156, 156, 892, 156, 1120, 773, 558, - 558, 624, 558, 380, 1254, 323, 294, 902, 906, 898, - 494, 1193, 1122, 67, 68, 34, 69, 1464, 403, 964, - 959, 1124, 961, 27, 28, 29, 30, 31, 32, 33, - 922, 1074, 924, 967, 925, 2, 122, 123, 943, 930, - 1084, 295, 974, 67, 68, 1256, 69, 945, 417, 975, - 282, 976, 977, 978, 281, 1255, 1258, 67, 68, 944, - 69, 994, 1546, 458, 1153, 1260, 1154, 1155, 740, 946, - 947, 740, 280, 356, 27, 28, 29, 30, 31, 32, - 33, 1147, 1139, 957, 205, 10, 11, 12, 13, 1076, - 979, 980, 981, 1527, 970, 1172, 1257, 458, 152, 153, - 154, 595, 545, 279, 1554, 420, 991, 1259, 27, 28, - 29, 30, 31, 32, 33, 34, 1261, 1577, 1001, 458, - 1002, 67, 546, 547, 69, 119, 546, 463, 464, 546, - 2, 449, 34, 619, 619, 1579, 982, 983, 984, 1189, - 985, 205, 1134, 986, 67, 68, 1066, 69, 1128, 1174, - 1591, 1175, 1555, 432, 1136, 1192, 455, 886, 887, 459, - 1140, 1135, 266, 266, 458, 266, 462, 664, 569, 569, - 1072, 862, 27, 28, 29, 30, 31, 32, 33, 472, - 1085, 516, 525, 619, 1151, 1160, 609, 1171, 521, 1130, - 1148, 1157, 888, 524, 1588, 1150, 1159, 1207, 607, 606, - 606, 483, 522, 1129, 476, 523, 479, 1149, 1158, 608, - 520, 485, 426, 13, 427, 428, 282, 489, 569, 1185, - 692, 429, 490, 1191, 506, 596, 534, 584, 597, 2, - 585, 586, 540, 1137, 564, 1138, 617, 724, 280, 724, - 1166, 628, 1168, 629, 1307, 1308, 1309, 1310, 862, 606, - 1237, 261, 262, 631, 1311, 1312, 1313, 639, 726, 640, - 726, 263, 642, 222, 974, 223, 224, 225, 651, 279, - 652, 975, 215, 976, 977, 978, 266, 266, 155, 659, - 1188, 665, 1183, 37, 666, 1184, 34, 37, 8, 9, - 667, 37, 37, 67, 68, 1541, 69, 27, 28, 29, - 30, 31, 32, 33, 668, 37, 67, 68, 13, 69, - 119, 829, 979, 980, 981, 670, 122, 123, 545, 673, - 583, 1473, 584, 458, 1472, 585, 586, 1070, 1071, 2, - 97, 889, 890, 596, 891, 99, 37, 100, 546, 547, - 1330, 1331, 844, 1268, 101, 155, 2, 1274, 680, 1526, - 1528, 690, 1162, 61, 64, 1282, 67, 687, 982, 983, - 984, 102, 985, 691, 1291, 986, 122, 123, 545, 603, - 1332, 1333, 275, 276, 277, 708, 103, 829, 507, 693, - 1143, 1144, 1145, 1146, 1221, 458, 1338, 703, 546, 547, - 109, 1301, 27, 28, 29, 30, 31, 32, 33, 1341, - 109, 109, 109, 109, 10, 11, 12, 13, 844, 717, - 109, 109, 109, 705, 1251, 1252, 1253, 254, 255, 256, - 257, 1262, 1263, 1264, 1265, 1266, 1267, 706, 1269, 1270, - 1272, 707, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 119, - 1283, 545, 1285, 716, 1288, 727, 1292, 67, 68, 718, - 852, 458, 1548, 1304, 1305, 126, 119, 97, 100, 25, - 103, 546, 547, 22, 1314, 508, 1411, 5, 6, 7, - 740, 741, 742, 1351, 1352, 1353, 605, 605, 1318, 509, - 1319, 19, 604, 98, 510, 1018, 1019, 8, 9, 721, - 728, 27, 28, 29, 30, 31, 32, 33, 1371, 749, - 2, 746, 1320, 747, 10, 11, 12, 13, 1128, 511, - 512, 748, 16, 757, 67, 68, 1329, 69, 758, 761, - 765, 1422, 126, 603, 13, 829, 1336, 155, 767, 513, - 1339, 1340, 780, 787, 605, 1405, 789, 606, 275, 276, - 277, 1343, 1004, 1005, 1006, 1007, 1008, 788, 829, 790, - 98, 791, 1407, 1539, 792, 793, 844, 795, 796, 798, - 1540, 849, 1350, 1354, 514, 515, 1210, 1211, 1212, 1213, - 1214, 862, 1095, 1096, 1097, 1098, 1365, 1366, 1367, 1368, - 1369, 1370, 850, 1372, 853, 854, 40, 67, 68, 855, - 69, 27, 28, 29, 30, 31, 32, 33, 856, 860, - 857, 152, 153, 154, 861, 37, 37, 37, 27, 28, - 29, 30, 31, 32, 33, 618, 619, 620, 97, 40, - 1128, 864, 896, 99, 40, 100, 40, 40, 40, 1412, - 40, 897, 101, 40, 901, 916, 604, 923, 569, 1415, - 570, 571, 572, 927, 932, 40, 40, 40, 40, 102, - 907, 621, 622, 623, 934, 1505, 1465, 937, 936, 1421, - 941, 829, 938, 949, 103, 862, 1426, 942, 152, 153, - 154, 948, 969, 1416, 199, 950, 830, 40, 13, 40, - 951, 952, 239, 240, 241, 953, 954, 963, 605, 955, - 956, 606, 962, 971, 405, 908, 67, 68, 215, 69, - 119, 1003, 1009, 829, 126, 1011, 1012, 242, 1013, 40, - 1014, 40, 1064, 829, 1017, 1067, 829, 1078, 1081, 1069, - 1086, 1131, 199, 1463, 1346, 1347, 1348, 1349, 1529, 1133, - 1163, 1573, 98, 1169, 844, 645, 646, 647, 1542, 1170, - 1176, 1584, 830, 1164, 844, 1179, 1165, 844, 1180, 1182, - 1476, 1477, 1478, 1194, 1195, 1196, 1070, 1071, 1197, 198, - 1198, 1199, 27, 28, 29, 30, 31, 32, 33, 1200, - 1201, 648, 649, 650, 1206, 1204, 1208, 1209, 1240, 1501, - 1241, 7, 10, 13, 1242, 1246, 1245, 829, 829, 829, - 829, 829, 829, 829, 1247, 1248, 1249, 473, 1298, 1300, - 862, 243, 1512, 244, 245, 246, 247, 1518, 1512, 1521, - 1302, 1525, 1303, 1518, 1512, 1521, 1306, 1315, 844, 844, - 844, 844, 844, 844, 844, 1316, 1317, 1321, 1322, 1585, - 1324, 624, 1325, 1337, 1342, 1518, 1512, 1521, 295, 1091, - 1093, 1099, 862, 1101, 1103, 1105, 40, 40, 40, 40, - 152, 153, 154, 1107, 40, 1109, 1358, 40, 1111, 40, - 40, 40, 40, 40, 40, 40, 1113, 40, 40, 40, - 40, 1115, 40, 40, 40, 34, 40, 40, 40, 40, - 1117, 1410, 40, 40, 40, 40, 1357, 1361, 1362, 1363, - 830, 1364, 40, 1373, 40, 1374, 1375, 40, 1580, 1586, - 1376, 40, 40, 1377, 40, 104, 1401, 1378, 40, 40, - 40, 40, 1379, 830, 190, 1380, 1381, 191, 192, 193, - 194, 1382, 195, 196, 197, 40, 974, 1383, 1384, 1385, - 1386, 1387, 1388, 975, 1389, 976, 977, 978, 1390, 321, - 1391, 322, 1392, 1393, 40, 40, 40, 40, 40, 1394, - 40, 40, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 390, - 40, 40, 190, 1403, 1409, 191, 192, 193, 194, 1417, - 195, 196, 197, 1418, 979, 980, 981, 40, 1419, 1423, - 1254, 1256, 40, 40, 40, 40, 40, 40, 40, 40, + 164, 863, 161, 212, 517, 124, 125, 55, 518, 159, + 226, 227, 56, 519, 118, 288, 109, 218, 1169, 48, + 939, 1183, 168, 169, 170, 171, 637, 163, 638, 45, + 348, 202, 59, 268, 851, 537, 176, 177, 975, 34, + 57, 775, 624, 776, 929, 624, 671, 205, 624, 567, + 458, 1222, 408, 410, 412, 414, 416, 1220, 1254, 78, + 185, 205, 205, 316, 208, 1516, 1288, 268, 166, 217, + 561, 424, 699, 1545, 287, 321, 205, 119, 1518, 205, + 1226, 753, 1247, 316, 750, 425, 74, 122, 123, 1524, + 231, 135, 291, 1507, 688, 624, 1332, 402, 379, 34, + 67, 68, 205, 69, 457, 607, 1529, 163, 237, 1526, + 248, 251, 252, 253, 1065, 404, 119, 1527, 215, 120, + 121, 66, 454, 258, 407, 568, 260, 492, 268, 1540, + 1498, 1531, 67, 68, 1537, 69, 266, 1538, 1223, 1539, + 409, 34, 468, 689, 197, 289, 1556, 75, 166, 205, + 269, 272, 1089, 1090, 411, 1413, 471, 1559, 270, 1290, + 1520, 205, 413, 1064, 203, 202, 405, 968, 323, 109, + 1557, 206, 282, 1558, 1349, 405, 281, 481, 119, 553, + 34, 378, 156, 415, 926, 205, 205, 456, 1224, 1093, + 1095, 405, 448, 1134, 280, 1291, 484, 1101, 559, 430, + 431, 582, 421, 91, 451, 405, 775, 613, 776, 548, + 234, 235, 270, 405, 463, 464, 470, 1596, 452, 682, + 683, 684, 293, 1103, 1350, 279, 466, 1175, 719, 1421, + 1017, 539, 655, 475, 405, 67, 68, 478, 69, 453, + 1094, 1096, 562, 558, 1143, 1360, 1361, 271, 1102, 700, + 1018, 67, 68, 2, 69, 273, 147, 560, 1072, 1073, + 34, 480, 482, 737, 72, 497, 486, 289, 1534, 488, + 215, 110, 504, 491, 1104, 34, 603, 719, 500, 501, + 502, 503, 215, 762, 135, 67, 68, 98, 69, 422, + 1085, 626, 769, 78, 704, 1543, 216, 561, 78, 469, + 561, 119, 522, 55, 770, 771, 119, 523, 56, 535, + 544, 550, 119, 541, 521, 48, 556, 551, 215, 460, + 461, 98, 772, 1206, 520, 45, 1439, 525, 59, 122, + 123, 1544, 119, 109, 557, 524, 57, 565, 163, 580, + 119, 1149, 117, 847, 1072, 1073, 67, 68, 845, 69, + 119, 960, 122, 123, 119, 2, 545, 119, 588, 119, + 119, 492, 119, 589, 589, 608, 614, 664, 269, 119, + 487, 269, 773, 1084, 34, 94, 546, 547, 494, 166, + 122, 123, 98, 590, 590, 609, 615, 67, 68, 604, + 69, 683, 111, 119, 636, 321, 119, 1419, 974, 1127, + 685, 686, 156, 156, 1128, 156, 477, 678, 641, 847, + 531, 1105, 532, 1505, 112, 468, 533, 895, 348, 990, + 991, 992, 473, 114, 542, 543, 702, 167, 552, 745, + 721, 13, 1107, 122, 123, 545, 1500, 236, 215, 660, + 587, 605, 1091, 653, 606, 654, 715, 1542, 147, 147, + 581, 1517, 1333, 717, 1109, 546, 547, 769, 561, 1248, + 451, 566, 1106, 267, 199, 109, 1522, 720, 270, 770, + 771, 1111, 679, 205, 67, 68, 1113, 69, 119, 721, + 1127, 735, 996, 1108, 458, 1128, 536, 772, 1468, 2, + 119, 122, 123, 545, 275, 276, 277, 450, 958, 466, + 567, 567, 717, 632, 633, 1110, 634, 34, 635, 1501, + 754, 172, 215, 546, 547, 27, 28, 29, 30, 31, + 32, 33, 1112, 643, 644, 67, 68, 1114, 69, 624, + 711, 713, 67, 13, 241, 69, 119, 773, 1219, 1523, + 1115, 774, 173, 611, 1364, 1365, 612, 723, 1510, 198, + 567, 719, 724, 782, 348, 786, 323, 847, 450, 124, + 1127, 722, 34, 178, 494, 1128, 205, 743, 778, 778, + 1141, 778, 205, 1164, 458, 27, 28, 29, 30, 31, + 32, 33, 187, 895, 1117, 205, 1119, 269, 2, 710, + 269, 1116, 848, 755, 756, 249, 250, 1550, 542, 759, + 764, 760, 179, 909, 902, 906, 766, 202, 121, 915, + 696, 697, 543, 681, 994, 785, 542, 27, 28, 29, + 30, 31, 32, 33, 712, 517, 1335, 1336, 598, 518, + 543, 181, 847, 709, 519, 1118, 714, 1120, 182, 258, + 1145, 1146, 1147, 1148, 1174, 933, 458, 997, 1418, 998, + 999, 1000, 1001, 1002, 205, 497, 27, 28, 29, 30, + 31, 32, 33, 726, 10, 11, 12, 13, 862, 1121, + 183, 561, 561, 893, 561, 894, 900, 892, 744, 70, + 73, 76, 79, 82, 85, 88, 184, 743, 205, 905, + 743, 972, 323, 910, 912, 914, 886, 887, 219, 832, + 928, 931, 624, 763, 190, 1469, 884, 191, 192, 193, + 194, 862, 195, 196, 197, 940, 768, 1123, 1477, 220, + 1122, 2, 1275, 1125, 1277, 943, 1258, 781, 1337, 1338, + 392, 888, 622, 622, 945, 847, 27, 28, 29, 30, + 31, 32, 33, 1471, 603, 847, 8, 9, 847, 911, + 799, 27, 28, 29, 30, 31, 32, 33, 67, 68, + 959, 69, 961, 1260, 664, 832, 13, 989, 1124, 119, + 778, 545, 1076, 969, 1126, 282, 2, 1259, 583, 281, + 584, 1086, 622, 585, 586, 545, 898, 494, 221, 1262, + 1264, 546, 547, 67, 68, 67, 69, 280, 69, 1548, + 1193, 1553, 205, 261, 262, 546, 547, 922, 282, 924, + 935, 925, 281, 263, 1261, 392, 930, 572, 572, 847, + 847, 847, 847, 847, 847, 847, 1078, 232, 279, 549, + 280, 155, 549, 1068, 609, 609, 944, 1168, 233, 1170, + 1263, 1265, 595, 1561, 913, 283, 946, 947, 259, 155, + 27, 28, 29, 30, 31, 32, 33, 604, 284, 67, + 957, 279, 69, 119, 282, 274, 1493, 572, 281, 285, + 889, 890, 1499, 891, 1586, 286, 1132, 1189, 1136, 1192, + 1562, 458, 1343, 993, 609, 1131, 280, 119, 292, 1598, + 1480, 1411, 458, 1479, 1138, 1003, 294, 1004, 1196, 13, + 1142, 1137, 1521, 155, 1356, 1357, 1358, 67, 68, 605, + 69, 862, 606, 832, 1130, 458, 1555, 279, 67, 68, + 293, 69, 1595, 522, 724, 295, 724, 1173, 523, 356, + 1151, 1160, 608, 608, 608, 521, 832, 1150, 1159, 282, + 1211, 269, 269, 281, 269, 520, 380, 1074, 525, 403, + 1153, 1162, 609, 1584, 13, 458, 524, 1087, 1152, 1161, + 222, 280, 223, 224, 225, 1195, 596, 417, 584, 597, + 392, 585, 586, 392, 392, 392, 392, 420, 392, 392, + 392, 449, 34, 27, 28, 29, 30, 31, 32, 33, + 862, 432, 279, 1241, 1311, 1312, 1313, 1314, 455, 458, + 67, 68, 459, 69, 1315, 1316, 1317, 1176, 126, 1177, + 1139, 462, 1140, 67, 68, 476, 69, 472, 67, 68, + 976, 69, 254, 255, 256, 257, 126, 977, 483, 978, + 979, 980, 1020, 1021, 34, 726, 98, 726, 27, 28, + 29, 30, 31, 32, 33, 479, 1409, 485, 530, 832, + 489, 490, 1308, 1309, 98, 269, 269, 1546, 506, 1185, + 67, 68, 1186, 69, 1547, 155, 540, 534, 981, 982, + 983, 564, 67, 68, 155, 69, 617, 628, 629, 833, + 126, 1006, 1007, 1008, 1009, 1010, 67, 68, 631, 69, + 1272, 832, 67, 68, 1278, 69, 119, 275, 276, 277, + 1158, 832, 1286, 1295, 832, 639, 97, 640, 98, 1533, + 1535, 99, 642, 100, 984, 985, 986, 659, 987, 651, + 101, 988, 652, 215, 122, 123, 545, 665, 278, 666, + 275, 276, 277, 1305, 667, 668, 34, 102, 109, 1214, + 1215, 1216, 1217, 1218, 1346, 833, 546, 547, 109, 109, + 109, 109, 103, 1318, 152, 153, 154, 670, 109, 109, + 109, 673, 569, 1225, 570, 571, 572, 1322, 596, 1323, + 680, 690, 152, 153, 154, 832, 832, 832, 832, 832, + 832, 832, 61, 64, 1328, 67, 275, 276, 277, 1097, + 1098, 1099, 1100, 1255, 1256, 1257, 2, 740, 741, 742, + 1266, 1267, 1268, 1269, 1270, 1271, 687, 1273, 1274, 1276, + 691, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1416, 1287, + 708, 1289, 693, 1292, 703, 1296, 152, 153, 154, 705, + 1417, 706, 717, 707, 67, 68, 215, 69, 119, 716, + 718, 1422, 126, 67, 68, 721, 69, 1376, 2, 727, + 37, 126, 97, 100, 37, 103, 728, 1071, 37, 37, + 746, 275, 276, 277, 747, 749, 748, 1429, 757, 761, + 98, 758, 37, 765, 767, 780, 1410, 787, 1130, 98, + 788, 1324, 1293, 834, 789, 790, 1327, 791, 792, 1294, + 618, 619, 620, 833, 1072, 1073, 1412, 1334, 793, 97, + 155, 795, 798, 37, 99, 849, 100, 1341, 104, 796, + 850, 1344, 1345, 101, 853, 862, 833, 282, 854, 856, + 855, 692, 1348, 857, 860, 1470, 621, 622, 623, 861, + 102, 907, 3, 4, 5, 6, 7, 896, 864, 280, + 897, 901, 916, 1355, 1359, 103, 923, 927, 932, 834, + 2, 934, 936, 937, 8, 9, 941, 1370, 1371, 1372, + 1373, 1374, 1375, 938, 1377, 1351, 1352, 1353, 1354, 942, + 279, 10, 11, 12, 13, 40, 908, 948, 14, 15, + 949, 950, 953, 1508, 16, 951, 952, 17, 152, 153, + 154, 1130, 954, 963, 18, 19, 955, 152, 153, 154, + 956, 1472, 1155, 1512, 1156, 1157, 962, 964, 40, 971, + 862, 973, 405, 40, 1005, 40, 40, 40, 1011, 40, + 1015, 1014, 40, 10, 11, 12, 13, 1013, 1016, 833, + 1019, 1066, 1069, 1133, 40, 40, 40, 40, 1080, 1083, + 1135, 1428, 1088, 1165, 1166, 1171, 1172, 1167, 1433, 20, + 21, 1178, 22, 23, 24, 1181, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 1182, 40, 199, 40, 67, + 68, 833, 852, 1184, 1187, 67, 68, 126, 69, 1580, + 1536, 833, 1549, 1198, 833, 1199, 3, 4, 5, 6, + 7, 1200, 1201, 645, 646, 647, 1591, 834, 40, 1202, + 40, 1203, 1204, 1593, 1205, 98, 1210, 1208, 8, 9, + 27, 28, 29, 30, 31, 32, 33, 1212, 1244, 1213, + 834, 1245, 1252, 1246, 1249, 10, 11, 12, 13, 648, + 649, 650, 14, 15, 1483, 1484, 1485, 95, 16, 1250, + 96, 17, 1251, 426, 1253, 427, 428, 862, 18, 19, + 1302, 473, 429, 1304, 1306, 833, 833, 833, 833, 833, + 833, 833, 1307, 97, 98, 1310, 1319, 1320, 99, 1321, + 100, 1325, 37, 37, 37, 1326, 1592, 101, 1329, 1330, + 624, 1347, 1342, 1093, 1095, 1101, 1519, 1103, 1105, 862, + 1107, 1525, 1519, 1528, 102, 1532, 1109, 1525, 1519, 1528, + 1111, 1113, 1115, 20, 21, 1117, 22, 23, 24, 103, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 1525, + 1519, 1528, 1119, 152, 153, 154, 1197, 1362, 1363, 1366, + 1368, 1367, 1369, 834, 1378, 40, 40, 40, 40, 275, + 276, 277, 1379, 40, 1380, 1381, 40, 1382, 40, 40, + 40, 40, 40, 40, 40, 1384, 40, 40, 40, 40, + 1383, 40, 40, 40, 34, 40, 40, 40, 40, 1385, + 1386, 40, 40, 40, 40, 834, 1387, 1388, 1389, 1390, + 1391, 40, 1587, 40, 1392, 834, 40, 1393, 834, 1394, + 40, 40, 1423, 40, 1395, 1396, 1398, 40, 40, 40, + 40, 1397, 1399, 1400, 1401, 1402, 1403, 190, 1404, 1405, + 191, 192, 193, 194, 40, 195, 196, 197, 1406, 1407, + 1408, 1414, 67, 68, 1415, 69, 1420, 1424, 321, 1425, + 322, 1426, 1430, 40, 40, 40, 40, 40, 1431, 40, + 40, 1258, 393, 1432, 1434, 1260, 1262, 1264, 1435, 40, + 40, 1436, 1437, 1438, 1440, 1441, 1442, 1443, 1466, 834, + 834, 834, 834, 834, 834, 834, 40, 1444, 1445, 1446, + 1448, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 1424, - 982, 983, 984, 558, 985, 1258, 830, 986, 1425, 1260, - 1428, 1427, 1429, 1430, 40, 40, 40, 40, 1431, 40, - 40, 40, 40, 1433, 390, 40, 1434, 40, 1435, 40, - 40, 40, 40, 1436, 40, 40, 558, 40, 40, 40, - 1437, 558, 1438, 558, 558, 558, 40, 558, 830, 1439, - 558, 1440, 1441, 1442, 1443, 1444, 67, 1445, 830, 69, - 1446, 830, 558, 558, 558, 558, 1447, 1448, 1449, 2, - 1450, 295, 389, 1451, 40, 40, 40, 1452, 295, 1453, - 295, 295, 295, 1454, 1455, 1456, 1459, 1457, 1458, 1460, - 1469, 1466, 40, 40, 558, 40, 40, 40, 1471, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 1475, 1481, - 1482, 1483, 1484, 858, 95, 1499, 1502, 96, 1504, 295, - 295, 295, 1506, 1507, 1508, 1544, 558, 1545, 558, 1556, - 1574, 1575, 830, 830, 830, 830, 830, 830, 830, 1553, - 97, 98, 1576, 1587, 1581, 99, 1578, 100, 1582, 1583, - 1590, 4, 1592, 434, 101, 435, 537, 389, 831, 104, - 29, 390, 714, 137, 390, 295, 295, 295, 535, 295, - 780, 102, 295, 836, 396, 815, 725, 807, 538, 390, - 530, 138, 390, 390, 390, 390, 103, 390, 390, 390, - 732, 726, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 533, 534, 837, 542, 7, - 268, 74, 143, 311, 312, 313, 314, 315, 316, 808, - 816, 161, 144, 237, 831, 147, 164, 8, 9, 568, - 28, 28, 207, 31, 55, 58, 55, 94, 106, 55, - 297, 55, 55, 55, 10, 11, 12, 13, 1534, 55, - 109, 115, 112, 55, 55, 317, 55, 118, 55, 55, - 630, 55, 965, 558, 558, 55, 558, 55, 1178, 318, - 899, 558, 1065, 1474, 558, 1334, 558, 558, 558, 558, - 558, 558, 558, 1177, 558, 558, 558, 558, 1239, 558, - 558, 859, 1296, 558, 558, 558, 558, 1080, 1090, 558, - 558, 558, 558, 1326, 319, 320, 1335, 559, 563, 558, - 669, 558, 389, 162, 558, 389, 389, 389, 389, 558, - 389, 389, 389, 1077, 93, 558, 558, 558, 558, 1299, - 238, 27, 28, 29, 30, 31, 32, 33, 165, 201, - 559, 794, 917, 698, 921, 559, 736, 559, 559, 559, - 600, 559, 505, 0, 559, 677, 0, 0, 0, 0, - 0, 558, 0, 558, 558, 558, 559, 559, 559, 559, - 0, 0, 831, 0, 0, 0, 0, 558, 558, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 558, 831, 0, 0, 559, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, - 559, 558, 559, 0, 558, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 558, 558, 558, 558, 0, 558, 558, 558, 558, - 0, 0, 558, 0, 558, 0, 558, 558, 558, 0, - 0, 558, 558, 0, 558, 558, 558, 0, 0, 0, - 0, 0, 0, 558, 865, 866, 867, 0, 868, 869, - 870, 871, 0, 872, 873, 197, 0, 874, 875, 876, - 877, 0, 0, 0, 878, 879, 0, 0, 831, 0, - 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 558, 0, 558, 558, 558, 0, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, - 831, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 831, 0, 0, 831, 0, 0, 0, 559, 559, 0, - 559, 0, 880, 0, 0, 559, 0, 0, 559, 0, - 559, 559, 559, 559, 559, 559, 559, 0, 559, 559, - 559, 559, 0, 559, 559, 0, 1572, 559, 559, 559, - 559, 0, 0, 559, 559, 559, 559, 0, 0, 0, - 0, 552, 0, 559, 0, 559, 0, 0, 559, 0, - 0, 0, 0, 559, 0, 0, 0, 0, 0, 559, - 559, 559, 559, 0, 831, 831, 831, 831, 831, 831, - 831, 0, 0, 0, 552, 0, 0, 0, 0, 552, - 0, 552, 552, 552, 0, 552, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 559, 0, 559, 559, 559, - 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, - 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, - 0, 0, 552, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 0, 0, 0, 552, 559, 552, 0, 559, 559, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 559, 559, 559, 559, 0, - 559, 559, 559, 559, 0, 0, 559, 1557, 559, 0, - 559, 559, 559, 0, 0, 559, 559, 0, 559, 559, - 559, 0, 1558, 0, 0, 0, 0, 559, 0, 0, - 865, 866, 867, 0, 868, 869, 870, 871, 1559, 872, - 873, 197, 0, 874, 875, 876, 877, 1560, 0, 0, - 878, 879, 0, 0, 0, 559, 559, 0, 0, 0, - 0, 1561, 1562, 1563, 1564, 0, 0, 0, 0, 0, - 0, 0, 0, 559, 559, 0, 559, 559, 559, 0, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 0, - 0, 0, 0, 1565, 1566, 1567, 1568, 1569, 1570, 1571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 552, 552, 0, 552, 0, 0, 0, 880, 552, - 0, 0, 552, 0, 552, 552, 552, 552, 552, 552, - 552, 0, 552, 552, 552, 552, 0, 552, 552, 0, - 0, 552, 552, 552, 552, 0, 0, 552, 552, 552, - 552, 95, 0, 0, 96, 550, 0, 552, 0, 552, - 0, 0, 552, 0, 0, 0, 0, 552, 0, 0, - 0, 0, 0, 552, 552, 552, 552, 97, 98, 0, - 0, 0, 99, 0, 100, 0, 0, 0, 550, 781, - 781, 101, 781, 550, 0, 550, 550, 550, 0, 550, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 552, - 0, 552, 552, 552, 550, 550, 550, 550, 0, 0, - 0, 0, 0, 103, 0, 552, 552, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 552, 0, 0, 0, 550, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 0, 0, 0, 550, 552, - 550, 0, 552, 552, 781, 781, 781, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, - 552, 552, 552, 0, 552, 552, 552, 552, 0, 781, - 552, 0, 552, 0, 552, 552, 552, 0, 0, 552, - 552, 0, 552, 552, 552, 0, 127, 0, 0, 0, - 0, 552, 130, 131, 132, 0, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 0, 1293, 144, 0, 0, 0, 0, 0, 552, - 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 552, 552, 0, - 552, 552, 552, 0, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 0, 0, 0, 0, 0, 0, 0, - 0, 1294, 0, 781, 0, 781, 781, 781, 781, 0, - 0, 0, 0, 0, 0, 550, 550, 0, 550, 0, - 1295, 0, 0, 550, 0, 0, 550, 0, 550, 550, - 550, 550, 550, 550, 550, 0, 550, 550, 550, 550, - 0, 550, 550, 0, 0, 550, 550, 550, 550, 0, - 0, 550, 550, 550, 550, 0, 0, 0, 0, 548, - 0, 550, 0, 550, 0, 0, 550, 0, 0, 0, - 0, 550, 0, 0, 0, 0, 0, 550, 550, 550, - 550, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 548, 0, 0, 0, 0, 548, 0, 548, - 548, 548, 0, 548, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 550, 0, 550, 550, 550, 548, 548, - 548, 548, 0, 0, 0, 0, 0, 0, 0, 550, - 550, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, - 548, 550, 550, 550, 550, 550, 550, 550, 550, 550, - 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, - 550, 550, 550, 550, 550, 550, 550, 550, 550, 0, - 0, 0, 548, 550, 548, 0, 550, 550, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 550, 550, 550, 550, 0, 550, 550, - 550, 550, 0, 0, 550, 0, 550, 215, 550, 550, - 550, 0, 0, 550, 550, 0, 550, 550, 550, 0, - 0, 0, 1223, 1224, 1225, 550, 1226, 1227, 1228, 1229, - 0, 1230, 1231, 197, 0, 1232, 1233, 1234, 1235, 0, - 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, - 0, 0, 0, 550, 550, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 550, 550, 0, 550, 550, 550, 0, 550, 550, - 550, 550, 550, 550, 550, 550, 550, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, - 548, 0, 548, 0, 0, 0, 0, 548, 0, 0, - 548, 0, 548, 548, 548, 548, 548, 548, 548, 0, - 548, 548, 548, 548, 0, 548, 548, 0, 0, 548, - 548, 548, 548, 0, 0, 548, 548, 548, 548, 0, - 0, 0, 0, 549, 0, 548, 0, 548, 0, 0, - 548, 0, 0, 0, 0, 548, 0, 0, 0, 0, - 0, 548, 548, 548, 548, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, - 0, 549, 0, 549, 549, 549, 0, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 548, 0, 548, - 548, 548, 549, 549, 549, 549, 0, 0, 0, 0, - 0, 0, 0, 548, 548, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 548, 0, 0, 0, 549, 548, 548, 548, 548, 548, - 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, - 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, - 548, 548, 548, 0, 0, 0, 549, 548, 549, 0, - 548, 548, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 548, 548, 548, - 548, 0, 548, 548, 548, 548, 0, 0, 548, 0, - 548, 0, 548, 548, 548, 0, 0, 548, 548, 0, - 548, 548, 548, 0, 0, 0, 0, 0, 0, 548, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 548, 548, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 548, 548, 0, 548, 548, - 548, 0, 548, 548, 548, 548, 548, 548, 548, 548, - 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 549, 549, 0, 549, 0, 0, 0, - 0, 549, 0, 0, 549, 0, 549, 549, 549, 549, - 549, 549, 549, 0, 549, 549, 549, 549, 0, 549, - 549, 0, 0, 549, 549, 549, 549, 0, 0, 549, - 549, 549, 549, 0, 0, 0, 0, 551, 0, 549, - 0, 549, 0, 0, 549, 0, 0, 0, 0, 549, - 0, 0, 0, 0, 0, 549, 549, 549, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 551, 0, 0, 0, 0, 551, 0, 551, 551, 551, - 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 549, 0, 549, 549, 549, 551, 551, 551, 551, - 0, 0, 0, 0, 0, 0, 0, 549, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 549, 0, 0, 0, 551, 549, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 0, 0, 0, - 551, 549, 551, 0, 549, 549, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 549, 549, 549, 549, 0, 549, 549, 549, 549, - 0, 0, 549, 0, 549, 0, 549, 549, 549, 0, - 0, 549, 549, 0, 549, 549, 549, 0, 0, 0, - 0, 0, 0, 549, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 549, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, - 549, 0, 549, 549, 549, 0, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 551, 551, 0, - 551, 0, 0, 0, 0, 551, 0, 0, 551, 0, - 551, 551, 551, 551, 551, 551, 551, 0, 551, 551, - 551, 551, 0, 551, 551, 0, 0, 551, 551, 551, - 551, 0, 0, 551, 551, 551, 551, 0, 0, 0, - 0, 686, 0, 551, 0, 551, 0, 0, 551, 0, - 0, 0, 0, 551, 0, 0, 0, 0, 0, 551, - 551, 551, 551, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 686, 0, 0, 0, 0, 686, - 0, 686, 686, 686, 0, 686, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 0, 551, 551, 551, - 686, 686, 686, 686, 0, 0, 0, 0, 0, 0, - 0, 551, 551, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, - 0, 0, 686, 551, 551, 551, 551, 551, 551, 551, + 40, 40, 40, 40, 40, 40, 40, 40, 1447, 1450, + 1452, 1449, 561, 1451, 1453, 1454, 1455, 239, 240, 241, + 1456, 1457, 1458, 40, 40, 40, 40, 393, 40, 40, + 40, 40, 1459, 1460, 40, 1461, 40, 1462, 40, 40, + 40, 40, 242, 40, 40, 561, 40, 40, 40, 1463, + 561, 1464, 561, 561, 561, 40, 561, 1465, 1467, 561, + 1473, 1476, 1478, 1488, 1482, 67, 1489, 1490, 69, 1491, + 858, 561, 561, 561, 561, 1506, 1509, 25, 2, 976, + 1551, 22, 1511, 40, 40, 40, 977, 1513, 978, 979, + 980, 95, 1514, 1515, 96, 1552, 1560, 1563, 1581, 19, + 1582, 40, 40, 561, 40, 40, 40, 1583, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 97, 98, 1589, + 1590, 1585, 99, 1594, 100, 1597, 1588, 981, 982, 983, + 16, 101, 1599, 437, 104, 561, 243, 561, 244, 245, + 246, 247, 438, 29, 717, 976, 540, 137, 102, 538, + 399, 783, 977, 839, 978, 979, 980, 728, 818, 541, + 810, 533, 735, 103, 393, 138, 536, 393, 729, 537, + 840, 545, 271, 984, 985, 986, 143, 987, 74, 164, + 988, 811, 393, 144, 819, 393, 393, 393, 393, 240, + 393, 393, 393, 981, 982, 983, 147, 167, 210, 571, + 4, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 31, 28, 28, 55, 7, 58, + 55, 94, 311, 312, 313, 314, 315, 316, 106, 55, + 55, 115, 55, 55, 55, 109, 8, 9, 55, 984, + 985, 986, 55, 987, 55, 1188, 988, 112, 118, 297, + 967, 899, 55, 10, 11, 12, 13, 1541, 55, 630, + 1180, 55, 55, 55, 317, 1067, 1481, 1339, 1179, 1243, + 1300, 859, 561, 561, 1092, 561, 1082, 1340, 318, 1331, + 561, 563, 669, 561, 162, 561, 561, 561, 561, 561, + 561, 561, 1079, 561, 561, 561, 561, 93, 561, 561, + 1303, 238, 561, 561, 561, 561, 165, 736, 561, 561, + 561, 561, 698, 319, 320, 917, 562, 794, 561, 201, + 561, 921, 505, 561, 0, 0, 677, 0, 561, 0, + 0, 600, 0, 0, 561, 561, 561, 561, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 562, + 784, 784, 0, 784, 562, 0, 562, 562, 562, 0, + 562, 0, 0, 562, 0, 0, 0, 0, 0, 0, + 561, 0, 561, 561, 561, 562, 562, 562, 562, 0, + 0, 0, 0, 0, 0, 0, 561, 561, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 10, 13, 0, 561, 0, 0, 0, 562, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 0, 0, 0, 562, + 561, 562, 0, 561, 561, 784, 784, 784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 561, 561, 561, 561, 0, 561, 561, 561, 561, 0, + 784, 561, 0, 561, 0, 561, 561, 561, 0, 0, + 561, 561, 0, 561, 561, 561, 0, 0, 0, 0, + 0, 0, 561, 865, 866, 867, 0, 868, 869, 870, + 871, 0, 872, 873, 197, 0, 874, 875, 876, 877, + 0, 0, 0, 878, 879, 0, 0, 0, 0, 0, + 561, 561, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 0, 561, 561, + 0, 561, 561, 561, 0, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 784, 0, 784, 784, 784, 784, + 0, 0, 0, 0, 0, 0, 562, 562, 0, 562, + 0, 880, 0, 803, 562, 0, 0, 562, 0, 562, + 562, 562, 562, 562, 562, 562, 0, 562, 562, 562, + 562, 0, 562, 562, 0, 0, 562, 562, 562, 562, + 0, 0, 562, 562, 562, 562, 0, 0, 0, 0, + 555, 0, 562, 0, 562, 0, 0, 562, 0, 0, + 0, 0, 562, 0, 0, 0, 0, 0, 562, 562, + 562, 562, 0, 0, 0, 0, 0, 0, 0, 803, + 0, 0, 0, 555, 0, 0, 0, 0, 555, 0, + 555, 555, 555, 0, 555, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 0, 562, 562, 562, 555, + 555, 555, 555, 0, 0, 0, 0, 0, 0, 0, + 562, 562, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, + 0, 555, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, + 0, 0, 0, 555, 562, 555, 0, 562, 562, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 562, 562, 562, 0, 562, + 562, 562, 562, 0, 0, 562, 0, 562, 0, 562, + 562, 562, 0, 0, 562, 562, 0, 562, 562, 562, + 0, 0, 127, 0, 0, 0, 562, 803, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 0, 1297, 144, + 0, 0, 0, 0, 562, 562, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 562, 0, 562, 562, 562, 0, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 0, 0, + 0, 0, 0, 803, 0, 0, 0, 1298, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 555, 0, 555, 0, 0, 1299, 0, 555, 0, + 0, 555, 0, 555, 555, 555, 555, 555, 555, 555, + 0, 555, 555, 555, 555, 0, 555, 555, 0, 1579, + 555, 555, 555, 555, 0, 0, 555, 555, 555, 555, + 0, 0, 0, 0, 553, 0, 555, 0, 555, 0, + 0, 555, 0, 0, 0, 0, 555, 0, 0, 0, + 0, 0, 555, 555, 555, 555, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 803, 803, 553, 0, 0, + 0, 0, 553, 0, 553, 553, 553, 0, 553, 0, + 0, 0, 0, 0, 0, 803, 0, 0, 555, 0, + 555, 555, 555, 553, 553, 553, 553, 803, 0, 803, + 803, 0, 803, 803, 555, 555, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 0, 0, 0, 553, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 0, 0, 0, 553, 555, 553, + 0, 555, 555, 0, 0, 0, 0, 0, 0, 803, + 803, 803, 803, 803, 803, 803, 0, 0, 555, 555, + 555, 555, 0, 555, 555, 555, 555, 0, 0, 555, + 1564, 555, 0, 555, 555, 555, 0, 0, 555, 555, + 0, 555, 555, 555, 0, 1565, 0, 0, 0, 0, + 555, 0, 0, 865, 866, 867, 0, 868, 869, 870, + 871, 1566, 872, 873, 197, 0, 874, 875, 876, 877, + 1567, 0, 0, 878, 879, 0, 0, 0, 555, 555, + 0, 0, 0, 0, 1568, 1569, 1570, 1571, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 555, 0, 555, + 555, 555, 0, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 0, 0, 0, 0, 1572, 1573, 1574, 1575, + 1576, 1577, 1578, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 553, 553, 0, 553, 0, 0, + 0, 880, 553, 0, 0, 553, 0, 553, 553, 553, + 553, 553, 553, 553, 0, 553, 553, 553, 553, 0, + 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, + 553, 553, 553, 553, 0, 0, 0, 0, 551, 0, + 553, 0, 553, 0, 0, 553, 0, 0, 0, 0, + 553, 0, 0, 0, 0, 0, 553, 553, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 551, 0, 0, 0, 0, 551, 0, 551, 551, + 551, 0, 551, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 553, 0, 553, 553, 553, 551, 551, 551, + 551, 0, 0, 0, 0, 0, 0, 0, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 553, 0, 0, 0, 551, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 0, 0, + 0, 551, 553, 551, 0, 553, 553, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 553, 553, 553, 553, 0, 553, 553, 553, + 553, 0, 0, 553, 0, 553, 215, 553, 553, 553, + 0, 0, 553, 553, 0, 553, 553, 553, 0, 0, + 0, 1227, 1228, 1229, 553, 1230, 1231, 1232, 1233, 0, + 1234, 1235, 197, 0, 1236, 1237, 1238, 1239, 0, 0, + 0, 0, 0, 1240, 0, 0, 0, 0, 0, 0, + 0, 0, 553, 553, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 553, 553, 0, 553, 553, 553, 0, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 551, 551, + 0, 551, 0, 0, 0, 0, 551, 0, 0, 551, + 0, 551, 551, 551, 551, 551, 551, 551, 0, 551, + 551, 551, 551, 0, 551, 551, 0, 0, 551, 551, + 551, 551, 0, 0, 551, 551, 551, 551, 0, 0, + 0, 0, 552, 0, 551, 0, 551, 0, 0, 551, + 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, + 551, 551, 551, 551, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, + 552, 0, 552, 552, 552, 0, 552, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 551, 0, 551, 551, + 551, 552, 552, 552, 552, 0, 0, 0, 0, 0, + 0, 0, 551, 551, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, + 0, 0, 0, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 0, 0, 0, 686, 551, 686, 0, 551, 551, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 551, 551, 551, 0, - 551, 551, 551, 551, 0, 0, 551, 0, 551, 0, - 551, 551, 551, 0, 0, 551, 551, 0, 551, 551, - 551, 0, 0, 0, 0, 0, 0, 551, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 551, 551, 0, 551, 551, 551, 0, - 551, 551, 551, 551, 551, 551, 551, 551, 551, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 686, 686, 0, 686, 0, 0, 0, 0, 686, - 0, 0, 686, 0, 686, 686, 686, 686, 686, 686, - 686, 0, 686, 686, 686, 686, 0, 686, 686, 0, - 0, 686, 686, 686, 686, 0, 0, 686, 686, 686, - 0, 0, 0, 0, 0, 685, 0, 686, 0, 686, - 0, 0, 686, 0, 0, 0, 0, 686, 0, 0, - 0, 0, 0, 686, 686, 686, 686, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, - 0, 0, 0, 685, 0, 685, 685, 685, 0, 685, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, - 0, 686, 686, 686, 685, 685, 685, 685, 0, 0, - 0, 0, 0, 0, 0, 686, 686, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 686, 0, 0, 0, 685, 686, 686, 686, - 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, - 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, - 686, 686, 686, 686, 686, 0, 0, 0, 685, 686, - 685, 0, 686, 686, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, - 686, 686, 686, 0, 686, 686, 686, 686, 0, 0, - 686, 0, 686, 0, 686, 686, 686, 0, 0, 686, - 686, 0, 686, 686, 686, 0, 0, 0, 0, 0, - 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, - 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 686, 686, 0, - 686, 686, 686, 0, 686, 686, 686, 686, 686, 686, - 686, 686, 686, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 685, 685, 0, 685, 0, - 0, 0, 0, 685, 0, 0, 685, 0, 685, 685, - 685, 685, 685, 685, 685, 0, 685, 685, 685, 685, - 0, 685, 685, 0, 0, 685, 685, 685, 685, 0, - 0, 685, 685, 685, 0, 0, 0, 0, 0, 693, - 0, 685, 0, 685, 0, 0, 685, 0, 0, 0, - 0, 685, 0, 0, 0, 0, 0, 685, 685, 685, - 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 693, 0, 0, 0, 0, 0, 0, 693, - 693, 0, 0, 693, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 685, 0, 685, 685, 685, 693, 0, - 693, 693, 0, 0, 0, 0, 0, 0, 0, 685, - 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, - 0, 685, 685, 685, 685, 685, 685, 685, 685, 685, - 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, - 685, 685, 685, 685, 685, 685, 685, 685, 685, 0, - 0, 0, 693, 685, 693, 0, 685, 685, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 685, 685, 685, 685, 0, 685, 685, - 685, 685, 0, 0, 685, 0, 685, 0, 685, 685, - 685, 0, 0, 685, 685, 0, 685, 685, 685, 0, - 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 685, 685, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 685, 685, 0, 685, 685, 685, 0, 685, 685, - 685, 685, 685, 685, 685, 685, 685, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 693, - 693, 0, 693, 0, 0, 67, 68, 693, 69, 0, - 693, 0, 693, 693, 693, 693, 693, 693, 693, 0, - 693, 693, 693, 693, 0, 693, 693, 0, 0, 693, - 693, 693, 693, 0, 0, 693, 693, 693, 0, 357, - 52, 0, 0, 0, 0, 693, 0, 693, 0, 0, - 693, 0, 0, 0, 0, 693, 0, 0, 0, 0, - 0, 693, 693, 693, 693, 0, 0, 0, 358, 0, - 0, 0, 359, 0, 0, 360, 361, 0, 0, 0, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 0, 0, 0, 0, 0, 693, 374, 52, - 0, 375, 0, 0, 0, 0, 0, 0, 376, 0, - 156, 0, 0, 693, 693, 0, 0, 377, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 693, 0, 0, 0, 0, 693, 693, 693, 693, 693, - 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, - 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, - 693, 693, 693, 52, 0, 52, 0, 693, 0, 0, - 693, 693, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 693, 693, 693, - 693, 0, 693, 693, 693, 693, 0, 0, 693, 0, - 693, 0, 693, 693, 693, 0, 0, 693, 693, 0, - 693, 693, 693, 0, 0, 0, 0, 0, 0, 693, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 693, 693, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 693, 693, 0, 693, 693, - 693, 0, 693, 693, 693, 693, 693, 693, 693, 693, - 693, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 0, 0, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 0, 52, 52, 52, - 0, 52, 52, 52, 52, 0, 52, 52, 52, 0, - 52, 52, 52, 52, 0, 0, 52, 52, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 127, 555, - 54, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 52, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 98, 143, 144, 0, 0, 0, 52, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 147, 148, 149, 0, 52, 52, 0, 0, 0, 54, + 551, 551, 0, 0, 0, 552, 551, 552, 0, 551, + 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 551, 551, 551, 551, + 0, 551, 551, 551, 551, 0, 0, 551, 0, 551, + 0, 551, 551, 551, 0, 0, 551, 551, 0, 551, + 551, 551, 0, 0, 0, 0, 0, 0, 551, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 551, 551, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 551, 551, 0, 551, 551, 551, + 0, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 552, 552, 0, 552, 0, 0, 0, 0, + 552, 0, 0, 552, 0, 552, 552, 552, 552, 552, + 552, 552, 0, 552, 552, 552, 552, 0, 552, 552, + 0, 0, 552, 552, 552, 552, 0, 0, 552, 552, + 552, 552, 0, 0, 0, 0, 554, 0, 552, 0, + 552, 0, 0, 552, 0, 0, 0, 0, 552, 0, + 0, 0, 0, 0, 552, 552, 552, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, + 0, 0, 0, 0, 554, 0, 554, 554, 554, 0, + 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 552, 0, 552, 552, 552, 554, 554, 554, 554, 0, + 0, 0, 0, 0, 0, 0, 552, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 552, 0, 0, 0, 554, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 0, 0, 0, 554, + 552, 554, 0, 552, 552, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 552, 552, 552, 552, 0, 552, 552, 552, 552, 0, + 0, 552, 0, 552, 0, 552, 552, 552, 0, 0, + 552, 552, 0, 552, 552, 552, 0, 0, 0, 0, + 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 552, 552, + 0, 552, 552, 552, 0, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 0, 554, + 0, 0, 0, 0, 554, 0, 0, 554, 0, 554, + 554, 554, 554, 554, 554, 554, 0, 554, 554, 554, + 554, 0, 554, 554, 0, 0, 554, 554, 554, 554, + 0, 0, 554, 554, 554, 554, 0, 0, 0, 0, + 689, 0, 554, 0, 554, 0, 0, 554, 0, 0, + 0, 0, 554, 0, 0, 0, 0, 0, 554, 554, + 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 689, 0, 0, 0, 0, 689, 0, + 689, 689, 689, 0, 689, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 554, 0, 554, 554, 554, 689, + 689, 689, 689, 0, 0, 0, 0, 0, 0, 0, + 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, + 0, 689, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 0, 0, 0, 689, 554, 689, 0, 554, 554, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 554, 554, 554, 554, 0, 554, + 554, 554, 554, 0, 0, 554, 0, 554, 0, 554, + 554, 554, 0, 0, 554, 554, 0, 554, 554, 554, + 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 554, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 554, 554, 0, 554, 554, 554, 0, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 689, 689, 0, 689, 0, 0, 0, 0, 689, 0, + 0, 689, 0, 689, 689, 689, 689, 689, 689, 689, + 0, 689, 689, 689, 689, 0, 689, 689, 0, 0, + 689, 689, 689, 689, 0, 0, 689, 689, 689, 0, + 0, 0, 0, 0, 688, 0, 689, 0, 689, 0, + 0, 689, 0, 0, 0, 0, 689, 0, 0, 0, + 0, 0, 689, 689, 689, 689, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 688, 0, 0, + 0, 0, 688, 0, 688, 688, 688, 0, 688, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 689, 0, + 689, 689, 689, 688, 688, 688, 688, 0, 0, 0, + 0, 0, 0, 0, 689, 689, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 689, 0, 0, 0, 688, 689, 689, 689, 689, + 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 0, 0, 0, 688, 689, 688, + 0, 689, 689, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 689, 689, + 689, 689, 0, 689, 689, 689, 689, 0, 0, 689, + 0, 689, 0, 689, 689, 689, 0, 0, 689, 689, + 0, 689, 689, 689, 0, 0, 0, 0, 0, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 689, 689, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 689, 689, 0, 689, + 689, 689, 0, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 688, 688, 0, 688, 0, 0, + 0, 0, 688, 0, 0, 688, 0, 688, 688, 688, + 688, 688, 688, 688, 0, 688, 688, 688, 688, 0, + 688, 688, 0, 0, 688, 688, 688, 688, 0, 0, + 688, 688, 688, 0, 0, 0, 0, 0, 696, 0, + 688, 0, 688, 0, 0, 688, 0, 0, 0, 0, + 688, 0, 0, 0, 0, 0, 688, 688, 688, 688, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 696, 0, 0, 0, 0, 0, 0, 696, 696, + 0, 0, 696, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 688, 0, 688, 688, 688, 696, 0, 696, + 696, 0, 0, 0, 0, 0, 0, 0, 688, 688, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 688, 0, 0, 0, 0, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 0, 0, + 0, 696, 688, 696, 0, 688, 688, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 688, 688, 688, 688, 0, 688, 688, 688, + 688, 0, 0, 688, 0, 688, 0, 688, 688, 688, + 0, 0, 688, 688, 0, 688, 688, 688, 0, 0, + 0, 0, 0, 0, 688, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 688, 688, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 688, 688, 0, 688, 688, 688, 0, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, + 0, 696, 0, 0, 0, 0, 696, 0, 0, 696, + 0, 696, 696, 696, 696, 696, 696, 696, 0, 696, + 696, 696, 696, 0, 696, 696, 0, 0, 696, 696, + 696, 696, 0, 0, 696, 696, 696, 0, 0, 52, + 0, 0, 0, 0, 696, 0, 696, 0, 0, 696, + 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, + 696, 696, 696, 696, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, + 0, 0, 0, 0, 298, 0, 298, 298, 298, 0, + 0, 0, 0, 0, 0, 0, 696, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 696, 696, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 298, 298, 0, 696, + 0, 0, 0, 0, 696, 696, 696, 696, 696, 696, + 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, + 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, + 696, 696, 52, 0, 52, 0, 696, 0, 0, 696, + 696, 298, 298, 298, 0, 298, 0, 0, 298, 0, + 0, 0, 0, 0, 0, 0, 696, 696, 696, 696, + 0, 696, 696, 696, 696, 0, 0, 696, 0, 696, + 0, 696, 696, 696, 0, 0, 696, 696, 0, 696, + 696, 696, 0, 0, 0, 0, 0, 0, 696, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 696, 696, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 696, 696, 0, 696, 696, 696, + 0, 696, 696, 696, 696, 696, 696, 696, 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 52, 52, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 52, 52, 52, 0, 52, + 52, 52, 52, 0, 0, 52, 52, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 127, 555, 54, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 52, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 52, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 147, + 148, 149, 0, 52, 52, 0, 0, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, + 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 54, 0, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, - 0, 52, 0, 52, 52, 52, 52, 0, 52, 52, - 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 105, 105, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 52, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 156, 0, 0, 0, 105, 0, 0, 0, - 105, 0, 0, 105, 105, 0, 0, 0, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 54, 0, 0, 54, 0, 0, 105, 0, 0, 105, - 0, 0, 0, 54, 0, 0, 105, 54, 54, 54, - 0, 54, 54, 54, 54, 105, 54, 54, 54, 0, - 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 264, 127, 265, - 55, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 54, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 0, 143, 144, 0, 0, 0, 54, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 147, 148, 149, 0, 54, 54, 0, 0, 0, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, + 52, 52, 54, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 0, 52, 0, + 52, 0, 52, 52, 52, 52, 0, 52, 52, 0, + 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, + 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 52, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 156, 0, 0, 0, 358, 0, 0, 0, 359, + 0, 0, 360, 361, 0, 0, 0, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 54, + 0, 0, 54, 0, 0, 374, 0, 0, 375, 0, + 0, 0, 54, 0, 0, 376, 54, 54, 54, 0, + 54, 54, 54, 54, 377, 54, 54, 54, 0, 54, + 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 264, 127, 265, 55, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 54, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 0, 0, 54, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 147, + 148, 149, 0, 54, 54, 0, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, + 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 55, 0, 55, 0, 0, 784, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, - 0, 54, 0, 54, 54, 54, 54, 0, 54, 54, - 127, 54, 54, 54, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 54, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 54, 54, 0, 54, - 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 222, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 55, 55, 55, - 0, 55, 55, 55, 55, 0, 55, 55, 55, 0, - 55, 55, 55, 55, 0, 0, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, - 56, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 55, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 0, 143, 144, 0, 0, 0, 55, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 147, 148, 149, 0, 55, 55, 0, 0, 0, 56, + 54, 54, 55, 0, 55, 0, 0, 784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, + 54, 0, 54, 54, 54, 54, 0, 0, 54, 0, + 54, 0, 54, 54, 54, 54, 0, 54, 54, 127, + 54, 54, 54, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, + 0, 147, 148, 149, 0, 54, 54, 0, 54, 54, + 54, 0, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 55, 55, 55, 0, + 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, + 55, 55, 55, 0, 0, 55, 55, 55, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 56, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 55, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 0, 0, 55, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 147, + 148, 149, 0, 55, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, + 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 56, 0, 56, 0, 0, 858, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, - 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, - 222, 55, 55, 55, 222, 222, 222, 222, 222, 0, - 222, 222, 222, 222, 0, 222, 222, 0, 0, 222, - 222, 222, 222, 0, 0, 0, 222, 222, 0, 0, - 0, 0, 0, 0, 0, 222, 0, 222, 55, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 222, 222, 222, 0, 55, 55, 0, 55, - 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 0, 56, 56, 56, - 0, 56, 56, 56, 56, 0, 56, 56, 56, 0, - 56, 56, 56, 56, 0, 0, 56, 56, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, - 53, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 56, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 0, 143, 144, 0, 0, 0, 56, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 55, 55, 56, 0, 56, 0, 0, 858, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 0, 55, 0, + 55, 0, 55, 55, 55, 55, 0, 55, 55, 225, + 55, 55, 55, 225, 225, 225, 225, 225, 0, 225, + 225, 225, 225, 0, 225, 225, 0, 0, 225, 225, + 225, 225, 0, 0, 0, 225, 225, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 225, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 225, 225, 0, 55, 55, 0, 55, 55, + 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 147, 148, 149, 0, 56, 56, 0, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 56, 56, 56, 56, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 0, 56, 56, 56, 0, 56, + 56, 56, 56, 0, 0, 56, 56, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 53, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 56, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 0, 0, 56, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 147, + 148, 149, 0, 56, 56, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, + 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 53, 0, 53, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, - 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, - 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 0, 0, 0, 0, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 53, 53, 53, - 0, 53, 53, 53, 53, 0, 53, 53, 53, 0, - 53, 53, 53, 53, 0, 0, 53, 53, 53, 0, - 0, 0, 61, 0, 61, 0, 0, 0, 229, 34, - 0, 0, 229, 229, 229, 229, 229, 0, 229, 229, - 229, 229, 53, 229, 229, 0, 0, 229, 229, 229, - 229, 0, 0, 0, 229, 229, 0, 0, 0, 53, - 0, 0, 0, 229, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 229, 229, 229, 0, 53, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 229, 53, 53, 53, 53, + 56, 56, 53, 0, 53, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 0, 56, 0, + 56, 0, 56, 56, 56, 56, 0, 56, 56, 0, + 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 105, 0, 105, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, + 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 56, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 0, 0, 0, 0, 105, 0, 61, 0, 105, + 0, 0, 105, 105, 0, 0, 0, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 53, + 0, 0, 53, 0, 0, 105, 0, 0, 105, 0, + 0, 0, 53, 0, 0, 105, 53, 53, 53, 0, + 53, 53, 53, 53, 105, 53, 53, 53, 0, 53, + 53, 53, 53, 0, 0, 53, 53, 53, 0, 0, + 0, 61, 0, 61, 0, 0, 0, 232, 34, 0, + 0, 232, 232, 232, 232, 232, 0, 232, 232, 232, + 232, 53, 232, 232, 0, 0, 232, 232, 232, 232, + 0, 0, 0, 232, 232, 0, 0, 0, 53, 0, + 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 232, + 232, 232, 0, 53, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 232, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, + 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 62, 0, 0, 0, 0, 61, - 0, 0, 61, 0, 0, 0, 0, 0, 53, 53, - 53, 53, 61, 53, 53, 53, 53, 0, 0, 53, - 0, 53, 0, 53, 53, 53, 53, 0, 53, 53, - 0, 53, 53, 53, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 53, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, - 0, 0, 0, 2, 0, 0, 53, 53, 0, 53, - 53, 53, 0, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 507, 0, 0, 61, 61, 61, 61, 61, + 53, 53, 0, 62, 0, 0, 0, 0, 61, 0, + 0, 61, 0, 0, 0, 0, 0, 53, 53, 53, + 53, 61, 53, 53, 53, 53, 0, 0, 53, 0, + 53, 0, 53, 53, 53, 53, 0, 53, 53, 0, + 53, 53, 53, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 53, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, + 0, 0, 2, 0, 0, 53, 53, 0, 53, 53, + 53, 0, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 507, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, + 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 0, 65, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 61, 61, - 61, 0, 61, 61, 61, 61, 0, 0, 61, 0, - 61, 0, 61, 61, 61, 61, 0, 61, 61, 0, - 61, 61, 61, 0, 0, 0, 0, 0, 0, 508, - 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 509, 0, 0, 0, 0, 510, 0, - 0, 8, 9, 0, 0, 0, 0, 61, 61, 0, - 0, 0, 0, 0, 62, 0, 0, 62, 10, 11, - 12, 13, 0, 511, 512, 61, 61, 62, 61, 61, - 61, 0, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 0, 0, 513, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 65, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 0, 514, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 61, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 61, 61, 61, 61, + 0, 61, 61, 61, 61, 0, 0, 61, 0, 61, + 0, 61, 61, 61, 61, 0, 61, 61, 0, 61, + 61, 61, 0, 0, 0, 0, 0, 0, 508, 0, + 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 509, 0, 0, 0, 0, 510, 0, 0, + 8, 9, 0, 0, 0, 0, 61, 61, 0, 0, + 0, 0, 0, 62, 0, 0, 62, 10, 11, 12, + 13, 0, 511, 512, 61, 61, 62, 61, 61, 61, + 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 0, 0, 513, 0, 0, 0, 0, 0, 0, 62, + 0, 0, 0, 0, 0, 65, 0, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 514, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, - 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 66, 0, - 0, 0, 0, 65, 0, 0, 65, 0, 0, 0, - 0, 0, 62, 62, 62, 62, 65, 62, 62, 62, - 62, 0, 0, 62, 0, 62, 0, 62, 62, 62, - 62, 0, 62, 62, 0, 62, 62, 62, 0, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 65, 0, 0, 222, 0, - 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 62, 62, 0, 62, 62, 62, 0, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 66, 0, 0, 222, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 65, + 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 0, 66, 0, 0, + 0, 0, 65, 0, 0, 65, 0, 0, 0, 0, + 0, 62, 62, 62, 62, 65, 62, 62, 62, 62, + 0, 0, 62, 0, 62, 0, 62, 62, 62, 62, + 0, 62, 62, 0, 62, 62, 62, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 225, 0, 0, + 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 62, + 62, 0, 62, 62, 62, 0, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 66, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, + 65, 65, 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, - 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 65, 65, 65, 0, 65, 65, 65, 65, - 0, 0, 65, 0, 65, 0, 65, 65, 65, 65, - 0, 65, 65, 0, 65, 65, 65, 0, 0, 0, - 0, 0, 563, 563, 0, 0, 563, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 563, 0, 0, 0, 0, 0, 0, - 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, - 65, 66, 65, 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 222, 563, 0, 0, - 222, 222, 222, 222, 222, 0, 222, 222, 222, 222, - 66, 222, 222, 0, 0, 222, 222, 222, 222, 0, - 0, 0, 222, 222, 0, 0, 0, 66, 0, 0, - 0, 222, 0, 222, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 222, - 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 222, 66, 66, 66, 66, 66, 66, + 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 65, 65, 65, 0, 65, 65, 65, 65, 0, + 0, 65, 0, 65, 0, 65, 65, 65, 65, 0, + 65, 65, 0, 65, 65, 65, 0, 0, 0, 0, + 0, 566, 566, 0, 0, 566, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 566, 0, 566, 0, 0, 0, 0, 0, 0, 0, + 65, 65, 0, 0, 0, 0, 0, 66, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 65, 65, + 66, 65, 65, 65, 0, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 225, 566, 0, 0, 225, + 225, 225, 225, 225, 0, 225, 225, 225, 225, 66, + 225, 225, 0, 0, 225, 225, 225, 225, 0, 0, + 0, 225, 225, 0, 0, 0, 66, 0, 0, 0, + 225, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 0, 0, 225, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, + 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 0, 0, 561, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 563, 0, 563, 66, 66, 66, 66, - 0, 66, 66, 66, 66, 563, 563, 66, 0, 66, - 0, 66, 66, 66, 66, 0, 66, 66, 0, 66, - 66, 66, 0, 561, 561, 0, 0, 561, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 561, 563, 561, 0, 0, 0, 563, 0, - 0, 0, 0, 0, 563, 0, 66, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 66, 0, 66, 66, 66, - 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 1020, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 561, 0, 561, 1021, - 1022, 0, 1023, 1024, 1025, 1026, 1027, 1028, 0, 1029, - 1030, 0, 1031, 1032, 1033, 1034, 1035, 0, 563, 563, - 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, - 563, 563, 563, 563, 563, 563, 0, 0, 0, 563, - 563, 563, 563, 563, 563, 563, 0, 0, 0, 0, - 563, 0, 0, 563, 563, 0, 0, 562, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 563, 563, 563, 0, 563, 563, 563, 563, 0, - 0, 563, 0, 563, 0, 563, 563, 563, 0, 0, - 563, 563, 0, 563, 563, 563, 0, 562, 562, 0, - 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 0, 562, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 563, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 561, 561, 563, 563, - 0, 563, 563, 563, 0, 563, 563, 563, 563, 563, - 563, 563, 563, 563, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 0, 562, 0, 561, 0, 0, 0, 0, 561, - 0, 0, 0, 0, 0, 561, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1036, 1037, 0, - 1038, 1039, 1040, 0, 1041, 1042, 0, 0, 1043, 1044, - 0, 1045, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 0, 0, 33, - 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, - 0, 561, 0, 0, 561, 561, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 561, 561, 561, 561, 0, 561, 561, 561, 561, - 562, 562, 561, 0, 561, 0, 561, 561, 561, 0, - 0, 561, 561, 0, 561, 561, 561, 0, 0, 0, - 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, - 0, 0, 0, 562, 0, 0, 0, 0, 0, 562, - 0, 561, 561, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, - 561, 0, 561, 561, 561, 0, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 0, 0, 0, 562, 562, 562, 562, 562, 562, - 562, 0, 0, 0, 0, 562, 0, 0, 562, 562, - 33, 34, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 562, 562, 562, 562, 0, - 562, 562, 562, 562, 0, 0, 562, 0, 562, 0, - 562, 562, 562, 0, 0, 562, 562, 0, 562, 562, - 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 34, 0, 34, 0, 0, - 0, 0, 0, 0, 0, 562, 562, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 562, 0, 562, 562, 562, 0, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 0, - 0, 0, 0, 0, 0, 763, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 0, 763, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, - 33, 33, 0, 33, 33, 33, 33, 0, 0, 33, - 0, 33, 34, 0, 33, 34, 0, 0, 0, 0, - 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 763, 0, - 763, 0, 0, 0, 0, 0, 0, 0, 33, 33, - 382, 97, 0, 0, 0, 0, 99, 0, 100, 0, - 0, 0, 0, 0, 34, 101, 33, 33, 0, 33, - 33, 33, 0, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 102, 383, 0, 384, 385, 386, 387, 388, - 0, 0, 0, 0, 389, 0, 0, 103, 0, 765, - 0, 0, 0, 390, 0, 0, 0, 0, 391, 0, - 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, - 777, 0, 0, 0, 0, 401, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 0, 765, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 763, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 763, 777, - 34, 34, 34, 34, 0, 34, 34, 34, 34, 0, - 0, 34, 0, 34, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, - 0, 0, 765, 0, 765, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 763, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 0, 0, 0, 777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, - 0, 34, 34, 34, 0, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 763, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 763, 0, - 0, 0, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 0, 0, 765, - 0, 0, 0, 763, 763, 763, 763, 0, 763, 763, - 763, 763, 765, 0, 763, 0, 763, 0, 0, 763, - 0, 0, 0, 0, 0, 0, 763, 763, 763, 0, + 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, + 0, 566, 566, 0, 566, 66, 66, 66, 66, 0, + 66, 66, 66, 66, 566, 566, 66, 0, 66, 0, + 66, 66, 66, 66, 0, 66, 66, 0, 66, 66, + 66, 0, 564, 564, 0, 0, 564, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 564, 566, 564, 0, 0, 0, 566, 0, 0, + 0, 0, 0, 566, 0, 66, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 66, 0, 66, 66, 66, 0, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 1022, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 564, 0, 564, 1023, 1024, + 0, 1025, 1026, 1027, 1028, 1029, 1030, 0, 1031, 1032, + 0, 1033, 1034, 1035, 1036, 1037, 0, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 0, 0, 0, 566, 566, + 566, 566, 566, 566, 566, 0, 0, 0, 0, 566, + 0, 0, 566, 566, 0, 0, 565, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, + 566, 566, 566, 0, 566, 566, 566, 566, 0, 0, + 566, 0, 566, 0, 566, 566, 566, 0, 0, 566, + 566, 0, 566, 566, 566, 0, 565, 565, 0, 0, + 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 565, 0, 565, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, + 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 564, 564, 566, 566, 0, + 566, 566, 566, 0, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, + 0, 565, 0, 564, 0, 0, 0, 0, 564, 0, + 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1038, 1039, 0, 1040, + 1041, 1042, 0, 1043, 1044, 0, 0, 1045, 1046, 0, + 1047, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 0, 1048, 1049, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 0, 0, 33, 564, + 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, + 564, 0, 0, 564, 564, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 564, 564, 564, 564, 0, 564, 564, 564, 564, 565, + 565, 564, 0, 564, 0, 564, 564, 564, 0, 0, + 564, 564, 0, 564, 564, 564, 0, 0, 0, 0, + 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, + 0, 0, 565, 0, 0, 0, 0, 0, 565, 0, + 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, + 0, 564, 564, 564, 0, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 769, 0, 769, 0, 0, 0, - 0, 765, 0, 763, 763, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 763, 763, 0, 763, 763, 763, 0, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 767, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 0, 0, 0, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 0, 0, 767, 0, 0, 0, 0, 777, - 777, 777, 777, 777, 0, 0, 0, 765, 765, 765, - 765, 769, 765, 765, 765, 765, 0, 0, 765, 0, - 765, 777, 777, 765, 769, 0, 0, 0, 0, 0, - 765, 765, 765, 0, 0, 0, 0, 0, 777, 777, - 777, 777, 0, 0, 0, 777, 777, 0, 0, 0, - 0, 777, 0, 777, 777, 0, 0, 0, 767, 0, - 767, 777, 777, 0, 0, 0, 0, 765, 765, 0, - 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 765, 765, 0, 765, 765, - 765, 0, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 0, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 0, 0, 0, 0, 777, 777, 0, 777, - 777, 777, 0, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 769, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 769, 769, 0, 0, 771, 769, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 769, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 767, 0, 0, 0, 769, - 769, 769, 769, 0, 769, 769, 769, 769, 767, 0, - 769, 0, 769, 0, 0, 769, 0, 0, 0, 0, - 0, 0, 769, 769, 769, 0, 0, 0, 0, 0, - 0, 771, 0, 771, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 767, 0, 769, - 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 769, 0, - 769, 769, 769, 0, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 767, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 767, 767, 767, 767, 767, 0, - 0, 0, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 767, 767, 767, 767, 771, 721, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 771, 0, 767, 767, 767, 767, 0, 767, 767, - 767, 767, 0, 0, 767, 0, 767, 0, 0, 767, - 0, 0, 0, 0, 0, 0, 767, 767, 767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 771, 0, 0, 721, 0, 721, 0, 0, 0, 0, - 0, 0, 0, 767, 767, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 767, 767, 0, 767, 767, 767, 0, 767, 767, - 767, 767, 767, 767, 767, 767, 767, 0, 0, 0, - 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 771, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 0, 0, 0, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 0, 723, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 771, 771, 771, 771, - 0, 771, 771, 771, 771, 0, 0, 771, 0, 771, - 721, 0, 771, 721, 0, 0, 0, 0, 0, 771, - 771, 771, 0, 721, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 723, 0, 723, 0, - 0, 0, 0, 0, 0, 0, 771, 771, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 771, 771, 0, 771, 771, 771, - 0, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 397, 0, 0, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 0, 0, 0, 721, 721, 721, - 721, 721, 721, 721, 0, 0, 0, 0, 721, 0, - 0, 721, 721, 723, 0, 0, 723, 397, 0, 0, - 0, 0, 0, 0, 0, 0, 723, 0, 721, 721, - 721, 721, 397, 721, 721, 721, 721, 0, 0, 721, - 0, 721, 0, 721, 721, 721, 0, 0, 721, 721, - 0, 721, 721, 721, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 723, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 721, - 0, 0, 0, 0, 0, 0, 397, 0, 397, 0, - 0, 0, 0, 0, 0, 0, 721, 721, 0, 721, - 721, 721, 0, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 439, 0, 0, 0, 0, 0, 0, 0, 0, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 0, 0, 0, - 723, 723, 723, 723, 723, 723, 723, 0, 0, 0, - 0, 723, 0, 0, 723, 723, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, - 0, 723, 723, 723, 723, 0, 723, 723, 723, 723, - 0, 0, 723, 0, 723, 0, 723, 723, 723, 0, - 0, 723, 723, 0, 723, 723, 723, 0, 0, 0, - 0, 0, 0, 397, 0, 0, 397, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 723, 723, 439, 0, 439, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 723, - 723, 205, 723, 723, 723, 0, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 397, 0, 0, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 205, 0, 205, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, - 397, 397, 397, 397, 397, 397, 397, 150, 151, 0, - 439, 397, 0, 439, 397, 397, 205, 0, 0, 0, - 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, - 0, 397, 397, 397, 397, 0, 397, 397, 397, 397, - 0, 0, 397, 0, 397, 0, 0, 397, 0, 0, - 0, 0, 207, 0, 397, 397, 397, 0, 0, 0, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, - 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 397, - 397, 207, 397, 397, 397, 0, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 205, 0, 0, 439, 439, 439, - 439, 439, 439, 439, 0, 0, 0, 207, 439, 0, - 0, 439, 439, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 439, 439, - 439, 439, 0, 439, 439, 439, 439, 0, 92, 439, - 0, 439, 0, 205, 439, 0, 0, 0, 0, 0, - 0, 439, 439, 439, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 0, 439, 439, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 439, 439, 0, 439, - 439, 439, 0, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 0, 0, 0, 0, 0, 0, 0, 0, - 205, 205, 205, 205, 205, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 205, 0, 0, 0, 0, 205, - 93, 0, 205, 205, 0, 207, 0, 0, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, - 205, 205, 205, 0, 205, 205, 205, 205, 0, 0, - 0, 0, 205, 0, 0, 205, 92, 0, 0, 0, - 0, 0, 205, 205, 205, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, - 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 205, 205, 0, - 205, 205, 205, 0, 205, 205, 205, 205, 205, 205, - 205, 205, 205, 0, 0, 0, 0, 0, 0, 774, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, - 0, 207, 207, 207, 207, 207, 0, 0, 93, 0, - 47, 0, 0, 0, 0, 207, 0, 0, 0, 0, - 207, 0, 0, 207, 207, 0, 0, 0, 0, 0, - 0, 0, 92, 92, 92, 92, 92, 0, 774, 0, - 207, 207, 207, 207, 0, 207, 207, 207, 207, 0, - 0, 0, 0, 207, 92, 92, 207, 0, 0, 0, - 0, 0, 0, 207, 207, 207, 0, 0, 0, 47, - 0, 92, 92, 92, 92, 0, 0, 0, 92, 92, - 0, 0, 0, 0, 92, 0, 0, 92, 0, 0, - 0, 0, 0, 0, 92, 92, 0, 0, 0, 0, - 207, 207, 0, 0, 774, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 207, 207, - 0, 207, 207, 207, 0, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 0, 47, 0, 0, 0, 0, - 0, 94, 0, 0, 93, 93, 93, 93, 93, 92, - 92, 0, 92, 92, 92, 0, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 48, 93, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 93, 93, 93, 0, 0, 0, - 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 93, 0, 93, 93, 93, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, - 94, 94, 0, 47, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 94, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 94, 94, 94, - 0, 0, 0, 94, 94, 0, 0, 0, 0, 94, - 0, 0, 94, 0, 0, 0, 0, 50, 0, 94, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 0, 0, 0, 565, 565, 565, 565, 565, 565, 565, + 0, 0, 0, 0, 565, 0, 0, 565, 565, 33, + 34, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 565, 565, 565, 565, 0, 565, + 565, 565, 565, 0, 0, 565, 0, 565, 0, 565, + 565, 565, 0, 0, 565, 565, 0, 565, 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 774, 774, - 774, 774, 774, 0, 94, 94, 50, 94, 94, 94, - 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 774, 774, 0, 0, 0, 0, 0, 0, 0, 47, - 47, 47, 47, 47, 0, 0, 0, 774, 774, 774, - 774, 49, 0, 0, 774, 774, 0, 0, 48, 0, - 774, 47, 47, 774, 0, 0, 0, 0, 51, 0, - 774, 774, 0, 0, 0, 0, 0, 0, 47, 47, - 47, 47, 50, 0, 0, 47, 47, 0, 0, 0, - 0, 47, 0, 0, 47, 0, 0, 0, 0, 777, - 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 774, 774, 51, 774, 774, - 774, 0, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 47, 777, 47, - 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 48, 48, 48, 48, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, - 50, 0, 0, 48, 48, 48, 48, 0, 0, 0, - 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, - 0, 51, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, - 0, 313, 313, 0, 0, 0, 50, 50, 50, 50, - 50, 0, 777, 0, 49, 49, 49, 49, 0, 0, - 0, 49, 49, 0, 0, 0, 0, 49, 50, 50, - 49, 0, 0, 0, 0, 0, 0, 49, 49, 0, - 0, 0, 0, 33, 0, 50, 50, 50, 50, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 50, 0, - 0, 50, 0, 0, 0, 313, 0, 313, 50, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 0, 49, 49, 49, 0, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, - 51, 51, 0, 50, 50, 0, 50, 50, 50, 0, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, - 51, 0, 0, 0, 0, 0, 0, 233, 777, 777, - 777, 777, 777, 558, 0, 0, 51, 51, 51, 51, - 0, 0, 0, 51, 51, 233, 0, 0, 33, 51, - 777, 777, 51, 0, 0, 0, 0, 0, 0, 51, - 51, 0, 0, 0, 0, 0, 0, 777, 777, 777, - 777, 0, 0, 0, 777, 777, 0, 0, 0, 0, - 777, 0, 313, 777, 0, 313, 0, 0, 0, 0, - 777, 777, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, - 0, 233, 0, 0, 51, 51, 0, 51, 51, 51, - 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 777, 777, 0, 777, 777, - 777, 0, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 33, 0, 0, 0, 33, 33, 33, 33, 33, - 0, 33, 33, 33, 33, 0, 33, 33, 0, 232, - 33, 33, 33, 33, 0, 37, 0, 33, 33, 0, - 40, 0, 43, 0, 0, 0, 33, 232, 33, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 49, 0, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 52, 0, 0, 0, 313, 0, 0, 0, 313, - 313, 313, 313, 313, 313, 0, 233, 0, 33, 233, - 0, 0, 0, 313, 313, 0, 0, 0, 0, 233, - 558, 232, 0, 232, 0, 0, 0, 0, 0, 0, - 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 33, 0, 0, 0, - 33, 33, 33, 33, 33, 313, 33, 33, 33, 33, - 0, 33, 33, 0, 0, 33, 33, 33, 33, 0, - 37, 0, 33, 33, 0, 40, 0, 43, 0, 0, - 0, 33, 0, 33, 46, 0, 0, 0, 0, 0, - 313, 313, 313, 0, 0, 0, 0, 0, 33, 33, - 33, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 313, 313, 313, - 313, 313, 313, 313, 0, 0, 0, 0, 0, 314, - 0, 0, 0, 33, 0, 0, 0, 233, 0, 0, - 0, 0, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 0, 0, 0, 232, 233, - 0, 232, 0, 233, 233, 233, 233, 233, 233, 0, - 0, 232, 0, 0, 0, 0, 0, 233, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 233, 233, 233, 233, 0, 0, - 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 233, 233, 0, 0, 0, 0, - 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, - 0, 233, 233, 233, 233, 233, 233, 233, 0, 232, - 0, 0, 0, 0, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 0, 0, 0, - 0, 232, 0, 0, 0, 232, 232, 232, 232, 232, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 232, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 519, - 0, 519, 0, 0, 0, 0, 232, 232, 232, 232, - 0, 0, 0, 0, 0, 0, 0, 232, 34, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 232, 314, 314, 314, 314, 0, 314, 314, 314, - 314, 0, 314, 314, 0, 0, 314, 314, 314, 314, - 0, 0, 0, 314, 314, 0, 0, 0, 0, 0, - 0, 0, 314, 0, 314, 0, 232, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, - 314, 314, 321, 0, 734, 0, 0, 0, 0, 0, - 0, 0, 0, 232, 232, 232, 232, 232, 232, 232, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 519, 0, 0, 519, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 321, 0, 918, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 519, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519, 519, 0, 0, 0, 0, 519, - 0, 0, 0, 519, 519, 519, 519, 519, 519, 0, - 0, 0, 67, 0, 0, 69, 0, 519, 519, 0, - 0, 0, 0, 0, 0, 2, 524, 0, 524, 0, - 0, 0, 0, 0, 519, 519, 519, 519, 0, 0, - 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, - 0, 0, 0, 0, 0, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 0, 0, - 0, 0, 7, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 0, 0, 519, 519, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, - 13, 519, 519, 519, 519, 519, 519, 519, 317, 368, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 0, 0, 524, 0, 7, 524, 0, 0, 311, - 312, 313, 314, 315, 316, 0, 524, 319, 320, 0, - 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 368, 0, 368, 0, 0, 0, 0, - 10, 11, 12, 13, 27, 28, 29, 30, 31, 32, - 33, 317, 360, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 319, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 360, 0, 360, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 353, 0, 0, 0, 524, - 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, - 524, 524, 0, 0, 0, 0, 524, 0, 0, 0, - 524, 524, 524, 524, 524, 524, 0, 0, 0, 0, - 368, 0, 0, 368, 524, 524, 0, 0, 0, 0, - 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, - 0, 524, 524, 524, 524, 0, 0, 0, 0, 353, - 0, 353, 524, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 524, 524, 360, 0, 0, 360, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 524, 524, - 524, 524, 524, 524, 524, 0, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 368, 368, 368, 368, - 368, 368, 368, 368, 368, 368, 368, 368, 368, 0, - 0, 0, 0, 368, 0, 0, 0, 368, 368, 368, - 368, 368, 368, 0, 0, 0, 353, 0, 0, 353, - 0, 368, 368, 0, 0, 0, 0, 0, 0, 353, - 207, 0, 207, 0, 0, 0, 0, 0, 368, 368, - 368, 368, 0, 0, 0, 0, 0, 0, 0, 368, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 368, 0, 0, 0, 0, 0, 360, - 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 360, 0, 0, 0, 0, 360, 0, 0, 0, - 360, 360, 360, 360, 360, 360, 0, 0, 368, 368, - 0, 0, 0, 0, 360, 360, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 360, 360, 360, 360, 368, 368, 368, 368, 368, - 368, 368, 360, 518, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, - 0, 0, 353, 353, 353, 353, 353, 353, 353, 353, - 353, 353, 353, 353, 353, 34, 0, 207, 0, 353, - 207, 0, 0, 353, 353, 353, 353, 353, 353, 0, - 207, 360, 360, 0, 0, 0, 0, 353, 353, 0, - 0, 0, 0, 0, 0, 0, 0, 518, 0, 518, - 0, 0, 0, 0, 353, 353, 353, 353, 360, 360, - 360, 360, 360, 360, 360, 353, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, - 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 353, 353, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 353, 353, 353, 353, 353, 353, 353, 0, 0, - 0, 0, 0, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 0, 0, 0, 0, - 207, 0, 0, 0, 207, 207, 207, 207, 207, 207, - 0, 0, 0, 0, 518, 0, 0, 518, 207, 207, - 0, 0, 0, 0, 0, 184, 0, 518, 0, 0, - 0, 0, 0, 0, 0, 207, 207, 207, 207, 0, - 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 207, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 207, 207, 207, 207, 207, 207, 207, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, - 518, 518, 518, 0, 0, 0, 0, 518, 0, 0, - 2, 518, 518, 518, 518, 518, 518, 0, 0, 0, - 0, 0, 0, 0, 0, 518, 518, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, - 0, 0, 518, 518, 518, 518, 0, 0, 0, 0, - 0, 0, 0, 518, 0, 0, 0, 8, 9, 156, - 0, 0, 0, 0, 0, 0, 0, 518, 0, 0, - 0, 0, 0, 0, 10, 11, 12, 13, 0, 184, - 0, 14, 15, 0, 0, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, - 0, 0, 518, 518, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 518, - 518, 518, 518, 518, 518, 518, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, - 7, 0, 20, 21, 0, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 8, 9, - 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 0, 14, 15, 0, 0, 0, 0, 16, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 0, 0, 0, 184, 0, 184, 184, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 0, 0, 0, 0, 184, 0, 0, 184, 184, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 184, 184, 184, 0, 184, - 184, 0, 0, 20, 21, 0, 22, 23, 24, 0, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 184, 184, 139, 140, 141, 142, - 433, 156, 0, 143, 144, 0, 282, 0, 0, 0, - 281, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 184, 184, 184, 184, 184, 184, 184, 280, 147, - 148, 149, 0, 434, 0, 435, 436, 437, 438, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, - 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, - 0, 0, 439, 440, 441, 442, 0, 0, 443, 0, - 0, 0, 444, 445, 446, 0, 0, 0, 0, 0, - 0, 0, 209, 0, 0, 0, 209, 209, 209, 209, - 209, 0, 209, 209, 209, 209, 0, 209, 209, 0, - 0, 209, 209, 209, 209, 209, 0, 0, 209, 209, - 0, 0, 0, 0, 0, 0, 0, 209, 0, 209, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 209, 209, 209, 0, 209, 0, - 209, 209, 209, 209, 0, 0, 0, 0, 156, 0, - 0, 0, 0, 282, 0, 0, 0, 692, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, - 0, 0, 0, 0, 0, 280, 447, 209, 209, 209, - 209, 0, 0, 209, 0, 0, 0, 209, 209, 209, + 0, 33, 0, 0, 34, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 0, 565, 565, 0, 565, 565, 565, 0, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 0, 0, + 0, 0, 0, 0, 766, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 0, 766, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, + 33, 0, 33, 33, 33, 33, 0, 0, 33, 0, + 33, 34, 0, 33, 34, 0, 0, 0, 0, 0, + 33, 33, 33, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 766, 0, 766, + 0, 0, 0, 0, 0, 0, 0, 33, 33, 382, + 97, 0, 0, 0, 0, 99, 0, 100, 0, 0, + 0, 0, 0, 34, 101, 33, 33, 0, 33, 33, + 33, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 102, 383, 0, 384, 385, 386, 387, 388, 0, + 0, 0, 0, 389, 0, 0, 103, 0, 768, 0, + 0, 0, 390, 0, 0, 0, 0, 391, 0, 392, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 393, 394, 395, 396, 397, 398, 399, 400, 780, + 0, 0, 0, 0, 401, 0, 0, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 0, 0, 768, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 766, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 766, 780, 34, + 34, 34, 34, 0, 34, 34, 34, 34, 0, 0, + 34, 0, 34, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 34, 34, 34, 0, 0, 0, 0, 0, + 0, 768, 0, 768, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 766, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 34, 0, 0, 0, 780, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, + 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, + 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 766, 766, 0, 0, + 0, 766, 766, 766, 766, 766, 766, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 766, 0, 0, 772, + 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, + 0, 0, 766, 766, 766, 766, 0, 766, 766, 766, + 766, 768, 0, 766, 0, 766, 0, 0, 766, 0, + 0, 0, 0, 0, 0, 766, 766, 766, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 772, 0, 772, 0, 0, 0, 0, + 768, 0, 766, 766, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 766, 766, 0, 766, 766, 766, 0, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 770, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 0, 0, 0, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 0, 0, 770, 0, 0, 0, 0, 780, 780, + 780, 780, 780, 0, 0, 0, 768, 768, 768, 768, + 772, 768, 768, 768, 768, 0, 0, 768, 0, 768, + 780, 780, 768, 772, 0, 0, 0, 0, 0, 768, + 768, 768, 0, 0, 0, 0, 0, 780, 780, 780, + 780, 0, 0, 0, 780, 780, 0, 0, 0, 0, + 780, 0, 780, 780, 0, 0, 0, 770, 0, 770, + 780, 780, 0, 0, 0, 0, 768, 768, 0, 0, + 0, 0, 772, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 768, 768, 0, 768, 768, 768, + 0, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 0, 0, 0, 0, 0, 0, 0, 774, 0, 0, + 0, 0, 0, 0, 0, 780, 780, 0, 780, 780, + 780, 0, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 772, 0, 0, 774, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 770, 0, 0, 0, 772, 772, + 772, 772, 0, 772, 772, 772, 772, 770, 0, 772, + 0, 772, 0, 0, 772, 0, 0, 0, 0, 0, + 0, 772, 772, 772, 0, 0, 0, 0, 0, 0, + 774, 0, 774, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 770, 0, 772, 772, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 772, 772, 0, 772, + 772, 772, 0, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 770, 770, 770, 770, 0, 0, + 0, 770, 770, 770, 770, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 770, 770, 770, 774, 724, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 774, 0, 770, 770, 770, 770, 0, 770, 770, 770, + 770, 0, 0, 770, 0, 770, 0, 0, 770, 0, + 0, 0, 0, 0, 0, 770, 770, 770, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 774, + 0, 0, 724, 0, 724, 0, 0, 0, 0, 0, + 0, 0, 770, 770, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 770, 770, 0, 770, 770, 770, 0, 770, 770, 770, + 770, 770, 770, 770, 770, 770, 0, 0, 0, 0, + 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 0, 0, 0, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 774, 774, 774, 774, 0, + 774, 774, 774, 774, 0, 0, 774, 0, 774, 724, + 0, 774, 724, 0, 0, 0, 0, 0, 774, 774, + 774, 0, 724, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 726, 0, 726, 0, 0, + 0, 0, 0, 0, 0, 774, 774, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 724, 0, 774, 774, 0, 774, 774, 774, 0, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 0, 0, 0, 724, 724, 724, 724, + 724, 724, 724, 0, 0, 0, 0, 724, 0, 0, + 724, 724, 726, 0, 0, 726, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 726, 0, 724, 724, 724, + 724, 400, 724, 724, 724, 724, 0, 0, 724, 0, + 724, 0, 724, 724, 724, 0, 0, 724, 724, 0, + 724, 724, 724, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 724, 724, 0, + 0, 0, 0, 0, 0, 400, 0, 400, 0, 0, + 0, 0, 0, 0, 0, 724, 724, 0, 724, 724, + 724, 0, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 0, 0, 0, 726, + 726, 726, 726, 726, 726, 726, 0, 0, 0, 0, + 726, 0, 0, 726, 726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, + 726, 726, 726, 726, 0, 726, 726, 726, 726, 0, + 0, 726, 0, 726, 0, 726, 726, 726, 0, 0, + 726, 726, 0, 726, 726, 726, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 726, 726, 442, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, + 208, 726, 726, 726, 0, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 400, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 677, 98, 143, 144, 0, 677, 0, - 0, 0, 677, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 677, 147, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 677, 156, 0, 0, 0, 150, 282, 275, 276, - 277, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 463, 464, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 208, + 0, 208, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 0, 0, 0, 400, + 400, 400, 400, 400, 400, 400, 150, 151, 0, 442, + 400, 0, 442, 400, 400, 208, 0, 0, 0, 0, + 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, + 400, 400, 400, 400, 0, 400, 400, 400, 400, 0, + 0, 400, 0, 400, 0, 0, 400, 0, 0, 0, + 0, 210, 0, 400, 400, 400, 0, 0, 0, 0, + 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, + 400, 400, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, + 210, 400, 400, 400, 0, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 208, 0, 0, 442, 442, 442, 442, + 442, 442, 442, 0, 0, 0, 210, 442, 0, 0, + 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 442, 442, 442, + 442, 0, 442, 442, 442, 442, 0, 92, 442, 0, + 442, 0, 208, 442, 0, 0, 0, 0, 0, 0, + 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 0, 442, 442, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 442, 0, 442, 442, + 442, 0, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 208, 0, 0, 0, 0, 208, 93, + 0, 208, 208, 0, 210, 0, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, + 208, 208, 0, 208, 208, 208, 208, 0, 0, 0, + 0, 208, 0, 0, 208, 92, 0, 0, 0, 0, + 0, 208, 208, 208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 208, 0, 208, + 208, 208, 0, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 0, 0, 0, 0, 0, 0, 777, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 210, 210, 210, 210, 210, 0, 0, 93, 0, 47, + 0, 0, 0, 0, 210, 0, 0, 0, 0, 210, + 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, + 0, 92, 92, 92, 92, 92, 0, 777, 0, 210, + 210, 210, 210, 0, 210, 210, 210, 210, 0, 0, + 0, 0, 210, 92, 92, 210, 0, 0, 0, 0, + 0, 0, 210, 210, 210, 0, 0, 0, 47, 0, + 92, 92, 92, 92, 0, 0, 0, 92, 92, 0, + 0, 0, 0, 92, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 92, 92, 0, 0, 0, 0, 210, + 210, 0, 0, 777, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, + 210, 210, 210, 0, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 0, 47, 0, 0, 0, 0, 0, + 94, 0, 0, 93, 93, 93, 93, 93, 92, 92, + 0, 92, 92, 92, 0, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 48, 93, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 93, 93, 93, 0, 0, 0, 93, + 93, 0, 0, 0, 0, 93, 0, 0, 93, 0, + 0, 0, 0, 0, 0, 93, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, + 94, 0, 47, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, + 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, + 0, 94, 0, 0, 0, 0, 50, 0, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 777, 777, 777, + 777, 777, 0, 94, 94, 50, 94, 94, 94, 0, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 777, + 777, 0, 0, 0, 0, 0, 0, 0, 47, 47, + 47, 47, 47, 0, 0, 0, 777, 777, 777, 777, + 49, 0, 0, 777, 777, 0, 0, 48, 0, 777, + 47, 47, 777, 0, 0, 0, 0, 51, 0, 777, + 777, 0, 0, 0, 0, 0, 0, 47, 47, 47, + 47, 50, 0, 0, 47, 47, 0, 0, 0, 0, + 47, 0, 0, 47, 0, 0, 0, 0, 780, 0, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 777, 777, 51, 777, 777, 777, + 0, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 47, 780, 47, 47, + 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 48, 48, 48, 48, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, + 0, 0, 0, 780, 0, 0, 0, 0, 0, 50, + 0, 0, 48, 48, 48, 48, 0, 0, 0, 48, + 48, 0, 0, 0, 0, 48, 0, 0, 48, 0, + 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 49, 49, 49, 49, 0, + 51, 316, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, + 316, 316, 0, 0, 0, 50, 50, 50, 50, 50, + 0, 780, 0, 49, 49, 49, 49, 0, 0, 0, + 49, 49, 0, 0, 0, 0, 49, 50, 50, 49, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, + 0, 0, 33, 0, 50, 50, 50, 50, 0, 0, + 0, 50, 50, 0, 0, 0, 0, 50, 0, 0, + 50, 0, 0, 0, 316, 0, 316, 50, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 49, 0, 49, 49, 49, 0, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, + 51, 0, 50, 50, 0, 50, 50, 50, 0, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, + 0, 0, 0, 0, 0, 0, 236, 780, 780, 780, + 780, 780, 561, 0, 0, 51, 51, 51, 51, 0, + 0, 0, 51, 51, 236, 0, 0, 33, 51, 780, + 780, 51, 0, 0, 0, 0, 0, 0, 51, 51, + 0, 0, 0, 0, 0, 0, 780, 780, 780, 780, + 0, 0, 0, 780, 780, 0, 0, 0, 0, 780, + 0, 316, 780, 0, 316, 0, 0, 0, 0, 780, + 780, 0, 0, 0, 316, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 236, 0, 0, 51, 51, 0, 51, 51, 51, 0, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 780, 780, 0, 780, 780, 780, + 0, 780, 780, 780, 780, 780, 780, 780, 780, 780, + 33, 0, 0, 0, 33, 33, 33, 33, 33, 0, + 33, 33, 33, 33, 0, 33, 33, 0, 235, 33, + 33, 33, 33, 0, 37, 0, 33, 33, 0, 40, + 0, 43, 0, 0, 0, 33, 235, 33, 46, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 33, 33, 49, 0, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 52, 0, 0, 0, 316, 0, 0, 0, 316, 316, + 316, 316, 316, 316, 0, 236, 0, 33, 236, 0, + 0, 0, 316, 316, 0, 0, 0, 0, 236, 561, + 235, 0, 235, 0, 0, 0, 0, 0, 0, 316, + 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, + 316, 0, 0, 0, 0, 33, 0, 0, 0, 33, + 33, 33, 33, 33, 316, 33, 33, 33, 33, 0, + 33, 33, 0, 0, 33, 33, 33, 33, 0, 37, + 0, 33, 33, 0, 40, 0, 43, 0, 0, 0, + 33, 0, 33, 46, 0, 0, 0, 0, 0, 316, + 316, 316, 0, 0, 0, 0, 0, 33, 33, 33, + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 316, 316, 316, 316, + 316, 316, 316, 0, 0, 0, 0, 0, 317, 0, + 0, 0, 33, 0, 0, 0, 236, 0, 0, 0, + 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 0, 0, 0, 235, 236, 0, + 235, 0, 236, 236, 236, 236, 236, 236, 0, 0, + 235, 0, 0, 0, 0, 0, 236, 236, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, + 0, 0, 0, 236, 236, 236, 236, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, + 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, + 236, 236, 236, 236, 236, 236, 236, 0, 235, 0, + 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, + 235, 0, 0, 0, 235, 235, 235, 235, 235, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 522, 0, 0, 0, 0, 235, 235, 235, 235, 0, + 0, 0, 0, 0, 0, 0, 235, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, + 235, 317, 317, 317, 317, 0, 317, 317, 317, 317, + 0, 317, 317, 0, 0, 317, 317, 317, 317, 0, + 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, + 0, 317, 0, 317, 0, 235, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, + 317, 321, 0, 734, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 522, 0, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 561, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 321, 0, 918, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 0, 0, 0, 0, 522, 0, + 0, 0, 522, 522, 522, 522, 522, 522, 0, 0, + 0, 67, 0, 0, 69, 0, 522, 522, 0, 0, + 0, 0, 0, 0, 2, 527, 0, 527, 0, 0, + 0, 0, 0, 522, 522, 522, 522, 0, 0, 0, + 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 0, 0, 0, 0, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 0, 0, + 0, 7, 0, 0, 0, 311, 312, 313, 314, 315, + 316, 0, 0, 522, 522, 0, 0, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 522, 522, 522, 522, 522, 522, 522, 317, 371, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 0, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 0, 527, 0, 7, 527, 0, 0, 311, 312, + 313, 314, 315, 316, 0, 527, 319, 320, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 371, 0, 371, 0, 0, 0, 0, 10, + 11, 12, 13, 27, 28, 29, 30, 31, 32, 33, + 317, 363, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, + 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 0, 363, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 356, 0, 0, 0, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, + 527, 0, 0, 0, 0, 527, 0, 0, 0, 527, + 527, 527, 527, 527, 527, 0, 0, 0, 0, 371, + 0, 0, 371, 527, 527, 0, 0, 0, 0, 0, + 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, + 527, 527, 527, 527, 0, 0, 0, 0, 356, 0, + 356, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 527, 527, 363, 0, 0, 363, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, + 527, 527, 527, 527, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 0, 0, + 0, 0, 371, 0, 0, 0, 371, 371, 371, 371, + 371, 371, 0, 0, 0, 356, 0, 0, 356, 0, + 371, 371, 0, 0, 0, 0, 0, 0, 356, 210, + 0, 210, 0, 0, 34, 0, 0, 371, 371, 371, + 371, 0, 0, 0, 0, 0, 0, 0, 371, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 371, 0, 0, 0, 0, 0, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 0, 0, 0, 0, 363, 0, 0, 0, 363, + 363, 363, 363, 363, 363, 0, 0, 371, 371, 0, + 1144, 0, 0, 363, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 363, 363, 363, 363, 371, 371, 371, 371, 371, 371, + 371, 363, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, + 0, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 0, 0, 210, 0, 356, 210, + 0, 0, 356, 356, 356, 356, 356, 356, 0, 210, + 363, 363, 0, 0, 0, 0, 356, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 521, 0, 521, 0, + 0, 0, 187, 356, 356, 356, 356, 363, 363, 363, + 363, 363, 363, 363, 356, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 356, 356, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 356, 356, 356, 356, 356, 356, 507, 0, 0, + 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 0, 0, 0, 0, 210, + 0, 0, 0, 210, 210, 210, 210, 210, 210, 0, + 0, 0, 0, 521, 0, 0, 521, 210, 210, 0, + 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, + 0, 0, 0, 0, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 508, 0, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 509, 0, + 0, 0, 0, 510, 0, 0, 8, 9, 0, 0, + 0, 0, 0, 0, 210, 210, 187, 0, 0, 0, + 0, 0, 0, 10, 11, 12, 13, 0, 511, 512, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 210, 513, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 0, 514, 515, 0, 521, 0, 0, 0, + 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, + 0, 0, 0, 0, 521, 521, 212, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 521, 521, 521, 521, 0, 0, 0, 0, 0, + 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, + 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 187, 0, 0, 187, 187, 0, 0, 0, 0, + 0, 521, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 187, 187, 187, 0, 187, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, + 521, 521, 521, 521, 521, 0, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 187, 187, 139, 140, 141, 142, 433, 156, 0, + 143, 144, 0, 282, 0, 0, 0, 281, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 187, 187, + 187, 187, 187, 187, 187, 280, 147, 148, 149, 0, + 434, 0, 435, 436, 437, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 465, 0, 152, 153, 154, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, + 0, 150, 0, 0, 0, 0, 0, 0, 0, 439, + 440, 441, 442, 0, 0, 443, 0, 0, 0, 444, + 445, 446, 0, 0, 212, 0, 0, 0, 212, 212, + 212, 212, 212, 0, 212, 212, 212, 212, 0, 212, + 212, 0, 0, 212, 212, 212, 212, 212, 0, 0, + 212, 212, 0, 0, 0, 0, 0, 0, 0, 212, + 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 212, 212, 212, 0, + 212, 0, 212, 212, 212, 212, 0, 156, 0, 0, + 0, 0, 282, 0, 0, 0, 692, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 212, 0, 0, 280, 0, 0, 0, 0, 212, + 212, 212, 212, 447, 0, 212, 0, 0, 0, 212, + 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 98, 143, 144, 0, 0, 156, 0, 0, 0, + 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 149, 0, 0, 212, 0, 0, 0, 680, 0, 0, + 0, 0, 680, 0, 0, 0, 680, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 680, 275, 276, 277, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, + 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 680, 156, 0, 0, 0, + 0, 282, 0, 0, 0, 281, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 152, + 153, 154, 126, 280, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 465, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 275, 276, 277, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 463, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 209, 275, 276, 277, 0, 0, - 677, 677, 0, 677, 0, 0, 0, 0, 677, 463, - 464, 677, 0, 0, 156, 677, 677, 677, 677, 677, - 0, 677, 677, 677, 677, 0, 677, 677, 0, 0, - 677, 677, 677, 677, 0, 0, 677, 677, 677, 0, - 0, 0, 0, 0, 0, 0, 677, 0, 677, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 69, 677, 677, 677, 0, 126, 0, 0, - 127, 0, 209, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 677, 0, - 677, 677, 677, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 677, 677, 0, 156, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 677, 677, 677, 150, 0, 275, - 276, 277, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 209, 156, 0, 128, 129, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, + 0, 0, 0, 0, 680, 680, 0, 680, 152, 153, + 154, 0, 680, 0, 0, 680, 0, 156, 0, 680, + 680, 680, 680, 680, 0, 680, 680, 680, 680, 0, + 680, 680, 0, 0, 680, 680, 680, 680, 0, 0, + 680, 680, 680, 0, 0, 0, 0, 0, 0, 0, + 680, 0, 680, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 68, 0, 69, 680, 680, 680, + 0, 126, 0, 0, 127, 209, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 152, 153, 154, 0, 0, 0, 0, + 143, 144, 680, 0, 680, 680, 680, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 156, 680, 680, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 903, 0, 0, 0, 209, 0, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 150, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 904, 156, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 209, 156, 0, 0, 0, 150, - 151, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 680, 680, + 680, 150, 0, 275, 276, 277, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 209, 156, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 903, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 150, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 904, 156, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 156, 0, + 0, 0, 150, 151, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 209, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 67, 68, 0, 69, 147, 148, 149, + 145, 0, 146, 0, 0, 0, 209, 0, 152, 153, + 154, 0, 0, 67, 68, 0, 69, 147, 148, 149, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 150, 0, 0, 0, 0, 314, 0, 145, - 0, 146, 0, 0, 0, 541, 0, 0, 0, 0, + 138, 0, 0, 139, 140, 141, 142, 159, 0, 98, + 143, 144, 150, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 538, 0, 67, 68, 314, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 661, - 0, 146, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 67, 68, 0, 69, 147, 148, 149, 0, - 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 150, 0, 0, 0, 0, 0, 0, 145, 800, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 801, 0, 147, 148, 149, 802, 803, - 0, 804, 805, 806, 807, 808, 809, 0, 810, 811, - 0, 812, 813, 814, 815, 816, 0, 800, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 701, 801, 0, 0, 0, 0, 802, 803, 0, 804, - 805, 806, 807, 808, 809, 0, 810, 811, 0, 812, - 813, 814, 815, 816, 0, 314, 0, 817, 0, 818, - 314, 314, 314, 314, 819, 314, 314, 314, 314, 0, - 314, 314, 0, 0, 314, 314, 314, 314, 0, 0, - 820, 314, 314, 0, 0, 0, 152, 153, 154, 0, - 314, 0, 314, 0, 0, 817, 0, 818, 0, 0, - 0, 0, 819, 0, 0, 0, 0, 314, 314, 314, - 0, 0, 0, 821, 0, 0, 0, 0, 820, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 822, 0, 823, 824, 825, 826, 827, - 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, - 838, 839, 0, 0, 0, 840, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 822, 0, 823, 824, 825, 826, 827, 828, 829, - 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, - 0, 0, 0, 840, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 152, 153, + 154, 538, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 661, 0, 146, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 147, + 148, 149, 0, 126, 0, 0, 127, 841, 0, 0, + 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 98, 143, 144, 150, 0, 0, 0, 317, 0, + 0, 145, 0, 146, 0, 0, 544, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 153, 154, 701, 159, 159, 317, 159, 0, 0, + 0, 0, 159, 0, 0, 159, 0, 0, 0, 159, + 159, 159, 159, 159, 0, 159, 159, 159, 159, 0, + 159, 159, 0, 0, 159, 159, 159, 159, 0, 0, + 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, + 159, 800, 159, 0, 0, 0, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 801, 0, 159, 159, 159, + 802, 803, 0, 804, 805, 806, 807, 808, 809, 0, + 810, 811, 0, 812, 813, 814, 815, 816, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 817, + 0, 818, 0, 0, 0, 0, 819, 0, 0, 0, + 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 820, 0, 0, 0, 801, 0, 159, 159, + 159, 802, 803, 0, 804, 805, 806, 807, 808, 809, + 0, 810, 811, 0, 812, 813, 814, 815, 816, 0, + 0, 0, 0, 0, 0, 821, 317, 0, 0, 0, + 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, + 0, 317, 317, 0, 0, 317, 317, 317, 317, 0, + 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, + 817, 317, 818, 317, 0, 0, 0, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, + 317, 0, 0, 820, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 0, 822, 821, 823, 824, 825, + 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 0, 0, 0, 840, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 822, 0, 823, 824, + 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 0, 0, 0, 840, }; static int yycheck[] = { 4, - 22, 23, 102, 103, 24, 24, 1, 166, 296, 24, - 13, 296, 1, 413, 19, 415, 93, 1, 296, 927, - 673, 24, 27, 28, 29, 30, 1, 782, 728, 1, - 949, 64, 180, 43, 1, 45, 192, 193, 194, 195, - 196, 38, 659, 59, 467, 38, 365, 44, 41, 264, - 46, 44, 91, 43, 1091, 483, 484, 485, 40, 59, - 24, 264, 123, 716, 42, 41, 166, 46, 1119, 46, - 125, 41, 46, 61, 91, 38, 41, 1081, 46, 42, - 123, 41, 20, 21, 46, 40, 1451, 41, 319, 189, - 105, 168, 47, 1464, 36, 37, 41, 60, 91, 44, - 125, 104, 470, 59, 40, 60, 349, 40, 113, 125, - 115, 116, 117, 128, 214, 40, 1481, 76, 60, 263, - 41, 260, 261, 41, 263, 61, 145, 65, 91, 148, - 42, 41, 40, 262, 72, 61, 151, 44, 41, 43, - 104, 91, 41, 263, 41, 41, 92, 40, 167, 380, - 155, 156, 155, 41, 38, 232, 42, 46, 42, 288, - 860, 861, 41, 166, 40, 198, 38, 41, 40, 125, - 42, 330, 61, 111, 112, 43, 60, 260, 261, 299, - 263, 186, 264, 91, 61, 46, 93, 42, 60, 93, - 123, 40, 207, 275, 40, 528, 482, 46, 123, 204, - 205, 901, 44, 351, 209, 91, 209, 91, 44, 260, - 261, 46, 263, 342, 1446, 91, 502, 1588, 156, 91, - 1452, 180, 58, 542, 91, 93, 231, 655, 260, 261, - 123, 263, 93, 238, 334, 935, 260, 42, 1242, 263, - 259, 187, 267, 260, 261, 91, 263, 330, 331, 44, - 1482, 93, 91, 681, 33, 316, 333, 273, 93, 470, - 202, 266, 267, 916, 123, 280, 271, 470, 311, 274, - 289, 123, 287, 278, 262, 518, 262, 40, 283, 284, - 285, 286, 220, 221, 294, 231, 264, 59, 262, 38, - 505, 506, 507, 42, 264, 265, 306, 307, 93, 264, - 333, 296, 297, 263, 359, 327, 328, 296, 297, 364, - 264, 60, 296, 297, 324, 260, 331, 273, 263, 274, - 266, 296, 297, 339, 296, 297, 365, 330, 331, 296, - 297, 470, 335, 271, 762, 264, 262, 262, 59, 299, - 993, 279, 91, 264, 320, 321, 264, 265, 260, 261, - 318, 263, 264, 125, 264, 265, 318, 352, 353, 354, - 355, 264, 288, 275, 374, 264, 325, 264, 264, 262, - 329, 335, 59, 311, 320, 313, 264, 352, 123, 317, - 352, 353, 354, 355, 296, 264, 332, 325, 326, 411, - 264, 329, 351, 91, 267, 337, 264, 360, 361, 362, - 41, 391, 1321, 40, 125, 260, 261, 43, 263, 45, - 1461, 462, 391, 351, 391, 431, 432, 123, 1453, 847, - 568, 260, 261, 40, 263, 421, 262, 123, 46, 268, - 462, 579, 40, 46, 380, 451, 59, 1192, 538, 454, - 863, 296, 1479, 448, 1495, 450, 123, 463, 1483, 465, - 466, 123, 468, 469, 91, 260, 261, 296, 263, 462, - 465, 420, 465, 315, 316, 1082, 404, 405, 123, 407, - 452, 409, 477, 123, 91, 93, 360, 361, 362, 40, - 93, 260, 261, 91, 263, 264, 424, 425, 360, 361, - 362, 296, 91, 44, 40, 451, 315, 260, 261, 504, - 263, 46, 125, 542, 40, 461, 40, 391, 464, 586, - 456, 260, 261, 40, 263, 91, 44, 480, 44, 535, - 536, 537, 538, 539, 540, 541, 47, 465, 525, 41, - 535, 536, 525, 543, 62, 535, 536, 537, 538, 539, - 540, 541, 93, 489, 490, 91, 40, 562, 1248, 1249, - 1469, 556, 629, 40, 631, 91, 704, 91, 504, 91, - 472, 59, 260, 261, 260, 263, 40, 263, 264, 515, - 268, 40, 42, 511, 512, 414, 415, 416, 40, 535, - 536, 537, 538, 539, 540, 541, 1454, 359, 1185, 40, - 61, 1499, 364, 40, 1191, 695, 534, 91, 296, 537, - 605, 701, 123, 40, 91, 564, 611, 640, 306, 568, - 556, 360, 361, 362, 91, 630, 1484, 472, 40, 561, - 579, 91, 91, 264, 570, 266, 564, 125, 91, 917, - 40, 787, 917, 789, 790, 791, 792, 793, 359, 917, - 91, 579, 661, 364, 721, 286, 287, 40, 40, 306, - 273, 593, 594, 47, 91, 670, 59, 599, 294, 601, - 43, 260, 261, 1316, 263, 391, 604, 472, 673, 91, - 306, 307, 359, 678, 391, 680, 691, 364, 61, 617, - 675, 91, 41, 42, 260, 261, 40, 263, 324, 694, - 628, 391, 268, 698, 699, 700, 718, 391, 91, 91, - 715, 40, 267, 264, 265, 266, 44, 1107, 1408, 1109, - 40, 716, 44, 651, 46, 730, 414, 415, 416, 1419, - 296, 41, 125, 299, 62, 286, 287, 46, 260, 261, - 306, 263, 91, 260, 261, 677, 263, 91, 374, 260, - 261, 60, 263, 316, 40, 704, 41, 693, 694, 687, - 688, 41, 91, 260, 261, 59, 263, 1410, 42, 774, - 765, 91, 767, 535, 536, 537, 538, 539, 540, 541, - 708, 848, 710, 778, 712, 273, 264, 265, 737, 717, - 857, 41, 294, 260, 261, 40, 263, 746, 40, 301, - 38, 303, 304, 305, 42, 91, 40, 260, 261, 737, - 263, 41, 1502, 43, 427, 40, 429, 430, 41, 747, - 748, 44, 60, 41, 535, 536, 537, 538, 539, 540, - 541, 125, 44, 761, 46, 448, 449, 450, 451, 848, - 342, 343, 344, 41, 780, 41, 91, 43, 414, 415, - 416, 339, 266, 91, 1544, 40, 784, 91, 535, 536, - 537, 538, 539, 540, 541, 59, 91, 41, 796, 43, - 798, 260, 286, 287, 263, 264, 41, 374, 375, 44, - 273, 61, 59, 41, 42, 1575, 388, 389, 390, 44, - 392, 46, 902, 395, 260, 261, 845, 263, 883, 936, - 1590, 938, 1545, 93, 909, 972, 40, 283, 284, 263, - 915, 906, 260, 261, 43, 263, 41, 853, 41, 42, - 848, 916, 535, 536, 537, 538, 539, 540, 541, 93, - 858, 125, 917, 91, 919, 920, 921, 932, 917, 888, - 919, 920, 318, 917, 1587, 919, 920, 1014, 125, 41, - 42, 93, 917, 885, 475, 917, 280, 919, 920, 921, - 917, 93, 328, 451, 330, 331, 38, 40, 91, 964, - 42, 337, 40, 968, 125, 463, 91, 465, 466, 273, - 468, 469, 58, 911, 40, 913, 40, 936, 60, 938, - 926, 40, 928, 40, 1143, 1144, 1145, 1146, 993, 91, - 1067, 279, 280, 40, 1153, 1154, 1155, 125, 936, 44, - 938, 289, 41, 301, 294, 303, 304, 305, 40, 91, - 40, 301, 262, 303, 304, 305, 374, 375, 91, 123, - 966, 262, 960, 38, 44, 963, 59, 42, 431, 432, - 41, 46, 47, 260, 261, 41, 263, 535, 536, 537, - 538, 539, 540, 541, 41, 60, 260, 261, 451, 263, - 264, 59, 342, 343, 344, 60, 264, 265, 266, 274, - 463, 41, 465, 43, 44, 468, 469, 320, 321, 273, - 295, 457, 458, 463, 460, 300, 91, 302, 286, 287, - 393, 394, 59, 1105, 309, 91, 273, 1109, 274, 1489, - 1490, 62, 125, 260, 261, 1117, 263, 275, 388, 389, - 390, 326, 392, 44, 1123, 395, 264, 265, 266, 296, - 393, 394, 360, 361, 362, 58, 341, 125, 322, 365, - 424, 425, 426, 427, 1062, 43, 44, 123, 286, 287, - 1133, 1136, 535, 536, 537, 538, 539, 540, 541, 1216, - 1143, 1144, 1145, 1146, 448, 449, 450, 451, 125, 40, - 1153, 1154, 1155, 123, 1092, 1093, 1094, 281, 282, 283, - 284, 1099, 1100, 1101, 1102, 1103, 1104, 123, 1106, 1107, - 1108, 123, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 264, - 1118, 266, 1120, 274, 1122, 41, 1124, 260, 261, 40, - 263, 43, 44, 1139, 1140, 268, 264, 260, 261, 38, - 263, 286, 287, 42, 1163, 409, 1306, 411, 412, 413, - 576, 577, 578, 281, 282, 283, 41, 42, 1177, 423, - 1179, 60, 409, 296, 428, 835, 836, 431, 432, 40, - 40, 535, 536, 537, 538, 539, 540, 541, 1260, 61, - 273, 317, 1180, 317, 448, 449, 450, 451, 1243, 453, - 454, 467, 91, 61, 260, 261, 1194, 263, 61, 40, - 470, 1338, 268, 296, 451, 273, 1204, 91, 470, 473, - 1208, 1209, 44, 41, 461, 1294, 41, 464, 360, 361, - 362, 1219, 280, 281, 282, 283, 284, 93, 296, 41, - 296, 41, 1297, 299, 41, 41, 273, 41, 58, 44, - 306, 41, 1240, 1241, 508, 509, 280, 281, 282, 283, - 284, 1316, 281, 282, 283, 284, 1254, 1255, 1256, 1257, - 1258, 1259, 44, 1261, 44, 125, 0, 260, 261, 61, - 263, 535, 536, 537, 538, 539, 540, 541, 263, 40, - 61, 414, 415, 416, 40, 360, 361, 362, 535, 536, - 537, 538, 539, 540, 541, 330, 331, 332, 295, 33, - 1355, 125, 41, 300, 38, 302, 40, 41, 42, 1315, - 44, 41, 309, 47, 40, 274, 409, 93, 310, 1325, - 312, 313, 314, 93, 274, 59, 60, 61, 62, 326, - 327, 366, 367, 368, 41, 1472, 1411, 41, 44, 1337, - 41, 409, 44, 58, 341, 1410, 1344, 44, 414, 415, - 416, 40, 62, 41, 38, 40, 59, 91, 451, 93, - 41, 41, 355, 356, 357, 40, 40, 40, 461, 41, - 41, 464, 41, 41, 91, 372, 260, 261, 262, 263, - 264, 41, 40, 451, 268, 497, 489, 380, 501, 123, - 40, 125, 41, 461, 277, 61, 464, 125, 123, 283, - 62, 41, 38, 1409, 281, 282, 283, 284, 1490, 451, - 391, 1548, 296, 41, 451, 330, 331, 332, 1497, 41, - 41, 1581, 125, 93, 461, 317, 93, 464, 317, 41, - 1428, 1429, 1430, 40, 58, 58, 320, 321, 93, 123, - 93, 93, 535, 536, 537, 538, 539, 540, 541, 93, - 40, 366, 367, 368, 504, 44, 91, 91, 40, 1465, - 40, 360, 361, 362, 123, 41, 93, 535, 536, 537, - 538, 539, 540, 541, 41, 40, 40, 421, 41, 41, - 1545, 474, 1480, 476, 477, 478, 479, 1485, 1486, 1487, - 93, 1489, 93, 1491, 1492, 1493, 510, 44, 535, 536, - 537, 538, 539, 540, 541, 274, 41, 58, 41, 1584, - 41, 60, 44, 61, 93, 1513, 1514, 1515, 41, 40, - 40, 40, 1587, 40, 40, 40, 260, 261, 262, 263, - 414, 415, 416, 40, 268, 40, 62, 271, 40, 273, - 274, 275, 276, 277, 278, 279, 40, 281, 282, 283, - 284, 40, 286, 287, 288, 59, 290, 291, 292, 293, - 40, 274, 296, 297, 298, 299, 125, 41, 93, 41, - 273, 93, 306, 41, 308, 93, 41, 311, 1576, 1585, - 93, 315, 316, 41, 318, 40, 263, 93, 322, 323, - 324, 325, 41, 296, 278, 93, 41, 281, 282, 283, - 284, 41, 286, 287, 288, 339, 294, 93, 41, 41, - 93, 41, 93, 301, 41, 303, 304, 305, 93, 123, - 41, 125, 93, 41, 358, 359, 360, 361, 362, 93, - 364, 365, 41, 93, 41, 41, 93, 41, 41, 38, - 374, 375, 278, 93, 44, 281, 282, 283, 284, 41, - 286, 287, 288, 41, 342, 343, 344, 391, 40, 93, - 40, 40, 396, 397, 398, 399, 400, 401, 402, 403, + 24, 673, 24, 92, 296, 22, 23, 1, 296, 24, + 102, 103, 1, 296, 19, 166, 13, 93, 927, 1, + 728, 949, 27, 28, 29, 30, 413, 24, 415, 1, + 180, 64, 1, 42, 659, 91, 36, 37, 782, 59, + 1, 43, 38, 45, 716, 41, 467, 46, 44, 40, + 43, 38, 192, 193, 194, 195, 196, 44, 1093, 125, + 60, 46, 46, 40, 76, 41, 1121, 42, 24, 61, + 47, 44, 365, 41, 166, 123, 46, 264, 41, 46, + 125, 61, 1083, 60, 42, 58, 319, 264, 265, 41, + 105, 123, 168, 1471, 44, 91, 1195, 189, 187, 59, + 260, 261, 46, 263, 40, 125, 41, 104, 113, 41, + 115, 116, 117, 128, 42, 40, 264, 41, 262, 20, + 21, 470, 214, 145, 40, 349, 148, 275, 42, 41, + 1458, 41, 260, 261, 41, 263, 151, 41, 43, 41, + 40, 59, 231, 93, 288, 167, 41, 380, 104, 46, + 155, 156, 860, 861, 40, 40, 232, 41, 155, 263, + 1488, 46, 40, 91, 65, 198, 91, 40, 180, 166, + 41, 72, 38, 41, 43, 91, 42, 266, 264, 330, + 59, 186, 40, 40, 44, 46, 46, 123, 93, 40, + 40, 91, 207, 901, 60, 299, 93, 40, 342, 204, + 205, 351, 202, 59, 209, 91, 43, 125, 45, 40, + 111, 112, 209, 91, 374, 375, 40, 1595, 40, 483, + 484, 485, 267, 40, 93, 91, 231, 935, 44, 1328, + 482, 320, 93, 238, 91, 260, 261, 259, 263, 61, + 91, 91, 334, 332, 916, 1246, 125, 33, 91, 542, + 502, 260, 261, 273, 263, 156, 123, 333, 320, 321, + 59, 266, 267, 311, 91, 280, 271, 289, 41, 274, + 262, 61, 287, 278, 91, 59, 296, 93, 283, 284, + 285, 286, 262, 470, 316, 260, 261, 296, 263, 262, + 40, 380, 294, 359, 518, 263, 288, 274, 364, 123, + 333, 264, 296, 297, 306, 307, 264, 296, 297, 365, + 327, 328, 264, 325, 296, 297, 331, 329, 262, 220, + 221, 296, 324, 995, 296, 297, 125, 296, 297, 264, + 265, 299, 264, 330, 331, 296, 297, 337, 335, 351, + 264, 125, 470, 59, 320, 321, 260, 261, 318, 263, + 264, 318, 264, 265, 264, 273, 266, 264, 352, 264, + 264, 275, 264, 352, 353, 354, 355, 456, 41, 264, + 271, 44, 374, 123, 59, 263, 286, 287, 279, 335, + 264, 265, 296, 352, 353, 354, 355, 260, 261, 409, + 263, 655, 91, 264, 411, 123, 264, 1325, 391, 359, + 489, 490, 260, 261, 364, 263, 391, 391, 420, 125, + 311, 40, 313, 1468, 528, 504, 317, 681, 568, 505, + 506, 507, 421, 470, 325, 326, 515, 123, 329, 579, + 44, 451, 40, 264, 265, 266, 1460, 462, 262, 454, + 125, 461, 863, 448, 464, 450, 538, 1502, 315, 316, + 351, 1486, 1196, 44, 40, 286, 287, 294, 47, 1084, + 465, 452, 91, 472, 38, 462, 1490, 556, 465, 306, + 307, 40, 477, 46, 260, 261, 40, 263, 264, 93, + 359, 570, 41, 91, 43, 364, 542, 324, 61, 273, + 264, 264, 265, 266, 360, 361, 362, 472, 762, 504, + 41, 42, 93, 404, 405, 91, 407, 59, 409, 1461, + 586, 262, 262, 286, 287, 535, 536, 537, 538, 539, + 540, 541, 91, 424, 425, 260, 261, 91, 263, 525, + 535, 536, 260, 451, 123, 263, 264, 374, 525, 1491, + 40, 543, 267, 461, 1252, 1253, 464, 562, 1476, 123, + 91, 556, 564, 629, 704, 631, 568, 273, 472, 42, + 359, 561, 59, 123, 465, 364, 46, 579, 260, 261, + 44, 263, 46, 125, 43, 535, 536, 537, 538, 539, + 540, 541, 315, 847, 40, 46, 40, 260, 273, 91, + 263, 91, 61, 593, 594, 330, 331, 1506, 44, 599, + 605, 601, 123, 695, 693, 694, 611, 640, 91, 701, + 511, 512, 44, 93, 480, 630, 62, 535, 536, 537, + 538, 539, 540, 541, 91, 917, 393, 394, 125, 917, + 62, 123, 93, 534, 917, 91, 537, 91, 123, 661, + 424, 425, 426, 427, 41, 721, 43, 787, 1320, 789, + 790, 791, 792, 793, 46, 670, 535, 536, 537, 538, + 539, 540, 541, 564, 448, 449, 450, 451, 673, 40, + 123, 260, 261, 678, 263, 680, 691, 677, 579, 535, + 536, 537, 538, 539, 540, 541, 123, 41, 46, 694, + 44, 780, 704, 698, 699, 700, 283, 284, 44, 59, + 715, 718, 60, 604, 278, 1413, 675, 281, 282, 283, + 284, 716, 286, 287, 288, 730, 617, 40, 1426, 40, + 91, 273, 1109, 40, 1111, 737, 40, 628, 393, 394, + 38, 318, 41, 42, 746, 451, 535, 536, 537, 538, + 539, 540, 541, 1415, 296, 461, 431, 432, 464, 91, + 651, 535, 536, 537, 538, 539, 540, 541, 260, 261, + 765, 263, 767, 40, 853, 125, 451, 41, 91, 264, + 462, 266, 848, 778, 91, 38, 273, 91, 463, 42, + 465, 857, 91, 468, 469, 266, 687, 688, 40, 40, + 40, 286, 287, 260, 261, 260, 263, 60, 263, 41, + 44, 1509, 46, 279, 280, 286, 287, 708, 38, 710, + 40, 712, 42, 289, 91, 123, 717, 41, 42, 535, + 536, 537, 538, 539, 540, 541, 848, 61, 91, 41, + 60, 91, 44, 845, 41, 42, 737, 926, 40, 928, + 91, 91, 339, 1551, 91, 391, 747, 748, 306, 91, + 535, 536, 537, 538, 539, 540, 541, 409, 391, 260, + 761, 91, 263, 264, 38, 47, 1453, 91, 42, 391, + 457, 458, 1459, 460, 1582, 391, 888, 966, 902, 968, + 1552, 43, 44, 784, 91, 885, 60, 264, 41, 1597, + 41, 91, 43, 44, 909, 796, 41, 798, 974, 451, + 915, 906, 1489, 91, 281, 282, 283, 260, 261, 461, + 263, 916, 464, 273, 883, 43, 44, 91, 260, 261, + 267, 263, 1594, 917, 936, 41, 938, 932, 917, 41, + 919, 920, 921, 41, 42, 917, 296, 919, 920, 38, + 1016, 260, 261, 42, 263, 917, 316, 848, 917, 42, + 919, 920, 921, 41, 451, 43, 917, 858, 919, 920, + 301, 60, 303, 304, 305, 970, 463, 40, 465, 466, + 278, 468, 469, 281, 282, 283, 284, 40, 286, 287, + 288, 61, 59, 535, 536, 537, 538, 539, 540, 541, + 995, 93, 91, 1069, 1145, 1146, 1147, 1148, 40, 43, + 260, 261, 263, 263, 1155, 1156, 1157, 936, 268, 938, + 911, 41, 913, 260, 261, 475, 263, 93, 260, 261, + 294, 263, 281, 282, 283, 284, 268, 301, 93, 303, + 304, 305, 835, 836, 59, 936, 296, 938, 535, 536, + 537, 538, 539, 540, 541, 280, 306, 93, 125, 409, + 40, 40, 1141, 1142, 296, 374, 375, 299, 125, 960, + 260, 261, 963, 263, 306, 91, 58, 91, 342, 343, + 344, 40, 260, 261, 91, 263, 40, 40, 40, 59, + 268, 280, 281, 282, 283, 284, 260, 261, 40, 263, + 1107, 451, 260, 261, 1111, 263, 264, 360, 361, 362, + 125, 461, 1119, 1125, 464, 125, 295, 44, 296, 1496, + 1497, 300, 41, 302, 388, 389, 390, 123, 392, 40, + 309, 395, 40, 262, 264, 265, 266, 262, 391, 44, + 360, 361, 362, 1138, 41, 41, 59, 326, 1135, 280, + 281, 282, 283, 284, 1220, 125, 286, 287, 1145, 1146, + 1147, 1148, 341, 1165, 414, 415, 416, 60, 1155, 1156, + 1157, 274, 310, 1064, 312, 313, 314, 1179, 463, 1181, + 274, 62, 414, 415, 416, 535, 536, 537, 538, 539, + 540, 541, 260, 261, 1189, 263, 360, 361, 362, 281, + 282, 283, 284, 1094, 1095, 1096, 273, 576, 577, 578, + 1101, 1102, 1103, 1104, 1105, 1106, 275, 1108, 1109, 1110, + 44, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1310, 1120, + 58, 1122, 365, 1124, 123, 1126, 414, 415, 416, 123, + 1319, 123, 40, 123, 260, 261, 262, 263, 264, 274, + 40, 1330, 268, 260, 261, 40, 263, 1264, 273, 41, + 38, 268, 260, 261, 42, 263, 40, 283, 46, 47, + 317, 360, 361, 362, 317, 61, 467, 1343, 61, 40, + 296, 61, 60, 470, 470, 44, 1298, 41, 1247, 296, + 93, 1182, 299, 59, 41, 41, 1187, 41, 41, 306, + 330, 331, 332, 273, 320, 321, 1301, 1198, 41, 295, + 91, 41, 44, 91, 300, 41, 302, 1208, 40, 58, + 44, 1212, 1213, 309, 44, 1320, 296, 38, 125, 263, + 61, 42, 1223, 61, 40, 1414, 366, 367, 368, 40, + 326, 327, 409, 410, 411, 412, 413, 41, 125, 60, + 41, 40, 274, 1244, 1245, 341, 93, 93, 274, 125, + 273, 41, 44, 41, 431, 432, 41, 1258, 1259, 1260, + 1261, 1262, 1263, 44, 1265, 281, 282, 283, 284, 44, + 91, 448, 449, 450, 451, 0, 372, 40, 455, 456, + 58, 40, 40, 1472, 461, 41, 41, 464, 414, 415, + 416, 1360, 40, 40, 471, 472, 41, 414, 415, 416, + 41, 1416, 427, 1479, 429, 430, 41, 294, 33, 62, + 1415, 41, 91, 38, 41, 40, 41, 42, 40, 44, + 501, 489, 47, 448, 449, 450, 451, 497, 40, 409, + 277, 41, 61, 41, 59, 60, 61, 62, 125, 123, + 451, 1342, 62, 391, 93, 41, 41, 93, 1349, 526, + 527, 41, 529, 530, 531, 317, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 317, 91, 38, 93, 260, + 261, 451, 263, 41, 40, 260, 261, 268, 263, 1555, + 1497, 461, 1504, 40, 464, 58, 409, 410, 411, 412, + 413, 58, 93, 330, 331, 332, 1588, 273, 123, 93, + 125, 93, 93, 1592, 40, 296, 504, 44, 431, 432, + 535, 536, 537, 538, 539, 540, 541, 91, 40, 91, + 296, 40, 40, 123, 93, 448, 449, 450, 451, 366, + 367, 368, 455, 456, 1435, 1436, 1437, 269, 461, 41, + 272, 464, 41, 328, 40, 330, 331, 1552, 471, 472, + 41, 421, 337, 41, 93, 535, 536, 537, 538, 539, + 540, 541, 93, 295, 296, 510, 44, 274, 300, 41, + 302, 58, 360, 361, 362, 41, 1591, 309, 41, 44, + 60, 93, 61, 40, 40, 40, 1487, 40, 40, 1594, + 40, 1492, 1493, 1494, 326, 1496, 40, 1498, 1499, 1500, + 40, 40, 40, 526, 527, 40, 529, 530, 531, 341, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 1520, + 1521, 1522, 40, 414, 415, 416, 41, 125, 62, 41, + 41, 93, 93, 409, 41, 260, 261, 262, 263, 360, + 361, 362, 93, 268, 41, 93, 271, 41, 273, 274, + 275, 276, 277, 278, 279, 41, 281, 282, 283, 284, + 93, 286, 287, 288, 59, 290, 291, 292, 293, 93, + 41, 296, 297, 298, 299, 451, 41, 93, 41, 41, + 93, 306, 1583, 308, 41, 461, 311, 93, 464, 41, + 315, 316, 41, 318, 93, 41, 41, 322, 323, 324, + 325, 93, 93, 41, 93, 41, 41, 278, 93, 41, + 281, 282, 283, 284, 339, 286, 287, 288, 263, 41, + 93, 44, 260, 261, 274, 263, 41, 41, 123, 41, + 125, 40, 93, 358, 359, 360, 361, 362, 93, 364, + 365, 40, 38, 93, 41, 40, 40, 40, 58, 374, + 375, 58, 58, 41, 41, 41, 40, 40, 263, 535, + 536, 537, 538, 539, 540, 541, 391, 41, 93, 41, + 41, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 93, 41, + 40, 93, 0, 93, 40, 40, 40, 355, 356, 357, + 40, 40, 40, 448, 449, 450, 451, 123, 453, 454, + 455, 456, 40, 40, 459, 40, 461, 40, 463, 464, + 465, 466, 380, 468, 469, 33, 471, 472, 473, 40, + 38, 41, 40, 41, 42, 480, 44, 40, 93, 47, + 60, 58, 41, 40, 93, 260, 40, 40, 263, 40, + 91, 59, 60, 61, 62, 41, 40, 38, 273, 294, + 40, 42, 41, 508, 509, 510, 301, 41, 303, 304, + 305, 269, 41, 41, 272, 274, 263, 41, 41, 60, + 40, 526, 527, 91, 529, 530, 531, 40, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 295, 296, 41, + 41, 510, 300, 274, 302, 40, 358, 342, 343, 344, + 91, 309, 41, 41, 123, 123, 474, 125, 476, 477, + 478, 479, 41, 125, 44, 294, 62, 123, 326, 40, + 125, 123, 301, 123, 303, 304, 305, 125, 123, 62, + 123, 41, 41, 341, 260, 123, 41, 263, 125, 41, + 123, 41, 41, 388, 389, 390, 41, 392, 125, 62, + 395, 123, 278, 41, 123, 281, 282, 283, 284, 123, + 286, 287, 288, 342, 343, 344, 40, 40, 123, 41, + 263, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 46, 93, 93, 275, 413, 263, + 275, 42, 417, 418, 419, 420, 421, 422, 61, 275, + 275, 91, 275, 275, 275, 263, 431, 432, 275, 388, + 389, 390, 275, 392, 275, 965, 395, 263, 263, 179, + 777, 688, 275, 448, 449, 450, 451, 41, 275, 402, + 942, 275, 275, 275, 459, 844, 1431, 1205, 940, 1069, + 1129, 670, 260, 261, 863, 263, 853, 1206, 473, 1193, + 268, 335, 462, 271, 24, 273, 274, 275, 276, 277, + 278, 279, 850, 281, 282, 283, 284, 9, 286, 287, + 1133, 114, 290, 291, 292, 293, 24, 574, 296, 297, + 298, 299, 513, 508, 509, 703, 0, 640, 306, 64, + 308, 707, 289, 311, -1, -1, 474, -1, 316, -1, + -1, 353, -1, -1, 322, 323, 324, 325, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, 33, + 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, + 44, -1, -1, 47, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 360, + 361, 362, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 480, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, + 508, 509, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, 476, 477, 478, 479, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, 365, -1, 59, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, 125, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 93, - 388, 389, 390, 0, 392, 40, 409, 395, 93, 40, - 58, 41, 58, 58, 448, 449, 450, 451, 41, 453, - 454, 455, 456, 41, 123, 459, 41, 461, 40, 463, - 464, 465, 466, 40, 468, 469, 33, 471, 472, 473, - 41, 38, 93, 40, 41, 42, 480, 44, 451, 41, - 47, 93, 41, 93, 41, 93, 260, 40, 461, 263, - 40, 464, 59, 60, 61, 62, 40, 40, 40, 273, - 40, 294, 38, 40, 508, 509, 510, 40, 301, 40, - 303, 304, 305, 40, 40, 40, 263, 41, 40, 93, - 58, 60, 526, 527, 91, 529, 530, 531, 41, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 93, 40, - 40, 40, 40, 91, 269, 41, 40, 272, 41, 342, - 343, 344, 41, 41, 41, 40, 123, 274, 125, 41, - 41, 40, 535, 536, 537, 538, 539, 540, 541, 263, - 295, 296, 40, 274, 358, 300, 510, 302, 41, 41, - 40, 263, 41, 41, 309, 41, 62, 123, 59, 123, - 125, 260, 44, 123, 263, 388, 389, 390, 40, 392, - 123, 326, 395, 123, 125, 123, 125, 123, 62, 278, - 41, 123, 281, 282, 283, 284, 341, 286, 287, 288, - 41, 125, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 41, 41, 123, 41, 413, - 41, 125, 41, 417, 418, 419, 420, 421, 422, 123, - 123, 62, 41, 123, 125, 40, 40, 431, 432, 41, - 93, 93, 123, 46, 275, 263, 275, 42, 61, 275, - 179, 275, 275, 275, 448, 449, 450, 451, 41, 275, - 263, 91, 263, 275, 275, 459, 275, 263, 275, 275, - 402, 275, 777, 260, 261, 275, 263, 275, 942, 473, - 688, 268, 844, 1424, 271, 1201, 273, 274, 275, 276, - 277, 278, 279, 940, 281, 282, 283, 284, 1067, 286, - 287, 670, 1127, 290, 291, 292, 293, 853, 863, 296, - 297, 298, 299, 1189, 508, 509, 1202, 0, 335, 306, - 462, 308, 278, 24, 311, 281, 282, 283, 284, 316, - 286, 287, 288, 850, 9, 322, 323, 324, 325, 1131, - 114, 535, 536, 537, 538, 539, 540, 541, 24, 64, - 33, 640, 703, 513, 707, 38, 574, 40, 41, 42, - 353, 44, 289, -1, 47, 474, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, 273, -1, -1, -1, -1, 374, 375, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 391, 296, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 480, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, 409, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - 451, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 461, -1, -1, 464, -1, -1, -1, 260, 261, -1, - 263, -1, 365, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, 123, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, 33, -1, -1, -1, -1, 38, - -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, 294, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, 309, -1, -1, -1, -1, 480, -1, -1, - 277, 278, 279, -1, 281, 282, 283, 284, 325, 286, - 287, 288, -1, 290, 291, 292, 293, 334, -1, -1, - 297, 298, -1, -1, -1, 508, 509, -1, -1, -1, - -1, 348, 349, 350, 351, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, 380, 381, 382, 383, 384, 385, 386, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, 365, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, 271, -1, -1, -1, 480, 273, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - 299, 269, -1, -1, 272, 0, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, 295, 296, -1, - -1, -1, 300, -1, 302, -1, -1, -1, 33, 260, - 261, 309, 263, 38, -1, 40, 41, 42, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 326, 358, - -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, - -1, -1, -1, 341, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, - 125, -1, 431, 432, 355, 356, 357, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, 380, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, 271, -1, -1, -1, - -1, 480, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, 346, -1, 474, -1, 476, 477, 478, 479, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - 365, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, - 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 262, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, 277, 278, 279, 480, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, -1, -1, -1, 299, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, 339, -1, -1, -1, 346, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, 365, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, 123, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, 451, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, 463, -1, 465, + 466, -1, 468, 469, 374, 375, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + 294, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, 309, -1, -1, -1, -1, + 480, -1, -1, 277, 278, 279, -1, 281, 282, 283, + 284, 325, 286, 287, 288, -1, 290, 291, 292, 293, + 334, -1, -1, 297, 298, -1, -1, -1, 508, 509, + -1, -1, -1, -1, 348, 349, 350, 351, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, 380, 381, 382, 383, + 384, 385, 386, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, 365, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, 262, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, 277, 278, 279, 480, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + -1, -1, -1, 299, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, - -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, - -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, - 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, 59, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, 40, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, -1, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, 41, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, 260, 261, 268, 263, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, 294, - 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, 323, -1, - -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, -1, -1, -1, -1, 358, 353, 59, - -1, 356, -1, -1, -1, -1, -1, -1, 363, -1, - 33, -1, -1, 374, 375, -1, -1, 372, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 123, -1, 125, -1, 428, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, 0, + -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 33, -1, -1, -1, 323, -1, -1, -1, - 327, -1, -1, 330, 331, -1, -1, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 260, -1, -1, 263, -1, -1, 353, -1, -1, 356, - -1, -1, -1, 273, -1, -1, 363, 277, 278, 279, - -1, 281, 282, 283, 284, 372, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, - 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, 301, -1, 303, 304, 305, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 342, 343, 344, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 123, -1, 125, -1, 428, -1, -1, 431, + 432, 388, 389, 390, -1, 392, -1, -1, 395, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, - 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 0, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, 123, -1, 125, -1, -1, -1, 271, 59, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, 0, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, 448, 449, - 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 33, -1, -1, -1, 323, -1, -1, -1, 327, + -1, -1, 330, 331, -1, -1, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 260, + -1, -1, 263, -1, -1, 353, -1, -1, 356, -1, + -1, -1, 273, -1, -1, 363, 277, 278, 279, -1, + 281, 282, 283, 284, 372, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 0, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, 271, + 471, 472, 473, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, - -1, -1, -1, 273, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 323, 324, 325, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, 0, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, 271, + 471, 472, 473, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, 322, -1, -1, 396, 397, 398, 399, 400, + -1, 323, 324, 325, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, 0, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, 0, -1, -1, -1, -1, -1, -1, + 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, 409, - -1, 411, 412, 413, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 423, -1, -1, -1, -1, 428, -1, - -1, 431, 432, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, 260, -1, -1, 263, 448, 449, - 450, 451, -1, 453, 454, 526, 527, 273, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, 473, -1, -1, -1, -1, -1, -1, - 296, -1, -1, -1, -1, -1, 123, -1, 125, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, 323, -1, 59, -1, 327, + -1, -1, 330, 331, -1, -1, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 260, + -1, -1, 263, -1, -1, 353, -1, -1, 356, -1, + -1, -1, 273, -1, -1, 363, 277, 278, 279, -1, + 281, 282, 283, 284, 372, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, 123, -1, 125, -1, -1, -1, 271, 59, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, 0, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, 448, 449, 450, + 451, 273, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, + 471, 472, 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, + -1, -1, 273, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, 322, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 409, -1, + 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, 260, -1, -1, 263, 448, 449, 450, + 451, -1, 453, 454, 526, 527, 273, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, 473, -1, -1, -1, -1, -1, -1, 296, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, -1, 0, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, 448, 449, 450, 451, 273, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - 466, -1, 468, 469, -1, 471, 472, 473, -1, 296, + -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, 33, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 427, 428, 429, 430, 431, 432, -1, 0, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, + -1, 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, 526, - 527, 273, 529, 530, 531, -1, 533, 534, 535, 536, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, 33, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, 271, 125, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, 448, 449, 450, 451, - -1, 453, 454, 455, 456, 273, 274, 459, -1, 461, - -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, - 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 311, 61, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, 276, - 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, - 287, -1, 289, 290, 291, 292, 293, -1, 396, 397, + 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, 40, 41, -1, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, 274, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, 526, 527, + 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 271, 125, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 484, 485, -1, - 487, 488, 489, -1, 491, 492, -1, -1, 495, 496, - -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - 273, 274, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, - 260, 59, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 273, 274, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 311, 61, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, - -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, 276, 277, + -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, + -1, 289, 290, 291, 292, 293, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, 428, + -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, 274, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 484, 485, -1, 487, + 488, 489, -1, 491, 492, -1, -1, 495, 496, -1, + 498, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, - 294, 295, -1, -1, -1, -1, 300, -1, 302, -1, - -1, -1, -1, -1, 322, 309, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 326, 327, -1, 329, 330, 331, 332, 333, - -1, -1, -1, -1, 338, -1, -1, 341, -1, 0, - -1, -1, -1, 347, -1, -1, -1, -1, 352, -1, - 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 366, 367, 368, 369, 370, 371, 372, 373, - 0, -1, -1, -1, -1, 379, -1, -1, 396, 397, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 260, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, 59, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, + 274, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 273, -1, 459, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, 260, + 59, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, 322, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 59, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, - 451, 260, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 431, 432, 464, 273, -1, -1, -1, -1, -1, - 471, 472, 473, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, 463, 464, -1, -1, -1, 123, -1, - 125, 471, 472, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 260, -1, 464, 263, -1, -1, -1, -1, -1, + 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 508, 509, 294, + 295, -1, -1, -1, -1, 300, -1, 302, -1, -1, + -1, -1, -1, 322, 309, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 541, 326, 327, -1, 329, 330, 331, 332, 333, -1, + -1, -1, -1, 338, -1, -1, 341, -1, 0, -1, + -1, -1, 347, -1, -1, -1, -1, 352, -1, 354, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 366, 367, 368, 369, 370, 371, 372, 373, 0, + -1, -1, -1, -1, 379, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, 273, -1, + 429, 430, 431, 432, 260, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 59, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 260, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 273, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - 260, -1, 464, 263, -1, -1, -1, -1, -1, 471, - 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, + 432, -1, -1, 59, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, + 260, 453, 454, 455, 456, -1, -1, 459, -1, 461, + 431, 432, 464, 273, -1, -1, -1, -1, -1, 471, + 472, 473, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, + 461, -1, 463, 464, -1, -1, -1, 123, -1, 125, + 471, 472, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, 59, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 273, -1, 459, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 260, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, - -1, 431, 432, 260, -1, -1, 263, 44, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, - 450, 451, 59, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, 260, + -1, 464, 263, -1, -1, -1, -1, -1, 471, 472, + 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, 0, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 322, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - 59, -1, 61, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 358, 359, -1, - 260, 428, -1, 263, 431, 432, 125, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, - -1, -1, 0, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - 451, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 273, -1, -1, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 125, 428, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 125, 459, - -1, 461, -1, 322, 464, -1, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, 260, -1, -1, 263, 44, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, + 451, 59, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + 0, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 322, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, 59, + -1, 61, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 358, 359, -1, 260, + 428, -1, 263, 431, 432, 125, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, 0, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 451, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 273, -1, -1, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 125, 428, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, 125, 459, -1, + 461, -1, 322, 464, -1, -1, -1, -1, -1, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 423, -1, -1, -1, -1, 428, 125, + -1, 431, 432, -1, 273, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, 273, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, + 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, -1, 273, -1, 0, -1, -1, -1, -1, 423, -1, -1, -1, -1, 428, - 125, -1, 431, 432, -1, 273, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - -1, -1, 461, -1, -1, 464, 273, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 461, 431, 432, 464, -1, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, 59, -1, + 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, -1, -1, -1, -1, 508, + 509, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, 273, -1, - 0, -1, -1, -1, -1, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, 59, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, -1, -1, 461, 431, 432, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, 59, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, - -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, - 508, 509, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + 539, 540, 541, -1, 125, -1, -1, -1, -1, -1, + 273, -1, -1, 409, 410, 411, 412, 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 125, -1, -1, -1, -1, - -1, 273, -1, -1, 409, 410, 411, 412, 413, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, + 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 409, 410, 411, - 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - -1, -1, 464, -1, -1, -1, -1, 0, -1, 471, - 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 409, 410, 411, 412, + 413, -1, 273, -1, -1, -1, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, 0, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, 526, 527, 59, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, + 125, -1, -1, 455, 456, -1, -1, 273, -1, 461, + 431, 432, 464, -1, -1, -1, -1, 0, -1, 471, + 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, 125, -1, -1, 455, 456, -1, -1, -1, -1, + 461, -1, -1, 464, -1, -1, -1, -1, 0, -1, + 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, 526, 527, 59, 529, 530, 531, + -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 431, 432, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, - 451, 125, -1, -1, 455, 456, -1, -1, 273, -1, - 461, 431, 432, 464, -1, -1, -1, -1, 0, -1, - 471, 472, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, 125, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, - -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, 59, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 125, 409, 410, 411, 412, 413, 273, + -1, -1, 125, 409, 410, 411, 412, 413, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, -1, 273, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - 273, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, + 273, 40, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + 59, 60, -1, -1, -1, 409, 410, 411, 412, 413, + -1, 273, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, 431, 432, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, 33, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, -1, 123, -1, 125, 471, 472, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, - -1, 273, 40, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, - -1, 59, 60, -1, -1, -1, 409, 410, 411, 412, - 413, -1, 273, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, -1, -1, -1, -1, 461, 431, 432, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, - -1, -1, -1, 33, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, 123, -1, 125, 471, 472, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, + 413, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 431, 432, + -1, -1, -1, -1, -1, -1, 41, 409, 410, 411, + 412, 413, 47, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, 59, -1, -1, 33, 461, 431, + 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, 260, 464, -1, 263, -1, -1, -1, -1, 471, + 472, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, - 432, -1, -1, -1, -1, -1, -1, 41, 409, 410, - 411, 412, 413, 47, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, 59, -1, -1, 33, 461, - 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, - 461, -1, 260, 464, -1, 263, -1, -1, -1, -1, - 471, 472, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, 526, 527, -1, 529, 530, 531, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, 41, 290, + 291, 292, 293, -1, 295, -1, 297, 298, -1, 300, + -1, 302, -1, -1, -1, 306, 59, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, 41, - 290, 291, 292, 293, -1, 295, -1, 297, 298, -1, - 300, -1, 302, -1, -1, -1, 306, 59, 308, 309, + -1, -1, 323, 324, 325, 326, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 341, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, 260, -1, 358, 263, -1, + -1, -1, 431, 432, -1, -1, -1, -1, 273, 274, + 123, -1, 125, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + 459, -1, -1, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, 473, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, + -1, 297, 298, -1, 300, -1, 302, -1, -1, -1, + 306, -1, 308, 309, -1, -1, -1, -1, -1, 508, + 509, 510, -1, -1, -1, -1, -1, 323, 324, 325, + 326, -1, -1, -1, -1, 41, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 341, 535, 536, 537, 538, + 539, 540, 541, 59, -1, -1, -1, -1, 33, -1, + -1, -1, 358, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, 260, 413, -1, + 263, -1, 417, 418, 419, 420, 421, 422, -1, -1, + 273, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, 91, 123, -1, 125, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, 326, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 341, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, -1, 260, -1, 358, 263, - -1, -1, -1, 431, 432, -1, -1, -1, -1, 273, - 274, 123, -1, 125, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, - -1, 459, -1, -1, -1, -1, 271, -1, -1, -1, - 275, 276, 277, 278, 279, 473, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - 295, -1, 297, 298, -1, 300, -1, 302, -1, -1, - -1, 306, -1, 308, 309, -1, -1, -1, -1, -1, - 508, 509, 510, -1, -1, -1, -1, -1, 323, 324, - 325, 326, -1, -1, -1, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 341, 535, 536, 537, - 538, 539, 540, 541, 59, -1, -1, -1, -1, 33, - -1, -1, -1, 358, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, -1, 260, 413, - -1, 263, -1, 417, 418, 419, 420, 421, 422, -1, - -1, 273, -1, -1, -1, -1, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 123, -1, - 125, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, -1, 260, -1, -1, 263, 431, 432, + -1, -1, -1, -1, -1, -1, -1, 273, 123, -1, + 125, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, 459, 59, -1, -1, + -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, + 473, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, 260, -1, 413, 263, -1, + -1, 417, 418, 419, 420, 421, 422, -1, 273, 274, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, -1, -1, 260, -1, -1, 263, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 273, 123, - -1, 125, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, -1, -1, -1, -1, 459, 59, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, - -1, 473, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 391, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, - -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, - 274, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + -1, 260, -1, -1, 263, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, 508, 509, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, 260, -1, 413, 263, -1, -1, 417, 418, + 419, 420, 421, 422, -1, 273, 508, 509, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, 448, + 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, + 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, 59, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, -1, -1, -1, -1, 260, + -1, -1, 263, 431, 432, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, -1, 123, -1, + 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, - -1, -1, 260, -1, -1, 263, -1, 431, 432, -1, - -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, 508, 509, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, + 421, 422, -1, -1, -1, 260, -1, -1, 263, -1, + 431, 432, -1, -1, -1, -1, -1, -1, 273, 123, + -1, 125, -1, -1, 59, -1, -1, 448, 449, 450, + 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, - 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, - -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, -1, -1, 508, 509, -1, + 125, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, + -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, + 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, - 260, -1, -1, 263, 431, 432, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, - -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 448, 449, 450, 451, 535, 536, 537, + 538, 539, 540, 541, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, -1, -1, -1, 260, -1, -1, 263, - -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, - 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, - 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 59, -1, 260, -1, 413, - 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, - 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, - 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, + 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, + -1, -1, -1, 260, -1, -1, 263, 431, 432, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, -1, 260, -1, -1, 263, 431, 432, - -1, -1, -1, -1, -1, 59, -1, 273, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, + -1, -1, -1, -1, -1, -1, 33, -1, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 508, 509, 273, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 125, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 508, 509, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, -1, + -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 508, 509, 290, 291, 292, 293, 294, 33, -1, + 297, 298, -1, 38, -1, -1, -1, 42, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, 60, 323, 324, 325, -1, + 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, + -1, 358, -1, -1, -1, -1, -1, -1, -1, 366, + 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, + 377, 378, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + 327, -1, 329, 330, 331, 332, -1, 33, -1, -1, + -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, -1, 60, -1, -1, -1, -1, 366, + 367, 368, 369, 480, -1, 372, -1, -1, -1, 376, + 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, - 273, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - -1, -1, -1, 459, -1, -1, -1, 431, 432, 33, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 273, - -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, 480, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, - 413, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 431, 432, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, 409, -1, 411, 412, 413, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, -1, -1, 358, 60, 360, 361, 362, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, 33, -1, -1, -1, + -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, 414, + 415, 416, 268, 60, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, 91, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 508, 509, 290, 291, 292, 293, - 294, 33, -1, 297, 298, -1, 38, -1, -1, -1, - 42, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, 60, 323, - 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, - -1, -1, 366, 367, 368, 369, -1, -1, 372, -1, - -1, -1, 376, 377, 378, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, - 329, 330, 331, 332, -1, -1, -1, -1, 33, -1, - -1, -1, -1, 38, -1, -1, -1, 42, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, -1, -1, -1, -1, 60, 480, 366, 367, 368, - 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, 33, 296, 297, 298, -1, 38, -1, - -1, -1, 42, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, 414, 415, + 416, -1, 268, -1, -1, 271, -1, 33, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, 323, 324, 325, + -1, 268, -1, -1, 271, 91, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 358, -1, 360, 361, 362, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, 33, 374, 375, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 33, -1, -1, -1, 358, 38, 360, 361, - 362, 42, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, + 416, 358, -1, 360, 361, 362, 260, 261, -1, 263, + -1, -1, -1, -1, 268, 91, 33, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, 414, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, 327, 91, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, 358, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, 372, 33, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 33, -1, + -1, -1, 358, 359, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, 91, -1, 414, 415, + 416, -1, -1, 260, 261, -1, 263, 323, 324, 325, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, 33, -1, 296, + 297, 298, 358, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, 414, 415, 416, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, 414, 415, + 416, 358, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, 414, 415, 416, + -1, -1, -1, -1, -1, 260, 261, -1, 263, 323, + 324, 325, -1, 268, -1, -1, 271, 123, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, 33, -1, -1, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, 296, 297, 298, 358, -1, -1, -1, 33, -1, + -1, 306, -1, 308, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, 91, 360, 361, 362, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, 374, - 375, 271, -1, -1, 33, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, 414, - 415, 416, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, 323, 324, 325, -1, 268, -1, -1, - 271, -1, 91, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 358, -1, - 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, 374, 375, -1, 33, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, 415, 416, 358, -1, 360, - 361, 362, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, 91, 33, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, 414, 415, 416, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - 327, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, 358, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 372, 33, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, 33, -1, -1, -1, 358, - 359, -1, -1, -1, 260, 261, -1, 263, -1, -1, + 414, 415, 416, 358, 260, 261, 91, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, 91, -1, 414, 415, 416, -1, -1, - -1, -1, -1, 260, 261, -1, 263, 323, 324, 325, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 358, -1, -1, -1, -1, 33, -1, 306, - -1, 308, -1, -1, -1, 41, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, + 306, 257, 308, -1, -1, -1, -1, -1, -1, 414, + 415, 416, -1, -1, -1, 271, -1, 323, 324, 325, + 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, + 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 416, 358, -1, 260, 261, 91, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, 414, 415, 416, - -1, -1, 260, 261, -1, 263, 323, 324, 325, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 358, -1, -1, -1, -1, -1, -1, 306, 257, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, 323, 324, 325, 276, 277, - -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, - -1, 289, 290, 291, 292, 293, -1, 257, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - 358, 271, -1, -1, -1, -1, 276, 277, -1, 279, - 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, - 290, 291, 292, 293, -1, 271, -1, 335, -1, 337, - 276, 277, 278, 279, 342, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 358, 297, 298, -1, -1, -1, 414, 415, 416, -1, - 306, -1, 308, -1, -1, 335, -1, 337, -1, -1, - -1, -1, 342, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, 391, -1, -1, -1, -1, 358, -1, + -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 335, + -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, + -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, 271, -1, 414, 415, + 416, 276, 277, -1, 279, 280, 281, 282, 283, 284, + -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, + -1, -1, -1, -1, -1, 391, 271, -1, -1, -1, + -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, + 335, 306, 337, 308, -1, -1, -1, 342, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 481, 391, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, -1, -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 481, -1, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, -1, -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - -1, -1, -1, 503, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 481, -1, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, -1, -1, -1, 503, }; static int yyctable[] = { -1, - 236, 553, -1, 423, 763, -1, 275, 693, -1, 276, - 693, -1, 277, 693, -1, 279, 693, -1, 280, 693, - -1, 281, 693, -1, 282, 693, -1, 493, 714, -1, - 205, 40, -1, 222, 492, -1, 97, 492, -1, 99, - 492, -1, 100, 492, -1, 101, 492, -1, 102, 492, - -1, 103, 492, -1, 729, 314, -1, 797, 765, -1, - 67, 561, -1, 68, 561, -1, 69, 561, -1, 27, + 239, 556, -1, 423, 766, -1, 275, 696, -1, 276, + 696, -1, 277, 696, -1, 279, 696, -1, 280, 696, + -1, 281, 696, -1, 282, 696, -1, 493, 717, -1, + 205, 40, -1, 225, 495, -1, 97, 495, -1, 99, + 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, + -1, 103, 495, -1, 729, 317, -1, 797, 768, -1, + 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1060, 621, -1, 67, 562, -1, 68, - 562, -1, 69, 562, -1, 1079, 37, -1, 1203, 769, - -1, 1205, 767, -1, 1217, 605, -1, 1420, 771, -1, - 1062, 568, -1, 1063, 568, -1, + 34, 78, -1, 1062, 624, -1, 67, 565, -1, 68, + 565, -1, 69, 565, -1, 1081, 37, -1, 1207, 772, + -1, 1209, 770, -1, 1221, 608, -1, 1427, 774, -1, + 1064, 571, -1, 1065, 571, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 296, 319, 320, 396, 402, 403, 418, - 419, 421, 422, 424, 425, 426, 427, 428, 429, 430, - 432, 434, 436, 438, 439, 440, 441, 442, 443, 445, - 446, 447, 460, 478, 484, 215, 5, 6, 8, 310, - 311, 298, 325, 64, 125, 480, 178, 179, 180, 181, + 284, 285, 286, 296, 319, 320, 398, 404, 405, 420, + 421, 423, 424, 426, 427, 428, 429, 430, 431, 432, + 434, 436, 438, 440, 441, 442, 443, 444, 445, 447, + 448, 449, 462, 480, 486, 215, 5, 6, 8, 310, + 311, 298, 325, 64, 125, 482, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 395, 395, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 294, 316, 317, 382, 384, 385, 297, - 298, 273, 397, 215, 399, 401, 215, 310, 9, 318, - 318, 9, 10, 333, 333, 13, 16, 20, 21, 22, + 192, 397, 397, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 294, 316, 317, 384, 386, 387, 297, + 298, 273, 399, 215, 401, 403, 215, 310, 9, 318, + 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 159, 160, 161, 298, 307, 310, 314, 337, 361, - 379, 383, 385, 402, 403, 457, 289, 310, 310, 310, - 310, 7, 12, 340, 341, 340, 340, 289, 289, 423, - 289, 289, 289, 289, 340, 386, 60, 448, 387, 23, - 26, 27, 28, 29, 31, 32, 33, 289, 305, 479, - 482, 483, 318, 400, 293, 318, 388, 311, 298, 337, - 379, 380, 385, 457, 7, 33, 297, 345, 292, 294, - 294, 46, 48, 49, 50, 316, 316, 380, 381, 383, - 337, 297, 294, 318, 318, 207, 310, 399, 100, 101, + 104, 159, 160, 161, 298, 307, 310, 314, 339, 363, + 381, 385, 387, 404, 405, 459, 289, 310, 310, 310, + 310, 7, 12, 342, 343, 342, 342, 289, 289, 425, + 289, 289, 289, 289, 342, 388, 60, 450, 389, 23, + 26, 27, 28, 29, 31, 32, 33, 289, 305, 481, + 484, 485, 318, 402, 293, 318, 390, 311, 298, 339, + 381, 382, 387, 459, 7, 33, 297, 347, 292, 294, + 294, 46, 48, 49, 50, 316, 316, 382, 383, 385, + 339, 297, 294, 318, 318, 207, 310, 401, 100, 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, 76, - 310, 310, 337, 26, 27, 28, 29, 379, 51, 379, - 24, 25, 34, 15, 17, 337, 217, 304, 310, 385, + 310, 310, 339, 26, 27, 28, 29, 381, 51, 381, + 24, 25, 34, 15, 17, 339, 217, 304, 310, 387, 307, 310, 318, 306, 105, 106, 107, 136, 298, 300, - 304, 305, 136, 136, 136, 136, 316, 384, 379, 444, - 345, 295, 12, 295, 295, 420, 309, 141, 142, 143, + 304, 305, 136, 136, 136, 136, 316, 386, 381, 446, + 347, 295, 12, 295, 295, 422, 309, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 162, 163, 164, 165, 166, 167, 204, 218, 253, 254, - 289, 290, 311, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 425, 428, 439, - 440, 441, 443, 462, 463, 464, 465, 466, 467, 468, - 471, 431, 433, 435, 437, 295, 39, 68, 72, 75, + 289, 290, 311, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 427, 430, 441, + 442, 443, 445, 464, 465, 466, 467, 468, 469, 470, + 473, 433, 435, 437, 439, 295, 39, 68, 72, 75, 76, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 98, 101, 108, 117, 310, 380, 61, - 449, 39, 72, 74, 75, 76, 77, 78, 83, 92, + 89, 90, 91, 98, 101, 108, 117, 310, 382, 61, + 451, 39, 72, 74, 75, 76, 77, 78, 83, 92, 97, 99, 111, 112, 113, 114, 115, 116, 117, 118, 124, 316, 304, 294, 298, 323, 294, 323, 294, 323, - 294, 323, 294, 323, 294, 323, 294, 481, 482, 294, - 340, 7, 8, 292, 303, 73, 75, 76, 82, 310, + 294, 323, 294, 323, 294, 323, 294, 483, 484, 294, + 342, 7, 8, 292, 303, 73, 75, 76, 82, 310, 310, 299, 39, 72, 74, 75, 76, 77, 111, 112, - 113, 114, 117, 121, 122, 123, 225, 337, 297, 217, + 113, 114, 117, 121, 122, 123, 225, 339, 297, 217, 310, 294, 297, 316, 294, 289, 294, 291, 8, 318, - 318, 295, 119, 120, 298, 310, 312, 380, 289, 294, - 345, 299, 166, 398, 310, 220, 136, 379, 25, 310, - 380, 310, 299, 299, 299, 310, 318, 310, 294, 294, - 310, 20, 299, 318, 338, 339, 337, 363, 364, 310, - 310, 310, 310, 337, 444, 290, 67, 154, 168, 173, - 198, 199, 218, 253, 254, 290, 419, 422, 424, 425, - 428, 439, 440, 441, 443, 451, 452, 454, 456, 290, - 318, 318, 318, 298, 110, 287, 298, 103, 380, 303, - 311, 318, 318, 333, 11, 31, 32, 294, 332, 333, - 311, 318, 384, 15, 17, 337, 385, 380, 87, 345, - 483, 316, 381, 294, 340, 197, 294, 423, 55, 57, - 58, 59, 469, 470, 472, 474, 475, 476, 477, 311, - 318, 466, 208, 210, 213, 214, 290, 439, 440, 443, - 486, 487, 488, 489, 84, 208, 211, 290, 485, 487, - 490, 491, 41, 154, 206, 209, 290, 440, 443, 492, - 206, 209, 290, 440, 443, 493, 294, 75, 76, 77, - 111, 112, 113, 300, 378, 380, 450, 294, 294, 322, - 294, 318, 318, 318, 318, 333, 332, 332, 290, 292, + 318, 295, 119, 120, 298, 310, 312, 382, 289, 294, + 347, 299, 166, 400, 310, 220, 136, 381, 25, 310, + 382, 310, 299, 299, 299, 310, 318, 310, 294, 294, + 310, 20, 299, 318, 340, 341, 339, 365, 366, 310, + 310, 310, 310, 339, 446, 290, 67, 154, 168, 173, + 198, 199, 218, 253, 254, 290, 421, 424, 426, 427, + 430, 441, 442, 443, 445, 453, 454, 456, 458, 290, + 318, 318, 318, 298, 110, 287, 298, 103, 382, 303, + 311, 318, 318, 335, 11, 31, 32, 294, 334, 335, + 311, 318, 386, 15, 17, 339, 387, 382, 87, 347, + 485, 316, 383, 294, 342, 197, 294, 425, 55, 57, + 58, 59, 471, 472, 474, 476, 477, 478, 479, 311, + 318, 468, 208, 210, 213, 214, 290, 441, 442, 445, + 488, 489, 490, 491, 84, 208, 211, 290, 487, 489, + 492, 493, 41, 154, 206, 209, 290, 442, 445, 494, + 206, 209, 290, 442, 445, 495, 294, 75, 76, 77, + 111, 112, 113, 300, 380, 382, 452, 294, 294, 322, + 294, 318, 318, 318, 318, 335, 334, 334, 290, 292, 311, 295, 318, 318, 75, 76, 77, 111, 112, 113, - 294, 294, 310, 310, 299, 345, 393, 394, 289, 337, - 51, 372, 373, 380, 7, 292, 295, 295, 382, 300, - 331, 362, 19, 368, 370, 321, 485, 136, 310, 19, - 299, 314, 314, 314, 380, 380, 20, 292, 299, 301, - 292, 304, 110, 390, 391, 318, 318, 400, 110, 287, - 103, 380, 289, 423, 289, 289, 289, 303, 318, 298, - 310, 298, 310, 318, 316, 19, 294, 294, 310, 380, - 294, 340, 337, 311, 315, 318, 295, 294, 20, 322, - 334, 335, 336, 290, 380, 469, 56, 466, 473, 473, - 473, 473, 311, 318, 466, 62, 62, 212, 297, 304, - 318, 375, 297, 345, 340, 340, 297, 297, 340, 340, + 294, 294, 310, 310, 299, 347, 395, 396, 289, 339, + 51, 374, 375, 382, 7, 292, 295, 295, 384, 300, + 333, 364, 19, 370, 372, 321, 487, 136, 310, 19, + 299, 314, 314, 314, 382, 382, 20, 292, 299, 301, + 292, 304, 110, 392, 393, 318, 318, 402, 110, 287, + 103, 382, 289, 425, 289, 289, 289, 303, 318, 298, + 310, 298, 310, 318, 316, 19, 294, 294, 310, 382, + 294, 342, 339, 311, 315, 318, 295, 294, 20, 322, + 336, 337, 338, 290, 382, 471, 56, 468, 475, 475, + 475, 475, 311, 318, 468, 62, 62, 212, 297, 304, + 318, 377, 297, 347, 342, 342, 297, 297, 342, 342, 294, 215, 318, 310, 215, 310, 215, 318, 39, 51, - 52, 69, 119, 288, 291, 302, 327, 328, 377, 292, - 318, 345, 392, 298, 337, 345, 295, 299, 295, 295, - 295, 295, 295, 481, 295, 303, 8, 292, 318, 2, + 52, 69, 119, 288, 291, 302, 327, 328, 379, 292, + 318, 347, 394, 298, 339, 347, 295, 299, 295, 295, + 295, 295, 295, 483, 295, 303, 8, 292, 318, 2, 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, 136, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 248, - 289, 342, 343, 461, 63, 313, 299, 297, 295, 292, - 368, 8, 292, 290, 297, 8, 297, 298, 363, 294, + 289, 344, 345, 463, 63, 313, 299, 297, 295, 292, + 370, 8, 292, 290, 297, 8, 297, 298, 365, 294, 294, 310, 312, 290, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 110, - 349, 350, 371, 443, 483, 28, 29, 63, 202, 203, - 205, 340, 310, 310, 314, 295, 295, 318, 338, 337, - 294, 380, 72, 117, 310, 380, 72, 117, 316, 310, - 298, 310, 298, 310, 316, 19, 420, 290, 453, 455, - 435, 318, 299, 318, 318, 292, 299, 337, 312, 318, - 333, 19, 345, 295, 294, 292, 295, 292, 334, 337, + 351, 352, 373, 445, 485, 28, 29, 63, 202, 203, + 205, 342, 310, 310, 314, 295, 295, 318, 340, 339, + 294, 382, 72, 117, 310, 382, 72, 117, 316, 310, + 298, 310, 298, 310, 316, 19, 422, 290, 455, 457, + 437, 318, 299, 318, 318, 292, 299, 339, 312, 318, + 335, 19, 347, 295, 294, 292, 295, 292, 336, 339, 295, 292, 311, 318, 311, 318, 318, 294, 303, 294, 295, 295, 294, 294, 295, 295, 318, 314, 310, 63, - 310, 295, 294, 337, 328, 294, 310, 367, 301, 380, - 295, 136, 392, 39, 46, 48, 49, 50, 87, 88, - 89, 133, 134, 135, 137, 140, 295, 250, 251, 252, - 318, 225, 347, 295, 323, 323, 323, 323, 323, 323, - 318, 318, 295, 25, 26, 27, 28, 29, 294, 329, - 242, 234, 246, 294, 227, 247, 22, 329, 329, 2, - 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, - 34, 35, 36, 37, 38, 229, 230, 232, 233, 234, - 236, 237, 240, 241, 243, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 304, - 324, 298, 304, 295, 341, 311, 297, 344, 28, 65, - 66, 318, 326, 345, 346, 379, 393, 290, 297, 373, - 289, 289, 294, 345, 318, 301, 334, 334, 331, 362, - 294, 298, 294, 298, 26, 27, 28, 29, 294, 298, + 310, 295, 294, 39, 329, 330, 328, 294, 310, 369, + 301, 382, 295, 136, 394, 39, 46, 48, 49, 50, + 87, 88, 89, 133, 134, 135, 137, 140, 295, 250, + 251, 252, 318, 225, 349, 295, 323, 323, 323, 323, + 323, 323, 318, 318, 295, 25, 26, 27, 28, 29, + 294, 331, 242, 234, 246, 294, 227, 247, 22, 331, + 331, 2, 21, 22, 24, 25, 26, 27, 28, 29, + 31, 32, 34, 35, 36, 37, 38, 229, 230, 232, + 233, 234, 236, 237, 240, 241, 243, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 304, 324, 298, 304, 295, 343, 311, 297, 346, + 28, 65, 66, 318, 326, 347, 348, 381, 395, 290, + 297, 375, 289, 289, 294, 347, 318, 301, 336, 336, + 333, 364, 294, 298, 294, 298, 26, 27, 28, 29, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, - 294, 298, 294, 298, 104, 109, 374, 443, 340, 311, - 295, 334, 196, 402, 310, 337, 318, 318, 292, 337, - 312, 290, 169, 170, 171, 172, 290, 428, 440, 441, - 443, 458, 172, 174, 175, 290, 428, 440, 441, 443, - 459, 290, 136, 299, 299, 380, 344, 380, 295, 295, - 310, 295, 334, 315, 315, 295, 347, 336, 62, 62, - 375, 295, 318, 318, 310, 365, 366, 380, 292, 376, - 310, 345, 295, 294, 303, 303, 299, 299, 299, 299, - 294, 312, 8, 292, 8, 249, 345, 298, 298, 25, - 26, 27, 28, 29, 270, 292, 298, 305, 291, 299, - 318, 290, 22, 23, 24, 26, 27, 28, 29, 31, - 32, 35, 36, 37, 38, 44, 345, 348, 350, 294, - 294, 289, 371, 368, 299, 295, 295, 294, 294, 326, - 318, 318, 318, 294, 298, 294, 298, 294, 298, 294, - 298, 318, 318, 318, 318, 318, 318, 333, 318, 318, - 332, 318, 332, 333, 318, 318, 318, 318, 318, 318, - 318, 333, 318, 349, 318, 8, 44, 318, 44, 51, - 379, 318, 42, 91, 110, 361, 369, 295, 398, 295, - 310, 299, 299, 380, 380, 255, 384, 384, 384, 384, - 384, 384, 384, 311, 292, 19, 295, 311, 311, 318, - 303, 295, 376, 295, 292, 377, 376, 392, 318, 138, - 139, 138, 139, 343, 378, 318, 297, 292, 318, 318, - 345, 299, 318, 291, 299, 26, 27, 28, 29, 318, - 26, 27, 28, 318, 371, 290, 290, 301, 334, 334, - 295, 299, 295, 299, 318, 318, 318, 318, 318, 318, - 333, 318, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 295, 299, 295, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 295, 299, 295, - 8, 295, 299, 51, 379, 298, 310, 294, 292, 19, - 316, 380, 312, 375, 380, 295, 295, 295, 294, 8, - 318, 345, 299, 299, 299, 318, 295, 303, 303, 303, - 295, 290, 295, 295, 294, 294, 295, 299, 295, 299, - 295, 299, 295, 299, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 295, 294, 8, 299, - 297, 334, 380, 312, 337, 300, 330, 331, 303, 334, - 295, 292, 295, 342, 299, 318, 318, 318, 357, 354, - 294, 294, 294, 294, 353, 354, 355, 356, 351, 352, - 353, 354, 355, 356, 360, 358, 359, 349, 295, 330, - 380, 294, 375, 295, 345, 295, 295, 295, 295, 326, - 295, 318, 353, 354, 355, 356, 295, 318, 295, 295, - 318, 295, 333, 295, 318, 332, 295, 332, 333, 295, - 295, 295, 295, 295, 349, 8, 44, 295, 44, 51, - 295, 379, 344, 294, 19, 334, 389, 292, 295, 295, - 295, 295, 8, 334, 312, 295, 39, 54, 70, 79, - 93, 94, 95, 96, 125, 126, 127, 128, 129, 130, - 131, 289, 345, 295, 294, 294, 295, 255, 334, 318, - 103, 295, 295, 316, 337, 380, 19, 312, 330, 294, - 334, 295, + 294, 298, 294, 298, 294, 298, 104, 109, 376, 445, + 342, 311, 295, 336, 196, 404, 310, 339, 318, 318, + 292, 339, 312, 290, 169, 170, 171, 172, 290, 430, + 442, 443, 445, 460, 172, 174, 175, 290, 430, 442, + 443, 445, 461, 290, 136, 299, 299, 382, 346, 382, + 295, 295, 310, 295, 336, 315, 315, 295, 349, 338, + 62, 62, 377, 295, 318, 318, 294, 330, 382, 367, + 368, 382, 292, 378, 310, 347, 295, 294, 303, 303, + 299, 299, 299, 299, 294, 312, 8, 292, 8, 249, + 347, 298, 298, 25, 26, 27, 28, 29, 270, 292, + 298, 305, 291, 299, 318, 290, 22, 23, 24, 26, + 27, 28, 29, 31, 32, 35, 36, 37, 38, 44, + 347, 350, 352, 294, 294, 289, 373, 370, 299, 295, + 295, 294, 294, 326, 318, 318, 318, 294, 298, 294, + 298, 294, 298, 294, 298, 318, 318, 318, 318, 318, + 318, 335, 318, 318, 334, 318, 334, 335, 318, 318, + 318, 318, 318, 318, 318, 335, 318, 351, 318, 8, + 44, 318, 44, 51, 381, 318, 42, 91, 110, 363, + 371, 295, 400, 295, 310, 299, 299, 382, 382, 255, + 386, 386, 386, 386, 386, 386, 386, 311, 292, 19, + 295, 311, 311, 318, 303, 295, 318, 310, 295, 292, + 379, 378, 394, 318, 138, 139, 138, 139, 345, 380, + 318, 297, 292, 318, 318, 347, 299, 318, 291, 299, + 26, 27, 28, 29, 318, 26, 27, 28, 318, 373, + 290, 290, 301, 336, 336, 295, 299, 295, 299, 318, + 318, 318, 318, 318, 318, 335, 318, 295, 299, 295, + 299, 295, 299, 295, 299, 295, 295, 299, 295, 295, + 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, + 299, 295, 295, 299, 295, 8, 295, 299, 51, 381, + 298, 310, 294, 292, 19, 316, 382, 312, 377, 295, + 378, 382, 295, 295, 295, 294, 8, 318, 347, 299, + 299, 299, 318, 295, 303, 303, 303, 295, 290, 295, + 295, 294, 294, 295, 299, 295, 299, 295, 299, 295, + 299, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 295, 294, 8, 299, 297, 336, 382, + 312, 339, 300, 332, 333, 303, 336, 295, 292, 295, + 344, 299, 318, 318, 318, 359, 356, 294, 294, 294, + 294, 355, 356, 357, 358, 353, 354, 355, 356, 357, + 358, 362, 360, 361, 351, 295, 332, 382, 294, 377, + 295, 347, 295, 295, 295, 295, 326, 295, 318, 355, + 356, 357, 358, 295, 318, 295, 295, 318, 295, 335, + 295, 318, 334, 295, 334, 335, 295, 295, 295, 295, + 295, 351, 8, 44, 295, 44, 51, 295, 381, 346, + 294, 19, 336, 391, 292, 295, 295, 295, 295, 8, + 336, 312, 295, 39, 54, 70, 79, 93, 94, 95, + 96, 125, 126, 127, 128, 129, 130, 131, 289, 347, + 295, 294, 294, 295, 255, 336, 318, 103, 295, 295, + 316, 339, 382, 19, 312, 332, 294, 336, 295, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -4547,7 +4565,10 @@ static const char *yyrule[] = { "typarAttrib : FLAGS_ '(' int32 ')'", "typarAttribs :", "typarAttribs : typarAttrib typarAttribs", -"typars : CONST_ type dottedName typarsRest", +"conTyparAttrib : FLAGS_ '(' int32 ')'", +"conTyparAttribs :", +"conTyparAttribs : conTyparAttrib conTyparAttribs", +"typars : CONST_ conTyparAttribs typeSpec dottedName typarsRest", "typars : typarAttribs tyBound dottedName typarsRest", "typars : typarAttribs dottedName typarsRest", "typarsRest :", @@ -5540,11 +5561,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2065 "asmparse.y" +#line 2072 "asmparse.y" #include "grammar_after.cpp" -#line 5548 "asmparse.cpp.tab.c" +#line 5569 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -5997,13 +6018,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6001 "asmparse.cpp.tab.c" +#line 6022 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6007 "asmparse.cpp.tab.c" +#line 6028 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6012,31 +6033,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6016 "asmparse.cpp.tab.c" +#line 6037 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6022 "asmparse.cpp.tab.c" +#line 6043 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6028 "asmparse.cpp.tab.c" +#line 6049 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6034 "asmparse.cpp.tab.c" +#line 6055 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6040 "asmparse.cpp.tab.c" +#line 6061 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6051,13 +6072,13 @@ case 19: #pragma warning(pop) #endif } -#line 6055 "asmparse.cpp.tab.c" +#line 6076 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6061 "asmparse.cpp.tab.c" +#line 6082 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6065,7 +6086,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6069 "asmparse.cpp.tab.c" +#line 6090 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6073,44 +6094,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6077 "asmparse.cpp.tab.c" +#line 6098 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6083 "asmparse.cpp.tab.c" +#line 6104 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6089 "asmparse.cpp.tab.c" +#line 6110 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6095 "asmparse.cpp.tab.c" +#line 6116 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6101 "asmparse.cpp.tab.c" +#line 6122 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6107 "asmparse.cpp.tab.c" +#line 6128 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6114 "asmparse.cpp.tab.c" +#line 6135 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6118,121 +6139,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6122 "asmparse.cpp.tab.c" +#line 6143 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6128 "asmparse.cpp.tab.c" +#line 6149 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6134 "asmparse.cpp.tab.c" +#line 6155 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6140 "asmparse.cpp.tab.c" +#line 6161 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6146 "asmparse.cpp.tab.c" +#line 6167 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6152 "asmparse.cpp.tab.c" +#line 6173 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6158 "asmparse.cpp.tab.c" +#line 6179 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6164 "asmparse.cpp.tab.c" +#line 6185 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6170 "asmparse.cpp.tab.c" +#line 6191 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6176 "asmparse.cpp.tab.c" +#line 6197 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6182 "asmparse.cpp.tab.c" +#line 6203 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6188 "asmparse.cpp.tab.c" +#line 6209 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6194 "asmparse.cpp.tab.c" +#line 6215 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6200 "asmparse.cpp.tab.c" +#line 6221 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6206 "asmparse.cpp.tab.c" +#line 6227 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6212 "asmparse.cpp.tab.c" +#line 6233 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6218 "asmparse.cpp.tab.c" +#line 6239 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6224 "asmparse.cpp.tab.c" +#line 6245 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6230 "asmparse.cpp.tab.c" +#line 6251 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6236 "asmparse.cpp.tab.c" +#line 6257 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6240,7 +6261,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6244 "asmparse.cpp.tab.c" +#line 6265 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6248,13 +6269,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6252 "asmparse.cpp.tab.c" +#line 6273 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6258 "asmparse.cpp.tab.c" +#line 6279 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6263,73 +6284,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6267 "asmparse.cpp.tab.c" +#line 6288 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6273 "asmparse.cpp.tab.c" +#line 6294 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6279 "asmparse.cpp.tab.c" +#line 6300 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6285 "asmparse.cpp.tab.c" +#line 6306 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6291 "asmparse.cpp.tab.c" +#line 6312 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6297 "asmparse.cpp.tab.c" +#line 6318 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6303 "asmparse.cpp.tab.c" +#line 6324 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6309 "asmparse.cpp.tab.c" +#line 6330 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6315 "asmparse.cpp.tab.c" +#line 6336 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6321 "asmparse.cpp.tab.c" +#line 6342 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6327 "asmparse.cpp.tab.c" +#line 6348 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6333 "asmparse.cpp.tab.c" +#line 6354 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6337,25 +6358,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6341 "asmparse.cpp.tab.c" +#line 6362 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6347 "asmparse.cpp.tab.c" +#line 6368 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6353 "asmparse.cpp.tab.c" +#line 6374 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6359 "asmparse.cpp.tab.c" +#line 6380 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6364,32 +6385,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6368 "asmparse.cpp.tab.c" +#line 6389 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6374 "asmparse.cpp.tab.c" +#line 6395 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6381 "asmparse.cpp.tab.c" +#line 6402 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6387 "asmparse.cpp.tab.c" +#line 6408 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6393 "asmparse.cpp.tab.c" +#line 6414 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6399,25 +6420,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6403 "asmparse.cpp.tab.c" +#line 6424 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6409 "asmparse.cpp.tab.c" +#line 6430 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6415 "asmparse.cpp.tab.c" +#line 6436 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6421 "asmparse.cpp.tab.c" +#line 6442 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6426,13 +6447,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6430 "asmparse.cpp.tab.c" +#line 6451 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6436 "asmparse.cpp.tab.c" +#line 6457 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6443,57 +6464,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6447 "asmparse.cpp.tab.c" +#line 6468 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6453 "asmparse.cpp.tab.c" +#line 6474 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6459 "asmparse.cpp.tab.c" +#line 6480 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6465 "asmparse.cpp.tab.c" +#line 6486 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6472 "asmparse.cpp.tab.c" +#line 6493 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6479 "asmparse.cpp.tab.c" +#line 6500 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6485 "asmparse.cpp.tab.c" +#line 6506 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6491 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6497 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6502,74 +6523,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6506 "asmparse.cpp.tab.c" +#line 6527 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6513 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6519 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6525 "asmparse.cpp.tab.c" +#line 6546 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6531 "asmparse.cpp.tab.c" +#line 6552 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6537 "asmparse.cpp.tab.c" +#line 6558 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6543 "asmparse.cpp.tab.c" +#line 6564 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6549 "asmparse.cpp.tab.c" +#line 6570 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6555 "asmparse.cpp.tab.c" +#line 6576 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6561 "asmparse.cpp.tab.c" +#line 6582 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6567 "asmparse.cpp.tab.c" +#line 6588 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6573 "asmparse.cpp.tab.c" +#line 6594 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6579,396 +6600,414 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6583 "asmparse.cpp.tab.c" +#line 6604 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6589 "asmparse.cpp.tab.c" +#line 6610 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6595 "asmparse.cpp.tab.c" +#line 6616 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6601 "asmparse.cpp.tab.c" +#line 6622 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6607 "asmparse.cpp.tab.c" +#line 6628 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6613 "asmparse.cpp.tab.c" +#line 6634 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6619 "asmparse.cpp.tab.c" +#line 6640 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6625 "asmparse.cpp.tab.c" +#line 6646 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6631 "asmparse.cpp.tab.c" +#line 6652 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6637 "asmparse.cpp.tab.c" +#line 6658 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6643 "asmparse.cpp.tab.c" +#line 6664 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6649 "asmparse.cpp.tab.c" +#line 6670 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6655 "asmparse.cpp.tab.c" +#line 6676 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6661 "asmparse.cpp.tab.c" +#line 6682 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6667 "asmparse.cpp.tab.c" +#line 6688 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6673 "asmparse.cpp.tab.c" +#line 6694 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6679 "asmparse.cpp.tab.c" +#line 6700 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6685 "asmparse.cpp.tab.c" +#line 6706 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6691 "asmparse.cpp.tab.c" +#line 6712 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6697 "asmparse.cpp.tab.c" +#line 6718 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6703 "asmparse.cpp.tab.c" +#line 6724 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6709 "asmparse.cpp.tab.c" +#line 6730 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6715 "asmparse.cpp.tab.c" +#line 6736 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 6721 "asmparse.cpp.tab.c" +#line 6742 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 6727 "asmparse.cpp.tab.c" +#line 6748 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 6733 "asmparse.cpp.tab.c" +#line 6754 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 6739 "asmparse.cpp.tab.c" +#line 6760 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 6745 "asmparse.cpp.tab.c" +#line 6766 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 6751 "asmparse.cpp.tab.c" +#line 6772 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 6757 "asmparse.cpp.tab.c" +#line 6778 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6763 "asmparse.cpp.tab.c" +#line 6784 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6769 "asmparse.cpp.tab.c" +#line 6790 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6775 "asmparse.cpp.tab.c" +#line 6796 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6781 "asmparse.cpp.tab.c" +#line 6802 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6787 "asmparse.cpp.tab.c" +#line 6808 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6793 "asmparse.cpp.tab.c" +#line 6814 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 6799 "asmparse.cpp.tab.c" +#line 6820 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 6805 "asmparse.cpp.tab.c" +#line 6826 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 6811 "asmparse.cpp.tab.c" +#line 6832 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 6817 "asmparse.cpp.tab.c" +#line 6838 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 6823 "asmparse.cpp.tab.c" +#line 6844 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 6829 "asmparse.cpp.tab.c" +#line 6850 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 6835 "asmparse.cpp.tab.c" +#line 6856 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 6841 "asmparse.cpp.tab.c" +#line 6862 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 6847 "asmparse.cpp.tab.c" +#line 6868 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 6853 "asmparse.cpp.tab.c" +#line 6874 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 6859 "asmparse.cpp.tab.c" +#line 6880 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-2].binstr, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 6865 "asmparse.cpp.tab.c" +{ yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } +#line 6886 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) -#line 500 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 6871 "asmparse.cpp.tab.c" +#line 502 "asmparse.y" +{ yyval.int32 = 0; } +#line 6892 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) -#line 501 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 6877 "asmparse.cpp.tab.c" +#line 503 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } +#line 6898 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) -#line 504 "asmparse.y" -{ yyval.typarlist = NULL; } -#line 6883 "asmparse.cpp.tab.c" +#line 506 "asmparse.y" +{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } +#line 6904 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) -#line 505 "asmparse.y" -{ yyval.typarlist = yyvsp[0].typarlist; } -#line 6889 "asmparse.cpp.tab.c" +#line 507 "asmparse.y" +{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} +#line 6910 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 6895 "asmparse.cpp.tab.c" +{yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} +#line 6916 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" -{ yyval.int32= 0; } -#line 6901 "asmparse.cpp.tab.c" +{ yyval.typarlist = NULL; } +#line 6922 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 6907 "asmparse.cpp.tab.c" +{ yyval.typarlist = yyvsp[0].typarlist; } +#line 6928 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" -{ yyval.int32 = yyvsp[-2].int32; } -#line 6913 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 6934 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) +#line 518 "asmparse.y" +{ yyval.int32= 0; } +#line 6940 "asmparse.cpp.tab.c" +break; +case 168: + if (!yytrial) #line 519 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 6946 "asmparse.cpp.tab.c" +break; +case 169: + if (!yytrial) +#line 522 "asmparse.y" +{ yyval.int32 = yyvsp[-2].int32; } +#line 6952 "asmparse.cpp.tab.c" +break; +case 170: + if (!yytrial) +#line 526 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6922 "asmparse.cpp.tab.c" +#line 6961 "asmparse.cpp.tab.c" break; -case 168: +case 171: if (!yytrial) -#line 523 "asmparse.y" +#line 530 "asmparse.y" { PASM->EndClass(); } -#line 6928 "asmparse.cpp.tab.c" +#line 6967 "asmparse.cpp.tab.c" break; -case 169: +case 172: if (!yytrial) -#line 524 "asmparse.y" +#line 531 "asmparse.y" { PASM->EndEvent(); } -#line 6934 "asmparse.cpp.tab.c" +#line 6973 "asmparse.cpp.tab.c" break; -case 170: +case 173: if (!yytrial) -#line 525 "asmparse.y" +#line 532 "asmparse.y" { PASM->EndProp(); } -#line 6940 "asmparse.cpp.tab.c" +#line 6979 "asmparse.cpp.tab.c" break; -case 176: +case 179: if (!yytrial) -#line 531 "asmparse.y" +#line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 6946 "asmparse.cpp.tab.c" +#line 6985 "asmparse.cpp.tab.c" break; -case 177: +case 180: if (!yytrial) -#line 532 "asmparse.y" +#line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 6952 "asmparse.cpp.tab.c" +#line 6991 "asmparse.cpp.tab.c" break; -case 178: +case 181: if (!yytrial) -#line 533 "asmparse.y" +#line 540 "asmparse.y" { PASMM->EndComType(); } -#line 6958 "asmparse.cpp.tab.c" +#line 6997 "asmparse.cpp.tab.c" break; -case 179: +case 182: if (!yytrial) -#line 535 "asmparse.y" +#line 542 "asmparse.y" { BinStr *sig1 = parser->MakeSig(yyvsp[-7].int32, yyvsp[-6].binstr, yyvsp[-1].binstr); BinStr *sig2 = new BinStr(); sig2->append(sig1); PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 6968 "asmparse.cpp.tab.c" +#line 7007 "asmparse.cpp.tab.c" break; -case 180: +case 183: if (!yytrial) -#line 541 "asmparse.y" +#line 548 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-17].token,yyvsp[-15].string, (yyvsp[-14].int32==0 ? parser->MakeSig(yyvsp[-19].int32,yyvsp[-18].binstr,yyvsp[-12].binstr) : parser->MakeSig(yyvsp[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-18].binstr,yyvsp[-12].binstr,yyvsp[-14].int32)), @@ -6977,192 +7016,192 @@ case 180: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 6981 "asmparse.cpp.tab.c" +#line 7020 "asmparse.cpp.tab.c" break; -case 183: +case 186: if (!yytrial) -#line 551 "asmparse.y" +#line 558 "asmparse.y" { if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yyvsp[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 6991 "asmparse.cpp.tab.c" +#line 7030 "asmparse.cpp.tab.c" break; -case 184: +case 187: if (!yytrial) -#line 556 "asmparse.y" +#line 563 "asmparse.y" { int n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7002 "asmparse.cpp.tab.c" +#line 7041 "asmparse.cpp.tab.c" break; -case 185: +case 188: if (!yytrial) -#line 562 "asmparse.y" +#line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7008 "asmparse.cpp.tab.c" +#line 7047 "asmparse.cpp.tab.c" break; -case 186: +case 189: if (!yytrial) -#line 563 "asmparse.y" +#line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7014 "asmparse.cpp.tab.c" +#line 7053 "asmparse.cpp.tab.c" break; -case 187: +case 190: if (!yytrial) -#line 564 "asmparse.y" +#line 571 "asmparse.y" { yyvsp[0].cad->tkInterfacePair = yyvsp[-1].token; if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7023 "asmparse.cpp.tab.c" +#line 7062 "asmparse.cpp.tab.c" break; -case 188: +case 191: if (!yytrial) -#line 572 "asmparse.y" +#line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7030 "asmparse.cpp.tab.c" +#line 7069 "asmparse.cpp.tab.c" break; -case 189: +case 192: if (!yytrial) -#line 576 "asmparse.y" +#line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7036 "asmparse.cpp.tab.c" +#line 7075 "asmparse.cpp.tab.c" break; -case 190: +case 193: if (!yytrial) -#line 577 "asmparse.y" +#line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7042 "asmparse.cpp.tab.c" +#line 7081 "asmparse.cpp.tab.c" break; -case 191: +case 194: if (!yytrial) -#line 578 "asmparse.y" +#line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7048 "asmparse.cpp.tab.c" +#line 7087 "asmparse.cpp.tab.c" break; -case 192: +case 195: if (!yytrial) -#line 579 "asmparse.y" +#line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7054 "asmparse.cpp.tab.c" +#line 7093 "asmparse.cpp.tab.c" break; -case 193: +case 196: if (!yytrial) -#line 580 "asmparse.y" +#line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7060 "asmparse.cpp.tab.c" +#line 7099 "asmparse.cpp.tab.c" break; -case 194: +case 197: if (!yytrial) -#line 581 "asmparse.y" +#line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7066 "asmparse.cpp.tab.c" +#line 7105 "asmparse.cpp.tab.c" break; -case 195: +case 198: if (!yytrial) -#line 582 "asmparse.y" +#line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7072 "asmparse.cpp.tab.c" +#line 7111 "asmparse.cpp.tab.c" break; -case 196: +case 199: if (!yytrial) -#line 583 "asmparse.y" +#line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7078 "asmparse.cpp.tab.c" +#line 7117 "asmparse.cpp.tab.c" break; -case 197: +case 200: if (!yytrial) -#line 596 "asmparse.y" +#line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7084 "asmparse.cpp.tab.c" +#line 7123 "asmparse.cpp.tab.c" break; -case 198: +case 201: if (!yytrial) -#line 597 "asmparse.y" +#line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7090 "asmparse.cpp.tab.c" +#line 7129 "asmparse.cpp.tab.c" break; -case 199: +case 202: if (!yytrial) -#line 598 "asmparse.y" +#line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7096 "asmparse.cpp.tab.c" +#line 7135 "asmparse.cpp.tab.c" break; -case 200: +case 203: if (!yytrial) -#line 599 "asmparse.y" +#line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7102 "asmparse.cpp.tab.c" +#line 7141 "asmparse.cpp.tab.c" break; -case 201: +case 204: if (!yytrial) -#line 600 "asmparse.y" +#line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7108 "asmparse.cpp.tab.c" +#line 7147 "asmparse.cpp.tab.c" break; -case 202: +case 205: if (!yytrial) -#line 601 "asmparse.y" +#line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7114 "asmparse.cpp.tab.c" +#line 7153 "asmparse.cpp.tab.c" break; -case 203: +case 206: if (!yytrial) -#line 602 "asmparse.y" +#line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7120 "asmparse.cpp.tab.c" +#line 7159 "asmparse.cpp.tab.c" break; -case 204: +case 207: if (!yytrial) -#line 603 "asmparse.y" +#line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7126 "asmparse.cpp.tab.c" +#line 7165 "asmparse.cpp.tab.c" break; -case 205: +case 208: if (!yytrial) -#line 606 "asmparse.y" +#line 613 "asmparse.y" { yyval.string = 0; } -#line 7132 "asmparse.cpp.tab.c" +#line 7171 "asmparse.cpp.tab.c" break; -case 206: +case 209: if (!yytrial) -#line 607 "asmparse.y" +#line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7138 "asmparse.cpp.tab.c" +#line 7177 "asmparse.cpp.tab.c" break; -case 207: +case 210: if (!yytrial) -#line 610 "asmparse.y" +#line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7144 "asmparse.cpp.tab.c" +#line 7183 "asmparse.cpp.tab.c" break; -case 208: +case 211: if (!yytrial) -#line 611 "asmparse.y" +#line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7150 "asmparse.cpp.tab.c" +#line 7189 "asmparse.cpp.tab.c" break; -case 209: +case 212: if (!yytrial) -#line 614 "asmparse.y" +#line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7156 "asmparse.cpp.tab.c" +#line 7195 "asmparse.cpp.tab.c" break; -case 210: +case 213: if (!yytrial) -#line 615 "asmparse.y" +#line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7162 "asmparse.cpp.tab.c" +#line 7201 "asmparse.cpp.tab.c" break; -case 211: +case 214: if (!yytrial) -#line 620 "asmparse.y" +#line 627 "asmparse.y" { PASM->ResetArgNameList(); if (yyvsp[-3].binstr == NULL) { @@ -7179,21 +7218,21 @@ case 211: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7183 "asmparse.cpp.tab.c" +#line 7222 "asmparse.cpp.tab.c" break; -case 212: +case 215: if (!yytrial) -#line 637 "asmparse.y" +#line 644 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7193 "asmparse.cpp.tab.c" +#line 7232 "asmparse.cpp.tab.c" break; -case 213: +case 216: if (!yytrial) -#line 643 "asmparse.y" +#line 650 "asmparse.y" { PASM->ResetArgNameList(); if (yyvsp[-3].binstr == NULL) { @@ -7209,300 +7248,300 @@ case 213: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7213 "asmparse.cpp.tab.c" +#line 7252 "asmparse.cpp.tab.c" break; -case 214: +case 217: if (!yytrial) -#line 659 "asmparse.y" +#line 666 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7222 "asmparse.cpp.tab.c" +#line 7261 "asmparse.cpp.tab.c" break; -case 215: +case 218: if (!yytrial) -#line 663 "asmparse.y" +#line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7228 "asmparse.cpp.tab.c" +#line 7267 "asmparse.cpp.tab.c" break; -case 216: +case 219: if (!yytrial) -#line 664 "asmparse.y" +#line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7234 "asmparse.cpp.tab.c" +#line 7273 "asmparse.cpp.tab.c" break; -case 217: +case 220: if (!yytrial) -#line 665 "asmparse.y" +#line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7240 "asmparse.cpp.tab.c" +#line 7279 "asmparse.cpp.tab.c" break; -case 218: +case 221: if (!yytrial) -#line 668 "asmparse.y" +#line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7246 "asmparse.cpp.tab.c" +#line 7285 "asmparse.cpp.tab.c" break; -case 219: +case 222: if (!yytrial) -#line 669 "asmparse.y" +#line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7252 "asmparse.cpp.tab.c" +#line 7291 "asmparse.cpp.tab.c" break; -case 220: +case 223: if (!yytrial) -#line 670 "asmparse.y" +#line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7258 "asmparse.cpp.tab.c" +#line 7297 "asmparse.cpp.tab.c" break; -case 221: +case 224: if (!yytrial) -#line 671 "asmparse.y" +#line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7264 "asmparse.cpp.tab.c" +#line 7303 "asmparse.cpp.tab.c" break; -case 222: +case 225: if (!yytrial) -#line 674 "asmparse.y" +#line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7270 "asmparse.cpp.tab.c" +#line 7309 "asmparse.cpp.tab.c" break; -case 223: +case 226: if (!yytrial) -#line 675 "asmparse.y" +#line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7276 "asmparse.cpp.tab.c" +#line 7315 "asmparse.cpp.tab.c" break; -case 224: +case 227: if (!yytrial) -#line 676 "asmparse.y" +#line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7282 "asmparse.cpp.tab.c" +#line 7321 "asmparse.cpp.tab.c" break; -case 225: +case 228: if (!yytrial) -#line 677 "asmparse.y" +#line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7288 "asmparse.cpp.tab.c" +#line 7327 "asmparse.cpp.tab.c" break; -case 226: +case 229: if (!yytrial) -#line 678 "asmparse.y" +#line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7294 "asmparse.cpp.tab.c" +#line 7333 "asmparse.cpp.tab.c" break; -case 227: +case 230: if (!yytrial) -#line 679 "asmparse.y" +#line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7300 "asmparse.cpp.tab.c" +#line 7339 "asmparse.cpp.tab.c" break; -case 228: +case 231: if (!yytrial) -#line 680 "asmparse.y" +#line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7306 "asmparse.cpp.tab.c" +#line 7345 "asmparse.cpp.tab.c" break; -case 229: +case 232: if (!yytrial) -#line 681 "asmparse.y" +#line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7312 "asmparse.cpp.tab.c" +#line 7351 "asmparse.cpp.tab.c" break; -case 230: +case 233: if (!yytrial) -#line 684 "asmparse.y" +#line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7318 "asmparse.cpp.tab.c" +#line 7357 "asmparse.cpp.tab.c" break; -case 231: +case 234: if (!yytrial) -#line 687 "asmparse.y" +#line 694 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7328 "asmparse.cpp.tab.c" +#line 7367 "asmparse.cpp.tab.c" break; -case 232: +case 235: if (!yytrial) -#line 693 "asmparse.y" +#line 700 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7336 "asmparse.cpp.tab.c" +#line 7375 "asmparse.cpp.tab.c" break; -case 233: +case 236: if (!yytrial) -#line 697 "asmparse.y" +#line 704 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7344 "asmparse.cpp.tab.c" +#line 7383 "asmparse.cpp.tab.c" break; -case 234: +case 237: if (!yytrial) -#line 700 "asmparse.y" +#line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7351 "asmparse.cpp.tab.c" +#line 7390 "asmparse.cpp.tab.c" break; -case 235: +case 238: if (!yytrial) -#line 702 "asmparse.y" +#line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7358 "asmparse.cpp.tab.c" +#line 7397 "asmparse.cpp.tab.c" break; -case 236: +case 239: if (!yytrial) -#line 704 "asmparse.y" +#line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7365 "asmparse.cpp.tab.c" +#line 7404 "asmparse.cpp.tab.c" break; -case 237: +case 240: if (!yytrial) -#line 709 "asmparse.y" +#line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7371 "asmparse.cpp.tab.c" +#line 7410 "asmparse.cpp.tab.c" break; -case 238: +case 241: if (!yytrial) -#line 710 "asmparse.y" +#line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7377 "asmparse.cpp.tab.c" +#line 7416 "asmparse.cpp.tab.c" break; -case 239: +case 242: if (!yytrial) -#line 714 "asmparse.y" +#line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7383 "asmparse.cpp.tab.c" +#line 7422 "asmparse.cpp.tab.c" break; -case 240: +case 243: if (!yytrial) -#line 715 "asmparse.y" +#line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7389 "asmparse.cpp.tab.c" +#line 7428 "asmparse.cpp.tab.c" break; -case 241: +case 244: if (!yytrial) -#line 716 "asmparse.y" +#line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7395 "asmparse.cpp.tab.c" +#line 7434 "asmparse.cpp.tab.c" break; -case 244: +case 247: if (!yytrial) -#line 723 "asmparse.y" +#line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7401 "asmparse.cpp.tab.c" +#line 7440 "asmparse.cpp.tab.c" break; -case 245: +case 248: if (!yytrial) -#line 724 "asmparse.y" +#line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7407 "asmparse.cpp.tab.c" +#line 7446 "asmparse.cpp.tab.c" break; -case 246: +case 249: if (!yytrial) -#line 725 "asmparse.y" +#line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7413 "asmparse.cpp.tab.c" +#line 7452 "asmparse.cpp.tab.c" break; -case 247: +case 250: if (!yytrial) -#line 726 "asmparse.y" +#line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7419 "asmparse.cpp.tab.c" +#line 7458 "asmparse.cpp.tab.c" break; -case 252: +case 255: if (!yytrial) -#line 735 "asmparse.y" +#line 742 "asmparse.y" { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7427 "asmparse.cpp.tab.c" +#line 7466 "asmparse.cpp.tab.c" break; -case 253: +case 256: if (!yytrial) -#line 740 "asmparse.y" +#line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7433 "asmparse.cpp.tab.c" +#line 7472 "asmparse.cpp.tab.c" break; -case 254: +case 257: if (!yytrial) -#line 741 "asmparse.y" +#line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7439 "asmparse.cpp.tab.c" +#line 7478 "asmparse.cpp.tab.c" break; -case 255: +case 258: if (!yytrial) -#line 742 "asmparse.y" +#line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7445 "asmparse.cpp.tab.c" +#line 7484 "asmparse.cpp.tab.c" break; -case 258: +case 261: if (!yytrial) -#line 750 "asmparse.y" +#line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7451 "asmparse.cpp.tab.c" +#line 7490 "asmparse.cpp.tab.c" break; -case 259: +case 262: if (!yytrial) -#line 751 "asmparse.y" +#line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7457 "asmparse.cpp.tab.c" +#line 7496 "asmparse.cpp.tab.c" break; -case 260: +case 263: if (!yytrial) -#line 752 "asmparse.y" +#line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7463 "asmparse.cpp.tab.c" +#line 7502 "asmparse.cpp.tab.c" break; -case 265: +case 268: if (!yytrial) -#line 760 "asmparse.y" +#line 767 "asmparse.y" { PASM->ResetForNextMethod(); uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7472 "asmparse.cpp.tab.c" +#line 7511 "asmparse.cpp.tab.c" break; -case 266: +case 269: if (!yytrial) -#line 766 "asmparse.y" +#line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7478 "asmparse.cpp.tab.c" +#line 7517 "asmparse.cpp.tab.c" break; -case 267: +case 270: if (!yytrial) -#line 767 "asmparse.y" +#line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7484 "asmparse.cpp.tab.c" +#line 7523 "asmparse.cpp.tab.c" break; -case 268: +case 271: if (!yytrial) -#line 770 "asmparse.y" +#line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7490 "asmparse.cpp.tab.c" +#line 7529 "asmparse.cpp.tab.c" break; -case 269: +case 272: if (!yytrial) -#line 771 "asmparse.y" +#line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7496 "asmparse.cpp.tab.c" +#line 7535 "asmparse.cpp.tab.c" break; -case 270: +case 273: if (!yytrial) -#line 774 "asmparse.y" +#line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7502 "asmparse.cpp.tab.c" +#line 7541 "asmparse.cpp.tab.c" break; -case 271: +case 274: if (!yytrial) -#line 778 "asmparse.y" +#line 785 "asmparse.y" { BinStr* sig; if (yyvsp[-5].typarlist == NULL) sig = parser->MakeSig(yyvsp[-10].int32, yyvsp[-8].binstr, yyvsp[-3].binstr); else { @@ -7516,450 +7555,450 @@ case 271: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7520 "asmparse.cpp.tab.c" +#line 7559 "asmparse.cpp.tab.c" break; -case 272: +case 275: if (!yytrial) -#line 793 "asmparse.y" +#line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7526 "asmparse.cpp.tab.c" +#line 7565 "asmparse.cpp.tab.c" break; -case 273: +case 276: if (!yytrial) -#line 794 "asmparse.y" +#line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7532 "asmparse.cpp.tab.c" +#line 7571 "asmparse.cpp.tab.c" break; -case 274: +case 277: if (!yytrial) -#line 795 "asmparse.y" +#line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7538 "asmparse.cpp.tab.c" +#line 7577 "asmparse.cpp.tab.c" break; -case 275: +case 278: if (!yytrial) -#line 796 "asmparse.y" +#line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7544 "asmparse.cpp.tab.c" +#line 7583 "asmparse.cpp.tab.c" break; -case 276: +case 279: if (!yytrial) -#line 797 "asmparse.y" +#line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7550 "asmparse.cpp.tab.c" +#line 7589 "asmparse.cpp.tab.c" break; -case 277: +case 280: if (!yytrial) -#line 798 "asmparse.y" +#line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7556 "asmparse.cpp.tab.c" +#line 7595 "asmparse.cpp.tab.c" break; -case 278: +case 281: if (!yytrial) -#line 799 "asmparse.y" +#line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7562 "asmparse.cpp.tab.c" +#line 7601 "asmparse.cpp.tab.c" break; -case 279: +case 282: if (!yytrial) -#line 800 "asmparse.y" +#line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7568 "asmparse.cpp.tab.c" +#line 7607 "asmparse.cpp.tab.c" break; -case 280: +case 283: if (!yytrial) -#line 801 "asmparse.y" +#line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7574 "asmparse.cpp.tab.c" +#line 7613 "asmparse.cpp.tab.c" break; -case 281: +case 284: if (!yytrial) -#line 802 "asmparse.y" +#line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7580 "asmparse.cpp.tab.c" +#line 7619 "asmparse.cpp.tab.c" break; -case 282: +case 285: if (!yytrial) -#line 803 "asmparse.y" +#line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7586 "asmparse.cpp.tab.c" +#line 7625 "asmparse.cpp.tab.c" break; -case 283: +case 286: if (!yytrial) -#line 804 "asmparse.y" +#line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7592 "asmparse.cpp.tab.c" +#line 7631 "asmparse.cpp.tab.c" break; -case 284: +case 287: if (!yytrial) -#line 805 "asmparse.y" +#line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7598 "asmparse.cpp.tab.c" +#line 7637 "asmparse.cpp.tab.c" break; -case 285: +case 288: if (!yytrial) -#line 806 "asmparse.y" +#line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7604 "asmparse.cpp.tab.c" +#line 7643 "asmparse.cpp.tab.c" break; -case 286: +case 289: if (!yytrial) -#line 807 "asmparse.y" +#line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7610 "asmparse.cpp.tab.c" +#line 7649 "asmparse.cpp.tab.c" break; -case 287: +case 290: if (!yytrial) -#line 808 "asmparse.y" +#line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7616 "asmparse.cpp.tab.c" +#line 7655 "asmparse.cpp.tab.c" break; -case 288: +case 291: if (!yytrial) -#line 809 "asmparse.y" +#line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 7622 "asmparse.cpp.tab.c" +#line 7661 "asmparse.cpp.tab.c" break; -case 289: +case 292: if (!yytrial) -#line 810 "asmparse.y" +#line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7628 "asmparse.cpp.tab.c" +#line 7667 "asmparse.cpp.tab.c" break; -case 290: +case 293: if (!yytrial) -#line 811 "asmparse.y" +#line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7634 "asmparse.cpp.tab.c" +#line 7673 "asmparse.cpp.tab.c" break; -case 291: +case 294: if (!yytrial) -#line 812 "asmparse.y" +#line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7640 "asmparse.cpp.tab.c" +#line 7679 "asmparse.cpp.tab.c" break; -case 292: +case 295: if (!yytrial) -#line 814 "asmparse.y" +#line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7647 "asmparse.cpp.tab.c" +#line 7686 "asmparse.cpp.tab.c" break; -case 293: +case 296: if (!yytrial) -#line 817 "asmparse.y" +#line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7654 "asmparse.cpp.tab.c" +#line 7693 "asmparse.cpp.tab.c" break; -case 294: +case 297: if (!yytrial) -#line 820 "asmparse.y" +#line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7661 "asmparse.cpp.tab.c" +#line 7700 "asmparse.cpp.tab.c" break; -case 295: +case 298: if (!yytrial) -#line 824 "asmparse.y" +#line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7667 "asmparse.cpp.tab.c" +#line 7706 "asmparse.cpp.tab.c" break; -case 296: +case 299: if (!yytrial) -#line 825 "asmparse.y" +#line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7673 "asmparse.cpp.tab.c" +#line 7712 "asmparse.cpp.tab.c" break; -case 297: +case 300: if (!yytrial) -#line 826 "asmparse.y" +#line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7679 "asmparse.cpp.tab.c" +#line 7718 "asmparse.cpp.tab.c" break; -case 298: +case 301: if (!yytrial) -#line 827 "asmparse.y" +#line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7685 "asmparse.cpp.tab.c" +#line 7724 "asmparse.cpp.tab.c" break; -case 299: +case 302: if (!yytrial) -#line 828 "asmparse.y" +#line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7691 "asmparse.cpp.tab.c" +#line 7730 "asmparse.cpp.tab.c" break; -case 300: +case 303: if (!yytrial) -#line 829 "asmparse.y" +#line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7697 "asmparse.cpp.tab.c" +#line 7736 "asmparse.cpp.tab.c" break; -case 301: +case 304: if (!yytrial) -#line 830 "asmparse.y" +#line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 7703 "asmparse.cpp.tab.c" +#line 7742 "asmparse.cpp.tab.c" break; -case 302: +case 305: if (!yytrial) -#line 831 "asmparse.y" +#line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 7709 "asmparse.cpp.tab.c" +#line 7748 "asmparse.cpp.tab.c" break; -case 303: +case 306: if (!yytrial) -#line 832 "asmparse.y" +#line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 7715 "asmparse.cpp.tab.c" +#line 7754 "asmparse.cpp.tab.c" break; -case 304: +case 307: if (!yytrial) -#line 833 "asmparse.y" +#line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 7721 "asmparse.cpp.tab.c" +#line 7760 "asmparse.cpp.tab.c" break; -case 305: +case 308: if (!yytrial) -#line 834 "asmparse.y" +#line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 7727 "asmparse.cpp.tab.c" +#line 7766 "asmparse.cpp.tab.c" break; -case 306: +case 309: if (!yytrial) -#line 835 "asmparse.y" +#line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 7733 "asmparse.cpp.tab.c" +#line 7772 "asmparse.cpp.tab.c" break; -case 307: +case 310: if (!yytrial) -#line 836 "asmparse.y" +#line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 7739 "asmparse.cpp.tab.c" +#line 7778 "asmparse.cpp.tab.c" break; -case 308: +case 311: if (!yytrial) -#line 837 "asmparse.y" +#line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 7745 "asmparse.cpp.tab.c" +#line 7784 "asmparse.cpp.tab.c" break; -case 309: +case 312: if (!yytrial) -#line 838 "asmparse.y" +#line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 7751 "asmparse.cpp.tab.c" +#line 7790 "asmparse.cpp.tab.c" break; -case 310: +case 313: if (!yytrial) -#line 839 "asmparse.y" +#line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 7757 "asmparse.cpp.tab.c" +#line 7796 "asmparse.cpp.tab.c" break; -case 311: +case 314: if (!yytrial) -#line 842 "asmparse.y" +#line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 7763 "asmparse.cpp.tab.c" +#line 7802 "asmparse.cpp.tab.c" break; -case 312: +case 315: if (!yytrial) -#line 843 "asmparse.y" +#line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 7769 "asmparse.cpp.tab.c" +#line 7808 "asmparse.cpp.tab.c" break; -case 313: +case 316: if (!yytrial) -#line 844 "asmparse.y" +#line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7775 "asmparse.cpp.tab.c" +#line 7814 "asmparse.cpp.tab.c" break; -case 314: +case 317: if (!yytrial) -#line 847 "asmparse.y" +#line 854 "asmparse.y" { yyval.int32 = 0; } -#line 7781 "asmparse.cpp.tab.c" +#line 7820 "asmparse.cpp.tab.c" break; -case 315: +case 318: if (!yytrial) -#line 848 "asmparse.y" +#line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 7787 "asmparse.cpp.tab.c" +#line 7826 "asmparse.cpp.tab.c" break; -case 316: +case 319: if (!yytrial) -#line 849 "asmparse.y" +#line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 7793 "asmparse.cpp.tab.c" +#line 7832 "asmparse.cpp.tab.c" break; -case 317: +case 320: if (!yytrial) -#line 850 "asmparse.y" +#line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 7799 "asmparse.cpp.tab.c" +#line 7838 "asmparse.cpp.tab.c" break; -case 318: +case 321: if (!yytrial) -#line 851 "asmparse.y" +#line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 7805 "asmparse.cpp.tab.c" +#line 7844 "asmparse.cpp.tab.c" break; -case 319: +case 322: if (!yytrial) -#line 854 "asmparse.y" +#line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 7811 "asmparse.cpp.tab.c" +#line 7850 "asmparse.cpp.tab.c" break; -case 320: +case 323: if (!yytrial) -#line 855 "asmparse.y" +#line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 7817 "asmparse.cpp.tab.c" +#line 7856 "asmparse.cpp.tab.c" break; -case 321: +case 324: if (!yytrial) -#line 856 "asmparse.y" +#line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 7823 "asmparse.cpp.tab.c" +#line 7862 "asmparse.cpp.tab.c" break; -case 322: +case 325: if (!yytrial) -#line 857 "asmparse.y" +#line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 7829 "asmparse.cpp.tab.c" +#line 7868 "asmparse.cpp.tab.c" break; -case 323: +case 326: if (!yytrial) -#line 858 "asmparse.y" +#line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 7835 "asmparse.cpp.tab.c" +#line 7874 "asmparse.cpp.tab.c" break; -case 324: +case 327: if (!yytrial) -#line 859 "asmparse.y" +#line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 7841 "asmparse.cpp.tab.c" +#line 7880 "asmparse.cpp.tab.c" break; -case 325: +case 328: if (!yytrial) -#line 860 "asmparse.y" +#line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 7847 "asmparse.cpp.tab.c" +#line 7886 "asmparse.cpp.tab.c" break; -case 326: +case 329: if (!yytrial) -#line 861 "asmparse.y" +#line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 7853 "asmparse.cpp.tab.c" +#line 7892 "asmparse.cpp.tab.c" break; -case 327: +case 330: if (!yytrial) -#line 862 "asmparse.y" +#line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 7859 "asmparse.cpp.tab.c" +#line 7898 "asmparse.cpp.tab.c" break; -case 328: +case 331: if (!yytrial) -#line 863 "asmparse.y" +#line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 7865 "asmparse.cpp.tab.c" +#line 7904 "asmparse.cpp.tab.c" break; -case 329: +case 332: if (!yytrial) -#line 864 "asmparse.y" +#line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 7871 "asmparse.cpp.tab.c" +#line 7910 "asmparse.cpp.tab.c" break; -case 330: +case 333: if (!yytrial) -#line 865 "asmparse.y" +#line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 7877 "asmparse.cpp.tab.c" +#line 7916 "asmparse.cpp.tab.c" break; -case 331: +case 334: if (!yytrial) -#line 866 "asmparse.y" +#line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 7883 "asmparse.cpp.tab.c" +#line 7922 "asmparse.cpp.tab.c" break; -case 332: +case 335: if (!yytrial) -#line 867 "asmparse.y" +#line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 7889 "asmparse.cpp.tab.c" +#line 7928 "asmparse.cpp.tab.c" break; -case 333: +case 336: if (!yytrial) -#line 868 "asmparse.y" +#line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 7895 "asmparse.cpp.tab.c" +#line 7934 "asmparse.cpp.tab.c" break; -case 334: +case 337: if (!yytrial) -#line 869 "asmparse.y" +#line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 7901 "asmparse.cpp.tab.c" +#line 7940 "asmparse.cpp.tab.c" break; -case 335: +case 338: if (!yytrial) -#line 872 "asmparse.y" +#line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 7908 "asmparse.cpp.tab.c" +#line 7947 "asmparse.cpp.tab.c" break; -case 338: +case 341: if (!yytrial) -#line 880 "asmparse.y" +#line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 7914 "asmparse.cpp.tab.c" +#line 7953 "asmparse.cpp.tab.c" break; -case 339: +case 342: if (!yytrial) -#line 881 "asmparse.y" +#line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 7920 "asmparse.cpp.tab.c" +#line 7959 "asmparse.cpp.tab.c" break; -case 340: +case 343: if (!yytrial) -#line 882 "asmparse.y" +#line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 7926 "asmparse.cpp.tab.c" +#line 7965 "asmparse.cpp.tab.c" break; -case 341: +case 344: if (!yytrial) -#line 883 "asmparse.y" +#line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 7933 "asmparse.cpp.tab.c" +#line 7972 "asmparse.cpp.tab.c" break; -case 342: +case 345: if (!yytrial) -#line 885 "asmparse.y" +#line 892 "asmparse.y" { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 7941 "asmparse.cpp.tab.c" +#line 7980 "asmparse.cpp.tab.c" break; -case 343: +case 346: if (!yytrial) -#line 888 "asmparse.y" +#line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 7947 "asmparse.cpp.tab.c" +#line 7986 "asmparse.cpp.tab.c" break; -case 344: +case 347: if (!yytrial) -#line 889 "asmparse.y" +#line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 7953 "asmparse.cpp.tab.c" +#line 7992 "asmparse.cpp.tab.c" break; -case 347: +case 350: if (!yytrial) -#line 892 "asmparse.y" +#line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 7959 "asmparse.cpp.tab.c" +#line 7998 "asmparse.cpp.tab.c" break; -case 353: +case 356: if (!yytrial) -#line 898 "asmparse.y" +#line 905 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-1].int32; @@ -7970,11 +8009,11 @@ case 353: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 7974 "asmparse.cpp.tab.c" +#line 8013 "asmparse.cpp.tab.c" break; -case 354: +case 357: if (!yytrial) -#line 908 "asmparse.y" +#line 915 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-3].int32; @@ -7985,68 +8024,68 @@ case 354: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 7989 "asmparse.cpp.tab.c" +#line 8028 "asmparse.cpp.tab.c" break; -case 355: +case 358: if (!yytrial) -#line 918 "asmparse.y" +#line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 7996 "asmparse.cpp.tab.c" +#line 8035 "asmparse.cpp.tab.c" break; -case 356: +case 359: if (!yytrial) -#line 921 "asmparse.y" +#line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8002 "asmparse.cpp.tab.c" +#line 8041 "asmparse.cpp.tab.c" break; -case 357: +case 360: if (!yytrial) -#line 924 "asmparse.y" +#line 931 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-6].token,yyvsp[-4].string, (yyvsp[-3].int32==0 ? parser->MakeSig(yyvsp[-8].int32,yyvsp[-7].binstr,yyvsp[-1].binstr) : parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32)) ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8013 "asmparse.cpp.tab.c" +#line 8052 "asmparse.cpp.tab.c" break; -case 359: +case 362: if (!yytrial) -#line 931 "asmparse.y" +#line 938 "asmparse.y" { if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yyvsp[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 8023 "asmparse.cpp.tab.c" +#line 8062 "asmparse.cpp.tab.c" break; -case 360: +case 363: if (!yytrial) -#line 936 "asmparse.y" +#line 943 "asmparse.y" { int n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8034 "asmparse.cpp.tab.c" +#line 8073 "asmparse.cpp.tab.c" break; -case 361: +case 364: if (!yytrial) -#line 942 "asmparse.y" +#line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8040 "asmparse.cpp.tab.c" +#line 8079 "asmparse.cpp.tab.c" break; -case 362: +case 365: if (!yytrial) -#line 943 "asmparse.y" +#line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8046 "asmparse.cpp.tab.c" +#line 8085 "asmparse.cpp.tab.c" break; -case 363: +case 366: if (!yytrial) -#line 946 "asmparse.y" +#line 953 "asmparse.y" { if( yyvsp[-2].int32 ) { ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yyvsp[-2].int32 - 1); if(pAN) @@ -8065,241 +8104,241 @@ case 363: } PASM->m_tkCurrentCVOwner = 0; } -#line 8069 "asmparse.cpp.tab.c" +#line 8108 "asmparse.cpp.tab.c" break; -case 364: +case 367: if (!yytrial) -#line 966 "asmparse.y" +#line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8075 "asmparse.cpp.tab.c" +#line 8114 "asmparse.cpp.tab.c" break; -case 365: +case 368: if (!yytrial) -#line 969 "asmparse.y" +#line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8081 "asmparse.cpp.tab.c" +#line 8120 "asmparse.cpp.tab.c" break; -case 369: +case 372: if (!yytrial) -#line 980 "asmparse.y" +#line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8087 "asmparse.cpp.tab.c" +#line 8126 "asmparse.cpp.tab.c" break; -case 370: +case 373: if (!yytrial) -#line 981 "asmparse.y" +#line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8093 "asmparse.cpp.tab.c" +#line 8132 "asmparse.cpp.tab.c" break; -case 371: +case 374: if (!yytrial) -#line 982 "asmparse.y" +#line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8100 "asmparse.cpp.tab.c" +#line 8139 "asmparse.cpp.tab.c" break; -case 372: +case 375: if (!yytrial) -#line 986 "asmparse.y" +#line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8107 "asmparse.cpp.tab.c" +#line 8146 "asmparse.cpp.tab.c" break; -case 373: +case 376: if (!yytrial) -#line 991 "asmparse.y" +#line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8113 "asmparse.cpp.tab.c" +#line 8152 "asmparse.cpp.tab.c" break; -case 374: +case 377: if (!yytrial) -#line 992 "asmparse.y" +#line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8119 "asmparse.cpp.tab.c" +#line 8158 "asmparse.cpp.tab.c" break; -case 375: +case 378: if (!yytrial) -#line 993 "asmparse.y" +#line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8125 "asmparse.cpp.tab.c" +#line 8164 "asmparse.cpp.tab.c" break; -case 376: +case 379: if (!yytrial) -#line 994 "asmparse.y" +#line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8131 "asmparse.cpp.tab.c" +#line 8170 "asmparse.cpp.tab.c" break; -case 377: +case 380: if (!yytrial) -#line 998 "asmparse.y" +#line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8137 "asmparse.cpp.tab.c" +#line 8176 "asmparse.cpp.tab.c" break; -case 378: +case 381: if (!yytrial) -#line 999 "asmparse.y" +#line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8144 "asmparse.cpp.tab.c" +#line 8183 "asmparse.cpp.tab.c" break; -case 379: +case 382: if (!yytrial) -#line 1001 "asmparse.y" +#line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8151 "asmparse.cpp.tab.c" +#line 8190 "asmparse.cpp.tab.c" break; -case 380: +case 383: if (!yytrial) -#line 1005 "asmparse.y" +#line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8158 "asmparse.cpp.tab.c" +#line 8197 "asmparse.cpp.tab.c" break; -case 381: +case 384: if (!yytrial) -#line 1009 "asmparse.y" +#line 1016 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8166 "asmparse.cpp.tab.c" +#line 8205 "asmparse.cpp.tab.c" break; -case 382: +case 385: if (!yytrial) -#line 1014 "asmparse.y" +#line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8173 "asmparse.cpp.tab.c" +#line 8212 "asmparse.cpp.tab.c" break; -case 383: +case 386: if (!yytrial) -#line 1018 "asmparse.y" +#line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8180 "asmparse.cpp.tab.c" +#line 8219 "asmparse.cpp.tab.c" break; -case 384: +case 387: if (!yytrial) -#line 1022 "asmparse.y" +#line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8186 "asmparse.cpp.tab.c" +#line 8225 "asmparse.cpp.tab.c" break; -case 385: +case 388: if (!yytrial) -#line 1023 "asmparse.y" +#line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8192 "asmparse.cpp.tab.c" +#line 8231 "asmparse.cpp.tab.c" break; -case 386: +case 389: if (!yytrial) -#line 1024 "asmparse.y" +#line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8199 "asmparse.cpp.tab.c" +#line 8238 "asmparse.cpp.tab.c" break; -case 388: +case 391: if (!yytrial) -#line 1032 "asmparse.y" +#line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8205 "asmparse.cpp.tab.c" +#line 8244 "asmparse.cpp.tab.c" break; -case 390: +case 393: if (!yytrial) -#line 1036 "asmparse.y" +#line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8211 "asmparse.cpp.tab.c" +#line 8250 "asmparse.cpp.tab.c" break; -case 391: +case 394: if (!yytrial) -#line 1037 "asmparse.y" +#line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8217 "asmparse.cpp.tab.c" +#line 8256 "asmparse.cpp.tab.c" break; -case 392: +case 395: if (!yytrial) -#line 1038 "asmparse.y" +#line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8223 "asmparse.cpp.tab.c" +#line 8262 "asmparse.cpp.tab.c" break; -case 397: +case 400: if (!yytrial) -#line 1049 "asmparse.y" +#line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8229 "asmparse.cpp.tab.c" +#line 8268 "asmparse.cpp.tab.c" break; -case 398: +case 401: if (!yytrial) -#line 1050 "asmparse.y" +#line 1057 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8237 "asmparse.cpp.tab.c" +#line 8276 "asmparse.cpp.tab.c" break; -case 399: +case 402: if (!yytrial) -#line 1055 "asmparse.y" +#line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8243 "asmparse.cpp.tab.c" +#line 8282 "asmparse.cpp.tab.c" break; -case 400: +case 403: if (!yytrial) -#line 1056 "asmparse.y" +#line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8249 "asmparse.cpp.tab.c" +#line 8288 "asmparse.cpp.tab.c" break; -case 401: +case 404: if (!yytrial) -#line 1057 "asmparse.y" +#line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8255 "asmparse.cpp.tab.c" +#line 8294 "asmparse.cpp.tab.c" break; -case 402: +case 405: if (!yytrial) -#line 1059 "asmparse.y" +#line 1066 "asmparse.y" { float f = (float) (*yyvsp[-2].float64); float* p = new (nothrow) float[yyvsp[0].int32]; if(p != NULL) { for(int i=0; i < yyvsp[0].int32; i++) p[i] = f; PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8266 "asmparse.cpp.tab.c" +#line 8305 "asmparse.cpp.tab.c" break; -case 403: +case 406: if (!yytrial) -#line 1066 "asmparse.y" +#line 1073 "asmparse.y" { double* p = new (nothrow) double[yyvsp[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8277 "asmparse.cpp.tab.c" +#line 8316 "asmparse.cpp.tab.c" break; -case 404: +case 407: if (!yytrial) -#line 1073 "asmparse.y" +#line 1080 "asmparse.y" { __int64* p = new (nothrow) __int64[yyvsp[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8288 "asmparse.cpp.tab.c" +#line 8327 "asmparse.cpp.tab.c" break; -case 405: +case 408: if (!yytrial) -#line 1080 "asmparse.y" +#line 1087 "asmparse.y" { __int32* p = new (nothrow) __int32[yyvsp[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8299 "asmparse.cpp.tab.c" +#line 8338 "asmparse.cpp.tab.c" break; -case 406: +case 409: if (!yytrial) -#line 1087 "asmparse.y" +#line 1094 "asmparse.y" { __int16 i = (__int16) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); __int16* p = new (nothrow) __int16[yyvsp[0].int32]; if(p != NULL) { @@ -8307,11 +8346,11 @@ case 406: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8311 "asmparse.cpp.tab.c" +#line 8350 "asmparse.cpp.tab.c" break; -case 407: +case 410: if (!yytrial) -#line 1095 "asmparse.y" +#line 1102 "asmparse.y" { __int8 i = (__int8) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); __int8* p = new (nothrow) __int8[yyvsp[0].int32]; if(p != NULL) { @@ -8319,726 +8358,726 @@ case 407: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8323 "asmparse.cpp.tab.c" +#line 8362 "asmparse.cpp.tab.c" break; -case 408: +case 411: if (!yytrial) -#line 1102 "asmparse.y" +#line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8329 "asmparse.cpp.tab.c" +#line 8368 "asmparse.cpp.tab.c" break; -case 409: +case 412: if (!yytrial) -#line 1103 "asmparse.y" +#line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8335 "asmparse.cpp.tab.c" +#line 8374 "asmparse.cpp.tab.c" break; -case 410: +case 413: if (!yytrial) -#line 1104 "asmparse.y" +#line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8341 "asmparse.cpp.tab.c" +#line 8380 "asmparse.cpp.tab.c" break; -case 411: +case 414: if (!yytrial) -#line 1105 "asmparse.y" +#line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8347 "asmparse.cpp.tab.c" +#line 8386 "asmparse.cpp.tab.c" break; -case 412: +case 415: if (!yytrial) -#line 1106 "asmparse.y" +#line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8353 "asmparse.cpp.tab.c" +#line 8392 "asmparse.cpp.tab.c" break; -case 413: +case 416: if (!yytrial) -#line 1107 "asmparse.y" +#line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8359 "asmparse.cpp.tab.c" +#line 8398 "asmparse.cpp.tab.c" break; -case 414: +case 417: if (!yytrial) -#line 1111 "asmparse.y" +#line 1118 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8367 "asmparse.cpp.tab.c" +#line 8406 "asmparse.cpp.tab.c" break; -case 415: +case 418: if (!yytrial) -#line 1114 "asmparse.y" +#line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8374 "asmparse.cpp.tab.c" +#line 8413 "asmparse.cpp.tab.c" break; -case 416: +case 419: if (!yytrial) -#line 1116 "asmparse.y" +#line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8381 "asmparse.cpp.tab.c" +#line 8420 "asmparse.cpp.tab.c" break; -case 417: +case 420: if (!yytrial) -#line 1118 "asmparse.y" +#line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8388 "asmparse.cpp.tab.c" +#line 8427 "asmparse.cpp.tab.c" break; -case 418: +case 421: if (!yytrial) -#line 1120 "asmparse.y" +#line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8395 "asmparse.cpp.tab.c" +#line 8434 "asmparse.cpp.tab.c" break; -case 419: +case 422: if (!yytrial) -#line 1122 "asmparse.y" +#line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8402 "asmparse.cpp.tab.c" +#line 8441 "asmparse.cpp.tab.c" break; -case 420: +case 423: if (!yytrial) -#line 1124 "asmparse.y" +#line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8409 "asmparse.cpp.tab.c" +#line 8448 "asmparse.cpp.tab.c" break; -case 421: +case 424: if (!yytrial) -#line 1126 "asmparse.y" +#line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8416 "asmparse.cpp.tab.c" +#line 8455 "asmparse.cpp.tab.c" break; -case 422: +case 425: if (!yytrial) -#line 1128 "asmparse.y" +#line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8423 "asmparse.cpp.tab.c" +#line 8462 "asmparse.cpp.tab.c" break; -case 423: +case 426: if (!yytrial) -#line 1130 "asmparse.y" +#line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8430 "asmparse.cpp.tab.c" +#line 8469 "asmparse.cpp.tab.c" break; -case 424: +case 427: if (!yytrial) -#line 1132 "asmparse.y" +#line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8437 "asmparse.cpp.tab.c" +#line 8476 "asmparse.cpp.tab.c" break; -case 425: +case 428: if (!yytrial) -#line 1134 "asmparse.y" +#line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8444 "asmparse.cpp.tab.c" +#line 8483 "asmparse.cpp.tab.c" break; -case 426: +case 429: if (!yytrial) -#line 1136 "asmparse.y" +#line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8451 "asmparse.cpp.tab.c" +#line 8490 "asmparse.cpp.tab.c" break; -case 427: +case 430: if (!yytrial) -#line 1138 "asmparse.y" +#line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8458 "asmparse.cpp.tab.c" +#line 8497 "asmparse.cpp.tab.c" break; -case 428: +case 431: if (!yytrial) -#line 1140 "asmparse.y" +#line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8465 "asmparse.cpp.tab.c" +#line 8504 "asmparse.cpp.tab.c" break; -case 429: +case 432: if (!yytrial) -#line 1142 "asmparse.y" +#line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8472 "asmparse.cpp.tab.c" +#line 8511 "asmparse.cpp.tab.c" break; -case 430: +case 433: if (!yytrial) -#line 1144 "asmparse.y" +#line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8479 "asmparse.cpp.tab.c" +#line 8518 "asmparse.cpp.tab.c" break; -case 431: +case 434: if (!yytrial) -#line 1146 "asmparse.y" +#line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8486 "asmparse.cpp.tab.c" +#line 8525 "asmparse.cpp.tab.c" break; -case 432: +case 435: if (!yytrial) -#line 1148 "asmparse.y" +#line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8493 "asmparse.cpp.tab.c" +#line 8532 "asmparse.cpp.tab.c" break; -case 433: +case 436: if (!yytrial) -#line 1152 "asmparse.y" +#line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8499 "asmparse.cpp.tab.c" +#line 8538 "asmparse.cpp.tab.c" break; -case 434: +case 437: if (!yytrial) -#line 1155 "asmparse.y" +#line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8505 "asmparse.cpp.tab.c" +#line 8544 "asmparse.cpp.tab.c" break; -case 435: +case 438: if (!yytrial) -#line 1156 "asmparse.y" +#line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8511 "asmparse.cpp.tab.c" +#line 8550 "asmparse.cpp.tab.c" break; -case 436: +case 439: if (!yytrial) -#line 1159 "asmparse.y" +#line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8517 "asmparse.cpp.tab.c" +#line 8556 "asmparse.cpp.tab.c" break; -case 437: +case 440: if (!yytrial) -#line 1160 "asmparse.y" +#line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8523 "asmparse.cpp.tab.c" +#line 8562 "asmparse.cpp.tab.c" break; -case 438: +case 441: if (!yytrial) -#line 1164 "asmparse.y" +#line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8529 "asmparse.cpp.tab.c" +#line 8568 "asmparse.cpp.tab.c" break; -case 439: +case 442: if (!yytrial) -#line 1165 "asmparse.y" +#line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8535 "asmparse.cpp.tab.c" +#line 8574 "asmparse.cpp.tab.c" break; -case 440: +case 443: if (!yytrial) -#line 1166 "asmparse.y" +#line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8542 "asmparse.cpp.tab.c" +#line 8581 "asmparse.cpp.tab.c" break; -case 441: +case 444: if (!yytrial) -#line 1171 "asmparse.y" +#line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8548 "asmparse.cpp.tab.c" +#line 8587 "asmparse.cpp.tab.c" break; -case 442: +case 445: if (!yytrial) -#line 1172 "asmparse.y" +#line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8554 "asmparse.cpp.tab.c" +#line 8593 "asmparse.cpp.tab.c" break; -case 443: +case 446: if (!yytrial) -#line 1173 "asmparse.y" +#line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8561 "asmparse.cpp.tab.c" +#line 8600 "asmparse.cpp.tab.c" break; -case 444: +case 447: if (!yytrial) -#line 1175 "asmparse.y" +#line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8568 "asmparse.cpp.tab.c" +#line 8607 "asmparse.cpp.tab.c" break; -case 445: +case 448: if (!yytrial) -#line 1177 "asmparse.y" +#line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8575 "asmparse.cpp.tab.c" +#line 8614 "asmparse.cpp.tab.c" break; -case 446: +case 449: if (!yytrial) -#line 1179 "asmparse.y" +#line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8581 "asmparse.cpp.tab.c" +#line 8620 "asmparse.cpp.tab.c" break; -case 447: +case 450: if (!yytrial) -#line 1180 "asmparse.y" +#line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8587 "asmparse.cpp.tab.c" +#line 8626 "asmparse.cpp.tab.c" break; -case 448: +case 451: if (!yytrial) -#line 1182 "asmparse.y" +#line 1189 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8595 "asmparse.cpp.tab.c" +#line 8634 "asmparse.cpp.tab.c" break; -case 449: +case 452: if (!yytrial) -#line 1186 "asmparse.y" +#line 1193 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8603 "asmparse.cpp.tab.c" +#line 8642 "asmparse.cpp.tab.c" break; -case 450: +case 453: if (!yytrial) -#line 1190 "asmparse.y" +#line 1197 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8611 "asmparse.cpp.tab.c" +#line 8650 "asmparse.cpp.tab.c" break; -case 451: +case 454: if (!yytrial) -#line 1194 "asmparse.y" +#line 1201 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8619 "asmparse.cpp.tab.c" +#line 8658 "asmparse.cpp.tab.c" break; -case 452: +case 455: if (!yytrial) -#line 1198 "asmparse.y" +#line 1205 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8627 "asmparse.cpp.tab.c" +#line 8666 "asmparse.cpp.tab.c" break; -case 453: +case 456: if (!yytrial) -#line 1202 "asmparse.y" +#line 1209 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8635 "asmparse.cpp.tab.c" +#line 8674 "asmparse.cpp.tab.c" break; -case 454: +case 457: if (!yytrial) -#line 1206 "asmparse.y" +#line 1213 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8643 "asmparse.cpp.tab.c" +#line 8682 "asmparse.cpp.tab.c" break; -case 455: +case 458: if (!yytrial) -#line 1210 "asmparse.y" +#line 1217 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8651 "asmparse.cpp.tab.c" +#line 8690 "asmparse.cpp.tab.c" break; -case 456: +case 459: if (!yytrial) -#line 1214 "asmparse.y" +#line 1221 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8659 "asmparse.cpp.tab.c" +#line 8698 "asmparse.cpp.tab.c" break; -case 457: +case 460: if (!yytrial) -#line 1218 "asmparse.y" +#line 1225 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8667 "asmparse.cpp.tab.c" +#line 8706 "asmparse.cpp.tab.c" break; -case 458: +case 461: if (!yytrial) -#line 1222 "asmparse.y" +#line 1229 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8675 "asmparse.cpp.tab.c" +#line 8714 "asmparse.cpp.tab.c" break; -case 459: +case 462: if (!yytrial) -#line 1226 "asmparse.y" +#line 1233 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8683 "asmparse.cpp.tab.c" +#line 8722 "asmparse.cpp.tab.c" break; -case 460: +case 463: if (!yytrial) -#line 1230 "asmparse.y" +#line 1237 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8691 "asmparse.cpp.tab.c" +#line 8730 "asmparse.cpp.tab.c" break; -case 461: +case 464: if (!yytrial) -#line 1234 "asmparse.y" +#line 1241 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8699 "asmparse.cpp.tab.c" +#line 8738 "asmparse.cpp.tab.c" break; -case 462: +case 465: if (!yytrial) -#line 1238 "asmparse.y" +#line 1245 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8707 "asmparse.cpp.tab.c" +#line 8746 "asmparse.cpp.tab.c" break; -case 463: +case 466: if (!yytrial) -#line 1242 "asmparse.y" +#line 1249 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8715 "asmparse.cpp.tab.c" +#line 8754 "asmparse.cpp.tab.c" break; -case 464: +case 467: if (!yytrial) -#line 1246 "asmparse.y" +#line 1253 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8723 "asmparse.cpp.tab.c" +#line 8762 "asmparse.cpp.tab.c" break; -case 465: +case 468: if (!yytrial) -#line 1250 "asmparse.y" +#line 1257 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8731 "asmparse.cpp.tab.c" +#line 8770 "asmparse.cpp.tab.c" break; -case 466: +case 469: if (!yytrial) -#line 1254 "asmparse.y" +#line 1261 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8739 "asmparse.cpp.tab.c" -break; -case 467: - if (!yytrial) -#line 1260 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8745 "asmparse.cpp.tab.c" -break; -case 468: - if (!yytrial) -#line 1261 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 8752 "asmparse.cpp.tab.c" -break; -case 469: - if (!yytrial) -#line 1263 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 8759 "asmparse.cpp.tab.c" +#line 8778 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8765 "asmparse.cpp.tab.c" +#line 8784 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 8772 "asmparse.cpp.tab.c" + float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } +#line 8791 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8779 "asmparse.cpp.tab.c" + yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 8798 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8785 "asmparse.cpp.tab.c" +#line 8804 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8792 "asmparse.cpp.tab.c" + yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } +#line 8811 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) -#line 1279 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8798 "asmparse.cpp.tab.c" +#line 1277 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } +#line 8818 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) -#line 1280 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 8804 "asmparse.cpp.tab.c" +#line 1281 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8824 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) -#line 1283 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8810 "asmparse.cpp.tab.c" +#line 1282 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } +#line 8831 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) -#line 1284 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 8816 "asmparse.cpp.tab.c" +#line 1286 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8837 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8822 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} +#line 8843 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) -#line 1288 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 8828 "asmparse.cpp.tab.c" +#line 1290 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8849 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8834 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} +#line 8855 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) -#line 1292 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 8841 "asmparse.cpp.tab.c" +#line 1294 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8861 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) -#line 1296 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8847 "asmparse.cpp.tab.c" +#line 1295 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } +#line 8867 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) -#line 1297 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 8853 "asmparse.cpp.tab.c" +#line 1298 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8873 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) -#line 1298 "asmparse.y" +#line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; - AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 8860 "asmparse.cpp.tab.c" + yyval.binstr->appendInt8(yyvsp[0].int32);} +#line 8880 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) -#line 1302 "asmparse.y" +#line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8866 "asmparse.cpp.tab.c" +#line 8886 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) -#line 1303 "asmparse.y" +#line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 8872 "asmparse.cpp.tab.c" +#line 8892 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) -#line 1304 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; +#line 1305 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 8879 "asmparse.cpp.tab.c" +#line 8899 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) -#line 1306 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 8886 "asmparse.cpp.tab.c" +#line 1309 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8905 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8892 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 8911 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 8898 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; + AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} +#line 8918 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) -#line 1315 "asmparse.y" +#line 1313 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} +#line 8925 "asmparse.cpp.tab.c" +break; +case 493: + if (!yytrial) +#line 1317 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 8931 "asmparse.cpp.tab.c" +break; +case 494: + if (!yytrial) +#line 1318 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 8937 "asmparse.cpp.tab.c" +break; +case 495: + if (!yytrial) +#line 1322 "asmparse.y" { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 8907 "asmparse.cpp.tab.c" +#line 8946 "asmparse.cpp.tab.c" break; -case 493: +case 496: if (!yytrial) -#line 1321 "asmparse.y" +#line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8913 "asmparse.cpp.tab.c" +#line 8952 "asmparse.cpp.tab.c" break; -case 494: +case 497: if (!yytrial) -#line 1324 "asmparse.y" +#line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8919 "asmparse.cpp.tab.c" +#line 8958 "asmparse.cpp.tab.c" break; -case 495: +case 498: if (!yytrial) -#line 1327 "asmparse.y" +#line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8925 "asmparse.cpp.tab.c" +#line 8964 "asmparse.cpp.tab.c" break; -case 496: +case 499: if (!yytrial) -#line 1330 "asmparse.y" +#line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8931 "asmparse.cpp.tab.c" +#line 8970 "asmparse.cpp.tab.c" break; -case 497: +case 500: if (!yytrial) -#line 1333 "asmparse.y" +#line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8937 "asmparse.cpp.tab.c" +#line 8976 "asmparse.cpp.tab.c" break; -case 498: +case 501: if (!yytrial) -#line 1336 "asmparse.y" +#line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8943 "asmparse.cpp.tab.c" +#line 8982 "asmparse.cpp.tab.c" break; -case 499: +case 502: if (!yytrial) -#line 1339 "asmparse.y" +#line 1346 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); if((!PASM->OnErrGo)&& ((yyvsp[0].opcode == CEE_NEWOBJ)|| (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 8954 "asmparse.cpp.tab.c" +#line 8993 "asmparse.cpp.tab.c" break; -case 500: +case 503: if (!yytrial) -#line 1347 "asmparse.y" +#line 1354 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8960 "asmparse.cpp.tab.c" +#line 8999 "asmparse.cpp.tab.c" break; -case 501: +case 504: if (!yytrial) -#line 1350 "asmparse.y" +#line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8966 "asmparse.cpp.tab.c" +#line 9005 "asmparse.cpp.tab.c" break; -case 502: +case 505: if (!yytrial) -#line 1353 "asmparse.y" +#line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8972 "asmparse.cpp.tab.c" +#line 9011 "asmparse.cpp.tab.c" break; -case 503: +case 506: if (!yytrial) -#line 1356 "asmparse.y" +#line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8978 "asmparse.cpp.tab.c" +#line 9017 "asmparse.cpp.tab.c" break; -case 504: +case 507: if (!yytrial) -#line 1359 "asmparse.y" +#line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 8984 "asmparse.cpp.tab.c" +#line 9023 "asmparse.cpp.tab.c" break; -case 505: +case 508: if (!yytrial) -#line 1362 "asmparse.y" +#line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8990 "asmparse.cpp.tab.c" +#line 9029 "asmparse.cpp.tab.c" break; -case 506: +case 509: if (!yytrial) -#line 1365 "asmparse.y" +#line 1372 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 8996 "asmparse.cpp.tab.c" +#line 9035 "asmparse.cpp.tab.c" break; -case 507: +case 510: if (!yytrial) -#line 1369 "asmparse.y" +#line 1376 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9002 "asmparse.cpp.tab.c" +#line 9041 "asmparse.cpp.tab.c" break; -case 508: +case 511: if (!yytrial) -#line 1370 "asmparse.y" +#line 1377 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9008 "asmparse.cpp.tab.c" +#line 9047 "asmparse.cpp.tab.c" break; -case 509: +case 512: if (!yytrial) -#line 1371 "asmparse.y" +#line 1378 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9014 "asmparse.cpp.tab.c" +#line 9053 "asmparse.cpp.tab.c" break; -case 510: +case 513: if (!yytrial) -#line 1372 "asmparse.y" +#line 1379 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9020 "asmparse.cpp.tab.c" +#line 9059 "asmparse.cpp.tab.c" break; -case 511: +case 514: if (!yytrial) -#line 1373 "asmparse.y" +#line 1380 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9026 "asmparse.cpp.tab.c" +#line 9065 "asmparse.cpp.tab.c" break; -case 512: +case 515: if (!yytrial) -#line 1374 "asmparse.y" +#line 1381 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9032 "asmparse.cpp.tab.c" +#line 9071 "asmparse.cpp.tab.c" break; -case 513: +case 516: if (!yytrial) -#line 1375 "asmparse.y" +#line 1382 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9038 "asmparse.cpp.tab.c" +#line 9077 "asmparse.cpp.tab.c" break; -case 514: +case 517: if (!yytrial) -#line 1376 "asmparse.y" +#line 1383 "asmparse.y" { unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -9048,34 +9087,34 @@ case 514: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9052 "asmparse.cpp.tab.c" +#line 9091 "asmparse.cpp.tab.c" break; -case 515: +case 518: if (!yytrial) -#line 1385 "asmparse.y" +#line 1392 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9058 "asmparse.cpp.tab.c" +#line 9097 "asmparse.cpp.tab.c" break; -case 516: +case 519: if (!yytrial) -#line 1386 "asmparse.y" +#line 1393 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9064 "asmparse.cpp.tab.c" +#line 9103 "asmparse.cpp.tab.c" break; -case 517: +case 520: if (!yytrial) -#line 1388 "asmparse.y" +#line 1395 "asmparse.y" { PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9075 "asmparse.cpp.tab.c" +#line 9114 "asmparse.cpp.tab.c" break; -case 518: +case 521: if (!yytrial) -#line 1395 "asmparse.y" +#line 1402 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); @@ -9083,11 +9122,11 @@ case 518: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9087 "asmparse.cpp.tab.c" +#line 9126 "asmparse.cpp.tab.c" break; -case 519: +case 522: if (!yytrial) -#line 1403 "asmparse.y" +#line 1410 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); @@ -9095,1067 +9134,1067 @@ case 519: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9099 "asmparse.cpp.tab.c" +#line 9138 "asmparse.cpp.tab.c" break; -case 520: +case 523: if (!yytrial) -#line 1410 "asmparse.y" +#line 1417 "asmparse.y" { mdToken mr = yyvsp[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9110 "asmparse.cpp.tab.c" +#line 9149 "asmparse.cpp.tab.c" break; -case 521: +case 524: if (!yytrial) -#line 1416 "asmparse.y" +#line 1423 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9121 "asmparse.cpp.tab.c" +#line 9160 "asmparse.cpp.tab.c" break; -case 522: +case 525: if (!yytrial) -#line 1422 "asmparse.y" +#line 1429 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9132 "asmparse.cpp.tab.c" +#line 9171 "asmparse.cpp.tab.c" break; -case 523: +case 526: if (!yytrial) -#line 1428 "asmparse.y" +#line 1435 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9141 "asmparse.cpp.tab.c" +#line 9180 "asmparse.cpp.tab.c" break; -case 524: +case 527: if (!yytrial) -#line 1432 "asmparse.y" +#line 1439 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9147 "asmparse.cpp.tab.c" +#line 9186 "asmparse.cpp.tab.c" break; -case 525: +case 528: if (!yytrial) -#line 1434 "asmparse.y" +#line 1441 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9153 "asmparse.cpp.tab.c" +#line 9192 "asmparse.cpp.tab.c" break; -case 526: +case 529: if (!yytrial) -#line 1436 "asmparse.y" +#line 1443 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9159 "asmparse.cpp.tab.c" +#line 9198 "asmparse.cpp.tab.c" break; -case 527: +case 530: if (!yytrial) -#line 1438 "asmparse.y" +#line 1445 "asmparse.y" { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9167 "asmparse.cpp.tab.c" +#line 9206 "asmparse.cpp.tab.c" break; -case 528: +case 531: if (!yytrial) -#line 1442 "asmparse.y" +#line 1449 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9177 "asmparse.cpp.tab.c" +#line 9216 "asmparse.cpp.tab.c" break; -case 529: +case 532: if (!yytrial) -#line 1447 "asmparse.y" +#line 1454 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9183 "asmparse.cpp.tab.c" +#line 9222 "asmparse.cpp.tab.c" break; -case 530: +case 533: if (!yytrial) -#line 1450 "asmparse.y" +#line 1457 "asmparse.y" { yyval.labels = 0; } -#line 9189 "asmparse.cpp.tab.c" +#line 9228 "asmparse.cpp.tab.c" break; -case 531: +case 534: if (!yytrial) -#line 1451 "asmparse.y" +#line 1458 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9195 "asmparse.cpp.tab.c" +#line 9234 "asmparse.cpp.tab.c" break; -case 532: +case 535: if (!yytrial) -#line 1452 "asmparse.y" +#line 1459 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9201 "asmparse.cpp.tab.c" +#line 9240 "asmparse.cpp.tab.c" break; -case 533: +case 536: if (!yytrial) -#line 1453 "asmparse.y" +#line 1460 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9207 "asmparse.cpp.tab.c" +#line 9246 "asmparse.cpp.tab.c" break; -case 534: +case 537: if (!yytrial) -#line 1454 "asmparse.y" +#line 1461 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9213 "asmparse.cpp.tab.c" +#line 9252 "asmparse.cpp.tab.c" break; -case 535: +case 538: if (!yytrial) -#line 1458 "asmparse.y" +#line 1465 "asmparse.y" { yyval.binstr = NULL; } -#line 9219 "asmparse.cpp.tab.c" +#line 9258 "asmparse.cpp.tab.c" break; -case 536: +case 539: if (!yytrial) -#line 1459 "asmparse.y" +#line 1466 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9225 "asmparse.cpp.tab.c" +#line 9264 "asmparse.cpp.tab.c" break; -case 537: +case 540: if (!yytrial) -#line 1462 "asmparse.y" +#line 1469 "asmparse.y" { yyval.binstr = NULL; } -#line 9231 "asmparse.cpp.tab.c" +#line 9270 "asmparse.cpp.tab.c" break; -case 538: +case 541: if (!yytrial) -#line 1463 "asmparse.y" +#line 1470 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9237 "asmparse.cpp.tab.c" +#line 9276 "asmparse.cpp.tab.c" break; -case 539: +case 542: if (!yytrial) -#line 1466 "asmparse.y" +#line 1473 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9243 "asmparse.cpp.tab.c" +#line 9282 "asmparse.cpp.tab.c" break; -case 540: +case 543: if (!yytrial) -#line 1467 "asmparse.y" +#line 1474 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9249 "asmparse.cpp.tab.c" +#line 9288 "asmparse.cpp.tab.c" break; -case 541: +case 544: if (!yytrial) -#line 1471 "asmparse.y" +#line 1478 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9255 "asmparse.cpp.tab.c" +#line 9294 "asmparse.cpp.tab.c" break; -case 542: +case 545: if (!yytrial) -#line 1472 "asmparse.y" +#line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9261 "asmparse.cpp.tab.c" +#line 9300 "asmparse.cpp.tab.c" break; -case 543: +case 546: if (!yytrial) -#line 1475 "asmparse.y" +#line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9267 "asmparse.cpp.tab.c" +#line 9306 "asmparse.cpp.tab.c" break; -case 544: +case 547: if (!yytrial) -#line 1476 "asmparse.y" +#line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9273 "asmparse.cpp.tab.c" +#line 9312 "asmparse.cpp.tab.c" break; -case 545: +case 548: if (!yytrial) -#line 1479 "asmparse.y" +#line 1486 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9279 "asmparse.cpp.tab.c" +#line 9318 "asmparse.cpp.tab.c" break; -case 546: +case 549: if (!yytrial) -#line 1480 "asmparse.y" +#line 1487 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9285 "asmparse.cpp.tab.c" +#line 9324 "asmparse.cpp.tab.c" break; -case 547: +case 550: if (!yytrial) -#line 1481 "asmparse.y" +#line 1488 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9291 "asmparse.cpp.tab.c" +#line 9330 "asmparse.cpp.tab.c" break; -case 548: +case 551: if (!yytrial) -#line 1485 "asmparse.y" +#line 1492 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9297 "asmparse.cpp.tab.c" +#line 9336 "asmparse.cpp.tab.c" break; -case 549: +case 552: if (!yytrial) -#line 1486 "asmparse.y" +#line 1493 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9303 "asmparse.cpp.tab.c" +#line 9342 "asmparse.cpp.tab.c" break; -case 550: +case 553: if (!yytrial) -#line 1487 "asmparse.y" +#line 1494 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9309 "asmparse.cpp.tab.c" +#line 9348 "asmparse.cpp.tab.c" break; -case 551: +case 554: if (!yytrial) -#line 1488 "asmparse.y" +#line 1495 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9315 "asmparse.cpp.tab.c" +#line 9354 "asmparse.cpp.tab.c" break; -case 552: +case 555: if (!yytrial) -#line 1489 "asmparse.y" +#line 1496 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9321 "asmparse.cpp.tab.c" +#line 9360 "asmparse.cpp.tab.c" break; -case 553: +case 556: if (!yytrial) -#line 1490 "asmparse.y" +#line 1497 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9327 "asmparse.cpp.tab.c" +#line 9366 "asmparse.cpp.tab.c" break; -case 554: +case 557: if (!yytrial) -#line 1491 "asmparse.y" +#line 1498 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9333 "asmparse.cpp.tab.c" +#line 9372 "asmparse.cpp.tab.c" break; -case 555: +case 558: if (!yytrial) -#line 1492 "asmparse.y" +#line 1499 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9341 "asmparse.cpp.tab.c" +#line 9380 "asmparse.cpp.tab.c" break; -case 556: +case 559: if (!yytrial) -#line 1495 "asmparse.y" +#line 1502 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9352 "asmparse.cpp.tab.c" +#line 9391 "asmparse.cpp.tab.c" break; -case 557: +case 560: if (!yytrial) -#line 1501 "asmparse.y" +#line 1508 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9362 "asmparse.cpp.tab.c" +#line 9401 "asmparse.cpp.tab.c" break; -case 558: +case 561: if (!yytrial) -#line 1508 "asmparse.y" +#line 1515 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9368 "asmparse.cpp.tab.c" +#line 9407 "asmparse.cpp.tab.c" break; -case 559: +case 562: if (!yytrial) -#line 1509 "asmparse.y" +#line 1516 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9374 "asmparse.cpp.tab.c" +#line 9413 "asmparse.cpp.tab.c" break; -case 560: +case 563: if (!yytrial) -#line 1512 "asmparse.y" +#line 1519 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9380 "asmparse.cpp.tab.c" +#line 9419 "asmparse.cpp.tab.c" break; -case 561: +case 564: if (!yytrial) -#line 1513 "asmparse.y" +#line 1520 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9386 "asmparse.cpp.tab.c" +#line 9425 "asmparse.cpp.tab.c" break; -case 562: +case 565: if (!yytrial) -#line 1514 "asmparse.y" +#line 1521 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9392 "asmparse.cpp.tab.c" +#line 9431 "asmparse.cpp.tab.c" break; -case 563: +case 566: if (!yytrial) -#line 1515 "asmparse.y" +#line 1522 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9398 "asmparse.cpp.tab.c" +#line 9437 "asmparse.cpp.tab.c" break; -case 564: +case 567: if (!yytrial) -#line 1519 "asmparse.y" +#line 1526 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9404 "asmparse.cpp.tab.c" +#line 9443 "asmparse.cpp.tab.c" break; -case 565: +case 568: if (!yytrial) -#line 1521 "asmparse.y" +#line 1528 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9415 "asmparse.cpp.tab.c" +#line 9454 "asmparse.cpp.tab.c" break; -case 566: +case 569: if (!yytrial) -#line 1528 "asmparse.y" +#line 1535 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9425 "asmparse.cpp.tab.c" +#line 9464 "asmparse.cpp.tab.c" break; -case 567: +case 570: if (!yytrial) -#line 1533 "asmparse.y" +#line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9432 "asmparse.cpp.tab.c" +#line 9471 "asmparse.cpp.tab.c" break; -case 568: +case 571: if (!yytrial) -#line 1536 "asmparse.y" +#line 1543 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9439 "asmparse.cpp.tab.c" +#line 9478 "asmparse.cpp.tab.c" break; -case 569: +case 572: if (!yytrial) -#line 1538 "asmparse.y" +#line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9446 "asmparse.cpp.tab.c" +#line 9485 "asmparse.cpp.tab.c" break; -case 570: +case 573: if (!yytrial) -#line 1540 "asmparse.y" +#line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9452 "asmparse.cpp.tab.c" +#line 9491 "asmparse.cpp.tab.c" break; -case 571: +case 574: if (!yytrial) -#line 1541 "asmparse.y" +#line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9459 "asmparse.cpp.tab.c" +#line 9498 "asmparse.cpp.tab.c" break; -case 572: +case 575: if (!yytrial) -#line 1543 "asmparse.y" +#line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9466 "asmparse.cpp.tab.c" +#line 9505 "asmparse.cpp.tab.c" break; -case 573: +case 576: if (!yytrial) -#line 1545 "asmparse.y" +#line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9472 "asmparse.cpp.tab.c" +#line 9511 "asmparse.cpp.tab.c" break; -case 574: +case 577: if (!yytrial) -#line 1546 "asmparse.y" +#line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9478 "asmparse.cpp.tab.c" +#line 9517 "asmparse.cpp.tab.c" break; -case 575: +case 578: if (!yytrial) -#line 1547 "asmparse.y" +#line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9484 "asmparse.cpp.tab.c" +#line 9523 "asmparse.cpp.tab.c" break; -case 576: +case 579: if (!yytrial) -#line 1548 "asmparse.y" +#line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9490 "asmparse.cpp.tab.c" +#line 9529 "asmparse.cpp.tab.c" break; -case 577: +case 580: if (!yytrial) -#line 1549 "asmparse.y" +#line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9496 "asmparse.cpp.tab.c" +#line 9535 "asmparse.cpp.tab.c" break; -case 578: +case 581: if (!yytrial) -#line 1550 "asmparse.y" +#line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9502 "asmparse.cpp.tab.c" +#line 9541 "asmparse.cpp.tab.c" break; -case 579: +case 582: if (!yytrial) -#line 1551 "asmparse.y" +#line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9508 "asmparse.cpp.tab.c" +#line 9547 "asmparse.cpp.tab.c" break; -case 580: +case 583: if (!yytrial) -#line 1552 "asmparse.y" +#line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9514 "asmparse.cpp.tab.c" +#line 9553 "asmparse.cpp.tab.c" break; -case 581: +case 584: if (!yytrial) -#line 1553 "asmparse.y" +#line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9520 "asmparse.cpp.tab.c" +#line 9559 "asmparse.cpp.tab.c" break; -case 582: +case 585: if (!yytrial) -#line 1554 "asmparse.y" +#line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9526 "asmparse.cpp.tab.c" +#line 9565 "asmparse.cpp.tab.c" break; -case 583: +case 586: if (!yytrial) -#line 1555 "asmparse.y" +#line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9532 "asmparse.cpp.tab.c" +#line 9571 "asmparse.cpp.tab.c" break; -case 584: +case 587: if (!yytrial) -#line 1556 "asmparse.y" +#line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9538 "asmparse.cpp.tab.c" +#line 9577 "asmparse.cpp.tab.c" break; -case 585: +case 588: if (!yytrial) -#line 1557 "asmparse.y" +#line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9544 "asmparse.cpp.tab.c" +#line 9583 "asmparse.cpp.tab.c" break; -case 586: +case 589: if (!yytrial) -#line 1558 "asmparse.y" +#line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9550 "asmparse.cpp.tab.c" +#line 9589 "asmparse.cpp.tab.c" break; -case 587: +case 590: if (!yytrial) -#line 1559 "asmparse.y" +#line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9556 "asmparse.cpp.tab.c" +#line 9595 "asmparse.cpp.tab.c" break; -case 588: +case 591: if (!yytrial) -#line 1560 "asmparse.y" +#line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9562 "asmparse.cpp.tab.c" +#line 9601 "asmparse.cpp.tab.c" break; -case 589: +case 592: if (!yytrial) -#line 1561 "asmparse.y" +#line 1568 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 9569 "asmparse.cpp.tab.c" +#line 9608 "asmparse.cpp.tab.c" break; -case 590: +case 593: if (!yytrial) -#line 1563 "asmparse.y" +#line 1570 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9576 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp.tab.c" break; -case 591: +case 594: if (!yytrial) -#line 1565 "asmparse.y" +#line 1572 "asmparse.y" { yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 9586 "asmparse.cpp.tab.c" +#line 9625 "asmparse.cpp.tab.c" break; -case 592: +case 595: if (!yytrial) -#line 1570 "asmparse.y" +#line 1577 "asmparse.y" { yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9596 "asmparse.cpp.tab.c" +#line 9635 "asmparse.cpp.tab.c" break; -case 593: +case 596: if (!yytrial) -#line 1575 "asmparse.y" +#line 1582 "asmparse.y" { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9604 "asmparse.cpp.tab.c" +#line 9643 "asmparse.cpp.tab.c" break; -case 594: +case 597: if (!yytrial) -#line 1578 "asmparse.y" +#line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9611 "asmparse.cpp.tab.c" +#line 9650 "asmparse.cpp.tab.c" break; -case 595: +case 598: if (!yytrial) -#line 1580 "asmparse.y" +#line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9618 "asmparse.cpp.tab.c" +#line 9657 "asmparse.cpp.tab.c" break; -case 596: +case 599: if (!yytrial) -#line 1582 "asmparse.y" +#line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9624 "asmparse.cpp.tab.c" +#line 9663 "asmparse.cpp.tab.c" break; -case 597: +case 600: if (!yytrial) -#line 1583 "asmparse.y" +#line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9630 "asmparse.cpp.tab.c" +#line 9669 "asmparse.cpp.tab.c" break; -case 598: +case 601: if (!yytrial) -#line 1584 "asmparse.y" +#line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9636 "asmparse.cpp.tab.c" +#line 9675 "asmparse.cpp.tab.c" break; -case 599: +case 602: if (!yytrial) -#line 1585 "asmparse.y" +#line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9642 "asmparse.cpp.tab.c" +#line 9681 "asmparse.cpp.tab.c" break; -case 600: +case 603: if (!yytrial) -#line 1586 "asmparse.y" +#line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9649 "asmparse.cpp.tab.c" +#line 9688 "asmparse.cpp.tab.c" break; -case 601: +case 604: if (!yytrial) -#line 1588 "asmparse.y" +#line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9656 "asmparse.cpp.tab.c" +#line 9695 "asmparse.cpp.tab.c" break; -case 602: +case 605: if (!yytrial) -#line 1590 "asmparse.y" +#line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9663 "asmparse.cpp.tab.c" +#line 9702 "asmparse.cpp.tab.c" break; -case 603: +case 606: if (!yytrial) -#line 1592 "asmparse.y" +#line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9669 "asmparse.cpp.tab.c" +#line 9708 "asmparse.cpp.tab.c" break; -case 604: +case 607: if (!yytrial) -#line 1593 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9676 "asmparse.cpp.tab.c" +#line 9715 "asmparse.cpp.tab.c" break; -case 605: +case 608: if (!yytrial) -#line 1595 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 9684 "asmparse.cpp.tab.c" +#line 9723 "asmparse.cpp.tab.c" break; -case 606: +case 609: if (!yytrial) -#line 1598 "asmparse.y" +#line 1605 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9692 "asmparse.cpp.tab.c" +#line 9731 "asmparse.cpp.tab.c" break; -case 607: +case 610: if (!yytrial) -#line 1602 "asmparse.y" +#line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9698 "asmparse.cpp.tab.c" +#line 9737 "asmparse.cpp.tab.c" break; -case 608: +case 611: if (!yytrial) -#line 1603 "asmparse.y" +#line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9704 "asmparse.cpp.tab.c" +#line 9743 "asmparse.cpp.tab.c" break; -case 609: +case 612: if (!yytrial) -#line 1604 "asmparse.y" +#line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9710 "asmparse.cpp.tab.c" +#line 9749 "asmparse.cpp.tab.c" break; -case 610: +case 613: if (!yytrial) -#line 1605 "asmparse.y" +#line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 9717 "asmparse.cpp.tab.c" +#line 9756 "asmparse.cpp.tab.c" break; -case 611: +case 614: if (!yytrial) -#line 1607 "asmparse.y" +#line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 9723 "asmparse.cpp.tab.c" +#line 9762 "asmparse.cpp.tab.c" break; -case 612: +case 615: if (!yytrial) -#line 1608 "asmparse.y" +#line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 9729 "asmparse.cpp.tab.c" +#line 9768 "asmparse.cpp.tab.c" break; -case 613: +case 616: if (!yytrial) -#line 1609 "asmparse.y" +#line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 9735 "asmparse.cpp.tab.c" +#line 9774 "asmparse.cpp.tab.c" break; -case 614: +case 617: if (!yytrial) -#line 1610 "asmparse.y" +#line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 9741 "asmparse.cpp.tab.c" +#line 9780 "asmparse.cpp.tab.c" break; -case 615: +case 618: if (!yytrial) -#line 1611 "asmparse.y" +#line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 9747 "asmparse.cpp.tab.c" +#line 9786 "asmparse.cpp.tab.c" break; -case 616: +case 619: if (!yytrial) -#line 1612 "asmparse.y" +#line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 9753 "asmparse.cpp.tab.c" +#line 9792 "asmparse.cpp.tab.c" break; -case 617: +case 620: if (!yytrial) -#line 1613 "asmparse.y" +#line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 9759 "asmparse.cpp.tab.c" +#line 9798 "asmparse.cpp.tab.c" break; -case 618: +case 621: if (!yytrial) -#line 1614 "asmparse.y" +#line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 9765 "asmparse.cpp.tab.c" +#line 9804 "asmparse.cpp.tab.c" break; -case 619: +case 622: if (!yytrial) -#line 1617 "asmparse.y" +#line 1624 "asmparse.y" { yyval.int32 = -1; } -#line 9771 "asmparse.cpp.tab.c" +#line 9810 "asmparse.cpp.tab.c" break; -case 620: +case 623: if (!yytrial) -#line 1618 "asmparse.y" +#line 1625 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 9777 "asmparse.cpp.tab.c" +#line 9816 "asmparse.cpp.tab.c" break; -case 621: +case 624: if (!yytrial) -#line 1621 "asmparse.y" +#line 1628 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 9783 "asmparse.cpp.tab.c" +#line 9822 "asmparse.cpp.tab.c" break; -case 622: +case 625: if (!yytrial) -#line 1622 "asmparse.y" +#line 1629 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 9789 "asmparse.cpp.tab.c" +#line 9828 "asmparse.cpp.tab.c" break; -case 623: +case 626: if (!yytrial) -#line 1623 "asmparse.y" +#line 1630 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 9795 "asmparse.cpp.tab.c" +#line 9834 "asmparse.cpp.tab.c" break; -case 624: +case 627: if (!yytrial) -#line 1624 "asmparse.y" +#line 1631 "asmparse.y" { yyval.int32 = VT_CY; } -#line 9801 "asmparse.cpp.tab.c" +#line 9840 "asmparse.cpp.tab.c" break; -case 625: +case 628: if (!yytrial) -#line 1625 "asmparse.y" +#line 1632 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 9807 "asmparse.cpp.tab.c" +#line 9846 "asmparse.cpp.tab.c" break; -case 626: +case 629: if (!yytrial) -#line 1626 "asmparse.y" +#line 1633 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 9813 "asmparse.cpp.tab.c" +#line 9852 "asmparse.cpp.tab.c" break; -case 627: +case 630: if (!yytrial) -#line 1627 "asmparse.y" +#line 1634 "asmparse.y" { yyval.int32 = VT_I1; } -#line 9819 "asmparse.cpp.tab.c" +#line 9858 "asmparse.cpp.tab.c" break; -case 628: +case 631: if (!yytrial) -#line 1628 "asmparse.y" +#line 1635 "asmparse.y" { yyval.int32 = VT_I2; } -#line 9825 "asmparse.cpp.tab.c" +#line 9864 "asmparse.cpp.tab.c" break; -case 629: +case 632: if (!yytrial) -#line 1629 "asmparse.y" +#line 1636 "asmparse.y" { yyval.int32 = VT_I4; } -#line 9831 "asmparse.cpp.tab.c" +#line 9870 "asmparse.cpp.tab.c" break; -case 630: +case 633: if (!yytrial) -#line 1630 "asmparse.y" +#line 1637 "asmparse.y" { yyval.int32 = VT_I8; } -#line 9837 "asmparse.cpp.tab.c" +#line 9876 "asmparse.cpp.tab.c" break; -case 631: +case 634: if (!yytrial) -#line 1631 "asmparse.y" +#line 1638 "asmparse.y" { yyval.int32 = VT_R4; } -#line 9843 "asmparse.cpp.tab.c" +#line 9882 "asmparse.cpp.tab.c" break; -case 632: +case 635: if (!yytrial) -#line 1632 "asmparse.y" +#line 1639 "asmparse.y" { yyval.int32 = VT_R8; } -#line 9849 "asmparse.cpp.tab.c" +#line 9888 "asmparse.cpp.tab.c" break; -case 633: +case 636: if (!yytrial) -#line 1633 "asmparse.y" +#line 1640 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 9855 "asmparse.cpp.tab.c" +#line 9894 "asmparse.cpp.tab.c" break; -case 634: +case 637: if (!yytrial) -#line 1634 "asmparse.y" +#line 1641 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 9861 "asmparse.cpp.tab.c" +#line 9900 "asmparse.cpp.tab.c" break; -case 635: +case 638: if (!yytrial) -#line 1635 "asmparse.y" +#line 1642 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 9867 "asmparse.cpp.tab.c" +#line 9906 "asmparse.cpp.tab.c" break; -case 636: +case 639: if (!yytrial) -#line 1636 "asmparse.y" +#line 1643 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 9873 "asmparse.cpp.tab.c" +#line 9912 "asmparse.cpp.tab.c" break; -case 637: +case 640: if (!yytrial) -#line 1637 "asmparse.y" +#line 1644 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 9879 "asmparse.cpp.tab.c" +#line 9918 "asmparse.cpp.tab.c" break; -case 638: +case 641: if (!yytrial) -#line 1638 "asmparse.y" +#line 1645 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 9885 "asmparse.cpp.tab.c" +#line 9924 "asmparse.cpp.tab.c" break; -case 639: +case 642: if (!yytrial) -#line 1639 "asmparse.y" +#line 1646 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 9891 "asmparse.cpp.tab.c" +#line 9930 "asmparse.cpp.tab.c" break; -case 640: +case 643: if (!yytrial) -#line 1640 "asmparse.y" +#line 1647 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 9897 "asmparse.cpp.tab.c" +#line 9936 "asmparse.cpp.tab.c" break; -case 641: +case 644: if (!yytrial) -#line 1641 "asmparse.y" +#line 1648 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 9903 "asmparse.cpp.tab.c" +#line 9942 "asmparse.cpp.tab.c" break; -case 642: +case 645: if (!yytrial) -#line 1642 "asmparse.y" +#line 1649 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 9909 "asmparse.cpp.tab.c" +#line 9948 "asmparse.cpp.tab.c" break; -case 643: +case 646: if (!yytrial) -#line 1643 "asmparse.y" +#line 1650 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 9915 "asmparse.cpp.tab.c" +#line 9954 "asmparse.cpp.tab.c" break; -case 644: +case 647: if (!yytrial) -#line 1644 "asmparse.y" +#line 1651 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 9921 "asmparse.cpp.tab.c" +#line 9960 "asmparse.cpp.tab.c" break; -case 645: +case 648: if (!yytrial) -#line 1645 "asmparse.y" +#line 1652 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 9927 "asmparse.cpp.tab.c" +#line 9966 "asmparse.cpp.tab.c" break; -case 646: +case 649: if (!yytrial) -#line 1646 "asmparse.y" +#line 1653 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 9933 "asmparse.cpp.tab.c" +#line 9972 "asmparse.cpp.tab.c" break; -case 647: +case 650: if (!yytrial) -#line 1647 "asmparse.y" +#line 1654 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 9939 "asmparse.cpp.tab.c" +#line 9978 "asmparse.cpp.tab.c" break; -case 648: +case 651: if (!yytrial) -#line 1648 "asmparse.y" +#line 1655 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 9945 "asmparse.cpp.tab.c" +#line 9984 "asmparse.cpp.tab.c" break; -case 649: +case 652: if (!yytrial) -#line 1649 "asmparse.y" +#line 1656 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 9951 "asmparse.cpp.tab.c" +#line 9990 "asmparse.cpp.tab.c" break; -case 650: +case 653: if (!yytrial) -#line 1650 "asmparse.y" +#line 1657 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 9957 "asmparse.cpp.tab.c" +#line 9996 "asmparse.cpp.tab.c" break; -case 651: +case 654: if (!yytrial) -#line 1651 "asmparse.y" +#line 1658 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 9963 "asmparse.cpp.tab.c" +#line 10002 "asmparse.cpp.tab.c" break; -case 652: +case 655: if (!yytrial) -#line 1652 "asmparse.y" +#line 1659 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 9969 "asmparse.cpp.tab.c" +#line 10008 "asmparse.cpp.tab.c" break; -case 653: +case 656: if (!yytrial) -#line 1653 "asmparse.y" +#line 1660 "asmparse.y" { yyval.int32 = VT_INT; } -#line 9975 "asmparse.cpp.tab.c" +#line 10014 "asmparse.cpp.tab.c" break; -case 654: +case 657: if (!yytrial) -#line 1654 "asmparse.y" +#line 1661 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 9981 "asmparse.cpp.tab.c" +#line 10020 "asmparse.cpp.tab.c" break; -case 655: +case 658: if (!yytrial) -#line 1655 "asmparse.y" +#line 1662 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 9987 "asmparse.cpp.tab.c" +#line 10026 "asmparse.cpp.tab.c" break; -case 656: +case 659: if (!yytrial) -#line 1656 "asmparse.y" +#line 1663 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 9993 "asmparse.cpp.tab.c" +#line 10032 "asmparse.cpp.tab.c" break; -case 657: +case 660: if (!yytrial) -#line 1657 "asmparse.y" +#line 1664 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 9999 "asmparse.cpp.tab.c" +#line 10038 "asmparse.cpp.tab.c" break; -case 658: +case 661: if (!yytrial) -#line 1658 "asmparse.y" +#line 1665 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10005 "asmparse.cpp.tab.c" +#line 10044 "asmparse.cpp.tab.c" break; -case 659: +case 662: if (!yytrial) -#line 1659 "asmparse.y" +#line 1666 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10011 "asmparse.cpp.tab.c" +#line 10050 "asmparse.cpp.tab.c" break; -case 660: +case 663: if (!yytrial) -#line 1660 "asmparse.y" +#line 1667 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10017 "asmparse.cpp.tab.c" +#line 10056 "asmparse.cpp.tab.c" break; -case 661: +case 664: if (!yytrial) -#line 1661 "asmparse.y" +#line 1668 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10023 "asmparse.cpp.tab.c" +#line 10062 "asmparse.cpp.tab.c" break; -case 662: +case 665: if (!yytrial) -#line 1662 "asmparse.y" +#line 1669 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10029 "asmparse.cpp.tab.c" +#line 10068 "asmparse.cpp.tab.c" break; -case 663: +case 666: if (!yytrial) -#line 1663 "asmparse.y" +#line 1670 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10035 "asmparse.cpp.tab.c" +#line 10074 "asmparse.cpp.tab.c" break; -case 664: +case 667: if (!yytrial) -#line 1664 "asmparse.y" +#line 1671 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10041 "asmparse.cpp.tab.c" +#line 10080 "asmparse.cpp.tab.c" break; -case 665: +case 668: if (!yytrial) -#line 1665 "asmparse.y" +#line 1672 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10047 "asmparse.cpp.tab.c" +#line 10086 "asmparse.cpp.tab.c" break; -case 666: +case 669: if (!yytrial) -#line 1666 "asmparse.y" +#line 1673 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10053 "asmparse.cpp.tab.c" +#line 10092 "asmparse.cpp.tab.c" break; -case 667: +case 670: if (!yytrial) -#line 1667 "asmparse.y" +#line 1674 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10059 "asmparse.cpp.tab.c" +#line 10098 "asmparse.cpp.tab.c" break; -case 668: +case 671: if (!yytrial) -#line 1668 "asmparse.y" +#line 1675 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10065 "asmparse.cpp.tab.c" +#line 10104 "asmparse.cpp.tab.c" break; -case 669: +case 672: if (!yytrial) -#line 1669 "asmparse.y" +#line 1676 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10071 "asmparse.cpp.tab.c" +#line 10110 "asmparse.cpp.tab.c" break; -case 670: +case 673: if (!yytrial) -#line 1673 "asmparse.y" +#line 1680 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10082 "asmparse.cpp.tab.c" +#line 10121 "asmparse.cpp.tab.c" break; -case 671: +case 674: if (!yytrial) -#line 1679 "asmparse.y" +#line 1686 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10088 "asmparse.cpp.tab.c" +#line 10127 "asmparse.cpp.tab.c" break; -case 672: +case 675: if (!yytrial) -#line 1680 "asmparse.y" +#line 1687 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10094 "asmparse.cpp.tab.c" +#line 10133 "asmparse.cpp.tab.c" break; -case 673: +case 676: if (!yytrial) -#line 1681 "asmparse.y" +#line 1688 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10100 "asmparse.cpp.tab.c" +#line 10139 "asmparse.cpp.tab.c" break; -case 674: +case 677: if (!yytrial) -#line 1682 "asmparse.y" +#line 1689 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10106 "asmparse.cpp.tab.c" +#line 10145 "asmparse.cpp.tab.c" break; -case 675: +case 678: if (!yytrial) -#line 1683 "asmparse.y" +#line 1690 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10112 "asmparse.cpp.tab.c" +#line 10151 "asmparse.cpp.tab.c" break; -case 676: +case 679: if (!yytrial) -#line 1684 "asmparse.y" +#line 1691 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10118 "asmparse.cpp.tab.c" +#line 10157 "asmparse.cpp.tab.c" break; -case 677: +case 680: if (!yytrial) -#line 1685 "asmparse.y" +#line 1692 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10124 "asmparse.cpp.tab.c" +#line 10163 "asmparse.cpp.tab.c" break; -case 678: +case 681: if (!yytrial) -#line 1686 "asmparse.y" +#line 1693 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10130 "asmparse.cpp.tab.c" +#line 10169 "asmparse.cpp.tab.c" break; -case 679: +case 682: if (!yytrial) -#line 1687 "asmparse.y" +#line 1694 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10137 "asmparse.cpp.tab.c" +#line 10176 "asmparse.cpp.tab.c" break; -case 680: +case 683: if (!yytrial) -#line 1689 "asmparse.y" +#line 1696 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10144 "asmparse.cpp.tab.c" +#line 10183 "asmparse.cpp.tab.c" break; -case 681: +case 684: if (!yytrial) -#line 1692 "asmparse.y" +#line 1699 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10155 "asmparse.cpp.tab.c" +#line 10194 "asmparse.cpp.tab.c" break; -case 682: +case 685: if (!yytrial) -#line 1698 "asmparse.y" +#line 1705 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10163,33 +10202,33 @@ case 682: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10167 "asmparse.cpp.tab.c" +#line 10206 "asmparse.cpp.tab.c" break; -case 683: +case 686: if (!yytrial) -#line 1705 "asmparse.y" +#line 1712 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10178 "asmparse.cpp.tab.c" +#line 10217 "asmparse.cpp.tab.c" break; -case 684: +case 687: if (!yytrial) -#line 1711 "asmparse.y" +#line 1718 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10189 "asmparse.cpp.tab.c" +#line 10228 "asmparse.cpp.tab.c" break; -case 685: +case 688: if (!yytrial) -#line 1717 "asmparse.y" +#line 1724 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10205,11 +10244,11 @@ case 685: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10209 "asmparse.cpp.tab.c" +#line 10248 "asmparse.cpp.tab.c" break; -case 686: +case 689: if (!yytrial) -#line 1732 "asmparse.y" +#line 1739 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10225,924 +10264,924 @@ case 686: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10229 "asmparse.cpp.tab.c" +#line 10268 "asmparse.cpp.tab.c" break; -case 687: +case 690: if (!yytrial) -#line 1747 "asmparse.y" +#line 1754 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10235 "asmparse.cpp.tab.c" +#line 10274 "asmparse.cpp.tab.c" break; -case 688: +case 691: if (!yytrial) -#line 1748 "asmparse.y" +#line 1755 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10241 "asmparse.cpp.tab.c" +#line 10280 "asmparse.cpp.tab.c" break; -case 689: +case 692: if (!yytrial) -#line 1749 "asmparse.y" +#line 1756 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10247 "asmparse.cpp.tab.c" +#line 10286 "asmparse.cpp.tab.c" break; -case 690: +case 693: if (!yytrial) -#line 1750 "asmparse.y" +#line 1757 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10253 "asmparse.cpp.tab.c" +#line 10292 "asmparse.cpp.tab.c" break; -case 691: +case 694: if (!yytrial) -#line 1751 "asmparse.y" +#line 1758 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10259 "asmparse.cpp.tab.c" +#line 10298 "asmparse.cpp.tab.c" break; -case 692: +case 695: if (!yytrial) -#line 1752 "asmparse.y" +#line 1759 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10265 "asmparse.cpp.tab.c" +#line 10304 "asmparse.cpp.tab.c" break; -case 693: +case 696: if (!yytrial) -#line 1753 "asmparse.y" +#line 1760 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10271 "asmparse.cpp.tab.c" +#line 10310 "asmparse.cpp.tab.c" break; -case 694: +case 697: if (!yytrial) -#line 1756 "asmparse.y" +#line 1763 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10277 "asmparse.cpp.tab.c" +#line 10316 "asmparse.cpp.tab.c" break; -case 695: +case 698: if (!yytrial) -#line 1757 "asmparse.y" +#line 1764 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10283 "asmparse.cpp.tab.c" +#line 10322 "asmparse.cpp.tab.c" break; -case 696: +case 699: if (!yytrial) -#line 1758 "asmparse.y" +#line 1765 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10289 "asmparse.cpp.tab.c" +#line 10328 "asmparse.cpp.tab.c" break; -case 697: +case 700: if (!yytrial) -#line 1759 "asmparse.y" +#line 1766 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10295 "asmparse.cpp.tab.c" +#line 10334 "asmparse.cpp.tab.c" break; -case 698: +case 701: if (!yytrial) -#line 1760 "asmparse.y" +#line 1767 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10301 "asmparse.cpp.tab.c" +#line 10340 "asmparse.cpp.tab.c" break; -case 699: +case 702: if (!yytrial) -#line 1761 "asmparse.y" +#line 1768 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10307 "asmparse.cpp.tab.c" +#line 10346 "asmparse.cpp.tab.c" break; -case 700: +case 703: if (!yytrial) -#line 1762 "asmparse.y" +#line 1769 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10313 "asmparse.cpp.tab.c" +#line 10352 "asmparse.cpp.tab.c" break; -case 701: +case 704: if (!yytrial) -#line 1763 "asmparse.y" +#line 1770 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10319 "asmparse.cpp.tab.c" +#line 10358 "asmparse.cpp.tab.c" break; -case 702: +case 705: if (!yytrial) -#line 1764 "asmparse.y" +#line 1771 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10325 "asmparse.cpp.tab.c" +#line 10364 "asmparse.cpp.tab.c" break; -case 703: +case 706: if (!yytrial) -#line 1765 "asmparse.y" +#line 1772 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10331 "asmparse.cpp.tab.c" +#line 10370 "asmparse.cpp.tab.c" break; -case 704: +case 707: if (!yytrial) -#line 1766 "asmparse.y" +#line 1773 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10337 "asmparse.cpp.tab.c" +#line 10376 "asmparse.cpp.tab.c" break; -case 705: +case 708: if (!yytrial) -#line 1767 "asmparse.y" +#line 1774 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10343 "asmparse.cpp.tab.c" +#line 10382 "asmparse.cpp.tab.c" break; -case 706: +case 709: if (!yytrial) -#line 1768 "asmparse.y" +#line 1775 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10349 "asmparse.cpp.tab.c" +#line 10388 "asmparse.cpp.tab.c" break; -case 707: +case 710: if (!yytrial) -#line 1769 "asmparse.y" +#line 1776 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10355 "asmparse.cpp.tab.c" +#line 10394 "asmparse.cpp.tab.c" break; -case 708: +case 711: if (!yytrial) -#line 1770 "asmparse.y" +#line 1777 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10361 "asmparse.cpp.tab.c" +#line 10400 "asmparse.cpp.tab.c" break; -case 709: +case 712: if (!yytrial) -#line 1771 "asmparse.y" +#line 1778 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10367 "asmparse.cpp.tab.c" +#line 10406 "asmparse.cpp.tab.c" break; -case 710: +case 713: if (!yytrial) -#line 1772 "asmparse.y" +#line 1779 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10373 "asmparse.cpp.tab.c" +#line 10412 "asmparse.cpp.tab.c" break; -case 711: +case 714: if (!yytrial) -#line 1773 "asmparse.y" +#line 1780 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10379 "asmparse.cpp.tab.c" +#line 10418 "asmparse.cpp.tab.c" break; -case 712: +case 715: if (!yytrial) -#line 1776 "asmparse.y" +#line 1783 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10385 "asmparse.cpp.tab.c" +#line 10424 "asmparse.cpp.tab.c" break; -case 713: +case 716: if (!yytrial) -#line 1777 "asmparse.y" +#line 1784 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10391 "asmparse.cpp.tab.c" +#line 10430 "asmparse.cpp.tab.c" break; -case 714: +case 717: if (!yytrial) -#line 1780 "asmparse.y" +#line 1787 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10397 "asmparse.cpp.tab.c" +#line 10436 "asmparse.cpp.tab.c" break; -case 715: +case 718: if (!yytrial) -#line 1781 "asmparse.y" +#line 1788 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10403 "asmparse.cpp.tab.c" +#line 10442 "asmparse.cpp.tab.c" break; -case 716: +case 719: if (!yytrial) -#line 1782 "asmparse.y" +#line 1789 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10409 "asmparse.cpp.tab.c" +#line 10448 "asmparse.cpp.tab.c" break; -case 717: +case 720: if (!yytrial) -#line 1783 "asmparse.y" +#line 1790 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10417 "asmparse.cpp.tab.c" +#line 10456 "asmparse.cpp.tab.c" break; -case 718: +case 721: if (!yytrial) -#line 1786 "asmparse.y" +#line 1793 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10423 "asmparse.cpp.tab.c" +#line 10462 "asmparse.cpp.tab.c" break; -case 719: +case 722: if (!yytrial) -#line 1791 "asmparse.y" +#line 1798 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10429 "asmparse.cpp.tab.c" +#line 10468 "asmparse.cpp.tab.c" break; -case 720: +case 723: if (!yytrial) -#line 1793 "asmparse.y" +#line 1800 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10435 "asmparse.cpp.tab.c" +#line 10474 "asmparse.cpp.tab.c" break; -case 721: +case 724: if (!yytrial) -#line 1794 "asmparse.y" +#line 1801 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10441 "asmparse.cpp.tab.c" +#line 10480 "asmparse.cpp.tab.c" break; -case 722: +case 725: if (!yytrial) -#line 1795 "asmparse.y" +#line 1802 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10447 "asmparse.cpp.tab.c" +#line 10486 "asmparse.cpp.tab.c" break; -case 723: +case 726: if (!yytrial) -#line 1797 "asmparse.y" +#line 1804 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10453 "asmparse.cpp.tab.c" +#line 10492 "asmparse.cpp.tab.c" break; -case 724: +case 727: if (!yytrial) -#line 1799 "asmparse.y" +#line 1806 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10464 "asmparse.cpp.tab.c" +#line 10503 "asmparse.cpp.tab.c" break; -case 725: +case 728: if (!yytrial) -#line 1807 "asmparse.y" +#line 1814 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10470 "asmparse.cpp.tab.c" +#line 10509 "asmparse.cpp.tab.c" break; -case 726: +case 729: if (!yytrial) -#line 1808 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10476 "asmparse.cpp.tab.c" +#line 10515 "asmparse.cpp.tab.c" break; -case 727: +case 730: if (!yytrial) -#line 1809 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10482 "asmparse.cpp.tab.c" +#line 10521 "asmparse.cpp.tab.c" break; -case 728: +case 731: if (!yytrial) -#line 1813 "asmparse.y" +#line 1820 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10489 "asmparse.cpp.tab.c" +#line 10528 "asmparse.cpp.tab.c" break; -case 729: +case 732: if (!yytrial) -#line 1816 "asmparse.y" +#line 1823 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10496 "asmparse.cpp.tab.c" +#line 10535 "asmparse.cpp.tab.c" break; -case 730: +case 733: if (!yytrial) -#line 1820 "asmparse.y" +#line 1827 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10502 "asmparse.cpp.tab.c" +#line 10541 "asmparse.cpp.tab.c" break; -case 731: +case 734: if (!yytrial) -#line 1822 "asmparse.y" +#line 1829 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10508 "asmparse.cpp.tab.c" +#line 10547 "asmparse.cpp.tab.c" break; -case 732: +case 735: if (!yytrial) -#line 1825 "asmparse.y" +#line 1832 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 10514 "asmparse.cpp.tab.c" +#line 10553 "asmparse.cpp.tab.c" break; -case 733: +case 736: if (!yytrial) -#line 1826 "asmparse.y" +#line 1833 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 10520 "asmparse.cpp.tab.c" +#line 10559 "asmparse.cpp.tab.c" break; -case 734: +case 737: if (!yytrial) -#line 1829 "asmparse.y" +#line 1836 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 10526 "asmparse.cpp.tab.c" +#line 10565 "asmparse.cpp.tab.c" break; -case 735: +case 738: if (!yytrial) -#line 1832 "asmparse.y" +#line 1839 "asmparse.y" { yyval.int32 = 1; } -#line 10532 "asmparse.cpp.tab.c" +#line 10571 "asmparse.cpp.tab.c" break; -case 736: +case 739: if (!yytrial) -#line 1833 "asmparse.y" +#line 1840 "asmparse.y" { yyval.int32 = 0; } -#line 10538 "asmparse.cpp.tab.c" +#line 10577 "asmparse.cpp.tab.c" break; -case 737: +case 740: if (!yytrial) -#line 1836 "asmparse.y" +#line 1843 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10546 "asmparse.cpp.tab.c" +#line 10585 "asmparse.cpp.tab.c" break; -case 738: +case 741: if (!yytrial) -#line 1839 "asmparse.y" +#line 1846 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10554 "asmparse.cpp.tab.c" +#line 10593 "asmparse.cpp.tab.c" break; -case 739: +case 742: if (!yytrial) -#line 1842 "asmparse.y" +#line 1849 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10562 "asmparse.cpp.tab.c" +#line 10601 "asmparse.cpp.tab.c" break; -case 740: +case 743: if (!yytrial) -#line 1845 "asmparse.y" +#line 1852 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 10571 "asmparse.cpp.tab.c" +#line 10610 "asmparse.cpp.tab.c" break; -case 741: +case 744: if (!yytrial) -#line 1849 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10582 "asmparse.cpp.tab.c" +#line 10621 "asmparse.cpp.tab.c" break; -case 742: +case 745: if (!yytrial) -#line 1855 "asmparse.y" +#line 1862 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10593 "asmparse.cpp.tab.c" +#line 10632 "asmparse.cpp.tab.c" break; -case 743: +case 746: if (!yytrial) -#line 1861 "asmparse.y" +#line 1868 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10604 "asmparse.cpp.tab.c" +#line 10643 "asmparse.cpp.tab.c" break; -case 744: +case 747: if (!yytrial) -#line 1867 "asmparse.y" +#line 1874 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10615 "asmparse.cpp.tab.c" +#line 10654 "asmparse.cpp.tab.c" break; -case 745: +case 748: if (!yytrial) -#line 1875 "asmparse.y" +#line 1882 "asmparse.y" { yyval.secAct = dclRequest; } -#line 10621 "asmparse.cpp.tab.c" +#line 10660 "asmparse.cpp.tab.c" break; -case 746: +case 749: if (!yytrial) -#line 1876 "asmparse.y" +#line 1883 "asmparse.y" { yyval.secAct = dclDemand; } -#line 10627 "asmparse.cpp.tab.c" +#line 10666 "asmparse.cpp.tab.c" break; -case 747: +case 750: if (!yytrial) -#line 1877 "asmparse.y" +#line 1884 "asmparse.y" { yyval.secAct = dclAssert; } -#line 10633 "asmparse.cpp.tab.c" +#line 10672 "asmparse.cpp.tab.c" break; -case 748: +case 751: if (!yytrial) -#line 1878 "asmparse.y" +#line 1885 "asmparse.y" { yyval.secAct = dclDeny; } -#line 10639 "asmparse.cpp.tab.c" +#line 10678 "asmparse.cpp.tab.c" break; -case 749: +case 752: if (!yytrial) -#line 1879 "asmparse.y" +#line 1886 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 10645 "asmparse.cpp.tab.c" +#line 10684 "asmparse.cpp.tab.c" break; -case 750: +case 753: if (!yytrial) -#line 1880 "asmparse.y" +#line 1887 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 10651 "asmparse.cpp.tab.c" +#line 10690 "asmparse.cpp.tab.c" break; -case 751: +case 754: if (!yytrial) -#line 1881 "asmparse.y" +#line 1888 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 10657 "asmparse.cpp.tab.c" +#line 10696 "asmparse.cpp.tab.c" break; -case 752: +case 755: if (!yytrial) -#line 1882 "asmparse.y" +#line 1889 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 10663 "asmparse.cpp.tab.c" +#line 10702 "asmparse.cpp.tab.c" break; -case 753: +case 756: if (!yytrial) -#line 1883 "asmparse.y" +#line 1890 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 10669 "asmparse.cpp.tab.c" +#line 10708 "asmparse.cpp.tab.c" break; -case 754: +case 757: if (!yytrial) -#line 1884 "asmparse.y" +#line 1891 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 10675 "asmparse.cpp.tab.c" +#line 10714 "asmparse.cpp.tab.c" break; -case 755: +case 758: if (!yytrial) -#line 1885 "asmparse.y" +#line 1892 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 10681 "asmparse.cpp.tab.c" +#line 10720 "asmparse.cpp.tab.c" break; -case 756: +case 759: if (!yytrial) -#line 1886 "asmparse.y" +#line 1893 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 10687 "asmparse.cpp.tab.c" +#line 10726 "asmparse.cpp.tab.c" break; -case 757: +case 760: if (!yytrial) -#line 1887 "asmparse.y" +#line 1894 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 10693 "asmparse.cpp.tab.c" +#line 10732 "asmparse.cpp.tab.c" break; -case 758: +case 761: if (!yytrial) -#line 1888 "asmparse.y" +#line 1895 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 10699 "asmparse.cpp.tab.c" +#line 10738 "asmparse.cpp.tab.c" break; -case 759: +case 762: if (!yytrial) -#line 1889 "asmparse.y" +#line 1896 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 10705 "asmparse.cpp.tab.c" +#line 10744 "asmparse.cpp.tab.c" break; -case 760: +case 763: if (!yytrial) -#line 1893 "asmparse.y" +#line 1900 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 10711 "asmparse.cpp.tab.c" +#line 10750 "asmparse.cpp.tab.c" break; -case 761: +case 764: if (!yytrial) -#line 1894 "asmparse.y" +#line 1901 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 10717 "asmparse.cpp.tab.c" +#line 10756 "asmparse.cpp.tab.c" break; -case 762: +case 765: if (!yytrial) -#line 1897 "asmparse.y" +#line 1904 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10725 "asmparse.cpp.tab.c" +#line 10764 "asmparse.cpp.tab.c" break; -case 763: +case 766: if (!yytrial) -#line 1900 "asmparse.y" +#line 1907 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 10732 "asmparse.cpp.tab.c" +#line 10771 "asmparse.cpp.tab.c" break; -case 764: +case 767: if (!yytrial) -#line 1902 "asmparse.y" +#line 1909 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10740 "asmparse.cpp.tab.c" +#line 10779 "asmparse.cpp.tab.c" break; -case 765: +case 768: if (!yytrial) -#line 1905 "asmparse.y" +#line 1912 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 10747 "asmparse.cpp.tab.c" +#line 10786 "asmparse.cpp.tab.c" break; -case 766: +case 769: if (!yytrial) -#line 1908 "asmparse.y" +#line 1915 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 10755 "asmparse.cpp.tab.c" +#line 10794 "asmparse.cpp.tab.c" break; -case 767: +case 770: if (!yytrial) -#line 1912 "asmparse.y" +#line 1919 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10762 "asmparse.cpp.tab.c" +#line 10801 "asmparse.cpp.tab.c" break; -case 768: +case 771: if (!yytrial) -#line 1915 "asmparse.y" +#line 1922 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10770 "asmparse.cpp.tab.c" +#line 10809 "asmparse.cpp.tab.c" break; -case 769: +case 772: if (!yytrial) -#line 1919 "asmparse.y" +#line 1926 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 10777 "asmparse.cpp.tab.c" +#line 10816 "asmparse.cpp.tab.c" break; -case 770: +case 773: if (!yytrial) -#line 1922 "asmparse.y" +#line 1929 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 10785 "asmparse.cpp.tab.c" +#line 10824 "asmparse.cpp.tab.c" break; -case 771: +case 774: if (!yytrial) -#line 1926 "asmparse.y" +#line 1933 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10792 "asmparse.cpp.tab.c" +#line 10831 "asmparse.cpp.tab.c" break; -case 772: +case 775: if (!yytrial) -#line 1928 "asmparse.y" +#line 1935 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 10800 "asmparse.cpp.tab.c" +#line 10839 "asmparse.cpp.tab.c" break; -case 773: +case 776: if (!yytrial) -#line 1935 "asmparse.y" +#line 1942 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 10806 "asmparse.cpp.tab.c" +#line 10845 "asmparse.cpp.tab.c" break; -case 774: +case 777: if (!yytrial) -#line 1936 "asmparse.y" +#line 1943 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 10812 "asmparse.cpp.tab.c" +#line 10851 "asmparse.cpp.tab.c" break; -case 775: +case 778: if (!yytrial) -#line 1939 "asmparse.y" +#line 1946 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 10818 "asmparse.cpp.tab.c" +#line 10857 "asmparse.cpp.tab.c" break; -case 776: +case 779: if (!yytrial) -#line 1940 "asmparse.y" +#line 1947 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 10824 "asmparse.cpp.tab.c" +#line 10863 "asmparse.cpp.tab.c" break; -case 777: +case 780: if (!yytrial) -#line 1943 "asmparse.y" +#line 1950 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 10830 "asmparse.cpp.tab.c" +#line 10869 "asmparse.cpp.tab.c" break; -case 778: +case 781: if (!yytrial) -#line 1944 "asmparse.y" +#line 1951 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 10836 "asmparse.cpp.tab.c" +#line 10875 "asmparse.cpp.tab.c" break; -case 779: +case 782: if (!yytrial) -#line 1947 "asmparse.y" +#line 1954 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10842 "asmparse.cpp.tab.c" +#line 10881 "asmparse.cpp.tab.c" break; -case 780: +case 783: if (!yytrial) -#line 1950 "asmparse.y" +#line 1957 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 10848 "asmparse.cpp.tab.c" +#line 10887 "asmparse.cpp.tab.c" break; -case 781: +case 784: if (!yytrial) -#line 1953 "asmparse.y" +#line 1960 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 10854 "asmparse.cpp.tab.c" +#line 10893 "asmparse.cpp.tab.c" break; -case 782: +case 785: if (!yytrial) -#line 1954 "asmparse.y" +#line 1961 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 10860 "asmparse.cpp.tab.c" +#line 10899 "asmparse.cpp.tab.c" break; -case 783: +case 786: if (!yytrial) -#line 1955 "asmparse.y" +#line 1962 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 10866 "asmparse.cpp.tab.c" +#line 10905 "asmparse.cpp.tab.c" break; -case 784: +case 787: if (!yytrial) -#line 1956 "asmparse.y" +#line 1963 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 10872 "asmparse.cpp.tab.c" +#line 10911 "asmparse.cpp.tab.c" break; -case 785: +case 788: if (!yytrial) -#line 1957 "asmparse.y" +#line 1964 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 10878 "asmparse.cpp.tab.c" +#line 10917 "asmparse.cpp.tab.c" break; -case 786: +case 789: if (!yytrial) -#line 1958 "asmparse.y" +#line 1965 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 10884 "asmparse.cpp.tab.c" +#line 10923 "asmparse.cpp.tab.c" break; -case 787: +case 790: if (!yytrial) -#line 1959 "asmparse.y" +#line 1966 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 10890 "asmparse.cpp.tab.c" +#line 10929 "asmparse.cpp.tab.c" break; -case 788: +case 791: if (!yytrial) -#line 1960 "asmparse.y" +#line 1967 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 10896 "asmparse.cpp.tab.c" +#line 10935 "asmparse.cpp.tab.c" break; -case 789: +case 792: if (!yytrial) -#line 1961 "asmparse.y" +#line 1968 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 10902 "asmparse.cpp.tab.c" +#line 10941 "asmparse.cpp.tab.c" break; -case 790: +case 793: if (!yytrial) -#line 1962 "asmparse.y" +#line 1969 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 10908 "asmparse.cpp.tab.c" +#line 10947 "asmparse.cpp.tab.c" break; -case 793: +case 796: if (!yytrial) -#line 1969 "asmparse.y" +#line 1976 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 10914 "asmparse.cpp.tab.c" +#line 10953 "asmparse.cpp.tab.c" break; -case 796: +case 799: if (!yytrial) -#line 1974 "asmparse.y" +#line 1981 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 10920 "asmparse.cpp.tab.c" +#line 10959 "asmparse.cpp.tab.c" break; -case 797: +case 800: if (!yytrial) -#line 1975 "asmparse.y" +#line 1982 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 10926 "asmparse.cpp.tab.c" +#line 10965 "asmparse.cpp.tab.c" break; -case 798: +case 801: if (!yytrial) -#line 1978 "asmparse.y" +#line 1985 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 10932 "asmparse.cpp.tab.c" +#line 10971 "asmparse.cpp.tab.c" break; -case 799: +case 802: if (!yytrial) -#line 1980 "asmparse.y" +#line 1987 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 10938 "asmparse.cpp.tab.c" +#line 10977 "asmparse.cpp.tab.c" break; -case 800: +case 803: if (!yytrial) -#line 1981 "asmparse.y" +#line 1988 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 10944 "asmparse.cpp.tab.c" +#line 10983 "asmparse.cpp.tab.c" break; -case 801: +case 804: if (!yytrial) -#line 1982 "asmparse.y" +#line 1989 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 10950 "asmparse.cpp.tab.c" +#line 10989 "asmparse.cpp.tab.c" break; -case 804: +case 807: if (!yytrial) -#line 1987 "asmparse.y" +#line 1994 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10956 "asmparse.cpp.tab.c" +#line 10995 "asmparse.cpp.tab.c" break; -case 805: +case 808: if (!yytrial) -#line 1990 "asmparse.y" +#line 1997 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10962 "asmparse.cpp.tab.c" +#line 11001 "asmparse.cpp.tab.c" break; -case 806: +case 809: if (!yytrial) -#line 1993 "asmparse.y" +#line 2000 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10968 "asmparse.cpp.tab.c" +#line 11007 "asmparse.cpp.tab.c" break; -case 807: +case 810: if (!yytrial) -#line 1997 "asmparse.y" +#line 2004 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 10974 "asmparse.cpp.tab.c" +#line 11013 "asmparse.cpp.tab.c" break; -case 808: +case 811: if (!yytrial) -#line 1999 "asmparse.y" +#line 2006 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 10980 "asmparse.cpp.tab.c" +#line 11019 "asmparse.cpp.tab.c" break; -case 811: +case 814: if (!yytrial) -#line 2006 "asmparse.y" +#line 2013 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 10986 "asmparse.cpp.tab.c" +#line 11025 "asmparse.cpp.tab.c" break; -case 813: +case 816: if (!yytrial) -#line 2008 "asmparse.y" +#line 2015 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 10992 "asmparse.cpp.tab.c" +#line 11031 "asmparse.cpp.tab.c" break; -case 814: +case 817: if (!yytrial) -#line 2009 "asmparse.y" +#line 2016 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 10998 "asmparse.cpp.tab.c" +#line 11037 "asmparse.cpp.tab.c" break; -case 815: +case 818: if (!yytrial) -#line 2012 "asmparse.y" +#line 2019 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11004 "asmparse.cpp.tab.c" +#line 11043 "asmparse.cpp.tab.c" break; -case 816: +case 819: if (!yytrial) -#line 2015 "asmparse.y" +#line 2022 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11010 "asmparse.cpp.tab.c" +#line 11049 "asmparse.cpp.tab.c" break; -case 817: +case 820: if (!yytrial) -#line 2018 "asmparse.y" +#line 2025 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11016 "asmparse.cpp.tab.c" +#line 11055 "asmparse.cpp.tab.c" break; -case 818: +case 821: if (!yytrial) -#line 2019 "asmparse.y" +#line 2026 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11022 "asmparse.cpp.tab.c" +#line 11061 "asmparse.cpp.tab.c" break; -case 819: +case 822: if (!yytrial) -#line 2020 "asmparse.y" +#line 2027 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11028 "asmparse.cpp.tab.c" +#line 11067 "asmparse.cpp.tab.c" break; -case 820: +case 823: if (!yytrial) -#line 2021 "asmparse.y" +#line 2028 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11034 "asmparse.cpp.tab.c" +#line 11073 "asmparse.cpp.tab.c" break; -case 821: +case 824: if (!yytrial) -#line 2022 "asmparse.y" +#line 2029 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11040 "asmparse.cpp.tab.c" +#line 11079 "asmparse.cpp.tab.c" break; -case 822: +case 825: if (!yytrial) -#line 2023 "asmparse.y" +#line 2030 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11046 "asmparse.cpp.tab.c" +#line 11085 "asmparse.cpp.tab.c" break; -case 823: +case 826: if (!yytrial) -#line 2024 "asmparse.y" +#line 2031 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11052 "asmparse.cpp.tab.c" +#line 11091 "asmparse.cpp.tab.c" break; -case 824: +case 827: if (!yytrial) -#line 2025 "asmparse.y" +#line 2032 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11058 "asmparse.cpp.tab.c" +#line 11097 "asmparse.cpp.tab.c" break; -case 825: +case 828: if (!yytrial) -#line 2026 "asmparse.y" +#line 2033 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11064 "asmparse.cpp.tab.c" +#line 11103 "asmparse.cpp.tab.c" break; -case 826: +case 829: if (!yytrial) -#line 2027 "asmparse.y" +#line 2034 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11070 "asmparse.cpp.tab.c" +#line 11109 "asmparse.cpp.tab.c" break; -case 829: +case 832: if (!yytrial) -#line 2034 "asmparse.y" +#line 2041 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11076 "asmparse.cpp.tab.c" +#line 11115 "asmparse.cpp.tab.c" break; -case 830: +case 833: if (!yytrial) -#line 2035 "asmparse.y" +#line 2042 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11082 "asmparse.cpp.tab.c" +#line 11121 "asmparse.cpp.tab.c" break; -case 831: +case 834: if (!yytrial) -#line 2036 "asmparse.y" +#line 2043 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11088 "asmparse.cpp.tab.c" +#line 11127 "asmparse.cpp.tab.c" break; -case 832: +case 835: if (!yytrial) -#line 2037 "asmparse.y" +#line 2044 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11095 "asmparse.cpp.tab.c" +#line 11134 "asmparse.cpp.tab.c" break; -case 833: +case 836: if (!yytrial) -#line 2039 "asmparse.y" +#line 2046 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11102 "asmparse.cpp.tab.c" +#line 11141 "asmparse.cpp.tab.c" break; -case 836: +case 839: if (!yytrial) -#line 2045 "asmparse.y" +#line 2052 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11108 "asmparse.cpp.tab.c" +#line 11147 "asmparse.cpp.tab.c" break; -case 837: +case 840: if (!yytrial) -#line 2047 "asmparse.y" +#line 2054 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11114 "asmparse.cpp.tab.c" +#line 11153 "asmparse.cpp.tab.c" break; -case 838: +case 841: if (!yytrial) -#line 2050 "asmparse.y" +#line 2057 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11120 "asmparse.cpp.tab.c" +#line 11159 "asmparse.cpp.tab.c" break; -case 839: +case 842: if (!yytrial) -#line 2051 "asmparse.y" +#line 2058 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11126 "asmparse.cpp.tab.c" +#line 11165 "asmparse.cpp.tab.c" break; -case 840: +case 843: if (!yytrial) -#line 2052 "asmparse.y" +#line 2059 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11132 "asmparse.cpp.tab.c" +#line 11171 "asmparse.cpp.tab.c" break; -case 843: +case 846: if (!yytrial) -#line 2059 "asmparse.y" +#line 2066 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11138 "asmparse.cpp.tab.c" +#line 11177 "asmparse.cpp.tab.c" break; -case 844: +case 847: if (!yytrial) -#line 2060 "asmparse.y" +#line 2067 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11144 "asmparse.cpp.tab.c" +#line 11183 "asmparse.cpp.tab.c" break; -#line 11146 "asmparse.cpp.tab.c" +#line 11185 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ilasm/typar.hpp b/src/coreclr/ilasm/typar.hpp index 72e7cc46709db..3449ac4123e88 100644 --- a/src/coreclr/ilasm/typar.hpp +++ b/src/coreclr/ilasm/typar.hpp @@ -16,6 +16,7 @@ class TyParDescr { m_pbsBounds = NULL; m_wzName = NULL; + m_pbsType = 0; m_dwAttrs = 0; }; ~TyParDescr() @@ -24,9 +25,10 @@ class TyParDescr delete [] m_wzName; m_lstCA.RESET(true); }; - void Init(BinStr* bounds, LPCUTF8 name, DWORD attrs) + void Init(BinStr* bounds, DWORD type, LPCUTF8 name, DWORD attrs) { m_pbsBounds = bounds; + m_pbsType = type; ULONG cTemp = (ULONG)strlen(name)+1; WCHAR *pwzName; m_wzName = pwzName = new WCHAR[cTemp]; @@ -38,6 +40,7 @@ class TyParDescr m_dwAttrs = attrs; }; BinStr* Bounds() { return m_pbsBounds; }; + DWORD Type() { return m_pbsType; }; LPCWSTR Name() { return m_wzName; }; DWORD Attrs() { return m_dwAttrs; }; mdToken Token() { return m_token; }; @@ -49,6 +52,7 @@ class TyParDescr private: BinStr* m_pbsBounds; + DWORD m_pbsType; LPCWSTR m_wzName; DWORD m_dwAttrs; mdToken m_token; @@ -61,13 +65,13 @@ class TyParList { { bound = (b == NULL) ? new BinStr() : b; bound->appendInt32(0); // zero terminator - attrs = a; name = n; next = nx; + attrs = a; type = 0; name = n; next = nx; }; - TyParList(BinStr* a, BinStr* b, LPCUTF8 n, TyParList* nx = NULL) + TyParList(DWORD a, DWORD t, BinStr* b, LPCUTF8 n, TyParList* nx = NULL) { bound = (b == NULL) ? new BinStr() : b; bound->appendInt32(0); // zero terminator - type = a; name = n; next = nx; + attrs = a; type = t; name = n; next = nx; }; ~TyParList() { @@ -116,10 +120,11 @@ class TyParList { #pragma warning(disable:6211) // "Leaking memory 'b' due to an exception. Consider using a local catch block to clean up memory" #endif /*_PREFAST_ */ - int ToArray(BinStr ***bounds, LPCWSTR** names, DWORD **attrs) + int ToArray(BinStr ***bounds, DWORD **types, LPCWSTR** names, DWORD **attrs) { int n = Count(); BinStr **b = new BinStr* [n]; + DWORD *t = new DWORD [n]; LPCWSTR *nam = new LPCWSTR [n]; DWORD *attr = attrs ? new DWORD [n] : NULL; TyParList *tp = this; @@ -133,13 +138,17 @@ class TyParList { WszMultiByteToWideChar(g_uCodePage,0,tp->name,-1,wzDllName,cTemp); nam[i] = (LPCWSTR)wzDllName; b[i] = tp->bound; + t[i] = tp->type; if (attr) attr[i] = tp->attrs; - tp->bound = 0; // to avoid deletion by destructor + // to avoid deletion by destructor + tp->bound = 0; + tp->type = 0; i++; tp = tp->next; } *bounds = b; + *types = t; *names = nam; if (attrs) *attrs = attr; @@ -163,8 +172,10 @@ class TyParList { TyParList *tp = this; while (tp) { - pTPD[i].Init(tp->bound,tp->name,tp->attrs); - tp->bound = 0; // to avoid deletion by destructor + pTPD[i].Init(tp->bound,tp->type,tp->name,tp->attrs); + // to avoid deletion by destructor + tp->bound = 0; + tp->type = 0; i++; tp = tp->next; } @@ -177,7 +188,7 @@ class TyParList { BinStr* Bound() { return bound; }; private: BinStr* bound; - BinStr* type; + DWORD type; LPCUTF8 name; TyParList* next; DWORD attrs; diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index 1428661fda20e..502de9349206b 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -595,7 +595,7 @@ DECLARE_INTERFACE_(IMetaDataEmit2, IMetaDataEmit) ULONG ulParamSeq, // [IN] Index of the type parameter DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szname, // [IN] Name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Type mdToken rtkConstraints[], // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) mdGenericParam *pgp) PURE; // [OUT] Put GenericParam token here @@ -603,7 +603,7 @@ DECLARE_INTERFACE_(IMetaDataEmit2, IMetaDataEmit) mdGenericParam gp, // [IN] GenericParam DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Type mdToken rtkConstraints[]) PURE;// [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) STDMETHOD(ResetENCLog)() PURE; // S_OK or error. diff --git a/src/coreclr/inc/metamodelpub.h b/src/coreclr/inc/metamodelpub.h index b1eb8b961dbc5..206369d3d9d1d 100644 --- a/src/coreclr/inc/metamodelpub.h +++ b/src/coreclr/inc/metamodelpub.h @@ -1414,6 +1414,7 @@ class GenericParamRec COL_Flags, // flags, for future use COL_Owner, // typeDef/methodDef COL_Name, // Purely descriptive, not used for binding purposes + COL_Type, COL_COUNT, COL_KEY = COL_Owner }; diff --git a/src/coreclr/md/compiler/emit.cpp b/src/coreclr/md/compiler/emit.cpp index f2df925feaa8b..ee9f8a9772da6 100644 --- a/src/coreclr/md/compiler/emit.cpp +++ b/src/coreclr/md/compiler/emit.cpp @@ -1638,7 +1638,7 @@ STDMETHODIMP RegMeta::DefineGenericParam( // S_OK or error. ULONG ulParamSeq, // [IN] Index of the type parameter DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Name - DWORD reserved, // [IN] For future use + mdToken tkType, // [IN] Type mdToken rtkConstraints[], // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) mdGenericParam *pgp) // [OUT] Put GenericParam token here { @@ -1654,12 +1654,11 @@ STDMETHODIMP RegMeta::DefineGenericParam( // S_OK or error. IfFailGo(m_pStgdb->m_MiniMd.PreUpdate()); - if (reserved != 0) - IfFailGo(META_E_BAD_INPUT_PARAMETER); - // See if this version of the metadata can do Generics if (!m_pStgdb->m_MiniMd.SupportsGenerics()) IfFailGo(CLDB_E_INCOMPATIBLE); + if (!m_pStgdb->m_MiniMd.SupportsConstGenerics()) + IfFailGo(CLDB_E_INCOMPATIBLE); if ((tkOwnerType == mdtTypeDef) || (tkOwnerType == mdtMethodDef)) { @@ -1703,11 +1702,13 @@ STDMETHODIMP RegMeta::DefineGenericParam( // S_OK or error. pGenericParam->SetNumber((USHORT)ulParamSeq); IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Owner, pGenericParam, tkOwner)); + IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Type, + pGenericParam, tkType)); tkRet = TokenFromRid(iGenericParam,mdtGenericParam); } // 2. Set its props - IfFailGo(_SetGenericParamProps(tkRet, pGenericParam, dwParamFlags, szName, reserved ,rtkConstraints)); + IfFailGo(_SetGenericParamProps(tkRet, pGenericParam, dwParamFlags, szName, tkType ,rtkConstraints)); IfFailGo(UpdateENCLog(tkRet)); } else @@ -1729,27 +1730,28 @@ STDMETHODIMP RegMeta::SetGenericParamProps( // S_OK or error. mdGenericParam gp, // [IN] GenericParam DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) - mdToken rtkConstraints[]) // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) + mdToken tkType, // [IN] Type + mdToken rtkConstraints[]) // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) { #ifdef FEATURE_METADATA_EMIT_IN_DEBUGGER return E_NOTIMPL; #else //!FEATURE_METADATA_EMIT_IN_DEBUGGER HRESULT hr = S_OK; - if (reserved != 0) - IfFailGo(META_E_BAD_INPUT_PARAMETER); - // See if this version of the metadata can do Generics if (!m_pStgdb->m_MiniMd.SupportsGenerics()) IfFailGo(CLDB_E_INCOMPATIBLE); + + // See if this version of the metadata can do Const Generics + if (!m_pStgdb->m_MiniMd.SupportsConstGenerics()) + IfFailGo(CLDB_E_INCOMPATIBLE); if (TypeFromToken(gp) == mdtGenericParam) { GenericParamRec *pGenericParam; IfFailGo(m_pStgdb->m_MiniMd.GetGenericParamRecord(RidFromToken(gp), &pGenericParam)); - IfFailGo(_SetGenericParamProps(gp,pGenericParam,dwParamFlags,szName,reserved,rtkConstraints)); + IfFailGo(_SetGenericParamProps(gp,pGenericParam,dwParamFlags,szName,tkType,rtkConstraints)); IfFailGo(UpdateENCLog(gp)); } else @@ -1768,7 +1770,7 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. GenericParamRec *pGenericParam, // [IN] GenericParam record ptr DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Option type mdToken rtkConstraints[]) // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) { #ifdef FEATURE_METADATA_EMIT_IN_DEBUGGER @@ -1782,6 +1784,10 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. if ((szName != NULL) && (*szName != 0)) IfFailGo(m_pStgdb->m_MiniMd.PutStringW(TBL_GenericParam, GenericParamRec::COL_Name, pGenericParam, szName)); + // If there is a type, set it + if (tkType != NULL) + IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_TypeRef, GenericParamRec::COL_Type, + pGenericParam, tkType)); // If there are new flags, set them. if (dwParamFlags != (DWORD) -1) diff --git a/src/coreclr/md/compiler/regmeta.h b/src/coreclr/md/compiler/regmeta.h index 78a854b778b0f..56dea30093ad6 100644 --- a/src/coreclr/md/compiler/regmeta.h +++ b/src/coreclr/md/compiler/regmeta.h @@ -1082,7 +1082,7 @@ class RegMeta : ULONG ulParamSeq, // [IN] Index of the type parameter DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szname, // [IN] Name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Type mdToken rtkConstraints[], // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) mdGenericParam *pgp); // [OUT] Put GenericParam token here @@ -1090,7 +1090,7 @@ class RegMeta : mdGenericParam gp, // [IN] GenericParam DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Type mdToken rtkConstraints[]); // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) #ifdef FEATURE_METADATA_EMIT_PORTABLE_PDB @@ -1682,7 +1682,7 @@ class RegMeta : GenericParamRec *pGenericParam, // [IN] GenericParam record ptr DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - DWORD reserved, // [IN] For future use (e.g. non-type parameters) + mdToken tkType, // [IN] Optional type mdToken rtkConstraints[]); // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) HRESULT _SetTypeDefProps( // S_OK or error. diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index ffc7c404b103e..78e1a09bc91aa 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -2014,6 +2014,14 @@ template class CMiniMdTemplate : public CMiniMdBase return (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_0 || (m_Schema.m_major == METAMODEL_MAJOR_VER_B1 && m_Schema.m_minor == METAMODEL_MINOR_VER_B1)); }// SupportGenerics + + BOOL SupportsConstGenerics() + { + return true; + // Only 2.1 of the metadata support const generics + return (m_Schema.m_major > METAMODEL_MAJOR_VER_V2_0 || + (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_0 && m_Schema.m_minor >= METAMODEL_MINOR_VER_B1)); + }// SupportsConstGenerics protected: //***************************************************************************** diff --git a/src/coreclr/md/runtime/metamodelcolumndefs.h b/src/coreclr/md/runtime/metamodelcolumndefs.h index 6790252d82553..05ca7c82bcde6 100644 --- a/src/coreclr/md/runtime/metamodelcolumndefs.h +++ b/src/coreclr/md/runtime/metamodelcolumndefs.h @@ -368,6 +368,7 @@ SCHEMA_ITEM(GenericParam, USHORT, Flags) SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) SCHEMA_ITEM_STRING(GenericParam, Name) + SCHEMA_ITEM_CDTKN(GenericParam, Type, TypeDefOrRef) SCHEMA_TABLE_END(GenericParam) //------------------------------------------------------------------------- From 05034f09ec28391d5482dc62a9385ae1c4e30c99 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 21 Jul 2023 22:16:06 +0900 Subject: [PATCH 03/80] More fixes to naming --- src/coreclr/ilasm/typar.hpp | 10 ++++------ src/coreclr/md/compiler/emit.cpp | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/coreclr/ilasm/typar.hpp b/src/coreclr/ilasm/typar.hpp index 3449ac4123e88..7f0f95c88997d 100644 --- a/src/coreclr/ilasm/typar.hpp +++ b/src/coreclr/ilasm/typar.hpp @@ -16,7 +16,7 @@ class TyParDescr { m_pbsBounds = NULL; m_wzName = NULL; - m_pbsType = 0; + m_dwType = 0; m_dwAttrs = 0; }; ~TyParDescr() @@ -28,7 +28,7 @@ class TyParDescr void Init(BinStr* bounds, DWORD type, LPCUTF8 name, DWORD attrs) { m_pbsBounds = bounds; - m_pbsType = type; + m_dwType = type; ULONG cTemp = (ULONG)strlen(name)+1; WCHAR *pwzName; m_wzName = pwzName = new WCHAR[cTemp]; @@ -40,7 +40,7 @@ class TyParDescr m_dwAttrs = attrs; }; BinStr* Bounds() { return m_pbsBounds; }; - DWORD Type() { return m_pbsType; }; + DWORD Type() { return m_dwType; }; LPCWSTR Name() { return m_wzName; }; DWORD Attrs() { return m_dwAttrs; }; mdToken Token() { return m_token; }; @@ -52,7 +52,7 @@ class TyParDescr private: BinStr* m_pbsBounds; - DWORD m_pbsType; + DWORD m_dwType; LPCWSTR m_wzName; DWORD m_dwAttrs; mdToken m_token; @@ -143,7 +143,6 @@ class TyParList { attr[i] = tp->attrs; // to avoid deletion by destructor tp->bound = 0; - tp->type = 0; i++; tp = tp->next; } @@ -175,7 +174,6 @@ class TyParList { pTPD[i].Init(tp->bound,tp->type,tp->name,tp->attrs); // to avoid deletion by destructor tp->bound = 0; - tp->type = 0; i++; tp = tp->next; } diff --git a/src/coreclr/md/compiler/emit.cpp b/src/coreclr/md/compiler/emit.cpp index ee9f8a9772da6..f5c1e6a84a302 100644 --- a/src/coreclr/md/compiler/emit.cpp +++ b/src/coreclr/md/compiler/emit.cpp @@ -1770,7 +1770,7 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. GenericParamRec *pGenericParam, // [IN] GenericParam record ptr DWORD dwParamFlags, // [IN] Flags, for future use (e.g. variance) LPCWSTR szName, // [IN] Optional name - mdToken tkType, // [IN] Option type + mdToken tkType, // [IN] Optional type mdToken rtkConstraints[]) // [IN] Array of type constraints (TypeDef,TypeRef,TypeSpec) { #ifdef FEATURE_METADATA_EMIT_IN_DEBUGGER From b7cf6561294ad44eb7c4522706dedee912ae7960 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 18:43:41 +0900 Subject: [PATCH 04/80] Complete assembly emitter --- src/coreclr/md/compiler/emit.cpp | 4 +--- src/coreclr/md/inc/metamodel.h | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/coreclr/md/compiler/emit.cpp b/src/coreclr/md/compiler/emit.cpp index f5c1e6a84a302..8bf2d04957dee 100644 --- a/src/coreclr/md/compiler/emit.cpp +++ b/src/coreclr/md/compiler/emit.cpp @@ -1702,8 +1702,6 @@ STDMETHODIMP RegMeta::DefineGenericParam( // S_OK or error. pGenericParam->SetNumber((USHORT)ulParamSeq); IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Owner, pGenericParam, tkOwner)); - IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Type, - pGenericParam, tkType)); tkRet = TokenFromRid(iGenericParam,mdtGenericParam); } @@ -1786,7 +1784,7 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. pGenericParam, szName)); // If there is a type, set it if (tkType != NULL) - IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_TypeRef, GenericParamRec::COL_Type, + IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Type, pGenericParam, tkType)); // If there are new flags, set them. diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index 78e1a09bc91aa..9031e6c016db4 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -1989,6 +1989,7 @@ template class CMiniMdTemplate : public CMiniMdBase USHORT _GETFLD(GenericParam,Flags); mdToken _GETCDTKN(GenericParam,Owner,mdtTypeOrMethodDef); _GETSTR(GenericParam,Name); + mdToken _GETCDTKN(GenericParam,Type,mdtTypeDefOrRef) __checkReturn HRESULT getGenericParamConstraintsForGenericParam(RID rid, RID *pEnd, RID *pFoundRid) From 19d17024c71e6081884f04a6bda97d3dd00200a0 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 19:20:54 +0900 Subject: [PATCH 05/80] Emit const generics for method --- src/coreclr/ilasm/assem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/ilasm/assem.cpp b/src/coreclr/ilasm/assem.cpp index e6326e5558445..c562fc01fb95c 100644 --- a/src/coreclr/ilasm/assem.cpp +++ b/src/coreclr/ilasm/assem.cpp @@ -684,7 +684,7 @@ BOOL Assembler::EmitMethod(Method *pMethod) mdGenericParam tkGP = mdTokenNil; for(i = 0; i < pMethod->m_NumTyPars; i++) { - if (FAILED(m_pEmitter->DefineGenericParam(MethodToken, i, pMethod->m_TyPars[i].Attrs(), pMethod->m_TyPars[i].Name(), 0, &tkNil, &tkGP))) + if (FAILED(m_pEmitter->DefineGenericParam(MethodToken, i, pMethod->m_TyPars[i].Attrs(), pMethod->m_TyPars[i].Name(), pMethod->m_TyPars[i].Type(), &tkNil, &tkGP))) { report->error("Unable to define generic param: %s'\n", pMethod->m_TyPars[i].Name()); } From 771317531a7f828a88477e2621e815004f413304 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 19:21:33 +0900 Subject: [PATCH 06/80] Add ildasm support for const generics declaration --- src/coreclr/ildasm/dasm.cpp | 8 +++++++- src/coreclr/inc/cor.h | 2 +- src/coreclr/md/compiler/import.cpp | 4 +++- src/coreclr/md/compiler/regmeta.h | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 860b36f2e9366..5175057e33b17 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -3043,6 +3043,7 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok ULONG ulSequence; DWORD attr; mdToken tkOwner; + mdToken tkType; HCORENUM hEnumTyPar = NULL; HCORENUM hEnumTyParConstr = NULL; char* szptr = &szString[strlen(szString)]; @@ -3058,7 +3059,7 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok for (i = 1; NumTyPars != 0; i++) { - g_pPubImport->GetGenericParamProps(tkTyPar, &ulSequence, &attr, &tkOwner, NULL, wzArgName, UNIBUF_SIZE/2, &chName); + g_pPubImport->GetGenericParamProps(tkTyPar, &ulSequence, &attr, &tkOwner, &tkType, wzArgName, UNIBUF_SIZE/2, &chName); //if(u16_strlen(wzArgName) >= MAX_CLASSNAME_LENGTH) // wzArgName[MAX_CLASSNAME_LENGTH-1] = 0; hEnumTyParConstr = NULL; @@ -3116,6 +3117,11 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok g_pPubImport->GetGenericParamProps(tkTyPar, NULL, &attr, NULL, NULL, wzArgName, UNIBUF_SIZE/2, &chName); //if(u16_strlen(wzArgName) >= MAX_CLASSNAME_LENGTH) // wzArgName[MAX_CLASSNAME_LENGTH-1] = 0; + if (RidFromToken(tkType)) + { + CQuickBytes out; + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"%s ",PrettyPrintClass(&out, tkType, g_pImport)); + } if (chName) { char* sz = (char*)(&wzUniBuf[UNIBUF_SIZE/2]); diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index 502de9349206b..d2c68a9f1bc43 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -1065,7 +1065,7 @@ DECLARE_INTERFACE_(IMetaDataImport2, IMetaDataImport) ULONG *pulParamSeq, // [OUT] Index of the type parameter DWORD *pdwParamFlags, // [OUT] Flags, for future use (e.g. variance) mdToken *ptOwner, // [OUT] Owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] For future use (e.g. non-type parameters) + mdToken *ptType, // [OUT] Type (TypeDefOrRef) _Out_writes_to_opt_(cchName, *pchName) LPWSTR wzname, // [OUT] Put name here ULONG cchName, // [IN] Size of buffer diff --git a/src/coreclr/md/compiler/import.cpp b/src/coreclr/md/compiler/import.cpp index 9c7d4c5a01b8c..06456df28bc9d 100644 --- a/src/coreclr/md/compiler/import.cpp +++ b/src/coreclr/md/compiler/import.cpp @@ -2816,7 +2816,7 @@ HRESULT RegMeta::GetGenericParamProps( // S_OK or error. ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) + mdToken *ptType, // [OUT] The type (TypeDef/Ref/Spec, for const generics use) _Out_writes_opt_ (cchName) LPWSTR szName, // [OUT] The name ULONG cchName, // [IN] Size of name buffer ULONG *pchName) // [OUT] Actual size of name @@ -2846,6 +2846,8 @@ HRESULT RegMeta::GetGenericParamProps( // S_OK or error. *pdwAttr = pMiniMd->getFlagsOfGenericParam(pGenericParamRec); if (ptOwner) *ptOwner = pMiniMd->getOwnerOfGenericParam(pGenericParamRec); + if (ptType) + *ptType = pMiniMd->getTypeOfGenericParam(pGenericParamRec); // This call has to be last to set 'hr', so CLDB_S_TRUNCATION is not rewritten with S_OK if (pchName || szName) IfFailGo(pMiniMd->getNameOfGenericParam(pGenericParamRec, szName, cchName, pchName)); diff --git a/src/coreclr/md/compiler/regmeta.h b/src/coreclr/md/compiler/regmeta.h index 56dea30093ad6..be7f075f8b816 100644 --- a/src/coreclr/md/compiler/regmeta.h +++ b/src/coreclr/md/compiler/regmeta.h @@ -601,7 +601,7 @@ class RegMeta : ULONG *pulParamSeq, // [OUT] Index of the type parameter DWORD *pdwParamFlags, // [OUT] Flags, for future use (e.g. variance) mdToken *ptOwner, // [OUT] Owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] For future use (e.g. non-type parameters) + mdToken *ptType, // [OUT] Type (TypeDefOrRef) _Out_writes_opt_ (cchName) LPWSTR wzname, // [OUT] Put name here ULONG cchName, // [IN] Size of buffer ULONG *pchName); // [OUT] Put size of name (wide chars) here. From eb021d9268788a4957ca7a8275975b4449e082c5 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 19:27:46 +0900 Subject: [PATCH 07/80] Introduce meta model v2.1 --- src/coreclr/md/inc/metamodel.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index 9031e6c016db4..043e24d60c351 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -37,8 +37,11 @@ #define METAMODEL_MAJOR_VER_V2_0 2 // Major version for v2.0 #define METAMODEL_MINOR_VER_V2_0 0 // Minor version for v2.0 +#define METAMODEL_MAJOR_VER_V2_1 2 // Major version for v2.1 +#define METAMODEL_MINOR_VER_V2_1 1 // Minor version for v2.1 + #define METAMODEL_MAJOR_VER 2 -#define METAMODEL_MINOR_VER 0 +#define METAMODEL_MINOR_VER 1 // Metadata version number up through Whidbey Beta2 #define METAMODEL_MAJOR_VER_B1 1 @@ -2018,10 +2021,9 @@ template class CMiniMdTemplate : public CMiniMdBase BOOL SupportsConstGenerics() { - return true; // Only 2.1 of the metadata support const generics - return (m_Schema.m_major > METAMODEL_MAJOR_VER_V2_0 || - (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_0 && m_Schema.m_minor >= METAMODEL_MINOR_VER_B1)); + return (m_Schema.m_major > METAMODEL_MAJOR_VER_V2_1 || + (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_1 && m_Schema.m_minor >= METAMODEL_MINOR_VER_V2_1)); }// SupportsConstGenerics protected: From 79f5bc38df4ff8adee9db8070fec70660ba26d06 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 22:23:17 +0900 Subject: [PATCH 08/80] Add parsing and emitting support for instantiation and calling --- .../dlls/mscorpe/ceefilegenwritertokens.cpp | 5 + src/coreclr/ilasm/asmparse.h | 1 + src/coreclr/ilasm/asmparse.y | 37 + src/coreclr/ilasm/grammar_after.cpp | 28 +- src/coreclr/ilasm/grammar_before.cpp | 2 + src/coreclr/ilasm/prebuilt/asmparse.cpp | 8708 +++++++++-------- src/coreclr/ildasm/dasm.cpp | 5 +- src/coreclr/ildasm/dis.cpp | 5 + src/coreclr/inc/corhdr.h | 6 +- src/coreclr/inc/formattype.cpp | 13 +- src/coreclr/inc/opcode.def | 10 +- src/coreclr/inc/openum.h | 10 +- 12 files changed, 4594 insertions(+), 4236 deletions(-) diff --git a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp index dae8b0c515fa3..7503bdb2dba8d 100644 --- a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp +++ b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp @@ -162,6 +162,7 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case ShortInlineI: case ShortInlineVar: case ShortInlineBrTarget: + case ShortInlineTypeI: PC++; break; @@ -173,11 +174,15 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case ShortInlineR: case InlineBrTarget: case InlineRVA: + case InlineTypeI: + case ShortInlineTypeR: PC += 4; break; case InlineI8: case InlineR: + case InlineTypeI8: + case InlineTypeR: PC += 8; break; diff --git a/src/coreclr/ilasm/asmparse.h b/src/coreclr/ilasm/asmparse.h index 5300a092b4e27..a34f076446799 100644 --- a/src/coreclr/ilasm/asmparse.h +++ b/src/coreclr/ilasm/asmparse.h @@ -297,6 +297,7 @@ class AsmParse : public ErrorReporter BinStr* MakeSig(unsigned callConv, BinStr* retType, BinStr* args, int ntyargs = 0); BinStr* MakeTypeClass(CorElementType kind, mdToken tk); BinStr* MakeTypeArray(CorElementType kind, BinStr* elemType, BinStr* bounds); + BinStr* MakeConstTypeClass(BinStr* type); char* fillBuff(_In_opt_z_ char* curPos); // refill the input buffer HANDLE hstdout; diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 62454711762f5..785cbef5fe24c 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -1686,6 +1686,7 @@ type : CLASS_ className { if($2 == PASM->m | OBJECT_ { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_OBJECT); } | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } + | CONST_ simpleType { $$ = parser->MakeConstTypeClass($2); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } | type '&' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_BYREF); } @@ -1709,18 +1710,39 @@ type : CLASS_ className { if($2 == PASM->m $$->append($1); corEmitInt($$, corCountArgs($3)); $$->append($3); delete $1; delete $3; }} + | CONST_ '!' '!' int32 { + $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt($$, $4); + } | '!' '!' int32 { //if(PASM->m_pCurMethod) { // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) // PASM->report->error("Invalid method type parameter '%d'\n",$3); $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt($$, $3); //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); } + | CONST_ '!' int32 { + $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt($$, $3); + } | '!' int32 { //if(PASM->m_pCurClass) { // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) // PASM->report->error("Invalid type parameter '%d'\n",$2); $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_VAR); corEmitInt($$, $2); //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); } + | CONST_ '!' '!' dottedName { int eltype = ELEMENT_TYPE_MCVAR; + int n=-1; + if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar($4); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf($4); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH($4); + eltype = ELEMENT_TYPE_MCVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid method const type parameter '%s'\n",$4); + n = 0x1FFFFFFF; } + $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); + } | '!' '!' dottedName { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar($3); @@ -1736,6 +1758,21 @@ type : CLASS_ className { if($2 == PASM->m n = 0x1FFFFFFF; } $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); } + | CONST_ '!' dottedName { int eltype = ELEMENT_TYPE_CVAR; + int n=-1; + if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar($3); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf($3); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH($3); + eltype = ELEMENT_TYPE_CVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid const type parameter '%s'\n",$3); + n = 0x1FFFFFFF; } + $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); + } | '!' dottedName { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar($2); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 45591afc9c57a..f315c5f7490f0 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -36,6 +36,11 @@ static Keywords keywords[] = { #undef InlineTok #undef InlineSwitch #undef InlineVarTok +#undef InlineTypeI +#undef InlineTypeI8 +#undef InlineTypeR +#undef ShortInlineTypeI +#undef ShortInlineTypeR #define InlineNone INSTR_NONE @@ -47,7 +52,7 @@ static Keywords keywords[] = { #define InlineR INSTR_R #define ShortInlineR INSTR_R #define InlineBrTarget INSTR_BRTARGET -#define ShortInlineBrTarget INSTR_BRTARGET +#define ShortInlineBrTarget INSTR_BRTARGET #define InlineMethod INSTR_METHOD #define InlineField INSTR_FIELD #define InlineType INSTR_TYPE @@ -55,6 +60,11 @@ static Keywords keywords[] = { #define InlineSig INSTR_SIG #define InlineTok INSTR_TOK #define InlineSwitch INSTR_SWITCH +#define InlineTypeI INSTR_I +#define InlineTypeI8 INSTR_I8 +#define InlineTypeR INSTR_R +#define ShortInlineTypeI INSTR_I +#define ShortInlineTypeR INSTR_R #define InlineVarTok 0 #define NEW_INLINE_NAMES @@ -1360,8 +1370,9 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) /* do nothing */ break; - case ELEMENT_TYPE_VALUETYPE : + case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_CLASS : + case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; @@ -1404,11 +1415,15 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: CorSigUncompressData((PCCOR_SIGNATURE&) ptr); // bound break; case ELEMENT_TYPE_VARFIXUP: case ELEMENT_TYPE_MVARFIXUP: + case ELEMENT_TYPE_CVARFIXUP: + case ELEMENT_TYPE_MCVARFIXUP: if(fFixupType) { BYTE* pb = ptr-1; // ptr incremented in switch @@ -1530,7 +1545,6 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) } } break; - default: case ELEMENT_TYPE_END : _ASSERTE(!"Unknown Type"); @@ -1774,6 +1788,14 @@ BinStr* AsmParse::MakeTypeClass(CorElementType kind, mdToken tk) ret->remove(5 - cnt); return(ret); } +/********************************************************************************/ +BinStr* AsmParse::MakeConstTypeClass(BinStr* type) +{ + BinStr* ret = new BinStr(); + ret->appendInt8(ELEMENT_TYPE_CONSTTYPE); + ret->append(type); + return(ret); +} /**************************************************************************/ void PrintANSILine(FILE* pF, _In_ __nullterminated char* sz) { diff --git a/src/coreclr/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp index b49a382f7d890..e13f5791c870f 100644 --- a/src/coreclr/ilasm/grammar_before.cpp +++ b/src/coreclr/ilasm/grammar_before.cpp @@ -106,6 +106,8 @@ unsigned int uMethodBeginLine,uMethodBeginColumn; #define ELEMENT_TYPE_VARFIXUP (ELEMENT_TYPE_MAX+2) #define ELEMENT_TYPE_MVARFIXUP (ELEMENT_TYPE_MAX+3) +#define ELEMENT_TYPE_CVARFIXUP (ELEMENT_TYPE_MAX+4) +#define ELEMENT_TYPE_MCVARFIXUP (ELEMENT_TYPE_MAX+5) FIFO TyParFixupList; void FixupTyPars(PCOR_SIGNATURE pSig, ULONG cSig); diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 0a8d27134f1a0..33f34eb272eb7 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -414,22 +414,23 @@ static int yylhs[] = { -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 32, 32, 31, 31, 31, 31, - 31, 132, 132, 132, 132, 132, 132, 66, 66, 66, - 65, 65, 89, 89, 86, 86, 87, 17, 17, 39, - 39, 39, 39, 39, 39, 39, 39, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 177, 177, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 122, 122, 90, 90, 91, - 91, 178, 123, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 124, 124, 179, 179, 179, 68, 68, - 180, 180, 180, 180, 180, 180, 181, 183, 182, 125, - 125, 126, 126, 184, 184, 184, 184, 127, 149, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 128, - 128, 185, 185, 185, 185, 185, 185, 185, 129, 129, - 94, 94, 94, 130, 130, 186, 186, 186, 186, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 32, + 32, 31, 31, 31, 31, 31, 132, 132, 132, 132, + 132, 132, 66, 66, 66, 65, 65, 89, 89, 86, + 86, 87, 17, 17, 39, 39, 39, 39, 39, 39, + 39, 39, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 177, 177, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 122, 122, 90, 90, 91, 91, 178, 123, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 124, 124, + 179, 179, 179, 68, 68, 180, 180, 180, 180, 180, + 180, 181, 183, 182, 125, 125, 126, 126, 184, 184, + 184, 184, 127, 149, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 93, 128, 128, 185, 185, 185, 185, + 185, 185, 185, 129, 129, 94, 94, 94, 130, 130, + 186, 186, 186, 186, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -499,531 +500,535 @@ static int yylen[] = { 2, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 2, 3, 4, 2, 2, - 2, 5, 5, 7, 4, 3, 2, 3, 2, 1, - 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, - 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, - 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, - 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, - 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, - 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, - 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, - 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, - 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, - 0, 2, 2, 0, 2, 4, 3, 1, 1, + 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, + 2, 2, 5, 5, 7, 4, 4, 3, 3, 2, + 4, 3, 3, 2, 1, 1, 2, 3, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 1, 1, 3, 2, 6, 7, 3, 3, + 3, 6, 0, 1, 3, 5, 6, 4, 4, 1, + 3, 3, 1, 1, 1, 1, 4, 1, 6, 6, + 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 5, 4, 7, 6, 7, 6, 9, 8, 3, + 8, 4, 0, 2, 0, 1, 3, 3, 0, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 0, 2, + 3, 1, 1, 1, 1, 3, 8, 2, 3, 1, + 1, 3, 3, 3, 4, 6, 0, 2, 3, 1, + 3, 1, 4, 3, 0, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 0, 2, 2, 3, 3, 4, + 2, 1, 1, 3, 5, 0, 2, 2, 0, 2, + 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 763, - 764, 0, 0, 0, 0, 0, 0, 841, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 768, + 769, 0, 0, 0, 0, 0, 0, 846, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 820, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 748, 749, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, - 762, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 825, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 784, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 557, 714, 0, 691, 699, - 697, 0, 700, 701, 702, 703, 704, 705, 710, 711, - 712, 713, 674, 698, 0, 690, 0, 0, 0, 495, - 0, 558, 559, 560, 0, 0, 0, 0, 0, 695, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 439, 0, 0, 0, 0, 139, 1, 0, - 794, 812, 830, 844, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, - 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 0, 556, 0, 31, 0, 0, 0, 0, 0, - 0, 228, 229, 230, 231, 221, 222, 72, 0, 73, - 0, 0, 103, 0, 21, 779, 0, 0, 785, 786, - 787, 789, 0, 790, 791, 792, 793, 0, 842, 843, - 0, 0, 0, 706, 707, 708, 709, 673, 0, 676, - 0, 692, 694, 237, 238, 0, 0, 0, 0, 0, - 0, 0, 687, 0, 681, 0, 0, 0, 0, 0, - 680, 679, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 64, 440, 68, 725, 0, 0, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 0, 375, 0, 338, 346, 347, 0, 0, 0, 0, - 368, 5, 0, 510, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 348, 352, 351, - 354, 353, 355, 0, 340, 342, 349, 361, 339, 0, - 0, 0, 0, 0, 0, 102, 0, 111, 132, 109, - 110, 113, 114, 0, 115, 116, 117, 118, 119, 120, - 121, 122, 112, 131, 124, 123, 133, 0, 136, 0, - 107, 0, 281, 276, 277, 278, 279, 280, 284, 282, - 292, 283, 285, 286, 287, 288, 289, 290, 291, 0, - 293, 317, 0, 0, 0, 416, 0, 415, 0, 414, - 0, 413, 0, 411, 0, 412, 436, 0, 0, 0, - 0, 775, 765, 0, 0, 823, 822, 821, 0, 0, - 0, 213, 0, 199, 193, 194, 195, 196, 201, 202, - 203, 204, 198, 205, 206, 197, 0, 0, 391, 0, - 0, 0, 0, 0, 734, 0, 733, 0, 0, 0, - 0, 0, 314, 315, 0, 0, 0, 0, 75, 69, - 0, 96, 781, 0, 0, 788, 0, 675, 693, 0, - 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, - 0, 718, 677, 0, 715, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 27, 0, 105, 242, 256, - 0, 0, 820, 0, 0, 3, 0, 339, 174, 175, - 177, 176, 178, 184, 185, 140, 0, 0, 0, 4, - 341, 343, 0, 0, 0, 0, 0, 0, 0, 350, - 512, 511, 513, 514, 44, 0, 0, 509, 515, 516, - 519, 518, 520, 524, 525, 0, 523, 526, 0, 0, - 0, 0, 531, 0, 0, 0, 0, 0, 385, 0, - 383, 386, 369, 0, 0, 0, 0, 0, 0, 0, - 0, 372, 0, 0, 0, 0, 12, 797, 805, 806, - 795, 798, 0, 0, 817, 0, 0, 13, 0, 815, - 0, 813, 0, 0, 0, 0, 14, 837, 838, 831, - 0, 0, 15, 848, 849, 845, 0, 125, 126, 127, - 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, - 0, 404, 0, 0, 824, 825, 826, 827, 828, 829, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 32, 0, 224, 233, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 678, 685, - 0, 0, 0, 0, 0, 179, 180, 0, 0, 0, - 0, 0, 139, 0, 245, 259, 830, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 517, 0, 548, 0, - 0, 0, 546, 367, 384, 370, 0, 387, 376, 377, - 378, 379, 381, 382, 380, 0, 0, 0, 0, 800, - 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 836, 0, 0, 0, 0, 0, 0, 151, - 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, - 0, 0, 0, 398, 403, 0, 767, 0, 0, 583, - 621, 575, 576, 0, 610, 577, 578, 579, 580, 581, - 582, 612, 588, 589, 590, 591, 0, 0, 0, 618, - 0, 0, 0, 0, 573, 574, 597, 598, 599, 616, - 600, 601, 602, 603, 0, 0, 606, 0, 614, 620, - 273, 0, 0, 0, 0, 0, 0, 0, 722, 0, - 0, 0, 0, 727, 0, 35, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 444, 0, 77, 0, 97, 98, 0, 99, 100, - 101, 0, 0, 0, 0, 682, 683, 720, 716, 0, - 0, 0, 244, 243, 0, 0, 258, 257, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, - 0, 358, 0, 0, 0, 0, 0, 0, 359, 0, - 0, 0, 0, 529, 0, 0, 532, 0, 0, 0, - 344, 0, 0, 0, 373, 374, 796, 807, 0, 809, - 801, 804, 782, 808, 814, 816, 0, 0, 0, 0, - 0, 134, 0, 0, 0, 0, 157, 0, 0, 0, - 148, 141, 294, 0, 0, 0, 305, 306, 307, 308, - 300, 301, 302, 299, 303, 304, 0, 0, 297, 0, - 0, 0, 0, 0, 0, 402, 410, 409, 408, 407, - 405, 406, 0, 0, 207, 611, 584, 585, 586, 587, - 0, 607, 613, 615, 619, 0, 0, 0, 617, 604, - 605, 659, 628, 629, 0, 656, 630, 631, 632, 633, - 634, 635, 658, 640, 641, 642, 643, 626, 627, 648, - 649, 650, 651, 652, 653, 654, 655, 625, 660, 661, - 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 672, 644, 0, 0, 592, 200, 0, 209, 0, 191, - 0, 738, 739, 741, 740, 0, 737, 0, 736, 723, - 0, 730, 78, 75, 70, 0, 0, 539, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 81, 82, 0, 80, - 0, 95, 0, 0, 0, 190, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 172, 251, - 252, 253, 254, 246, 0, 0, 0, 173, 265, 264, - 266, 267, 260, 181, 0, 362, 0, 365, 366, 0, - 45, 46, 0, 528, 0, 534, 535, 345, 0, 547, - 0, 0, 0, 835, 846, 0, 0, 160, 0, 0, - 0, 145, 0, 163, 0, 0, 296, 0, 0, 0, - 318, 319, 320, 321, 0, 0, 771, 0, 769, 0, - 0, 0, 0, 657, 636, 637, 638, 639, 646, 0, - 0, 647, 0, 593, 0, 272, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 211, 441, 0, 0, 78, 0, 0, 0, 217, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 0, 87, 86, - 0, 435, 776, 684, 0, 186, 0, 189, 0, 0, - 247, 248, 249, 250, 263, 261, 262, 357, 0, 0, - 530, 550, 388, 389, 0, 155, 0, 0, 166, 0, - 165, 162, 0, 0, 309, 310, 311, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 645, 0, 0, 594, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 731, 67, 169, 0, 0, 434, 0, 433, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 424, 0, 423, - 0, 422, 0, 421, 0, 419, 417, 0, 418, 420, - 0, 432, 0, 431, 0, 430, 0, 429, 0, 450, - 0, 446, 445, 0, 449, 0, 448, 0, 0, 90, - 0, 0, 0, 0, 0, 0, 364, 0, 0, 158, - 161, 146, 295, 313, 270, 0, 773, 0, 0, 570, - 0, 596, 0, 742, 0, 0, 0, 747, 732, 215, - 214, 484, 480, 428, 0, 427, 0, 426, 0, 425, - 0, 482, 480, 478, 476, 470, 473, 482, 480, 478, - 476, 493, 486, 447, 489, 89, 91, 0, 0, 188, - 0, 0, 0, 0, 168, 0, 0, 623, 0, 569, - 0, 595, 0, 0, 0, 0, 0, 482, 480, 478, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 0, 0, 0, 0, 802, - 322, 0, 744, 745, 746, 466, 485, 465, 481, 0, - 0, 0, 0, 456, 483, 455, 454, 479, 453, 477, - 451, 472, 471, 452, 474, 475, 460, 459, 458, 457, - 469, 494, 488, 487, 467, 490, 0, 468, 492, 255, - 0, 0, 0, 0, 0, 464, 463, 462, 461, 491, - 0, 0, 360, 0, 327, 323, 332, 333, 334, 335, - 336, 324, 325, 326, 328, 329, 330, 331, 274, 0, - 0, 0, 0, 568, 0, 0, 0, 0, 182, 337, - 0, 0, 0, 0, 0, 0, 0, 0, 183, + 0, 0, 0, 789, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 557, 719, 0, 696, 704, + 702, 0, 705, 706, 707, 708, 709, 710, 715, 716, + 717, 718, 674, 703, 0, 695, 0, 0, 0, 495, + 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, + 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, + 0, 799, 817, 835, 849, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, + 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, + 73, 0, 0, 103, 0, 21, 784, 0, 0, 790, + 791, 792, 794, 0, 795, 796, 797, 798, 0, 847, + 848, 0, 0, 0, 711, 712, 713, 714, 673, 0, + 676, 0, 697, 699, 237, 238, 0, 0, 677, 0, + 0, 0, 0, 0, 0, 690, 0, 682, 0, 0, + 0, 0, 0, 681, 680, 0, 0, 0, 0, 0, + 234, 0, 0, 0, 64, 440, 68, 730, 0, 0, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 0, 375, 0, 338, 346, 347, 0, + 0, 0, 0, 368, 5, 0, 510, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 348, 352, 351, 354, 353, 355, 0, 340, 342, 349, + 361, 339, 0, 0, 0, 0, 0, 0, 102, 0, + 111, 132, 109, 110, 113, 114, 0, 115, 116, 117, + 118, 119, 120, 121, 122, 112, 131, 124, 123, 133, + 0, 136, 0, 107, 0, 281, 276, 277, 278, 279, + 280, 284, 282, 292, 283, 285, 286, 287, 288, 289, + 290, 291, 0, 293, 317, 0, 0, 0, 416, 0, + 415, 0, 414, 0, 413, 0, 411, 0, 412, 436, + 0, 0, 0, 0, 780, 770, 0, 0, 828, 827, + 826, 0, 0, 0, 213, 0, 199, 193, 194, 195, + 196, 201, 202, 203, 204, 198, 205, 206, 197, 0, + 0, 391, 0, 0, 0, 0, 0, 739, 0, 738, + 0, 0, 0, 0, 0, 314, 315, 0, 0, 0, + 0, 75, 69, 0, 96, 786, 0, 0, 793, 0, + 675, 698, 0, 0, 0, 0, 689, 0, 0, 0, + 0, 0, 688, 0, 0, 0, 0, 723, 678, 0, + 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 27, 0, 105, 242, 256, 0, 0, 825, 0, + 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, + 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, + 0, 0, 0, 0, 0, 350, 512, 511, 513, 514, + 44, 0, 0, 509, 515, 516, 519, 518, 520, 524, + 525, 0, 523, 526, 0, 0, 0, 0, 531, 0, + 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, + 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, + 0, 0, 12, 802, 810, 811, 800, 803, 0, 0, + 822, 0, 0, 13, 0, 820, 0, 818, 0, 0, + 0, 0, 14, 842, 843, 836, 0, 0, 15, 853, + 854, 850, 0, 125, 126, 127, 128, 129, 130, 0, + 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 396, 0, 0, 404, 0, 0, + 829, 830, 831, 832, 833, 834, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 687, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 686, 0, 0, + 0, 0, 0, 179, 180, 0, 0, 0, 0, 0, + 139, 0, 245, 259, 835, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 517, 0, 548, 0, 0, 0, + 546, 367, 384, 370, 0, 387, 376, 377, 378, 379, + 381, 382, 380, 0, 0, 0, 0, 805, 804, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 841, 0, 0, 0, 0, 0, 0, 151, 153, 152, + 154, 0, 149, 150, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, + 0, 398, 403, 0, 772, 0, 0, 583, 621, 575, + 576, 0, 610, 577, 578, 579, 580, 581, 582, 612, + 588, 589, 590, 591, 0, 0, 0, 618, 0, 0, + 0, 0, 573, 574, 597, 598, 599, 616, 600, 601, + 602, 603, 0, 0, 606, 0, 614, 620, 273, 0, + 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, + 0, 732, 0, 35, 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 444, + 0, 77, 0, 97, 98, 0, 99, 100, 101, 0, + 0, 0, 0, 683, 684, 725, 721, 0, 0, 0, + 244, 243, 0, 0, 258, 257, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 358, + 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, + 0, 529, 0, 0, 532, 0, 0, 0, 344, 0, + 0, 0, 373, 374, 801, 812, 0, 814, 806, 809, + 787, 813, 819, 821, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 0, 157, 0, 0, 0, 148, 141, + 294, 0, 0, 0, 305, 306, 307, 308, 300, 301, + 302, 299, 303, 304, 0, 0, 297, 0, 0, 0, + 0, 0, 0, 402, 410, 409, 408, 407, 405, 406, + 0, 0, 207, 611, 584, 585, 586, 587, 0, 607, + 613, 615, 619, 0, 0, 0, 617, 604, 605, 659, + 628, 629, 0, 656, 630, 631, 632, 633, 634, 635, + 658, 640, 641, 642, 643, 626, 627, 648, 649, 650, + 651, 652, 653, 654, 655, 625, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 644, + 0, 0, 592, 200, 0, 209, 0, 191, 0, 743, + 744, 746, 745, 0, 742, 0, 741, 728, 0, 735, + 78, 75, 70, 0, 0, 539, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 82, 0, 80, 0, 95, + 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, + 0, 171, 0, 0, 0, 0, 172, 251, 252, 253, + 254, 246, 0, 0, 0, 173, 265, 264, 266, 267, + 260, 181, 0, 362, 0, 365, 366, 0, 45, 46, + 0, 528, 0, 534, 535, 345, 0, 547, 0, 0, + 0, 840, 851, 0, 0, 160, 0, 0, 0, 145, + 0, 163, 0, 0, 296, 0, 0, 0, 318, 319, + 320, 321, 0, 0, 776, 0, 774, 0, 0, 0, + 0, 657, 636, 637, 638, 639, 646, 0, 0, 647, + 0, 593, 0, 272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 211, + 441, 0, 0, 78, 0, 0, 0, 217, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 0, 87, 86, 0, 435, + 781, 685, 0, 186, 0, 189, 0, 0, 247, 248, + 249, 250, 263, 261, 262, 357, 0, 0, 530, 550, + 388, 389, 0, 155, 0, 0, 166, 0, 165, 162, + 0, 0, 309, 310, 311, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 594, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 736, 67, + 169, 0, 0, 434, 0, 433, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 424, 0, 423, 0, 422, + 0, 421, 0, 419, 417, 0, 418, 420, 0, 432, + 0, 431, 0, 430, 0, 429, 0, 450, 0, 446, + 445, 0, 449, 0, 448, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 364, 0, 0, 158, 161, 146, + 295, 313, 270, 0, 778, 0, 0, 570, 0, 596, + 0, 747, 0, 0, 0, 752, 737, 215, 214, 484, + 480, 428, 0, 427, 0, 426, 0, 425, 0, 482, + 480, 478, 476, 470, 473, 482, 480, 478, 476, 493, + 486, 447, 489, 89, 91, 0, 0, 188, 0, 0, + 0, 0, 168, 0, 0, 623, 0, 569, 0, 595, + 0, 0, 0, 0, 0, 482, 480, 478, 476, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 0, 0, 0, 0, 807, 322, 0, + 749, 750, 751, 466, 485, 465, 481, 0, 0, 0, + 0, 456, 483, 455, 454, 479, 453, 477, 451, 472, + 471, 452, 474, 475, 460, 459, 458, 457, 469, 494, + 488, 487, 467, 490, 0, 468, 492, 255, 0, 0, + 0, 0, 0, 464, 463, 462, 461, 491, 0, 0, + 360, 0, 327, 323, 332, 333, 334, 335, 336, 324, + 325, 326, 328, 329, 330, 331, 274, 0, 0, 0, + 0, 568, 0, 0, 0, 0, 182, 337, 0, 0, + 0, 0, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 157, 71, 467, 846, 158, 725, 105, 106, 751, 35, - 36, 676, 730, 406, 1063, 73, 1075, 777, 778, 965, - 966, 1012, 1474, 1475, 549, 1530, 731, 732, 733, 210, - 495, 496, 174, 175, 842, 843, 1070, 656, 1077, 995, - 1242, 881, 882, 1496, 1497, 1492, 1487, 1494, 1495, 1486, - 1503, 1504, 1502, 160, 672, 498, 499, 1190, 1191, 970, - 674, 1301, 675, 883, 662, 663, 1129, 752, 1194, 779, - 625, 211, 228, 229, 107, 230, 108, 213, 186, 189, - 207, 1554, 694, 695, 783, 657, 658, 92, 37, 113, - 474, 115, 204, 116, 38, 39, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 40, 41, 296, 42, 43, 180, 44, 338, 46, 47, - 339, 49, 50, 352, 51, 353, 52, 354, 53, 355, - 54, 340, 341, 342, 58, 343, 290, 60, 61, 62, - 188, 381, 627, 526, 527, 919, 528, 920, 529, 214, - 1154, 1163, 63, 844, 344, 345, 346, 347, 738, 349, - 350, 573, 574, 351, 575, 739, 576, 577, 578, 579, - 64, 200, 76, 418, 419, 885, 65, 599, 591, 592, - 593, 594, 601, 602, 610, 616, + 158, 71, 470, 854, 159, 733, 105, 106, 759, 35, + 36, 682, 738, 409, 1071, 73, 1083, 785, 786, 973, + 974, 1020, 1482, 1483, 555, 1538, 739, 740, 741, 211, + 501, 502, 175, 176, 850, 851, 1078, 662, 1085, 1003, + 1250, 889, 890, 1504, 1505, 1500, 1495, 1502, 1503, 1494, + 1511, 1512, 1510, 161, 678, 504, 505, 1198, 1199, 978, + 680, 1309, 681, 891, 668, 669, 1137, 760, 1202, 787, + 631, 212, 229, 230, 107, 231, 108, 214, 187, 190, + 208, 1562, 702, 703, 791, 663, 664, 92, 37, 113, + 477, 115, 205, 116, 38, 39, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 40, 41, 299, 42, 43, 181, 44, 341, 46, 47, + 342, 49, 50, 355, 51, 356, 52, 357, 53, 358, + 54, 343, 344, 345, 58, 346, 293, 60, 61, 62, + 189, 384, 633, 532, 533, 927, 534, 928, 535, 215, + 1162, 1171, 63, 852, 347, 348, 349, 350, 746, 352, + 353, 579, 580, 354, 581, 747, 582, 583, 584, 585, + 64, 201, 76, 421, 422, 893, 65, 605, 597, 598, + 599, 600, 607, 608, 616, 622, }; static int yysindex[] = { 0, - 1078, 0, -348, 648, 0, 174, -232, 1890, 1890, 0, - 0, 113, 1269, 211, 302, -113, -46, 0, -127, 227, - 227, -176, -176, 9519, 305, 0, 648, 648, 648, 648, - 0, 0, 250, 0, 276, 276, 276, 0, 0, 0, - 441, 480, 0, 0, 0, 0, 0, 0, 0, 509, - 516, 548, 564, 0, 0, 0, 0, 0, 0, 276, - 0, 268, 0, 427, 227, 0, 0, 0, 0, 609, - 0, 227, 0, 0, 0, 536, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13805, 9, 655, 0, 0, 680, 749, 0, 0, - 660, 812, 812,13705, 5359, 0, 767, 0, 0, 799, - 227, 227, -24, 0, 1463, 266, 648, 609, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5359, 0, 0, - 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 813, 0, 543, 813, 525, 0, - 5197, 0, 0, 0, -8, 215, 609, 819, 738, 0, - 455, 468, 0, 479, 485, 1623, 813, 57, 609, 609, - 609, 0, 0, 848, 654, 856, 885, 0, 0, 1606, - 0, 0, 0, 0, 889, 5073,13805, 631, 7966, 908, - 76, 85, 101, 115, 123, 144, 928, 1430, 938, 0, - 0, 276, 28, 1216, 648, 899,12904, 921, 26, 902, - 0, 179, 0, 812, 0, 959, 65, 957, 740, 227, - 227, 0, 0, 0, 0, 0, 0, 0, 971, 0, -13166, 177, 0, 925, 0, 0, 2, 1463, 0, 0, - 0, 0, 541, 0, 0, 0, 0, 609, 0, 0, - 16, 609, 0, 0, 0, 0, 0, 0, 813, 0, - 766, 0, 0, 0, 0,13524, 648, 936, 104, 955, - 833, 609, 0, 648, 0, 1011, 1012, 648, -147, 5359, - 0, 0, 648, 648, 648, 648, 5359, 0, 813, 934, - 957, 0, 0, 0, 0, 6340, 924, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 227, 0, 0, 0, 227, 977, -55,13864, - 0, 0, 1009, 0, 600, 227, -176, 170, 600, 1623, - 4887,13805, -143, 812,13705, 1032, 276, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 0, 0, 853, - 273, 316, 504, -19, 83, 0, 1037, 0, 0, 0, - 0, 0, 0, 961, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 643, 0,13805, - 0, 1038, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1039, - 0, 0, 1049, 227, 227, 0, 227, 0, 227, 0, - -176, 0, 520, 0, 520, 0, 0, 981, 1064, 536, - 1072, 0, 0, 227, 227, 0, 0, 0, 1164, 609, - 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1083, 827, 0, 648, - 140, 862, 995, 5359, 0,13967, 0, 866, 1086, 1094, - 1095, 1623, 0, 0, 87, 609, 1098, 888, 0, 0, - 957, 0, 0, 706, 17, 0, 648, 0, 0, 609, - 897, 521, 648, 648, 648, 609, 0, 609,13805,13805, - 609, 0, 0, 932, 0, 51, 902, 1110, 1167, 609, - 609, 609, 609,13315, 0, 0, 858, 0, 0, 0, - 227, 227, 0, -292,14026, 0, 1102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1107, 1109, 1111, 0, - 0, 0, 1163, 227, 499, 534, 227, 0, 966, 0, - 0, 0, 0, 0, 0, 1193, 1201, 0, 0, 0, - 0, 0, 0, 0, 0,13524, 0, 0, 1206, 957, - 276, 5359, 0, 600, 1209, 1217, 0,11729, 0,13805, - 0, 0, 0, 853, -47, -47, -47, -47, 273, 944, - 948, 0, 800, 1205, 43, 21, 0, 0, 0, 0, - 0, 0, 276, 276, 0, 1208, 1211, 0, 276, 0, - 276, 0, 1230, -186, 648, 804, 0, 0, 0, 0, - 648, 805, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, -1, 0, 0, 1232, 227, 862, 5507, - 862, 1237, 1188, 1244, 1245, 1247, 1248, 1258, 0, 1430, - 1261, 0, 1252, 1259, 0, 0, 0, 0, 0, 0, - 227,14175, 31, 540, 0, 532, 1265, 1267, 0, 1280, - 1210, 1271, 1194, 1260, 0, 1057, 0, 0, 1263, 5817, - 1285, 1290, -159, 1214, 2627, 414, 276, 648, 609, 648, - 648, 819, 819, 819, 1297, 1300, 227, -147, 0, 0, - 5359, 1302,13805,13627, 1005, 0, 0, 1216, 659, 754, - 0, 1069, 0,11812, 0, 0, 0, 227, 1254, 227, - 609, 227, 141, 1255, 5359, -159, 227, -176, 609, 1075, - 862, 1311, 771, 1309, 1313, 1320, 0, 0, 0, 5507, - 1316, 1326, 0, 0, 0, 0, 600, 0, 0, 0, - 0, 0, 0, 0, 0, 536, 227, 227, 1338, 0, - 0, 1323, 1342, 957, 1345, 1346, 1343, 1353, 1356, 1360, - 227, 648, 0, 609, 648, 34, 648, 1366, 1354, 0, - 0, 0, 0, 1114, 0, 0, 164, 128, 1348,13805, - 1371, 8, 727, -85, 135, 442, 1322, 0, 1322, 1322, - 1322, 1322, 1322, 0, 0, 227, 0, 227, 1374, 0, - 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1379, 931, 933, 0, - 920, 1389, -251, 1154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1379, 1379, 0, 7243, 0, 0, - 0, 73, 1391, 276, 536, 1372, 0, 975, 0, 862, - 1314, 0,13967, 0, 1317, 0, 251, 227, 1381, 0, - 0, 609, 1098, 0, 150, 151, 909, 158, 184, 372, - 393, 415, 432, 437, 501, 545, 547, 630, 678, 684, - 0, 0, 41, 0, 276, 0, 0, 536, 0, 0, - 0, 1393, 609, 609, 819, 0, 0, 0, 0, 902, - 0, 990, 0, 0, 609, 648, 0, 0, 5359, 609, - 227, 609, 227, 527, 5359, -159,12516, 0, 217, 976, - 449, 0, 1053, 1352, 1355,13805, 1372,13524, 0, 1405, - 1406, 648, 604, 0, 0, 600, 0, 600, 1411, 135, - 0, 0, 1139, 1149, 0, 0, 0, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 1433, 819, 609, 227, - 609, 0, 227, 1435, 1114,13805, 0,13805, 757, 648, - 0, 0, 0, 862, 1586, 1444, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1428, 1434, 0, 1400, - 1407, 1409, 1410, 1465, -159, 0, 0, 0, 0, 0, - 0, 0, 1464, 0, 0, 0, 0, 0, 0, 0, - 1003, 0, 0, 0, 0, 862, 1427, 1429, 0, 0, - 0, 0, 0, 0, 860, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 14, 96, 0, 0, -44, 0, 2925, 0, - 1479, 0, 0, 0, 0, 957, 0, 1482, 0, 0, - 1401, 0, 0, 0, 0, 957, 1432, 0, 1499, 1502, - 1483, 1505, -61, 227, 227, 227, 687, 724, 750, 751, - 227, 227, 227, 227, 227, 227, -176, 227, 506, 227, - 861, 227, 227, 227, 227, 227, 227, 227, -176, 227, - 2627, 227, -103, 227, 984, 227, 0, 0, 2322, 0, - 1510, 0, 1131, 1513, 1623, 0, 609, 827, 1462, 1470, -13805,13524, 1056, 0, 1623, 1623, 1623, 1623, 0, 0, - 0, 0, 0, 0, 1623, 1623, 1623, 0, 0, 0, - 0, 0, 0, 0, 536, 0, 1523, 0, 0, 1294, - 0, 0, 609, 0, 1529, 0, 0, 0, 536, 0, - 536, 227, 1514, 0, 0, 1535, 227, 0, 648, 1538, - 1536, 0, -1, 0, 757, 957, 0, 227, 234, 336, - 0, 0, 0, 0,14175, 1521, 0, 227, 0, 1522, - 839, 227, 227, 0, 0, 0, 0, 0, 0, 862, - 1489, 0, 227, 0, 132, 0, 1544, 1545, 1085, 1546, - 1548, 1549, 1551, 1557, 1561, 1562, 1563, 1566, 1583, 0, - 957, 0, 0, 227, 624, 0, 122, 1503, 1567, 0, - 0, 0, 0, 1589, 1539, 1590, 1540, 227, 227, 227, - 227, 227, 227, -176, 227, 1594, 1550, 1604, 1553, 1607, - 1568, 1615, 1577, 1630, 1636, 1585, 1638, 1639, 1588, 1644, - 1595, 1649, 1602, 1655, 1609, 1656, 1610, 1663, 1612, 1665, - 1666, 1616, 1669, 1456, 1679, 1628, 0, 741, 0, 0, - 801, 0, 0, 0, 116, 0, 1678, 0, 1451, 812, - 0, 0, 0, 0, 0, 0, 0, 0,13805, -159, - 0, 0, 0, 0, 43, 0, 1686, 757, 0,13805, - 0, 0, 1652, 1687, 0, 0, 0, 0, 1689, 1692, - 0, 227, 862, 1640, 1646, 957, 0, 1651, 227, 0, - 1702, 1706, 1707, 1708, 1704, 1691, 1694, 1695, 1713, 202, - 0, 0, 0, 1714, 1715, 0, 1717, 0, 1718, 1727, - 1676, 1729, 1716, 1730, 1719, 1769, 1721, 0, 1771, 0, - 1775, 0, 1776, 0, 1777, 0, 0, 1781, 0, 0, - 1782, 0, 1783, 0, 1793, 0, 1794, 0, 1796, 0, - 1798, 0, 0, 1810, 0, 1811, 0, 1818, 1496, 0, - 1766, 428, 0,13805, -159, 5359, 0, 1801, 1804, 0, - 0, 0, 0, 0, 0, 0, 0, 1822, 850, 0, -14266, 0, 1772, 0, 227, 227, 227, 0, 0, 0, - 0, 0, 0, 0, 1824, 0, 1827, 0, 1828, 0, - 1830, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2627, 1835, 0, - 1801,13524, 1780, 1837, 0, 43, 1842, 0, 862, 0, - 0, 0, 1847, 1852, 1853, 25, 38, 0, 0, 0, - 0, 49, 69, 77, 66, 91, 228, 94, 97, 99, - 89, 2017, 33, 759, 0, 1372, 1841, 1622, 0, 0, - 0, 873, 0, 0, 0, 0, 0, 0, 0, 106, - 130, 133, 117, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, - 0, -159, 1857, 2587, 862, 0, 0, 0, 0, 0, - 1858, 1861, 0, 1868, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, - 1412, 0, 227, 0, 1569, 1879, 1880, 812, 0, 0, - 5359,13524, 1650, -159, 1801, 1886, 0, 1892, 0, +14929, 0, -281, 626, 0, 125, -222, 1814, 1814, 0, + 0, -18, 2394, 189, 163, -247, -184, 0, -190, 79, + 79, 261, 261,10185, 243, 0, 626, 626, 626, 626, + 0, 0, 133, 0, 203, 203, 203, 0, 0, 0, + 311, 361, 0, 0, 0, 0, 0, 0, 0, 373, + 416, 427, 436, 0, 0, 0, 0, 0, 0, 203, + 0, 205, 0, 1668, 79, 0, 0, 0, 0, 517, + 0, 79, 0, 0, 0, 528, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12471, -13, 593, 0, 0, 582, 607, 0, 0, + 638, 841, 841,12386, 8115, 0, 632, 0, 0, 672, + 79, 79, -40, 0, 1631, 597, 626, 517, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8115, 0, 0, + 0, 1019, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1205, 0, 418, 1205, -162, 0, + 5553, 0, 0, 0, 1835, 73, 214, 517, 698, 413, + 0, 363, 367, 0, 371, 428, 2999, 1205, 36, 517, + 517, 517, 0, 0, 762, 559, 799, 813, 0, 0, +13962, 0, 0, 0, 0, 820, 5221,12471, 562, 6772, + 843, 86, 102, 106, 109, 124, 164, 854, 1250, 857, + 0, 0, 203, 123, 658, 626, 814,11954, 851, 152, + 676, 0, 580, 0, 841, 0, 882, 65, 883, 682, + 79, 79, 0, 0, 0, 0, 0, 0, 0, 911, + 0, 1722, 174, 0, 870, 0, 0, 12, 1631, 0, + 0, 0, 0, 498, 0, 0, 0, 0, 517, 0, + 0, 11, 517, 0, 0, 0, 0, 0, 0, 1205, + 0, 697, 0, 0, 0, 0,12084, 326, 0, 626, + 897, 43, 914, 936, 517, 0, 626, 0, 980, 983, + 626, -85, 8115, 0, 0, 626, 626, 626, 626, 8115, + 0, 1205, 879, 883, 0, 0, 0, 0, 7006,13135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 79, 0, 0, 0, 79, + 938, -41,12549, 0, 0, 995, 0, 571, 79, 261, + 397, 571, 2999, 1376,12471, -155, 841,12386, 1000, 203, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 655, -24, 540, 800, 1967, 271, 0, 1021, + 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 0,12471, 0, 1023, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1057, 0, 0, 1080, 79, 79, 0, 79, + 0, 79, 0, 261, 0, 613, 0, 613, 0, 0, + 1003, 1081, 528, 1088, 0, 0, 79, 79, 0, 0, + 0, 910, 517, 0, 0, 1100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, + 1319, 0, 626, 62, 885, 1026, 8115, 0,12660, 0, + 889, 1111, 1115, 1119, 2999, 0, 0, 143, 517, 1101, + 888, 0, 0, 883, 0, 0, 703, 28, 0, 626, + 0, 0, 517, 909, 936, 517, 0, 178, 626, 626, + 626, 517, 0, 517,12471,12471, 517, 0, 0, 906, + 0, 91, 676, 1122, 1144, 517, 517, 517, 517,11753, + 0, 0, 824, 0, 0, 0, 79, 79, 0, -289, +12759, 0, 1069, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1071, 1072, 1078, 0, 0, 0, 1132, 79, + 388, 505, 79, 0, 932, 0, 0, 0, 0, 0, + 0, 1168, 1175, 0, 0, 0, 0, 0, 0, 0, + 0,12084, 0, 0, 1187, 883, 203, 8115, 0, 571, + 1188, 1191, 0,14059, 0,12471, 0, 0, 0, 655, + 53, 53, 53, 53, -24, 916, 918, 0, 769, 1189, + 81, 17, 0, 0, 0, 0, 0, 0, 203, 203, + 0, 1206, 1209, 0, 203, 0, 203, 0, 1222, -212, + 626, 802, 0, 0, 0, 0, 626, 811, 0, 0, + 0, 0, 79, 0, 0, 0, 0, 0, 0, -7, + 0, 0, 1235, 79, 885, 840, 885, 1241, 1192, 1243, + 1248, 1252, 1253, 1263, 0, 1250, 1274, 0, 1233, 1273, + 0, 0, 0, 0, 0, 0, 79,15137, 20, 422, + 0, 591, 1277, 1275, 0, 1014, 1506, 1278, 1198, 1268, + 0, 1070, 0, 0, 1269, 5863, 1292, 1294, -123, 1217, + 3595, 518, 203, 626, 517, 626, 517, 0, 626, 698, + 698, 698, 1305, 1307, 79, -85, 0, 0, 8115, 1309, +12471,12308, 1315, 0, 0, 658, 554, 630, 0, 1077, + 0,14232, 0, 0, 0, 79, 1261, 79, 517, 79, + 467, 1262, 8115, -123, 79, 261, 517, 1082, 885, 1322, + 689, 1320, 1331, 1333, 0, 0, 0, 840, 1337, 1336, + 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, + 0, 0, 0, 528, 79, 79, 1341, 0, 0, 1324, + 1344, 883, 1345, 1346, 1348, 1349, 1355, 1356, 79, 626, + 0, 517, 626, 21, 626, 1357, 1350, 0, 0, 0, + 0, 1091, 0, 0, 299, 227, 1339,12471, 1358, 3, + 352, -213, 131, 829, 1312, 0, 1312, 1312, 1312, 1312, + 1312, 0, 0, 79, 0, 79, 1363, 0, 0, 0, + 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1365, 915, 917, 0, 919, 1367, + -372, 1131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1365, 1365, 0,11065, 0, 0, 0, 366, + 1370, 203, 528, 1360, 0, 771, 0, 885, 1293, 0, +12660, 0, 1299, 0, 190, 79, 1361, 0, 0, 517, + 1101, 0, 169, 187, 1027, 232, 330, 369, 432, 458, + 469, 521, 551, 581, 596, 628, 657, 659, 0, 0, + 312, 0, 203, 0, 0, 528, 0, 0, 0, 1383, + 517, 517, 698, 0, 0, 0, 0, 676, 0, 966, + 0, 0, 517, 626, 0, 0, 8115, 517, 79, 517, + 79, 635, 8115, -123,13084, 0, 92, 1034, 2081, 0, + 1036, 1332, 1335,12471, 1360,12084, 0, 1388, 1394, 626, + 907, 0, 0, 571, 0, 571, 1395, 131, 0, 0, + 1123, 1124, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 0, 1398, 698, 517, 79, 517, 0, + 79, 1402, 1091,12471, 0,12471, 968, 626, 0, 0, + 0, 885, 955, 1404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1389, 1390, 0, 1359, 1362, 1366, + 1369, 1409, -123, 0, 0, 0, 0, 0, 0, 0, + 1407, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 0, 885, 1378, 1379, 0, 0, 0, 0, + 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -3, 153, 0, 0, -48, 0, 2079, 0, 1418, 0, + 0, 0, 0, 883, 0, 1420, 0, 0, 1354, 0, + 0, 0, 0, 883, 1386, 0, 1430, 1439, 1446, 1447, + 477, 79, 79, 79, 660, 665, 685, 686, 79, 79, + 79, 79, 79, 79, 261, 79, 557, 79, 715, 79, + 79, 79, 79, 79, 79, 79, 261, 79, 3595, 79, + -89, 79, 569, 79, 0, 0, 3291, 0, 1450, 0, + 1079, 1457, 2999, 0, 517, 1319, 1406, 1410,12471,12084, + 978, 0, 2999, 2999, 2999, 2999, 0, 0, 0, 0, + 0, 0, 2999, 2999, 2999, 0, 0, 0, 0, 0, + 0, 0, 528, 0, 1458, 0, 0, 1230, 0, 0, + 517, 0, 1464, 0, 0, 0, 528, 0, 528, 79, + 1448, 0, 0, 1466, 79, 0, 626, 1473, 1480, 0, + -7, 0, 968, 883, 0, 79, 604, 654, 0, 0, + 0, 0,15137, 1469, 0, 79, 0, 1465, 1022, 79, + 79, 0, 0, 0, 0, 0, 0, 885, 1437, 0, + 79, 0, 213, 0, 1495, 1501, 1044, 1507, 1511, 1512, + 1513, 1514, 1515, 1518, 1520, 1524, 1525, 0, 883, 0, + 0, 79, 871, 0, 16, 1417, 1504, 0, 0, 0, + 0, 1526, 1483, 1537, 1488, 79, 79, 79, 79, 79, + 79, 261, 79, 1542, 1491, 1544, 1493, 1549, 1498, 1551, + 1500, 1553, 1555, 1510, 1558, 1564, 1516, 1570, 1519, 1572, + 1521, 1575, 1529, 1577, 1530, 1585, 1534, 1590, 1591, 1543, + 1597, 1380, 1598, 1552, 0, 838, 0, 0, 642, 0, + 0, 0, 384, 0, 1600, 0, 1375, 841, 0, 0, + 0, 0, 0, 0, 0, 0,12471, -123, 0, 0, + 0, 0, 81, 0, 1609, 968, 0,12471, 0, 0, + 970, 1620, 0, 0, 0, 0, 1623, 1625, 0, 79, + 885, 1578, 1582, 883, 0, 1583, 79, 0, 1630, 1637, + 1638, 1643, 1644, 1628, 1632, 1634, 1648, 41, 0, 0, + 0, 1652, 1657, 0, 1663, 0, 1664, 1673, 1626, 1682, + 1635, 1688, 1642, 1695, 1645, 0, 1697, 0, 1699, 0, + 1701, 0, 1703, 0, 0, 1704, 0, 0, 1706, 0, + 1707, 0, 1708, 0, 1711, 0, 1713, 0, 1714, 0, + 0, 1721, 0, 1727, 0, 1723, 1508, 0, 1677, 421, + 0,12471, -123, 8115, 0, 1712, 1717, 0, 0, 0, + 0, 0, 0, 0, 0, 1735, 740, 0,15220, 0, + 1684, 0, 79, 79, 79, 0, 0, 0, 0, 0, + 0, 0, 1738, 0, 1739, 0, 1741, 0, 1747, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3595, 1756, 0, 1712,12084, + 1709, 1761, 0, 81, 1762, 0, 885, 0, 0, 0, + 1763, 1764, 1765, 31, 39, 0, 0, 0, 0, 63, + 83, 115, 24, 90, 473, 119, 122, 134, 93, 1776, + 38, 578, 0, 1360, 1767, 1536, 0, 0, 0, 1039, + 0, 0, 0, 0, 0, 0, 0, 137, 162, 167, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1548, 0, 0, 0, 0, -123, + 1771, 2645, 885, 0, 0, 0, 0, 0, 1773, 1775, + 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 987, 1306, 0, + 79, 0, 1461, 1779, 1780, 841, 0, 0, 8115,12084, + 1550, -123, 1712, 1782, 0, 1785, 0, }; static int yyrindex[] = { 0, - 0, 0, 6003, 0, 0,13014, 1705, 0, 0, 0, - 0, 0, 5669, 0, 0, 309, 1891, 0, 9953, 0, + 0, 0, 5739, 0, 0,12178, 1502, 0, 0, 0, + 0, 0,13105, 0, 0, -19, 2253, 0, 9006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1893, 1893, 1893, 0, 0, 0, + 0, 0, 0, 0, 1786, 1786, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1893, - 0, -31, 0, 0, 0, 0, 0, 0, 0, 1812, - 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, + 0, -20, 0, 0, 0, 0, 0, 0, 0, 1700, + 0, 0, 0, 0, 0, 1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7750, 0, 0, 0, 0, 0, 0, - 6127, 6995, 6995, 0, 0, 0, 6269, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10065, 0, 0, + 0, 0, 0, 8416, 0, 0, 0, 0, 0, 0, + 6173, 6483, 6483, 0, 0, 0, 6935, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1813, 2421, 0, 0, - 0, 0, 0, 0, 0, 5669, 1819, 4850, 5160, 5470, - 5780, 0, 0, 0, 1902, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1825, 6995, 0, - 9453, 9453, 9453, 9453, 9453, 9453, 0, 0, 0, 0, - 0, 1893, 8125, 0, 0, 0, 0, 0, 0, 7142, - 0, 9060, 0, 5669, 0, 0, 0, 9233, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1871, 2479, 0, + 0, 0, 0, 0, 0, 0,13105, 1742, 5516, 5826, + 6136, 6446, 0, 0, 0, 1787, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1746, 6483, + 0,10119,10119,10119,10119,10119,10119, 0, 0, 0, + 0, 0, 1786, 8791, 0, 0, 0, 0, 0, 0, + 7808, 0, 9726, 0,13105, 0, 0, 0, 9899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8340, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1829, 0, 0, - 1831,10198, 4549, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1749, 0, + 0, 1750,10731, 5215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3941, 0, 0, 0, 0, 0, 0, 1901, 1885, - 0, 0, 0, 0, 0, 0, 0, 0, 1819, 0, - 6090, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3999, 0, 0, 0, 0, 0, + 0, 1826, 1812, 0, 0, 0, 0, 0, 0, 0, + 0, 1742, 0, 6756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5669, - 0, 0, 0, 5669, 0, 0, 1893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,13105, 0, 0, 0,13105, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1826, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1836, - 1376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1833, 0, 0, 7952, 0, - 0, 5669, 0, 0, 1901, 24, 1910, 0, 0, 0, - 6524, 0, 0,10309, 1838, 0, 0, 0, 0,11176, - 0, 0, 0, 0, 0, 4245, 0, 2117, 0, 0, -10340, 0, 0, 185, 0, 0, 555, 0, 1898,10495, -10636,10667,10778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1752, 1434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1753, 0, + 0, 8618, 0, 0,13105, 0, 0, 1826, 110, 1789, + 0, 0, 0, 7190, 0, 0,10864, 1754, 0, 0, + 0, 0,13428, 0, 0, 4303, 0, 0, 0, 0, + 0, 4607, 0, 2175, 0, 0,10975, 0, 0, 396, + 0, 0, 684, 0, 1817,11006,11161,11302,11333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11963, - 1893, 0, 0, 1921, 0, 0,14296, 0, 0, 0, - 0, 0, 0,12130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1893, 1893, 0, 0, 0, 0, 1893, 0, - 1893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 143, 0, 0, 1843, 0, 4594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8309, 0, 0, 0, 0, 0, 0, - 0, 460, 9761, 0, 7393, 0, 0, 1922, 0, 0, - 0, 1844, 0, 0, 0, 0, 0, 0, 6703, 1885, - 0, 0, 0, 0, -65, 0, 1893, 0, 1848, 0, - 0, 2725, 3029, 3333, 0, 0, 387, 410, 0, 0, - 0,13465, 0, 0, 5669, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,14315, 1786, 0, 0, 1839, + 0, 0,13054, 0, 0, 0, 0, 0, 0,14414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12213, 0, 0, 0, 0, 0, 0, 0,11646, 0, - 0, 0, 0, 1926, 0, 1929, 0,14296, 0, 0, - 0, 1931, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1786, 1786, + 0, 0, 0, 0, 1786, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2325, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14125, 0, 0, 143, 0, 0, 0, - 0, 4594, 0, 0, 682, 0, 9453, 0, 9453, 9453, - 9453, 9453, 9453, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, + 0, 0, 1758, 0, 1245, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8975, + 0, 0, 0, 0, 0, 0, 0, 737,10427, 0, + 8059, 0, 0, 1845, 0, 0, 0, 1783, 0, 0, + 0, 0, 0, 0, 7369, 1812, 0, 0, 0, 0, + -69, 0, 1786, 0, 1793, 0, 4911, 0, 0, 2783, + 3087, 3391, 0, 0, 412, 523, 0, 0, 0,11895, + 0, 0,13105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,14565, 0, + 0, 0, 0, 0, 0, 0,13879, 0, 0, 0, + 0, 1855, 0, 1860, 0,13054, 0, 0, 0, 1869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, - 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 692, 692, 0, 5, 0, 0, - 0, 1932, 0, 0, 0, 9922, 7577, 0, 0, 0, - 0, 1213, 1833, 0, 0, 0, 0, 0, 0,14296, -14296,11012, 1910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1854, 0, 1893, 0, 0, 0, 0, 0, - 0, 0, 1859,11328, 3637, 0, 0, 0, 0, 569, -14296, 0, 0, 0, 412, 0, 0, 0, 0, 1862, - 0,12684, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12296, 0, 0, 0,12447, 0, 0, 0, - 0, 0, 0, 0,14296, 1921, 0, 1921, 0, 328, - 0,11526, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1021, 1225, 0, - 285, 0, 0, 0,14125, 0, 0, 1936, 1918, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2385, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12828, 0, 0, 446, 0, 0, 0, 0, 1245, + 0, 0, 492, 0,10119, 0,10119,10119,10119,10119, +10119, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, + 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 751, 751, 0, -1, 0, 0, 0, 1876, + 0, 0, 0,10588, 8243, 0, 0, 0, 0, 101, + 1753, 0, 0, 0, 0, 0, 0,13054,13054,13345, + 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1798, 0, 1786, 0, 0, 0, 0, 0, 0, 0, + 1801,13511, 3695, 0, 0, 0, 0, 743,13054, 0, + 0, 0, 620, 0, 0, 0, 0, 1802, 0,13677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14716, 0, 0, 0,14815, 0, 0, 0, 0, 0, + 0, 0,13054, 1839, 0, 1839, 0, 51, 0,13156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8501, 8685, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2689, 2993, 0, 549, 0, + 0, 0,12828, 0, 0, 1885, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9167, 9351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1067, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 409, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,10809, 0, 5669, 0, 1867, 0, 0, 0, - 0, 0, 0, 0, 5669, 5669, 5669, 5669, 0, 0, - 0, 0, 0, 0, 5669, 5669, 5669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12614, 0, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1943, 0, 143, 0, 1918, 4594, 0, 0, 0, 0, - 0, 0, 0, 0, 460, 1957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11444, 0,13105, 0, 1805, 0, 0, 0, 0, 0, + 0, 0,13105,13105,13105,13105, 0, 0, 0, 0, + 0, 0,13105,13105,13105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14898, 0, 0, 0, 0, 0, 783, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0, + 446, 0, 1865, 1245, 0, 0, 0, 0, 0, 0, + 0, 0, 737, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9620, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,14296,14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,10286, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,13054, +13054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1918, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8858, 0, 0, 0, 0, 794, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1865, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9524, 0, + 0, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,14296, 0, 0, 0, 0, 1958, 0, 0, - 0, 0, 0, 0, 0,14296, 0, 0, 0, 0, - 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13054, 0, 0, 0, 0, 1895, 0, 0, 0, 0, + 0, 0, 0,13054, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1958, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1959, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1895, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1876, 0, 0,14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1813, 0, 0,13054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14296, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,13054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,14296, 0, 0, 0, 0, 0, 5669, 0, 0, - 0, 0, 0, 0, 1958, 0,14296, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,13054, + 0, 0, 0, 0, 0,13105, 0, 0, 0, 0, + 0, 0, 1895, 0,13054, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1042,18 +1047,19 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,11495, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,13662, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, + 0, 1846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1068,37 +1074,37 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,11080, 0, 0, + 0, 0, 0,12929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1743, 0, 0, 0, + 0, 0, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1757, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 923, 0, 0, 0, 0, 0, + 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, + -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1746, 0, 0, + 0, 0, 0, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1109,32 +1115,30 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1980, 0, 0, - 0, 0, 0, 0, 0, 0, 993, 0, 0, 0, - 0, 1968, 0, 0, 0, 0, 0, 0, 0, 1755, - 1756, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1915, 0, 0, 0, 0, + 0, 0, 0, 0, 809, 0, 0, 0, 0, 1897, + 0, 0, 0, 0, 0, 0, 0, 1691, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1758, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1759, 0, 0, 0, 0, 0, - 0, 1760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1720, 0, 0, 0, 0, 0, 0, 1732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1773, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1696, 1715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1151,8 +1155,9 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1764, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1748, + 1757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1160,1835 +1165,2029 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1759, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1787, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1788, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1769, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1774, 0, 0, }; -static int yygindex[] = { 1871, - -4, -11, -671, 0, -263, 72, -91, 0, 100, 0, - 0, 0, 1658, -139, 0, 0,-1034, 0, 1274, 0, - 1081, 198,-1377, -420, -386, -16, -707, 0, 1119, -14, - 1364, 0, 1, 1222, 636, 863, -908, -75, 0, 1129, - 0,-1054, 1001, 0, 0,-1327, -586,-1023, -951, 0, - 0, 0, 0, 942, 1212, 1402, 0, 0, 0, 0, - -624, 0, 0,-1000, 0, 1224, 0, -927,-1098, 887, - 872, -21, -88, 1747, 1621, 2061, -150, 4, 0, 0, - 0, 0, 0, 0, -743, 1243, 0, 2089, 0, 0, - 968, 1988, 1600, 0, -23, 2083, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -291, 1413, 0, -287, -223, -282, 29, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 1415, 0, 0, - 0, 7, 12, 40, 0, 32, 1834, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, - 0, 1534, 0, 0, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 1478, 2056, -32, 0, 1653, 0, 1779, +static int yygindex[] = { 1796, + -4, 18, -662, 0, -430, 111, -99, 0, 100, 0, + 0, 0, 1574, -109, 0, 0,-1052, 0, 1199, 0, + 1029, 270,-1398, -425, -402, -15, -635, 0, 1042, -22, + 1314, 0, -5, 1164, 583, 804, -917, -71, 0, 1073, + 0,-1066, 947, 0, 0,-1364, -697,-1255,-1251, 0, + 0, 0, 0, -150, 1156, 1353, 0, 0, 0, 0, + -623, 0, 0,-1022, 0, 1170, 0, -936,-1107, 832, + 823, -23, 88, 1698, 1573, 2015, -138, 15, 0, 0, + 0, 0, 0, 0, -746, 1182, 0, 2033, 0, 0, + 920, 1934, 1531, 0, -14, 2027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -290, 1364, 0, -287, -298, -286, 29, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 1371, 0, 0, + 0, 26, 5, 19, 0, 32, 1784, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, + 0, 1472, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 1419, 1992, -45, 0, 1593, 0, 1725, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 14769 +#define YYTABLESIZE 15723 static int yytable[] = { 70, - 164, 863, 161, 212, 517, 124, 125, 55, 518, 159, - 226, 227, 56, 519, 118, 288, 109, 218, 1169, 48, - 939, 1183, 168, 169, 170, 171, 637, 163, 638, 45, - 348, 202, 59, 268, 851, 537, 176, 177, 975, 34, - 57, 775, 624, 776, 929, 624, 671, 205, 624, 567, - 458, 1222, 408, 410, 412, 414, 416, 1220, 1254, 78, - 185, 205, 205, 316, 208, 1516, 1288, 268, 166, 217, - 561, 424, 699, 1545, 287, 321, 205, 119, 1518, 205, - 1226, 753, 1247, 316, 750, 425, 74, 122, 123, 1524, - 231, 135, 291, 1507, 688, 624, 1332, 402, 379, 34, - 67, 68, 205, 69, 457, 607, 1529, 163, 237, 1526, - 248, 251, 252, 253, 1065, 404, 119, 1527, 215, 120, - 121, 66, 454, 258, 407, 568, 260, 492, 268, 1540, - 1498, 1531, 67, 68, 1537, 69, 266, 1538, 1223, 1539, - 409, 34, 468, 689, 197, 289, 1556, 75, 166, 205, - 269, 272, 1089, 1090, 411, 1413, 471, 1559, 270, 1290, - 1520, 205, 413, 1064, 203, 202, 405, 968, 323, 109, - 1557, 206, 282, 1558, 1349, 405, 281, 481, 119, 553, - 34, 378, 156, 415, 926, 205, 205, 456, 1224, 1093, - 1095, 405, 448, 1134, 280, 1291, 484, 1101, 559, 430, - 431, 582, 421, 91, 451, 405, 775, 613, 776, 548, - 234, 235, 270, 405, 463, 464, 470, 1596, 452, 682, - 683, 684, 293, 1103, 1350, 279, 466, 1175, 719, 1421, - 1017, 539, 655, 475, 405, 67, 68, 478, 69, 453, - 1094, 1096, 562, 558, 1143, 1360, 1361, 271, 1102, 700, - 1018, 67, 68, 2, 69, 273, 147, 560, 1072, 1073, - 34, 480, 482, 737, 72, 497, 486, 289, 1534, 488, - 215, 110, 504, 491, 1104, 34, 603, 719, 500, 501, - 502, 503, 215, 762, 135, 67, 68, 98, 69, 422, - 1085, 626, 769, 78, 704, 1543, 216, 561, 78, 469, - 561, 119, 522, 55, 770, 771, 119, 523, 56, 535, - 544, 550, 119, 541, 521, 48, 556, 551, 215, 460, - 461, 98, 772, 1206, 520, 45, 1439, 525, 59, 122, - 123, 1544, 119, 109, 557, 524, 57, 565, 163, 580, - 119, 1149, 117, 847, 1072, 1073, 67, 68, 845, 69, - 119, 960, 122, 123, 119, 2, 545, 119, 588, 119, - 119, 492, 119, 589, 589, 608, 614, 664, 269, 119, - 487, 269, 773, 1084, 34, 94, 546, 547, 494, 166, - 122, 123, 98, 590, 590, 609, 615, 67, 68, 604, - 69, 683, 111, 119, 636, 321, 119, 1419, 974, 1127, - 685, 686, 156, 156, 1128, 156, 477, 678, 641, 847, - 531, 1105, 532, 1505, 112, 468, 533, 895, 348, 990, - 991, 992, 473, 114, 542, 543, 702, 167, 552, 745, - 721, 13, 1107, 122, 123, 545, 1500, 236, 215, 660, - 587, 605, 1091, 653, 606, 654, 715, 1542, 147, 147, - 581, 1517, 1333, 717, 1109, 546, 547, 769, 561, 1248, - 451, 566, 1106, 267, 199, 109, 1522, 720, 270, 770, - 771, 1111, 679, 205, 67, 68, 1113, 69, 119, 721, - 1127, 735, 996, 1108, 458, 1128, 536, 772, 1468, 2, - 119, 122, 123, 545, 275, 276, 277, 450, 958, 466, - 567, 567, 717, 632, 633, 1110, 634, 34, 635, 1501, - 754, 172, 215, 546, 547, 27, 28, 29, 30, 31, - 32, 33, 1112, 643, 644, 67, 68, 1114, 69, 624, - 711, 713, 67, 13, 241, 69, 119, 773, 1219, 1523, - 1115, 774, 173, 611, 1364, 1365, 612, 723, 1510, 198, - 567, 719, 724, 782, 348, 786, 323, 847, 450, 124, - 1127, 722, 34, 178, 494, 1128, 205, 743, 778, 778, - 1141, 778, 205, 1164, 458, 27, 28, 29, 30, 31, - 32, 33, 187, 895, 1117, 205, 1119, 269, 2, 710, - 269, 1116, 848, 755, 756, 249, 250, 1550, 542, 759, - 764, 760, 179, 909, 902, 906, 766, 202, 121, 915, - 696, 697, 543, 681, 994, 785, 542, 27, 28, 29, - 30, 31, 32, 33, 712, 517, 1335, 1336, 598, 518, - 543, 181, 847, 709, 519, 1118, 714, 1120, 182, 258, - 1145, 1146, 1147, 1148, 1174, 933, 458, 997, 1418, 998, - 999, 1000, 1001, 1002, 205, 497, 27, 28, 29, 30, - 31, 32, 33, 726, 10, 11, 12, 13, 862, 1121, - 183, 561, 561, 893, 561, 894, 900, 892, 744, 70, - 73, 76, 79, 82, 85, 88, 184, 743, 205, 905, - 743, 972, 323, 910, 912, 914, 886, 887, 219, 832, - 928, 931, 624, 763, 190, 1469, 884, 191, 192, 193, - 194, 862, 195, 196, 197, 940, 768, 1123, 1477, 220, - 1122, 2, 1275, 1125, 1277, 943, 1258, 781, 1337, 1338, - 392, 888, 622, 622, 945, 847, 27, 28, 29, 30, - 31, 32, 33, 1471, 603, 847, 8, 9, 847, 911, - 799, 27, 28, 29, 30, 31, 32, 33, 67, 68, - 959, 69, 961, 1260, 664, 832, 13, 989, 1124, 119, - 778, 545, 1076, 969, 1126, 282, 2, 1259, 583, 281, - 584, 1086, 622, 585, 586, 545, 898, 494, 221, 1262, - 1264, 546, 547, 67, 68, 67, 69, 280, 69, 1548, - 1193, 1553, 205, 261, 262, 546, 547, 922, 282, 924, - 935, 925, 281, 263, 1261, 392, 930, 572, 572, 847, - 847, 847, 847, 847, 847, 847, 1078, 232, 279, 549, - 280, 155, 549, 1068, 609, 609, 944, 1168, 233, 1170, - 1263, 1265, 595, 1561, 913, 283, 946, 947, 259, 155, - 27, 28, 29, 30, 31, 32, 33, 604, 284, 67, - 957, 279, 69, 119, 282, 274, 1493, 572, 281, 285, - 889, 890, 1499, 891, 1586, 286, 1132, 1189, 1136, 1192, - 1562, 458, 1343, 993, 609, 1131, 280, 119, 292, 1598, - 1480, 1411, 458, 1479, 1138, 1003, 294, 1004, 1196, 13, - 1142, 1137, 1521, 155, 1356, 1357, 1358, 67, 68, 605, - 69, 862, 606, 832, 1130, 458, 1555, 279, 67, 68, - 293, 69, 1595, 522, 724, 295, 724, 1173, 523, 356, - 1151, 1160, 608, 608, 608, 521, 832, 1150, 1159, 282, - 1211, 269, 269, 281, 269, 520, 380, 1074, 525, 403, - 1153, 1162, 609, 1584, 13, 458, 524, 1087, 1152, 1161, - 222, 280, 223, 224, 225, 1195, 596, 417, 584, 597, - 392, 585, 586, 392, 392, 392, 392, 420, 392, 392, - 392, 449, 34, 27, 28, 29, 30, 31, 32, 33, - 862, 432, 279, 1241, 1311, 1312, 1313, 1314, 455, 458, - 67, 68, 459, 69, 1315, 1316, 1317, 1176, 126, 1177, - 1139, 462, 1140, 67, 68, 476, 69, 472, 67, 68, - 976, 69, 254, 255, 256, 257, 126, 977, 483, 978, - 979, 980, 1020, 1021, 34, 726, 98, 726, 27, 28, - 29, 30, 31, 32, 33, 479, 1409, 485, 530, 832, - 489, 490, 1308, 1309, 98, 269, 269, 1546, 506, 1185, - 67, 68, 1186, 69, 1547, 155, 540, 534, 981, 982, - 983, 564, 67, 68, 155, 69, 617, 628, 629, 833, - 126, 1006, 1007, 1008, 1009, 1010, 67, 68, 631, 69, - 1272, 832, 67, 68, 1278, 69, 119, 275, 276, 277, - 1158, 832, 1286, 1295, 832, 639, 97, 640, 98, 1533, - 1535, 99, 642, 100, 984, 985, 986, 659, 987, 651, - 101, 988, 652, 215, 122, 123, 545, 665, 278, 666, - 275, 276, 277, 1305, 667, 668, 34, 102, 109, 1214, - 1215, 1216, 1217, 1218, 1346, 833, 546, 547, 109, 109, - 109, 109, 103, 1318, 152, 153, 154, 670, 109, 109, - 109, 673, 569, 1225, 570, 571, 572, 1322, 596, 1323, - 680, 690, 152, 153, 154, 832, 832, 832, 832, 832, - 832, 832, 61, 64, 1328, 67, 275, 276, 277, 1097, - 1098, 1099, 1100, 1255, 1256, 1257, 2, 740, 741, 742, - 1266, 1267, 1268, 1269, 1270, 1271, 687, 1273, 1274, 1276, - 691, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1416, 1287, - 708, 1289, 693, 1292, 703, 1296, 152, 153, 154, 705, - 1417, 706, 717, 707, 67, 68, 215, 69, 119, 716, - 718, 1422, 126, 67, 68, 721, 69, 1376, 2, 727, - 37, 126, 97, 100, 37, 103, 728, 1071, 37, 37, - 746, 275, 276, 277, 747, 749, 748, 1429, 757, 761, - 98, 758, 37, 765, 767, 780, 1410, 787, 1130, 98, - 788, 1324, 1293, 834, 789, 790, 1327, 791, 792, 1294, - 618, 619, 620, 833, 1072, 1073, 1412, 1334, 793, 97, - 155, 795, 798, 37, 99, 849, 100, 1341, 104, 796, - 850, 1344, 1345, 101, 853, 862, 833, 282, 854, 856, - 855, 692, 1348, 857, 860, 1470, 621, 622, 623, 861, - 102, 907, 3, 4, 5, 6, 7, 896, 864, 280, - 897, 901, 916, 1355, 1359, 103, 923, 927, 932, 834, - 2, 934, 936, 937, 8, 9, 941, 1370, 1371, 1372, - 1373, 1374, 1375, 938, 1377, 1351, 1352, 1353, 1354, 942, - 279, 10, 11, 12, 13, 40, 908, 948, 14, 15, - 949, 950, 953, 1508, 16, 951, 952, 17, 152, 153, - 154, 1130, 954, 963, 18, 19, 955, 152, 153, 154, - 956, 1472, 1155, 1512, 1156, 1157, 962, 964, 40, 971, - 862, 973, 405, 40, 1005, 40, 40, 40, 1011, 40, - 1015, 1014, 40, 10, 11, 12, 13, 1013, 1016, 833, - 1019, 1066, 1069, 1133, 40, 40, 40, 40, 1080, 1083, - 1135, 1428, 1088, 1165, 1166, 1171, 1172, 1167, 1433, 20, - 21, 1178, 22, 23, 24, 1181, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 1182, 40, 199, 40, 67, - 68, 833, 852, 1184, 1187, 67, 68, 126, 69, 1580, - 1536, 833, 1549, 1198, 833, 1199, 3, 4, 5, 6, - 7, 1200, 1201, 645, 646, 647, 1591, 834, 40, 1202, - 40, 1203, 1204, 1593, 1205, 98, 1210, 1208, 8, 9, - 27, 28, 29, 30, 31, 32, 33, 1212, 1244, 1213, - 834, 1245, 1252, 1246, 1249, 10, 11, 12, 13, 648, - 649, 650, 14, 15, 1483, 1484, 1485, 95, 16, 1250, - 96, 17, 1251, 426, 1253, 427, 428, 862, 18, 19, - 1302, 473, 429, 1304, 1306, 833, 833, 833, 833, 833, - 833, 833, 1307, 97, 98, 1310, 1319, 1320, 99, 1321, - 100, 1325, 37, 37, 37, 1326, 1592, 101, 1329, 1330, - 624, 1347, 1342, 1093, 1095, 1101, 1519, 1103, 1105, 862, - 1107, 1525, 1519, 1528, 102, 1532, 1109, 1525, 1519, 1528, - 1111, 1113, 1115, 20, 21, 1117, 22, 23, 24, 103, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 1525, - 1519, 1528, 1119, 152, 153, 154, 1197, 1362, 1363, 1366, - 1368, 1367, 1369, 834, 1378, 40, 40, 40, 40, 275, - 276, 277, 1379, 40, 1380, 1381, 40, 1382, 40, 40, - 40, 40, 40, 40, 40, 1384, 40, 40, 40, 40, - 1383, 40, 40, 40, 34, 40, 40, 40, 40, 1385, - 1386, 40, 40, 40, 40, 834, 1387, 1388, 1389, 1390, - 1391, 40, 1587, 40, 1392, 834, 40, 1393, 834, 1394, - 40, 40, 1423, 40, 1395, 1396, 1398, 40, 40, 40, - 40, 1397, 1399, 1400, 1401, 1402, 1403, 190, 1404, 1405, - 191, 192, 193, 194, 40, 195, 196, 197, 1406, 1407, - 1408, 1414, 67, 68, 1415, 69, 1420, 1424, 321, 1425, - 322, 1426, 1430, 40, 40, 40, 40, 40, 1431, 40, - 40, 1258, 393, 1432, 1434, 1260, 1262, 1264, 1435, 40, - 40, 1436, 1437, 1438, 1440, 1441, 1442, 1443, 1466, 834, - 834, 834, 834, 834, 834, 834, 40, 1444, 1445, 1446, - 1448, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 162, 160, 227, 228, 269, 56, 124, 125, 523, 165, + 48, 524, 525, 643, 118, 644, 871, 1177, 203, 57, + 1191, 219, 169, 170, 171, 172, 55, 109, 291, 45, + 177, 178, 59, 351, 1230, 783, 624, 784, 164, 624, + 1228, 859, 624, 983, 677, 461, 573, 218, 1262, 543, + 119, 119, 91, 574, 186, 78, 206, 206, 690, 691, + 692, 937, 1296, 167, 1537, 206, 206, 290, 1255, 67, + 68, 1524, 69, 206, 34, 707, 1234, 761, 1553, 1526, + 1515, 206, 232, 411, 413, 415, 417, 419, 206, 624, + 405, 269, 808, 209, 269, 1340, 74, 294, 324, 34, + 947, 1506, 135, 1532, 460, 254, 216, 206, 238, 1025, + 249, 252, 253, 206, 271, 457, 262, 263, 164, 120, + 121, 259, 758, 1534, 261, 407, 264, 630, 267, 1026, + 1539, 1528, 198, 1548, 696, 490, 67, 68, 37, 69, + 1369, 410, 37, 167, 292, 412, 37, 37, 414, 316, + 34, 272, 275, 203, 661, 1535, 561, 75, 808, 1545, + 37, 474, 1546, 416, 204, 1447, 427, 1567, 285, 316, + 273, 207, 284, 1298, 1547, 324, 408, 1564, 119, 213, + 428, 109, 381, 697, 271, 451, 565, 459, 66, 498, + 283, 37, 408, 271, 559, 1231, 408, 424, 326, 408, + 433, 434, 1565, 418, 1604, 454, 588, 1566, 1101, 1299, + 235, 236, 1508, 473, 408, 72, 1157, 1509, 296, 67, + 68, 282, 69, 206, 273, 712, 1103, 469, 1429, 1093, + 691, 1368, 1097, 1098, 478, 67, 481, 568, 69, 119, + 783, 783, 1530, 783, 94, 1232, 274, 1531, 216, 110, + 466, 467, 708, 111, 408, 1357, 276, 770, 903, 1102, + 503, 1151, 483, 486, 566, 488, 976, 510, 292, 492, + 689, 1109, 494, 1142, 217, 382, 497, 1104, 216, 117, + 112, 506, 507, 508, 509, 114, 777, 122, 123, 78, + 567, 998, 999, 1000, 78, 135, 472, 216, 778, 779, + 1551, 147, 119, 529, 56, 1358, 808, 1183, 527, 48, + 269, 562, 1092, 269, 550, 556, 780, 530, 57, 471, + 463, 464, 1110, 541, 528, 55, 119, 526, 45, 34, + 531, 59, 67, 68, 571, 69, 1552, 853, 968, 966, + 1214, 783, 119, 784, 119, 547, 119, 109, 563, 557, + 1080, 1081, 164, 119, 484, 551, 122, 123, 485, 595, + 595, 614, 620, 745, 2, 168, 781, 487, 98, 1111, + 34, 586, 808, 493, 1135, 552, 553, 167, 119, 1136, + 594, 500, 119, 561, 425, 119, 596, 596, 615, 621, + 122, 123, 997, 982, 173, 619, 1427, 119, 642, 1135, + 119, 480, 67, 68, 1136, 69, 119, 1073, 1113, 1513, + 545, 67, 68, 537, 69, 538, 119, 498, 684, 539, + 1112, 237, 564, 1421, 903, 119, 351, 548, 549, 206, + 119, 558, 476, 179, 666, 216, 554, 753, 98, 724, + 647, 1525, 783, 1550, 723, 1099, 659, 98, 660, 748, + 285, 216, 748, 587, 284, 726, 1072, 1341, 572, 1114, + 37, 37, 37, 454, 808, 808, 206, 206, 1256, 174, + 632, 1115, 283, 67, 68, 685, 69, 119, 718, 109, + 687, 1476, 273, 180, 808, 156, 67, 68, 724, 69, + 278, 279, 280, 147, 147, 182, 808, 1117, 808, 808, + 542, 808, 808, 282, 726, 469, 638, 639, 1119, 640, + 934, 641, 206, 1542, 855, 1153, 1154, 1155, 1156, 188, + 762, 1227, 1116, 624, 122, 123, 649, 650, 70, 73, + 76, 79, 82, 85, 88, 782, 719, 721, 183, 10, + 11, 12, 13, 2, 270, 731, 670, 1518, 1118, 184, + 27, 28, 29, 30, 31, 32, 33, 727, 185, 1120, + 1121, 730, 206, 790, 351, 794, 722, 500, 808, 808, + 808, 808, 808, 808, 808, 27, 28, 29, 30, 31, + 32, 33, 693, 694, 688, 67, 68, 732, 69, 119, + 1123, 326, 777, 763, 764, 720, 1558, 471, 34, 767, + 203, 768, 751, 917, 778, 779, 772, 852, 710, 923, + 1002, 1122, 774, 793, 453, 722, 704, 705, 1556, 455, + 1125, 221, 780, 453, 1372, 1373, 27, 28, 29, 30, + 31, 32, 33, 461, 523, 1127, 220, 524, 525, 717, + 456, 1124, 722, 259, 919, 984, 222, 67, 68, 728, + 69, 856, 985, 503, 986, 987, 988, 941, 124, 156, + 122, 123, 551, 743, 593, 1426, 561, 1129, 156, 734, + 1135, 1126, 781, 852, 870, 1136, 908, 900, 1149, 901, + 206, 902, 552, 553, 752, 1005, 1128, 1006, 1007, 1008, + 1009, 1010, 233, 989, 990, 991, 1131, 913, 1133, 1266, + 936, 918, 920, 922, 1268, 156, 156, 121, 156, 771, + 939, 234, 892, 285, 1283, 948, 1285, 284, 1130, 870, + 921, 13, 776, 260, 1270, 1272, 285, 542, 943, 326, + 284, 617, 1419, 789, 618, 283, 122, 123, 551, 992, + 993, 994, 241, 995, 277, 542, 996, 1132, 283, 1134, + 1267, 269, 269, 286, 269, 1269, 807, 287, 552, 553, + 1479, 288, 951, 1501, 67, 68, 282, 69, 967, 1507, + 969, 953, 278, 279, 280, 1271, 1273, 567, 567, 282, + 1488, 977, 461, 1487, 1084, 1477, 543, 67, 910, 914, + 69, 622, 622, 1094, 906, 500, 1080, 1081, 1485, 1529, + 894, 895, 295, 281, 543, 27, 28, 29, 30, 31, + 32, 33, 2, 67, 68, 930, 69, 932, 289, 933, + 119, 852, 551, 549, 938, 296, 549, 567, 67, 68, + 67, 69, 1086, 69, 119, 896, 126, 67, 68, 297, + 69, 622, 552, 553, 952, 126, 27, 28, 29, 30, + 31, 32, 33, 298, 954, 955, 67, 68, 34, 69, + 359, 156, 572, 572, 98, 269, 269, 1301, 965, 1004, + 1076, 461, 157, 98, 1302, 980, 1554, 383, 551, 561, + 561, 1561, 561, 1555, 406, 67, 68, 1139, 69, 67, + 68, 1001, 69, 420, 1146, 1144, 423, 1570, 552, 553, + 1150, 67, 68, 1011, 69, 1012, 435, 609, 609, 1145, + 1204, 452, 572, 1140, 748, 749, 750, 67, 68, 870, + 69, 458, 1138, 1569, 604, 461, 250, 251, 156, 529, + 792, 1159, 1168, 614, 527, 1181, 1158, 1167, 223, 1603, + 224, 225, 226, 530, 462, 1160, 1169, 1182, 670, 461, + 528, 465, 1219, 526, 1594, 1082, 531, 609, 1161, 1170, + 615, 732, 475, 732, 575, 1095, 576, 577, 578, 1606, + 8, 9, 479, 1203, 897, 898, 482, 899, 122, 123, + 551, 785, 152, 153, 154, 429, 1308, 430, 431, 489, + 13, 152, 153, 154, 432, 1205, 1343, 1344, 870, 852, + 552, 553, 589, 512, 590, 1249, 491, 591, 592, 852, + 1431, 1201, 852, 206, 1319, 1320, 1321, 1322, 1147, 495, + 1148, 1176, 496, 1178, 1323, 1324, 1325, 1592, 540, 461, + 67, 68, 216, 69, 119, 278, 279, 280, 126, 570, + 785, 61, 64, 734, 67, 734, 1345, 1346, 278, 279, + 280, 285, 546, 1079, 1184, 700, 1185, 624, 625, 626, + 623, 1197, 634, 1200, 461, 1351, 98, 1193, 97, 100, + 1194, 103, 2, 283, 27, 28, 29, 30, 31, 32, + 33, 461, 1563, 852, 852, 852, 852, 852, 852, 852, + 1080, 1081, 34, 627, 628, 629, 635, 67, 68, 1280, + 69, 1541, 1543, 1286, 282, 126, 785, 608, 608, 1303, + 127, 1294, 1028, 1029, 128, 129, 130, 131, 132, 637, + 133, 134, 135, 136, 646, 137, 138, 645, 648, 139, + 140, 141, 142, 98, 119, 97, 143, 144, 601, 657, + 99, 1313, 100, 1417, 658, 145, 216, 146, 665, 101, + 671, 1364, 1365, 1366, 672, 673, 1354, 109, 1166, 674, + 676, 679, 147, 148, 149, 602, 102, 109, 109, 109, + 109, 1233, 1014, 1015, 1016, 1017, 1018, 109, 109, 109, + 695, 103, 686, 698, 152, 153, 154, 699, 701, 716, + 1326, 711, 1336, 713, 714, 67, 68, 150, 69, 119, + 715, 1263, 1264, 1265, 1330, 724, 1331, 725, 1274, 1275, + 1276, 1277, 1278, 1279, 726, 1281, 1282, 1284, 1424, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 729, 1295, 735, 1297, + 736, 1300, 754, 1304, 755, 756, 1316, 1317, 25, 651, + 652, 653, 22, 1222, 1223, 1224, 1225, 1226, 984, 757, + 13, 152, 153, 154, 785, 985, 1384, 986, 987, 988, + 19, 769, 602, 984, 590, 603, 765, 591, 592, 766, + 985, 773, 986, 987, 988, 654, 655, 656, 788, 1437, + 775, 795, 1418, 797, 796, 298, 1138, 200, 798, 1332, + 804, 16, 799, 800, 1335, 156, 989, 990, 991, 255, + 256, 257, 258, 801, 1420, 1342, 2, 1105, 1106, 1107, + 1108, 989, 990, 991, 803, 1349, 806, 857, 858, 1352, + 1353, 861, 862, 870, 1359, 1360, 1361, 1362, 863, 865, + 1356, 868, 864, 869, 27, 28, 29, 30, 31, 32, + 33, 872, 992, 993, 994, 904, 995, 905, 909, 996, + 924, 1363, 1367, 931, 935, 940, 285, 992, 993, 994, + 284, 995, 942, 944, 996, 1378, 1379, 1380, 1381, 1382, + 1383, 945, 1385, 278, 279, 280, 946, 949, 283, 950, + 956, 957, 155, 958, 972, 959, 960, 961, 962, 971, + 785, 785, 785, 785, 785, 963, 964, 970, 981, 1138, + 979, 1480, 408, 1013, 1019, 1022, 1024, 1027, 157, 282, + 1074, 1021, 785, 785, 1425, 1520, 1143, 1088, 870, 1023, + 1077, 1091, 1096, 1141, 1174, 1430, 1173, 1175, 1179, 785, + 785, 785, 785, 40, 1180, 1186, 785, 785, 1192, 1189, + 1190, 1195, 785, 1206, 785, 785, 1207, 1208, 1213, 1436, + 1216, 1209, 785, 785, 1210, 1218, 1441, 1252, 1211, 1253, + 1163, 1212, 1164, 1165, 67, 68, 40, 69, 1220, 1221, + 1258, 40, 126, 40, 40, 40, 1254, 40, 1257, 1259, + 40, 10, 11, 12, 13, 1260, 1261, 1318, 1557, 1544, + 1310, 1588, 40, 40, 40, 40, 1599, 1312, 1314, 476, + 98, 1327, 1315, 1328, 1329, 1333, 1334, 785, 785, 1478, + 785, 785, 785, 1337, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 1338, 40, 1350, 40, 191, 630, 1355, + 192, 193, 194, 195, 1101, 196, 197, 198, 298, 393, + 1103, 1370, 1491, 1492, 1493, 298, 1109, 298, 298, 298, + 1111, 1113, 1115, 1117, 1119, 870, 40, 1121, 40, 1123, + 7, 10, 13, 1125, 1127, 1371, 1374, 1516, 27, 28, + 29, 30, 31, 32, 33, 1375, 1600, 1376, 67, 68, + 1377, 69, 1386, 1387, 1388, 1389, 298, 298, 298, 1390, + 1391, 1392, 1393, 1394, 1527, 1395, 156, 870, 1397, 1533, + 1527, 1536, 1396, 1540, 1398, 1533, 1527, 1536, 1399, 97, + 1400, 1401, 1402, 1403, 99, 1404, 100, 1406, 152, 153, + 154, 1405, 1407, 101, 393, 1408, 1409, 1533, 1527, 1536, + 1410, 1411, 298, 298, 298, 1412, 298, 1413, 1415, 298, + 102, 915, 1414, 1422, 1416, 560, 127, 561, 1423, 1428, + 128, 129, 130, 131, 132, 103, 133, 134, 135, 136, + 1432, 137, 138, 1433, 1434, 139, 140, 141, 142, 1266, + 1438, 98, 143, 144, 1439, 1440, 1268, 1270, 278, 279, + 280, 145, 1272, 146, 1442, 1443, 916, 1601, 1446, 1444, + 1595, 1445, 1448, 40, 40, 40, 40, 1449, 147, 148, + 149, 40, 1450, 1451, 40, 200, 40, 40, 40, 40, + 40, 40, 40, 1452, 40, 40, 40, 40, 1453, 40, + 40, 40, 1454, 40, 40, 40, 40, 1455, 1456, 40, + 40, 40, 40, 150, 1457, 1458, 1460, 1459, 1461, 40, + 1462, 40, 1463, 1464, 40, 1465, 1466, 1467, 40, 40, + 1468, 40, 1469, 1470, 157, 40, 40, 40, 40, 285, + 1471, 393, 1473, 284, 393, 67, 68, 1472, 860, 1475, + 1474, 1481, 40, 126, 1484, 1486, 1490, 1496, 1497, 393, + 1498, 283, 393, 393, 393, 393, 1499, 393, 393, 393, + 199, 40, 40, 40, 40, 40, 1514, 40, 40, 866, + 1517, 98, 1519, 1521, 1522, 1523, 1559, 40, 40, 1560, + 1568, 1571, 468, 1589, 1590, 1593, 1549, 1591, 1596, 1597, + 1598, 1605, 104, 1602, 40, 1607, 437, 438, 538, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 1447, 1450, - 1452, 1449, 561, 1451, 1453, 1454, 1455, 239, 240, 241, - 1456, 1457, 1458, 40, 40, 40, 40, 393, 40, 40, - 40, 40, 1459, 1460, 40, 1461, 40, 1462, 40, 40, - 40, 40, 242, 40, 40, 561, 40, 40, 40, 1463, - 561, 1464, 561, 561, 561, 40, 561, 1465, 1467, 561, - 1473, 1476, 1478, 1488, 1482, 67, 1489, 1490, 69, 1491, - 858, 561, 561, 561, 561, 1506, 1509, 25, 2, 976, - 1551, 22, 1511, 40, 40, 40, 977, 1513, 978, 979, - 980, 95, 1514, 1515, 96, 1552, 1560, 1563, 1581, 19, - 1582, 40, 40, 561, 40, 40, 40, 1583, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 97, 98, 1589, - 1590, 1585, 99, 1594, 100, 1597, 1588, 981, 982, 983, - 16, 101, 1599, 437, 104, 561, 243, 561, 244, 245, - 246, 247, 438, 29, 717, 976, 540, 137, 102, 538, - 399, 783, 977, 839, 978, 979, 980, 728, 818, 541, - 810, 533, 735, 103, 393, 138, 536, 393, 729, 537, - 840, 545, 271, 984, 985, 986, 143, 987, 74, 164, - 988, 811, 393, 144, 819, 393, 393, 393, 393, 240, - 393, 393, 393, 981, 982, 983, 147, 167, 210, 571, - 4, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 31, 28, 28, 55, 7, 58, - 55, 94, 311, 312, 313, 314, 315, 316, 106, 55, - 55, 115, 55, 55, 55, 109, 8, 9, 55, 984, - 985, 986, 55, 987, 55, 1188, 988, 112, 118, 297, - 967, 899, 55, 10, 11, 12, 13, 1541, 55, 630, - 1180, 55, 55, 55, 317, 1067, 1481, 1339, 1179, 1243, - 1300, 859, 561, 561, 1092, 561, 1082, 1340, 318, 1331, - 561, 563, 669, 561, 162, 561, 561, 561, 561, 561, - 561, 561, 1079, 561, 561, 561, 561, 93, 561, 561, - 1303, 238, 561, 561, 561, 561, 165, 736, 561, 561, - 561, 561, 698, 319, 320, 917, 562, 794, 561, 201, - 561, 921, 505, 561, 0, 0, 677, 0, 561, 0, - 0, 600, 0, 0, 561, 561, 561, 561, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 562, - 784, 784, 0, 784, 562, 0, 562, 562, 562, 0, - 562, 0, 0, 562, 0, 0, 0, 0, 0, 0, - 561, 0, 561, 561, 561, 562, 562, 562, 562, 0, - 0, 0, 0, 0, 0, 0, 561, 561, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 10, 13, 0, 561, 0, 0, 0, 562, 561, 561, + 40, 40, 40, 40, 40, 40, 29, 268, 137, 722, + 561, 788, 844, 540, 823, 399, 815, 733, 541, 533, + 138, 40, 40, 40, 40, 740, 40, 40, 40, 40, + 67, 68, 40, 69, 40, 536, 40, 40, 40, 40, + 537, 40, 40, 561, 40, 40, 40, 734, 561, 545, + 561, 561, 561, 40, 561, 845, 271, 561, 155, 152, + 153, 154, 74, 816, 824, 143, 164, 240, 144, 561, + 561, 561, 561, 147, 167, 210, 571, 4, 28, 392, + 28, 40, 40, 40, 31, 191, 55, 58, 192, 193, + 194, 195, 55, 196, 197, 198, 94, 106, 109, 40, + 40, 561, 40, 40, 40, 55, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 300, 40, 112, 636, 55, + 115, 67, 68, 975, 69, 240, 241, 242, 118, 126, + 55, 1188, 127, 561, 55, 561, 128, 129, 130, 131, + 132, 1196, 133, 134, 135, 136, 55, 137, 138, 907, + 243, 139, 140, 141, 142, 1075, 1347, 98, 143, 144, + 1187, 1489, 55, 1251, 392, 34, 1100, 145, 867, 146, + 1090, 55, 1339, 55, 55, 569, 1348, 675, 163, 1087, + 55, 93, 55, 55, 147, 148, 149, 239, 55, 706, + 166, 744, 873, 874, 875, 202, 876, 877, 878, 879, + 1311, 880, 881, 198, 802, 882, 883, 884, 885, 683, + 0, 0, 886, 887, 925, 511, 0, 0, 0, 150, + 606, 278, 279, 280, 0, 929, 0, 0, 0, 0, + 0, 613, 0, 0, 0, 466, 467, 0, 0, 0, + 0, 0, 0, 0, 244, 127, 245, 246, 247, 248, + 0, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 561, 561, 144, 561, 0, 152, 153, 154, 561, 34, + 888, 561, 0, 561, 561, 561, 561, 561, 561, 561, + 0, 561, 561, 561, 561, 0, 561, 561, 0, 0, + 561, 561, 561, 561, 0, 0, 561, 561, 561, 561, + 0, 0, 0, 0, 562, 0, 561, 0, 561, 392, + 0, 561, 392, 392, 392, 392, 561, 392, 392, 392, + 0, 0, 561, 561, 561, 561, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1172, 0, 562, 0, 0, + 0, 0, 562, 0, 562, 562, 562, 0, 562, 0, + 0, 562, 0, 0, 0, 0, 0, 0, 561, 0, + 561, 561, 561, 562, 562, 562, 562, 0, 0, 2, + 0, 0, 0, 0, 561, 561, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 561, 609, 0, 155, 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 0, 0, 0, 562, - 561, 562, 0, 561, 561, 784, 784, 784, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 561, 561, 561, 561, 0, 561, 561, 561, 561, 0, - 784, 561, 0, 561, 0, 561, 561, 561, 0, 0, - 561, 561, 0, 561, 561, 561, 0, 0, 0, 0, - 0, 0, 561, 865, 866, 867, 0, 868, 869, 870, - 871, 0, 872, 873, 197, 0, 874, 875, 876, 877, - 0, 0, 0, 878, 879, 0, 0, 0, 0, 0, - 561, 561, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 0, 561, 561, - 0, 561, 561, 561, 0, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 784, 0, 784, 784, 784, 784, - 0, 0, 0, 0, 0, 0, 562, 562, 0, 562, - 0, 880, 0, 803, 562, 0, 0, 562, 0, 562, - 562, 562, 562, 562, 562, 562, 0, 562, 562, 562, - 562, 0, 562, 562, 0, 0, 562, 562, 562, 562, - 0, 0, 562, 562, 562, 562, 0, 0, 0, 0, - 555, 0, 562, 0, 562, 0, 0, 562, 0, 0, - 0, 0, 562, 0, 0, 0, 0, 0, 562, 562, - 562, 562, 0, 0, 0, 0, 0, 0, 0, 803, - 0, 0, 0, 555, 0, 0, 0, 0, 555, 0, - 555, 555, 555, 0, 555, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 0, 562, 562, 562, 555, - 555, 555, 555, 0, 0, 0, 0, 0, 0, 0, - 562, 562, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, - 0, 555, 562, 562, 562, 562, 562, 562, 562, 562, + 561, 561, 561, 561, 0, 0, 0, 562, 561, 562, + 0, 561, 561, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 561, 561, + 561, 561, 0, 561, 561, 561, 561, 0, 0, 561, + 0, 561, 0, 561, 561, 561, 0, 0, 561, 561, + 216, 561, 561, 561, 0, 0, 0, 0, 0, 0, + 561, 0, 0, 2, 0, 1235, 1236, 1237, 0, 1238, + 1239, 1240, 1241, 0, 1242, 1243, 198, 0, 1244, 1245, + 1246, 1247, 0, 0, 0, 610, 609, 1248, 561, 561, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 561, 561, 0, 561, + 561, 561, 0, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 0, 561, 0, 0, 0, 13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, + 612, 0, 0, 104, 562, 562, 0, 562, 0, 0, + 0, 0, 562, 837, 0, 562, 0, 562, 562, 562, + 562, 562, 562, 562, 0, 562, 562, 562, 562, 0, + 562, 562, 0, 0, 562, 562, 562, 562, 0, 0, + 562, 562, 562, 562, 0, 0, 0, 0, 555, 0, + 562, 0, 562, 0, 0, 562, 0, 0, 0, 610, + 562, 0, 0, 0, 0, 0, 562, 562, 562, 562, + 0, 27, 28, 29, 30, 31, 32, 33, 0, 837, + 0, 555, 789, 789, 0, 789, 555, 0, 555, 555, + 555, 0, 555, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 562, 0, 562, 562, 562, 555, 555, 555, + 555, 611, 0, 0, 612, 0, 0, 0, 562, 562, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 0, 0, 0, 555, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 0, 0, 0, 555, 562, 555, 0, 562, 562, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 562, 562, 562, 0, 562, - 562, 562, 562, 0, 0, 562, 0, 562, 0, 562, - 562, 562, 0, 0, 562, 562, 0, 562, 562, 562, - 0, 0, 127, 0, 0, 0, 562, 803, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 0, 1297, 144, - 0, 0, 0, 0, 562, 562, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 562, 0, 562, 562, 562, 0, 562, 562, 562, 562, 562, 562, 562, 562, 562, 0, 0, - 0, 0, 0, 803, 0, 0, 0, 1298, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 555, 555, 0, 555, 0, 0, 1299, 0, 555, 0, - 0, 555, 0, 555, 555, 555, 555, 555, 555, 555, - 0, 555, 555, 555, 555, 0, 555, 555, 0, 1579, - 555, 555, 555, 555, 0, 0, 555, 555, 555, 555, - 0, 0, 0, 0, 553, 0, 555, 0, 555, 0, - 0, 555, 0, 0, 0, 0, 555, 0, 0, 0, - 0, 0, 555, 555, 555, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 803, 803, 553, 0, 0, - 0, 0, 553, 0, 553, 553, 553, 0, 553, 0, - 0, 0, 0, 0, 0, 803, 0, 0, 555, 0, - 555, 555, 555, 553, 553, 553, 553, 803, 0, 803, - 803, 0, 803, 803, 555, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 0, 0, 0, 553, 555, 555, 555, 555, + 0, 555, 562, 555, 0, 562, 562, 789, 789, 789, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 562, 562, 562, 562, 0, 562, 562, 562, + 562, 0, 789, 562, 0, 562, 0, 562, 562, 562, + 0, 0, 562, 562, 0, 562, 562, 562, 0, 0, + 0, 0, 0, 0, 562, 0, 0, 837, 0, 0, + 0, 0, 95, 0, 0, 96, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 837, 0, 562, 562, 0, 0, 0, 0, 97, 98, + 0, 0, 0, 99, 0, 100, 0, 0, 0, 0, + 562, 562, 101, 562, 562, 562, 0, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 0, 562, 0, 102, + 0, 0, 0, 0, 0, 0, 789, 0, 789, 789, + 789, 789, 0, 0, 103, 0, 0, 0, 555, 555, + 0, 555, 0, 0, 0, 0, 555, 838, 0, 555, + 0, 555, 555, 555, 555, 555, 555, 555, 0, 555, + 555, 555, 555, 0, 555, 555, 0, 1587, 555, 555, + 555, 555, 0, 0, 555, 555, 555, 555, 0, 0, + 0, 0, 553, 0, 555, 0, 555, 0, 0, 555, + 0, 0, 0, 837, 555, 0, 0, 0, 0, 0, + 555, 555, 555, 555, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 838, 0, 553, 0, 0, 0, 0, + 553, 0, 553, 553, 553, 0, 553, 0, 0, 0, + 0, 0, 0, 0, 0, 837, 555, 0, 555, 555, + 555, 553, 553, 553, 553, 837, 0, 0, 837, 0, + 0, 0, 555, 555, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, + 0, 0, 0, 553, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 0, 0, 0, 553, 555, 553, - 0, 555, 555, 0, 0, 0, 0, 0, 0, 803, - 803, 803, 803, 803, 803, 803, 0, 0, 555, 555, - 555, 555, 0, 555, 555, 555, 555, 0, 0, 555, - 1564, 555, 0, 555, 555, 555, 0, 0, 555, 555, - 0, 555, 555, 555, 0, 1565, 0, 0, 0, 0, - 555, 0, 0, 865, 866, 867, 0, 868, 869, 870, - 871, 1566, 872, 873, 197, 0, 874, 875, 876, 877, - 1567, 0, 0, 878, 879, 0, 0, 0, 555, 555, - 0, 0, 0, 0, 1568, 1569, 1570, 1571, 0, 0, - 0, 0, 0, 0, 0, 0, 555, 555, 0, 555, - 555, 555, 0, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 0, 0, 0, 0, 1572, 1573, 1574, 1575, - 1576, 1577, 1578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 553, 553, 0, 553, 0, 0, - 0, 880, 553, 0, 0, 553, 0, 553, 553, 553, - 553, 553, 553, 553, 0, 553, 553, 553, 553, 0, - 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, - 553, 553, 553, 553, 0, 0, 0, 0, 551, 0, - 553, 0, 553, 0, 0, 553, 0, 0, 0, 0, - 553, 0, 0, 0, 0, 0, 553, 553, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 551, 0, 0, 0, 0, 551, 0, 551, 551, - 551, 0, 551, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 553, 0, 553, 553, 553, 551, 551, 551, - 551, 0, 0, 0, 0, 0, 0, 0, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 553, 0, 0, 0, 551, + 555, 555, 0, 0, 0, 553, 555, 553, 0, 555, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 837, + 837, 837, 837, 837, 837, 837, 555, 555, 555, 555, + 0, 555, 555, 555, 555, 0, 0, 555, 1572, 555, + 0, 555, 555, 555, 0, 0, 555, 555, 0, 555, + 555, 555, 0, 1573, 0, 0, 0, 0, 555, 0, + 0, 838, 0, 0, 0, 0, 0, 0, 0, 1574, + 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, + 0, 0, 0, 0, 838, 0, 555, 555, 0, 0, + 0, 0, 1576, 1577, 1578, 1579, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 555, 0, 555, 555, 555, + 0, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 0, 555, 0, 0, 1580, 1581, 1582, 1583, 1584, 1585, + 1586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 553, 553, 0, 553, 0, 0, 0, 0, + 553, 839, 0, 553, 0, 553, 553, 553, 553, 553, + 553, 553, 0, 553, 553, 553, 553, 0, 553, 553, + 0, 0, 553, 553, 553, 553, 0, 0, 553, 553, + 553, 553, 0, 0, 0, 0, 551, 0, 553, 0, + 553, 0, 0, 553, 0, 0, 0, 838, 553, 0, + 0, 0, 0, 0, 553, 553, 553, 553, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 839, 0, 551, + 0, 0, 0, 0, 551, 0, 551, 551, 551, 0, + 551, 0, 0, 0, 0, 0, 0, 0, 0, 838, + 553, 0, 553, 553, 553, 551, 551, 551, 551, 838, + 0, 0, 838, 0, 0, 0, 553, 553, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 553, 0, 0, 0, 551, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 0, 0, - 0, 551, 553, 551, 0, 553, 553, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 553, 553, 553, 553, 0, 553, 553, 553, - 553, 0, 0, 553, 0, 553, 215, 553, 553, 553, - 0, 0, 553, 553, 0, 553, 553, 553, 0, 0, - 0, 1227, 1228, 1229, 553, 1230, 1231, 1232, 1233, 0, - 1234, 1235, 197, 0, 1236, 1237, 1238, 1239, 0, 0, - 0, 0, 0, 1240, 0, 0, 0, 0, 0, 0, - 0, 0, 553, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 553, 553, 0, 553, 553, 553, 0, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 551, 551, - 0, 551, 0, 0, 0, 0, 551, 0, 0, 551, - 0, 551, 551, 551, 551, 551, 551, 551, 0, 551, - 551, 551, 551, 0, 551, 551, 0, 0, 551, 551, - 551, 551, 0, 0, 551, 551, 551, 551, 0, 0, - 0, 0, 552, 0, 551, 0, 551, 0, 0, 551, - 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, - 551, 551, 551, 551, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, - 552, 0, 552, 552, 552, 0, 552, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 551, 0, 551, 551, - 551, 552, 552, 552, 552, 0, 0, 0, 0, 0, - 0, 0, 551, 551, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, - 0, 0, 0, 552, 551, 551, 551, 551, 551, 551, + 553, 553, 553, 553, 553, 553, 0, 0, 0, 551, + 553, 551, 0, 553, 553, 0, 0, 0, 0, 0, + 0, 0, 0, 838, 838, 838, 838, 838, 838, 838, + 553, 553, 553, 553, 0, 553, 553, 553, 553, 0, + 0, 553, 0, 553, 0, 553, 553, 553, 0, 0, + 553, 553, 0, 553, 553, 553, 0, 0, 0, 0, + 0, 0, 553, 0, 0, 839, 0, 95, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 839, 0, + 553, 553, 0, 97, 98, 0, 0, 0, 99, 0, + 100, 0, 0, 0, 0, 0, 0, 101, 553, 553, + 0, 553, 553, 553, 0, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 102, 553, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 0, 0, 0, 0, 551, 551, 0, 551, + 0, 0, 0, 0, 551, 0, 0, 551, 0, 551, + 551, 551, 551, 551, 551, 551, 0, 551, 551, 551, + 551, 0, 551, 551, 0, 0, 551, 551, 551, 551, + 0, 0, 551, 551, 551, 551, 0, 0, 0, 0, + 552, 0, 551, 0, 551, 0, 0, 551, 0, 0, + 0, 839, 551, 0, 0, 0, 0, 0, 551, 551, + 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 552, 0, 0, 0, 0, 552, 0, + 552, 552, 552, 0, 552, 0, 0, 0, 0, 0, + 0, 0, 0, 839, 551, 0, 551, 551, 551, 552, + 552, 552, 552, 839, 0, 0, 839, 0, 0, 0, + 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, + 0, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 0, 0, 0, 552, 551, 552, 0, 551, - 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 551, 551, 551, 551, - 0, 551, 551, 551, 551, 0, 0, 551, 0, 551, - 0, 551, 551, 551, 0, 0, 551, 551, 0, 551, - 551, 551, 0, 0, 0, 0, 0, 0, 551, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 551, 551, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 551, 551, 0, 551, 551, 551, - 0, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 552, 552, 0, 552, 0, 0, 0, 0, - 552, 0, 0, 552, 0, 552, 552, 552, 552, 552, - 552, 552, 0, 552, 552, 552, 552, 0, 552, 552, - 0, 0, 552, 552, 552, 552, 0, 0, 552, 552, - 552, 552, 0, 0, 0, 0, 554, 0, 552, 0, - 552, 0, 0, 552, 0, 0, 0, 0, 552, 0, - 0, 0, 0, 0, 552, 552, 552, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, - 0, 0, 0, 0, 554, 0, 554, 554, 554, 0, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 0, 552, 552, 552, 554, 554, 554, 554, 0, - 0, 0, 0, 0, 0, 0, 552, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 552, 0, 0, 0, 554, 552, 552, + 0, 0, 0, 552, 551, 552, 0, 551, 551, 0, + 0, 0, 0, 0, 0, 0, 0, 839, 839, 839, + 839, 839, 839, 839, 551, 551, 551, 551, 0, 551, + 551, 551, 551, 0, 0, 551, 0, 551, 0, 551, + 551, 551, 0, 0, 551, 551, 0, 551, 551, 551, + 0, 127, 0, 0, 0, 0, 551, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 1305, 144, 0, + 0, 0, 0, 0, 551, 551, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 551, 551, 0, 551, 551, 551, 0, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 0, 551, + 0, 0, 0, 0, 0, 0, 1306, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 552, 552, 0, 552, 0, 1307, 0, 0, 552, 0, + 0, 552, 0, 552, 552, 552, 552, 552, 552, 552, + 0, 552, 552, 552, 552, 0, 552, 552, 0, 0, + 552, 552, 552, 552, 0, 0, 552, 552, 552, 552, + 0, 0, 0, 0, 554, 0, 552, 0, 552, 0, + 0, 552, 0, 0, 0, 0, 552, 0, 0, 0, + 0, 0, 552, 552, 552, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, + 0, 0, 554, 0, 554, 554, 554, 0, 554, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, + 552, 552, 552, 554, 554, 554, 554, 0, 0, 0, + 0, 0, 0, 0, 552, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 552, 0, 0, 0, 554, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 0, 0, 0, 554, - 552, 554, 0, 552, 552, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 552, 552, 552, 0, 552, 552, 552, 552, 0, - 0, 552, 0, 552, 0, 552, 552, 552, 0, 0, - 552, 552, 0, 552, 552, 552, 0, 0, 0, 0, - 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, + 552, 552, 552, 552, 0, 0, 0, 554, 552, 554, + 0, 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 552, - 0, 552, 552, 552, 0, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 0, 554, - 0, 0, 0, 0, 554, 0, 0, 554, 0, 554, - 554, 554, 554, 554, 554, 554, 0, 554, 554, 554, - 554, 0, 554, 554, 0, 0, 554, 554, 554, 554, - 0, 0, 554, 554, 554, 554, 0, 0, 0, 0, - 689, 0, 554, 0, 554, 0, 0, 554, 0, 0, - 0, 0, 554, 0, 0, 0, 0, 0, 554, 554, - 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 689, 0, 0, 0, 0, 689, 0, - 689, 689, 689, 0, 689, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 0, 554, 554, 554, 689, - 689, 689, 689, 0, 0, 0, 0, 0, 0, 0, - 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, - 0, 689, 554, 554, 554, 554, 554, 554, 554, 554, + 552, 552, 0, 552, 552, 552, 552, 0, 0, 552, + 0, 552, 0, 552, 552, 552, 0, 0, 552, 552, + 0, 552, 552, 552, 0, 0, 0, 0, 0, 0, + 552, 873, 874, 875, 0, 876, 877, 878, 879, 0, + 880, 881, 198, 0, 882, 883, 884, 885, 0, 0, + 0, 886, 887, 0, 0, 0, 0, 0, 552, 552, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 552, 552, 0, 552, + 552, 552, 0, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 0, 552, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 554, 554, 0, 554, 0, 888, + 0, 0, 554, 0, 0, 554, 0, 554, 554, 554, + 554, 554, 554, 554, 0, 554, 554, 554, 554, 0, + 554, 554, 0, 0, 554, 554, 554, 554, 0, 0, + 554, 554, 554, 554, 0, 0, 0, 0, 694, 0, + 554, 0, 554, 0, 0, 554, 0, 0, 0, 0, + 554, 0, 0, 0, 0, 0, 554, 554, 554, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 694, 0, 0, 0, 0, 694, 0, 694, 694, + 694, 0, 694, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 554, 0, 554, 554, 554, 694, 694, 694, + 694, 0, 0, 0, 0, 0, 0, 0, 554, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 554, 0, 0, 0, 694, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 0, 0, 0, 689, 554, 689, 0, 554, 554, 0, + 554, 554, 554, 554, 554, 554, 554, 554, 0, 0, + 0, 694, 554, 694, 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 554, 554, 554, 0, 554, - 554, 554, 554, 0, 0, 554, 0, 554, 0, 554, - 554, 554, 0, 0, 554, 554, 0, 554, 554, 554, - 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, + 0, 0, 554, 554, 554, 554, 0, 554, 554, 554, + 554, 0, 0, 554, 0, 554, 0, 554, 554, 554, + 0, 0, 554, 554, 0, 554, 554, 554, 0, 0, + 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 554, 0, 0, 0, 0, + 0, 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 554, 0, 554, 554, 554, 0, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 0, 0, + 554, 554, 0, 554, 554, 554, 0, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 694, 694, + 0, 694, 0, 0, 0, 0, 694, 0, 0, 694, + 0, 694, 694, 694, 694, 694, 694, 694, 0, 694, + 694, 694, 694, 0, 694, 694, 0, 0, 694, 694, + 694, 694, 0, 0, 694, 694, 694, 0, 0, 0, + 0, 0, 693, 0, 694, 0, 694, 0, 0, 694, + 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, + 694, 694, 694, 694, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, + 693, 0, 693, 693, 693, 0, 693, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 0, 694, 694, + 694, 693, 693, 693, 693, 0, 0, 0, 0, 0, + 0, 0, 694, 694, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, + 0, 0, 0, 693, 694, 694, 694, 694, 694, 694, + 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 694, 694, 0, 0, 0, 693, 694, 693, 0, 694, + 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 694, 694, 694, + 0, 694, 694, 694, 694, 0, 0, 694, 0, 694, + 0, 694, 694, 694, 0, 0, 694, 694, 0, 694, + 694, 694, 0, 0, 0, 0, 0, 0, 694, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 694, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 694, 694, 0, 694, 694, 694, + 0, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 0, 694, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 693, 693, 0, 693, 0, 0, 0, 0, + 693, 0, 0, 693, 0, 693, 693, 693, 693, 693, + 693, 693, 0, 693, 693, 693, 693, 0, 693, 693, + 0, 0, 693, 693, 693, 693, 0, 0, 693, 693, + 693, 0, 0, 0, 0, 0, 692, 0, 693, 0, + 693, 0, 0, 693, 0, 0, 0, 0, 693, 0, + 0, 0, 0, 0, 693, 693, 693, 693, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, + 0, 0, 0, 0, 692, 0, 692, 692, 692, 0, + 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 693, 0, 693, 693, 693, 692, 692, 692, 692, 0, + 0, 0, 0, 0, 0, 0, 693, 693, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 693, 0, 0, 0, 692, 693, 693, + 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 693, 693, 693, 693, 693, 0, 0, 0, 692, + 693, 692, 0, 693, 693, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 693, 693, 693, 693, 0, 693, 693, 693, 693, 0, + 0, 693, 0, 693, 0, 693, 693, 693, 0, 0, + 693, 693, 0, 693, 693, 693, 0, 0, 0, 0, + 0, 0, 693, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 693, 693, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 693, 693, + 0, 693, 693, 693, 0, 693, 693, 693, 693, 693, + 693, 693, 693, 693, 0, 693, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 692, 692, 0, 692, + 0, 0, 0, 0, 692, 0, 0, 692, 0, 692, + 692, 692, 692, 692, 692, 692, 0, 692, 692, 692, + 692, 0, 692, 692, 0, 0, 692, 692, 692, 692, + 0, 0, 692, 692, 692, 0, 0, 0, 0, 0, + 691, 0, 692, 0, 692, 0, 0, 692, 0, 0, + 0, 0, 692, 0, 0, 0, 0, 0, 692, 692, + 692, 692, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 691, 0, 0, 0, 0, 691, 0, + 691, 691, 691, 0, 691, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 692, 0, 692, 692, 692, 691, + 691, 691, 691, 0, 0, 0, 0, 0, 0, 0, + 692, 692, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, + 0, 691, 692, 692, 692, 692, 692, 692, 692, 692, + 692, 692, 692, 692, 692, 692, 692, 692, 692, 692, + 692, 692, 692, 692, 692, 692, 692, 692, 692, 692, + 0, 0, 0, 691, 692, 691, 0, 692, 692, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 692, 692, 692, 692, 0, 692, + 692, 692, 692, 0, 0, 692, 0, 692, 0, 692, + 692, 692, 0, 0, 692, 692, 0, 692, 692, 692, + 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 689, 689, 0, 689, 0, 0, 0, 0, 689, 0, - 0, 689, 0, 689, 689, 689, 689, 689, 689, 689, - 0, 689, 689, 689, 689, 0, 689, 689, 0, 0, - 689, 689, 689, 689, 0, 0, 689, 689, 689, 0, - 0, 0, 0, 0, 688, 0, 689, 0, 689, 0, - 0, 689, 0, 0, 0, 0, 689, 0, 0, 0, - 0, 0, 689, 689, 689, 689, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 688, 0, 0, - 0, 0, 688, 0, 688, 688, 688, 0, 688, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 689, 0, - 689, 689, 689, 688, 688, 688, 688, 0, 0, 0, - 0, 0, 0, 0, 689, 689, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 689, 0, 0, 0, 688, 689, 689, 689, 689, - 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, - 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, - 689, 689, 689, 689, 0, 0, 0, 688, 689, 688, - 0, 689, 689, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 689, 689, - 689, 689, 0, 689, 689, 689, 689, 0, 0, 689, - 0, 689, 0, 689, 689, 689, 0, 0, 689, 689, - 0, 689, 689, 689, 0, 0, 0, 0, 0, 0, - 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 689, 689, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 689, 689, 0, 689, - 689, 689, 0, 689, 689, 689, 689, 689, 689, 689, - 689, 689, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 688, 688, 0, 688, 0, 0, - 0, 0, 688, 0, 0, 688, 0, 688, 688, 688, - 688, 688, 688, 688, 0, 688, 688, 688, 688, 0, - 688, 688, 0, 0, 688, 688, 688, 688, 0, 0, - 688, 688, 688, 0, 0, 0, 0, 0, 696, 0, - 688, 0, 688, 0, 0, 688, 0, 0, 0, 0, - 688, 0, 0, 0, 0, 0, 688, 688, 688, 688, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 696, 0, 0, 0, 0, 0, 0, 696, 696, - 0, 0, 696, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 688, 0, 688, 688, 688, 696, 0, 696, - 696, 0, 0, 0, 0, 0, 0, 0, 688, 688, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 298, 688, 0, 0, 0, 0, - 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, - 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, - 688, 688, 688, 688, 688, 688, 688, 688, 0, 0, - 0, 696, 688, 696, 0, 688, 688, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 688, 688, 688, 688, 0, 688, 688, 688, - 688, 0, 0, 688, 0, 688, 0, 688, 688, 688, - 0, 0, 688, 688, 0, 688, 688, 688, 0, 0, - 0, 0, 0, 0, 688, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 688, 688, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 688, 688, 0, 688, 688, 688, 0, 688, 688, 688, - 688, 688, 688, 688, 688, 688, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, - 0, 696, 0, 0, 0, 0, 696, 0, 0, 696, - 0, 696, 696, 696, 696, 696, 696, 696, 0, 696, - 696, 696, 696, 0, 696, 696, 0, 0, 696, 696, - 696, 696, 0, 0, 696, 696, 696, 0, 0, 52, - 0, 0, 0, 0, 696, 0, 696, 0, 0, 696, - 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, - 696, 696, 696, 696, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, - 0, 0, 0, 0, 298, 0, 298, 298, 298, 0, - 0, 0, 0, 0, 0, 0, 696, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 696, 696, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 298, 298, 298, 0, 696, - 0, 0, 0, 0, 696, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 52, 0, 52, 0, 696, 0, 0, 696, - 696, 298, 298, 298, 0, 298, 0, 0, 298, 0, - 0, 0, 0, 0, 0, 0, 696, 696, 696, 696, - 0, 696, 696, 696, 696, 0, 0, 696, 0, 696, - 0, 696, 696, 696, 0, 0, 696, 696, 0, 696, - 696, 696, 0, 0, 0, 0, 0, 0, 696, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 696, 696, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 696, 696, 0, 696, 696, 696, - 0, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 0, 52, 52, 52, 0, - 52, 52, 52, 52, 0, 52, 52, 52, 0, 52, - 52, 52, 52, 0, 0, 52, 52, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 127, 555, 54, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 52, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 52, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 147, - 148, 149, 0, 52, 52, 0, 0, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 54, 0, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 0, 52, 0, - 52, 0, 52, 52, 52, 52, 0, 52, 52, 0, - 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, - 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 156, 0, 0, 0, 358, 0, 0, 0, 359, - 0, 0, 360, 361, 0, 0, 0, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 54, - 0, 0, 54, 0, 0, 374, 0, 0, 375, 0, - 0, 0, 54, 0, 0, 376, 54, 54, 54, 0, - 54, 54, 54, 54, 377, 54, 54, 54, 0, 54, - 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 264, 127, 265, 55, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 54, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 0, 0, 54, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 147, - 148, 149, 0, 54, 54, 0, 0, 0, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 55, 0, 55, 0, 0, 784, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, - 54, 0, 54, 54, 54, 54, 0, 0, 54, 0, - 54, 0, 54, 54, 54, 54, 0, 54, 54, 127, - 54, 54, 54, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 54, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 54, 54, 0, 54, 54, - 54, 0, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 0, 55, 55, 55, 0, - 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, - 55, 55, 55, 0, 0, 55, 55, 55, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 56, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 55, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 0, 0, 55, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 147, - 148, 149, 0, 55, 55, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 56, 0, 56, 0, 0, 858, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 0, 55, 0, - 55, 0, 55, 55, 55, 55, 0, 55, 55, 225, - 55, 55, 55, 225, 225, 225, 225, 225, 0, 225, - 225, 225, 225, 0, 225, 225, 0, 0, 225, 225, - 225, 225, 0, 0, 0, 225, 225, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 225, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 225, 225, 0, 55, 55, 0, 55, 55, - 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 0, 56, 56, 56, 0, - 56, 56, 56, 56, 0, 56, 56, 56, 0, 56, - 56, 56, 56, 0, 0, 56, 56, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 53, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 56, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 0, 0, 56, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 147, - 148, 149, 0, 56, 56, 0, 0, 0, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 53, 0, 53, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 0, 56, 0, - 56, 0, 56, 56, 56, 56, 0, 56, 56, 0, - 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 105, 105, 0, 105, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, - 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 56, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 0, 0, 0, 0, 105, 0, 61, 0, 105, - 0, 0, 105, 105, 0, 0, 0, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 53, - 0, 0, 53, 0, 0, 105, 0, 0, 105, 0, - 0, 0, 53, 0, 0, 105, 53, 53, 53, 0, - 53, 53, 53, 53, 105, 53, 53, 53, 0, 53, - 53, 53, 53, 0, 0, 53, 53, 53, 0, 0, - 0, 61, 0, 61, 0, 0, 0, 232, 34, 0, - 0, 232, 232, 232, 232, 232, 0, 232, 232, 232, - 232, 53, 232, 232, 0, 0, 232, 232, 232, 232, - 0, 0, 0, 232, 232, 0, 0, 0, 53, 0, - 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 232, - 232, 232, 0, 53, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 0, 62, 0, 0, 0, 0, 61, 0, - 0, 61, 0, 0, 0, 0, 0, 53, 53, 53, - 53, 61, 53, 53, 53, 53, 0, 0, 53, 0, - 53, 0, 53, 53, 53, 53, 0, 53, 53, 0, - 53, 53, 53, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 53, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, - 0, 0, 2, 0, 0, 53, 53, 0, 53, 53, - 53, 0, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 0, 0, 0, 692, 692, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 692, 692, 0, 692, 692, 692, 0, 692, + 692, 692, 692, 692, 692, 692, 692, 692, 0, 692, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 691, 691, 0, 691, 0, 0, 0, 0, 691, 0, + 0, 691, 0, 691, 691, 691, 691, 691, 691, 691, + 0, 691, 691, 691, 691, 0, 691, 691, 0, 0, + 691, 691, 691, 691, 0, 0, 691, 691, 691, 0, + 0, 0, 0, 0, 701, 0, 691, 0, 691, 0, + 0, 691, 0, 0, 0, 0, 691, 0, 0, 0, + 0, 0, 691, 691, 691, 691, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 701, 0, 0, + 0, 0, 0, 0, 701, 701, 0, 0, 701, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 691, 0, + 691, 691, 691, 701, 0, 701, 701, 0, 0, 0, + 0, 0, 0, 0, 691, 691, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 691, 0, 0, 0, 0, 691, 691, 691, 691, + 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + 691, 691, 691, 691, 0, 0, 0, 701, 691, 701, + 0, 691, 691, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 691, 691, + 691, 691, 0, 691, 691, 691, 691, 0, 0, 691, + 0, 691, 0, 691, 691, 691, 0, 0, 691, 691, + 0, 691, 691, 691, 0, 0, 0, 0, 0, 0, + 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 691, 691, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 691, 691, 0, 691, + 691, 691, 0, 691, 691, 691, 691, 691, 691, 691, + 691, 691, 0, 691, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 701, 701, 0, 701, 0, 0, + 67, 68, 701, 69, 0, 701, 0, 701, 701, 701, + 701, 701, 701, 701, 0, 701, 701, 701, 701, 0, + 701, 701, 0, 0, 701, 701, 701, 701, 0, 0, + 701, 701, 701, 0, 360, 52, 0, 0, 0, 0, + 701, 0, 701, 0, 0, 701, 0, 0, 0, 0, + 701, 0, 0, 0, 0, 0, 701, 701, 701, 701, + 0, 0, 0, 361, 0, 0, 0, 362, 0, 0, + 363, 364, 0, 0, 0, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 0, 0, 0, + 0, 0, 701, 377, 52, 0, 378, 0, 0, 0, + 0, 0, 0, 379, 0, 157, 0, 0, 701, 701, + 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 701, 0, 0, 0, 0, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 52, 0, + 52, 0, 701, 0, 0, 701, 701, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 701, 701, 701, 701, 0, 701, 701, 701, + 701, 0, 0, 701, 0, 701, 0, 701, 701, 701, + 0, 0, 701, 701, 0, 701, 701, 701, 0, 0, + 0, 0, 0, 0, 701, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 701, 701, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 701, 701, 0, 701, 701, 701, 0, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 0, 701, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 0, 52, 52, 52, 0, 52, 52, 52, 52, + 0, 52, 52, 52, 0, 52, 52, 52, 52, 0, + 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 127, 266, 54, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 52, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, + 144, 0, 0, 0, 52, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 147, 148, 149, 0, 52, + 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 54, 0, + 54, 0, 0, 866, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 52, 52, 52, 0, 52, 52, + 52, 52, 0, 0, 52, 0, 52, 0, 52, 52, + 52, 52, 0, 52, 52, 0, 52, 52, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 105, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, + 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 52, 0, 52, 52, 52, 0, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, + 0, 105, 0, 0, 0, 105, 0, 0, 105, 105, + 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 54, 0, 0, 54, 0, + 0, 105, 0, 0, 105, 155, 0, 0, 54, 0, + 0, 105, 54, 54, 54, 0, 54, 54, 54, 54, + 105, 54, 54, 54, 0, 54, 54, 54, 54, 0, + 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 127, 0, 55, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 54, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, + 144, 0, 0, 0, 54, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 147, 148, 149, 0, 54, + 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, + 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 55, 0, + 55, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 54, 54, 54, 0, 54, 54, + 54, 54, 0, 0, 54, 0, 54, 0, 54, 54, + 54, 54, 0, 54, 54, 0, 54, 54, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 54, 0, 54, 54, 54, 0, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 55, 0, + 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, + 0, 55, 55, 55, 0, 55, 55, 55, 55, 0, + 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 232, 0, 56, 0, 232, 232, 232, + 232, 232, 0, 232, 232, 232, 232, 55, 232, 232, + 0, 0, 232, 232, 232, 232, 0, 0, 0, 232, + 232, 0, 0, 0, 55, 0, 0, 0, 232, 0, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 232, 232, 232, 0, 55, + 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 232, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, + 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 56, 0, + 56, 0, 0, 225, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 55, 55, 55, 0, 55, 55, + 55, 55, 0, 0, 55, 0, 55, 0, 55, 55, + 55, 55, 0, 55, 55, 0, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 55, 0, 55, 55, 55, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 232, 0, 0, 56, 0, + 0, 0, 56, 56, 56, 0, 56, 56, 56, 56, + 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, + 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 53, 0, 225, 225, 225, + 225, 225, 0, 225, 225, 225, 225, 56, 225, 225, + 0, 0, 225, 225, 225, 225, 0, 0, 0, 225, + 225, 0, 0, 0, 56, 0, 0, 0, 225, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 225, 225, 225, 0, 56, + 56, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, + 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 0, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 507, 0, 0, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, + 0, 0, 0, 56, 56, 56, 56, 0, 56, 56, + 56, 56, 0, 0, 56, 0, 56, 0, 56, 56, + 56, 56, 0, 56, 56, 0, 56, 56, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 56, 0, 56, 56, 56, 0, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 225, 0, 0, 53, 0, + 0, 0, 53, 53, 53, 0, 53, 53, 53, 53, + 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, + 0, 53, 53, 53, 0, 0, 0, 61, 0, 61, + 0, 0, 0, 0, 34, 385, 97, 0, 0, 0, + 0, 99, 0, 100, 0, 0, 0, 53, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 102, 386, 0, + 387, 388, 389, 390, 391, 0, 0, 0, 0, 392, + 0, 0, 103, 0, 53, 0, 0, 0, 393, 53, + 53, 0, 0, 394, 0, 395, 0, 0, 0, 0, + 522, 0, 0, 0, 0, 0, 0, 396, 397, 398, + 399, 400, 401, 402, 403, 0, 0, 0, 0, 0, + 404, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, + 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 0, 62, + 0, 0, 0, 0, 61, 0, 0, 61, 0, 0, + 0, 0, 0, 53, 53, 53, 53, 61, 53, 53, + 53, 53, 0, 0, 53, 0, 53, 0, 53, 53, + 53, 53, 0, 53, 53, 0, 53, 53, 53, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 2, 0, + 0, 53, 53, 0, 53, 53, 53, 0, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 513, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 61, 61, 61, 61, - 0, 61, 61, 61, 61, 0, 0, 61, 0, 61, - 0, 61, 61, 61, 61, 0, 61, 61, 0, 61, - 61, 61, 0, 0, 0, 0, 0, 0, 508, 0, - 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 509, 0, 0, 0, 0, 510, 0, 0, - 8, 9, 0, 0, 0, 0, 61, 61, 0, 0, - 0, 0, 0, 62, 0, 0, 62, 10, 11, 12, - 13, 0, 511, 512, 61, 61, 62, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 0, 0, 513, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 65, 0, 65, 0, 0, + 61, 61, 61, 61, 61, 61, 61, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 61, 61, 61, 0, 61, 61, 61, + 61, 0, 0, 61, 0, 61, 0, 61, 61, 61, + 61, 0, 61, 61, 0, 61, 61, 61, 0, 0, + 0, 0, 0, 0, 514, 0, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 515, 0, + 0, 0, 0, 516, 0, 0, 8, 9, 0, 0, + 0, 0, 61, 61, 0, 0, 0, 0, 0, 62, + 0, 0, 62, 10, 11, 12, 13, 0, 517, 518, + 61, 61, 62, 61, 61, 61, 0, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 0, 0, 519, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 520, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 514, 515, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 62, + 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, + 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 0, 66, 0, 0, - 0, 0, 65, 0, 0, 65, 0, 0, 0, 0, - 0, 62, 62, 62, 62, 65, 62, 62, 62, 62, - 0, 0, 62, 0, 62, 0, 62, 62, 62, 62, - 0, 62, 62, 0, 62, 62, 62, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 225, 0, 0, - 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 62, - 62, 0, 62, 62, 62, 0, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 66, 0, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 65, 65, + 62, 62, 0, 66, 0, 0, 0, 0, 65, 0, + 0, 65, 0, 0, 0, 0, 0, 62, 62, 62, + 62, 65, 62, 62, 62, 62, 0, 0, 62, 0, + 62, 0, 62, 62, 62, 62, 0, 62, 62, 0, + 62, 62, 62, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 62, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 0, 0, 0, 0, 62, 62, 0, 62, 62, + 62, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 0, 0, 0, 65, + 65, 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 566, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 65, 65, 65, + 0, 65, 65, 65, 65, 0, 0, 65, 0, 65, + 0, 65, 65, 65, 65, 0, 65, 65, 0, 65, + 65, 65, 0, 0, 0, 0, 0, 566, 566, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 65, 65, 65, 0, 65, 65, 65, 65, 0, - 0, 65, 0, 65, 0, 65, 65, 65, 65, 0, - 65, 65, 0, 65, 65, 65, 0, 0, 0, 0, - 0, 566, 566, 0, 0, 566, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 566, 0, 566, 0, + 0, 0, 0, 0, 0, 0, 65, 65, 0, 0, + 0, 0, 0, 66, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 65, 65, 66, 65, 65, 65, + 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, 566, 0, 0, 0, 0, 0, 0, 0, - 65, 65, 0, 0, 0, 0, 0, 66, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 65, 65, - 66, 65, 65, 65, 0, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 566, 225, 566, 0, 0, 225, - 225, 225, 225, 225, 0, 225, 225, 225, 225, 66, - 225, 225, 0, 0, 225, 225, 225, 225, 0, 0, - 0, 225, 225, 0, 0, 0, 66, 0, 0, 0, - 225, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, + 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 225, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 0, 0, 564, 0, + 0, 0, 0, 0, 0, 0, 0, 566, 566, 0, + 566, 66, 66, 66, 66, 0, 66, 66, 66, 66, + 566, 566, 66, 0, 66, 0, 66, 66, 66, 66, + 0, 66, 66, 0, 66, 66, 66, 0, 564, 564, 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, - 0, 566, 566, 0, 566, 66, 66, 66, 66, 0, - 66, 66, 66, 66, 566, 566, 66, 0, 66, 0, - 66, 66, 66, 66, 0, 66, 66, 0, 66, 66, - 66, 0, 564, 564, 0, 0, 564, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 564, 566, 564, + 0, 0, 0, 566, 0, 0, 0, 0, 0, 566, + 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 66, + 66, 0, 66, 66, 66, 0, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 566, 564, 0, 0, 0, 566, 0, 0, - 0, 0, 0, 566, 0, 66, 66, 0, 0, 0, + 0, 564, 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 66, 0, 66, 66, 66, 0, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 1022, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 564, 0, 564, 1023, 1024, - 0, 1025, 1026, 1027, 1028, 1029, 1030, 0, 1031, 1032, - 0, 1033, 1034, 1035, 1036, 1037, 0, 566, 566, 566, + 0, 0, 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 0, 0, 0, 566, 566, - 566, 566, 566, 566, 566, 0, 0, 0, 0, 566, - 0, 0, 566, 566, 0, 0, 565, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, - 566, 566, 566, 0, 566, 566, 566, 566, 0, 0, - 566, 0, 566, 0, 566, 566, 566, 0, 0, 566, - 566, 0, 566, 566, 566, 0, 565, 565, 0, 0, - 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 0, 565, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, - 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 564, 564, 566, 566, 0, - 566, 566, 566, 0, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, - 0, 565, 0, 564, 0, 0, 0, 0, 564, 0, + 566, 0, 0, 0, 566, 566, 566, 566, 566, 566, + 566, 0, 0, 0, 0, 566, 0, 0, 566, 566, + 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 566, 566, 566, 566, 0, + 566, 566, 566, 566, 0, 0, 566, 0, 566, 0, + 566, 566, 566, 0, 0, 566, 566, 0, 566, 566, + 566, 0, 565, 565, 0, 0, 565, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 565, 0, 565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 566, 566, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 564, 564, 566, 566, 0, 566, 566, 566, 0, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 565, 0, 565, 0, 564, 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1038, 1039, 0, 1040, - 1041, 1042, 0, 1043, 1044, 0, 0, 1045, 1046, 0, - 1047, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 1048, 1049, 1050, 1051, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 564, 0, 0, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 33, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, + 0, 0, 0, 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 0, 0, 33, 564, - 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, - 564, 0, 0, 564, 564, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 564, 564, 564, 564, 0, 564, 564, 564, 564, 565, - 565, 564, 0, 564, 0, 564, 564, 564, 0, 0, - 564, 564, 0, 564, 564, 564, 0, 0, 0, 0, - 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, - 0, 0, 565, 0, 0, 0, 0, 0, 565, 0, - 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, - 0, 564, 564, 564, 0, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, + 564, 564, 150, 0, 33, 564, 564, 564, 564, 564, + 564, 564, 0, 0, 0, 0, 564, 0, 0, 564, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 564, 564, 564, 564, + 0, 564, 564, 564, 564, 565, 565, 564, 0, 564, + 0, 564, 564, 564, 0, 0, 564, 564, 0, 564, + 564, 564, 0, 0, 0, 0, 0, 0, 33, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 565, 0, 0, 0, 0, 565, 0, + 0, 0, 0, 0, 565, 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 564, 564, 0, 564, 564, 564, + 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 565, 565, 565, 565, 565, 565, 565, 565, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 0, 0, 0, 565, 565, 565, 565, 565, 565, 565, - 0, 0, 0, 0, 565, 0, 0, 565, 565, 33, - 34, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 565, 565, 565, 565, 0, 565, - 565, 565, 565, 0, 0, 565, 0, 565, 0, 565, - 565, 565, 0, 0, 565, 565, 0, 565, 565, 565, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 34, 0, 34, 0, 0, 0, - 0, 0, 0, 0, 565, 565, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 565, 565, 0, 565, 565, 565, 0, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 0, 0, - 0, 0, 0, 0, 766, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 0, 766, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, - 33, 0, 33, 33, 33, 33, 0, 0, 33, 0, - 33, 34, 0, 33, 34, 0, 0, 0, 0, 0, - 33, 33, 33, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 766, 0, 766, - 0, 0, 0, 0, 0, 0, 0, 33, 33, 382, - 97, 0, 0, 0, 0, 99, 0, 100, 0, 0, - 0, 0, 0, 34, 101, 33, 33, 0, 33, 33, - 33, 0, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 102, 383, 0, 384, 385, 386, 387, 388, 0, - 0, 0, 0, 389, 0, 0, 103, 0, 768, 0, - 0, 0, 390, 0, 0, 0, 0, 391, 0, 392, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 393, 394, 395, 396, 397, 398, 399, 400, 780, - 0, 0, 0, 0, 401, 0, 0, 34, 34, 34, + 565, 565, 565, 565, 565, 565, 0, 155, 0, 565, + 565, 565, 565, 565, 565, 565, 0, 0, 0, 0, + 565, 0, 0, 565, 565, 33, 34, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 565, 565, 565, 565, 0, 565, 565, 565, 565, 0, + 0, 565, 0, 565, 0, 565, 565, 565, 0, 0, + 565, 565, 0, 565, 565, 565, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 34, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 565, 565, + 0, 565, 565, 565, 0, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 0, 0, 0, 0, 0, 0, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, + 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 0, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 33, 0, 33, 33, + 33, 33, 0, 0, 33, 0, 33, 34, 0, 33, + 34, 0, 0, 0, 0, 0, 33, 33, 33, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 771, 0, 771, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 33, 33, 0, 33, 33, 33, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 773, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 768, 34, 34, + 34, 0, 0, 773, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 766, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 766, 780, 34, - 34, 34, 34, 0, 34, 34, 34, 34, 0, 0, - 34, 0, 34, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 34, 34, 34, 0, 0, 0, 0, 0, - 0, 768, 0, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 766, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 34, 0, 0, 0, 780, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, - 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, - 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 0, 0, - 0, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 0, 0, 772, - 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, - 0, 0, 766, 766, 766, 766, 0, 766, 766, 766, - 766, 768, 0, 766, 0, 766, 0, 0, 766, 0, - 0, 0, 0, 0, 0, 766, 766, 766, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 772, 0, 772, 0, 0, 0, 0, - 768, 0, 766, 766, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 766, 766, 0, 766, 766, 766, 0, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 768, 768, 768, 768, 768, 768, - 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 768, 768, 0, 0, 0, 768, 768, 768, 768, 768, - 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 768, 0, 0, 770, 0, 0, 0, 0, 780, 780, - 780, 780, 780, 0, 0, 0, 768, 768, 768, 768, - 772, 768, 768, 768, 768, 0, 0, 768, 0, 768, - 780, 780, 768, 772, 0, 0, 0, 0, 0, 768, - 768, 768, 0, 0, 0, 0, 0, 780, 780, 780, - 780, 0, 0, 0, 780, 780, 0, 0, 0, 0, - 780, 0, 780, 780, 0, 0, 0, 770, 0, 770, - 780, 780, 0, 0, 0, 0, 768, 768, 0, 0, - 0, 0, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 768, 768, 0, 768, 768, 768, - 0, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 0, 0, 0, 0, 0, 0, 0, 774, 0, 0, - 0, 0, 0, 0, 0, 780, 780, 0, 780, 780, - 780, 0, 780, 780, 780, 780, 780, 780, 780, 780, - 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 0, 0, 774, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 770, 0, 0, 0, 772, 772, - 772, 772, 0, 772, 772, 772, 772, 770, 0, 772, - 0, 772, 0, 0, 772, 0, 0, 0, 0, 0, - 0, 772, 772, 772, 0, 0, 0, 0, 0, 0, - 774, 0, 774, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 770, 0, 772, 772, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 772, 772, 0, 772, - 772, 772, 0, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 0, 0, - 0, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 774, 724, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 774, 0, 770, 770, 770, 770, 0, 770, 770, 770, - 770, 0, 0, 770, 0, 770, 0, 0, 770, 0, - 0, 0, 0, 0, 0, 770, 770, 770, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 774, - 0, 0, 724, 0, 724, 0, 0, 0, 0, 0, - 0, 0, 770, 770, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 770, 770, 0, 770, 770, 770, 0, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 0, 0, 0, 0, - 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 0, 0, 0, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 774, 774, 774, 774, 0, - 774, 774, 774, 774, 0, 0, 774, 0, 774, 724, - 0, 774, 724, 0, 0, 0, 0, 0, 774, 774, - 774, 0, 724, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 726, 0, 726, 0, 0, - 0, 0, 0, 0, 0, 774, 774, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 724, 0, 774, 774, 0, 774, 774, 774, 0, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 0, 0, 0, 724, 724, 724, 724, - 724, 724, 724, 0, 0, 0, 0, 724, 0, 0, - 724, 724, 726, 0, 0, 726, 400, 0, 0, 0, - 0, 0, 0, 0, 0, 726, 0, 724, 724, 724, - 724, 400, 724, 724, 724, 724, 0, 0, 724, 0, - 724, 0, 724, 724, 724, 0, 0, 724, 724, 0, - 724, 724, 724, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 726, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 724, 724, 0, - 0, 0, 0, 0, 0, 400, 0, 400, 0, 0, - 0, 0, 0, 0, 0, 724, 724, 0, 724, 724, - 724, 0, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 0, 0, 0, 726, - 726, 726, 726, 726, 726, 726, 0, 0, 0, 0, - 726, 0, 0, 726, 726, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, - 726, 726, 726, 726, 0, 726, 726, 726, 726, 0, - 0, 726, 0, 726, 0, 726, 726, 726, 0, 0, - 726, 726, 0, 726, 726, 726, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 726, 726, 442, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, - 208, 726, 726, 726, 0, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 400, 0, 0, 0, 67, 68, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 771, 92, 34, 34, 34, 34, 0, + 34, 34, 34, 34, 0, 0, 34, 0, 34, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 34, 34, + 34, 0, 0, 0, 0, 0, 0, 773, 0, 773, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 0, 34, 34, 34, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, + 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 0, 0, 0, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 0, 0, 777, 0, 0, 0, 0, + 0, 0, 0, 0, 773, 0, 0, 0, 771, 771, + 771, 771, 0, 771, 771, 771, 771, 773, 0, 771, + 0, 771, 0, 0, 771, 0, 0, 0, 0, 0, + 0, 771, 771, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 777, + 0, 777, 0, 0, 0, 0, 773, 0, 771, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 771, 771, 0, 771, + 771, 771, 0, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 0, 0, + 0, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 0, 0, 775, + 0, 0, 0, 0, 92, 92, 92, 92, 92, 0, + 0, 0, 773, 773, 773, 773, 777, 773, 773, 773, + 773, 0, 0, 773, 0, 773, 92, 92, 773, 777, + 0, 0, 0, 0, 0, 773, 773, 773, 0, 0, + 0, 0, 0, 92, 92, 92, 92, 0, 0, 0, + 92, 92, 0, 0, 0, 0, 92, 0, 0, 92, + 0, 0, 0, 775, 0, 775, 92, 92, 0, 0, + 0, 0, 773, 773, 0, 0, 0, 0, 777, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 773, 773, 0, 773, 773, 773, 0, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 0, 0, 0, 0, + 0, 0, 0, 779, 0, 0, 0, 0, 0, 0, + 0, 92, 92, 0, 92, 92, 92, 0, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 0, 0, 779, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 775, 0, 0, 0, 777, 777, 777, 777, 0, 777, + 777, 777, 777, 775, 0, 777, 0, 777, 0, 0, + 777, 0, 0, 0, 0, 0, 0, 777, 777, 777, + 0, 0, 0, 0, 0, 0, 779, 0, 779, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 775, 0, 777, 777, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 777, 777, 0, 777, 777, 777, 0, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 0, 0, 0, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 779, 729, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 779, 0, 775, 775, + 775, 775, 0, 775, 775, 775, 775, 0, 0, 775, + 0, 775, 0, 0, 775, 0, 0, 0, 0, 0, + 0, 775, 775, 775, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 779, 0, 0, 729, 0, + 729, 0, 0, 0, 0, 0, 0, 0, 775, 775, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 775, 775, 0, 775, + 775, 775, 0, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 0, 0, 0, 0, 0, 0, 731, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 779, + 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, + 779, 779, 779, 779, 779, 779, 779, 0, 0, 0, + 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, + 779, 779, 779, 779, 779, 779, 0, 731, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 779, 779, 779, 779, 0, 779, 779, 779, 779, + 0, 0, 779, 0, 779, 729, 0, 779, 729, 0, + 0, 0, 0, 0, 779, 779, 779, 0, 729, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 731, 0, 731, 0, 0, 0, 0, 0, 0, + 0, 779, 779, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 729, 0, 779, + 779, 0, 779, 779, 779, 0, 779, 779, 779, 779, + 779, 779, 779, 779, 779, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, + 0, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 729, 729, 0, + 0, 0, 729, 729, 729, 729, 729, 729, 729, 0, + 0, 0, 0, 729, 0, 0, 729, 729, 731, 0, + 0, 731, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 731, 0, 729, 729, 729, 729, 400, 729, 729, + 729, 729, 0, 0, 729, 0, 729, 0, 729, 729, + 729, 0, 0, 729, 729, 0, 729, 729, 729, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 729, 729, 0, 0, 0, 0, 0, + 0, 400, 0, 400, 0, 0, 0, 0, 0, 0, + 0, 729, 729, 0, 729, 729, 729, 0, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 0, 0, 0, 731, 731, 731, 731, 731, + 731, 731, 0, 0, 0, 0, 731, 0, 0, 731, + 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 731, 731, 731, 731, + 0, 731, 731, 731, 731, 0, 0, 731, 0, 731, + 0, 731, 731, 731, 0, 0, 731, 731, 0, 731, + 731, 731, 0, 0, 0, 0, 0, 0, 400, 0, + 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 731, 731, 442, 0, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 731, 731, 208, 731, 731, 731, + 0, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 400, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 208, 0, 208, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 0, 0, 0, 400, 400, 400, 400, 400, + 400, 400, 150, 151, 0, 442, 400, 0, 442, 400, + 400, 208, 0, 0, 0, 0, 0, 0, 442, 0, + 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, + 0, 400, 400, 400, 400, 0, 0, 400, 0, 400, + 0, 0, 400, 0, 0, 0, 0, 210, 0, 400, + 400, 400, 0, 0, 0, 0, 0, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 0, 0, 0, 400, 400, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 400, 400, 210, 400, 400, 400, + 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 208, + 0, 0, 442, 442, 442, 442, 442, 442, 442, 0, + 0, 0, 210, 442, 0, 0, 442, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 94, 0, 0, 442, 442, 442, 442, 0, 442, 442, + 442, 442, 0, 93, 442, 0, 442, 0, 208, 442, + 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 0, 0, 0, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 442, 442, 0, 442, 442, 442, 0, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 208, 208, 208, 208, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 0, 0, 0, 0, 208, 94, 0, 208, 208, 0, + 210, 0, 0, 782, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 208, 208, 208, 208, 0, 208, + 208, 208, 208, 0, 0, 0, 0, 208, 0, 0, + 208, 93, 0, 0, 0, 0, 0, 208, 208, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 208, 208, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 208, 208, 0, 208, 208, 208, 0, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 0, 0, + 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, + 0, 0, 0, 0, 0, 0, 210, 210, 210, 210, + 210, 0, 0, 94, 0, 48, 0, 0, 0, 0, + 210, 0, 0, 0, 0, 210, 0, 0, 210, 210, + 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, + 93, 93, 0, 47, 0, 210, 210, 210, 210, 0, + 210, 210, 210, 210, 0, 0, 0, 0, 210, 93, + 93, 210, 0, 0, 0, 0, 0, 0, 210, 210, + 210, 0, 0, 0, 48, 0, 93, 93, 93, 93, + 0, 0, 0, 93, 93, 0, 0, 0, 0, 93, + 0, 0, 93, 0, 0, 0, 0, 0, 0, 93, + 93, 0, 0, 0, 0, 210, 210, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 0, 210, 210, 210, 0, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, + 48, 0, 0, 0, 0, 0, 782, 0, 0, 94, + 94, 94, 94, 94, 93, 93, 0, 93, 93, 93, + 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 49, 94, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, + 94, 94, 0, 0, 0, 94, 94, 0, 0, 0, + 0, 94, 0, 0, 94, 0, 0, 0, 0, 0, + 0, 94, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 94, 94, 0, 94, + 94, 94, 0, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 782, 782, 782, 782, 782, 0, 48, 0, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 782, 782, 0, 0, 0, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 782, 782, 782, 782, 0, 0, 0, 782, 782, + 0, 1030, 0, 0, 782, 0, 0, 782, 0, 0, + 0, 0, 51, 0, 782, 782, 0, 0, 0, 0, + 1031, 1032, 0, 1033, 1034, 1035, 1036, 1037, 1038, 0, + 1039, 1040, 0, 1041, 1042, 1043, 1044, 1045, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 47, 47, 47, 47, 0, 782, + 782, 51, 782, 782, 782, 0, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 47, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 0, + 0, 0, 47, 47, 47, 47, 50, 0, 0, 47, + 47, 0, 0, 49, 0, 47, 48, 48, 47, 0, + 0, 0, 0, 785, 0, 47, 47, 0, 0, 0, + 0, 0, 0, 48, 48, 48, 48, 51, 0, 0, + 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 785, 47, 47, 47, 0, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 1046, 1047, + 0, 1048, 1049, 1050, 0, 1051, 1052, 0, 0, 1053, + 1054, 0, 1055, 0, 0, 0, 0, 0, 785, 49, + 49, 49, 49, 49, 50, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 0, + 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, 49, 49, + 49, 49, 0, 0, 0, 49, 49, 0, 0, 0, + 0, 49, 0, 0, 49, 0, 0, 0, 0, 0, + 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 49, + 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 50, 50, 50, 50, 0, 785, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, + 0, 51, 51, 51, 51, 51, 0, 0, 0, 50, + 50, 50, 50, 0, 0, 0, 50, 50, 0, 0, + 0, 0, 50, 51, 51, 50, 0, 0, 0, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, + 51, 51, 51, 51, 0, 157, 0, 51, 51, 0, + 285, 0, 0, 51, 700, 0, 51, 0, 0, 0, + 0, 0, 0, 51, 51, 0, 0, 0, 0, 0, + 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, + 50, 50, 50, 0, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 468, 0, 0, 0, 0, 0, 0, + 0, 0, 785, 785, 785, 785, 785, 0, 51, 51, + 0, 51, 51, 51, 0, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 785, 785, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 785, 785, 785, 785, 0, 0, 0, 785, 785, + 0, 0, 0, 0, 785, 0, 0, 785, 0, 0, + 0, 0, 0, 0, 785, 785, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, + 0, 0, 681, 0, 0, 0, 681, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 681, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, + 785, 0, 785, 785, 785, 0, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 681, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 0, 278, 279, 280, 0, 157, 0, 0, 0, + 0, 285, 0, 0, 0, 284, 466, 467, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 681, 681, 0, 681, 0, 0, + 0, 0, 681, 0, 0, 681, 152, 153, 154, 681, + 681, 681, 681, 681, 468, 681, 681, 681, 681, 0, + 681, 681, 0, 0, 681, 681, 681, 681, 0, 0, + 681, 681, 681, 0, 0, 0, 0, 0, 0, 0, + 681, 0, 681, 0, 0, 0, 0, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 681, 681, 681, + 0, 0, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 436, 0, 0, + 143, 144, 681, 0, 681, 681, 681, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 681, 681, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 437, 0, 438, 439, 440, 441, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 681, 681, + 681, 150, 0, 0, 0, 0, 0, 0, 0, 442, + 443, 444, 445, 0, 0, 446, 0, 0, 0, 447, + 448, 449, 0, 0, 0, 0, 0, 0, 0, 0, + 157, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 210, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 450, 0, 0, 0, 681, 0, 0, + 0, 150, 0, 278, 279, 280, 0, 0, 212, 0, + 0, 0, 212, 212, 212, 212, 212, 0, 212, 212, + 212, 212, 0, 212, 212, 0, 0, 212, 212, 212, + 212, 212, 0, 0, 212, 212, 210, 0, 0, 0, + 0, 0, 0, 212, 0, 212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 152, 153, 154, + 212, 212, 212, 157, 212, 0, 212, 212, 212, 212, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, + 0, 0, 0, 212, 212, 212, 212, 0, 0, 212, + 0, 0, 0, 212, 212, 212, 0, 0, 0, 0, + 0, 210, 0, 0, 0, 0, 0, 67, 68, 0, + 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 157, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 147, 148, 149, 0, 911, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, + 0, 0, 0, 126, 0, 0, 127, 212, 0, 0, + 128, 129, 130, 131, 132, 150, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 912, + 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, + 0, 145, 157, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 212, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 150, 151, 128, 129, 130, 131, 132, + 210, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 147, 148, 149, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 0, 0, 0, 128, 129, 130, 131, 132, 150, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 208, - 0, 208, 0, 0, 145, 0, 146, 0, 0, 0, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 210, + 155, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 155, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 33, 152, 153, 154, 667, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 0, 150, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 33, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 317, 159, 159, 0, + 159, 155, 0, 0, 544, 159, 0, 0, 159, 0, + 0, 0, 159, 159, 159, 159, 159, 0, 159, 159, + 159, 159, 0, 159, 159, 0, 709, 159, 159, 159, + 159, 0, 0, 159, 159, 159, 0, 0, 0, 0, + 0, 0, 0, 159, 0, 159, 0, 225, 0, 0, + 0, 0, 34, 0, 317, 0, 0, 0, 0, 0, + 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 0, 0, 0, 400, - 400, 400, 400, 400, 400, 400, 150, 151, 0, 442, - 400, 0, 442, 400, 400, 208, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 400, 400, 400, 400, 0, 400, 400, 400, 400, 0, - 0, 400, 0, 400, 0, 0, 400, 0, 0, 0, - 0, 210, 0, 400, 400, 400, 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 400, 400, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, - 210, 400, 400, 400, 0, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 208, 0, 0, 442, 442, 442, 442, - 442, 442, 442, 0, 0, 0, 210, 442, 0, 0, - 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 442, 442, 442, - 442, 0, 442, 442, 442, 442, 0, 92, 442, 0, - 442, 0, 208, 442, 0, 0, 0, 0, 0, 0, - 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 442, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 442, 0, 442, 442, - 442, 0, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 0, 0, 0, 0, 208, 93, - 0, 208, 208, 0, 210, 0, 0, 94, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, - 208, 208, 0, 208, 208, 208, 208, 0, 0, 0, - 0, 208, 0, 0, 208, 92, 0, 0, 0, 0, - 0, 208, 208, 208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 208, 0, 208, - 208, 208, 0, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 0, 0, 0, 0, 0, 0, 777, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, - 210, 210, 210, 210, 210, 0, 0, 93, 0, 47, - 0, 0, 0, 0, 210, 0, 0, 0, 0, 210, - 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, - 0, 92, 92, 92, 92, 92, 0, 777, 0, 210, - 210, 210, 210, 0, 210, 210, 210, 210, 0, 0, - 0, 0, 210, 92, 92, 210, 0, 0, 0, 0, - 0, 0, 210, 210, 210, 0, 0, 0, 47, 0, - 92, 92, 92, 92, 0, 0, 0, 92, 92, 0, - 0, 0, 0, 92, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 92, 92, 0, 0, 0, 0, 210, - 210, 0, 0, 777, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, - 210, 210, 210, 0, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 0, 47, 0, 0, 0, 0, 0, - 94, 0, 0, 93, 93, 93, 93, 93, 92, 92, - 0, 92, 92, 92, 0, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 48, 93, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 93, 93, 93, 0, 0, 0, 93, - 93, 0, 0, 0, 0, 93, 0, 0, 93, 0, - 0, 0, 0, 0, 0, 93, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, - 94, 0, 47, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, - 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, - 0, 94, 0, 0, 0, 0, 50, 0, 94, 94, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 777, 777, 777, - 777, 777, 0, 94, 94, 50, 94, 94, 94, 0, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 777, - 777, 0, 0, 0, 0, 0, 0, 0, 47, 47, - 47, 47, 47, 0, 0, 0, 777, 777, 777, 777, - 49, 0, 0, 777, 777, 0, 0, 48, 0, 777, - 47, 47, 777, 0, 0, 0, 0, 51, 0, 777, - 777, 0, 0, 0, 0, 0, 0, 47, 47, 47, - 47, 50, 0, 0, 47, 47, 0, 0, 0, 0, - 47, 0, 0, 47, 0, 0, 0, 0, 780, 0, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 777, 777, 51, 777, 777, 777, - 0, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 47, 780, 47, 47, - 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 48, 48, 48, 48, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, - 0, 0, 0, 780, 0, 0, 0, 0, 0, 50, - 0, 0, 48, 48, 48, 48, 0, 0, 0, 48, - 48, 0, 0, 0, 0, 48, 0, 0, 48, 0, - 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 49, 49, 49, 49, 0, - 51, 316, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, - 316, 316, 0, 0, 0, 50, 50, 50, 50, 50, - 0, 780, 0, 49, 49, 49, 49, 0, 0, 0, - 49, 49, 0, 0, 0, 0, 49, 50, 50, 49, - 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, - 0, 0, 33, 0, 50, 50, 50, 50, 0, 0, - 0, 50, 50, 0, 0, 0, 0, 50, 0, 0, - 50, 0, 0, 0, 316, 0, 316, 50, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 49, 0, 49, 49, 49, 0, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, - 51, 0, 50, 50, 0, 50, 50, 50, 0, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, - 0, 0, 0, 0, 0, 0, 236, 780, 780, 780, - 780, 780, 561, 0, 0, 51, 51, 51, 51, 0, - 0, 0, 51, 51, 236, 0, 0, 33, 51, 780, - 780, 51, 0, 0, 0, 0, 0, 0, 51, 51, - 0, 0, 0, 0, 0, 0, 780, 780, 780, 780, - 0, 0, 0, 780, 780, 0, 0, 0, 0, 780, - 0, 316, 780, 0, 316, 0, 0, 0, 0, 780, - 780, 0, 0, 0, 316, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, - 236, 0, 0, 51, 51, 0, 51, 51, 51, 0, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 780, 780, 0, 780, 780, 780, - 0, 780, 780, 780, 780, 780, 780, 780, 780, 780, - 33, 0, 0, 0, 33, 33, 33, 33, 33, 0, - 33, 33, 33, 33, 0, 33, 33, 0, 235, 33, - 33, 33, 33, 0, 37, 0, 33, 33, 0, 40, - 0, 43, 0, 0, 0, 33, 235, 33, 46, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 33, 33, 49, 0, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 52, 0, 0, 0, 316, 0, 0, 0, 316, 316, - 316, 316, 316, 316, 0, 236, 0, 33, 236, 0, - 0, 0, 316, 316, 0, 0, 0, 0, 236, 561, - 235, 0, 235, 0, 0, 0, 0, 0, 0, 316, - 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, - 316, 0, 0, 0, 0, 33, 0, 0, 0, 33, - 33, 33, 33, 33, 316, 33, 33, 33, 33, 0, - 33, 33, 0, 0, 33, 33, 33, 33, 0, 37, - 0, 33, 33, 0, 40, 0, 43, 0, 0, 0, - 33, 0, 33, 46, 0, 0, 0, 0, 0, 316, - 316, 316, 0, 0, 0, 0, 0, 33, 33, 33, - 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 316, 316, 316, 316, - 316, 316, 316, 0, 0, 0, 0, 0, 317, 0, - 0, 0, 33, 0, 0, 0, 236, 0, 0, 0, - 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 0, 0, 0, 235, 236, 0, - 235, 0, 236, 236, 236, 236, 236, 236, 0, 0, - 235, 0, 0, 0, 0, 0, 236, 236, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, - 0, 0, 0, 236, 236, 236, 236, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, - 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, - 236, 236, 236, 236, 236, 236, 236, 0, 235, 0, - 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, - 235, 0, 0, 0, 235, 235, 235, 235, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 522, 0, 0, 0, 0, 235, 235, 235, 235, 0, - 0, 0, 0, 0, 0, 0, 235, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, - 235, 317, 317, 317, 317, 0, 317, 317, 317, 317, + 0, 0, 0, 0, 0, 159, 0, 0, 317, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 33, + 0, 0, 155, 33, 33, 33, 33, 33, 1152, 33, + 33, 33, 33, 0, 33, 33, 0, 0, 33, 33, + 33, 33, 0, 37, 0, 33, 33, 0, 40, 0, + 43, 0, 0, 0, 33, 0, 33, 46, 0, 0, + 0, 159, 159, 159, 0, 0, 317, 0, 0, 0, + 0, 33, 33, 33, 49, 0, 0, 0, 0, 536, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 52, + 0, 0, 33, 33, 33, 33, 33, 0, 33, 33, + 33, 33, 0, 33, 33, 0, 33, 33, 33, 33, + 33, 0, 37, 0, 33, 33, 0, 40, 0, 43, + 0, 155, 0, 33, 0, 33, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 33, 49, 317, 0, 0, 0, 0, 317, + 317, 317, 317, 0, 317, 317, 317, 317, 52, 317, + 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, + 317, 317, 0, 0, 0, 33, 2, 0, 0, 317, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 225, 317, 317, 317, 225, + 225, 225, 225, 225, 316, 225, 225, 225, 225, 0, + 225, 225, 0, 0, 225, 225, 225, 225, 0, 0, + 0, 225, 225, 316, 316, 513, 0, 2, 0, 0, + 225, 317, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 225, 225, 225, + 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, 0, 317, 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 317, 0, 235, 235, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, - 317, 321, 0, 734, 0, 0, 0, 0, 0, 0, - 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 522, 0, 0, 522, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 561, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 321, 0, 918, 0, 0, 0, + 0, 317, 225, 317, 0, 0, 0, 316, 236, 316, + 0, 33, 0, 0, 561, 0, 0, 0, 317, 317, + 317, 0, 0, 0, 0, 0, 236, 0, 0, 0, + 0, 0, 514, 0, 5, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, + 0, 516, 0, 317, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 0, 517, 518, 0, 0, + 33, 0, 0, 3, 4, 5, 6, 7, 0, 0, + 236, 235, 236, 0, 0, 0, 519, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 9, 0, 0, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 0, 0, 0, 14, + 15, 520, 521, 0, 0, 16, 317, 0, 17, 0, + 0, 0, 0, 0, 316, 18, 19, 316, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 21, 0, 22, 23, 24, 0, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 236, 561, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 0, 0, 0, 0, 316, 0, 0, + 0, 316, 316, 316, 316, 316, 316, 0, 0, 0, + 235, 0, 0, 235, 0, 316, 316, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 316, 316, 316, 0, 0, 0, 0, + 0, 187, 0, 316, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 236, 0, + 0, 0, 0, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 0, 0, 0, 0, + 236, 0, 0, 0, 236, 236, 236, 236, 236, 236, + 0, 0, 316, 316, 316, 0, 0, 0, 236, 236, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 236, 236, 316, + 316, 316, 316, 316, 316, 316, 236, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 235, 0, 0, 0, 0, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 0, + 0, 0, 0, 235, 0, 561, 0, 235, 235, 235, + 235, 235, 235, 0, 0, 236, 236, 522, 0, 0, + 0, 235, 235, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 522, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, + 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 324, 187, 325, 187, 187, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, + 187, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 0, 522, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 522, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 522, 522, 0, 0, 0, 0, 522, 0, - 0, 0, 522, 522, 522, 522, 522, 522, 0, 0, - 0, 67, 0, 0, 69, 0, 522, 522, 0, 0, - 0, 0, 0, 0, 2, 527, 0, 527, 0, 0, - 0, 0, 0, 522, 522, 522, 522, 0, 0, 0, - 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 0, 0, 0, 0, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 0, 7, 0, 0, 0, 311, 312, 313, 314, 315, - 316, 0, 0, 522, 522, 0, 0, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 522, 522, 522, 522, 522, 522, 522, 317, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 0, 0, 527, 0, 7, 527, 0, 0, 311, 312, - 313, 314, 315, 316, 0, 527, 319, 320, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 371, 0, 371, 0, 0, 0, 0, 10, - 11, 12, 13, 27, 28, 29, 30, 31, 32, 33, - 317, 363, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 324, 0, 742, 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 363, 0, 363, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 356, 0, 0, 0, 527, 527, - 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, - 527, 0, 0, 0, 0, 527, 0, 0, 0, 527, - 527, 527, 527, 527, 527, 0, 0, 0, 0, 371, - 0, 0, 371, 527, 527, 0, 0, 0, 0, 0, - 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, - 527, 527, 527, 527, 0, 0, 0, 0, 356, 0, - 356, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 527, 527, 363, 0, 0, 363, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, - 527, 527, 527, 527, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 0, 0, - 0, 0, 371, 0, 0, 0, 371, 371, 371, 371, - 371, 371, 0, 0, 0, 356, 0, 0, 356, 0, - 371, 371, 0, 0, 0, 0, 0, 0, 356, 210, - 0, 210, 0, 0, 34, 0, 0, 371, 371, 371, - 371, 0, 0, 0, 0, 0, 0, 0, 371, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 371, 0, 0, 0, 0, 0, 363, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 0, 0, 0, 0, 363, 0, 0, 0, 363, - 363, 363, 363, 363, 363, 0, 0, 371, 371, 0, - 1144, 0, 0, 363, 363, 0, 0, 0, 0, 0, + 0, 187, 187, 187, 187, 187, 187, 187, 0, 0, + 0, 67, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 363, 363, 363, 363, 371, 371, 371, 371, 371, 371, - 371, 363, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 0, 0, 210, 0, 356, 210, - 0, 0, 356, 356, 356, 356, 356, 356, 0, 210, - 363, 363, 0, 0, 0, 0, 356, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 521, 0, 521, 0, - 0, 0, 187, 356, 356, 356, 356, 363, 363, 363, - 363, 363, 363, 363, 356, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 356, 356, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 0, 0, 0, + 34, 522, 0, 0, 0, 522, 522, 522, 522, 522, + 522, 0, 0, 0, 0, 0, 0, 0, 0, 522, + 522, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 69, 0, 0, 0, 0, 522, 522, 522, 522, + 0, 2, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 522, 0, 0, 324, 0, 926, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 0, 0, 0, 527, 7, 0, 0, 0, 314, 315, + 316, 317, 318, 319, 0, 0, 522, 522, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 522, 522, 522, 522, 522, 522, 522, + 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 321, 0, 0, 527, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 356, 356, 356, 356, 356, 356, 356, 507, 0, 0, - 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 0, 0, 0, 0, 210, - 0, 0, 0, 210, 210, 210, 210, 210, 210, 0, - 0, 0, 0, 521, 0, 0, 521, 210, 210, 0, - 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, - 0, 0, 0, 0, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 508, 0, 5, 6, 7, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 509, 0, - 0, 0, 0, 510, 0, 0, 8, 9, 0, 0, - 0, 0, 0, 0, 210, 210, 187, 0, 0, 0, - 0, 0, 0, 10, 11, 12, 13, 0, 511, 512, + 0, 0, 0, 0, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 0, 0, 322, + 323, 7, 371, 0, 0, 314, 315, 316, 317, 318, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 67, 0, 0, 69, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 2, 0, 10, 11, 12, 13, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 210, 513, 0, + 0, 321, 0, 0, 0, 0, 371, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 521, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 0, 514, 515, 0, 521, 0, 0, 0, - 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 521, 521, 212, 0, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 521, 521, 521, 521, 0, 0, 0, 0, 0, - 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, - 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 187, 0, 0, 187, 187, 0, 0, 0, 0, - 0, 521, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 187, 187, 187, 0, 187, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, - 521, 521, 521, 521, 521, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 187, 187, 139, 140, 141, 142, 433, 156, 0, - 143, 144, 0, 282, 0, 0, 0, 281, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 187, 187, - 187, 187, 187, 187, 187, 280, 147, 148, 149, 0, - 434, 0, 435, 436, 437, 438, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, - 0, 150, 0, 0, 0, 0, 0, 0, 0, 439, - 440, 441, 442, 0, 0, 443, 0, 0, 0, 444, - 445, 446, 0, 0, 212, 0, 0, 0, 212, 212, - 212, 212, 212, 0, 212, 212, 212, 212, 0, 212, - 212, 0, 0, 212, 212, 212, 212, 212, 0, 0, - 212, 212, 0, 0, 0, 0, 0, 0, 0, 212, - 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 212, 212, 212, 0, - 212, 0, 212, 212, 212, 212, 0, 156, 0, 0, - 0, 0, 282, 0, 0, 0, 692, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 212, 0, 0, 280, 0, 0, 0, 0, 212, - 212, 212, 212, 447, 0, 212, 0, 0, 0, 212, - 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, + 0, 0, 0, 0, 527, 0, 0, 527, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, - 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, - 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, - 149, 0, 0, 212, 0, 0, 0, 680, 0, 0, - 0, 0, 680, 0, 0, 0, 680, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 680, 275, 276, 277, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, - 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 680, 156, 0, 0, 0, - 0, 282, 0, 0, 0, 281, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 152, - 153, 154, 126, 280, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 465, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 363, 0, 0, 0, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 0, 0, 0, 0, 7, 0, 0, 0, 314, 315, + 316, 317, 318, 319, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 371, 0, 0, 371, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 371, 363, 0, 363, + 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 0, 0, 0, 0, 527, 0, 0, + 0, 527, 527, 527, 527, 527, 527, 0, 0, 322, + 323, 0, 0, 0, 0, 527, 527, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 527, 527, 527, 27, 28, 29, 30, + 31, 32, 33, 527, 356, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 527, 527, 363, 0, 371, 363, 0, 0, + 371, 371, 371, 371, 371, 371, 0, 363, 356, 0, + 356, 0, 0, 0, 371, 371, 0, 0, 0, 527, + 527, 527, 527, 527, 527, 527, 0, 0, 0, 0, + 0, 371, 371, 371, 371, 0, 0, 0, 0, 0, + 0, 0, 371, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 371, 371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 371, 371, + 371, 371, 371, 371, 371, 0, 521, 0, 0, 0, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 0, 0, 356, 0, 363, 356, 0, + 0, 363, 363, 363, 363, 363, 363, 34, 356, 0, + 0, 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 275, 276, 277, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 463, 464, + 0, 0, 363, 363, 363, 363, 0, 0, 0, 0, + 521, 0, 521, 363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, - 0, 0, 0, 0, 680, 680, 0, 680, 152, 153, - 154, 0, 680, 0, 0, 680, 0, 156, 0, 680, - 680, 680, 680, 680, 0, 680, 680, 680, 680, 0, - 680, 680, 0, 0, 680, 680, 680, 680, 0, 0, - 680, 680, 680, 0, 0, 0, 0, 0, 0, 0, - 680, 0, 680, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 68, 0, 69, 680, 680, 680, - 0, 126, 0, 0, 127, 209, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 680, 0, 680, 680, 680, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 156, 680, 680, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 363, 363, 210, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 363, 363, 363, 363, 363, 363, 0, 0, 0, 0, + 0, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 0, 0, 0, 0, 356, 0, + 0, 0, 356, 356, 356, 356, 356, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, + 521, 0, 0, 356, 356, 356, 356, 0, 0, 0, + 521, 0, 0, 0, 356, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 680, 680, - 680, 150, 0, 275, 276, 277, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 209, 156, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 903, 209, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 150, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 904, 156, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 356, 356, 0, 0, 210, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, + 356, 356, 356, 356, 356, 356, 356, 0, 0, 849, + 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, + 521, 0, 0, 0, 521, 521, 521, 521, 521, 521, + 0, 0, 210, 210, 0, 0, 0, 0, 521, 521, + 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, + 6, 7, 0, 0, 0, 521, 521, 521, 521, 210, + 210, 210, 210, 210, 210, 210, 521, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 521, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 0, 0, 0, 14, 15, 0, 0, 0, 0, 16, + 0, 0, 17, 808, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 0, 0, 521, 521, 809, 0, 0, + 0, 0, 810, 811, 0, 812, 813, 814, 815, 816, + 817, 0, 818, 819, 0, 820, 821, 822, 823, 824, + 0, 0, 521, 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 209, 156, 0, - 0, 0, 150, 151, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 209, 0, 152, 153, - 154, 0, 0, 67, 68, 0, 69, 147, 148, 149, - 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 159, 0, 98, - 143, 144, 150, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 20, 21, 0, 22, 23, 24, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 825, 0, 826, 0, 0, 808, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 809, 0, 0, 0, 828, 810, 811, 0, 812, 813, + 814, 815, 816, 817, 0, 818, 819, 0, 820, 821, + 822, 823, 824, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 0, 152, 153, - 154, 538, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 661, 0, 146, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 147, - 148, 149, 0, 126, 0, 0, 127, 841, 0, 0, - 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 98, 143, 144, 150, 0, 0, 0, 317, 0, - 0, 145, 0, 146, 0, 0, 544, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 825, 0, 826, 0, 0, 0, + 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 701, 159, 159, 317, 159, 0, 0, - 0, 0, 159, 0, 0, 159, 0, 0, 0, 159, - 159, 159, 159, 159, 0, 159, 159, 159, 159, 0, - 159, 159, 0, 0, 159, 159, 159, 159, 0, 0, - 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, - 159, 800, 159, 0, 0, 0, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 801, 0, 159, 159, 159, - 802, 803, 0, 804, 805, 806, 807, 808, 809, 0, - 810, 811, 0, 812, 813, 814, 815, 816, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 817, - 0, 818, 0, 0, 0, 0, 819, 0, 0, 0, - 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 820, 0, 0, 0, 801, 0, 159, 159, - 159, 802, 803, 0, 804, 805, 806, 807, 808, 809, - 0, 810, 811, 0, 812, 813, 814, 815, 816, 0, - 0, 0, 0, 0, 0, 821, 317, 0, 0, 0, - 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, - 0, 317, 317, 0, 0, 317, 317, 317, 317, 0, - 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, - 817, 317, 818, 317, 0, 0, 0, 819, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, - 317, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 822, 821, 823, 824, 825, - 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, - 836, 837, 838, 839, 0, 0, 0, 840, 0, 0, + 829, 0, 0, 0, 0, 0, 0, 830, 0, 831, + 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 844, 845, 846, 847, 0, 0, 0, 848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 822, 0, 823, 824, - 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, - 835, 836, 837, 838, 839, 0, 0, 0, 840, + 830, 0, 831, 832, 833, 834, 835, 836, 837, 838, + 839, 840, 841, 842, 843, 844, 845, 846, 847, 0, + 0, 0, 848, }; static int yycheck[] = { 4, - 24, 673, 24, 92, 296, 22, 23, 1, 296, 24, - 102, 103, 1, 296, 19, 166, 13, 93, 927, 1, - 728, 949, 27, 28, 29, 30, 413, 24, 415, 1, - 180, 64, 1, 42, 659, 91, 36, 37, 782, 59, - 1, 43, 38, 45, 716, 41, 467, 46, 44, 40, - 43, 38, 192, 193, 194, 195, 196, 44, 1093, 125, - 60, 46, 46, 40, 76, 41, 1121, 42, 24, 61, - 47, 44, 365, 41, 166, 123, 46, 264, 41, 46, - 125, 61, 1083, 60, 42, 58, 319, 264, 265, 41, - 105, 123, 168, 1471, 44, 91, 1195, 189, 187, 59, - 260, 261, 46, 263, 40, 125, 41, 104, 113, 41, - 115, 116, 117, 128, 42, 40, 264, 41, 262, 20, - 21, 470, 214, 145, 40, 349, 148, 275, 42, 41, - 1458, 41, 260, 261, 41, 263, 151, 41, 43, 41, - 40, 59, 231, 93, 288, 167, 41, 380, 104, 46, - 155, 156, 860, 861, 40, 40, 232, 41, 155, 263, - 1488, 46, 40, 91, 65, 198, 91, 40, 180, 166, - 41, 72, 38, 41, 43, 91, 42, 266, 264, 330, - 59, 186, 40, 40, 44, 46, 46, 123, 93, 40, - 40, 91, 207, 901, 60, 299, 93, 40, 342, 204, - 205, 351, 202, 59, 209, 91, 43, 125, 45, 40, - 111, 112, 209, 91, 374, 375, 40, 1595, 40, 483, - 484, 485, 267, 40, 93, 91, 231, 935, 44, 1328, - 482, 320, 93, 238, 91, 260, 261, 259, 263, 61, - 91, 91, 334, 332, 916, 1246, 125, 33, 91, 542, - 502, 260, 261, 273, 263, 156, 123, 333, 320, 321, - 59, 266, 267, 311, 91, 280, 271, 289, 41, 274, - 262, 61, 287, 278, 91, 59, 296, 93, 283, 284, - 285, 286, 262, 470, 316, 260, 261, 296, 263, 262, - 40, 380, 294, 359, 518, 263, 288, 274, 364, 123, - 333, 264, 296, 297, 306, 307, 264, 296, 297, 365, - 327, 328, 264, 325, 296, 297, 331, 329, 262, 220, - 221, 296, 324, 995, 296, 297, 125, 296, 297, 264, - 265, 299, 264, 330, 331, 296, 297, 337, 335, 351, - 264, 125, 470, 59, 320, 321, 260, 261, 318, 263, - 264, 318, 264, 265, 264, 273, 266, 264, 352, 264, - 264, 275, 264, 352, 353, 354, 355, 456, 41, 264, - 271, 44, 374, 123, 59, 263, 286, 287, 279, 335, - 264, 265, 296, 352, 353, 354, 355, 260, 261, 409, - 263, 655, 91, 264, 411, 123, 264, 1325, 391, 359, - 489, 490, 260, 261, 364, 263, 391, 391, 420, 125, - 311, 40, 313, 1468, 528, 504, 317, 681, 568, 505, - 506, 507, 421, 470, 325, 326, 515, 123, 329, 579, - 44, 451, 40, 264, 265, 266, 1460, 462, 262, 454, - 125, 461, 863, 448, 464, 450, 538, 1502, 315, 316, - 351, 1486, 1196, 44, 40, 286, 287, 294, 47, 1084, - 465, 452, 91, 472, 38, 462, 1490, 556, 465, 306, - 307, 40, 477, 46, 260, 261, 40, 263, 264, 93, - 359, 570, 41, 91, 43, 364, 542, 324, 61, 273, - 264, 264, 265, 266, 360, 361, 362, 472, 762, 504, - 41, 42, 93, 404, 405, 91, 407, 59, 409, 1461, - 586, 262, 262, 286, 287, 535, 536, 537, 538, 539, - 540, 541, 91, 424, 425, 260, 261, 91, 263, 525, - 535, 536, 260, 451, 123, 263, 264, 374, 525, 1491, - 40, 543, 267, 461, 1252, 1253, 464, 562, 1476, 123, - 91, 556, 564, 629, 704, 631, 568, 273, 472, 42, - 359, 561, 59, 123, 465, 364, 46, 579, 260, 261, - 44, 263, 46, 125, 43, 535, 536, 537, 538, 539, - 540, 541, 315, 847, 40, 46, 40, 260, 273, 91, - 263, 91, 61, 593, 594, 330, 331, 1506, 44, 599, - 605, 601, 123, 695, 693, 694, 611, 640, 91, 701, - 511, 512, 44, 93, 480, 630, 62, 535, 536, 537, - 538, 539, 540, 541, 91, 917, 393, 394, 125, 917, - 62, 123, 93, 534, 917, 91, 537, 91, 123, 661, - 424, 425, 426, 427, 41, 721, 43, 787, 1320, 789, - 790, 791, 792, 793, 46, 670, 535, 536, 537, 538, - 539, 540, 541, 564, 448, 449, 450, 451, 673, 40, - 123, 260, 261, 678, 263, 680, 691, 677, 579, 535, - 536, 537, 538, 539, 540, 541, 123, 41, 46, 694, - 44, 780, 704, 698, 699, 700, 283, 284, 44, 59, - 715, 718, 60, 604, 278, 1413, 675, 281, 282, 283, - 284, 716, 286, 287, 288, 730, 617, 40, 1426, 40, - 91, 273, 1109, 40, 1111, 737, 40, 628, 393, 394, - 38, 318, 41, 42, 746, 451, 535, 536, 537, 538, - 539, 540, 541, 1415, 296, 461, 431, 432, 464, 91, - 651, 535, 536, 537, 538, 539, 540, 541, 260, 261, - 765, 263, 767, 40, 853, 125, 451, 41, 91, 264, - 462, 266, 848, 778, 91, 38, 273, 91, 463, 42, - 465, 857, 91, 468, 469, 266, 687, 688, 40, 40, - 40, 286, 287, 260, 261, 260, 263, 60, 263, 41, - 44, 1509, 46, 279, 280, 286, 287, 708, 38, 710, - 40, 712, 42, 289, 91, 123, 717, 41, 42, 535, - 536, 537, 538, 539, 540, 541, 848, 61, 91, 41, - 60, 91, 44, 845, 41, 42, 737, 926, 40, 928, - 91, 91, 339, 1551, 91, 391, 747, 748, 306, 91, - 535, 536, 537, 538, 539, 540, 541, 409, 391, 260, - 761, 91, 263, 264, 38, 47, 1453, 91, 42, 391, - 457, 458, 1459, 460, 1582, 391, 888, 966, 902, 968, - 1552, 43, 44, 784, 91, 885, 60, 264, 41, 1597, - 41, 91, 43, 44, 909, 796, 41, 798, 974, 451, - 915, 906, 1489, 91, 281, 282, 283, 260, 261, 461, - 263, 916, 464, 273, 883, 43, 44, 91, 260, 261, - 267, 263, 1594, 917, 936, 41, 938, 932, 917, 41, - 919, 920, 921, 41, 42, 917, 296, 919, 920, 38, - 1016, 260, 261, 42, 263, 917, 316, 848, 917, 42, - 919, 920, 921, 41, 451, 43, 917, 858, 919, 920, - 301, 60, 303, 304, 305, 970, 463, 40, 465, 466, - 278, 468, 469, 281, 282, 283, 284, 40, 286, 287, - 288, 61, 59, 535, 536, 537, 538, 539, 540, 541, - 995, 93, 91, 1069, 1145, 1146, 1147, 1148, 40, 43, - 260, 261, 263, 263, 1155, 1156, 1157, 936, 268, 938, - 911, 41, 913, 260, 261, 475, 263, 93, 260, 261, - 294, 263, 281, 282, 283, 284, 268, 301, 93, 303, - 304, 305, 835, 836, 59, 936, 296, 938, 535, 536, - 537, 538, 539, 540, 541, 280, 306, 93, 125, 409, - 40, 40, 1141, 1142, 296, 374, 375, 299, 125, 960, - 260, 261, 963, 263, 306, 91, 58, 91, 342, 343, - 344, 40, 260, 261, 91, 263, 40, 40, 40, 59, - 268, 280, 281, 282, 283, 284, 260, 261, 40, 263, - 1107, 451, 260, 261, 1111, 263, 264, 360, 361, 362, - 125, 461, 1119, 1125, 464, 125, 295, 44, 296, 1496, - 1497, 300, 41, 302, 388, 389, 390, 123, 392, 40, - 309, 395, 40, 262, 264, 265, 266, 262, 391, 44, - 360, 361, 362, 1138, 41, 41, 59, 326, 1135, 280, - 281, 282, 283, 284, 1220, 125, 286, 287, 1145, 1146, - 1147, 1148, 341, 1165, 414, 415, 416, 60, 1155, 1156, - 1157, 274, 310, 1064, 312, 313, 314, 1179, 463, 1181, - 274, 62, 414, 415, 416, 535, 536, 537, 538, 539, - 540, 541, 260, 261, 1189, 263, 360, 361, 362, 281, - 282, 283, 284, 1094, 1095, 1096, 273, 576, 577, 578, - 1101, 1102, 1103, 1104, 1105, 1106, 275, 1108, 1109, 1110, - 44, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1310, 1120, - 58, 1122, 365, 1124, 123, 1126, 414, 415, 416, 123, - 1319, 123, 40, 123, 260, 261, 262, 263, 264, 274, - 40, 1330, 268, 260, 261, 40, 263, 1264, 273, 41, - 38, 268, 260, 261, 42, 263, 40, 283, 46, 47, - 317, 360, 361, 362, 317, 61, 467, 1343, 61, 40, - 296, 61, 60, 470, 470, 44, 1298, 41, 1247, 296, - 93, 1182, 299, 59, 41, 41, 1187, 41, 41, 306, - 330, 331, 332, 273, 320, 321, 1301, 1198, 41, 295, - 91, 41, 44, 91, 300, 41, 302, 1208, 40, 58, - 44, 1212, 1213, 309, 44, 1320, 296, 38, 125, 263, - 61, 42, 1223, 61, 40, 1414, 366, 367, 368, 40, - 326, 327, 409, 410, 411, 412, 413, 41, 125, 60, - 41, 40, 274, 1244, 1245, 341, 93, 93, 274, 125, - 273, 41, 44, 41, 431, 432, 41, 1258, 1259, 1260, - 1261, 1262, 1263, 44, 1265, 281, 282, 283, 284, 44, - 91, 448, 449, 450, 451, 0, 372, 40, 455, 456, - 58, 40, 40, 1472, 461, 41, 41, 464, 414, 415, - 416, 1360, 40, 40, 471, 472, 41, 414, 415, 416, - 41, 1416, 427, 1479, 429, 430, 41, 294, 33, 62, - 1415, 41, 91, 38, 41, 40, 41, 42, 40, 44, - 501, 489, 47, 448, 449, 450, 451, 497, 40, 409, - 277, 41, 61, 41, 59, 60, 61, 62, 125, 123, - 451, 1342, 62, 391, 93, 41, 41, 93, 1349, 526, - 527, 41, 529, 530, 531, 317, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 317, 91, 38, 93, 260, - 261, 451, 263, 41, 40, 260, 261, 268, 263, 1555, - 1497, 461, 1504, 40, 464, 58, 409, 410, 411, 412, - 413, 58, 93, 330, 331, 332, 1588, 273, 123, 93, - 125, 93, 93, 1592, 40, 296, 504, 44, 431, 432, - 535, 536, 537, 538, 539, 540, 541, 91, 40, 91, - 296, 40, 40, 123, 93, 448, 449, 450, 451, 366, - 367, 368, 455, 456, 1435, 1436, 1437, 269, 461, 41, - 272, 464, 41, 328, 40, 330, 331, 1552, 471, 472, - 41, 421, 337, 41, 93, 535, 536, 537, 538, 539, - 540, 541, 93, 295, 296, 510, 44, 274, 300, 41, - 302, 58, 360, 361, 362, 41, 1591, 309, 41, 44, - 60, 93, 61, 40, 40, 40, 1487, 40, 40, 1594, - 40, 1492, 1493, 1494, 326, 1496, 40, 1498, 1499, 1500, - 40, 40, 40, 526, 527, 40, 529, 530, 531, 341, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 1520, - 1521, 1522, 40, 414, 415, 416, 41, 125, 62, 41, - 41, 93, 93, 409, 41, 260, 261, 262, 263, 360, - 361, 362, 93, 268, 41, 93, 271, 41, 273, 274, - 275, 276, 277, 278, 279, 41, 281, 282, 283, 284, - 93, 286, 287, 288, 59, 290, 291, 292, 293, 93, - 41, 296, 297, 298, 299, 451, 41, 93, 41, 41, - 93, 306, 1583, 308, 41, 461, 311, 93, 464, 41, - 315, 316, 41, 318, 93, 41, 41, 322, 323, 324, - 325, 93, 93, 41, 93, 41, 41, 278, 93, 41, - 281, 282, 283, 284, 339, 286, 287, 288, 263, 41, - 93, 44, 260, 261, 274, 263, 41, 41, 123, 41, - 125, 40, 93, 358, 359, 360, 361, 362, 93, 364, - 365, 40, 38, 93, 41, 40, 40, 40, 58, 374, - 375, 58, 58, 41, 41, 41, 40, 40, 263, 535, - 536, 537, 538, 539, 540, 541, 391, 41, 93, 41, - 41, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 93, 41, - 40, 93, 0, 93, 40, 40, 40, 355, 356, 357, - 40, 40, 40, 448, 449, 450, 451, 123, 453, 454, - 455, 456, 40, 40, 459, 40, 461, 40, 463, 464, - 465, 466, 380, 468, 469, 33, 471, 472, 473, 40, - 38, 41, 40, 41, 42, 480, 44, 40, 93, 47, - 60, 58, 41, 40, 93, 260, 40, 40, 263, 40, - 91, 59, 60, 61, 62, 41, 40, 38, 273, 294, - 40, 42, 41, 508, 509, 510, 301, 41, 303, 304, - 305, 269, 41, 41, 272, 274, 263, 41, 41, 60, - 40, 526, 527, 91, 529, 530, 531, 40, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 295, 296, 41, - 41, 510, 300, 274, 302, 40, 358, 342, 343, 344, - 91, 309, 41, 41, 123, 123, 474, 125, 476, 477, - 478, 479, 41, 125, 44, 294, 62, 123, 326, 40, - 125, 123, 301, 123, 303, 304, 305, 125, 123, 62, - 123, 41, 41, 341, 260, 123, 41, 263, 125, 41, - 123, 41, 41, 388, 389, 390, 41, 392, 125, 62, - 395, 123, 278, 41, 123, 281, 282, 283, 284, 123, - 286, 287, 288, 342, 343, 344, 40, 40, 123, 41, - 263, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 46, 93, 93, 275, 413, 263, - 275, 42, 417, 418, 419, 420, 421, 422, 61, 275, - 275, 91, 275, 275, 275, 263, 431, 432, 275, 388, - 389, 390, 275, 392, 275, 965, 395, 263, 263, 179, - 777, 688, 275, 448, 449, 450, 451, 41, 275, 402, - 942, 275, 275, 275, 459, 844, 1431, 1205, 940, 1069, - 1129, 670, 260, 261, 863, 263, 853, 1206, 473, 1193, - 268, 335, 462, 271, 24, 273, 274, 275, 276, 277, - 278, 279, 850, 281, 282, 283, 284, 9, 286, 287, - 1133, 114, 290, 291, 292, 293, 24, 574, 296, 297, - 298, 299, 513, 508, 509, 703, 0, 640, 306, 64, - 308, 707, 289, 311, -1, -1, 474, -1, 316, -1, - -1, 353, -1, -1, 322, 323, 324, 325, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, 33, - 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, - 44, -1, -1, 47, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 360, - 361, 362, -1, 391, -1, -1, -1, 91, 396, 397, + 24, 24, 102, 103, 155, 1, 22, 23, 299, 24, + 1, 299, 299, 416, 19, 418, 679, 935, 64, 1, + 957, 93, 27, 28, 29, 30, 1, 13, 167, 1, + 36, 37, 1, 181, 38, 43, 38, 45, 24, 41, + 44, 665, 44, 790, 470, 43, 40, 61, 1101, 91, + 264, 264, 59, 352, 60, 125, 46, 46, 489, 490, + 491, 724, 1129, 24, 41, 46, 46, 167, 1091, 260, + 261, 41, 263, 46, 59, 365, 125, 61, 41, 41, + 1479, 46, 105, 193, 194, 195, 196, 197, 46, 91, + 190, 41, 59, 76, 44, 1203, 319, 169, 123, 59, + 736, 1466, 123, 41, 40, 128, 262, 46, 113, 482, + 115, 116, 117, 46, 42, 215, 279, 280, 104, 20, + 21, 145, 42, 41, 148, 40, 289, 60, 151, 502, + 41, 1496, 288, 41, 44, 93, 260, 261, 38, 263, + 125, 40, 42, 104, 168, 40, 46, 47, 40, 40, + 59, 156, 157, 199, 93, 41, 47, 380, 125, 41, + 60, 233, 41, 40, 65, 125, 44, 41, 38, 60, + 156, 72, 42, 263, 41, 123, 91, 41, 264, 92, + 58, 167, 187, 93, 42, 208, 342, 123, 470, 275, + 60, 91, 91, 42, 333, 43, 91, 203, 181, 91, + 205, 206, 41, 40, 1603, 210, 354, 41, 40, 299, + 111, 112, 1468, 40, 91, 91, 125, 1469, 267, 260, + 261, 91, 263, 46, 210, 524, 40, 232, 1336, 40, + 661, 1254, 868, 869, 239, 260, 260, 337, 263, 264, + 260, 261, 1498, 263, 263, 93, 33, 1499, 262, 61, + 374, 375, 542, 91, 91, 43, 157, 470, 689, 91, + 283, 924, 267, 268, 336, 270, 40, 290, 292, 274, + 93, 40, 277, 909, 288, 188, 281, 91, 262, 470, + 528, 286, 287, 288, 289, 470, 294, 264, 265, 359, + 336, 505, 506, 507, 364, 316, 123, 262, 306, 307, + 263, 123, 264, 299, 300, 93, 273, 943, 299, 300, + 260, 334, 123, 263, 330, 331, 324, 299, 300, 232, + 221, 222, 91, 365, 299, 300, 264, 299, 300, 59, + 299, 300, 260, 261, 340, 263, 299, 318, 318, 770, + 1003, 43, 264, 45, 264, 328, 264, 333, 334, 332, + 320, 321, 338, 264, 267, 266, 264, 265, 33, 355, + 356, 357, 358, 311, 273, 123, 374, 268, 296, 40, + 59, 354, 339, 274, 359, 286, 287, 338, 264, 364, + 355, 282, 264, 274, 262, 264, 355, 356, 357, 358, + 264, 265, 41, 391, 262, 125, 1333, 264, 414, 359, + 264, 391, 260, 261, 364, 263, 264, 42, 40, 1476, + 323, 260, 261, 314, 263, 316, 264, 275, 391, 320, + 91, 462, 335, 40, 855, 264, 574, 328, 329, 46, + 264, 332, 421, 123, 457, 262, 40, 585, 296, 44, + 423, 1494, 462, 1510, 544, 871, 451, 296, 453, 41, + 38, 262, 44, 354, 42, 44, 91, 1204, 452, 91, + 360, 361, 362, 468, 431, 432, 46, 46, 1092, 267, + 383, 40, 60, 260, 261, 480, 263, 264, 91, 465, + 485, 61, 468, 123, 451, 40, 260, 261, 93, 263, + 360, 361, 362, 315, 316, 123, 463, 40, 465, 466, + 542, 468, 469, 91, 93, 510, 407, 408, 40, 410, + 44, 412, 46, 41, 93, 424, 425, 426, 427, 315, + 592, 525, 91, 525, 264, 265, 427, 428, 535, 536, + 537, 538, 539, 540, 541, 543, 541, 542, 123, 448, + 449, 450, 451, 273, 472, 568, 459, 1484, 91, 123, + 535, 536, 537, 538, 539, 540, 541, 562, 123, 91, + 40, 567, 46, 635, 712, 637, 44, 468, 535, 536, + 537, 538, 539, 540, 541, 535, 536, 537, 538, 539, + 540, 541, 495, 496, 485, 260, 261, 570, 263, 264, + 40, 574, 294, 599, 600, 91, 1514, 510, 59, 605, + 646, 607, 585, 703, 306, 307, 611, 59, 521, 709, + 480, 91, 617, 636, 472, 93, 517, 518, 41, 40, + 40, 40, 324, 472, 1260, 1261, 535, 536, 537, 538, + 539, 540, 541, 43, 925, 40, 44, 925, 925, 540, + 61, 91, 543, 667, 91, 294, 40, 260, 261, 562, + 263, 61, 301, 676, 303, 304, 305, 729, 42, 91, + 264, 265, 266, 576, 125, 1328, 47, 40, 91, 570, + 359, 91, 374, 125, 679, 364, 699, 683, 44, 684, + 46, 686, 286, 287, 585, 795, 91, 797, 798, 799, + 800, 801, 61, 342, 343, 344, 40, 702, 40, 40, + 723, 706, 707, 708, 40, 260, 261, 91, 263, 610, + 726, 40, 681, 38, 1117, 738, 1119, 42, 91, 724, + 91, 451, 623, 306, 40, 40, 38, 44, 40, 712, + 42, 461, 91, 634, 464, 60, 264, 265, 266, 388, + 389, 390, 123, 392, 47, 62, 395, 91, 60, 91, + 91, 260, 261, 391, 263, 91, 657, 391, 286, 287, + 1423, 391, 745, 1461, 260, 261, 91, 263, 773, 1467, + 775, 754, 360, 361, 362, 91, 91, 41, 42, 91, + 41, 786, 43, 44, 856, 1421, 44, 260, 701, 702, + 263, 41, 42, 865, 695, 696, 320, 321, 1434, 1497, + 283, 284, 41, 391, 62, 535, 536, 537, 538, 539, + 540, 541, 273, 260, 261, 716, 263, 718, 391, 720, + 264, 273, 266, 41, 725, 267, 44, 91, 260, 261, + 260, 263, 856, 263, 264, 318, 268, 260, 261, 41, + 263, 91, 286, 287, 745, 268, 535, 536, 537, 538, + 539, 540, 541, 41, 755, 756, 260, 261, 59, 263, + 41, 91, 41, 42, 296, 374, 375, 299, 769, 41, + 853, 43, 33, 296, 306, 788, 299, 316, 266, 260, + 261, 1517, 263, 306, 42, 260, 261, 893, 263, 260, + 261, 792, 263, 40, 917, 910, 40, 1560, 286, 287, + 923, 260, 261, 804, 263, 806, 93, 41, 42, 914, + 982, 61, 91, 896, 582, 583, 584, 260, 261, 924, + 263, 40, 891, 1559, 125, 43, 330, 331, 91, 925, + 91, 927, 928, 929, 925, 940, 927, 928, 301, 1602, + 303, 304, 305, 925, 263, 927, 928, 41, 861, 43, + 925, 41, 1024, 925, 1590, 856, 925, 91, 927, 928, + 929, 944, 93, 946, 310, 866, 312, 313, 314, 1605, + 431, 432, 475, 978, 457, 458, 280, 460, 264, 265, + 266, 0, 414, 415, 416, 328, 1137, 330, 331, 93, + 451, 414, 415, 416, 337, 41, 393, 394, 1003, 451, + 286, 287, 463, 125, 465, 1077, 93, 468, 469, 461, + 41, 44, 464, 46, 1153, 1154, 1155, 1156, 919, 40, + 921, 934, 40, 936, 1163, 1164, 1165, 41, 91, 43, + 260, 261, 262, 263, 264, 360, 361, 362, 268, 40, + 59, 260, 261, 944, 263, 946, 393, 394, 360, 361, + 362, 38, 58, 283, 944, 42, 946, 330, 331, 332, + 40, 974, 40, 976, 43, 44, 296, 968, 260, 261, + 971, 263, 273, 60, 535, 536, 537, 538, 539, 540, + 541, 43, 44, 535, 536, 537, 538, 539, 540, 541, + 320, 321, 59, 366, 367, 368, 40, 260, 261, 1115, + 263, 1504, 1505, 1119, 91, 268, 125, 41, 42, 1133, + 271, 1127, 843, 844, 275, 276, 277, 278, 279, 40, + 281, 282, 283, 284, 44, 286, 287, 125, 41, 290, + 291, 292, 293, 296, 264, 295, 297, 298, 339, 40, + 300, 1146, 302, 306, 40, 306, 262, 308, 123, 309, + 262, 281, 282, 283, 44, 41, 1228, 1143, 125, 41, + 60, 274, 323, 324, 325, 463, 326, 1153, 1154, 1155, + 1156, 1072, 280, 281, 282, 283, 284, 1163, 1164, 1165, + 275, 341, 274, 62, 414, 415, 416, 44, 365, 58, + 1173, 123, 1197, 123, 123, 260, 261, 358, 263, 264, + 123, 1102, 1103, 1104, 1187, 274, 1189, 40, 1109, 1110, + 1111, 1112, 1113, 1114, 40, 1116, 1117, 1118, 1318, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 40, 1128, 41, 1130, + 40, 1132, 317, 1134, 317, 467, 1149, 1150, 38, 330, + 331, 332, 42, 280, 281, 282, 283, 284, 294, 61, + 451, 414, 415, 416, 273, 301, 1272, 303, 304, 305, + 60, 40, 463, 294, 465, 466, 61, 468, 469, 61, + 301, 470, 303, 304, 305, 366, 367, 368, 44, 1351, + 470, 41, 1306, 41, 93, 41, 1255, 38, 41, 1190, + 58, 91, 41, 41, 1195, 91, 342, 343, 344, 281, + 282, 283, 284, 41, 1309, 1206, 273, 281, 282, 283, + 284, 342, 343, 344, 41, 1216, 44, 41, 44, 1220, + 1221, 44, 125, 1328, 281, 282, 283, 284, 61, 61, + 1231, 40, 263, 40, 535, 536, 537, 538, 539, 540, + 541, 125, 388, 389, 390, 41, 392, 41, 40, 395, + 274, 1252, 1253, 93, 93, 274, 38, 388, 389, 390, + 42, 392, 41, 44, 395, 1266, 1267, 1268, 1269, 1270, + 1271, 41, 1273, 360, 361, 362, 44, 41, 60, 44, + 40, 58, 543, 40, 294, 41, 41, 40, 40, 40, + 409, 410, 411, 412, 413, 41, 41, 41, 41, 1368, + 62, 1424, 91, 41, 40, 489, 40, 277, 33, 91, + 41, 497, 431, 432, 1327, 1487, 451, 125, 1423, 501, + 61, 123, 62, 41, 93, 1338, 391, 93, 41, 448, + 449, 450, 451, 0, 41, 41, 455, 456, 41, 317, + 317, 40, 461, 40, 463, 464, 58, 58, 40, 1350, + 44, 93, 471, 472, 93, 504, 1357, 40, 93, 40, + 427, 93, 429, 430, 260, 261, 33, 263, 91, 91, + 41, 38, 268, 40, 41, 42, 123, 44, 93, 41, + 47, 448, 449, 450, 451, 40, 40, 510, 1512, 1505, + 41, 1563, 59, 60, 61, 62, 1596, 41, 93, 421, + 296, 44, 93, 274, 41, 58, 41, 526, 527, 1422, + 529, 530, 531, 41, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 44, 91, 61, 93, 278, 60, 93, + 281, 282, 283, 284, 40, 286, 287, 288, 294, 38, + 40, 125, 1443, 1444, 1445, 301, 40, 303, 304, 305, + 40, 40, 40, 40, 40, 1560, 123, 40, 125, 40, + 360, 361, 362, 40, 40, 62, 41, 1480, 535, 536, + 537, 538, 539, 540, 541, 93, 1599, 41, 260, 261, + 93, 263, 41, 93, 41, 93, 342, 343, 344, 41, + 93, 41, 93, 41, 1495, 41, 91, 1602, 41, 1500, + 1501, 1502, 93, 1504, 41, 1506, 1507, 1508, 93, 295, + 41, 93, 41, 93, 300, 41, 302, 41, 414, 415, + 416, 93, 93, 309, 123, 41, 93, 1528, 1529, 1530, + 41, 41, 388, 389, 390, 93, 392, 41, 41, 395, + 326, 327, 263, 44, 93, 270, 271, 272, 274, 41, + 275, 276, 277, 278, 279, 341, 281, 282, 283, 284, + 41, 286, 287, 41, 40, 290, 291, 292, 293, 40, + 93, 296, 297, 298, 93, 93, 40, 40, 360, 361, + 362, 306, 40, 308, 41, 58, 372, 1600, 41, 58, + 1591, 58, 41, 260, 261, 262, 263, 41, 323, 324, + 325, 268, 40, 40, 271, 38, 273, 274, 275, 276, + 277, 278, 279, 41, 281, 282, 283, 284, 93, 286, + 287, 288, 41, 290, 291, 292, 293, 93, 41, 296, + 297, 298, 299, 358, 93, 41, 40, 93, 40, 306, + 40, 308, 40, 40, 311, 40, 40, 40, 315, 316, + 40, 318, 40, 40, 33, 322, 323, 324, 325, 38, + 40, 260, 40, 42, 263, 260, 261, 41, 263, 93, + 263, 60, 339, 268, 58, 41, 93, 40, 40, 278, + 40, 60, 281, 282, 283, 284, 40, 286, 287, 288, + 123, 358, 359, 360, 361, 362, 41, 364, 365, 91, + 40, 296, 41, 41, 41, 41, 40, 374, 375, 274, + 263, 41, 91, 41, 40, 510, 41, 40, 358, 41, + 41, 40, 123, 274, 391, 41, 41, 41, 40, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 125, 33, 123, 44, + 0, 123, 123, 62, 123, 125, 123, 125, 62, 41, + 123, 448, 449, 450, 451, 41, 453, 454, 455, 456, + 260, 261, 459, 263, 461, 41, 463, 464, 465, 466, + 41, 468, 469, 33, 471, 472, 473, 125, 38, 41, + 40, 41, 42, 480, 44, 123, 41, 47, 543, 414, + 415, 416, 125, 123, 123, 41, 62, 123, 41, 59, + 60, 61, 62, 40, 40, 123, 41, 263, 93, 38, + 93, 508, 509, 510, 46, 278, 275, 263, 281, 282, + 283, 284, 275, 286, 287, 288, 42, 61, 263, 526, + 527, 91, 529, 530, 531, 275, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 180, 543, 263, 405, 275, + 91, 260, 261, 785, 263, 355, 356, 357, 263, 268, + 275, 950, 271, 123, 275, 125, 275, 276, 277, 278, + 279, 973, 281, 282, 283, 284, 275, 286, 287, 696, + 380, 290, 291, 292, 293, 852, 1213, 296, 297, 298, + 948, 1439, 275, 1077, 123, 59, 871, 306, 676, 308, + 861, 275, 1201, 275, 275, 338, 1214, 465, 24, 858, + 275, 9, 275, 275, 323, 324, 325, 114, 275, 519, + 24, 580, 277, 278, 279, 64, 281, 282, 283, 284, + 1141, 286, 287, 288, 646, 290, 291, 292, 293, 477, + -1, -1, 297, 298, 711, 292, -1, -1, -1, 358, + 356, 360, 361, 362, -1, 715, -1, -1, -1, -1, + -1, 125, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, 474, 271, 476, 477, 478, 479, + -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 260, 261, 298, 263, -1, 414, 415, 416, 268, 59, + 365, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, 0, -1, 306, -1, 308, 278, + -1, 311, 281, 282, 283, 284, 316, 286, 287, 288, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, 47, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, 273, + -1, -1, -1, -1, 374, 375, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 391, 296, -1, 543, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + 262, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, 273, -1, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, + 292, 293, -1, -1, -1, 409, 296, 299, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, 451, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, 40, 260, 261, -1, 263, -1, -1, + -1, -1, 268, 59, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, 409, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + -1, 535, 536, 537, 538, 539, 540, 541, -1, 125, + -1, 33, 260, 261, -1, 263, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, 451, 358, -1, 360, 361, 362, 59, 60, 61, + 62, 461, -1, -1, 464, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, 355, 356, 357, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, 380, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 480, -1, -1, 273, -1, -1, + -1, -1, 269, -1, -1, 272, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 296, -1, 508, 509, -1, -1, -1, -1, 295, 296, + -1, -1, -1, 300, -1, 302, -1, -1, -1, -1, + 526, 527, 309, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, 326, + -1, -1, -1, -1, -1, -1, 474, -1, 476, 477, + 478, 479, -1, -1, 341, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, 59, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, 123, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, 409, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, 33, -1, -1, -1, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, 451, 358, -1, 360, 361, + 362, 59, 60, 61, 62, 461, -1, -1, 464, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, 294, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, 309, -1, -1, -1, -1, 480, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, 325, + -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, + -1, -1, -1, -1, 296, -1, 508, 509, -1, -1, + -1, -1, 348, 349, 350, 351, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, 380, 381, 382, 383, 384, 385, + 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, 59, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, 409, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 125, -1, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, 451, + 358, -1, 360, 361, 362, 59, 60, 61, 62, 461, + -1, -1, 464, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, - 508, 509, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, -1, 526, 527, + -1, -1, 480, -1, -1, 273, -1, 269, -1, -1, + 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, + 508, 509, -1, 295, 296, -1, -1, -1, 300, -1, + 302, -1, -1, -1, -1, -1, -1, 309, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, 476, 477, 478, 479, + 538, 539, 540, 541, 326, 543, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, 365, -1, 59, 268, -1, -1, 271, -1, 273, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, 125, + -1, 409, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 451, 358, -1, 360, 361, 362, 59, + 60, 61, 62, 461, -1, -1, 464, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, 271, -1, -1, -1, 480, 273, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, 271, -1, -1, -1, -1, 480, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, 339, -1, -1, -1, 346, -1, -1, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, 365, -1, 268, -1, + 260, 261, -1, 263, -1, 365, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, 123, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, 33, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, 451, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, 463, -1, 465, - 466, -1, 468, 469, 374, 375, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, 448, 449, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - 294, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, 309, -1, -1, -1, -1, - 480, -1, -1, 277, 278, 279, -1, 281, 282, 283, - 284, 325, 286, 287, 288, -1, 290, 291, 292, 293, - 334, -1, -1, 297, 298, -1, -1, -1, 508, 509, - -1, -1, -1, -1, 348, 349, 350, 351, -1, -1, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, 380, 381, 382, 383, - 384, 385, 386, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, 365, 268, -1, -1, 271, -1, 273, 274, 275, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, @@ -3007,21 +3206,21 @@ static int yycheck[] = { 4, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, 262, 463, 464, 465, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, 277, 278, 279, 480, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, - -1, -1, -1, 299, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, @@ -3046,13 +3245,13 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, @@ -3076,13 +3275,13 @@ static int yycheck[] = { 4, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3106,7 +3305,7 @@ static int yycheck[] = { 4, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, @@ -3117,12 +3316,12 @@ static int yycheck[] = { 4, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + 360, 361, 362, 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, @@ -3137,26 +3336,26 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 260, 261, 268, 263, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, + 296, 297, 298, -1, 294, 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, 40, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, -1, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 41, 391, -1, -1, -1, -1, + -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, + 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, -1, -1, + -1, -1, 358, 353, 59, -1, 356, -1, -1, -1, + -1, -1, -1, 363, -1, 33, -1, -1, 374, 375, + -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + 416, 417, 418, 419, 420, 421, 422, 423, 123, -1, + 125, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, @@ -3167,177 +3366,190 @@ static int yycheck[] = { 4, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 0, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, + 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, + 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, 0, - -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, - -1, -1, -1, -1, 301, -1, 303, 304, 305, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 342, 343, 344, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 123, -1, 125, -1, 428, -1, -1, 431, - 432, 388, 389, 390, -1, 392, -1, -1, 395, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, 323, -1, -1, -1, 327, -1, -1, 330, 331, + -1, -1, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 260, -1, -1, 263, -1, + -1, 353, -1, -1, 356, 543, -1, -1, 273, -1, + -1, 363, 277, 278, 279, -1, 281, 282, 283, 284, + 372, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, + 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, + 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, 0, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 33, -1, -1, -1, 323, -1, -1, -1, 327, - -1, -1, 330, 331, -1, -1, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 260, - -1, -1, 263, -1, -1, 353, -1, -1, 356, -1, - -1, -1, 273, -1, -1, 363, 277, 278, 279, -1, - 281, 282, 283, 284, 372, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, 0, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, 271, - 471, 472, 473, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, 0, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, + 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, 271, - 471, 472, 473, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, 508, 509, -1, + 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, + 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, 0, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 123, -1, 125, -1, -1, 91, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, 323, -1, 59, -1, 327, - -1, -1, 330, 331, -1, -1, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 260, - -1, -1, 263, -1, -1, 353, -1, -1, 356, -1, - -1, -1, 273, -1, -1, 363, 277, 278, 279, -1, - 281, 282, 283, 284, 372, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, 123, -1, 125, -1, -1, -1, 271, 59, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, + 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, 59, 294, 295, -1, -1, -1, + -1, 300, -1, 302, -1, -1, -1, 322, -1, -1, + 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 339, -1, -1, 326, 327, -1, + 329, 330, 331, 332, 333, -1, -1, -1, -1, 338, + -1, -1, 341, -1, 359, -1, -1, -1, 347, 364, + 365, -1, -1, 352, -1, 354, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, 366, 367, 368, + 369, 370, 371, 372, 373, -1, -1, -1, -1, -1, + 379, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, 0, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, 448, 449, 450, 451, 273, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, 339, -1, -1, -1, -1, 273, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, 322, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, 260, + -1, -1, 263, 448, 449, 450, 451, -1, 453, 454, + 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, 473, -1, + -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, @@ -3350,837 +3562,823 @@ static int yycheck[] = { 4, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, - -1, -1, 273, -1, -1, 526, 527, -1, 529, 530, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, 322, -1, -1, 396, 397, 398, 399, 400, 401, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, 0, -1, -1, -1, -1, -1, -1, -1, + 432, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 409, -1, - 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, 260, -1, -1, 263, 448, 449, 450, - 451, -1, 453, 454, 526, 527, 273, 529, 530, 531, + 472, 473, -1, -1, -1, -1, -1, 40, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, 473, -1, -1, -1, -1, -1, -1, 296, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, 0, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, 296, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, 33, -1, -1, + 427, 428, 429, 430, 431, 432, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 273, 274, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 311, 61, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, -1, -1, -1, 526, + -1, -1, -1, -1, -1, -1, -1, 33, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, 526, 527, - 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, 271, 125, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, 448, 449, 450, 451, -1, - 453, 454, 455, 456, 273, 274, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 311, 61, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, + -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 257, + -1, 273, 274, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, 276, 277, - -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, - -1, 289, 290, 291, 292, 293, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, 428, - -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, 274, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 484, 485, -1, 487, - 488, 489, -1, 491, 492, -1, -1, 495, 496, -1, - 498, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, 0, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 358, -1, 59, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 273, 274, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, + 408, 409, 410, 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, - 274, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 428, -1, -1, 431, 432, 260, 59, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, 260, - 59, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, 260, -1, 464, + 263, -1, -1, -1, -1, -1, 471, 472, 473, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 260, -1, 464, 263, -1, -1, -1, -1, -1, - 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 508, 509, 294, - 295, -1, -1, -1, -1, 300, -1, 302, -1, -1, - -1, -1, -1, 322, 309, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 326, 327, -1, 329, 330, 331, 332, 333, -1, - -1, -1, -1, 338, -1, -1, 341, -1, 0, -1, - -1, -1, 347, -1, -1, -1, -1, 352, -1, 354, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, 59, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, 59, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 273, -1, 459, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 366, 367, 368, 369, 370, 371, 372, 373, 0, - -1, -1, -1, -1, 379, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 260, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 59, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, 273, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, + -1, -1, 448, 449, 450, 451, 260, 453, 454, 455, + 456, -1, -1, 459, -1, 461, 431, 432, 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, 123, -1, 125, 471, 472, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, 59, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 273, -1, 459, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 59, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, - 260, 453, 454, 455, 456, -1, -1, 459, -1, 461, - 431, 432, 464, 273, -1, -1, -1, -1, -1, 471, - 472, 473, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, - 461, -1, 463, 464, -1, -1, -1, 123, -1, 125, - 471, 472, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, 59, 417, 418, 419, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, 273, -1, 459, + 430, 431, 432, 260, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, 322, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 260, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, 260, -1, 464, 263, -1, + -1, -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, 260, - -1, 464, 263, -1, -1, -1, -1, -1, 471, 472, - 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, 260, -1, + -1, 263, 44, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, 448, 449, 450, 451, 59, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, 0, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 322, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, 59, -1, 61, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 358, 359, -1, 260, 428, -1, 263, 431, + 432, 125, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, -1, 464, -1, -1, -1, -1, 0, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 414, 415, + 416, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, 451, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, 260, -1, -1, 263, 44, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, - 451, 59, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 273, + -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 125, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, + 0, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, 125, 459, -1, 461, -1, 322, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - 0, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 322, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, 59, - -1, 61, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 358, 359, -1, 260, - 428, -1, 263, 431, 432, 125, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, - -1, 0, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 451, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 273, -1, -1, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 125, 428, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 125, 459, -1, - 461, -1, 322, 464, -1, -1, -1, -1, -1, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, + -1, -1, -1, -1, 428, 125, -1, 431, 432, -1, + 273, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, 508, 509, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, + 413, -1, -1, 273, -1, 0, -1, -1, -1, -1, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, 59, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, -1, -1, 461, 431, + 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, 59, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, 508, 509, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 423, -1, -1, -1, -1, 428, 125, - -1, 431, 432, -1, 273, -1, -1, 0, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + 125, -1, -1, -1, -1, -1, 273, -1, -1, 409, + 410, 411, 412, 413, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, 273, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, -1, 273, -1, 0, - -1, -1, -1, -1, 423, -1, -1, -1, -1, 428, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, 59, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - -1, -1, 461, 431, 432, 464, -1, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, 59, -1, - 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, -1, -1, -1, -1, 508, - 509, -1, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 125, -1, -1, -1, -1, -1, - 273, -1, -1, 409, 410, 411, 412, 413, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, + 540, 541, 409, 410, 411, 412, 413, -1, 273, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, 257, -1, -1, 461, -1, -1, 464, -1, -1, + -1, -1, 0, -1, 471, 472, -1, -1, -1, -1, + 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, + 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, + -1, -1, -1, 409, 410, 411, 412, 413, -1, 526, + 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 431, 432, -1, -1, -1, + -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, + -1, -1, 448, 449, 450, 451, 125, -1, -1, 455, + 456, -1, -1, 273, -1, 461, 431, 432, 464, -1, + -1, -1, -1, 0, -1, 471, 472, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, 125, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 409, 410, 411, 412, - 413, -1, 273, -1, -1, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, 0, -1, 471, 472, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, 484, 485, + -1, 487, 488, 489, -1, 491, 492, -1, -1, 495, + 496, -1, 498, -1, -1, -1, -1, -1, 125, 409, + 410, 411, 412, 413, 273, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, 526, 527, 59, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, - 125, -1, -1, 455, 456, -1, -1, 273, -1, 461, - 431, 432, 464, -1, -1, -1, -1, 0, -1, 471, - 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, 125, -1, -1, 455, 456, -1, -1, -1, -1, - 461, -1, -1, 464, -1, -1, -1, -1, 0, -1, - 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, 59, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, + -1, -1, 461, 431, 432, 464, -1, -1, -1, -1, + -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 33, -1, 455, 456, -1, + 38, -1, -1, 461, 42, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 91, -1, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 125, 409, 410, 411, 412, 413, 273, -1, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, 125, -1, -1, -1, -1, -1, 273, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 91, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - 273, 40, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - 59, 60, -1, -1, -1, 409, 410, 411, 412, 413, - -1, 273, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, 431, 432, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, 33, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, -1, 123, -1, 125, 471, 472, -1, + 358, -1, 360, 361, 362, -1, 33, -1, -1, -1, + -1, 38, -1, -1, -1, 42, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, 414, 415, 416, 275, + 276, 277, 278, 279, 91, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, + 297, 298, 358, -1, 360, 361, 362, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 543, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, + 416, 358, -1, -1, -1, -1, -1, -1, -1, 366, + 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, + 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, 543, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, 294, -1, -1, 297, 298, 91, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 543, 414, 415, 416, + 323, 324, 325, 33, 327, -1, 329, 330, 331, 332, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, + -1, -1, -1, 376, 377, 378, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + -1, 33, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, + 323, 324, 325, -1, 327, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, 480, -1, -1, + 275, 276, 277, 278, 279, 358, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, 372, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 543, 414, 415, 416, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 358, 359, 275, 276, 277, 278, 279, + 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, - 413, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 431, 432, - -1, -1, -1, -1, -1, -1, 41, 409, 410, 411, - 412, 413, 47, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, 59, -1, -1, 33, 461, 431, - 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - -1, 260, 464, -1, 263, -1, -1, -1, -1, 471, - 472, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, 33, -1, 323, 324, 325, -1, -1, -1, 414, + 415, 416, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, 358, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, 91, + 543, -1, -1, -1, 306, -1, 308, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 260, + 261, -1, 263, -1, -1, -1, -1, 268, 543, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, 41, 290, - 291, 292, 293, -1, 295, -1, 297, 298, -1, 300, - -1, 302, -1, -1, -1, 306, 59, 308, 309, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, 33, 414, 415, 416, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, 326, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 341, -1, -1, -1, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, 260, -1, 358, 263, -1, - -1, -1, 431, 432, -1, -1, -1, -1, 273, 274, - 123, -1, 125, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, - 459, -1, -1, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, 473, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, - -1, 297, 298, -1, 300, -1, 302, -1, -1, -1, - 306, -1, 308, 309, -1, -1, -1, -1, -1, 508, - 509, 510, -1, -1, -1, -1, -1, 323, 324, 325, - 326, -1, -1, -1, -1, 41, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 341, 535, 536, 537, 538, - 539, 540, 541, 59, -1, -1, -1, -1, 33, -1, - -1, -1, 358, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, 260, 413, -1, - 263, -1, 417, 418, 419, 420, 421, 422, -1, -1, - 273, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 123, -1, 125, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 543, -1, -1, -1, 358, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + 33, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, 33, 260, 261, -1, + 263, 543, -1, -1, 41, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, 358, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, 33, -1, -1, + -1, -1, 59, -1, 91, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, -1, 260, -1, -1, 263, 431, 432, - -1, -1, -1, -1, -1, -1, -1, 273, 123, -1, - 125, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, -1, -1, -1, 459, 59, -1, -1, - -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, - 473, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, 33, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 271, + -1, -1, 543, 275, 276, 277, 278, 279, 125, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, 295, -1, 297, 298, -1, 300, -1, + 302, -1, -1, -1, 306, -1, 308, 309, -1, -1, + -1, 414, 415, 416, -1, -1, 91, -1, -1, -1, + -1, 323, 324, 325, 326, -1, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, 271, 341, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, 358, 290, 291, 292, + 293, -1, 295, -1, 297, 298, -1, 300, -1, 302, + -1, 543, -1, 306, -1, 308, 309, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, 326, 271, -1, -1, -1, -1, 276, + 277, 278, 279, -1, 281, 282, 283, 284, 341, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, -1, -1, -1, 358, 273, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + 543, -1, -1, -1, -1, 271, 323, 324, 325, 275, + 276, 277, 278, 279, 40, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, 59, 60, 322, -1, 273, -1, -1, + 306, 358, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, 323, 324, 325, + -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, 306, 358, 308, -1, -1, -1, 123, 41, 125, + -1, 543, -1, -1, 47, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, -1, 358, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, -1, -1, + 543, -1, -1, 409, 410, 411, 412, 413, -1, -1, + 123, 41, 125, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, + 456, 508, 509, -1, -1, 461, 543, -1, 464, -1, + -1, -1, -1, -1, 260, 471, 472, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, 543, -1, + 273, 274, 41, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 391, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 260, -1, 413, 263, -1, - -1, 417, 418, 419, 420, 421, 422, -1, 273, 274, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + 260, -1, -1, 263, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, + -1, 125, -1, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 508, 509, 510, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - -1, 260, -1, -1, 263, -1, 431, 432, -1, -1, - -1, -1, -1, -1, 273, 123, -1, 125, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, 508, 509, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 260, -1, 413, 263, -1, -1, 417, 418, - 419, 420, 421, 422, -1, 273, 508, 509, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, 448, - 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, - 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + 473, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 260, -1, 413, 263, 47, -1, 417, 418, 419, + 420, 421, 422, -1, 273, 508, 509, 59, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 123, 409, 125, 411, 412, 413, + -1, -1, 431, 432, -1, -1, -1, -1, -1, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, 448, + 449, 450, 451, -1, -1, -1, -1, 59, -1, -1, + 459, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, -1, -1, -1, 473, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, 473, + -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, 123, -1, 125, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, 59, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, -1, -1, -1, -1, 260, - -1, -1, 263, 431, 432, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, -1, 123, -1, - 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + 59, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 273, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, -1, 260, -1, -1, 263, -1, - 431, 432, -1, -1, -1, -1, -1, -1, 273, 123, - -1, 125, -1, -1, 59, -1, -1, 448, 449, 450, - 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, + -1, 473, -1, -1, 123, -1, 125, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, 59, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, 508, 509, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, -1, -1, 508, 509, -1, - 125, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 508, + 509, 413, 59, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, 260, -1, -1, 263, -1, 535, 536, 537, 538, + 539, 540, 541, -1, 273, -1, 448, 449, 450, 451, + -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, - 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, - -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, - 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, 59, 448, 449, 450, 451, 535, 536, 537, - 538, 539, 540, 541, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, 473, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, - -1, -1, -1, 260, -1, -1, 263, 431, 432, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, - -1, -1, -1, -1, -1, -1, 33, -1, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, 508, 509, 273, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + -1, -1, -1, 59, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, 448, + 449, 450, 451, -1, -1, -1, 273, 123, -1, 125, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, 508, + 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, 473, -1, + -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, + 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, 396, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, 508, 509, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + 407, 408, 508, 509, 260, -1, 413, 263, -1, -1, + 417, 418, 419, 420, 421, 422, -1, 273, 123, -1, + 125, -1, -1, -1, 431, 432, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, -1, - -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 508, 509, 290, 291, 292, 293, 294, 33, -1, - 297, 298, -1, 38, -1, -1, -1, 42, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, 60, 323, 324, 325, -1, - 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, - -1, 358, -1, -1, -1, -1, -1, -1, -1, 366, - 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, - 377, 378, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - 327, -1, 329, 330, 331, 332, -1, 33, -1, -1, - -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, 60, -1, -1, -1, -1, 366, - 367, 368, 369, 480, -1, 372, -1, -1, -1, 376, - 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, 480, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, 60, 360, 361, 362, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 33, -1, -1, -1, - -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, 414, - 415, 416, 268, 60, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, 91, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, 260, -1, 413, 263, -1, + -1, 417, 418, 419, 420, 421, 422, 59, 273, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, 414, 415, - 416, -1, 268, -1, -1, 271, -1, 33, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, 323, 324, 325, - -1, 268, -1, -1, 271, 91, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 358, -1, 360, 361, 362, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, 33, 374, 375, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 416, 358, -1, 360, 361, 362, 260, 261, -1, 263, - -1, -1, -1, -1, 268, 91, 33, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, 414, 415, 416, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, 327, 91, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, 358, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, 372, 33, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 33, -1, - -1, -1, 358, 359, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, 91, -1, 414, 415, - 416, -1, -1, 260, 261, -1, 263, 323, 324, 325, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, 33, -1, 296, - 297, 298, 358, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, 508, 509, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 273, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 508, 509, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, 123, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, -1, -1, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, 257, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, 508, 509, 271, -1, -1, + -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, + 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, -1, 414, 415, - 416, 358, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, 414, 415, 416, - -1, -1, -1, -1, -1, 260, 261, -1, 263, 323, - 324, 325, -1, 268, -1, -1, 271, 123, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 358, -1, -1, -1, 33, -1, - -1, 306, -1, 308, -1, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 335, -1, 337, -1, -1, 257, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, -1, 358, 276, 277, -1, 279, 280, + 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, + 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, 358, 260, 261, 91, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, 257, 308, -1, -1, -1, -1, -1, -1, 414, - 415, 416, -1, -1, -1, 271, -1, 323, 324, 325, - 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, - 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, + -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 335, - -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, - -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, 271, -1, 414, 415, - 416, 276, 277, -1, 279, 280, 281, 282, 283, 284, - -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, - -1, -1, -1, -1, -1, 391, 271, -1, -1, -1, - -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, - 335, 306, 337, 308, -1, -1, -1, 342, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 481, 391, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, -1, -1, -1, 503, -1, -1, + 391, -1, -1, -1, -1, -1, -1, 481, -1, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 481, -1, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, -1, -1, -1, 503, + 481, -1, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, + -1, -1, 503, }; static int yyctable[] = { -1, - 239, 556, -1, 423, 766, -1, 275, 696, -1, 276, - 696, -1, 277, 696, -1, 279, 696, -1, 280, 696, - -1, 281, 696, -1, 282, 696, -1, 493, 717, -1, - 205, 40, -1, 225, 495, -1, 97, 495, -1, 99, + 239, 556, -1, 426, 771, -1, 278, 701, -1, 279, + 701, -1, 280, 701, -1, 282, 701, -1, 283, 701, + -1, 284, 701, -1, 285, 701, -1, 499, 722, -1, + 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 729, 317, -1, 797, 768, -1, + -1, 103, 495, -1, 737, 317, -1, 805, 773, -1, 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1062, 624, -1, 67, 565, -1, 68, - 565, -1, 69, 565, -1, 1081, 37, -1, 1207, 772, - -1, 1209, 770, -1, 1221, 608, -1, 1427, 774, -1, - 1064, 571, -1, 1065, 571, -1, + 34, 78, -1, 1070, 624, -1, 67, 565, -1, 68, + 565, -1, 69, 565, -1, 1089, 37, -1, 1215, 777, + -1, 1217, 775, -1, 1229, 608, -1, 1435, 779, -1, + 1072, 571, -1, 1073, 571, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, @@ -4199,151 +4397,152 @@ static int yyastable[] = { 0, 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 159, 160, 161, 298, 307, 310, 314, 339, 363, - 381, 385, 387, 404, 405, 459, 289, 310, 310, 310, - 310, 7, 12, 342, 343, 342, 342, 289, 289, 425, - 289, 289, 289, 289, 342, 388, 60, 450, 389, 23, - 26, 27, 28, 29, 31, 32, 33, 289, 305, 481, - 484, 485, 318, 402, 293, 318, 390, 311, 298, 339, - 381, 382, 387, 459, 7, 33, 297, 347, 292, 294, - 294, 46, 48, 49, 50, 316, 316, 382, 383, 385, - 339, 297, 294, 318, 318, 207, 310, 401, 100, 101, - 102, 125, 219, 221, 222, 223, 224, 310, 75, 76, - 310, 310, 339, 26, 27, 28, 29, 381, 51, 381, - 24, 25, 34, 15, 17, 339, 217, 304, 310, 387, - 307, 310, 318, 306, 105, 106, 107, 136, 298, 300, - 304, 305, 136, 136, 136, 136, 316, 386, 381, 446, - 347, 295, 12, 295, 295, 422, 309, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 162, 163, 164, 165, 166, 167, 204, 218, 253, 254, - 289, 290, 311, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 427, 430, 441, - 442, 443, 445, 464, 465, 466, 467, 468, 469, 470, - 473, 433, 435, 437, 439, 295, 39, 68, 72, 75, - 76, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 98, 101, 108, 117, 310, 382, 61, - 451, 39, 72, 74, 75, 76, 77, 78, 83, 92, - 97, 99, 111, 112, 113, 114, 115, 116, 117, 118, - 124, 316, 304, 294, 298, 323, 294, 323, 294, 323, - 294, 323, 294, 323, 294, 323, 294, 483, 484, 294, - 342, 7, 8, 292, 303, 73, 75, 76, 82, 310, - 310, 299, 39, 72, 74, 75, 76, 77, 111, 112, - 113, 114, 117, 121, 122, 123, 225, 339, 297, 217, - 310, 294, 297, 316, 294, 289, 294, 291, 8, 318, - 318, 295, 119, 120, 298, 310, 312, 382, 289, 294, - 347, 299, 166, 400, 310, 220, 136, 381, 25, 310, - 382, 310, 299, 299, 299, 310, 318, 310, 294, 294, - 310, 20, 299, 318, 340, 341, 339, 365, 366, 310, - 310, 310, 310, 339, 446, 290, 67, 154, 168, 173, - 198, 199, 218, 253, 254, 290, 421, 424, 426, 427, - 430, 441, 442, 443, 445, 453, 454, 456, 458, 290, - 318, 318, 318, 298, 110, 287, 298, 103, 382, 303, - 311, 318, 318, 335, 11, 31, 32, 294, 334, 335, - 311, 318, 386, 15, 17, 339, 387, 382, 87, 347, - 485, 316, 383, 294, 342, 197, 294, 425, 55, 57, - 58, 59, 471, 472, 474, 476, 477, 478, 479, 311, - 318, 468, 208, 210, 213, 214, 290, 441, 442, 445, - 488, 489, 490, 491, 84, 208, 211, 290, 487, 489, - 492, 493, 41, 154, 206, 209, 290, 442, 445, 494, - 206, 209, 290, 442, 445, 495, 294, 75, 76, 77, - 111, 112, 113, 300, 380, 382, 452, 294, 294, 322, - 294, 318, 318, 318, 318, 335, 334, 334, 290, 292, - 311, 295, 318, 318, 75, 76, 77, 111, 112, 113, - 294, 294, 310, 310, 299, 347, 395, 396, 289, 339, - 51, 374, 375, 382, 7, 292, 295, 295, 384, 300, - 333, 364, 19, 370, 372, 321, 487, 136, 310, 19, - 299, 314, 314, 314, 382, 382, 20, 292, 299, 301, - 292, 304, 110, 392, 393, 318, 318, 402, 110, 287, - 103, 382, 289, 425, 289, 289, 289, 303, 318, 298, - 310, 298, 310, 318, 316, 19, 294, 294, 310, 382, - 294, 342, 339, 311, 315, 318, 295, 294, 20, 322, - 336, 337, 338, 290, 382, 471, 56, 468, 475, 475, - 475, 475, 311, 318, 468, 62, 62, 212, 297, 304, - 318, 377, 297, 347, 342, 342, 297, 297, 342, 342, - 294, 215, 318, 310, 215, 310, 215, 318, 39, 51, - 52, 69, 119, 288, 291, 302, 327, 328, 379, 292, - 318, 347, 394, 298, 339, 347, 295, 299, 295, 295, - 295, 295, 295, 483, 295, 303, 8, 292, 318, 2, - 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, - 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, - 136, 226, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 248, - 289, 344, 345, 463, 63, 313, 299, 297, 295, 292, - 370, 8, 292, 290, 297, 8, 297, 298, 365, 294, - 294, 310, 312, 290, 22, 23, 24, 26, 27, 28, - 29, 31, 32, 35, 36, 37, 38, 42, 43, 110, - 351, 352, 373, 445, 485, 28, 29, 63, 202, 203, - 205, 342, 310, 310, 314, 295, 295, 318, 340, 339, - 294, 382, 72, 117, 310, 382, 72, 117, 316, 310, - 298, 310, 298, 310, 316, 19, 422, 290, 455, 457, - 437, 318, 299, 318, 318, 292, 299, 339, 312, 318, - 335, 19, 347, 295, 294, 292, 295, 292, 336, 339, - 295, 292, 311, 318, 311, 318, 318, 294, 303, 294, - 295, 295, 294, 294, 295, 295, 318, 314, 310, 63, - 310, 295, 294, 39, 329, 330, 328, 294, 310, 369, - 301, 382, 295, 136, 394, 39, 46, 48, 49, 50, - 87, 88, 89, 133, 134, 135, 137, 140, 295, 250, - 251, 252, 318, 225, 349, 295, 323, 323, 323, 323, - 323, 323, 318, 318, 295, 25, 26, 27, 28, 29, - 294, 331, 242, 234, 246, 294, 227, 247, 22, 331, - 331, 2, 21, 22, 24, 25, 26, 27, 28, 29, - 31, 32, 34, 35, 36, 37, 38, 229, 230, 232, - 233, 234, 236, 237, 240, 241, 243, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 304, 324, 298, 304, 295, 343, 311, 297, 346, - 28, 65, 66, 318, 326, 347, 348, 381, 395, 290, - 297, 375, 289, 289, 294, 347, 318, 301, 336, 336, - 333, 364, 294, 298, 294, 298, 26, 27, 28, 29, + 104, 159, 160, 161, 288, 298, 307, 310, 314, 339, + 363, 381, 385, 387, 404, 405, 459, 289, 310, 310, + 310, 310, 7, 12, 342, 343, 342, 342, 289, 289, + 425, 289, 289, 289, 289, 342, 388, 60, 450, 389, + 23, 26, 27, 28, 29, 31, 32, 33, 289, 305, + 481, 484, 485, 318, 402, 293, 318, 390, 311, 298, + 339, 381, 382, 387, 459, 7, 33, 297, 347, 292, + 294, 294, 46, 48, 49, 50, 316, 316, 382, 383, + 385, 339, 297, 294, 318, 318, 207, 310, 401, 100, + 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, + 76, 310, 310, 339, 26, 27, 28, 29, 381, 51, + 381, 24, 25, 34, 15, 17, 339, 307, 363, 217, + 304, 310, 387, 307, 310, 318, 306, 105, 106, 107, + 136, 298, 300, 304, 305, 136, 136, 136, 136, 316, + 386, 381, 446, 347, 295, 12, 295, 295, 422, 309, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 162, 163, 164, 165, 166, 167, 204, + 218, 253, 254, 289, 290, 311, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 427, 430, 441, 442, 443, 445, 464, 465, 466, 467, + 468, 469, 470, 473, 433, 435, 437, 439, 295, 39, + 68, 72, 75, 76, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 98, 101, 108, 117, + 310, 382, 61, 451, 39, 72, 74, 75, 76, 77, + 78, 83, 92, 97, 99, 111, 112, 113, 114, 115, + 116, 117, 118, 124, 316, 304, 294, 298, 323, 294, + 323, 294, 323, 294, 323, 294, 323, 294, 323, 294, + 483, 484, 294, 342, 7, 8, 292, 303, 73, 75, + 76, 82, 310, 310, 299, 39, 72, 74, 75, 76, + 77, 111, 112, 113, 114, 117, 121, 122, 123, 225, + 339, 297, 217, 310, 294, 297, 316, 294, 289, 294, + 291, 8, 318, 318, 295, 119, 120, 298, 310, 312, + 382, 289, 294, 347, 299, 166, 400, 310, 220, 136, + 381, 25, 310, 382, 307, 310, 318, 310, 299, 299, + 299, 310, 318, 310, 294, 294, 310, 20, 299, 318, + 340, 341, 339, 365, 366, 310, 310, 310, 310, 339, + 446, 290, 67, 154, 168, 173, 198, 199, 218, 253, + 254, 290, 421, 424, 426, 427, 430, 441, 442, 443, + 445, 453, 454, 456, 458, 290, 318, 318, 318, 298, + 110, 287, 298, 103, 382, 303, 311, 318, 318, 335, + 11, 31, 32, 294, 334, 335, 311, 318, 386, 15, + 17, 339, 387, 382, 87, 347, 485, 316, 383, 294, + 342, 197, 294, 425, 55, 57, 58, 59, 471, 472, + 474, 476, 477, 478, 479, 311, 318, 468, 208, 210, + 213, 214, 290, 441, 442, 445, 488, 489, 490, 491, + 84, 208, 211, 290, 487, 489, 492, 493, 41, 154, + 206, 209, 290, 442, 445, 494, 206, 209, 290, 442, + 445, 495, 294, 75, 76, 77, 111, 112, 113, 300, + 380, 382, 452, 294, 294, 322, 294, 318, 318, 318, + 318, 335, 334, 334, 290, 292, 311, 295, 318, 318, + 75, 76, 77, 111, 112, 113, 294, 294, 310, 310, + 299, 347, 395, 396, 289, 339, 51, 374, 375, 382, + 7, 292, 295, 295, 384, 300, 333, 364, 19, 370, + 372, 321, 487, 136, 310, 19, 310, 318, 299, 314, + 314, 314, 382, 382, 20, 292, 299, 301, 292, 304, + 110, 392, 393, 318, 318, 402, 110, 287, 103, 382, + 289, 425, 289, 289, 289, 303, 318, 298, 310, 298, + 310, 318, 316, 19, 294, 294, 310, 382, 294, 342, + 339, 311, 315, 318, 295, 294, 20, 322, 336, 337, + 338, 290, 382, 471, 56, 468, 475, 475, 475, 475, + 311, 318, 468, 62, 62, 212, 297, 304, 318, 377, + 297, 347, 342, 342, 297, 297, 342, 342, 294, 215, + 318, 310, 215, 310, 215, 318, 39, 51, 52, 69, + 119, 288, 291, 302, 327, 328, 379, 292, 318, 347, + 394, 298, 339, 347, 295, 299, 295, 295, 295, 295, + 295, 483, 295, 303, 8, 292, 318, 2, 16, 21, + 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, + 35, 36, 37, 38, 80, 82, 87, 103, 136, 226, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 248, 289, 344, + 345, 463, 63, 313, 299, 297, 295, 292, 370, 8, + 292, 290, 297, 8, 297, 298, 365, 294, 294, 310, + 312, 290, 22, 23, 24, 26, 27, 28, 29, 31, + 32, 35, 36, 37, 38, 42, 43, 110, 351, 352, + 373, 445, 485, 28, 29, 63, 202, 203, 205, 342, + 310, 310, 314, 295, 295, 318, 340, 339, 294, 382, + 72, 117, 310, 382, 72, 117, 316, 310, 298, 310, + 298, 310, 316, 19, 422, 290, 455, 457, 437, 318, + 299, 318, 318, 292, 299, 339, 312, 318, 335, 19, + 347, 295, 294, 292, 295, 292, 336, 339, 295, 292, + 311, 318, 311, 318, 318, 294, 303, 294, 295, 295, + 294, 294, 295, 295, 318, 314, 310, 63, 310, 295, + 294, 39, 329, 330, 328, 294, 310, 369, 301, 382, + 295, 136, 394, 39, 46, 48, 49, 50, 87, 88, + 89, 133, 134, 135, 137, 140, 295, 250, 251, 252, + 318, 225, 349, 295, 323, 323, 323, 323, 323, 323, + 318, 318, 295, 25, 26, 27, 28, 29, 294, 331, + 242, 234, 246, 294, 227, 247, 22, 331, 331, 2, + 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, + 34, 35, 36, 37, 38, 229, 230, 232, 233, 234, + 236, 237, 240, 241, 243, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 304, + 324, 298, 304, 295, 343, 311, 297, 346, 28, 65, + 66, 318, 326, 347, 348, 381, 395, 290, 297, 375, + 289, 289, 294, 347, 318, 301, 336, 336, 333, 364, + 294, 298, 294, 298, 26, 27, 28, 29, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, - 294, 298, 294, 298, 294, 298, 104, 109, 376, 445, - 342, 311, 295, 336, 196, 404, 310, 339, 318, 318, - 292, 339, 312, 290, 169, 170, 171, 172, 290, 430, - 442, 443, 445, 460, 172, 174, 175, 290, 430, 442, - 443, 445, 461, 290, 136, 299, 299, 382, 346, 382, - 295, 295, 310, 295, 336, 315, 315, 295, 349, 338, - 62, 62, 377, 295, 318, 318, 294, 330, 382, 367, - 368, 382, 292, 378, 310, 347, 295, 294, 303, 303, - 299, 299, 299, 299, 294, 312, 8, 292, 8, 249, - 347, 298, 298, 25, 26, 27, 28, 29, 270, 292, - 298, 305, 291, 299, 318, 290, 22, 23, 24, 26, - 27, 28, 29, 31, 32, 35, 36, 37, 38, 44, - 347, 350, 352, 294, 294, 289, 373, 370, 299, 295, - 295, 294, 294, 326, 318, 318, 318, 294, 298, 294, - 298, 294, 298, 294, 298, 318, 318, 318, 318, 318, - 318, 335, 318, 318, 334, 318, 334, 335, 318, 318, - 318, 318, 318, 318, 318, 335, 318, 351, 318, 8, - 44, 318, 44, 51, 381, 318, 42, 91, 110, 363, - 371, 295, 400, 295, 310, 299, 299, 382, 382, 255, - 386, 386, 386, 386, 386, 386, 386, 311, 292, 19, - 295, 311, 311, 318, 303, 295, 318, 310, 295, 292, - 379, 378, 394, 318, 138, 139, 138, 139, 345, 380, - 318, 297, 292, 318, 318, 347, 299, 318, 291, 299, - 26, 27, 28, 29, 318, 26, 27, 28, 318, 373, - 290, 290, 301, 336, 336, 295, 299, 295, 299, 318, - 318, 318, 318, 318, 318, 335, 318, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 295, 299, 295, 295, + 294, 298, 294, 298, 104, 109, 376, 445, 342, 311, + 295, 336, 196, 404, 310, 339, 318, 318, 292, 339, + 312, 290, 169, 170, 171, 172, 290, 430, 442, 443, + 445, 460, 172, 174, 175, 290, 430, 442, 443, 445, + 461, 290, 136, 299, 299, 382, 346, 382, 295, 295, + 310, 295, 336, 315, 315, 295, 349, 338, 62, 62, + 377, 295, 318, 318, 294, 330, 382, 367, 368, 382, + 292, 378, 310, 347, 295, 294, 303, 303, 299, 299, + 299, 299, 294, 312, 8, 292, 8, 249, 347, 298, + 298, 25, 26, 27, 28, 29, 270, 292, 298, 305, + 291, 299, 318, 290, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 35, 36, 37, 38, 44, 347, 350, + 352, 294, 294, 289, 373, 370, 299, 295, 295, 294, + 294, 326, 318, 318, 318, 294, 298, 294, 298, 294, + 298, 294, 298, 318, 318, 318, 318, 318, 318, 335, + 318, 318, 334, 318, 334, 335, 318, 318, 318, 318, + 318, 318, 318, 335, 318, 351, 318, 8, 44, 318, + 44, 51, 381, 318, 42, 91, 110, 363, 371, 295, + 400, 295, 310, 299, 299, 382, 382, 255, 386, 386, + 386, 386, 386, 386, 386, 311, 292, 19, 295, 311, + 311, 318, 303, 295, 318, 310, 295, 292, 379, 378, + 394, 318, 138, 139, 138, 139, 345, 380, 318, 297, + 292, 318, 318, 347, 299, 318, 291, 299, 26, 27, + 28, 29, 318, 26, 27, 28, 318, 373, 290, 290, + 301, 336, 336, 295, 299, 295, 299, 318, 318, 318, + 318, 318, 318, 335, 318, 295, 299, 295, 299, 295, + 299, 295, 299, 295, 295, 299, 295, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, - 299, 295, 295, 299, 295, 8, 295, 299, 51, 381, - 298, 310, 294, 292, 19, 316, 382, 312, 377, 295, - 378, 382, 295, 295, 295, 294, 8, 318, 347, 299, - 299, 299, 318, 295, 303, 303, 303, 295, 290, 295, - 295, 294, 294, 295, 299, 295, 299, 295, 299, 295, - 299, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 295, 294, 8, 299, 297, 336, 382, - 312, 339, 300, 332, 333, 303, 336, 295, 292, 295, - 344, 299, 318, 318, 318, 359, 356, 294, 294, 294, - 294, 355, 356, 357, 358, 353, 354, 355, 356, 357, - 358, 362, 360, 361, 351, 295, 332, 382, 294, 377, - 295, 347, 295, 295, 295, 295, 326, 295, 318, 355, - 356, 357, 358, 295, 318, 295, 295, 318, 295, 335, - 295, 318, 334, 295, 334, 335, 295, 295, 295, 295, - 295, 351, 8, 44, 295, 44, 51, 295, 381, 346, - 294, 19, 336, 391, 292, 295, 295, 295, 295, 8, - 336, 312, 295, 39, 54, 70, 79, 93, 94, 95, - 96, 125, 126, 127, 128, 129, 130, 131, 289, 347, - 295, 294, 294, 295, 255, 336, 318, 103, 295, 295, - 316, 339, 382, 19, 312, 332, 294, 336, 295, + 295, 299, 295, 8, 295, 299, 51, 381, 298, 310, + 294, 292, 19, 316, 382, 312, 377, 295, 378, 382, + 295, 295, 295, 294, 8, 318, 347, 299, 299, 299, + 318, 295, 303, 303, 303, 295, 290, 295, 295, 294, + 294, 295, 299, 295, 299, 295, 299, 295, 299, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 295, 294, 8, 299, 297, 336, 382, 312, 339, + 300, 332, 333, 303, 336, 295, 292, 295, 344, 299, + 318, 318, 318, 359, 356, 294, 294, 294, 294, 355, + 356, 357, 358, 353, 354, 355, 356, 357, 358, 362, + 360, 361, 351, 295, 332, 382, 294, 377, 295, 347, + 295, 295, 295, 295, 326, 295, 318, 355, 356, 357, + 358, 295, 318, 295, 295, 318, 295, 335, 295, 318, + 334, 295, 334, 335, 295, 295, 295, 295, 295, 351, + 8, 44, 295, 44, 51, 295, 381, 346, 294, 19, + 336, 391, 292, 295, 295, 295, 295, 8, 336, 312, + 295, 39, 54, 70, 79, 93, 94, 95, 96, 125, + 126, 127, 128, 129, 130, 131, 289, 347, 295, 294, + 294, 295, 255, 336, 318, 103, 295, 295, 316, 339, + 382, 19, 312, 332, 294, 336, 295, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -5084,6 +5283,7 @@ static const char *yyrule[] = { "type : OBJECT_", "type : VALUE_ CLASS_ className", "type : VALUETYPE_ className", +"type : CONST_ simpleType", "type : type '[' ']'", "type : type '[' bounds1 ']'", "type : type '&'", @@ -5093,9 +5293,13 @@ static const char *yyrule[] = { "type : type MODOPT_ '(' typeSpec ')'", "type : methodSpec callConv type '*' '(' sigArgs0 ')'", "type : type '<' tyArgs1 '>'", +"type : CONST_ '!' '!' int32", "type : '!' '!' int32", +"type : CONST_ '!' int32", "type : '!' int32", +"type : CONST_ '!' '!' dottedName", "type : '!' '!' dottedName", +"type : CONST_ '!' dottedName", "type : '!' dottedName", "type : TYPEDREF_", "type : VOID_", @@ -5561,11 +5765,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2072 "asmparse.y" +#line 2109 "asmparse.y" #include "grammar_after.cpp" -#line 5569 "asmparse.cpp.tab.c" +#line 5773 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6018,13 +6222,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6022 "asmparse.cpp.tab.c" +#line 6226 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6028 "asmparse.cpp.tab.c" +#line 6232 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6033,31 +6237,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6037 "asmparse.cpp.tab.c" +#line 6241 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6043 "asmparse.cpp.tab.c" +#line 6247 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6049 "asmparse.cpp.tab.c" +#line 6253 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6055 "asmparse.cpp.tab.c" +#line 6259 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6061 "asmparse.cpp.tab.c" +#line 6265 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6072,13 +6276,13 @@ case 19: #pragma warning(pop) #endif } -#line 6076 "asmparse.cpp.tab.c" +#line 6280 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6082 "asmparse.cpp.tab.c" +#line 6286 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6086,7 +6290,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6090 "asmparse.cpp.tab.c" +#line 6294 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6094,44 +6298,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6098 "asmparse.cpp.tab.c" +#line 6302 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6104 "asmparse.cpp.tab.c" +#line 6308 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6110 "asmparse.cpp.tab.c" +#line 6314 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6116 "asmparse.cpp.tab.c" +#line 6320 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6122 "asmparse.cpp.tab.c" +#line 6326 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6128 "asmparse.cpp.tab.c" +#line 6332 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6135 "asmparse.cpp.tab.c" +#line 6339 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6139,121 +6343,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6143 "asmparse.cpp.tab.c" +#line 6347 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6149 "asmparse.cpp.tab.c" +#line 6353 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6155 "asmparse.cpp.tab.c" +#line 6359 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6161 "asmparse.cpp.tab.c" +#line 6365 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6167 "asmparse.cpp.tab.c" +#line 6371 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6173 "asmparse.cpp.tab.c" +#line 6377 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6179 "asmparse.cpp.tab.c" +#line 6383 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6185 "asmparse.cpp.tab.c" +#line 6389 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6191 "asmparse.cpp.tab.c" +#line 6395 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6197 "asmparse.cpp.tab.c" +#line 6401 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6203 "asmparse.cpp.tab.c" +#line 6407 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6209 "asmparse.cpp.tab.c" +#line 6413 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6215 "asmparse.cpp.tab.c" +#line 6419 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6221 "asmparse.cpp.tab.c" +#line 6425 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6227 "asmparse.cpp.tab.c" +#line 6431 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6233 "asmparse.cpp.tab.c" +#line 6437 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6239 "asmparse.cpp.tab.c" +#line 6443 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6245 "asmparse.cpp.tab.c" +#line 6449 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6251 "asmparse.cpp.tab.c" +#line 6455 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6257 "asmparse.cpp.tab.c" +#line 6461 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6261,7 +6465,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6265 "asmparse.cpp.tab.c" +#line 6469 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6269,13 +6473,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6273 "asmparse.cpp.tab.c" +#line 6477 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6279 "asmparse.cpp.tab.c" +#line 6483 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6284,73 +6488,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6288 "asmparse.cpp.tab.c" +#line 6492 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6294 "asmparse.cpp.tab.c" +#line 6498 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6300 "asmparse.cpp.tab.c" +#line 6504 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6306 "asmparse.cpp.tab.c" +#line 6510 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6312 "asmparse.cpp.tab.c" +#line 6516 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6318 "asmparse.cpp.tab.c" +#line 6522 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6324 "asmparse.cpp.tab.c" +#line 6528 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6330 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6336 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6342 "asmparse.cpp.tab.c" +#line 6546 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6348 "asmparse.cpp.tab.c" +#line 6552 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6354 "asmparse.cpp.tab.c" +#line 6558 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6358,25 +6562,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6362 "asmparse.cpp.tab.c" +#line 6566 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6368 "asmparse.cpp.tab.c" +#line 6572 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6374 "asmparse.cpp.tab.c" +#line 6578 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6380 "asmparse.cpp.tab.c" +#line 6584 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6385,32 +6589,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6389 "asmparse.cpp.tab.c" +#line 6593 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6395 "asmparse.cpp.tab.c" +#line 6599 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6402 "asmparse.cpp.tab.c" +#line 6606 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6408 "asmparse.cpp.tab.c" +#line 6612 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6414 "asmparse.cpp.tab.c" +#line 6618 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6420,25 +6624,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6424 "asmparse.cpp.tab.c" +#line 6628 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6430 "asmparse.cpp.tab.c" +#line 6634 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6436 "asmparse.cpp.tab.c" +#line 6640 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6442 "asmparse.cpp.tab.c" +#line 6646 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6447,13 +6651,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6451 "asmparse.cpp.tab.c" +#line 6655 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6457 "asmparse.cpp.tab.c" +#line 6661 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6464,57 +6668,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6468 "asmparse.cpp.tab.c" +#line 6672 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6474 "asmparse.cpp.tab.c" +#line 6678 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6480 "asmparse.cpp.tab.c" +#line 6684 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6486 "asmparse.cpp.tab.c" +#line 6690 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6493 "asmparse.cpp.tab.c" +#line 6697 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6500 "asmparse.cpp.tab.c" +#line 6704 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6506 "asmparse.cpp.tab.c" +#line 6710 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6512 "asmparse.cpp.tab.c" +#line 6716 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6518 "asmparse.cpp.tab.c" +#line 6722 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6523,74 +6727,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6527 "asmparse.cpp.tab.c" +#line 6731 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6534 "asmparse.cpp.tab.c" +#line 6738 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6540 "asmparse.cpp.tab.c" +#line 6744 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6546 "asmparse.cpp.tab.c" +#line 6750 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6552 "asmparse.cpp.tab.c" +#line 6756 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6558 "asmparse.cpp.tab.c" +#line 6762 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6564 "asmparse.cpp.tab.c" +#line 6768 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6570 "asmparse.cpp.tab.c" +#line 6774 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6576 "asmparse.cpp.tab.c" +#line 6780 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6582 "asmparse.cpp.tab.c" +#line 6786 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6588 "asmparse.cpp.tab.c" +#line 6792 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6594 "asmparse.cpp.tab.c" +#line 6798 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6600,355 +6804,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6604 "asmparse.cpp.tab.c" +#line 6808 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6610 "asmparse.cpp.tab.c" +#line 6814 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6616 "asmparse.cpp.tab.c" +#line 6820 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6622 "asmparse.cpp.tab.c" +#line 6826 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6628 "asmparse.cpp.tab.c" +#line 6832 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6634 "asmparse.cpp.tab.c" +#line 6838 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6640 "asmparse.cpp.tab.c" +#line 6844 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6646 "asmparse.cpp.tab.c" +#line 6850 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6652 "asmparse.cpp.tab.c" +#line 6856 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6658 "asmparse.cpp.tab.c" +#line 6862 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6664 "asmparse.cpp.tab.c" +#line 6868 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6670 "asmparse.cpp.tab.c" +#line 6874 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6676 "asmparse.cpp.tab.c" +#line 6880 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6682 "asmparse.cpp.tab.c" +#line 6886 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6688 "asmparse.cpp.tab.c" +#line 6892 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6694 "asmparse.cpp.tab.c" +#line 6898 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6700 "asmparse.cpp.tab.c" +#line 6904 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6706 "asmparse.cpp.tab.c" +#line 6910 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6712 "asmparse.cpp.tab.c" +#line 6916 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6718 "asmparse.cpp.tab.c" +#line 6922 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6724 "asmparse.cpp.tab.c" +#line 6928 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6730 "asmparse.cpp.tab.c" +#line 6934 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6736 "asmparse.cpp.tab.c" +#line 6940 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 6742 "asmparse.cpp.tab.c" +#line 6946 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 6748 "asmparse.cpp.tab.c" +#line 6952 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 6754 "asmparse.cpp.tab.c" +#line 6958 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 6760 "asmparse.cpp.tab.c" +#line 6964 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 6766 "asmparse.cpp.tab.c" +#line 6970 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 6772 "asmparse.cpp.tab.c" +#line 6976 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 6778 "asmparse.cpp.tab.c" +#line 6982 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6784 "asmparse.cpp.tab.c" +#line 6988 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6790 "asmparse.cpp.tab.c" +#line 6994 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6796 "asmparse.cpp.tab.c" +#line 7000 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6802 "asmparse.cpp.tab.c" +#line 7006 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6808 "asmparse.cpp.tab.c" +#line 7012 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6814 "asmparse.cpp.tab.c" +#line 7018 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 6820 "asmparse.cpp.tab.c" +#line 7024 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 6826 "asmparse.cpp.tab.c" +#line 7030 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 6832 "asmparse.cpp.tab.c" +#line 7036 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 6838 "asmparse.cpp.tab.c" +#line 7042 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 6844 "asmparse.cpp.tab.c" +#line 7048 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 6850 "asmparse.cpp.tab.c" +#line 7054 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 6856 "asmparse.cpp.tab.c" +#line 7060 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 6862 "asmparse.cpp.tab.c" +#line 7066 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 6868 "asmparse.cpp.tab.c" +#line 7072 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 6874 "asmparse.cpp.tab.c" +#line 7078 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 6880 "asmparse.cpp.tab.c" +#line 7084 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 6886 "asmparse.cpp.tab.c" +#line 7090 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 6892 "asmparse.cpp.tab.c" +#line 7096 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 6898 "asmparse.cpp.tab.c" +#line 7102 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 6904 "asmparse.cpp.tab.c" +#line 7108 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 6910 "asmparse.cpp.tab.c" +#line 7114 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 6916 "asmparse.cpp.tab.c" +#line 7120 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 6922 "asmparse.cpp.tab.c" +#line 7126 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 6928 "asmparse.cpp.tab.c" +#line 7132 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6934 "asmparse.cpp.tab.c" +#line 7138 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 6940 "asmparse.cpp.tab.c" +#line 7144 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6946 "asmparse.cpp.tab.c" +#line 7150 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 6952 "asmparse.cpp.tab.c" +#line 7156 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -6957,43 +7161,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6961 "asmparse.cpp.tab.c" +#line 7165 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 6967 "asmparse.cpp.tab.c" +#line 7171 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 6973 "asmparse.cpp.tab.c" +#line 7177 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 6979 "asmparse.cpp.tab.c" +#line 7183 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 6985 "asmparse.cpp.tab.c" +#line 7189 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 6991 "asmparse.cpp.tab.c" +#line 7195 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 6997 "asmparse.cpp.tab.c" +#line 7201 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7003,7 +7207,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7007 "asmparse.cpp.tab.c" +#line 7211 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7016,7 +7220,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7020 "asmparse.cpp.tab.c" +#line 7224 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7026,7 +7230,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7030 "asmparse.cpp.tab.c" +#line 7234 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7037,19 +7241,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7041 "asmparse.cpp.tab.c" +#line 7245 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7047 "asmparse.cpp.tab.c" +#line 7251 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7053 "asmparse.cpp.tab.c" +#line 7257 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7058,146 +7262,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7062 "asmparse.cpp.tab.c" +#line 7266 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7069 "asmparse.cpp.tab.c" +#line 7273 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7075 "asmparse.cpp.tab.c" +#line 7279 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7081 "asmparse.cpp.tab.c" +#line 7285 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7087 "asmparse.cpp.tab.c" +#line 7291 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7093 "asmparse.cpp.tab.c" +#line 7297 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7099 "asmparse.cpp.tab.c" +#line 7303 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7105 "asmparse.cpp.tab.c" +#line 7309 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7111 "asmparse.cpp.tab.c" +#line 7315 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7117 "asmparse.cpp.tab.c" +#line 7321 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7123 "asmparse.cpp.tab.c" +#line 7327 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7129 "asmparse.cpp.tab.c" +#line 7333 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7135 "asmparse.cpp.tab.c" +#line 7339 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7141 "asmparse.cpp.tab.c" +#line 7345 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7147 "asmparse.cpp.tab.c" +#line 7351 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7153 "asmparse.cpp.tab.c" +#line 7357 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7159 "asmparse.cpp.tab.c" +#line 7363 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7165 "asmparse.cpp.tab.c" +#line 7369 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7171 "asmparse.cpp.tab.c" +#line 7375 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7177 "asmparse.cpp.tab.c" +#line 7381 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7183 "asmparse.cpp.tab.c" +#line 7387 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7189 "asmparse.cpp.tab.c" +#line 7393 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7195 "asmparse.cpp.tab.c" +#line 7399 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7201 "asmparse.cpp.tab.c" +#line 7405 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7218,7 +7422,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7222 "asmparse.cpp.tab.c" +#line 7426 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7228,7 +7432,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7232 "asmparse.cpp.tab.c" +#line 7436 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7248,7 +7452,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7252 "asmparse.cpp.tab.c" +#line 7456 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7257,103 +7461,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7261 "asmparse.cpp.tab.c" +#line 7465 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7267 "asmparse.cpp.tab.c" +#line 7471 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7273 "asmparse.cpp.tab.c" +#line 7477 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7279 "asmparse.cpp.tab.c" +#line 7483 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7285 "asmparse.cpp.tab.c" +#line 7489 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7291 "asmparse.cpp.tab.c" +#line 7495 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7297 "asmparse.cpp.tab.c" +#line 7501 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7303 "asmparse.cpp.tab.c" +#line 7507 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7309 "asmparse.cpp.tab.c" +#line 7513 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7315 "asmparse.cpp.tab.c" +#line 7519 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7321 "asmparse.cpp.tab.c" +#line 7525 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7327 "asmparse.cpp.tab.c" +#line 7531 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7333 "asmparse.cpp.tab.c" +#line 7537 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7339 "asmparse.cpp.tab.c" +#line 7543 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7345 "asmparse.cpp.tab.c" +#line 7549 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7351 "asmparse.cpp.tab.c" +#line 7555 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7357 "asmparse.cpp.tab.c" +#line 7561 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7363,7 +7567,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7367 "asmparse.cpp.tab.c" +#line 7571 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7371,7 +7575,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7375 "asmparse.cpp.tab.c" +#line 7579 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7379,82 +7583,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7383 "asmparse.cpp.tab.c" +#line 7587 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7390 "asmparse.cpp.tab.c" +#line 7594 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7397 "asmparse.cpp.tab.c" +#line 7601 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7404 "asmparse.cpp.tab.c" +#line 7608 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7410 "asmparse.cpp.tab.c" +#line 7614 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7416 "asmparse.cpp.tab.c" +#line 7620 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7422 "asmparse.cpp.tab.c" +#line 7626 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7428 "asmparse.cpp.tab.c" +#line 7632 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7434 "asmparse.cpp.tab.c" +#line 7638 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7440 "asmparse.cpp.tab.c" +#line 7644 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7446 "asmparse.cpp.tab.c" +#line 7650 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7452 "asmparse.cpp.tab.c" +#line 7656 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7458 "asmparse.cpp.tab.c" +#line 7662 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7462,43 +7666,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7466 "asmparse.cpp.tab.c" +#line 7670 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7472 "asmparse.cpp.tab.c" +#line 7676 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7478 "asmparse.cpp.tab.c" +#line 7682 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7484 "asmparse.cpp.tab.c" +#line 7688 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7490 "asmparse.cpp.tab.c" +#line 7694 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7496 "asmparse.cpp.tab.c" +#line 7700 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7502 "asmparse.cpp.tab.c" +#line 7706 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7507,37 +7711,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7511 "asmparse.cpp.tab.c" +#line 7715 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7517 "asmparse.cpp.tab.c" +#line 7721 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7523 "asmparse.cpp.tab.c" +#line 7727 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7529 "asmparse.cpp.tab.c" +#line 7733 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7535 "asmparse.cpp.tab.c" +#line 7739 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7541 "asmparse.cpp.tab.c" +#line 7745 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7555,420 +7759,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7559 "asmparse.cpp.tab.c" +#line 7763 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7565 "asmparse.cpp.tab.c" +#line 7769 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7571 "asmparse.cpp.tab.c" +#line 7775 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7577 "asmparse.cpp.tab.c" +#line 7781 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7583 "asmparse.cpp.tab.c" +#line 7787 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7589 "asmparse.cpp.tab.c" +#line 7793 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7595 "asmparse.cpp.tab.c" +#line 7799 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7601 "asmparse.cpp.tab.c" +#line 7805 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7607 "asmparse.cpp.tab.c" +#line 7811 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7613 "asmparse.cpp.tab.c" +#line 7817 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7619 "asmparse.cpp.tab.c" +#line 7823 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7625 "asmparse.cpp.tab.c" +#line 7829 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7631 "asmparse.cpp.tab.c" +#line 7835 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7637 "asmparse.cpp.tab.c" +#line 7841 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7643 "asmparse.cpp.tab.c" +#line 7847 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7649 "asmparse.cpp.tab.c" +#line 7853 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7655 "asmparse.cpp.tab.c" +#line 7859 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 7661 "asmparse.cpp.tab.c" +#line 7865 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7667 "asmparse.cpp.tab.c" +#line 7871 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7673 "asmparse.cpp.tab.c" +#line 7877 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7679 "asmparse.cpp.tab.c" +#line 7883 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7686 "asmparse.cpp.tab.c" +#line 7890 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7693 "asmparse.cpp.tab.c" +#line 7897 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7700 "asmparse.cpp.tab.c" +#line 7904 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7706 "asmparse.cpp.tab.c" +#line 7910 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7712 "asmparse.cpp.tab.c" +#line 7916 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7718 "asmparse.cpp.tab.c" +#line 7922 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7724 "asmparse.cpp.tab.c" +#line 7928 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7730 "asmparse.cpp.tab.c" +#line 7934 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7736 "asmparse.cpp.tab.c" +#line 7940 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 7742 "asmparse.cpp.tab.c" +#line 7946 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 7748 "asmparse.cpp.tab.c" +#line 7952 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 7754 "asmparse.cpp.tab.c" +#line 7958 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 7760 "asmparse.cpp.tab.c" +#line 7964 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 7766 "asmparse.cpp.tab.c" +#line 7970 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 7772 "asmparse.cpp.tab.c" +#line 7976 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 7778 "asmparse.cpp.tab.c" +#line 7982 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 7784 "asmparse.cpp.tab.c" +#line 7988 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 7790 "asmparse.cpp.tab.c" +#line 7994 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 7796 "asmparse.cpp.tab.c" +#line 8000 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 7802 "asmparse.cpp.tab.c" +#line 8006 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 7808 "asmparse.cpp.tab.c" +#line 8012 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7814 "asmparse.cpp.tab.c" +#line 8018 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 7820 "asmparse.cpp.tab.c" +#line 8024 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 7826 "asmparse.cpp.tab.c" +#line 8030 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 7832 "asmparse.cpp.tab.c" +#line 8036 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 7838 "asmparse.cpp.tab.c" +#line 8042 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 7844 "asmparse.cpp.tab.c" +#line 8048 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 7850 "asmparse.cpp.tab.c" +#line 8054 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 7856 "asmparse.cpp.tab.c" +#line 8060 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 7862 "asmparse.cpp.tab.c" +#line 8066 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 7868 "asmparse.cpp.tab.c" +#line 8072 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 7874 "asmparse.cpp.tab.c" +#line 8078 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 7880 "asmparse.cpp.tab.c" +#line 8084 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 7886 "asmparse.cpp.tab.c" +#line 8090 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 7892 "asmparse.cpp.tab.c" +#line 8096 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 7898 "asmparse.cpp.tab.c" +#line 8102 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 7904 "asmparse.cpp.tab.c" +#line 8108 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 7910 "asmparse.cpp.tab.c" +#line 8114 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 7916 "asmparse.cpp.tab.c" +#line 8120 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 7922 "asmparse.cpp.tab.c" +#line 8126 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 7928 "asmparse.cpp.tab.c" +#line 8132 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 7934 "asmparse.cpp.tab.c" +#line 8138 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 7940 "asmparse.cpp.tab.c" +#line 8144 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 7947 "asmparse.cpp.tab.c" +#line 8151 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 7953 "asmparse.cpp.tab.c" +#line 8157 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 7959 "asmparse.cpp.tab.c" +#line 8163 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 7965 "asmparse.cpp.tab.c" +#line 8169 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 7972 "asmparse.cpp.tab.c" +#line 8176 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -7976,25 +8180,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 7980 "asmparse.cpp.tab.c" +#line 8184 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 7986 "asmparse.cpp.tab.c" +#line 8190 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 7992 "asmparse.cpp.tab.c" +#line 8196 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 7998 "asmparse.cpp.tab.c" +#line 8202 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8009,7 +8213,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8013 "asmparse.cpp.tab.c" +#line 8217 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8024,20 +8228,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8028 "asmparse.cpp.tab.c" +#line 8232 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8035 "asmparse.cpp.tab.c" +#line 8239 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8041 "asmparse.cpp.tab.c" +#line 8245 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8048,7 +8252,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8052 "asmparse.cpp.tab.c" +#line 8256 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8058,7 +8262,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8062 "asmparse.cpp.tab.c" +#line 8266 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8069,19 +8273,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8073 "asmparse.cpp.tab.c" +#line 8277 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8079 "asmparse.cpp.tab.c" +#line 8283 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8085 "asmparse.cpp.tab.c" +#line 8289 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8104,96 +8308,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8108 "asmparse.cpp.tab.c" +#line 8312 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8114 "asmparse.cpp.tab.c" +#line 8318 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8120 "asmparse.cpp.tab.c" +#line 8324 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8126 "asmparse.cpp.tab.c" +#line 8330 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8132 "asmparse.cpp.tab.c" +#line 8336 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8139 "asmparse.cpp.tab.c" +#line 8343 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8146 "asmparse.cpp.tab.c" +#line 8350 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8152 "asmparse.cpp.tab.c" +#line 8356 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8158 "asmparse.cpp.tab.c" +#line 8362 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8164 "asmparse.cpp.tab.c" +#line 8368 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8170 "asmparse.cpp.tab.c" +#line 8374 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8176 "asmparse.cpp.tab.c" +#line 8380 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8183 "asmparse.cpp.tab.c" +#line 8387 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8190 "asmparse.cpp.tab.c" +#line 8394 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8197 "asmparse.cpp.tab.c" +#line 8401 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8201,70 +8405,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8205 "asmparse.cpp.tab.c" +#line 8409 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8212 "asmparse.cpp.tab.c" +#line 8416 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8219 "asmparse.cpp.tab.c" +#line 8423 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8225 "asmparse.cpp.tab.c" +#line 8429 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8231 "asmparse.cpp.tab.c" +#line 8435 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8238 "asmparse.cpp.tab.c" +#line 8442 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8244 "asmparse.cpp.tab.c" +#line 8448 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8250 "asmparse.cpp.tab.c" +#line 8454 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8256 "asmparse.cpp.tab.c" +#line 8460 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8262 "asmparse.cpp.tab.c" +#line 8466 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8268 "asmparse.cpp.tab.c" +#line 8472 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8272,25 +8476,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8276 "asmparse.cpp.tab.c" +#line 8480 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8282 "asmparse.cpp.tab.c" +#line 8486 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8288 "asmparse.cpp.tab.c" +#line 8492 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8294 "asmparse.cpp.tab.c" +#line 8498 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8301,7 +8505,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8305 "asmparse.cpp.tab.c" +#line 8509 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8312,7 +8516,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8316 "asmparse.cpp.tab.c" +#line 8520 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8323,7 +8527,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8327 "asmparse.cpp.tab.c" +#line 8531 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8334,7 +8538,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8338 "asmparse.cpp.tab.c" +#line 8542 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8346,7 +8550,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8350 "asmparse.cpp.tab.c" +#line 8554 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8358,43 +8562,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8362 "asmparse.cpp.tab.c" +#line 8566 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8368 "asmparse.cpp.tab.c" +#line 8572 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8374 "asmparse.cpp.tab.c" +#line 8578 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8380 "asmparse.cpp.tab.c" +#line 8584 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8386 "asmparse.cpp.tab.c" +#line 8590 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8392 "asmparse.cpp.tab.c" +#line 8596 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8398 "asmparse.cpp.tab.c" +#line 8602 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8402,227 +8606,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8406 "asmparse.cpp.tab.c" +#line 8610 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8413 "asmparse.cpp.tab.c" +#line 8617 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8420 "asmparse.cpp.tab.c" +#line 8624 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8427 "asmparse.cpp.tab.c" +#line 8631 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8434 "asmparse.cpp.tab.c" +#line 8638 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8441 "asmparse.cpp.tab.c" +#line 8645 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8448 "asmparse.cpp.tab.c" +#line 8652 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8455 "asmparse.cpp.tab.c" +#line 8659 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8462 "asmparse.cpp.tab.c" +#line 8666 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8469 "asmparse.cpp.tab.c" +#line 8673 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8476 "asmparse.cpp.tab.c" +#line 8680 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8483 "asmparse.cpp.tab.c" +#line 8687 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8490 "asmparse.cpp.tab.c" +#line 8694 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8497 "asmparse.cpp.tab.c" +#line 8701 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8504 "asmparse.cpp.tab.c" +#line 8708 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8511 "asmparse.cpp.tab.c" +#line 8715 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8518 "asmparse.cpp.tab.c" +#line 8722 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8525 "asmparse.cpp.tab.c" +#line 8729 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8532 "asmparse.cpp.tab.c" +#line 8736 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8538 "asmparse.cpp.tab.c" +#line 8742 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8544 "asmparse.cpp.tab.c" +#line 8748 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8550 "asmparse.cpp.tab.c" +#line 8754 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8556 "asmparse.cpp.tab.c" +#line 8760 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8562 "asmparse.cpp.tab.c" +#line 8766 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8568 "asmparse.cpp.tab.c" +#line 8772 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8574 "asmparse.cpp.tab.c" +#line 8778 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8581 "asmparse.cpp.tab.c" +#line 8785 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8587 "asmparse.cpp.tab.c" +#line 8791 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8593 "asmparse.cpp.tab.c" +#line 8797 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8600 "asmparse.cpp.tab.c" +#line 8804 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8607 "asmparse.cpp.tab.c" +#line 8811 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8614 "asmparse.cpp.tab.c" +#line 8818 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8620 "asmparse.cpp.tab.c" +#line 8824 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8626 "asmparse.cpp.tab.c" +#line 8830 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -8630,7 +8834,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8634 "asmparse.cpp.tab.c" +#line 8838 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -8638,7 +8842,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8642 "asmparse.cpp.tab.c" +#line 8846 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -8646,7 +8850,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8650 "asmparse.cpp.tab.c" +#line 8854 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -8654,7 +8858,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8658 "asmparse.cpp.tab.c" +#line 8862 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -8662,7 +8866,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8666 "asmparse.cpp.tab.c" +#line 8870 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -8670,7 +8874,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8674 "asmparse.cpp.tab.c" +#line 8878 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -8678,7 +8882,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8682 "asmparse.cpp.tab.c" +#line 8886 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -8686,7 +8890,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8690 "asmparse.cpp.tab.c" +#line 8894 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -8694,7 +8898,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8698 "asmparse.cpp.tab.c" +#line 8902 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -8702,7 +8906,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8706 "asmparse.cpp.tab.c" +#line 8910 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -8710,7 +8914,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8714 "asmparse.cpp.tab.c" +#line 8918 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -8718,7 +8922,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8722 "asmparse.cpp.tab.c" +#line 8926 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -8726,7 +8930,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8730 "asmparse.cpp.tab.c" +#line 8934 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -8734,7 +8938,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8738 "asmparse.cpp.tab.c" +#line 8942 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -8742,7 +8946,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8746 "asmparse.cpp.tab.c" +#line 8950 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -8750,7 +8954,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8754 "asmparse.cpp.tab.c" +#line 8958 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -8758,7 +8962,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8762 "asmparse.cpp.tab.c" +#line 8966 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -8766,7 +8970,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8770 "asmparse.cpp.tab.c" +#line 8974 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -8774,166 +8978,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8778 "asmparse.cpp.tab.c" +#line 8982 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8784 "asmparse.cpp.tab.c" +#line 8988 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 8791 "asmparse.cpp.tab.c" +#line 8995 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 8798 "asmparse.cpp.tab.c" +#line 9002 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8804 "asmparse.cpp.tab.c" +#line 9008 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 8811 "asmparse.cpp.tab.c" +#line 9015 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8818 "asmparse.cpp.tab.c" +#line 9022 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8824 "asmparse.cpp.tab.c" +#line 9028 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8831 "asmparse.cpp.tab.c" +#line 9035 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8837 "asmparse.cpp.tab.c" +#line 9041 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 8843 "asmparse.cpp.tab.c" +#line 9047 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8849 "asmparse.cpp.tab.c" +#line 9053 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 8855 "asmparse.cpp.tab.c" +#line 9059 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8861 "asmparse.cpp.tab.c" +#line 9065 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 8867 "asmparse.cpp.tab.c" +#line 9071 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8873 "asmparse.cpp.tab.c" +#line 9077 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 8880 "asmparse.cpp.tab.c" +#line 9084 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8886 "asmparse.cpp.tab.c" +#line 9090 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 8892 "asmparse.cpp.tab.c" +#line 9096 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 8899 "asmparse.cpp.tab.c" +#line 9103 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8905 "asmparse.cpp.tab.c" +#line 9109 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 8911 "asmparse.cpp.tab.c" +#line 9115 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 8918 "asmparse.cpp.tab.c" +#line 9122 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 8925 "asmparse.cpp.tab.c" +#line 9129 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8931 "asmparse.cpp.tab.c" +#line 9135 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 8937 "asmparse.cpp.tab.c" +#line 9141 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -8942,43 +9146,43 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 8946 "asmparse.cpp.tab.c" +#line 9150 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8952 "asmparse.cpp.tab.c" +#line 9156 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8958 "asmparse.cpp.tab.c" +#line 9162 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8964 "asmparse.cpp.tab.c" +#line 9168 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8970 "asmparse.cpp.tab.c" +#line 9174 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8976 "asmparse.cpp.tab.c" +#line 9180 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8982 "asmparse.cpp.tab.c" +#line 9186 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) @@ -8989,91 +9193,91 @@ case 502: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 8993 "asmparse.cpp.tab.c" +#line 9197 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) #line 1354 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 8999 "asmparse.cpp.tab.c" +#line 9203 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9005 "asmparse.cpp.tab.c" +#line 9209 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9011 "asmparse.cpp.tab.c" +#line 9215 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9017 "asmparse.cpp.tab.c" +#line 9221 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9023 "asmparse.cpp.tab.c" +#line 9227 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9029 "asmparse.cpp.tab.c" +#line 9233 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9035 "asmparse.cpp.tab.c" +#line 9239 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1376 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9041 "asmparse.cpp.tab.c" +#line 9245 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1377 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9047 "asmparse.cpp.tab.c" +#line 9251 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1378 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9053 "asmparse.cpp.tab.c" +#line 9257 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9059 "asmparse.cpp.tab.c" +#line 9263 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9065 "asmparse.cpp.tab.c" +#line 9269 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9071 "asmparse.cpp.tab.c" +#line 9275 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) #line 1382 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9077 "asmparse.cpp.tab.c" +#line 9281 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) @@ -9087,19 +9291,19 @@ case 517: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9091 "asmparse.cpp.tab.c" +#line 9295 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) #line 1392 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9097 "asmparse.cpp.tab.c" +#line 9301 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) #line 1393 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9103 "asmparse.cpp.tab.c" +#line 9307 "asmparse.cpp.tab.c" break; case 520: if (!yytrial) @@ -9110,7 +9314,7 @@ case 520: PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9114 "asmparse.cpp.tab.c" +#line 9318 "asmparse.cpp.tab.c" break; case 521: if (!yytrial) @@ -9122,7 +9326,7 @@ case 521: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9126 "asmparse.cpp.tab.c" +#line 9330 "asmparse.cpp.tab.c" break; case 522: if (!yytrial) @@ -9134,7 +9338,7 @@ case 522: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9138 "asmparse.cpp.tab.c" +#line 9342 "asmparse.cpp.tab.c" break; case 523: if (!yytrial) @@ -9145,7 +9349,7 @@ case 523: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9149 "asmparse.cpp.tab.c" +#line 9353 "asmparse.cpp.tab.c" break; case 524: if (!yytrial) @@ -9156,7 +9360,7 @@ case 524: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9160 "asmparse.cpp.tab.c" +#line 9364 "asmparse.cpp.tab.c" break; case 525: if (!yytrial) @@ -9167,7 +9371,7 @@ case 525: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9171 "asmparse.cpp.tab.c" +#line 9375 "asmparse.cpp.tab.c" break; case 526: if (!yytrial) @@ -9176,25 +9380,25 @@ case 526: PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9180 "asmparse.cpp.tab.c" +#line 9384 "asmparse.cpp.tab.c" break; case 527: if (!yytrial) #line 1439 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9186 "asmparse.cpp.tab.c" +#line 9390 "asmparse.cpp.tab.c" break; case 528: if (!yytrial) #line 1441 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9192 "asmparse.cpp.tab.c" +#line 9396 "asmparse.cpp.tab.c" break; case 529: if (!yytrial) #line 1443 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9198 "asmparse.cpp.tab.c" +#line 9402 "asmparse.cpp.tab.c" break; case 530: if (!yytrial) @@ -9202,7 +9406,7 @@ case 530: { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9206 "asmparse.cpp.tab.c" +#line 9410 "asmparse.cpp.tab.c" break; case 531: if (!yytrial) @@ -9212,163 +9416,163 @@ case 531: PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9216 "asmparse.cpp.tab.c" +#line 9420 "asmparse.cpp.tab.c" break; case 532: if (!yytrial) #line 1454 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9222 "asmparse.cpp.tab.c" +#line 9426 "asmparse.cpp.tab.c" break; case 533: if (!yytrial) #line 1457 "asmparse.y" { yyval.labels = 0; } -#line 9228 "asmparse.cpp.tab.c" +#line 9432 "asmparse.cpp.tab.c" break; case 534: if (!yytrial) #line 1458 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9234 "asmparse.cpp.tab.c" +#line 9438 "asmparse.cpp.tab.c" break; case 535: if (!yytrial) #line 1459 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9240 "asmparse.cpp.tab.c" +#line 9444 "asmparse.cpp.tab.c" break; case 536: if (!yytrial) #line 1460 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9246 "asmparse.cpp.tab.c" +#line 9450 "asmparse.cpp.tab.c" break; case 537: if (!yytrial) #line 1461 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9252 "asmparse.cpp.tab.c" +#line 9456 "asmparse.cpp.tab.c" break; case 538: if (!yytrial) #line 1465 "asmparse.y" { yyval.binstr = NULL; } -#line 9258 "asmparse.cpp.tab.c" +#line 9462 "asmparse.cpp.tab.c" break; case 539: if (!yytrial) #line 1466 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9264 "asmparse.cpp.tab.c" +#line 9468 "asmparse.cpp.tab.c" break; case 540: if (!yytrial) #line 1469 "asmparse.y" { yyval.binstr = NULL; } -#line 9270 "asmparse.cpp.tab.c" +#line 9474 "asmparse.cpp.tab.c" break; case 541: if (!yytrial) #line 1470 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9276 "asmparse.cpp.tab.c" +#line 9480 "asmparse.cpp.tab.c" break; case 542: if (!yytrial) #line 1473 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9282 "asmparse.cpp.tab.c" +#line 9486 "asmparse.cpp.tab.c" break; case 543: if (!yytrial) #line 1474 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9288 "asmparse.cpp.tab.c" +#line 9492 "asmparse.cpp.tab.c" break; case 544: if (!yytrial) #line 1478 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9294 "asmparse.cpp.tab.c" +#line 9498 "asmparse.cpp.tab.c" break; case 545: if (!yytrial) #line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9300 "asmparse.cpp.tab.c" +#line 9504 "asmparse.cpp.tab.c" break; case 546: if (!yytrial) #line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9306 "asmparse.cpp.tab.c" +#line 9510 "asmparse.cpp.tab.c" break; case 547: if (!yytrial) #line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9312 "asmparse.cpp.tab.c" +#line 9516 "asmparse.cpp.tab.c" break; case 548: if (!yytrial) #line 1486 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9318 "asmparse.cpp.tab.c" +#line 9522 "asmparse.cpp.tab.c" break; case 549: if (!yytrial) #line 1487 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9324 "asmparse.cpp.tab.c" +#line 9528 "asmparse.cpp.tab.c" break; case 550: if (!yytrial) #line 1488 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9330 "asmparse.cpp.tab.c" +#line 9534 "asmparse.cpp.tab.c" break; case 551: if (!yytrial) #line 1492 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9336 "asmparse.cpp.tab.c" +#line 9540 "asmparse.cpp.tab.c" break; case 552: if (!yytrial) #line 1493 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9342 "asmparse.cpp.tab.c" +#line 9546 "asmparse.cpp.tab.c" break; case 553: if (!yytrial) #line 1494 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9348 "asmparse.cpp.tab.c" +#line 9552 "asmparse.cpp.tab.c" break; case 554: if (!yytrial) #line 1495 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9354 "asmparse.cpp.tab.c" +#line 9558 "asmparse.cpp.tab.c" break; case 555: if (!yytrial) #line 1496 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9360 "asmparse.cpp.tab.c" +#line 9564 "asmparse.cpp.tab.c" break; case 556: if (!yytrial) #line 1497 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9366 "asmparse.cpp.tab.c" +#line 9570 "asmparse.cpp.tab.c" break; case 557: if (!yytrial) #line 1498 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9372 "asmparse.cpp.tab.c" +#line 9576 "asmparse.cpp.tab.c" break; case 558: if (!yytrial) @@ -9376,7 +9580,7 @@ case 558: { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9380 "asmparse.cpp.tab.c" +#line 9584 "asmparse.cpp.tab.c" break; case 559: if (!yytrial) @@ -9387,7 +9591,7 @@ case 559: PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9391 "asmparse.cpp.tab.c" +#line 9595 "asmparse.cpp.tab.c" break; case 560: if (!yytrial) @@ -9397,49 +9601,49 @@ case 560: else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9401 "asmparse.cpp.tab.c" +#line 9605 "asmparse.cpp.tab.c" break; case 561: if (!yytrial) #line 1515 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9407 "asmparse.cpp.tab.c" +#line 9611 "asmparse.cpp.tab.c" break; case 562: if (!yytrial) #line 1516 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9413 "asmparse.cpp.tab.c" +#line 9617 "asmparse.cpp.tab.c" break; case 563: if (!yytrial) #line 1519 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9419 "asmparse.cpp.tab.c" +#line 9623 "asmparse.cpp.tab.c" break; case 564: if (!yytrial) #line 1520 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9425 "asmparse.cpp.tab.c" +#line 9629 "asmparse.cpp.tab.c" break; case 565: if (!yytrial) #line 1521 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9431 "asmparse.cpp.tab.c" +#line 9635 "asmparse.cpp.tab.c" break; case 566: if (!yytrial) #line 1522 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9437 "asmparse.cpp.tab.c" +#line 9641 "asmparse.cpp.tab.c" break; case 567: if (!yytrial) #line 1526 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9443 "asmparse.cpp.tab.c" +#line 9647 "asmparse.cpp.tab.c" break; case 568: if (!yytrial) @@ -9450,7 +9654,7 @@ case 568: corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9454 "asmparse.cpp.tab.c" +#line 9658 "asmparse.cpp.tab.c" break; case 569: if (!yytrial) @@ -9460,158 +9664,158 @@ case 569: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9464 "asmparse.cpp.tab.c" +#line 9668 "asmparse.cpp.tab.c" break; case 570: if (!yytrial) #line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9471 "asmparse.cpp.tab.c" +#line 9675 "asmparse.cpp.tab.c" break; case 571: if (!yytrial) #line 1543 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9478 "asmparse.cpp.tab.c" +#line 9682 "asmparse.cpp.tab.c" break; case 572: if (!yytrial) #line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9485 "asmparse.cpp.tab.c" +#line 9689 "asmparse.cpp.tab.c" break; case 573: if (!yytrial) #line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9491 "asmparse.cpp.tab.c" +#line 9695 "asmparse.cpp.tab.c" break; case 574: if (!yytrial) #line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9498 "asmparse.cpp.tab.c" +#line 9702 "asmparse.cpp.tab.c" break; case 575: if (!yytrial) #line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9505 "asmparse.cpp.tab.c" +#line 9709 "asmparse.cpp.tab.c" break; case 576: if (!yytrial) #line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9511 "asmparse.cpp.tab.c" +#line 9715 "asmparse.cpp.tab.c" break; case 577: if (!yytrial) #line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9517 "asmparse.cpp.tab.c" +#line 9721 "asmparse.cpp.tab.c" break; case 578: if (!yytrial) #line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9523 "asmparse.cpp.tab.c" +#line 9727 "asmparse.cpp.tab.c" break; case 579: if (!yytrial) #line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9529 "asmparse.cpp.tab.c" +#line 9733 "asmparse.cpp.tab.c" break; case 580: if (!yytrial) #line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9535 "asmparse.cpp.tab.c" +#line 9739 "asmparse.cpp.tab.c" break; case 581: if (!yytrial) #line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9541 "asmparse.cpp.tab.c" +#line 9745 "asmparse.cpp.tab.c" break; case 582: if (!yytrial) #line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9547 "asmparse.cpp.tab.c" +#line 9751 "asmparse.cpp.tab.c" break; case 583: if (!yytrial) #line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9553 "asmparse.cpp.tab.c" +#line 9757 "asmparse.cpp.tab.c" break; case 584: if (!yytrial) #line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9559 "asmparse.cpp.tab.c" +#line 9763 "asmparse.cpp.tab.c" break; case 585: if (!yytrial) #line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9565 "asmparse.cpp.tab.c" +#line 9769 "asmparse.cpp.tab.c" break; case 586: if (!yytrial) #line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9571 "asmparse.cpp.tab.c" +#line 9775 "asmparse.cpp.tab.c" break; case 587: if (!yytrial) #line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9577 "asmparse.cpp.tab.c" +#line 9781 "asmparse.cpp.tab.c" break; case 588: if (!yytrial) #line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9583 "asmparse.cpp.tab.c" +#line 9787 "asmparse.cpp.tab.c" break; case 589: if (!yytrial) #line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9589 "asmparse.cpp.tab.c" +#line 9793 "asmparse.cpp.tab.c" break; case 590: if (!yytrial) #line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9595 "asmparse.cpp.tab.c" +#line 9799 "asmparse.cpp.tab.c" break; case 591: if (!yytrial) #line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9601 "asmparse.cpp.tab.c" +#line 9805 "asmparse.cpp.tab.c" break; case 592: if (!yytrial) #line 1568 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 9608 "asmparse.cpp.tab.c" +#line 9812 "asmparse.cpp.tab.c" break; case 593: if (!yytrial) #line 1570 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9615 "asmparse.cpp.tab.c" +#line 9819 "asmparse.cpp.tab.c" break; case 594: if (!yytrial) @@ -9621,7 +9825,7 @@ case 594: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 9625 "asmparse.cpp.tab.c" +#line 9829 "asmparse.cpp.tab.c" break; case 595: if (!yytrial) @@ -9631,7 +9835,7 @@ case 595: corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9635 "asmparse.cpp.tab.c" +#line 9839 "asmparse.cpp.tab.c" break; case 596: if (!yytrial) @@ -9639,79 +9843,79 @@ case 596: { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9643 "asmparse.cpp.tab.c" +#line 9847 "asmparse.cpp.tab.c" break; case 597: if (!yytrial) #line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9650 "asmparse.cpp.tab.c" +#line 9854 "asmparse.cpp.tab.c" break; case 598: if (!yytrial) #line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9657 "asmparse.cpp.tab.c" +#line 9861 "asmparse.cpp.tab.c" break; case 599: if (!yytrial) #line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9663 "asmparse.cpp.tab.c" +#line 9867 "asmparse.cpp.tab.c" break; case 600: if (!yytrial) #line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9669 "asmparse.cpp.tab.c" +#line 9873 "asmparse.cpp.tab.c" break; case 601: if (!yytrial) #line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9675 "asmparse.cpp.tab.c" +#line 9879 "asmparse.cpp.tab.c" break; case 602: if (!yytrial) #line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9681 "asmparse.cpp.tab.c" +#line 9885 "asmparse.cpp.tab.c" break; case 603: if (!yytrial) #line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9688 "asmparse.cpp.tab.c" +#line 9892 "asmparse.cpp.tab.c" break; case 604: if (!yytrial) #line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9695 "asmparse.cpp.tab.c" +#line 9899 "asmparse.cpp.tab.c" break; case 605: if (!yytrial) #line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9702 "asmparse.cpp.tab.c" +#line 9906 "asmparse.cpp.tab.c" break; case 606: if (!yytrial) #line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9708 "asmparse.cpp.tab.c" +#line 9912 "asmparse.cpp.tab.c" break; case 607: if (!yytrial) #line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9715 "asmparse.cpp.tab.c" +#line 9919 "asmparse.cpp.tab.c" break; case 608: if (!yytrial) @@ -9719,7 +9923,7 @@ case 608: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 9723 "asmparse.cpp.tab.c" +#line 9927 "asmparse.cpp.tab.c" break; case 609: if (!yytrial) @@ -9727,386 +9931,386 @@ case 609: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9731 "asmparse.cpp.tab.c" +#line 9935 "asmparse.cpp.tab.c" break; case 610: if (!yytrial) #line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9737 "asmparse.cpp.tab.c" +#line 9941 "asmparse.cpp.tab.c" break; case 611: if (!yytrial) #line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9743 "asmparse.cpp.tab.c" +#line 9947 "asmparse.cpp.tab.c" break; case 612: if (!yytrial) #line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9749 "asmparse.cpp.tab.c" +#line 9953 "asmparse.cpp.tab.c" break; case 613: if (!yytrial) #line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 9756 "asmparse.cpp.tab.c" +#line 9960 "asmparse.cpp.tab.c" break; case 614: if (!yytrial) #line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 9762 "asmparse.cpp.tab.c" +#line 9966 "asmparse.cpp.tab.c" break; case 615: if (!yytrial) #line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 9768 "asmparse.cpp.tab.c" +#line 9972 "asmparse.cpp.tab.c" break; case 616: if (!yytrial) #line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 9774 "asmparse.cpp.tab.c" +#line 9978 "asmparse.cpp.tab.c" break; case 617: if (!yytrial) #line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 9780 "asmparse.cpp.tab.c" +#line 9984 "asmparse.cpp.tab.c" break; case 618: if (!yytrial) #line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 9786 "asmparse.cpp.tab.c" +#line 9990 "asmparse.cpp.tab.c" break; case 619: if (!yytrial) #line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 9792 "asmparse.cpp.tab.c" +#line 9996 "asmparse.cpp.tab.c" break; case 620: if (!yytrial) #line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 9798 "asmparse.cpp.tab.c" +#line 10002 "asmparse.cpp.tab.c" break; case 621: if (!yytrial) #line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 9804 "asmparse.cpp.tab.c" +#line 10008 "asmparse.cpp.tab.c" break; case 622: if (!yytrial) #line 1624 "asmparse.y" { yyval.int32 = -1; } -#line 9810 "asmparse.cpp.tab.c" +#line 10014 "asmparse.cpp.tab.c" break; case 623: if (!yytrial) #line 1625 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 9816 "asmparse.cpp.tab.c" +#line 10020 "asmparse.cpp.tab.c" break; case 624: if (!yytrial) #line 1628 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 9822 "asmparse.cpp.tab.c" +#line 10026 "asmparse.cpp.tab.c" break; case 625: if (!yytrial) #line 1629 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 9828 "asmparse.cpp.tab.c" +#line 10032 "asmparse.cpp.tab.c" break; case 626: if (!yytrial) #line 1630 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 9834 "asmparse.cpp.tab.c" +#line 10038 "asmparse.cpp.tab.c" break; case 627: if (!yytrial) #line 1631 "asmparse.y" { yyval.int32 = VT_CY; } -#line 9840 "asmparse.cpp.tab.c" +#line 10044 "asmparse.cpp.tab.c" break; case 628: if (!yytrial) #line 1632 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 9846 "asmparse.cpp.tab.c" +#line 10050 "asmparse.cpp.tab.c" break; case 629: if (!yytrial) #line 1633 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 9852 "asmparse.cpp.tab.c" +#line 10056 "asmparse.cpp.tab.c" break; case 630: if (!yytrial) #line 1634 "asmparse.y" { yyval.int32 = VT_I1; } -#line 9858 "asmparse.cpp.tab.c" +#line 10062 "asmparse.cpp.tab.c" break; case 631: if (!yytrial) #line 1635 "asmparse.y" { yyval.int32 = VT_I2; } -#line 9864 "asmparse.cpp.tab.c" +#line 10068 "asmparse.cpp.tab.c" break; case 632: if (!yytrial) #line 1636 "asmparse.y" { yyval.int32 = VT_I4; } -#line 9870 "asmparse.cpp.tab.c" +#line 10074 "asmparse.cpp.tab.c" break; case 633: if (!yytrial) #line 1637 "asmparse.y" { yyval.int32 = VT_I8; } -#line 9876 "asmparse.cpp.tab.c" +#line 10080 "asmparse.cpp.tab.c" break; case 634: if (!yytrial) #line 1638 "asmparse.y" { yyval.int32 = VT_R4; } -#line 9882 "asmparse.cpp.tab.c" +#line 10086 "asmparse.cpp.tab.c" break; case 635: if (!yytrial) #line 1639 "asmparse.y" { yyval.int32 = VT_R8; } -#line 9888 "asmparse.cpp.tab.c" +#line 10092 "asmparse.cpp.tab.c" break; case 636: if (!yytrial) #line 1640 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 9894 "asmparse.cpp.tab.c" +#line 10098 "asmparse.cpp.tab.c" break; case 637: if (!yytrial) #line 1641 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 9900 "asmparse.cpp.tab.c" +#line 10104 "asmparse.cpp.tab.c" break; case 638: if (!yytrial) #line 1642 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 9906 "asmparse.cpp.tab.c" +#line 10110 "asmparse.cpp.tab.c" break; case 639: if (!yytrial) #line 1643 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 9912 "asmparse.cpp.tab.c" +#line 10116 "asmparse.cpp.tab.c" break; case 640: if (!yytrial) #line 1644 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 9918 "asmparse.cpp.tab.c" +#line 10122 "asmparse.cpp.tab.c" break; case 641: if (!yytrial) #line 1645 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 9924 "asmparse.cpp.tab.c" +#line 10128 "asmparse.cpp.tab.c" break; case 642: if (!yytrial) #line 1646 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 9930 "asmparse.cpp.tab.c" +#line 10134 "asmparse.cpp.tab.c" break; case 643: if (!yytrial) #line 1647 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 9936 "asmparse.cpp.tab.c" +#line 10140 "asmparse.cpp.tab.c" break; case 644: if (!yytrial) #line 1648 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 9942 "asmparse.cpp.tab.c" +#line 10146 "asmparse.cpp.tab.c" break; case 645: if (!yytrial) #line 1649 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 9948 "asmparse.cpp.tab.c" +#line 10152 "asmparse.cpp.tab.c" break; case 646: if (!yytrial) #line 1650 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 9954 "asmparse.cpp.tab.c" +#line 10158 "asmparse.cpp.tab.c" break; case 647: if (!yytrial) #line 1651 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 9960 "asmparse.cpp.tab.c" +#line 10164 "asmparse.cpp.tab.c" break; case 648: if (!yytrial) #line 1652 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 9966 "asmparse.cpp.tab.c" +#line 10170 "asmparse.cpp.tab.c" break; case 649: if (!yytrial) #line 1653 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 9972 "asmparse.cpp.tab.c" +#line 10176 "asmparse.cpp.tab.c" break; case 650: if (!yytrial) #line 1654 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 9978 "asmparse.cpp.tab.c" +#line 10182 "asmparse.cpp.tab.c" break; case 651: if (!yytrial) #line 1655 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 9984 "asmparse.cpp.tab.c" +#line 10188 "asmparse.cpp.tab.c" break; case 652: if (!yytrial) #line 1656 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 9990 "asmparse.cpp.tab.c" +#line 10194 "asmparse.cpp.tab.c" break; case 653: if (!yytrial) #line 1657 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 9996 "asmparse.cpp.tab.c" +#line 10200 "asmparse.cpp.tab.c" break; case 654: if (!yytrial) #line 1658 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10002 "asmparse.cpp.tab.c" +#line 10206 "asmparse.cpp.tab.c" break; case 655: if (!yytrial) #line 1659 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10008 "asmparse.cpp.tab.c" +#line 10212 "asmparse.cpp.tab.c" break; case 656: if (!yytrial) #line 1660 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10014 "asmparse.cpp.tab.c" +#line 10218 "asmparse.cpp.tab.c" break; case 657: if (!yytrial) #line 1661 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10020 "asmparse.cpp.tab.c" +#line 10224 "asmparse.cpp.tab.c" break; case 658: if (!yytrial) #line 1662 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10026 "asmparse.cpp.tab.c" +#line 10230 "asmparse.cpp.tab.c" break; case 659: if (!yytrial) #line 1663 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10032 "asmparse.cpp.tab.c" +#line 10236 "asmparse.cpp.tab.c" break; case 660: if (!yytrial) #line 1664 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10038 "asmparse.cpp.tab.c" +#line 10242 "asmparse.cpp.tab.c" break; case 661: if (!yytrial) #line 1665 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10044 "asmparse.cpp.tab.c" +#line 10248 "asmparse.cpp.tab.c" break; case 662: if (!yytrial) #line 1666 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10050 "asmparse.cpp.tab.c" +#line 10254 "asmparse.cpp.tab.c" break; case 663: if (!yytrial) #line 1667 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10056 "asmparse.cpp.tab.c" +#line 10260 "asmparse.cpp.tab.c" break; case 664: if (!yytrial) #line 1668 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10062 "asmparse.cpp.tab.c" +#line 10266 "asmparse.cpp.tab.c" break; case 665: if (!yytrial) #line 1669 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10068 "asmparse.cpp.tab.c" +#line 10272 "asmparse.cpp.tab.c" break; case 666: if (!yytrial) #line 1670 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10074 "asmparse.cpp.tab.c" +#line 10278 "asmparse.cpp.tab.c" break; case 667: if (!yytrial) #line 1671 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10080 "asmparse.cpp.tab.c" +#line 10284 "asmparse.cpp.tab.c" break; case 668: if (!yytrial) #line 1672 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10086 "asmparse.cpp.tab.c" +#line 10290 "asmparse.cpp.tab.c" break; case 669: if (!yytrial) #line 1673 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10092 "asmparse.cpp.tab.c" +#line 10296 "asmparse.cpp.tab.c" break; case 670: if (!yytrial) #line 1674 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10098 "asmparse.cpp.tab.c" +#line 10302 "asmparse.cpp.tab.c" break; case 671: if (!yytrial) #line 1675 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10104 "asmparse.cpp.tab.c" +#line 10308 "asmparse.cpp.tab.c" break; case 672: if (!yytrial) #line 1676 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10110 "asmparse.cpp.tab.c" +#line 10314 "asmparse.cpp.tab.c" break; case 673: if (!yytrial) @@ -10117,84 +10321,90 @@ case 673: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10121 "asmparse.cpp.tab.c" +#line 10325 "asmparse.cpp.tab.c" break; case 674: if (!yytrial) #line 1686 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10127 "asmparse.cpp.tab.c" +#line 10331 "asmparse.cpp.tab.c" break; case 675: if (!yytrial) #line 1687 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10133 "asmparse.cpp.tab.c" +#line 10337 "asmparse.cpp.tab.c" break; case 676: if (!yytrial) #line 1688 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10139 "asmparse.cpp.tab.c" +#line 10343 "asmparse.cpp.tab.c" break; case 677: if (!yytrial) #line 1689 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10145 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } +#line 10349 "asmparse.cpp.tab.c" break; case 678: if (!yytrial) #line 1690 "asmparse.y" -{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10151 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10355 "asmparse.cpp.tab.c" break; case 679: if (!yytrial) #line 1691 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10157 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } +#line 10361 "asmparse.cpp.tab.c" break; case 680: if (!yytrial) #line 1692 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10163 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 10367 "asmparse.cpp.tab.c" break; case 681: if (!yytrial) #line 1693 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10169 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 10373 "asmparse.cpp.tab.c" break; case 682: if (!yytrial) #line 1694 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 10379 "asmparse.cpp.tab.c" +break; +case 683: + if (!yytrial) +#line 1695 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10176 "asmparse.cpp.tab.c" +#line 10386 "asmparse.cpp.tab.c" break; -case 683: +case 684: if (!yytrial) -#line 1696 "asmparse.y" +#line 1697 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10183 "asmparse.cpp.tab.c" +#line 10393 "asmparse.cpp.tab.c" break; -case 684: +case 685: if (!yytrial) -#line 1699 "asmparse.y" +#line 1700 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10194 "asmparse.cpp.tab.c" +#line 10404 "asmparse.cpp.tab.c" break; -case 685: +case 686: if (!yytrial) -#line 1705 "asmparse.y" +#line 1706 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10202,33 +10412,69 @@ case 685: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10206 "asmparse.cpp.tab.c" +#line 10416 "asmparse.cpp.tab.c" break; -case 686: +case 687: + if (!yytrial) +#line 1713 "asmparse.y" +{ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); + } +#line 10424 "asmparse.cpp.tab.c" +break; +case 688: if (!yytrial) -#line 1712 "asmparse.y" +#line 1716 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10217 "asmparse.cpp.tab.c" +#line 10435 "asmparse.cpp.tab.c" break; -case 687: +case 689: + if (!yytrial) +#line 1722 "asmparse.y" +{ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); + } +#line 10443 "asmparse.cpp.tab.c" +break; +case 690: if (!yytrial) -#line 1718 "asmparse.y" +#line 1725 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10228 "asmparse.cpp.tab.c" +#line 10454 "asmparse.cpp.tab.c" break; -case 688: +case 691: + if (!yytrial) +#line 1731 "asmparse.y" +{ int eltype = ELEMENT_TYPE_MCVAR; + int n=-1; + if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH(yyvsp[0].string); + eltype = ELEMENT_TYPE_MCVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid method const type parameter '%s'\n",yyvsp[0].string); + n = 0x1FFFFFFF; } + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); + } +#line 10474 "asmparse.cpp.tab.c" +break; +case 692: if (!yytrial) -#line 1724 "asmparse.y" +#line 1746 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10244,11 +10490,31 @@ case 688: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10248 "asmparse.cpp.tab.c" +#line 10494 "asmparse.cpp.tab.c" break; -case 689: +case 693: + if (!yytrial) +#line 1761 "asmparse.y" +{ int eltype = ELEMENT_TYPE_CVAR; + int n=-1; + if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH(yyvsp[0].string); + eltype = ELEMENT_TYPE_CVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid const type parameter '%s'\n",yyvsp[0].string); + n = 0x1FFFFFFF; } + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); + } +#line 10514 "asmparse.cpp.tab.c" +break; +case 694: if (!yytrial) -#line 1739 "asmparse.y" +#line 1776 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10264,924 +10530,924 @@ case 689: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10268 "asmparse.cpp.tab.c" +#line 10534 "asmparse.cpp.tab.c" break; -case 690: +case 695: if (!yytrial) -#line 1754 "asmparse.y" +#line 1791 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10274 "asmparse.cpp.tab.c" +#line 10540 "asmparse.cpp.tab.c" break; -case 691: +case 696: if (!yytrial) -#line 1755 "asmparse.y" +#line 1792 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10280 "asmparse.cpp.tab.c" +#line 10546 "asmparse.cpp.tab.c" break; -case 692: +case 697: if (!yytrial) -#line 1756 "asmparse.y" +#line 1793 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10286 "asmparse.cpp.tab.c" +#line 10552 "asmparse.cpp.tab.c" break; -case 693: +case 698: if (!yytrial) -#line 1757 "asmparse.y" +#line 1794 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10292 "asmparse.cpp.tab.c" +#line 10558 "asmparse.cpp.tab.c" break; -case 694: +case 699: if (!yytrial) -#line 1758 "asmparse.y" +#line 1795 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10298 "asmparse.cpp.tab.c" +#line 10564 "asmparse.cpp.tab.c" break; -case 695: +case 700: if (!yytrial) -#line 1759 "asmparse.y" +#line 1796 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10304 "asmparse.cpp.tab.c" +#line 10570 "asmparse.cpp.tab.c" break; -case 696: +case 701: if (!yytrial) -#line 1760 "asmparse.y" +#line 1797 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10310 "asmparse.cpp.tab.c" +#line 10576 "asmparse.cpp.tab.c" break; -case 697: +case 702: if (!yytrial) -#line 1763 "asmparse.y" +#line 1800 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10316 "asmparse.cpp.tab.c" +#line 10582 "asmparse.cpp.tab.c" break; -case 698: +case 703: if (!yytrial) -#line 1764 "asmparse.y" +#line 1801 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10322 "asmparse.cpp.tab.c" +#line 10588 "asmparse.cpp.tab.c" break; -case 699: +case 704: if (!yytrial) -#line 1765 "asmparse.y" +#line 1802 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10328 "asmparse.cpp.tab.c" +#line 10594 "asmparse.cpp.tab.c" break; -case 700: +case 705: if (!yytrial) -#line 1766 "asmparse.y" +#line 1803 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10334 "asmparse.cpp.tab.c" +#line 10600 "asmparse.cpp.tab.c" break; -case 701: +case 706: if (!yytrial) -#line 1767 "asmparse.y" +#line 1804 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10340 "asmparse.cpp.tab.c" +#line 10606 "asmparse.cpp.tab.c" break; -case 702: +case 707: if (!yytrial) -#line 1768 "asmparse.y" +#line 1805 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10346 "asmparse.cpp.tab.c" +#line 10612 "asmparse.cpp.tab.c" break; -case 703: +case 708: if (!yytrial) -#line 1769 "asmparse.y" +#line 1806 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10352 "asmparse.cpp.tab.c" +#line 10618 "asmparse.cpp.tab.c" break; -case 704: +case 709: if (!yytrial) -#line 1770 "asmparse.y" +#line 1807 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10358 "asmparse.cpp.tab.c" +#line 10624 "asmparse.cpp.tab.c" break; -case 705: +case 710: if (!yytrial) -#line 1771 "asmparse.y" +#line 1808 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10364 "asmparse.cpp.tab.c" +#line 10630 "asmparse.cpp.tab.c" break; -case 706: +case 711: if (!yytrial) -#line 1772 "asmparse.y" +#line 1809 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10370 "asmparse.cpp.tab.c" +#line 10636 "asmparse.cpp.tab.c" break; -case 707: +case 712: if (!yytrial) -#line 1773 "asmparse.y" +#line 1810 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10376 "asmparse.cpp.tab.c" +#line 10642 "asmparse.cpp.tab.c" break; -case 708: +case 713: if (!yytrial) -#line 1774 "asmparse.y" +#line 1811 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10382 "asmparse.cpp.tab.c" +#line 10648 "asmparse.cpp.tab.c" break; -case 709: +case 714: if (!yytrial) -#line 1775 "asmparse.y" +#line 1812 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10388 "asmparse.cpp.tab.c" +#line 10654 "asmparse.cpp.tab.c" break; -case 710: +case 715: if (!yytrial) -#line 1776 "asmparse.y" +#line 1813 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10394 "asmparse.cpp.tab.c" +#line 10660 "asmparse.cpp.tab.c" break; -case 711: +case 716: if (!yytrial) -#line 1777 "asmparse.y" +#line 1814 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10400 "asmparse.cpp.tab.c" +#line 10666 "asmparse.cpp.tab.c" break; -case 712: +case 717: if (!yytrial) -#line 1778 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10406 "asmparse.cpp.tab.c" +#line 10672 "asmparse.cpp.tab.c" break; -case 713: +case 718: if (!yytrial) -#line 1779 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10412 "asmparse.cpp.tab.c" +#line 10678 "asmparse.cpp.tab.c" break; -case 714: +case 719: if (!yytrial) -#line 1780 "asmparse.y" +#line 1817 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10418 "asmparse.cpp.tab.c" +#line 10684 "asmparse.cpp.tab.c" break; -case 715: +case 720: if (!yytrial) -#line 1783 "asmparse.y" +#line 1820 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10424 "asmparse.cpp.tab.c" +#line 10690 "asmparse.cpp.tab.c" break; -case 716: +case 721: if (!yytrial) -#line 1784 "asmparse.y" +#line 1821 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10430 "asmparse.cpp.tab.c" +#line 10696 "asmparse.cpp.tab.c" break; -case 717: +case 722: if (!yytrial) -#line 1787 "asmparse.y" +#line 1824 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10436 "asmparse.cpp.tab.c" +#line 10702 "asmparse.cpp.tab.c" break; -case 718: +case 723: if (!yytrial) -#line 1788 "asmparse.y" +#line 1825 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10442 "asmparse.cpp.tab.c" +#line 10708 "asmparse.cpp.tab.c" break; -case 719: +case 724: if (!yytrial) -#line 1789 "asmparse.y" +#line 1826 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10448 "asmparse.cpp.tab.c" +#line 10714 "asmparse.cpp.tab.c" break; -case 720: +case 725: if (!yytrial) -#line 1790 "asmparse.y" +#line 1827 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10456 "asmparse.cpp.tab.c" +#line 10722 "asmparse.cpp.tab.c" break; -case 721: +case 726: if (!yytrial) -#line 1793 "asmparse.y" +#line 1830 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10462 "asmparse.cpp.tab.c" +#line 10728 "asmparse.cpp.tab.c" break; -case 722: +case 727: if (!yytrial) -#line 1798 "asmparse.y" +#line 1835 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10468 "asmparse.cpp.tab.c" +#line 10734 "asmparse.cpp.tab.c" break; -case 723: +case 728: if (!yytrial) -#line 1800 "asmparse.y" +#line 1837 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10474 "asmparse.cpp.tab.c" +#line 10740 "asmparse.cpp.tab.c" break; -case 724: +case 729: if (!yytrial) -#line 1801 "asmparse.y" +#line 1838 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10480 "asmparse.cpp.tab.c" +#line 10746 "asmparse.cpp.tab.c" break; -case 725: +case 730: if (!yytrial) -#line 1802 "asmparse.y" +#line 1839 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10486 "asmparse.cpp.tab.c" +#line 10752 "asmparse.cpp.tab.c" break; -case 726: +case 731: if (!yytrial) -#line 1804 "asmparse.y" +#line 1841 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10492 "asmparse.cpp.tab.c" +#line 10758 "asmparse.cpp.tab.c" break; -case 727: +case 732: if (!yytrial) -#line 1806 "asmparse.y" +#line 1843 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10503 "asmparse.cpp.tab.c" +#line 10769 "asmparse.cpp.tab.c" break; -case 728: +case 733: if (!yytrial) -#line 1814 "asmparse.y" +#line 1851 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10509 "asmparse.cpp.tab.c" +#line 10775 "asmparse.cpp.tab.c" break; -case 729: +case 734: if (!yytrial) -#line 1815 "asmparse.y" +#line 1852 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10515 "asmparse.cpp.tab.c" +#line 10781 "asmparse.cpp.tab.c" break; -case 730: +case 735: if (!yytrial) -#line 1816 "asmparse.y" +#line 1853 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10521 "asmparse.cpp.tab.c" +#line 10787 "asmparse.cpp.tab.c" break; -case 731: +case 736: if (!yytrial) -#line 1820 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10528 "asmparse.cpp.tab.c" +#line 10794 "asmparse.cpp.tab.c" break; -case 732: +case 737: if (!yytrial) -#line 1823 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10535 "asmparse.cpp.tab.c" +#line 10801 "asmparse.cpp.tab.c" break; -case 733: +case 738: if (!yytrial) -#line 1827 "asmparse.y" +#line 1864 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10541 "asmparse.cpp.tab.c" +#line 10807 "asmparse.cpp.tab.c" break; -case 734: +case 739: if (!yytrial) -#line 1829 "asmparse.y" +#line 1866 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10547 "asmparse.cpp.tab.c" +#line 10813 "asmparse.cpp.tab.c" break; -case 735: +case 740: if (!yytrial) -#line 1832 "asmparse.y" +#line 1869 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 10553 "asmparse.cpp.tab.c" +#line 10819 "asmparse.cpp.tab.c" break; -case 736: +case 741: if (!yytrial) -#line 1833 "asmparse.y" +#line 1870 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 10559 "asmparse.cpp.tab.c" +#line 10825 "asmparse.cpp.tab.c" break; -case 737: +case 742: if (!yytrial) -#line 1836 "asmparse.y" +#line 1873 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 10565 "asmparse.cpp.tab.c" +#line 10831 "asmparse.cpp.tab.c" break; -case 738: +case 743: if (!yytrial) -#line 1839 "asmparse.y" +#line 1876 "asmparse.y" { yyval.int32 = 1; } -#line 10571 "asmparse.cpp.tab.c" +#line 10837 "asmparse.cpp.tab.c" break; -case 739: +case 744: if (!yytrial) -#line 1840 "asmparse.y" +#line 1877 "asmparse.y" { yyval.int32 = 0; } -#line 10577 "asmparse.cpp.tab.c" +#line 10843 "asmparse.cpp.tab.c" break; -case 740: +case 745: if (!yytrial) -#line 1843 "asmparse.y" +#line 1880 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10585 "asmparse.cpp.tab.c" +#line 10851 "asmparse.cpp.tab.c" break; -case 741: +case 746: if (!yytrial) -#line 1846 "asmparse.y" +#line 1883 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10593 "asmparse.cpp.tab.c" +#line 10859 "asmparse.cpp.tab.c" break; -case 742: +case 747: if (!yytrial) -#line 1849 "asmparse.y" +#line 1886 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10601 "asmparse.cpp.tab.c" +#line 10867 "asmparse.cpp.tab.c" break; -case 743: +case 748: if (!yytrial) -#line 1852 "asmparse.y" +#line 1889 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 10610 "asmparse.cpp.tab.c" +#line 10876 "asmparse.cpp.tab.c" break; -case 744: +case 749: if (!yytrial) -#line 1856 "asmparse.y" +#line 1893 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10621 "asmparse.cpp.tab.c" +#line 10887 "asmparse.cpp.tab.c" break; -case 745: +case 750: if (!yytrial) -#line 1862 "asmparse.y" +#line 1899 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10632 "asmparse.cpp.tab.c" +#line 10898 "asmparse.cpp.tab.c" break; -case 746: +case 751: if (!yytrial) -#line 1868 "asmparse.y" +#line 1905 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10643 "asmparse.cpp.tab.c" +#line 10909 "asmparse.cpp.tab.c" break; -case 747: +case 752: if (!yytrial) -#line 1874 "asmparse.y" +#line 1911 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10654 "asmparse.cpp.tab.c" +#line 10920 "asmparse.cpp.tab.c" break; -case 748: +case 753: if (!yytrial) -#line 1882 "asmparse.y" +#line 1919 "asmparse.y" { yyval.secAct = dclRequest; } -#line 10660 "asmparse.cpp.tab.c" +#line 10926 "asmparse.cpp.tab.c" break; -case 749: +case 754: if (!yytrial) -#line 1883 "asmparse.y" +#line 1920 "asmparse.y" { yyval.secAct = dclDemand; } -#line 10666 "asmparse.cpp.tab.c" +#line 10932 "asmparse.cpp.tab.c" break; -case 750: +case 755: if (!yytrial) -#line 1884 "asmparse.y" +#line 1921 "asmparse.y" { yyval.secAct = dclAssert; } -#line 10672 "asmparse.cpp.tab.c" +#line 10938 "asmparse.cpp.tab.c" break; -case 751: +case 756: if (!yytrial) -#line 1885 "asmparse.y" +#line 1922 "asmparse.y" { yyval.secAct = dclDeny; } -#line 10678 "asmparse.cpp.tab.c" +#line 10944 "asmparse.cpp.tab.c" break; -case 752: +case 757: if (!yytrial) -#line 1886 "asmparse.y" +#line 1923 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 10684 "asmparse.cpp.tab.c" +#line 10950 "asmparse.cpp.tab.c" break; -case 753: +case 758: if (!yytrial) -#line 1887 "asmparse.y" +#line 1924 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 10690 "asmparse.cpp.tab.c" +#line 10956 "asmparse.cpp.tab.c" break; -case 754: +case 759: if (!yytrial) -#line 1888 "asmparse.y" +#line 1925 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 10696 "asmparse.cpp.tab.c" +#line 10962 "asmparse.cpp.tab.c" break; -case 755: +case 760: if (!yytrial) -#line 1889 "asmparse.y" +#line 1926 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 10702 "asmparse.cpp.tab.c" +#line 10968 "asmparse.cpp.tab.c" break; -case 756: +case 761: if (!yytrial) -#line 1890 "asmparse.y" +#line 1927 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 10708 "asmparse.cpp.tab.c" +#line 10974 "asmparse.cpp.tab.c" break; -case 757: +case 762: if (!yytrial) -#line 1891 "asmparse.y" +#line 1928 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 10714 "asmparse.cpp.tab.c" +#line 10980 "asmparse.cpp.tab.c" break; -case 758: +case 763: if (!yytrial) -#line 1892 "asmparse.y" +#line 1929 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 10720 "asmparse.cpp.tab.c" +#line 10986 "asmparse.cpp.tab.c" break; -case 759: +case 764: if (!yytrial) -#line 1893 "asmparse.y" +#line 1930 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 10726 "asmparse.cpp.tab.c" +#line 10992 "asmparse.cpp.tab.c" break; -case 760: +case 765: if (!yytrial) -#line 1894 "asmparse.y" +#line 1931 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 10732 "asmparse.cpp.tab.c" +#line 10998 "asmparse.cpp.tab.c" break; -case 761: +case 766: if (!yytrial) -#line 1895 "asmparse.y" +#line 1932 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 10738 "asmparse.cpp.tab.c" +#line 11004 "asmparse.cpp.tab.c" break; -case 762: +case 767: if (!yytrial) -#line 1896 "asmparse.y" +#line 1933 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 10744 "asmparse.cpp.tab.c" +#line 11010 "asmparse.cpp.tab.c" break; -case 763: +case 768: if (!yytrial) -#line 1900 "asmparse.y" +#line 1937 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 10750 "asmparse.cpp.tab.c" +#line 11016 "asmparse.cpp.tab.c" break; -case 764: +case 769: if (!yytrial) -#line 1901 "asmparse.y" +#line 1938 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 10756 "asmparse.cpp.tab.c" +#line 11022 "asmparse.cpp.tab.c" break; -case 765: +case 770: if (!yytrial) -#line 1904 "asmparse.y" +#line 1941 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10764 "asmparse.cpp.tab.c" +#line 11030 "asmparse.cpp.tab.c" break; -case 766: +case 771: if (!yytrial) -#line 1907 "asmparse.y" +#line 1944 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 10771 "asmparse.cpp.tab.c" +#line 11037 "asmparse.cpp.tab.c" break; -case 767: +case 772: if (!yytrial) -#line 1909 "asmparse.y" +#line 1946 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10779 "asmparse.cpp.tab.c" +#line 11045 "asmparse.cpp.tab.c" break; -case 768: +case 773: if (!yytrial) -#line 1912 "asmparse.y" +#line 1949 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 10786 "asmparse.cpp.tab.c" +#line 11052 "asmparse.cpp.tab.c" break; -case 769: +case 774: if (!yytrial) -#line 1915 "asmparse.y" +#line 1952 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 10794 "asmparse.cpp.tab.c" +#line 11060 "asmparse.cpp.tab.c" break; -case 770: +case 775: if (!yytrial) -#line 1919 "asmparse.y" +#line 1956 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10801 "asmparse.cpp.tab.c" +#line 11067 "asmparse.cpp.tab.c" break; -case 771: +case 776: if (!yytrial) -#line 1922 "asmparse.y" +#line 1959 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 10809 "asmparse.cpp.tab.c" +#line 11075 "asmparse.cpp.tab.c" break; -case 772: +case 777: if (!yytrial) -#line 1926 "asmparse.y" +#line 1963 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 10816 "asmparse.cpp.tab.c" +#line 11082 "asmparse.cpp.tab.c" break; -case 773: +case 778: if (!yytrial) -#line 1929 "asmparse.y" +#line 1966 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 10824 "asmparse.cpp.tab.c" +#line 11090 "asmparse.cpp.tab.c" break; -case 774: +case 779: if (!yytrial) -#line 1933 "asmparse.y" +#line 1970 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10831 "asmparse.cpp.tab.c" +#line 11097 "asmparse.cpp.tab.c" break; -case 775: +case 780: if (!yytrial) -#line 1935 "asmparse.y" +#line 1972 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 10839 "asmparse.cpp.tab.c" +#line 11105 "asmparse.cpp.tab.c" break; -case 776: +case 781: if (!yytrial) -#line 1942 "asmparse.y" +#line 1979 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 10845 "asmparse.cpp.tab.c" +#line 11111 "asmparse.cpp.tab.c" break; -case 777: +case 782: if (!yytrial) -#line 1943 "asmparse.y" +#line 1980 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 10851 "asmparse.cpp.tab.c" +#line 11117 "asmparse.cpp.tab.c" break; -case 778: +case 783: if (!yytrial) -#line 1946 "asmparse.y" +#line 1983 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 10857 "asmparse.cpp.tab.c" +#line 11123 "asmparse.cpp.tab.c" break; -case 779: +case 784: if (!yytrial) -#line 1947 "asmparse.y" +#line 1984 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 10863 "asmparse.cpp.tab.c" +#line 11129 "asmparse.cpp.tab.c" break; -case 780: +case 785: if (!yytrial) -#line 1950 "asmparse.y" +#line 1987 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 10869 "asmparse.cpp.tab.c" +#line 11135 "asmparse.cpp.tab.c" break; -case 781: +case 786: if (!yytrial) -#line 1951 "asmparse.y" +#line 1988 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 10875 "asmparse.cpp.tab.c" +#line 11141 "asmparse.cpp.tab.c" break; -case 782: +case 787: if (!yytrial) -#line 1954 "asmparse.y" +#line 1991 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10881 "asmparse.cpp.tab.c" +#line 11147 "asmparse.cpp.tab.c" break; -case 783: +case 788: if (!yytrial) -#line 1957 "asmparse.y" +#line 1994 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 10887 "asmparse.cpp.tab.c" +#line 11153 "asmparse.cpp.tab.c" break; -case 784: +case 789: if (!yytrial) -#line 1960 "asmparse.y" +#line 1997 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 10893 "asmparse.cpp.tab.c" +#line 11159 "asmparse.cpp.tab.c" break; -case 785: +case 790: if (!yytrial) -#line 1961 "asmparse.y" +#line 1998 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 10899 "asmparse.cpp.tab.c" +#line 11165 "asmparse.cpp.tab.c" break; -case 786: +case 791: if (!yytrial) -#line 1962 "asmparse.y" +#line 1999 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 10905 "asmparse.cpp.tab.c" +#line 11171 "asmparse.cpp.tab.c" break; -case 787: +case 792: if (!yytrial) -#line 1963 "asmparse.y" +#line 2000 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 10911 "asmparse.cpp.tab.c" +#line 11177 "asmparse.cpp.tab.c" break; -case 788: +case 793: if (!yytrial) -#line 1964 "asmparse.y" +#line 2001 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 10917 "asmparse.cpp.tab.c" +#line 11183 "asmparse.cpp.tab.c" break; -case 789: +case 794: if (!yytrial) -#line 1965 "asmparse.y" +#line 2002 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 10923 "asmparse.cpp.tab.c" +#line 11189 "asmparse.cpp.tab.c" break; -case 790: +case 795: if (!yytrial) -#line 1966 "asmparse.y" +#line 2003 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 10929 "asmparse.cpp.tab.c" +#line 11195 "asmparse.cpp.tab.c" break; -case 791: +case 796: if (!yytrial) -#line 1967 "asmparse.y" +#line 2004 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 10935 "asmparse.cpp.tab.c" +#line 11201 "asmparse.cpp.tab.c" break; -case 792: +case 797: if (!yytrial) -#line 1968 "asmparse.y" +#line 2005 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 10941 "asmparse.cpp.tab.c" +#line 11207 "asmparse.cpp.tab.c" break; -case 793: +case 798: if (!yytrial) -#line 1969 "asmparse.y" +#line 2006 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 10947 "asmparse.cpp.tab.c" +#line 11213 "asmparse.cpp.tab.c" break; -case 796: +case 801: if (!yytrial) -#line 1976 "asmparse.y" +#line 2013 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 10953 "asmparse.cpp.tab.c" +#line 11219 "asmparse.cpp.tab.c" break; -case 799: +case 804: if (!yytrial) -#line 1981 "asmparse.y" +#line 2018 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 10959 "asmparse.cpp.tab.c" +#line 11225 "asmparse.cpp.tab.c" break; -case 800: +case 805: if (!yytrial) -#line 1982 "asmparse.y" +#line 2019 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 10965 "asmparse.cpp.tab.c" +#line 11231 "asmparse.cpp.tab.c" break; -case 801: +case 806: if (!yytrial) -#line 1985 "asmparse.y" +#line 2022 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 10971 "asmparse.cpp.tab.c" +#line 11237 "asmparse.cpp.tab.c" break; -case 802: +case 807: if (!yytrial) -#line 1987 "asmparse.y" +#line 2024 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 10977 "asmparse.cpp.tab.c" +#line 11243 "asmparse.cpp.tab.c" break; -case 803: +case 808: if (!yytrial) -#line 1988 "asmparse.y" +#line 2025 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 10983 "asmparse.cpp.tab.c" +#line 11249 "asmparse.cpp.tab.c" break; -case 804: +case 809: if (!yytrial) -#line 1989 "asmparse.y" +#line 2026 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 10989 "asmparse.cpp.tab.c" +#line 11255 "asmparse.cpp.tab.c" break; -case 807: +case 812: if (!yytrial) -#line 1994 "asmparse.y" +#line 2031 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10995 "asmparse.cpp.tab.c" +#line 11261 "asmparse.cpp.tab.c" break; -case 808: +case 813: if (!yytrial) -#line 1997 "asmparse.y" +#line 2034 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11001 "asmparse.cpp.tab.c" +#line 11267 "asmparse.cpp.tab.c" break; -case 809: +case 814: if (!yytrial) -#line 2000 "asmparse.y" +#line 2037 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11007 "asmparse.cpp.tab.c" +#line 11273 "asmparse.cpp.tab.c" break; -case 810: +case 815: if (!yytrial) -#line 2004 "asmparse.y" +#line 2041 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11013 "asmparse.cpp.tab.c" +#line 11279 "asmparse.cpp.tab.c" break; -case 811: +case 816: if (!yytrial) -#line 2006 "asmparse.y" +#line 2043 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11019 "asmparse.cpp.tab.c" +#line 11285 "asmparse.cpp.tab.c" break; -case 814: +case 819: if (!yytrial) -#line 2013 "asmparse.y" +#line 2050 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11025 "asmparse.cpp.tab.c" +#line 11291 "asmparse.cpp.tab.c" break; -case 816: +case 821: if (!yytrial) -#line 2015 "asmparse.y" +#line 2052 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11031 "asmparse.cpp.tab.c" +#line 11297 "asmparse.cpp.tab.c" break; -case 817: +case 822: if (!yytrial) -#line 2016 "asmparse.y" +#line 2053 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11037 "asmparse.cpp.tab.c" +#line 11303 "asmparse.cpp.tab.c" break; -case 818: +case 823: if (!yytrial) -#line 2019 "asmparse.y" +#line 2056 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11043 "asmparse.cpp.tab.c" +#line 11309 "asmparse.cpp.tab.c" break; -case 819: +case 824: if (!yytrial) -#line 2022 "asmparse.y" +#line 2059 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11049 "asmparse.cpp.tab.c" +#line 11315 "asmparse.cpp.tab.c" break; -case 820: +case 825: if (!yytrial) -#line 2025 "asmparse.y" +#line 2062 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11055 "asmparse.cpp.tab.c" +#line 11321 "asmparse.cpp.tab.c" break; -case 821: +case 826: if (!yytrial) -#line 2026 "asmparse.y" +#line 2063 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11061 "asmparse.cpp.tab.c" +#line 11327 "asmparse.cpp.tab.c" break; -case 822: +case 827: if (!yytrial) -#line 2027 "asmparse.y" +#line 2064 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11067 "asmparse.cpp.tab.c" +#line 11333 "asmparse.cpp.tab.c" break; -case 823: +case 828: if (!yytrial) -#line 2028 "asmparse.y" +#line 2065 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11073 "asmparse.cpp.tab.c" +#line 11339 "asmparse.cpp.tab.c" break; -case 824: +case 829: if (!yytrial) -#line 2029 "asmparse.y" +#line 2066 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11079 "asmparse.cpp.tab.c" +#line 11345 "asmparse.cpp.tab.c" break; -case 825: +case 830: if (!yytrial) -#line 2030 "asmparse.y" +#line 2067 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11085 "asmparse.cpp.tab.c" +#line 11351 "asmparse.cpp.tab.c" break; -case 826: +case 831: if (!yytrial) -#line 2031 "asmparse.y" +#line 2068 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11091 "asmparse.cpp.tab.c" +#line 11357 "asmparse.cpp.tab.c" break; -case 827: +case 832: if (!yytrial) -#line 2032 "asmparse.y" +#line 2069 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11097 "asmparse.cpp.tab.c" +#line 11363 "asmparse.cpp.tab.c" break; -case 828: +case 833: if (!yytrial) -#line 2033 "asmparse.y" +#line 2070 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11103 "asmparse.cpp.tab.c" +#line 11369 "asmparse.cpp.tab.c" break; -case 829: +case 834: if (!yytrial) -#line 2034 "asmparse.y" +#line 2071 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11109 "asmparse.cpp.tab.c" +#line 11375 "asmparse.cpp.tab.c" break; -case 832: +case 837: if (!yytrial) -#line 2041 "asmparse.y" +#line 2078 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11115 "asmparse.cpp.tab.c" +#line 11381 "asmparse.cpp.tab.c" break; -case 833: +case 838: if (!yytrial) -#line 2042 "asmparse.y" +#line 2079 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11121 "asmparse.cpp.tab.c" +#line 11387 "asmparse.cpp.tab.c" break; -case 834: +case 839: if (!yytrial) -#line 2043 "asmparse.y" +#line 2080 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11127 "asmparse.cpp.tab.c" +#line 11393 "asmparse.cpp.tab.c" break; -case 835: +case 840: if (!yytrial) -#line 2044 "asmparse.y" +#line 2081 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11134 "asmparse.cpp.tab.c" +#line 11400 "asmparse.cpp.tab.c" break; -case 836: +case 841: if (!yytrial) -#line 2046 "asmparse.y" +#line 2083 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11141 "asmparse.cpp.tab.c" +#line 11407 "asmparse.cpp.tab.c" break; -case 839: +case 844: if (!yytrial) -#line 2052 "asmparse.y" +#line 2089 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11147 "asmparse.cpp.tab.c" +#line 11413 "asmparse.cpp.tab.c" break; -case 840: +case 845: if (!yytrial) -#line 2054 "asmparse.y" +#line 2091 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11153 "asmparse.cpp.tab.c" +#line 11419 "asmparse.cpp.tab.c" break; -case 841: +case 846: if (!yytrial) -#line 2057 "asmparse.y" +#line 2094 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11159 "asmparse.cpp.tab.c" +#line 11425 "asmparse.cpp.tab.c" break; -case 842: +case 847: if (!yytrial) -#line 2058 "asmparse.y" +#line 2095 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11165 "asmparse.cpp.tab.c" +#line 11431 "asmparse.cpp.tab.c" break; -case 843: +case 848: if (!yytrial) -#line 2059 "asmparse.y" +#line 2096 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11171 "asmparse.cpp.tab.c" +#line 11437 "asmparse.cpp.tab.c" break; -case 846: +case 851: if (!yytrial) -#line 2066 "asmparse.y" +#line 2103 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11177 "asmparse.cpp.tab.c" +#line 11443 "asmparse.cpp.tab.c" break; -case 847: +case 852: if (!yytrial) -#line 2067 "asmparse.y" +#line 2104 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11183 "asmparse.cpp.tab.c" +#line 11449 "asmparse.cpp.tab.c" break; -#line 11185 "asmparse.cpp.tab.c" +#line 11451 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 5175057e33b17..05884d78ded86 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -1675,8 +1675,9 @@ BYTE* skipType(BYTE* ptr) break; } - case ELEMENT_TYPE_VALUETYPE : + case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_CLASS : + case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; @@ -1719,6 +1720,8 @@ BYTE* skipType(BYTE* ptr) case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: CorSigUncompressData((PCCOR_SIGNATURE&) ptr); // bound break; diff --git a/src/coreclr/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp index 58c86e0e9ae74..e9baa3dc02d91 100644 --- a/src/coreclr/ildasm/dis.cpp +++ b/src/coreclr/ildasm/dis.cpp @@ -1393,6 +1393,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case ShortInlineI: + case ShortInlineTypeI: case ShortInlineVar: { unsigned char ch= pCode[PC]; @@ -1506,6 +1507,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineI: + case InlineTypeI: case InlineRVA: { DWORD v = pCode[PC] + (pCode[PC+1] << 8) + (pCode[PC+2] << 16) + (pCode[PC+3] << 24); @@ -1522,6 +1524,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineI8: + case InlineTypeI8: { __int64 v = (__int64) pCode[PC] + (((__int64) pCode[PC+1]) << 8) + @@ -1548,6 +1551,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case ShortInlineR: + case ShortInlineTypeR: { __int32 v = (__int32) pCode[PC] + (((__int32) pCode[PC+1]) << 8) + @@ -1582,6 +1586,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineR: + case InlineTypeR: { __int64 v = (__int64) pCode[PC] + (((__int64) pCode[PC+1]) << 8) + diff --git a/src/coreclr/inc/corhdr.h b/src/coreclr/inc/corhdr.h index 5c645000ce87d..f76bb30380dfa 100644 --- a/src/coreclr/inc/corhdr.h +++ b/src/coreclr/inc/corhdr.h @@ -912,8 +912,12 @@ typedef enum CorElementType // This is for signatures generated internally (which will not be persisted in any way). ELEMENT_TYPE_INTERNAL = 0x21, // INTERNAL + ELEMENT_TYPE_CVAR = 0x22, // a class const type variable CVAR + ELEMENT_TYPE_MCVAR = 0x23, // a method const type variable MCVAR + + ELEMENT_TYPE_CONSTTYPE = 0x24, // CONSTTYPE // Note that this is the max of base type excluding modifiers - ELEMENT_TYPE_MAX = 0x22, // first invalid element type + ELEMENT_TYPE_MAX = 0x25, // first invalid element type ELEMENT_TYPE_MODIFIER = 0x40, diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index 64d401ffb4d61..37ea944b019bd 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -535,6 +535,11 @@ PCCOR_SIGNATURE PrettyPrintType( case ELEMENT_TYPE_CLASS : str = "class "; goto DO_CLASS; + case ELEMENT_TYPE_CONSTTYPE : + str = "const "; + appendStr(out, KEYWORD((char*)str)); + Reiterate = TRUE; + break; DO_CLASS: appendStr(out, KEYWORD((char*)str)); @@ -614,7 +619,9 @@ PCCOR_SIGNATURE PrettyPrintType( #endif } } break; - + + case ELEMENT_TYPE_CVAR : + appendStr(out, KEYWORD("const ")); case ELEMENT_TYPE_VAR : appendChar(out, '!'); n = CorSigUncompressData(typePtr); @@ -623,7 +630,9 @@ PCCOR_SIGNATURE PrettyPrintType( #endif appendStrNum(out, n); break; - + + case ELEMENT_TYPE_MCVAR : + appendStr(out, KEYWORD("const ")); case ELEMENT_TYPE_MVAR : appendChar(out, '!'); appendChar(out, '!'); diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 652b959203e8e..c50be664feb2d 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -259,11 +259,11 @@ OPDEF(CEE_LEAVE, "leave", Pop0, Pu OPDEF(CEE_LEAVE_S, "leave.s", Pop0, Push0, ShortInlineBrTarget,IPrimitive, 1, 0xFF, 0xDE, BRANCH) OPDEF(CEE_STIND_I, "stind.i", PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xDF, NEXT) OPDEF(CEE_CONV_U, "conv.u", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xE0, NEXT) -OPDEF(CEE_UNUSED26, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE1, NEXT) -OPDEF(CEE_UNUSED27, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE2, NEXT) -OPDEF(CEE_UNUSED28, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE3, NEXT) -OPDEF(CEE_UNUSED29, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE4, NEXT) -OPDEF(CEE_UNUSED30, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE5, NEXT) +OPDEF(CEE_LDCT_I4_S, "ldtc.i4.s", Pop0, PushI, ShortInlineTypeI, IMacro, 1, 0xFF, 0xE1, NEXT) +OPDEF(CEE_LDCT_I4, "ldtc.i4", Pop0, PushI, InlineTypeI, IPrimitive, 1, 0xFF, 0xE2, NEXT) +OPDEF(CEE_LDCT_I8, "ldtc.i8", Pop0, PushI8, InlineTypeI8, IPrimitive, 1, 0xFF, 0xE3, NEXT) +OPDEF(CEE_LDCT_R4, "ldtc.r4", Pop0, PushR4, ShortInlineTypeR, IPrimitive, 1, 0xFF, 0xE4, NEXT) +OPDEF(CEE_LDCT_R8, "ldtc.r8", Pop0, PushR8, InlineTypeR, IPrimitive, 1, 0xFF, 0xE5, NEXT) OPDEF(CEE_UNUSED31, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE6, NEXT) OPDEF(CEE_UNUSED32, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE7, NEXT) OPDEF(CEE_UNUSED33, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE8, NEXT) diff --git a/src/coreclr/inc/openum.h b/src/coreclr/inc/openum.h index 730dfb017703a..5533fa9119c21 100644 --- a/src/coreclr/inc/openum.h +++ b/src/coreclr/inc/openum.h @@ -18,7 +18,7 @@ typedef enum opcode_format_t { InlineNone = 0, // no inline args InlineVar = 1, // local variable (U2 (U1 if Short on)) - InlineI = 2, // an signed integer (I4 (I1 if Short on)) + InlineI = 2, // a signed integer (I4 (I1 if Short on)) InlineR = 3, // a real number (R8 (R4 if Short on)) InlineBrTarget = 4, // branch target (I4 (I1 if Short on)) InlineI8 = 5, @@ -31,17 +31,21 @@ typedef enum opcode_format_t InlineTok = 12, // a meta-data token of unknown type (U4) InlineSwitch = 13, // count (U4), pcrel1 (U4) .... pcrelN (U4) InlinePhi = 14, // count (U1), var1 (U2) ... varN (U2) - + InlineTypeI = 15, // a signed integer for const type parameter + InlineTypeR = 16, // a real integer for const type parameter + InlineTypeI8 = 17, // WATCH OUT we are close to the limit here, if you add // more enumerations you need to change ShortIline definition below // The extended enumeration also encodes the size in the IL stream - ShortInline = 16, // if this bit is set, the format is the 'short' format + ShortInline = 32, // if this bit is set, the format is the 'short' format PrimaryMask = (ShortInline-1), // mask these off to get primary enumeration above ShortInlineVar = (ShortInline + InlineVar), ShortInlineI = (ShortInline + InlineI), ShortInlineR = (ShortInline + InlineR), ShortInlineBrTarget = (ShortInline + InlineBrTarget), + ShortInlineTypeI = (ShortInline + InlineTypeI), + ShortInlineTypeR = (ShortInline + InlineTypeR), InlineOpcode = (ShortInline + InlineNone), // This is only used internally. It means the 'opcode' is two byte instead of 1 } OPCODE_FORMAT; From c29b87dfaa937786af0c66b995dd38da10d37a9d Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 22 Jul 2023 23:07:45 +0900 Subject: [PATCH 09/80] Move opcode def upper --- src/coreclr/inc/opcode.def | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index c50be664feb2d..7a1595a9e8205 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -200,11 +200,11 @@ OPDEF(CEE_STELEM_REF, "stelem.ref", PopRef+PopI+PopRef, Pu OPDEF(CEE_LDELEM, "ldelem", PopRef+PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0xA3, NEXT) OPDEF(CEE_STELEM, "stelem", PopRef+PopI+Pop1, Push0, InlineType, IObjModel, 1, 0xFF, 0xA4, NEXT) OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, IObjModel, 1, 0xFF, 0xA5, NEXT) -OPDEF(CEE_UNUSED5, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA6, NEXT) -OPDEF(CEE_UNUSED6, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) -OPDEF(CEE_UNUSED7, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) -OPDEF(CEE_UNUSED8, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) -OPDEF(CEE_UNUSED9, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAA, NEXT) +OPDEF(CEE_LDCT_I4_S, "ldtc.i4.s", Pop0, PushI, ShortInlineTypeI, IMacro, 1, 0xFF, 0xA6, NEXT) +OPDEF(CEE_LDCT_I4, "ldtc.i4", Pop0, PushI, InlineTypeI, IPrimitive, 1, 0xFF, 0xA7, NEXT) +OPDEF(CEE_LDCT_I8, "ldtc.i8", Pop0, PushI8, InlineTypeI8, IPrimitive, 1, 0xFF, 0xA8, NEXT) +OPDEF(CEE_LDCT_R4, "ldtc.r4", Pop0, PushR4, ShortInlineTypeR, IPrimitive, 1, 0xFF, 0xA9, NEXT) +OPDEF(CEE_LDCT_R8, "ldtc.r8", Pop0, PushR8, InlineTypeR, IPrimitive, 1, 0xFF, 0xAA, NEXT) OPDEF(CEE_UNUSED10, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) OPDEF(CEE_UNUSED11, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAC, NEXT) OPDEF(CEE_UNUSED12, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAD, NEXT) @@ -259,11 +259,11 @@ OPDEF(CEE_LEAVE, "leave", Pop0, Pu OPDEF(CEE_LEAVE_S, "leave.s", Pop0, Push0, ShortInlineBrTarget,IPrimitive, 1, 0xFF, 0xDE, BRANCH) OPDEF(CEE_STIND_I, "stind.i", PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xDF, NEXT) OPDEF(CEE_CONV_U, "conv.u", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xE0, NEXT) -OPDEF(CEE_LDCT_I4_S, "ldtc.i4.s", Pop0, PushI, ShortInlineTypeI, IMacro, 1, 0xFF, 0xE1, NEXT) -OPDEF(CEE_LDCT_I4, "ldtc.i4", Pop0, PushI, InlineTypeI, IPrimitive, 1, 0xFF, 0xE2, NEXT) -OPDEF(CEE_LDCT_I8, "ldtc.i8", Pop0, PushI8, InlineTypeI8, IPrimitive, 1, 0xFF, 0xE3, NEXT) -OPDEF(CEE_LDCT_R4, "ldtc.r4", Pop0, PushR4, ShortInlineTypeR, IPrimitive, 1, 0xFF, 0xE4, NEXT) -OPDEF(CEE_LDCT_R8, "ldtc.r8", Pop0, PushR8, InlineTypeR, IPrimitive, 1, 0xFF, 0xE5, NEXT) +OPDEF(CEE_UNUSED26, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE1, NEXT) +OPDEF(CEE_UNUSED27, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE2, NEXT) +OPDEF(CEE_UNUSED28, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE3, NEXT) +OPDEF(CEE_UNUSED29, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE4, NEXT) +OPDEF(CEE_UNUSED30, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE5, NEXT) OPDEF(CEE_UNUSED31, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE6, NEXT) OPDEF(CEE_UNUSED32, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE7, NEXT) OPDEF(CEE_UNUSED33, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE8, NEXT) From a9f166ab2fabb59f65df5ecdfff7c577a6895db2 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 01:58:00 +0900 Subject: [PATCH 10/80] Implement ldtarg and ldtarg.s in parser, emitter and disasmer --- .../dlls/mscorpe/ceefilegenwritertokens.cpp | 2 + src/coreclr/ilasm/asmparse.y | 13 +- src/coreclr/ilasm/assembler.cpp | 52 + src/coreclr/ilasm/assembler.h | 2 + src/coreclr/ilasm/grammar_after.cpp | 4 + src/coreclr/ilasm/prebuilt/asmparse.cpp | 10443 ++++++++-------- src/coreclr/ildasm/dis.cpp | 36 +- src/coreclr/inc/opcode.def | 4 +- src/coreclr/inc/openum.h | 2 + 9 files changed, 5415 insertions(+), 5143 deletions(-) diff --git a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp index 7503bdb2dba8d..71129c54e20cd 100644 --- a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp +++ b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp @@ -167,6 +167,7 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( break; case InlineVar: + case ShortInlineTypeVar: PC += 2; break; @@ -176,6 +177,7 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case InlineRVA: case InlineTypeI: case ShortInlineTypeR: + case InlineTypeVar: PC += 4; break; diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 785cbef5fe24c..15e215f18f5e7 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -88,7 +88,7 @@ %token _IMPORT NOMANGLE_ LASTERR_ WINAPI_ AS_ BESTFIT_ ON_ OFF_ CHARMAPERROR_ /* instruction tokens (actually instruction groupings) */ -%token INSTR_NONE INSTR_VAR INSTR_I INSTR_I8 INSTR_R INSTR_BRTARGET INSTR_METHOD INSTR_FIELD +%token INSTR_NONE INSTR_VAR INSTR_I INSTR_I8 INSTR_R INSTR_BRTARGET INSTR_METHOD INSTR_FIELD INSTR_TVAR %token INSTR_TYPE INSTR_STRING INSTR_SIG INSTR_TOK %token INSTR_SWITCH @@ -178,7 +178,7 @@ %type exptAttr %type manresAttr %type customDescr customDescrWithOwner -%type instr_none instr_var instr_i instr_i8 instr_r instr_brtarget instr_method instr_field +%type instr_none instr_var instr_i instr_i8 instr_r instr_brtarget instr_method instr_field instr_tvar %type instr_type instr_string instr_sig instr_tok instr_switch %type instr_r_head @@ -1331,6 +1331,9 @@ instr_none : INSTR_NONE { $$ = SetupInstr($ instr_var : INSTR_VAR { $$ = SetupInstr($1); } ; +instr_tvar : INSTR_TVAR { $$ = SetupInstr($1); } + ; + instr_i : INSTR_I { $$ = SetupInstr($1); } ; @@ -1376,6 +1379,8 @@ instr_r_head : instr_r '(' { $$ = $1; bParsing instr : instr_none { PASM->EmitOpcode($1); } | instr_var int32 { PASM->EmitInstrVar($1, $2); } | instr_var id { PASM->EmitInstrVarByName($1, $2); } + | instr_tvar '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_CVAR, $3); } + | instr_tvar '!' '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_MCVAR, $4); } | instr_i int32 { PASM->EmitInstrI($1, $2); } | instr_i8 int64 { PASM->EmitInstrI8($1, $2); } | instr_r float64 { PASM->EmitInstrR($1, $2); delete ($2);} @@ -1728,7 +1733,7 @@ type : CLASS_ className { if($2 == PASM->m $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_VAR); corEmitInt($$, $2); //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); } - | CONST_ '!' '!' dottedName { int eltype = ELEMENT_TYPE_MCVAR; + | CONST_ '!' '!' dottedName { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar($4); else { @@ -1758,7 +1763,7 @@ type : CLASS_ className { if($2 == PASM->m n = 0x1FFFFFFF; } $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); } - | CONST_ '!' dottedName { int eltype = ELEMENT_TYPE_CVAR; + | CONST_ '!' dottedName { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar($3); else { diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index 1bd1500980490..8d445ae42df10 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -1491,6 +1491,8 @@ unsigned Assembler::ShortOf(unsigned opcode) case CEE_LDARGA: retcode=CEE_LDARGA_S; break; case CEE_STARG: retcode=CEE_STARG_S; break; + case CEE_LDTARG: retcode=CEE_LDTARG_S; break; + case CEE_LDLOC: retcode=CEE_LDLOC_S; break; case CEE_LDLOCA: retcode=CEE_LDLOCA_S; break; case CEE_STLOC: retcode=CEE_STLOC_S; break; @@ -1613,6 +1615,56 @@ void Assembler::EmitInstrVarByName(Instr* instr, _In_ __nullterminated char* lab instr->opcode = -1; // in case we got here with error } +/**************************************************************************/ +void Assembler::EmitInstrTypeVar(Instr* instr, CorElementType type, int var) +{ + unsigned opc = instr->opcode; + if(m_fOptimize) + { + if(var <= 0xFF) + { + opc = instr->opcode = ShortOf(opc); + } + } + EmitOpcode(instr); + if (isShort(opc)) + { + EmitByte(type); + EmitByte(var); + } + else + { + short sh = (short)type; + EmitBytes((BYTE *)&sh,2); + sh = (short)var; + EmitBytes((BYTE *)&sh,2); + } +} + +/**************************************************************************/ +void Assembler::EmitInstrTypeVarByName(Instr* instr, CorElementType type, _In_ __nullterminated char* label) +{ + int idx = -1; + switch(instr->opcode) + { + case CEE_LDTARG: + case CEE_LDTARG_S: + if(m_pCurMethod) + { + _ASSERTE(type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); + idx = type == CorElementType::ELEMENT_TYPE_MCVAR ? m_pCurMethod->FindTyPar(label) : m_pCurClass->FindTyPar(label); + if(idx >= 0 && m_pCurMethod->m_TyPars[idx].Type() != 0) EmitInstrTypeVar(instr, type, idx); + else report->error("Undeclared const type parameter %s\n",label); + } + else + report->error("Instructions can be used only when in a method scope\n"); + break; + default: + report->error("Named argument illegal for this instruction\n"); + } + instr->opcode = -1; // in case we got here with error +} + /**************************************************************************/ void Assembler::EmitInstrI(Instr* instr, int val) { diff --git a/src/coreclr/ilasm/assembler.h b/src/coreclr/ilasm/assembler.h index b80ef9a16d3c7..48e1058831221 100644 --- a/src/coreclr/ilasm/assembler.h +++ b/src/coreclr/ilasm/assembler.h @@ -900,6 +900,8 @@ class Assembler { void EmitInstrVar(Instr* instr, int var); void EmitInstrVarByName(Instr* instr, _In_ __nullterminated char* label); + void EmitInstrTypeVar(Instr* instr, CorElementType type, int var); + void EmitInstrTypeVarByName(Instr* instr, CorElementType type, _In_ __nullterminated char* label); void EmitInstrI(Instr* instr, int val); void EmitInstrI8(Instr* instr, __int64* val); void EmitInstrR(Instr* instr, double* val); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index f315c5f7490f0..d0d9e5139adc7 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -41,6 +41,8 @@ static Keywords keywords[] = { #undef InlineTypeR #undef ShortInlineTypeI #undef ShortInlineTypeR +#undef InlineTypeVar +#undef ShortInlineTypeVar #define InlineNone INSTR_NONE @@ -65,6 +67,8 @@ static Keywords keywords[] = { #define InlineTypeR INSTR_R #define ShortInlineTypeI INSTR_I #define ShortInlineTypeR INSTR_R +#define InlineTypeVar INSTR_TVAR +#define ShortInlineTypeVar INSTR_TVAR #define InlineVarTok 0 #define NEW_INLINE_NAMES diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 33f34eb272eb7..6bd0d76488836 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -203,234 +203,235 @@ typedef union { #define INSTR_BRTARGET 401 #define INSTR_METHOD 402 #define INSTR_FIELD 403 -#define INSTR_TYPE 404 -#define INSTR_STRING 405 -#define INSTR_SIG 406 -#define INSTR_TOK 407 -#define INSTR_SWITCH 408 -#define _CLASS 409 -#define _NAMESPACE 410 -#define _METHOD 411 -#define _FIELD 412 -#define _DATA 413 -#define _THIS 414 -#define _BASE 415 -#define _NESTER 416 -#define _EMITBYTE 417 -#define _TRY 418 -#define _MAXSTACK 419 -#define _LOCALS 420 -#define _ENTRYPOINT 421 -#define _ZEROINIT 422 -#define _EVENT 423 -#define _ADDON 424 -#define _REMOVEON 425 -#define _FIRE 426 -#define _OTHER 427 -#define _PROPERTY 428 -#define _SET 429 -#define _GET 430 -#define _PERMISSION 431 -#define _PERMISSIONSET 432 -#define REQUEST_ 433 -#define DEMAND_ 434 -#define ASSERT_ 435 -#define DENY_ 436 -#define PERMITONLY_ 437 -#define LINKCHECK_ 438 -#define INHERITCHECK_ 439 -#define REQMIN_ 440 -#define REQOPT_ 441 -#define REQREFUSE_ 442 -#define PREJITGRANT_ 443 -#define PREJITDENY_ 444 -#define NONCASDEMAND_ 445 -#define NONCASLINKDEMAND_ 446 -#define NONCASINHERITANCE_ 447 -#define _LINE 448 -#define P_LINE 449 -#define _LANGUAGE 450 -#define _CUSTOM 451 -#define INIT_ 452 -#define _SIZE 453 -#define _PACK 454 -#define _VTABLE 455 -#define _VTFIXUP 456 -#define FROMUNMANAGED_ 457 -#define CALLMOSTDERIVED_ 458 -#define _VTENTRY 459 -#define RETAINAPPDOMAIN_ 460 -#define _FILE 461 -#define NOMETADATA_ 462 -#define _HASH 463 -#define _ASSEMBLY 464 -#define _PUBLICKEY 465 -#define _PUBLICKEYTOKEN 466 -#define ALGORITHM_ 467 -#define _VER 468 -#define _LOCALE 469 -#define EXTERN_ 470 -#define _MRESOURCE 471 -#define _MODULE 472 -#define _EXPORT 473 -#define LEGACY_ 474 -#define LIBRARY_ 475 -#define X86_ 476 -#define AMD64_ 477 -#define ARM_ 478 -#define ARM64_ 479 -#define MARSHAL_ 480 -#define CUSTOM_ 481 -#define SYSSTRING_ 482 -#define FIXED_ 483 -#define VARIANT_ 484 -#define CURRENCY_ 485 -#define SYSCHAR_ 486 -#define DECIMAL_ 487 -#define DATE_ 488 -#define BSTR_ 489 -#define TBSTR_ 490 -#define LPSTR_ 491 -#define LPWSTR_ 492 -#define LPTSTR_ 493 -#define OBJECTREF_ 494 -#define IUNKNOWN_ 495 -#define IDISPATCH_ 496 -#define STRUCT_ 497 -#define SAFEARRAY_ 498 -#define BYVALSTR_ 499 -#define LPVOID_ 500 -#define ANY_ 501 -#define ARRAY_ 502 -#define LPSTRUCT_ 503 -#define IIDPARAM_ 504 -#define IN_ 505 -#define OUT_ 506 -#define OPT_ 507 -#define _PARAM 508 -#define _OVERRIDE 509 -#define WITH_ 510 -#define NULL_ 511 -#define HRESULT_ 512 -#define CARRAY_ 513 -#define USERDEFINED_ 514 -#define RECORD_ 515 -#define FILETIME_ 516 -#define BLOB_ 517 -#define STREAM_ 518 -#define STORAGE_ 519 -#define STREAMED_OBJECT_ 520 -#define STORED_OBJECT_ 521 -#define BLOB_OBJECT_ 522 -#define CF_ 523 -#define CLSID_ 524 -#define VECTOR_ 525 -#define _SUBSYSTEM 526 -#define _CORFLAGS 527 -#define ALIGNMENT_ 528 -#define _IMAGEBASE 529 -#define _STACKRESERVE 530 -#define _TYPEDEF 531 -#define _TEMPLATE 532 -#define _TYPELIST 533 -#define _MSCORLIB 534 -#define P_DEFINE 535 -#define P_UNDEF 536 -#define P_IFDEF 537 -#define P_IFNDEF 538 -#define P_ELSE 539 -#define P_ENDIF 540 -#define P_INCLUDE 541 -#define CONSTRAINT_ 542 -#define CONST_ 543 +#define INSTR_TVAR 404 +#define INSTR_TYPE 405 +#define INSTR_STRING 406 +#define INSTR_SIG 407 +#define INSTR_TOK 408 +#define INSTR_SWITCH 409 +#define _CLASS 410 +#define _NAMESPACE 411 +#define _METHOD 412 +#define _FIELD 413 +#define _DATA 414 +#define _THIS 415 +#define _BASE 416 +#define _NESTER 417 +#define _EMITBYTE 418 +#define _TRY 419 +#define _MAXSTACK 420 +#define _LOCALS 421 +#define _ENTRYPOINT 422 +#define _ZEROINIT 423 +#define _EVENT 424 +#define _ADDON 425 +#define _REMOVEON 426 +#define _FIRE 427 +#define _OTHER 428 +#define _PROPERTY 429 +#define _SET 430 +#define _GET 431 +#define _PERMISSION 432 +#define _PERMISSIONSET 433 +#define REQUEST_ 434 +#define DEMAND_ 435 +#define ASSERT_ 436 +#define DENY_ 437 +#define PERMITONLY_ 438 +#define LINKCHECK_ 439 +#define INHERITCHECK_ 440 +#define REQMIN_ 441 +#define REQOPT_ 442 +#define REQREFUSE_ 443 +#define PREJITGRANT_ 444 +#define PREJITDENY_ 445 +#define NONCASDEMAND_ 446 +#define NONCASLINKDEMAND_ 447 +#define NONCASINHERITANCE_ 448 +#define _LINE 449 +#define P_LINE 450 +#define _LANGUAGE 451 +#define _CUSTOM 452 +#define INIT_ 453 +#define _SIZE 454 +#define _PACK 455 +#define _VTABLE 456 +#define _VTFIXUP 457 +#define FROMUNMANAGED_ 458 +#define CALLMOSTDERIVED_ 459 +#define _VTENTRY 460 +#define RETAINAPPDOMAIN_ 461 +#define _FILE 462 +#define NOMETADATA_ 463 +#define _HASH 464 +#define _ASSEMBLY 465 +#define _PUBLICKEY 466 +#define _PUBLICKEYTOKEN 467 +#define ALGORITHM_ 468 +#define _VER 469 +#define _LOCALE 470 +#define EXTERN_ 471 +#define _MRESOURCE 472 +#define _MODULE 473 +#define _EXPORT 474 +#define LEGACY_ 475 +#define LIBRARY_ 476 +#define X86_ 477 +#define AMD64_ 478 +#define ARM_ 479 +#define ARM64_ 480 +#define MARSHAL_ 481 +#define CUSTOM_ 482 +#define SYSSTRING_ 483 +#define FIXED_ 484 +#define VARIANT_ 485 +#define CURRENCY_ 486 +#define SYSCHAR_ 487 +#define DECIMAL_ 488 +#define DATE_ 489 +#define BSTR_ 490 +#define TBSTR_ 491 +#define LPSTR_ 492 +#define LPWSTR_ 493 +#define LPTSTR_ 494 +#define OBJECTREF_ 495 +#define IUNKNOWN_ 496 +#define IDISPATCH_ 497 +#define STRUCT_ 498 +#define SAFEARRAY_ 499 +#define BYVALSTR_ 500 +#define LPVOID_ 501 +#define ANY_ 502 +#define ARRAY_ 503 +#define LPSTRUCT_ 504 +#define IIDPARAM_ 505 +#define IN_ 506 +#define OUT_ 507 +#define OPT_ 508 +#define _PARAM 509 +#define _OVERRIDE 510 +#define WITH_ 511 +#define NULL_ 512 +#define HRESULT_ 513 +#define CARRAY_ 514 +#define USERDEFINED_ 515 +#define RECORD_ 516 +#define FILETIME_ 517 +#define BLOB_ 518 +#define STREAM_ 519 +#define STORAGE_ 520 +#define STREAMED_OBJECT_ 521 +#define STORED_OBJECT_ 522 +#define BLOB_OBJECT_ 523 +#define CF_ 524 +#define CLSID_ 525 +#define VECTOR_ 526 +#define _SUBSYSTEM 527 +#define _CORFLAGS 528 +#define ALIGNMENT_ 529 +#define _IMAGEBASE 530 +#define _STACKRESERVE 531 +#define _TYPEDEF 532 +#define _TEMPLATE 533 +#define _TYPELIST 534 +#define _MSCORLIB 535 +#define P_DEFINE 536 +#define P_UNDEF 537 +#define P_IFDEF 538 +#define P_IFNDEF 539 +#define P_ELSE 540 +#define P_ENDIF 541 +#define P_INCLUDE 542 +#define CONSTRAINT_ 543 +#define CONST_ 544 #define YYERRCODE 256 static int yylhs[] = { -1, - 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 137, 137, - 38, 38, 134, 134, 134, 2, 2, 1, 1, 1, - 9, 26, 26, 25, 25, 25, 135, 135, 135, 135, - 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 0, 0, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 138, 138, + 38, 38, 135, 135, 135, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 136, 136, 136, 136, + 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 95, 95, 95, 95, 96, 96, 96, 96, 10, 11, 75, 74, 74, 61, 63, 63, 63, 64, 64, 64, - 67, 67, 133, 133, 133, 62, 62, 62, 62, 62, - 62, 131, 131, 131, 120, 12, 12, 12, 12, 12, - 12, 119, 138, 114, 139, 140, 112, 79, 79, 79, + 67, 67, 134, 134, 134, 62, 62, 62, 62, 62, + 62, 132, 132, 132, 121, 12, 12, 12, 12, 12, + 12, 120, 139, 115, 140, 141, 113, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 141, 141, 142, 142, 113, 113, - 143, 143, 58, 58, 59, 59, 71, 71, 18, 18, + 79, 79, 79, 79, 142, 142, 143, 143, 114, 114, + 144, 144, 58, 58, 59, 59, 71, 71, 18, 18, 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 70, 70, 70, 69, 69, 60, 23, 23, 24, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 117, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 70, 70, 70, 69, 69, 60, 23, 23, 24, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 118, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 4, 4, 37, 37, 16, 16, 77, 77, 77, 77, 77, 77, 77, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 78, 76, 76, 76, 76, 76, 76, 145, - 145, 83, 83, 83, 146, 146, 151, 151, 151, 151, - 151, 151, 151, 151, 147, 84, 84, 84, 148, 148, - 152, 152, 152, 152, 152, 152, 152, 153, 40, 40, - 36, 36, 154, 115, 80, 80, 80, 80, 80, 80, + 8, 8, 78, 76, 76, 76, 76, 76, 76, 146, + 146, 83, 83, 83, 147, 147, 152, 152, 152, 152, + 152, 152, 152, 152, 148, 84, 84, 84, 149, 149, + 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, + 36, 36, 155, 116, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 3, 3, 3, 13, 13, 13, 13, 13, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 155, 116, 116, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 159, 160, 157, 162, - 162, 161, 161, 161, 164, 163, 163, 163, 163, 167, - 167, 167, 170, 165, 168, 169, 166, 166, 166, 118, - 171, 171, 173, 173, 173, 172, 172, 174, 174, 14, - 14, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 43, 43, 43, 43, + 82, 82, 82, 82, 82, 82, 82, 156, 117, 117, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, + 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, + 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, + 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, + 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 176, 33, 33, 34, 34, + 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, 44, 44, 45, 45, 45, 49, 49, 48, 48, 47, 47, 46, 46, 50, 50, 51, 51, 51, 52, 52, - 52, 52, 53, 53, 150, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 6, 6, 6, 6, 6, 55, 55, 56, - 56, 57, 57, 27, 27, 28, 28, 29, 29, 29, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 5, 5, 73, 73, 73, 73, 35, 35, 35, 35, + 52, 52, 53, 53, 151, 97, 98, 105, 99, 100, + 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 6, 6, 6, 6, 6, + 55, 55, 56, 56, 57, 57, 27, 27, 28, 28, + 29, 29, 29, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 5, 5, 73, 73, 73, 73, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, + 35, 35, 35, 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, + 15, 15, 15, 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 32, - 32, 31, 31, 31, 31, 31, 132, 132, 132, 132, - 132, 132, 66, 66, 66, 65, 65, 89, 89, 86, - 86, 87, 17, 17, 39, 39, 39, 39, 39, 39, - 39, 39, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 177, 177, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 122, 122, 90, 90, 91, 91, 178, 123, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 124, 124, - 179, 179, 179, 68, 68, 180, 180, 180, 180, 180, - 180, 181, 183, 182, 125, 125, 126, 126, 184, 184, - 184, 184, 127, 149, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 128, 128, 185, 185, 185, 185, - 185, 185, 185, 129, 129, 94, 94, 94, 130, 130, - 186, 186, 186, 186, + 30, 30, 30, 30, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 32, 32, 31, 31, 31, 31, 31, 133, + 133, 133, 133, 133, 133, 66, 66, 66, 65, 65, + 89, 89, 86, 86, 87, 17, 17, 39, 39, 39, + 39, 39, 39, 39, 39, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 178, 178, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 123, 123, 90, 90, 91, 91, 179, + 124, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 125, 125, 180, 180, 180, 68, 68, 181, 181, + 181, 181, 181, 181, 182, 184, 183, 126, 126, 127, + 127, 185, 185, 185, 185, 128, 150, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 129, 129, 186, + 186, 186, 186, 186, 186, 186, 130, 130, 94, 94, + 94, 131, 131, 187, 187, 187, 187, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -483,552 +484,555 @@ static int yylen[] = { 2, 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, - 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, - 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, - 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, - 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 2, 2, 3, 4, 2, 2, 2, 2, 3, + 2, 2, 2, 5, 3, 2, 2, 2, 2, 2, + 5, 4, 6, 2, 4, 0, 3, 3, 1, 1, + 0, 3, 0, 1, 1, 3, 0, 1, 1, 3, + 1, 3, 4, 4, 4, 4, 5, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 3, 4, 1, 0, + 10, 6, 5, 6, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 2, 3, 4, 6, 5, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, + 2, 4, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 1, 0, 5, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 3, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 3, 2, 2, + 3, 4, 2, 2, 2, 5, 5, 7, 4, 4, + 3, 3, 2, 4, 3, 3, 2, 1, 1, 2, + 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 1, 1, 3, 2, 6, + 7, 3, 3, 3, 6, 0, 1, 3, 5, 6, + 4, 4, 1, 3, 3, 1, 1, 1, 1, 4, + 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, - 2, 2, 5, 5, 7, 4, 4, 3, 3, 2, - 4, 3, 3, 2, 1, 1, 2, 3, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 2, 6, 7, 3, 3, - 3, 6, 0, 1, 3, 5, 6, 4, 4, 1, - 3, 3, 1, 1, 1, 1, 4, 1, 6, 6, - 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 5, 4, 7, 6, 7, 6, 9, 8, 3, - 8, 4, 0, 2, 0, 1, 3, 3, 0, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 0, 2, - 3, 1, 1, 1, 1, 3, 8, 2, 3, 1, - 1, 3, 3, 3, 4, 6, 0, 2, 3, 1, - 3, 1, 4, 3, 0, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 0, 2, 2, 3, 3, 4, - 2, 1, 1, 3, 5, 0, 2, 2, 0, 2, - 4, 3, 1, 1, + 1, 1, 3, 2, 5, 4, 7, 6, 7, 6, + 9, 8, 3, 8, 4, 0, 2, 0, 1, 3, + 3, 0, 2, 2, 2, 3, 2, 2, 2, 2, + 2, 0, 2, 3, 1, 1, 1, 1, 3, 8, + 2, 3, 1, 1, 3, 3, 3, 4, 6, 0, + 2, 3, 1, 3, 1, 4, 3, 0, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 0, 2, 2, + 3, 3, 4, 2, 1, 1, 3, 5, 0, 2, + 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 768, - 769, 0, 0, 0, 0, 0, 0, 846, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 771, + 772, 0, 0, 0, 0, 0, 0, 849, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 825, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 753, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, - 767, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 828, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 756, 757, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 789, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 557, 719, 0, 696, 704, - 702, 0, 705, 706, 707, 708, 709, 710, 715, 716, - 717, 718, 674, 703, 0, 695, 0, 0, 0, 495, - 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, - 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 792, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 560, 722, 0, 699, 707, + 705, 0, 708, 709, 710, 711, 712, 713, 718, 719, + 720, 721, 677, 706, 0, 698, 0, 0, 0, 495, + 0, 561, 562, 563, 0, 0, 0, 0, 0, 0, + 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 799, 817, 835, 849, 0, 0, 0, 0, 0, + 0, 802, 820, 838, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, + 0, 566, 0, 559, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 784, 0, 0, 790, - 791, 792, 794, 0, 795, 796, 797, 798, 0, 847, - 848, 0, 0, 0, 711, 712, 713, 714, 673, 0, - 676, 0, 697, 699, 237, 238, 0, 0, 677, 0, - 0, 0, 0, 0, 0, 690, 0, 682, 0, 0, - 0, 0, 0, 681, 680, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 64, 440, 68, 730, 0, 0, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 0, 375, 0, 338, 346, 347, 0, - 0, 0, 0, 368, 5, 0, 510, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 348, 352, 351, 354, 353, 355, 0, 340, 342, 349, - 361, 339, 0, 0, 0, 0, 0, 0, 102, 0, - 111, 132, 109, 110, 113, 114, 0, 115, 116, 117, - 118, 119, 120, 121, 122, 112, 131, 124, 123, 133, - 0, 136, 0, 107, 0, 281, 276, 277, 278, 279, - 280, 284, 282, 292, 283, 285, 286, 287, 288, 289, - 290, 291, 0, 293, 317, 0, 0, 0, 416, 0, - 415, 0, 414, 0, 413, 0, 411, 0, 412, 436, - 0, 0, 0, 0, 780, 770, 0, 0, 828, 827, - 826, 0, 0, 0, 213, 0, 199, 193, 194, 195, - 196, 201, 202, 203, 204, 198, 205, 206, 197, 0, - 0, 391, 0, 0, 0, 0, 0, 739, 0, 738, - 0, 0, 0, 0, 0, 314, 315, 0, 0, 0, - 0, 75, 69, 0, 96, 786, 0, 0, 793, 0, - 675, 698, 0, 0, 0, 0, 689, 0, 0, 0, - 0, 0, 688, 0, 0, 0, 0, 723, 678, 0, - 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 27, 0, 105, 242, 256, 0, 0, 825, 0, - 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, - 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, - 0, 0, 0, 0, 0, 350, 512, 511, 513, 514, - 44, 0, 0, 509, 515, 516, 519, 518, 520, 524, - 525, 0, 523, 526, 0, 0, 0, 0, 531, 0, - 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, - 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, - 0, 0, 12, 802, 810, 811, 800, 803, 0, 0, - 822, 0, 0, 13, 0, 820, 0, 818, 0, 0, - 0, 0, 14, 842, 843, 836, 0, 0, 15, 853, - 854, 850, 0, 125, 126, 127, 128, 129, 130, 0, - 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 396, 0, 0, 404, 0, 0, - 829, 830, 831, 832, 833, 834, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, - 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 687, 0, 0, - 0, 0, 0, 0, 0, 0, 679, 686, 0, 0, - 0, 0, 0, 179, 180, 0, 0, 0, 0, 0, - 139, 0, 245, 259, 835, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 517, 0, 548, 0, 0, 0, - 546, 367, 384, 370, 0, 387, 376, 377, 378, 379, - 381, 382, 380, 0, 0, 0, 0, 805, 804, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 841, 0, 0, 0, 0, 0, 0, 151, 153, 152, - 154, 0, 149, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, - 0, 398, 403, 0, 772, 0, 0, 583, 621, 575, - 576, 0, 610, 577, 578, 579, 580, 581, 582, 612, - 588, 589, 590, 591, 0, 0, 0, 618, 0, 0, - 0, 0, 573, 574, 597, 598, 599, 616, 600, 601, - 602, 603, 0, 0, 606, 0, 614, 620, 273, 0, - 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, - 0, 732, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 444, - 0, 77, 0, 97, 98, 0, 99, 100, 101, 0, - 0, 0, 0, 683, 684, 725, 721, 0, 0, 0, - 244, 243, 0, 0, 258, 257, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 0, 0, 358, - 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, - 0, 529, 0, 0, 532, 0, 0, 0, 344, 0, - 0, 0, 373, 374, 801, 812, 0, 814, 806, 809, - 787, 813, 819, 821, 0, 0, 0, 0, 0, 134, - 0, 0, 0, 0, 157, 0, 0, 0, 148, 141, - 294, 0, 0, 0, 305, 306, 307, 308, 300, 301, - 302, 299, 303, 304, 0, 0, 297, 0, 0, 0, - 0, 0, 0, 402, 410, 409, 408, 407, 405, 406, - 0, 0, 207, 611, 584, 585, 586, 587, 0, 607, - 613, 615, 619, 0, 0, 0, 617, 604, 605, 659, - 628, 629, 0, 656, 630, 631, 632, 633, 634, 635, - 658, 640, 641, 642, 643, 626, 627, 648, 649, 650, - 651, 652, 653, 654, 655, 625, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 672, 644, - 0, 0, 592, 200, 0, 209, 0, 191, 0, 743, - 744, 746, 745, 0, 742, 0, 741, 728, 0, 735, - 78, 75, 70, 0, 0, 539, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 82, 0, 80, 0, 95, - 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 172, 251, 252, 253, - 254, 246, 0, 0, 0, 173, 265, 264, 266, 267, - 260, 181, 0, 362, 0, 365, 366, 0, 45, 46, - 0, 528, 0, 534, 535, 345, 0, 547, 0, 0, - 0, 840, 851, 0, 0, 160, 0, 0, 0, 145, - 0, 163, 0, 0, 296, 0, 0, 0, 318, 319, - 320, 321, 0, 0, 776, 0, 774, 0, 0, 0, - 0, 657, 636, 637, 638, 639, 646, 0, 0, 647, - 0, 593, 0, 272, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 211, - 441, 0, 0, 78, 0, 0, 0, 217, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 0, 87, 86, 0, 435, - 781, 685, 0, 186, 0, 189, 0, 0, 247, 248, - 249, 250, 263, 261, 262, 357, 0, 0, 530, 550, - 388, 389, 0, 155, 0, 0, 166, 0, 165, 162, - 0, 0, 309, 310, 311, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 645, 0, 0, 594, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 736, 67, - 169, 0, 0, 434, 0, 433, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 424, 0, 423, 0, 422, - 0, 421, 0, 419, 417, 0, 418, 420, 0, 432, - 0, 431, 0, 430, 0, 429, 0, 450, 0, 446, - 445, 0, 449, 0, 448, 0, 0, 90, 0, 0, - 0, 0, 0, 0, 364, 0, 0, 158, 161, 146, - 295, 313, 270, 0, 778, 0, 0, 570, 0, 596, - 0, 747, 0, 0, 0, 752, 737, 215, 214, 484, - 480, 428, 0, 427, 0, 426, 0, 425, 0, 482, - 480, 478, 476, 470, 473, 482, 480, 478, 476, 493, - 486, 447, 489, 89, 91, 0, 0, 188, 0, 0, - 0, 0, 168, 0, 0, 623, 0, 569, 0, 595, - 0, 0, 0, 0, 0, 482, 480, 478, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 79, 0, 0, 0, 0, 807, 322, 0, - 749, 750, 751, 466, 485, 465, 481, 0, 0, 0, - 0, 456, 483, 455, 454, 479, 453, 477, 451, 472, - 471, 452, 474, 475, 460, 459, 458, 457, 469, 494, - 488, 487, 467, 490, 0, 468, 492, 255, 0, 0, - 0, 0, 0, 464, 463, 462, 461, 491, 0, 0, - 360, 0, 327, 323, 332, 333, 334, 335, 336, 324, - 325, 326, 328, 329, 330, 331, 274, 0, 0, 0, - 0, 568, 0, 0, 0, 0, 182, 337, 0, 0, - 0, 0, 0, 0, 0, 0, 183, + 73, 0, 0, 103, 0, 21, 787, 0, 0, 793, + 794, 795, 797, 0, 798, 799, 800, 801, 0, 850, + 851, 0, 0, 0, 714, 715, 716, 717, 676, 0, + 679, 0, 700, 702, 237, 238, 0, 0, 680, 0, + 0, 0, 0, 0, 0, 693, 0, 685, 0, 0, + 0, 0, 0, 684, 683, 0, 0, 0, 0, 0, + 234, 0, 0, 0, 64, 440, 68, 733, 0, 0, + 496, 497, 499, 500, 501, 502, 503, 504, 498, 505, + 506, 507, 508, 509, 0, 375, 0, 338, 346, 347, + 0, 0, 0, 0, 368, 5, 0, 511, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, + 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, + 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, + 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, + 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, + 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, + 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, + 412, 436, 0, 0, 0, 0, 783, 773, 0, 0, + 831, 830, 829, 0, 0, 0, 213, 0, 199, 193, + 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, + 197, 0, 0, 391, 0, 0, 0, 0, 0, 742, + 0, 741, 0, 0, 0, 0, 0, 314, 315, 0, + 0, 0, 0, 75, 69, 0, 96, 789, 0, 0, + 796, 0, 678, 701, 0, 0, 0, 0, 692, 0, + 0, 0, 0, 0, 691, 0, 0, 0, 0, 726, + 681, 0, 723, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 27, 0, 105, 242, 256, 0, 0, + 828, 0, 0, 3, 0, 339, 174, 175, 177, 176, + 178, 184, 185, 140, 0, 0, 0, 4, 341, 343, + 0, 0, 0, 0, 0, 0, 0, 350, 513, 512, + 516, 517, 44, 0, 0, 510, 518, 519, 522, 521, + 523, 527, 528, 0, 526, 0, 529, 0, 0, 0, + 0, 534, 0, 0, 0, 0, 0, 385, 0, 383, + 386, 369, 0, 0, 0, 0, 0, 0, 0, 0, + 372, 0, 0, 0, 0, 12, 805, 813, 814, 803, + 806, 0, 0, 825, 0, 0, 13, 0, 823, 0, + 821, 0, 0, 0, 0, 14, 845, 846, 839, 0, + 0, 15, 856, 857, 853, 0, 125, 126, 127, 128, + 129, 130, 0, 106, 142, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, + 404, 0, 0, 832, 833, 834, 835, 836, 837, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 690, 0, 0, 0, 0, 0, 0, 0, 0, 682, + 689, 0, 0, 0, 0, 0, 179, 180, 0, 0, + 0, 0, 0, 139, 0, 245, 259, 838, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 514, 0, 0, 0, 0, 0, 0, 520, + 0, 551, 0, 0, 0, 549, 367, 384, 370, 0, + 387, 376, 377, 378, 379, 381, 382, 380, 0, 0, + 0, 0, 808, 807, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 844, 0, 0, 0, 0, + 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 401, 0, 0, 0, 0, 0, 398, 403, 0, 775, + 0, 0, 586, 624, 578, 579, 0, 613, 580, 581, + 582, 583, 584, 585, 615, 591, 592, 593, 594, 0, + 0, 0, 621, 0, 0, 0, 0, 576, 577, 600, + 601, 602, 619, 603, 604, 605, 606, 0, 0, 609, + 0, 617, 623, 273, 0, 0, 0, 0, 0, 0, + 0, 730, 0, 0, 0, 0, 735, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 444, 0, 77, 0, 97, 98, + 0, 99, 100, 101, 0, 0, 0, 0, 686, 687, + 728, 724, 0, 0, 0, 244, 243, 0, 0, 258, + 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 0, 0, 0, 358, 0, 0, 0, 0, 0, + 0, 359, 0, 0, 0, 515, 0, 532, 0, 0, + 535, 0, 0, 0, 344, 0, 0, 0, 373, 374, + 804, 815, 0, 817, 809, 812, 790, 816, 822, 824, + 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, + 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, + 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, + 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, + 410, 409, 408, 407, 405, 406, 0, 0, 207, 614, + 587, 588, 589, 590, 0, 610, 616, 618, 622, 0, + 0, 0, 620, 607, 608, 662, 631, 632, 0, 659, + 633, 634, 635, 636, 637, 638, 661, 643, 644, 645, + 646, 629, 630, 651, 652, 653, 654, 655, 656, 657, + 658, 628, 663, 664, 665, 666, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 647, 0, 0, 595, 200, + 0, 209, 0, 191, 0, 746, 747, 749, 748, 0, + 745, 0, 744, 731, 0, 738, 78, 75, 70, 0, + 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 82, 0, 80, 0, 95, 0, 0, 0, 190, + 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 172, 251, 252, 253, 254, 246, 0, 0, + 0, 173, 265, 264, 266, 267, 260, 181, 0, 362, + 0, 365, 366, 0, 45, 46, 0, 531, 0, 537, + 538, 345, 0, 550, 0, 0, 0, 843, 854, 0, + 0, 160, 0, 0, 0, 145, 0, 163, 0, 0, + 296, 0, 0, 0, 318, 319, 320, 321, 0, 0, + 779, 0, 777, 0, 0, 0, 0, 660, 639, 640, + 641, 642, 649, 0, 0, 650, 0, 596, 0, 272, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 211, 441, 0, 0, 78, + 0, 0, 0, 217, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 0, 87, 86, 0, 435, 784, 688, 0, 186, + 0, 189, 0, 0, 247, 248, 249, 250, 263, 261, + 262, 357, 0, 0, 533, 553, 388, 389, 0, 155, + 0, 0, 166, 0, 165, 162, 0, 0, 309, 310, + 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 0, 597, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 739, 67, 169, 0, 0, 434, + 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 424, 0, 423, 0, 422, 0, 421, 0, 419, + 417, 0, 418, 420, 0, 432, 0, 431, 0, 430, + 0, 429, 0, 450, 0, 446, 445, 0, 449, 0, + 448, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 364, 0, 0, 158, 161, 146, 295, 313, 270, 0, + 781, 0, 0, 573, 0, 599, 0, 750, 0, 0, + 0, 755, 740, 215, 214, 484, 480, 428, 0, 427, + 0, 426, 0, 425, 0, 482, 480, 478, 476, 470, + 473, 482, 480, 478, 476, 493, 486, 447, 489, 89, + 91, 0, 0, 188, 0, 0, 0, 0, 168, 0, + 0, 626, 0, 572, 0, 598, 0, 0, 0, 0, + 0, 482, 480, 478, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, + 0, 0, 0, 810, 322, 0, 752, 753, 754, 466, + 485, 465, 481, 0, 0, 0, 0, 456, 483, 455, + 454, 479, 453, 477, 451, 472, 471, 452, 474, 475, + 460, 459, 458, 457, 469, 494, 488, 487, 467, 490, + 0, 468, 492, 255, 0, 0, 0, 0, 0, 464, + 463, 462, 461, 491, 0, 0, 360, 0, 327, 323, + 332, 333, 334, 335, 336, 324, 325, 326, 328, 329, + 330, 331, 274, 0, 0, 0, 0, 571, 0, 0, + 0, 0, 182, 337, 0, 0, 0, 0, 0, 0, + 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 470, 854, 159, 733, 105, 106, 759, 35, - 36, 682, 738, 409, 1071, 73, 1083, 785, 786, 973, - 974, 1020, 1482, 1483, 555, 1538, 739, 740, 741, 211, - 501, 502, 175, 176, 850, 851, 1078, 662, 1085, 1003, - 1250, 889, 890, 1504, 1505, 1500, 1495, 1502, 1503, 1494, - 1511, 1512, 1510, 161, 678, 504, 505, 1198, 1199, 978, - 680, 1309, 681, 891, 668, 669, 1137, 760, 1202, 787, - 631, 212, 229, 230, 107, 231, 108, 214, 187, 190, - 208, 1562, 702, 703, 791, 663, 664, 92, 37, 113, - 477, 115, 205, 116, 38, 39, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 40, 41, 299, 42, 43, 181, 44, 341, 46, 47, - 342, 49, 50, 355, 51, 356, 52, 357, 53, 358, - 54, 343, 344, 345, 58, 346, 293, 60, 61, 62, - 189, 384, 633, 532, 533, 927, 534, 928, 535, 215, - 1162, 1171, 63, 852, 347, 348, 349, 350, 746, 352, - 353, 579, 580, 354, 581, 747, 582, 583, 584, 585, - 64, 201, 76, 421, 422, 893, 65, 605, 597, 598, - 599, 600, 607, 608, 616, 622, + 158, 71, 472, 859, 159, 738, 105, 106, 764, 35, + 36, 685, 743, 411, 1077, 73, 1089, 790, 791, 979, + 980, 1026, 1488, 1489, 557, 1544, 744, 745, 746, 211, + 503, 504, 175, 176, 855, 856, 1084, 665, 1091, 1009, + 1256, 894, 895, 1510, 1511, 1506, 1501, 1508, 1509, 1500, + 1517, 1518, 1516, 161, 681, 506, 507, 1204, 1205, 984, + 683, 1315, 684, 896, 671, 672, 1143, 765, 1208, 792, + 634, 212, 229, 230, 107, 231, 108, 214, 187, 190, + 208, 1568, 705, 706, 796, 666, 667, 92, 37, 113, + 479, 115, 205, 116, 38, 39, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 40, 41, 299, 42, 43, 181, 44, 343, 46, + 47, 344, 49, 50, 357, 51, 358, 52, 359, 53, + 360, 54, 345, 346, 347, 58, 348, 293, 60, 61, + 62, 189, 386, 636, 534, 535, 932, 536, 933, 537, + 215, 1168, 1177, 63, 857, 349, 350, 351, 352, 751, + 354, 355, 582, 583, 356, 584, 752, 585, 586, 587, + 588, 64, 201, 76, 423, 424, 898, 65, 608, 600, + 601, 602, 603, 610, 611, 619, 625, }; static int yysindex[] = { 0, -14929, 0, -281, 626, 0, 125, -222, 1814, 1814, 0, - 0, -18, 2394, 189, 163, -247, -184, 0, -190, 79, - 79, 261, 261,10185, 243, 0, 626, 626, 626, 626, - 0, 0, 133, 0, 203, 203, 203, 0, 0, 0, - 311, 361, 0, 0, 0, 0, 0, 0, 0, 373, - 416, 427, 436, 0, 0, 0, 0, 0, 0, 203, - 0, 205, 0, 1668, 79, 0, 0, 0, 0, 517, - 0, 79, 0, 0, 0, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12471, -13, 593, 0, 0, 582, 607, 0, 0, - 638, 841, 841,12386, 8115, 0, 632, 0, 0, 672, - 79, 79, -40, 0, 1631, 597, 626, 517, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8115, 0, 0, - 0, 1019, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1205, 0, 418, 1205, -162, 0, - 5553, 0, 0, 0, 1835, 73, 214, 517, 698, 413, - 0, 363, 367, 0, 371, 428, 2999, 1205, 36, 517, - 517, 517, 0, 0, 762, 559, 799, 813, 0, 0, -13962, 0, 0, 0, 0, 820, 5221,12471, 562, 6772, - 843, 86, 102, 106, 109, 124, 164, 854, 1250, 857, - 0, 0, 203, 123, 658, 626, 814,11954, 851, 152, - 676, 0, 580, 0, 841, 0, 882, 65, 883, 682, - 79, 79, 0, 0, 0, 0, 0, 0, 0, 911, - 0, 1722, 174, 0, 870, 0, 0, 12, 1631, 0, - 0, 0, 0, 498, 0, 0, 0, 0, 517, 0, - 0, 11, 517, 0, 0, 0, 0, 0, 0, 1205, - 0, 697, 0, 0, 0, 0,12084, 326, 0, 626, - 897, 43, 914, 936, 517, 0, 626, 0, 980, 983, - 626, -85, 8115, 0, 0, 626, 626, 626, 626, 8115, - 0, 1205, 879, 883, 0, 0, 0, 0, 7006,13135, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 79, 0, 0, 0, 79, - 938, -41,12549, 0, 0, 995, 0, 571, 79, 261, - 397, 571, 2999, 1376,12471, -155, 841,12386, 1000, 203, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 655, -24, 540, 800, 1967, 271, 0, 1021, - 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 0,12471, 0, 1023, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1057, 0, 0, 1080, 79, 79, 0, 79, - 0, 79, 0, 261, 0, 613, 0, 613, 0, 0, - 1003, 1081, 528, 1088, 0, 0, 79, 79, 0, 0, - 0, 910, 517, 0, 0, 1100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, - 1319, 0, 626, 62, 885, 1026, 8115, 0,12660, 0, - 889, 1111, 1115, 1119, 2999, 0, 0, 143, 517, 1101, - 888, 0, 0, 883, 0, 0, 703, 28, 0, 626, - 0, 0, 517, 909, 936, 517, 0, 178, 626, 626, - 626, 517, 0, 517,12471,12471, 517, 0, 0, 906, - 0, 91, 676, 1122, 1144, 517, 517, 517, 517,11753, - 0, 0, 824, 0, 0, 0, 79, 79, 0, -289, -12759, 0, 1069, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1071, 1072, 1078, 0, 0, 0, 1132, 79, - 388, 505, 79, 0, 932, 0, 0, 0, 0, 0, - 0, 1168, 1175, 0, 0, 0, 0, 0, 0, 0, - 0,12084, 0, 0, 1187, 883, 203, 8115, 0, 571, - 1188, 1191, 0,14059, 0,12471, 0, 0, 0, 655, - 53, 53, 53, 53, -24, 916, 918, 0, 769, 1189, - 81, 17, 0, 0, 0, 0, 0, 0, 203, 203, - 0, 1206, 1209, 0, 203, 0, 203, 0, 1222, -212, - 626, 802, 0, 0, 0, 0, 626, 811, 0, 0, - 0, 0, 79, 0, 0, 0, 0, 0, 0, -7, - 0, 0, 1235, 79, 885, 840, 885, 1241, 1192, 1243, - 1248, 1252, 1253, 1263, 0, 1250, 1274, 0, 1233, 1273, - 0, 0, 0, 0, 0, 0, 79,15137, 20, 422, - 0, 591, 1277, 1275, 0, 1014, 1506, 1278, 1198, 1268, - 0, 1070, 0, 0, 1269, 5863, 1292, 1294, -123, 1217, - 3595, 518, 203, 626, 517, 626, 517, 0, 626, 698, - 698, 698, 1305, 1307, 79, -85, 0, 0, 8115, 1309, -12471,12308, 1315, 0, 0, 658, 554, 630, 0, 1077, - 0,14232, 0, 0, 0, 79, 1261, 79, 517, 79, - 467, 1262, 8115, -123, 79, 261, 517, 1082, 885, 1322, - 689, 1320, 1331, 1333, 0, 0, 0, 840, 1337, 1336, - 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, - 0, 0, 0, 528, 79, 79, 1341, 0, 0, 1324, - 1344, 883, 1345, 1346, 1348, 1349, 1355, 1356, 79, 626, - 0, 517, 626, 21, 626, 1357, 1350, 0, 0, 0, - 0, 1091, 0, 0, 299, 227, 1339,12471, 1358, 3, - 352, -213, 131, 829, 1312, 0, 1312, 1312, 1312, 1312, - 1312, 0, 0, 79, 0, 79, 1363, 0, 0, 0, - 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1365, 915, 917, 0, 919, 1367, - -372, 1131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1365, 1365, 0,11065, 0, 0, 0, 366, - 1370, 203, 528, 1360, 0, 771, 0, 885, 1293, 0, -12660, 0, 1299, 0, 190, 79, 1361, 0, 0, 517, - 1101, 0, 169, 187, 1027, 232, 330, 369, 432, 458, - 469, 521, 551, 581, 596, 628, 657, 659, 0, 0, - 312, 0, 203, 0, 0, 528, 0, 0, 0, 1383, - 517, 517, 698, 0, 0, 0, 0, 676, 0, 966, - 0, 0, 517, 626, 0, 0, 8115, 517, 79, 517, - 79, 635, 8115, -123,13084, 0, 92, 1034, 2081, 0, - 1036, 1332, 1335,12471, 1360,12084, 0, 1388, 1394, 626, - 907, 0, 0, 571, 0, 571, 1395, 131, 0, 0, - 1123, 1124, 0, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 1398, 698, 517, 79, 517, 0, - 79, 1402, 1091,12471, 0,12471, 968, 626, 0, 0, - 0, 885, 955, 1404, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1389, 1390, 0, 1359, 1362, 1366, - 1369, 1409, -123, 0, 0, 0, 0, 0, 0, 0, - 1407, 0, 0, 0, 0, 0, 0, 0, 952, 0, - 0, 0, 0, 885, 1378, 1379, 0, 0, 0, 0, - 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -3, 153, 0, 0, -48, 0, 2079, 0, 1418, 0, - 0, 0, 0, 883, 0, 1420, 0, 0, 1354, 0, - 0, 0, 0, 883, 1386, 0, 1430, 1439, 1446, 1447, - 477, 79, 79, 79, 660, 665, 685, 686, 79, 79, - 79, 79, 79, 79, 261, 79, 557, 79, 715, 79, - 79, 79, 79, 79, 79, 79, 261, 79, 3595, 79, - -89, 79, 569, 79, 0, 0, 3291, 0, 1450, 0, - 1079, 1457, 2999, 0, 517, 1319, 1406, 1410,12471,12084, - 978, 0, 2999, 2999, 2999, 2999, 0, 0, 0, 0, - 0, 0, 2999, 2999, 2999, 0, 0, 0, 0, 0, - 0, 0, 528, 0, 1458, 0, 0, 1230, 0, 0, - 517, 0, 1464, 0, 0, 0, 528, 0, 528, 79, - 1448, 0, 0, 1466, 79, 0, 626, 1473, 1480, 0, - -7, 0, 968, 883, 0, 79, 604, 654, 0, 0, - 0, 0,15137, 1469, 0, 79, 0, 1465, 1022, 79, - 79, 0, 0, 0, 0, 0, 0, 885, 1437, 0, - 79, 0, 213, 0, 1495, 1501, 1044, 1507, 1511, 1512, - 1513, 1514, 1515, 1518, 1520, 1524, 1525, 0, 883, 0, - 0, 79, 871, 0, 16, 1417, 1504, 0, 0, 0, - 0, 1526, 1483, 1537, 1488, 79, 79, 79, 79, 79, - 79, 261, 79, 1542, 1491, 1544, 1493, 1549, 1498, 1551, - 1500, 1553, 1555, 1510, 1558, 1564, 1516, 1570, 1519, 1572, - 1521, 1575, 1529, 1577, 1530, 1585, 1534, 1590, 1591, 1543, - 1597, 1380, 1598, 1552, 0, 838, 0, 0, 642, 0, - 0, 0, 384, 0, 1600, 0, 1375, 841, 0, 0, - 0, 0, 0, 0, 0, 0,12471, -123, 0, 0, - 0, 0, 81, 0, 1609, 968, 0,12471, 0, 0, - 970, 1620, 0, 0, 0, 0, 1623, 1625, 0, 79, - 885, 1578, 1582, 883, 0, 1583, 79, 0, 1630, 1637, - 1638, 1643, 1644, 1628, 1632, 1634, 1648, 41, 0, 0, - 0, 1652, 1657, 0, 1663, 0, 1664, 1673, 1626, 1682, - 1635, 1688, 1642, 1695, 1645, 0, 1697, 0, 1699, 0, - 1701, 0, 1703, 0, 0, 1704, 0, 0, 1706, 0, - 1707, 0, 1708, 0, 1711, 0, 1713, 0, 1714, 0, - 0, 1721, 0, 1727, 0, 1723, 1508, 0, 1677, 421, - 0,12471, -123, 8115, 0, 1712, 1717, 0, 0, 0, - 0, 0, 0, 0, 0, 1735, 740, 0,15220, 0, - 1684, 0, 79, 79, 79, 0, 0, 0, 0, 0, - 0, 0, 1738, 0, 1739, 0, 1741, 0, 1747, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3595, 1756, 0, 1712,12084, - 1709, 1761, 0, 81, 1762, 0, 885, 0, 0, 0, - 1763, 1764, 1765, 31, 39, 0, 0, 0, 0, 63, - 83, 115, 24, 90, 473, 119, 122, 134, 93, 1776, - 38, 578, 0, 1360, 1767, 1536, 0, 0, 0, 1039, - 0, 0, 0, 0, 0, 0, 0, 137, 162, 167, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1548, 0, 0, 0, 0, -123, - 1771, 2645, 885, 0, 0, 0, 0, 0, 1773, 1775, - 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 987, 1306, 0, - 79, 0, 1461, 1779, 1780, 841, 0, 0, 8115,12084, - 1550, -123, 1712, 1782, 0, 1785, 0, +15657, 0, -367, 638, 0, 42, -241, 1682, 1682, 0, + 0, -117, 1258, 172, 98, -324, -185, 0, -36, 60, + 60, -17, -17,12974, 229, 0, 638, 638, 638, 638, + 0, 0, 133, 0, 157, 157, 157, 0, 0, 0, + 255, 320, 0, 0, 0, 0, 0, 0, 0, 334, + 349, 399, 413, 0, 0, 0, 0, 0, 0, 157, + 0, 265, 0, 1344, 60, 0, 0, 0, 0, 498, + 0, 60, 0, 0, 0, 703, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1790, -12, 558, 0, 0, 578, 582, 0, 0, + 714, 977, 977,13177,11603, 0, 593, 0, 0, 599, + 60, 60, 318, 0, 2323, 836, 638, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0,11603, 0, 0, + 0, 930, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 0, 356, 116, 493, 0, + 863, 0, 0, 0, 2363, 38, 226, 498, 630, 43, + 0, 290, 336, 0, 343, 348, 1662, 116, 44, 498, + 498, 498, 0, 0, 657, 478, 716, 725, 0, 0, +14537, 0, 0, 0, 0, 736, 3923, 1790, 473, 6571, + 758, 65, 75, 84, 91, 101, 102, 765, 801, 772, + 0, 0, 157, 29, 1001, 638, 734,12600, 779, 95, + 533, 0, 231, 0, 977, 0, 814, 58, 820, 610, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 873, + 0,12195, 111, 0, 835, 0, 0, 6, 2323, 0, + 0, 0, 0, 456, 0, 0, 0, 0, 498, 0, + 0, 9, 498, 0, 0, 0, 0, 0, 0, 116, + 0, 656, 0, 0, 0, 0,12760, 380, 0, 638, + 915, 117, 921, 859, 498, 0, 638, 0, 958, 982, + 638, 72,11603, 0, 0, 638, 638, 638, 638,11603, + 0, 116, 908, 820, 0, 0, 0, 0, 911,15546, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 60, 0, 60, 0, 0, 0, + 60, 948, -51,13280, 0, 0, 985, 0, 429, 60, + -17, 454, 429, 1662, 472, 1014, 1790, -127, 977,13177, + 1032, 157, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 1042, 427, 5871, 15, 979, 854, + 0, 1038, 0, 0, 0, 0, 0, 0, 983, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 1790, 0, 1046, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1061, 0, 0, 1073, 60, 60, + 0, 60, 0, 60, 0, -17, 0, 644, 0, 644, + 0, 0, 992, 1088, 703, 1095, 0, 0, 60, 60, + 0, 0, 0, 1372, 498, 0, 0, 1097, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1103, 475, 0, 638, 123, 889, 1058,11603, 0, +13380, 0, 920, 1141, 1152, 1153, 1662, 0, 0, 85, + 498, 1135, 923, 0, 0, 820, 0, 0, 740, 16, + 0, 638, 0, 0, 498, 924, 859, 498, 0, 434, + 638, 638, 638, 498, 0, 498, 1790, 1790, 498, 0, + 0, 960, 0, 156, 533, 1175, 1195, 498, 498, 498, + 498,12345, 0, 0, 882, 0, 0, 0, 60, 60, + 0, -289,13483, 0, 1125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1128, 1136, 1137, 0, 0, 0, + 1192, 60, -19, 345, 60, 0, 1000, 0, 0, 0, + 0, 0, 0, 1238, 1240, 0, 0, 0, 0, 0, + 0, 0, 0,12760, 0, 125, 0, 1242, 820, 157, +11603, 0, 429, 1243, 1245, 0,14636, 0, 1790, 0, + 0, 0, 1042, -53, -53, -53, -53, 427, 966, 976, + 0, 827, 1239, 14, 34, 0, 0, 0, 0, 0, + 0, 157, 157, 0, 1244, 1246, 0, 157, 0, 157, + 0, 1268, -55, 638, 839, 0, 0, 0, 0, 638, + 846, 0, 0, 0, 0, 60, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 1276, 60, 889, 6900, 889, + 1287, 1241, 1292, 1295, 1298, 1300, 1301, 0, 801, 1316, + 0, 1306, 1334, 0, 0, 0, 0, 0, 0, 60, +15968, 21, 445, 0, 539, 1339, 1337, 0, 670, 760, + 1340, 1262, 1322, 0, 1138, 0, 0, 1327, 7211, 1358, + 1360, 439, 1279, 3130, 650, 157, 638, 498, 638, 498, + 0, 638, 630, 630, 630, 1364, 1368, 60, 72, 0, + 0,11603, 1370, 1790,13077, 749, 0, 0, 1001, 468, + 523, 0, 1140, 0,14788, 0, 0, 0, 60, 1318, + 60, 498, 60, 838, 1319,11603, 439, 60, -17, 498, + 1142, 703, 0, 889, 1374, 634, 1379, 1377, 1380, 0, + 0, 0, 6900, 1385, 1383, 0, 0, 0, 0, 429, + 0, 0, 0, 0, 0, 0, 0, 0, 703, 60, + 60, 1388, 0, 0, 1371, 1392, 820, 1394, 1401, 1393, + 1403, 1404, 1405, 60, 638, 0, 498, 638, 23, 638, + 1413, 1417, 0, 0, 0, 0, 1164, 0, 0, 152, + 148, 1397, 1790, 1419, 11, 902, -178, 37, 777, 1373, + 0, 1373, 1373, 1373, 1373, 1373, 0, 0, 60, 0, + 60, 1420, 0, 0, 0, 0, 973, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1422, + 968, 980, 0, 967, 1432, 13, 1196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1422, 1422, 0, + 3250, 0, 0, 0, 161, 1433, 157, 703, 1414, 0, + 1511, 0, 889, 1352, 0,13380, 0, 1363, 0, 144, + 60, 1421, 0, 0, 498, 1135, 0, 107, 128, 984, + 147, 154, 203, 437, 485, 508, 557, 612, 619, 631, + 676, 684, 712, 0, 0, 447, 0, 157, 0, 0, + 703, 0, 0, 0, 1440, 498, 498, 630, 0, 0, + 0, 0, 533, 0, 1035, 0, 0, 498, 638, 0, + 0,11603, 498, 60, 498, 60, 953,11603, 439,12550, + 0, 382, 436, 1003, 0, 1098, 1395, 1398, 1790, 1414, +12760, 0, 1449, 1451, 638, 0, 1028, 0, 0, 429, + 0, 429, 1453, 37, 0, 0, 1185, 1187, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 1464, 630, 498, 60, 498, 0, 60, 1473, 1164, 1790, + 0, 1790, 1054, 638, 0, 0, 0, 889, 1650, 1482, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1465, 1467, 0, 1435, 1439, 1454, 1455, 1486, 439, 0, + 0, 0, 0, 0, 0, 0, 1489, 0, 0, 0, + 0, 0, 0, 0, 1041, 0, 0, 0, 0, 889, + 1461, 1468, 0, 0, 0, 0, 0, 0, 1087, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -3, 39, 0, 0, + -31, 0, 1931, 0, 1515, 0, 0, 0, 0, 820, + 0, 1524, 0, 0, 1442, 0, 0, 0, 0, 820, + 1475, 0, 1525, 1528, 1530, 1531, 271, 60, 60, 60, + 731, 761, 762, 764, 60, 60, 60, 60, 60, 60, + -17, 60, 893, 60, 828, 60, 60, 60, 60, 60, + 60, 60, -17, 60, 3130, 60, -137, 60, 774, 60, + 0, 0, 3045, 0, 1536, 0, 1156, 1538, 1662, 0, + 498, 475, 1494, 1497, 1790,12760, 1071, 0, 1662, 1662, + 1662, 1662, 0, 0, 0, 0, 0, 0, 1662, 1662, + 1662, 0, 0, 0, 0, 0, 0, 0, 703, 0, + 1547, 0, 0, 1320, 0, 0, 498, 0, 1551, 0, + 0, 0, 703, 0, 703, 60, 1535, 0, 0, 1559, + 60, 0, 638, 1562, 1561, 0, 1, 0, 1054, 820, + 0, 60, 484, 496, 0, 0, 0, 0,15968, 1549, + 0, 60, 0, 1550, 860, 60, 60, 0, 0, 0, + 0, 0, 0, 889, 1522, 0, 60, 0, 71, 0, + 1576, 1577, 1064, 1578, 1579, 1580, 1583, 1589, 1593, 1597, + 1600, 1601, 1606, 0, 820, 0, 0, 60, 848, 0, + 89, 1532, 1588, 0, 0, 0, 0, 1612, 1574, 1627, + 1584, 60, 60, 60, 60, 60, 60, -17, 60, 1635, + 1585, 1638, 1590, 1640, 1591, 1641, 1592, 1645, 1646, 1595, + 1648, 1653, 1602, 1655, 1614, 1664, 1615, 1669, 1625, 1686, + 1630, 1691, 1649, 1692, 1702, 1652, 1706, 1485, 1709, 1658, + 0, 785, 0, 0, 620, 0, 0, 0, 575, 0, + 1708, 0, 1481, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 1790, 439, 0, 0, 0, 0, 14, 0, + 1716, 1054, 0, 1790, 0, 0, 1837, 1717, 0, 0, + 0, 0, 1718, 1738, 0, 60, 889, 1687, 1688, 820, + 0, 1689, 60, 0, 1743, 1744, 1745, 1746, 1747, 1729, + 1731, 1732, 1750, 96, 0, 0, 0, 1751, 1752, 0, + 1755, 0, 1761, 1763, 1712, 1765, 1715, 1768, 1721, 1769, + 1722, 0, 1771, 0, 1776, 0, 1777, 0, 1778, 0, + 0, 1779, 0, 0, 1780, 0, 1781, 0, 1782, 0, + 1784, 0, 1785, 0, 1787, 0, 0, 1788, 0, 1789, + 0, 1793, 1609, 0, 1786, 185, 0, 1790, 439,11603, + 0, 1813, 1816, 0, 0, 0, 0, 0, 0, 0, + 0, 1834, 912, 0,15999, 0, 1791, 0, 60, 60, + 60, 0, 0, 0, 0, 0, 0, 0, 1840, 0, + 1842, 0, 1843, 0, 1845, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3130, 1836, 0, 1813,12760, 1795, 1851, 0, 14, + 1855, 0, 889, 0, 0, 0, 1856, 1858, 1860, 30, + 25, 0, 0, 0, 0, 51, 69, 76, 198, 303, + 234, 78, 97, 132, 210, 1735, 24, 126, 0, 1414, + 1866, 1639, 0, 0, 0, 905, 0, 0, 0, 0, + 0, 0, 0, 163, 167, 181, 239, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1659, 0, 0, 0, 0, 439, 1874, 2753, 889, 0, + 0, 0, 0, 0, 1880, 1884, 0, 1885, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1127, 1418, 0, 60, 0, 1572, 1891, + 1892, 977, 0, 0,11603,12760, 1665, 439, 1813, 1900, + 0, 1901, 0, }; static int yyrindex[] = { 0, - 0, 0, 5739, 0, 0,12178, 1502, 0, 0, 0, - 0, 0,13105, 0, 0, -19, 2253, 0, 9006, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1786, 1786, 1786, 0, 0, 0, + 0, 0, 4361, 0, 0,12855, 1361, 0, 0, 0, + 0, 0,12014, 0, 0, 325, 2512, 0, 2907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, - 0, -20, 0, 0, 0, 0, 0, 0, 0, 1700, - 0, 0, 0, 0, 0, 1902, 0, 0, 0, 0, + 0, 0, 0, 0, 1902, 1902, 1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8416, 0, 0, 0, 0, 0, 0, - 6173, 6483, 6483, 0, 0, 0, 6935, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10619, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902, + 0, -35, 0, 0, 0, 0, 0, 0, 0, 1818, + 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9771, 0, 0, 0, 0, 0, 0, + 7522, 7833, 7833, 0, 0, 0, 8287, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1871, 2479, 0, - 0, 0, 0, 0, 0, 0,13105, 1742, 5516, 5826, - 6136, 6446, 0, 0, 0, 1787, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1746, 6483, - 0,10119,10119,10119,10119,10119,10119, 0, 0, 0, - 0, 0, 1786, 8791, 0, 0, 0, 0, 0, 0, - 7808, 0, 9726, 0,13105, 0, 0, 0, 9899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1749, 0, - 0, 1750,10731, 5215, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1876, 2752, 0, + 0, 0, 0, 0, 0, 0,12014, 1820, 6863, 7174, + 7485, 7796, 0, 0, 0, 1905, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1827, 7833, + 0,11534,11534,11534,11534,11534,11534, 0, 0, 0, + 0, 0, 1902,10149, 0, 0, 0, 0, 0, 0, + 9164, 0,11103, 0,12014, 0, 0, 0,11283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3999, 0, 0, 0, 0, 0, - 0, 1826, 1812, 0, 0, 0, 0, 0, 0, 0, - 0, 1742, 0, 6756, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1829, 0, + 0, 1833, 3783, 6561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4942, 0, 0, 0, 0, 0, + 0, 1915, 1898, 0, 0, 0, 0, 0, 0, 0, + 0, 1820, 0, 8107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,13105, 0, 0, 0,13105, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12014, 0, 0, 0, 0,12014, 0, + 0, 1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1752, 1434, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1838, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1872, 1438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1753, 0, - 0, 8618, 0, 0,13105, 0, 0, 1826, 110, 1789, - 0, 0, 0, 7190, 0, 0,10864, 1754, 0, 0, - 0, 0,13428, 0, 0, 4303, 0, 0, 0, 0, - 0, 4607, 0, 2175, 0, 0,10975, 0, 0, 396, - 0, 0, 684, 0, 1817,11006,11161,11302,11333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1871, 0, 0, 9969, 0, 0,12014, 0, 0, 1915, + 83, 1921, 0, 0, 0, 8543, 0, 0, 4221, 1875, + 0, 0, 0, 0,14051, 0, 0, 5380, 0, 0, + 0, 0, 0, 5818, 0, 2314, 0, 0, 4659, 0, + 0, 376, 0, 0, 74, 0, 1935, 5097, 5535, 5973, +11742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,14315, 1786, 0, 0, 1839, - 0, 0,13054, 0, 0, 0, 0, 0, 0,14414, + 0, 0, 0, 0, 0, 0, 0, 0,14871, 1902, + 0, 0, 1942, 0, 0,13779, 0, 0, 0, 0, + 0, 0,14968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1786, 1786, - 0, 0, 0, 0, 1786, 0, 1786, 0, 0, 0, + 0, 1902, 1902, 0, 0, 0, 0, 1902, 0, 1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, - 0, 0, 1758, 0, 1245, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8975, - 0, 0, 0, 0, 0, 0, 0, 737,10427, 0, - 8059, 0, 0, 1845, 0, 0, 0, 1783, 0, 0, - 0, 0, 0, 0, 7369, 1812, 0, 0, 0, 0, - -69, 0, 1786, 0, 1793, 0, 4911, 0, 0, 2783, - 3087, 3391, 0, 0, 412, 523, 0, 0, 0,11895, - 0, 0,13105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,14565, 0, - 0, 0, 0, 0, 0, 0,13879, 0, 0, 0, - 0, 1855, 0, 1860, 0,13054, 0, 0, 0, 1869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 1877, 0, 3005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2385, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12828, 0, 0, 446, 0, 0, 0, 0, 1245, - 0, 0, 492, 0,10119, 0,10119,10119,10119,10119, -10119, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,10347, 0, 0, 0, 0, 0, 0, 0, + 108, 2031, 0, 9415, 0, 0, 1961, 0, 0, 0, + 1879, 0, 0, 0, 0, 0, 0, 8723, 1898, 0, + 0, 0, 0, -62, 0, 1902, 0, 1882, 0, 6256, + 0, 0, 3190, 3628, 4066, 0, 0, 444, 530, 0, + 0, 0,12488, 0, 0,12014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, - 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 751, 751, 0, -1, 0, 0, 0, 1876, - 0, 0, 0,10588, 8243, 0, 0, 0, 0, 101, - 1753, 0, 0, 0, 0, 0, 0,13054,13054,13345, - 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,15163, 0, 0, 0, 0, 0, 0, 0,14385, + 0, 0, 0, 0, 0, 0, 1965, 0, 1966, 0, +13779, 0, 0, 0, 1967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1798, 0, 1786, 0, 0, 0, 0, 0, 0, 0, - 1801,13511, 3695, 0, 0, 0, 0, 743,13054, 0, - 0, 0, 620, 0, 0, 0, 0, 1802, 0,13677, + 0, 0, 0, 0, 0, 0, 970, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1228, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13569, 0, 0, 400, + 0, 0, 0, 0, 3005, 0, 0, 666, 0,11534, + 0,11534,11534,11534,11534,11534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14716, 0, 0, 0,14815, 0, 0, 0, 0, 0, - 0, 0,13054, 1839, 0, 1839, 0, 51, 0,13156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, + 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 751, 751, 0, + -2, 0, 0, 0, 1968, 0, 0, 0, 2469, 9600, + 0, 0, 0, 0, 455, 1871, 0, 0, 0, 0, + 0, 0,13779,13779,13899, 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2689, 2993, 0, 549, 0, - 0, 0,12828, 0, 0, 1885, 1865, 0, 0, 0, + 0, 0, 0, 0, 0, 1886, 0, 1902, 0, 0, + 0, 0, 0, 0, 0, 1887,14203, 4504, 0, 0, + 0, 0, 550,13779, 0, 0, 0, 609, 0, 0, + 0, 0, 1897, 0,15726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,15260, 0, 0, 0,15343, + 0, 0, 0, 0, 0, 0, 0, 0,13779, 1942, + 0, 1942, 0, 130, 0,13843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1970, 2408, 0, 1133, 0, 0, 0,13569, 0, + 0, 1974, 1962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9167, 9351, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,10527,10725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1067, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 409, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7624, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11444, 0,13105, 0, 1805, 0, 0, 0, 0, 0, - 0, 0,13105,13105,13105,13105, 0, 0, 0, 0, - 0, 0,13105,13105,13105, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,11903, 0,12014, 0, + 1907, 0, 0, 0, 0, 0, 0, 0,12014,12014, +12014,12014, 0, 0, 0, 0, 0, 0,12014,12014, +12014, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,15495, 0, 0, 0, + 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1993, 0, 400, 0, 1962, 3005, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 1995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14898, 0, 0, 0, 0, 0, 783, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0, - 446, 0, 1865, 1245, 0, 0, 0, 0, 0, 0, - 0, 0, 737, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,10286, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,13054, -13054, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,11708, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,13779,13779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1865, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9524, 0, - 0, 0, 0, 867, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1962, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,10905, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13054, 0, 0, 0, 0, 1895, 0, 0, 0, 0, - 0, 0, 0,13054, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13779, 0, 0, 0, + 0, 1996, 0, 0, 0, 0, 0, 0, 0,13779, + 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1895, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1996, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1813, 0, 0,13054, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1914, + 0, 0,13779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,13054, 0, + 0, 0, 0, 0,13779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,13054, - 0, 0, 0, 0, 0,13105, 0, 0, 0, 0, - 0, 0, 1895, 0,13054, 0, 0, + 0, 0, 0, 0, 0,13779, 0, 0, 0, 0, + 0,12014, 0, 0, 0, 0, 0, 0, 1996, 0, +13779, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1047,19 +1051,19 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,13662, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1074,10 +1078,10 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1899, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1848, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1085,27 +1089,27 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12929, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,13654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1672, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1115,30 +1119,31 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1915, 0, 0, 0, 0, - 0, 0, 0, 0, 809, 0, 0, 0, 0, 1897, - 0, 0, 0, 0, 0, 0, 0, 1691, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2010, 0, 0, 0, 0, 0, 0, 0, 0, 804, + 0, 0, 0, 0, 1999, 0, 0, 0, 0, 0, + 0, 0, 1800, 1803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1720, 0, 0, 0, 0, 0, 0, 1732, + 0, 0, 0, 0, 0, 0, 0, 0, 1809, 0, + 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1794, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1696, 1715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1156,8 +1161,7 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1748, - 1757, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1814, 1819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1165,711 +1169,847 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1759, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1760, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1774, 0, 0, + 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1831, 0, 0, }; -static int yygindex[] = { 1796, - -4, 18, -662, 0, -430, 111, -99, 0, 100, 0, - 0, 0, 1574, -109, 0, 0,-1052, 0, 1199, 0, - 1029, 270,-1398, -425, -402, -15, -635, 0, 1042, -22, - 1314, 0, -5, 1164, 583, 804, -917, -71, 0, 1073, - 0,-1066, 947, 0, 0,-1364, -697,-1255,-1251, 0, - 0, 0, 0, -150, 1156, 1353, 0, 0, 0, 0, - -623, 0, 0,-1022, 0, 1170, 0, -936,-1107, 832, - 823, -23, 88, 1698, 1573, 2015, -138, 15, 0, 0, - 0, 0, 0, 0, -746, 1182, 0, 2033, 0, 0, - 920, 1934, 1531, 0, -14, 2027, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -290, 1364, 0, -287, -298, -286, 29, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 1371, 0, 0, - 0, 26, 5, 19, 0, 32, 1784, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, - 0, 1472, 0, 0, 0, 333, 0, 0, 0, 0, - 0, 0, 0, 1419, 1992, -45, 0, 1593, 0, 1725, - 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1883, + -4, 109, -650, 0, -392, 155, -99, 0, 100, 0, + 0, 0, 1657, -136, 0, 0,-1056, 0, 1266, 0, + 1091, 277,-1377, -422, -408, -15, -694, 0, 1146, -22, + 1408, 0, -7, 1234, 648, 885, -909, -76, 0, 1154, + 0,-1090, 1026, 0, 0,-1312, -611,-1251,-1245, 0, + 0, 0, 0, -150, 1235, 1431, 0, 0, 0, 0, + -634, 0, 0, -995, 0, 1267, 0, -925,-1113, 925, + 892, -23, 86, 1805, 1667, 2111, -158, 3, 0, 0, + 0, 0, 0, 0, -758, 1280, 0, 2137, 0, 0, + 1017, 2047, 1644, 0, -10, 2146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -281, 1457, 0, -279, -270, -277, 20, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 1458, 0, + 0, 0, 10, 5, 32, 0, 12, 1893, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 0, 0, 0, -138, + 0, 0, 1594, 0, 0, 0, 405, 0, 0, 0, + 0, 0, 0, 0, 1529, 2119, -45, 0, 1707, 0, + 1832, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 15723 +#define YYTABLESIZE 16503 static int yytable[] = { 70, - 162, 160, 227, 228, 269, 56, 124, 125, 523, 165, - 48, 524, 525, 643, 118, 644, 871, 1177, 203, 57, - 1191, 219, 169, 170, 171, 172, 55, 109, 291, 45, - 177, 178, 59, 351, 1230, 783, 624, 784, 164, 624, - 1228, 859, 624, 983, 677, 461, 573, 218, 1262, 543, - 119, 119, 91, 574, 186, 78, 206, 206, 690, 691, - 692, 937, 1296, 167, 1537, 206, 206, 290, 1255, 67, - 68, 1524, 69, 206, 34, 707, 1234, 761, 1553, 1526, - 1515, 206, 232, 411, 413, 415, 417, 419, 206, 624, - 405, 269, 808, 209, 269, 1340, 74, 294, 324, 34, - 947, 1506, 135, 1532, 460, 254, 216, 206, 238, 1025, - 249, 252, 253, 206, 271, 457, 262, 263, 164, 120, - 121, 259, 758, 1534, 261, 407, 264, 630, 267, 1026, - 1539, 1528, 198, 1548, 696, 490, 67, 68, 37, 69, - 1369, 410, 37, 167, 292, 412, 37, 37, 414, 316, - 34, 272, 275, 203, 661, 1535, 561, 75, 808, 1545, - 37, 474, 1546, 416, 204, 1447, 427, 1567, 285, 316, - 273, 207, 284, 1298, 1547, 324, 408, 1564, 119, 213, - 428, 109, 381, 697, 271, 451, 565, 459, 66, 498, - 283, 37, 408, 271, 559, 1231, 408, 424, 326, 408, - 433, 434, 1565, 418, 1604, 454, 588, 1566, 1101, 1299, - 235, 236, 1508, 473, 408, 72, 1157, 1509, 296, 67, - 68, 282, 69, 206, 273, 712, 1103, 469, 1429, 1093, - 691, 1368, 1097, 1098, 478, 67, 481, 568, 69, 119, - 783, 783, 1530, 783, 94, 1232, 274, 1531, 216, 110, - 466, 467, 708, 111, 408, 1357, 276, 770, 903, 1102, - 503, 1151, 483, 486, 566, 488, 976, 510, 292, 492, - 689, 1109, 494, 1142, 217, 382, 497, 1104, 216, 117, - 112, 506, 507, 508, 509, 114, 777, 122, 123, 78, - 567, 998, 999, 1000, 78, 135, 472, 216, 778, 779, - 1551, 147, 119, 529, 56, 1358, 808, 1183, 527, 48, - 269, 562, 1092, 269, 550, 556, 780, 530, 57, 471, - 463, 464, 1110, 541, 528, 55, 119, 526, 45, 34, - 531, 59, 67, 68, 571, 69, 1552, 853, 968, 966, - 1214, 783, 119, 784, 119, 547, 119, 109, 563, 557, - 1080, 1081, 164, 119, 484, 551, 122, 123, 485, 595, - 595, 614, 620, 745, 2, 168, 781, 487, 98, 1111, - 34, 586, 808, 493, 1135, 552, 553, 167, 119, 1136, - 594, 500, 119, 561, 425, 119, 596, 596, 615, 621, - 122, 123, 997, 982, 173, 619, 1427, 119, 642, 1135, - 119, 480, 67, 68, 1136, 69, 119, 1073, 1113, 1513, - 545, 67, 68, 537, 69, 538, 119, 498, 684, 539, - 1112, 237, 564, 1421, 903, 119, 351, 548, 549, 206, - 119, 558, 476, 179, 666, 216, 554, 753, 98, 724, - 647, 1525, 783, 1550, 723, 1099, 659, 98, 660, 748, - 285, 216, 748, 587, 284, 726, 1072, 1341, 572, 1114, - 37, 37, 37, 454, 808, 808, 206, 206, 1256, 174, - 632, 1115, 283, 67, 68, 685, 69, 119, 718, 109, - 687, 1476, 273, 180, 808, 156, 67, 68, 724, 69, - 278, 279, 280, 147, 147, 182, 808, 1117, 808, 808, - 542, 808, 808, 282, 726, 469, 638, 639, 1119, 640, - 934, 641, 206, 1542, 855, 1153, 1154, 1155, 1156, 188, - 762, 1227, 1116, 624, 122, 123, 649, 650, 70, 73, - 76, 79, 82, 85, 88, 782, 719, 721, 183, 10, - 11, 12, 13, 2, 270, 731, 670, 1518, 1118, 184, - 27, 28, 29, 30, 31, 32, 33, 727, 185, 1120, - 1121, 730, 206, 790, 351, 794, 722, 500, 808, 808, - 808, 808, 808, 808, 808, 27, 28, 29, 30, 31, - 32, 33, 693, 694, 688, 67, 68, 732, 69, 119, - 1123, 326, 777, 763, 764, 720, 1558, 471, 34, 767, - 203, 768, 751, 917, 778, 779, 772, 852, 710, 923, - 1002, 1122, 774, 793, 453, 722, 704, 705, 1556, 455, - 1125, 221, 780, 453, 1372, 1373, 27, 28, 29, 30, - 31, 32, 33, 461, 523, 1127, 220, 524, 525, 717, - 456, 1124, 722, 259, 919, 984, 222, 67, 68, 728, - 69, 856, 985, 503, 986, 987, 988, 941, 124, 156, - 122, 123, 551, 743, 593, 1426, 561, 1129, 156, 734, - 1135, 1126, 781, 852, 870, 1136, 908, 900, 1149, 901, - 206, 902, 552, 553, 752, 1005, 1128, 1006, 1007, 1008, - 1009, 1010, 233, 989, 990, 991, 1131, 913, 1133, 1266, - 936, 918, 920, 922, 1268, 156, 156, 121, 156, 771, - 939, 234, 892, 285, 1283, 948, 1285, 284, 1130, 870, - 921, 13, 776, 260, 1270, 1272, 285, 542, 943, 326, - 284, 617, 1419, 789, 618, 283, 122, 123, 551, 992, - 993, 994, 241, 995, 277, 542, 996, 1132, 283, 1134, - 1267, 269, 269, 286, 269, 1269, 807, 287, 552, 553, - 1479, 288, 951, 1501, 67, 68, 282, 69, 967, 1507, - 969, 953, 278, 279, 280, 1271, 1273, 567, 567, 282, - 1488, 977, 461, 1487, 1084, 1477, 543, 67, 910, 914, - 69, 622, 622, 1094, 906, 500, 1080, 1081, 1485, 1529, - 894, 895, 295, 281, 543, 27, 28, 29, 30, 31, - 32, 33, 2, 67, 68, 930, 69, 932, 289, 933, - 119, 852, 551, 549, 938, 296, 549, 567, 67, 68, - 67, 69, 1086, 69, 119, 896, 126, 67, 68, 297, - 69, 622, 552, 553, 952, 126, 27, 28, 29, 30, - 31, 32, 33, 298, 954, 955, 67, 68, 34, 69, - 359, 156, 572, 572, 98, 269, 269, 1301, 965, 1004, - 1076, 461, 157, 98, 1302, 980, 1554, 383, 551, 561, - 561, 1561, 561, 1555, 406, 67, 68, 1139, 69, 67, - 68, 1001, 69, 420, 1146, 1144, 423, 1570, 552, 553, - 1150, 67, 68, 1011, 69, 1012, 435, 609, 609, 1145, - 1204, 452, 572, 1140, 748, 749, 750, 67, 68, 870, - 69, 458, 1138, 1569, 604, 461, 250, 251, 156, 529, - 792, 1159, 1168, 614, 527, 1181, 1158, 1167, 223, 1603, - 224, 225, 226, 530, 462, 1160, 1169, 1182, 670, 461, - 528, 465, 1219, 526, 1594, 1082, 531, 609, 1161, 1170, - 615, 732, 475, 732, 575, 1095, 576, 577, 578, 1606, - 8, 9, 479, 1203, 897, 898, 482, 899, 122, 123, - 551, 785, 152, 153, 154, 429, 1308, 430, 431, 489, - 13, 152, 153, 154, 432, 1205, 1343, 1344, 870, 852, - 552, 553, 589, 512, 590, 1249, 491, 591, 592, 852, - 1431, 1201, 852, 206, 1319, 1320, 1321, 1322, 1147, 495, - 1148, 1176, 496, 1178, 1323, 1324, 1325, 1592, 540, 461, - 67, 68, 216, 69, 119, 278, 279, 280, 126, 570, - 785, 61, 64, 734, 67, 734, 1345, 1346, 278, 279, - 280, 285, 546, 1079, 1184, 700, 1185, 624, 625, 626, - 623, 1197, 634, 1200, 461, 1351, 98, 1193, 97, 100, - 1194, 103, 2, 283, 27, 28, 29, 30, 31, 32, - 33, 461, 1563, 852, 852, 852, 852, 852, 852, 852, - 1080, 1081, 34, 627, 628, 629, 635, 67, 68, 1280, - 69, 1541, 1543, 1286, 282, 126, 785, 608, 608, 1303, - 127, 1294, 1028, 1029, 128, 129, 130, 131, 132, 637, - 133, 134, 135, 136, 646, 137, 138, 645, 648, 139, - 140, 141, 142, 98, 119, 97, 143, 144, 601, 657, - 99, 1313, 100, 1417, 658, 145, 216, 146, 665, 101, - 671, 1364, 1365, 1366, 672, 673, 1354, 109, 1166, 674, - 676, 679, 147, 148, 149, 602, 102, 109, 109, 109, - 109, 1233, 1014, 1015, 1016, 1017, 1018, 109, 109, 109, - 695, 103, 686, 698, 152, 153, 154, 699, 701, 716, - 1326, 711, 1336, 713, 714, 67, 68, 150, 69, 119, - 715, 1263, 1264, 1265, 1330, 724, 1331, 725, 1274, 1275, - 1276, 1277, 1278, 1279, 726, 1281, 1282, 1284, 1424, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 729, 1295, 735, 1297, - 736, 1300, 754, 1304, 755, 756, 1316, 1317, 25, 651, - 652, 653, 22, 1222, 1223, 1224, 1225, 1226, 984, 757, - 13, 152, 153, 154, 785, 985, 1384, 986, 987, 988, - 19, 769, 602, 984, 590, 603, 765, 591, 592, 766, - 985, 773, 986, 987, 988, 654, 655, 656, 788, 1437, - 775, 795, 1418, 797, 796, 298, 1138, 200, 798, 1332, - 804, 16, 799, 800, 1335, 156, 989, 990, 991, 255, - 256, 257, 258, 801, 1420, 1342, 2, 1105, 1106, 1107, - 1108, 989, 990, 991, 803, 1349, 806, 857, 858, 1352, - 1353, 861, 862, 870, 1359, 1360, 1361, 1362, 863, 865, - 1356, 868, 864, 869, 27, 28, 29, 30, 31, 32, - 33, 872, 992, 993, 994, 904, 995, 905, 909, 996, - 924, 1363, 1367, 931, 935, 940, 285, 992, 993, 994, - 284, 995, 942, 944, 996, 1378, 1379, 1380, 1381, 1382, - 1383, 945, 1385, 278, 279, 280, 946, 949, 283, 950, - 956, 957, 155, 958, 972, 959, 960, 961, 962, 971, - 785, 785, 785, 785, 785, 963, 964, 970, 981, 1138, - 979, 1480, 408, 1013, 1019, 1022, 1024, 1027, 157, 282, - 1074, 1021, 785, 785, 1425, 1520, 1143, 1088, 870, 1023, - 1077, 1091, 1096, 1141, 1174, 1430, 1173, 1175, 1179, 785, - 785, 785, 785, 40, 1180, 1186, 785, 785, 1192, 1189, - 1190, 1195, 785, 1206, 785, 785, 1207, 1208, 1213, 1436, - 1216, 1209, 785, 785, 1210, 1218, 1441, 1252, 1211, 1253, - 1163, 1212, 1164, 1165, 67, 68, 40, 69, 1220, 1221, - 1258, 40, 126, 40, 40, 40, 1254, 40, 1257, 1259, - 40, 10, 11, 12, 13, 1260, 1261, 1318, 1557, 1544, - 1310, 1588, 40, 40, 40, 40, 1599, 1312, 1314, 476, - 98, 1327, 1315, 1328, 1329, 1333, 1334, 785, 785, 1478, - 785, 785, 785, 1337, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 1338, 40, 1350, 40, 191, 630, 1355, - 192, 193, 194, 195, 1101, 196, 197, 198, 298, 393, - 1103, 1370, 1491, 1492, 1493, 298, 1109, 298, 298, 298, - 1111, 1113, 1115, 1117, 1119, 870, 40, 1121, 40, 1123, - 7, 10, 13, 1125, 1127, 1371, 1374, 1516, 27, 28, - 29, 30, 31, 32, 33, 1375, 1600, 1376, 67, 68, - 1377, 69, 1386, 1387, 1388, 1389, 298, 298, 298, 1390, - 1391, 1392, 1393, 1394, 1527, 1395, 156, 870, 1397, 1533, - 1527, 1536, 1396, 1540, 1398, 1533, 1527, 1536, 1399, 97, - 1400, 1401, 1402, 1403, 99, 1404, 100, 1406, 152, 153, - 154, 1405, 1407, 101, 393, 1408, 1409, 1533, 1527, 1536, - 1410, 1411, 298, 298, 298, 1412, 298, 1413, 1415, 298, - 102, 915, 1414, 1422, 1416, 560, 127, 561, 1423, 1428, - 128, 129, 130, 131, 132, 103, 133, 134, 135, 136, - 1432, 137, 138, 1433, 1434, 139, 140, 141, 142, 1266, - 1438, 98, 143, 144, 1439, 1440, 1268, 1270, 278, 279, - 280, 145, 1272, 146, 1442, 1443, 916, 1601, 1446, 1444, - 1595, 1445, 1448, 40, 40, 40, 40, 1449, 147, 148, - 149, 40, 1450, 1451, 40, 200, 40, 40, 40, 40, - 40, 40, 40, 1452, 40, 40, 40, 40, 1453, 40, - 40, 40, 1454, 40, 40, 40, 40, 1455, 1456, 40, - 40, 40, 40, 150, 1457, 1458, 1460, 1459, 1461, 40, - 1462, 40, 1463, 1464, 40, 1465, 1466, 1467, 40, 40, - 1468, 40, 1469, 1470, 157, 40, 40, 40, 40, 285, - 1471, 393, 1473, 284, 393, 67, 68, 1472, 860, 1475, - 1474, 1481, 40, 126, 1484, 1486, 1490, 1496, 1497, 393, - 1498, 283, 393, 393, 393, 393, 1499, 393, 393, 393, - 199, 40, 40, 40, 40, 40, 1514, 40, 40, 866, - 1517, 98, 1519, 1521, 1522, 1523, 1559, 40, 40, 1560, - 1568, 1571, 468, 1589, 1590, 1593, 1549, 1591, 1596, 1597, - 1598, 1605, 104, 1602, 40, 1607, 437, 438, 538, 40, + 162, 160, 227, 228, 269, 56, 124, 125, 291, 646, + 55, 647, 59, 165, 118, 109, 219, 525, 203, 526, + 45, 527, 169, 170, 171, 172, 164, 48, 177, 178, + 1183, 876, 57, 864, 1236, 627, 989, 1197, 627, 545, + 1234, 627, 353, 788, 1302, 789, 953, 576, 218, 680, + 1268, 206, 186, 463, 206, 763, 413, 415, 417, 419, + 421, 206, 78, 167, 1559, 1532, 206, 290, 206, 325, + 1530, 721, 429, 34, 285, 710, 942, 74, 284, 271, + 285, 1237, 232, 577, 284, 119, 430, 135, 627, 206, + 407, 1538, 294, 1240, 766, 1346, 283, 462, 693, 694, + 695, 1261, 283, 66, 409, 254, 164, 1521, 238, 1540, + 249, 252, 253, 1363, 412, 459, 1541, 545, 1551, 120, + 121, 259, 316, 414, 261, 1304, 271, 282, 267, 564, + 416, 1238, 72, 282, 216, 545, 271, 1552, 75, 607, + 418, 420, 316, 167, 292, 94, 1107, 34, 570, 570, + 475, 272, 275, 203, 34, 410, 476, 732, 273, 1512, + 198, 1305, 206, 1364, 204, 410, 1562, 1109, 206, 109, + 269, 207, 1553, 269, 410, 561, 206, 213, 1103, 1104, + 461, 410, 383, 1099, 209, 453, 1115, 982, 111, 1534, + 633, 410, 410, 1117, 788, 426, 789, 1108, 570, 699, + 435, 436, 1079, 1570, 112, 456, 156, 1571, 119, 492, + 235, 236, 273, 1375, 568, 664, 156, 591, 1110, 1148, + 1453, 1572, 1514, 67, 68, 147, 69, 471, 1435, 1515, + 206, 1610, 110, 474, 480, 296, 483, 1116, 1543, 571, + 67, 68, 1119, 69, 1118, 1482, 122, 123, 700, 216, + 1554, 1078, 1536, 711, 1189, 715, 276, 750, 274, 1537, + 505, 569, 485, 488, 1374, 490, 1098, 512, 292, 494, + 457, 694, 496, 384, 1548, 217, 499, 119, 1157, 1573, + 135, 508, 509, 510, 511, 114, 1557, 2, 119, 327, + 427, 458, 570, 1120, 782, 216, 78, 67, 68, 908, + 69, 78, 119, 531, 56, 216, 783, 784, 530, 55, + 533, 59, 564, 543, 119, 552, 558, 473, 528, 45, + 465, 466, 1558, 119, 785, 529, 48, 1004, 1005, 1006, + 532, 57, 119, 98, 574, 119, 109, 565, 858, 119, + 974, 119, 164, 1545, 67, 68, 500, 69, 119, 1086, + 1087, 168, 486, 604, 67, 68, 564, 69, 1220, 500, + 119, 598, 598, 617, 623, 91, 597, 489, 599, 599, + 618, 624, 216, 495, 786, 67, 68, 179, 69, 167, + 98, 502, 972, 126, 67, 67, 68, 69, 69, 269, + 98, 1519, 269, 126, 173, 119, 278, 279, 280, 482, + 645, 988, 278, 279, 280, 216, 687, 67, 68, 547, + 69, 98, 487, 1433, 539, 775, 540, 147, 147, 727, + 541, 98, 567, 174, 1560, 1556, 119, 478, 550, 551, + 119, 1561, 560, 281, 117, 723, 669, 549, 353, 156, + 34, 559, 180, 1531, 119, 782, 726, 1141, 662, 758, + 663, 1347, 1142, 1105, 1141, 590, 182, 783, 784, 1142, + 575, 122, 123, 1262, 589, 456, 13, 908, 727, 109, + 635, 183, 273, 122, 123, 785, 1121, 688, 605, 206, + 593, 606, 690, 594, 595, 67, 68, 729, 69, 119, + 206, 544, 37, 556, 34, 1031, 37, 122, 123, 553, + 37, 37, 122, 123, 157, 34, 1163, 471, 641, 642, + 270, 643, 285, 644, 37, 1032, 284, 1008, 767, 554, + 555, 184, 1233, 627, 1123, 786, 692, 1122, 652, 653, + 152, 153, 154, 650, 283, 185, 729, 860, 722, 724, + 152, 153, 154, 206, 787, 37, 673, 1125, 736, 325, + 27, 28, 29, 30, 31, 32, 33, 455, 924, 730, + 1172, 795, 735, 799, 1524, 282, 119, 455, 553, 502, + 285, 1378, 1379, 725, 284, 1124, 353, 67, 68, 188, + 69, 463, 696, 697, 786, 786, 691, 786, 554, 555, + 1086, 1087, 283, 546, 768, 769, 1127, 473, 1126, 861, + 772, 220, 773, 203, 67, 68, 922, 69, 713, 777, + 1564, 546, 928, 926, 1427, 779, 798, 221, 707, 708, + 206, 222, 725, 282, 27, 28, 29, 30, 31, 32, + 33, 27, 28, 29, 30, 31, 32, 33, 234, 67, + 68, 720, 69, 119, 725, 124, 259, 1128, 525, 731, + 526, 1129, 527, 233, 2, 564, 505, 947, 1131, 156, + 156, 260, 156, 1011, 748, 1012, 1013, 1014, 1015, 1016, + 1133, 285, 739, 949, 733, 284, 277, 875, 905, 913, + 286, 737, 906, 1432, 907, 327, 67, 757, 67, 69, + 119, 69, 119, 283, 121, 897, 756, 295, 67, 68, + 918, 69, 1130, 941, 923, 925, 927, 285, 2, 1132, + 1425, 703, 776, 944, 1289, 1135, 1291, 122, 123, 553, + 954, 1134, 875, 1137, 282, 781, 287, 67, 68, 283, + 69, 241, 1483, 288, 67, 68, 794, 69, 289, 554, + 555, 562, 127, 563, 296, 1491, 128, 129, 130, 131, + 132, 1139, 133, 134, 135, 136, 297, 137, 138, 812, + 282, 139, 140, 141, 142, 298, 1136, 98, 143, 144, + 1272, 262, 263, 973, 1138, 975, 361, 145, 1485, 146, + 237, 264, 67, 68, 1090, 69, 983, 786, 385, 915, + 919, 625, 625, 1100, 147, 148, 149, 911, 502, 408, + 1274, 1276, 1140, 1278, 422, 1141, 1159, 1160, 1161, 1162, + 1142, 425, 468, 469, 37, 37, 37, 1010, 935, 463, + 937, 1273, 938, 327, 575, 575, 437, 943, 1567, 150, + 10, 11, 12, 13, 278, 279, 280, 1092, 200, 454, + 946, 625, 70, 73, 76, 79, 82, 85, 88, 958, + 156, 1275, 1277, 460, 1279, 1507, 612, 612, 957, 960, + 961, 1513, 463, 1169, 156, 1170, 1171, 959, 564, 564, + 1575, 564, 464, 971, 575, 156, 1349, 1350, 986, 67, + 68, 939, 69, 206, 10, 11, 12, 13, 1351, 1352, + 1145, 1535, 278, 279, 280, 157, 1007, 67, 68, 1152, + 69, 1600, 463, 1357, 1150, 1156, 612, 1144, 1017, 553, + 1018, 1210, 34, 467, 1151, 1576, 1612, 27, 28, 29, + 30, 31, 32, 33, 875, 269, 269, 477, 269, 554, + 555, 481, 899, 900, 531, 484, 1165, 1174, 617, 530, + 1187, 533, 1003, 1167, 1176, 618, 25, 463, 1569, 528, + 22, 673, 1494, 1225, 463, 1493, 529, 1609, 1164, 1173, + 1088, 532, 67, 1166, 1175, 69, 1082, 901, 19, 34, + 1101, 27, 28, 29, 30, 31, 32, 33, 622, 1209, + 611, 611, 27, 28, 29, 30, 31, 32, 33, 753, + 754, 755, 1314, 278, 279, 280, 1155, 497, 206, 16, + 1325, 1326, 1327, 1328, 875, 751, 1255, 491, 751, 1146, + 1329, 1330, 1331, 493, 223, 155, 224, 225, 226, 67, + 68, 498, 865, 1153, 1182, 1154, 1184, 126, 811, 278, + 279, 280, 514, 67, 68, 524, 69, 34, 542, 269, + 269, 126, 548, 97, 67, 68, 566, 69, 99, 739, + 100, 739, 126, 61, 64, 98, 67, 101, 737, 552, + 737, 34, 552, 97, 100, 1203, 103, 1206, 1188, 98, + 463, 573, 1307, 1199, 102, 920, 1200, 626, 191, 1308, + 98, 192, 193, 194, 195, 637, 196, 197, 198, 103, + 1423, 122, 123, 553, 811, 67, 68, 1207, 69, 206, + 638, 1547, 1549, 616, 1190, 1286, 1191, 902, 903, 1292, + 904, 119, 640, 554, 555, 1309, 648, 1300, 67, 68, + 921, 69, 119, 788, 1034, 1035, 2, 1178, 1370, 1371, + 1372, 649, 265, 127, 266, 651, 660, 128, 129, 130, + 131, 132, 661, 133, 134, 135, 136, 1319, 137, 138, + 216, 109, 139, 140, 141, 142, 119, 1360, 553, 143, + 144, 109, 109, 109, 109, 250, 251, 1598, 145, 463, + 146, 109, 109, 109, 152, 153, 154, 1239, 554, 555, + 668, 674, 788, 2, 675, 147, 148, 149, 152, 153, + 154, 855, 676, 677, 679, 990, 682, 689, 1342, 152, + 153, 154, 991, 605, 992, 993, 994, 1269, 1270, 1271, + 255, 256, 257, 258, 1280, 1281, 1282, 1283, 1284, 1285, + 150, 1287, 1288, 1290, 1430, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 515, 1301, 698, 1303, 701, 1306, 702, 1310, + 1322, 1323, 811, 995, 996, 997, 704, 714, 788, 719, + 716, 2, 1020, 1021, 1022, 1023, 1024, 855, 717, 718, + 67, 68, 1390, 69, 1111, 1112, 1113, 1114, 7, 10, + 13, 97, 1144, 727, 612, 2, 99, 728, 100, 729, + 1443, 734, 759, 740, 741, 101, 840, 1332, 1424, 998, + 999, 1000, 760, 1001, 761, 1338, 1002, 104, 612, 762, + 1341, 1336, 102, 1337, 770, 13, 771, 774, 811, 778, + 1426, 1348, 627, 628, 629, 620, 780, 103, 621, 793, + 516, 1355, 5, 6, 7, 1358, 1359, 800, 431, 875, + 432, 433, 802, 801, 517, 803, 1362, 434, 804, 518, + 805, 806, 8, 9, 1365, 1366, 1367, 1368, 630, 631, + 632, 578, 840, 579, 580, 581, 808, 1369, 1373, 10, + 11, 12, 13, 809, 519, 520, 1228, 1229, 1230, 1231, + 1232, 1384, 1385, 1386, 1387, 1388, 1389, 811, 1391, 862, + 863, 200, 868, 866, 521, 1144, 867, 870, 613, 27, + 28, 29, 30, 31, 32, 33, 788, 873, 393, 874, + 869, 811, 811, 877, 909, 855, 155, 1486, 910, 914, + 936, 940, 613, 929, 948, 945, 1526, 951, 1431, 522, + 523, 811, 950, 952, 875, 955, 956, 962, 963, 1436, + 13, 964, 967, 811, 965, 811, 811, 40, 811, 811, + 614, 966, 968, 615, 969, 970, 27, 28, 29, 30, + 31, 32, 33, 976, 13, 1442, 977, 978, 985, 987, + 1019, 1025, 1447, 410, 614, 1027, 199, 615, 1029, 1028, + 40, 1030, 1033, 1080, 1083, 40, 1094, 40, 40, 40, + 1147, 40, 1102, 393, 40, 1097, 1149, 1180, 1179, 1185, + 1181, 1186, 1594, 1192, 1563, 1550, 40, 40, 40, 40, + 840, 1195, 1605, 1196, 1198, 811, 811, 811, 811, 811, + 811, 811, 1201, 1484, 27, 28, 29, 30, 31, 32, + 33, 1212, 1213, 840, 1214, 1219, 95, 1215, 40, 96, + 40, 1216, 1222, 788, 788, 788, 788, 788, 27, 28, + 29, 30, 31, 32, 33, 1224, 1217, 1218, 1497, 1498, + 1499, 1226, 97, 98, 1258, 788, 788, 99, 1227, 100, + 40, 875, 40, 1259, 1260, 1264, 101, 1263, 1265, 1266, + 1267, 1522, 788, 788, 788, 788, 1316, 478, 1318, 788, + 788, 1324, 1606, 102, 855, 788, 1320, 788, 788, 1321, + 1333, 1335, 1339, 1334, 855, 788, 788, 855, 103, 1340, + 1533, 156, 1343, 875, 1344, 1539, 1533, 1542, 633, 1546, + 1356, 1539, 1533, 1542, 1361, 1107, 1109, 1115, 1117, 1119, + 393, 191, 1121, 393, 192, 193, 194, 195, 1123, 196, + 197, 198, 1125, 1539, 1533, 1542, 1127, 840, 393, 1129, + 1131, 393, 393, 393, 393, 1133, 393, 393, 393, 1377, + 788, 788, 1380, 788, 788, 788, 1376, 788, 788, 788, + 788, 788, 788, 788, 788, 788, 1381, 1382, 855, 855, + 855, 855, 855, 855, 855, 1392, 1383, 1393, 1394, 840, + 1396, 1398, 1395, 1397, 1399, 1400, 1401, 1402, 1403, 840, + 1211, 1607, 840, 1404, 1405, 1406, 1601, 40, 40, 40, + 40, 654, 655, 656, 1408, 40, 1407, 1409, 40, 1410, + 40, 40, 40, 40, 40, 40, 40, 1411, 40, 40, + 40, 40, 1413, 40, 40, 40, 1412, 40, 40, 40, + 40, 1414, 1416, 40, 40, 40, 40, 657, 658, 659, + 392, 1415, 1417, 40, 1418, 40, 1419, 1420, 40, 1421, + 1422, 1428, 40, 40, 1429, 40, 1434, 1438, 1439, 40, + 40, 40, 40, 840, 840, 840, 840, 840, 840, 840, + 67, 68, 216, 69, 119, 1555, 40, 1440, 126, 1444, + 1445, 1446, 1272, 1274, 1276, 1278, 1449, 1448, 1450, 1451, + 1452, 1454, 1455, 1085, 1456, 40, 40, 40, 40, 40, + 1457, 40, 40, 1458, 1459, 1460, 98, 1461, 1462, 1464, + 1466, 40, 40, 1463, 1465, 1467, 1468, 1469, 1470, 1471, + 1472, 1473, 157, 1474, 1475, 392, 1476, 1477, 40, 1478, + 1086, 1087, 1479, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 29, 268, 137, 722, - 561, 788, 844, 540, 823, 399, 815, 733, 541, 533, - 138, 40, 40, 40, 40, 740, 40, 40, 40, 40, - 67, 68, 40, 69, 40, 536, 40, 40, 40, 40, - 537, 40, 40, 561, 40, 40, 40, 734, 561, 545, - 561, 561, 561, 40, 561, 845, 271, 561, 155, 152, - 153, 154, 74, 816, 824, 143, 164, 240, 144, 561, - 561, 561, 561, 147, 167, 210, 571, 4, 28, 392, - 28, 40, 40, 40, 31, 191, 55, 58, 192, 193, - 194, 195, 55, 196, 197, 198, 94, 106, 109, 40, - 40, 561, 40, 40, 40, 55, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 300, 40, 112, 636, 55, - 115, 67, 68, 975, 69, 240, 241, 242, 118, 126, - 55, 1188, 127, 561, 55, 561, 128, 129, 130, 131, - 132, 1196, 133, 134, 135, 136, 55, 137, 138, 907, - 243, 139, 140, 141, 142, 1075, 1347, 98, 143, 144, - 1187, 1489, 55, 1251, 392, 34, 1100, 145, 867, 146, - 1090, 55, 1339, 55, 55, 569, 1348, 675, 163, 1087, - 55, 93, 55, 55, 147, 148, 149, 239, 55, 706, - 166, 744, 873, 874, 875, 202, 876, 877, 878, 879, - 1311, 880, 881, 198, 802, 882, 883, 884, 885, 683, - 0, 0, 886, 887, 925, 511, 0, 0, 0, 150, - 606, 278, 279, 280, 0, 929, 0, 0, 0, 0, - 0, 613, 0, 0, 0, 466, 467, 0, 0, 0, - 0, 0, 0, 0, 244, 127, 245, 246, 247, 248, - 0, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 561, 561, 144, 561, 0, 152, 153, 154, 561, 34, - 888, 561, 0, 561, 561, 561, 561, 561, 561, 561, - 0, 561, 561, 561, 561, 0, 561, 561, 0, 0, - 561, 561, 561, 561, 0, 0, 561, 561, 561, 561, - 0, 0, 0, 0, 562, 0, 561, 0, 561, 392, - 0, 561, 392, 392, 392, 392, 561, 392, 392, 392, - 0, 0, 561, 561, 561, 561, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1172, 0, 562, 0, 0, - 0, 0, 562, 0, 562, 562, 562, 0, 562, 0, - 0, 562, 0, 0, 0, 0, 0, 0, 561, 0, - 561, 561, 561, 562, 562, 562, 562, 0, 0, 2, - 0, 0, 0, 0, 561, 561, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 561, 609, 0, 155, 562, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 0, 0, 0, 562, 561, 562, - 0, 561, 561, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 561, 561, - 561, 561, 0, 561, 561, 561, 561, 0, 0, 561, - 0, 561, 0, 561, 561, 561, 0, 0, 561, 561, - 216, 561, 561, 561, 0, 0, 0, 0, 0, 0, - 561, 0, 0, 2, 0, 1235, 1236, 1237, 0, 1238, - 1239, 1240, 1241, 0, 1242, 1243, 198, 0, 1244, 1245, - 1246, 1247, 0, 0, 0, 610, 609, 1248, 561, 561, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 561, 561, 0, 561, - 561, 561, 0, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 0, 561, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, - 612, 0, 0, 104, 562, 562, 0, 562, 0, 0, - 0, 0, 562, 837, 0, 562, 0, 562, 562, 562, - 562, 562, 562, 562, 0, 562, 562, 562, 562, 0, - 562, 562, 0, 0, 562, 562, 562, 562, 0, 0, - 562, 562, 562, 562, 0, 0, 0, 0, 555, 0, - 562, 0, 562, 0, 0, 562, 0, 0, 0, 610, - 562, 0, 0, 0, 0, 0, 562, 562, 562, 562, - 0, 27, 28, 29, 30, 31, 32, 33, 0, 837, - 0, 555, 789, 789, 0, 789, 555, 0, 555, 555, - 555, 0, 555, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 562, 0, 562, 562, 562, 555, 555, 555, - 555, 611, 0, 0, 612, 0, 0, 0, 562, 562, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 0, 0, 0, 555, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 0, 0, - 0, 555, 562, 555, 0, 562, 562, 789, 789, 789, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 562, 562, 562, 562, 0, 562, 562, 562, - 562, 0, 789, 562, 0, 562, 0, 562, 562, 562, - 0, 0, 562, 562, 0, 562, 562, 562, 0, 0, - 0, 0, 0, 0, 562, 0, 0, 837, 0, 0, - 0, 0, 95, 0, 0, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 837, 0, 562, 562, 0, 0, 0, 0, 97, 98, - 0, 0, 0, 99, 0, 100, 0, 0, 0, 0, - 562, 562, 101, 562, 562, 562, 0, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 0, 562, 0, 102, - 0, 0, 0, 0, 0, 0, 789, 0, 789, 789, - 789, 789, 0, 0, 103, 0, 0, 0, 555, 555, - 0, 555, 0, 0, 0, 0, 555, 838, 0, 555, - 0, 555, 555, 555, 555, 555, 555, 555, 0, 555, - 555, 555, 555, 0, 555, 555, 0, 1587, 555, 555, - 555, 555, 0, 0, 555, 555, 555, 555, 0, 0, - 0, 0, 553, 0, 555, 0, 555, 0, 0, 555, - 0, 0, 0, 837, 555, 0, 0, 0, 0, 0, - 555, 555, 555, 555, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 838, 0, 553, 0, 0, 0, 0, - 553, 0, 553, 553, 553, 0, 553, 0, 0, 0, - 0, 0, 0, 0, 0, 837, 555, 0, 555, 555, - 555, 553, 553, 553, 553, 837, 0, 0, 837, 0, - 0, 0, 555, 555, 0, 0, 0, 0, 0, 0, + 40, 1480, 1487, 1490, 1492, 564, 1520, 1437, 1481, 1502, + 210, 1503, 1504, 1496, 1505, 871, 40, 40, 40, 40, + 1523, 40, 40, 40, 40, 1525, 1527, 40, 1528, 40, + 1529, 40, 40, 40, 40, 1565, 40, 40, 564, 40, + 40, 40, 1566, 564, 1577, 564, 564, 564, 40, 564, + 1595, 1574, 564, 1596, 1597, 152, 153, 154, 1599, 1602, + 95, 1603, 1604, 96, 564, 564, 564, 564, 1608, 1611, + 104, 1613, 437, 990, 29, 438, 40, 40, 40, 137, + 991, 791, 992, 993, 994, 847, 97, 98, 725, 543, + 541, 99, 399, 100, 40, 40, 564, 40, 40, 40, + 101, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 392, 40, 536, 392, 392, 392, 392, 102, 392, 392, + 392, 995, 996, 997, 826, 736, 544, 818, 564, 138, + 564, 743, 103, 737, 848, 539, 540, 548, 271, 819, + 74, 878, 879, 880, 143, 881, 882, 883, 884, 827, + 885, 886, 198, 164, 887, 888, 889, 890, 841, 240, + 208, 891, 892, 144, 147, 167, 210, 998, 999, 1000, + 574, 1001, 28, 31, 1002, 4, 28, 55, 55, 67, + 68, 94, 69, 115, 58, 981, 109, 126, 112, 106, + 127, 118, 300, 639, 128, 129, 130, 131, 132, 1202, + 133, 134, 135, 136, 55, 137, 138, 55, 55, 139, + 140, 141, 142, 55, 55, 98, 143, 144, 55, 208, + 1081, 208, 1495, 55, 841, 145, 55, 146, 55, 893, + 55, 1194, 55, 1353, 55, 55, 912, 1193, 1257, 872, + 1106, 1354, 147, 148, 149, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 990, 1345, 1096, 678, 163, 564, 564, 991, 564, 992, + 993, 994, 1093, 564, 572, 93, 564, 150, 564, 564, + 564, 564, 564, 564, 564, 208, 564, 564, 564, 564, + 239, 564, 564, 1317, 709, 564, 564, 564, 564, 166, + 930, 564, 564, 564, 564, 934, 749, 807, 995, 996, + 997, 564, 202, 564, 513, 686, 564, 0, 0, 609, + 0, 564, 216, 0, 0, 0, 0, 564, 564, 564, + 564, 0, 0, 0, 152, 153, 154, 1241, 1242, 1243, + 0, 1244, 1245, 1246, 1247, 0, 1248, 1249, 198, 0, + 1250, 1251, 1252, 1253, 998, 999, 1000, 0, 1001, 1254, + 0, 1002, 0, 564, 0, 564, 564, 564, 0, 0, + 0, 0, 841, 0, 0, 0, 0, 0, 0, 564, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 841, 564, 0, 0, 0, + 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 0, 0, 0, 208, 564, 0, 0, 564, 564, 0, + 0, 0, 0, 565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 564, 564, 564, 564, 0, 564, + 564, 564, 564, 155, 0, 564, 0, 564, 0, 564, + 564, 564, 0, 0, 564, 564, 565, 564, 564, 564, + 0, 565, 208, 565, 565, 565, 564, 565, 0, 0, + 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 565, 565, 565, 565, 0, 0, 0, 841, + 0, 0, 0, 0, 564, 564, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, + 0, 0, 564, 564, 565, 564, 564, 564, 0, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 0, 564, + 0, 841, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 841, 0, 0, 841, 0, 565, 0, 565, 0, + 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 208, 0, 0, 0, 0, 208, + 0, 0, 208, 208, 0, 0, 842, 0, 210, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 208, 208, 208, 0, 208, 208, 208, 208, 0, 0, + 0, 0, 208, 0, 0, 208, 0, 0, 0, 0, + 0, 0, 208, 208, 208, 841, 841, 841, 841, 841, + 841, 841, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 842, 0, 0, 0, 0, 0, 0, 208, + 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 208, 208, 0, + 208, 208, 208, 0, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 565, 565, 0, 565, 0, 0, 0, + 0, 565, 67, 68, 565, 69, 565, 565, 565, 565, + 565, 565, 565, 210, 565, 565, 565, 565, 0, 565, + 565, 0, 0, 565, 565, 565, 565, 0, 0, 565, + 565, 565, 565, 0, 0, 0, 0, 0, 0, 565, + 0, 565, 0, 0, 565, 0, 0, 0, 0, 565, + 0, 0, 0, 127, 0, 565, 565, 565, 565, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 565, 0, 565, 565, 565, 0, 240, 241, 242, + 842, 0, 0, 0, 0, 0, 0, 565, 565, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 842, 565, 0, 0, 0, 0, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 0, 0, + 0, 210, 565, 0, 0, 565, 565, 0, 0, 0, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 565, 565, 565, 565, 0, 565, 565, 565, + 565, 792, 792, 565, 792, 565, 0, 565, 565, 565, + 0, 0, 565, 565, 558, 565, 565, 565, 0, 558, + 210, 558, 558, 558, 565, 558, 0, 244, 0, 245, + 246, 247, 248, 0, 0, 0, 0, 0, 0, 0, + 558, 558, 558, 558, 0, 0, 0, 842, 0, 0, + 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 565, 565, 558, 565, 565, 565, 0, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 0, 565, 0, 842, + 0, 0, 0, 0, 0, 0, 792, 792, 792, 842, + 0, 0, 842, 0, 558, 1593, 558, 0, 210, 210, + 210, 210, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 792, 210, 0, 0, 0, 0, 210, 0, 0, + 210, 210, 0, 0, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 210, 210, + 210, 0, 210, 210, 210, 210, 0, 0, 0, 0, + 210, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 210, 210, 210, 842, 842, 842, 842, 842, 842, 842, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, + 0, 0, 0, 0, 0, 0, 792, 0, 792, 792, + 792, 792, 0, 0, 0, 210, 210, 0, 210, 210, + 210, 0, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 558, 558, 0, 558, 0, 0, 0, 0, 558, + 0, 0, 558, 0, 558, 558, 558, 558, 558, 558, + 558, 92, 558, 558, 558, 558, 0, 558, 558, 0, + 0, 558, 558, 558, 558, 298, 1578, 558, 558, 558, + 558, 0, 0, 0, 0, 0, 0, 558, 0, 558, + 0, 1579, 558, 0, 0, 0, 0, 558, 0, 0, + 0, 0, 0, 558, 558, 558, 558, 1580, 0, 0, + 0, 0, 0, 0, 0, 0, 1581, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1582, 1583, 1584, 1585, 0, 0, 0, 0, 0, 558, + 0, 558, 558, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 558, 558, 0, 0, 0, + 0, 0, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 0, + 0, 0, 558, 0, 0, 0, 0, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 0, 0, 0, 92, + 558, 0, 0, 558, 558, 0, 0, 0, 0, 556, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 558, 558, 558, 558, 0, 558, 558, 558, 558, 0, + 0, 558, 0, 558, 0, 558, 558, 558, 0, 0, + 558, 558, 556, 558, 558, 558, 0, 556, 0, 556, + 556, 556, 558, 556, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, + 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, + 556, 558, 558, 558, 0, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 0, 558, 0, 0, 298, 0, + 0, 0, 0, 0, 0, 298, 0, 298, 298, 298, + 0, 0, 556, 0, 556, 127, 92, 92, 92, 92, + 92, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 92, 92, + 0, 1311, 144, 0, 93, 0, 298, 298, 298, 0, + 0, 0, 0, 0, 0, 92, 92, 92, 92, 0, + 0, 0, 92, 92, 0, 0, 0, 0, 92, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 92, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1312, 0, 298, 298, 298, 0, 298, 0, 0, 298, + 0, 0, 0, 93, 0, 0, 878, 879, 880, 1313, + 881, 882, 883, 884, 0, 885, 886, 198, 0, 887, + 888, 889, 890, 0, 0, 0, 891, 892, 0, 0, + 0, 0, 0, 92, 92, 0, 92, 92, 92, 0, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 556, + 556, 0, 556, 0, 0, 0, 0, 556, 0, 0, + 556, 0, 556, 556, 556, 556, 556, 556, 556, 93, + 556, 556, 556, 556, 0, 556, 556, 0, 0, 556, + 556, 556, 556, 0, 0, 556, 556, 556, 556, 0, + 0, 0, 0, 0, 893, 556, 0, 556, 0, 0, + 556, 0, 0, 0, 0, 556, 1036, 0, 0, 0, + 0, 556, 556, 556, 556, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1037, 1038, 0, 1039, 1040, + 1041, 1042, 1043, 1044, 0, 1045, 1046, 0, 1047, 1048, + 1049, 1050, 1051, 0, 0, 0, 0, 556, 0, 556, + 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 556, 556, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 556, 0, 0, 0, 0, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 0, 0, 0, 93, 556, 0, + 0, 556, 556, 0, 0, 0, 0, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, + 556, 556, 0, 556, 556, 556, 556, 0, 0, 556, + 0, 556, 0, 556, 556, 556, 0, 0, 556, 556, + 554, 556, 556, 556, 0, 554, 0, 554, 554, 554, + 556, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 554, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 556, 556, 554, 556, + 556, 556, 0, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 0, 556, 1052, 1053, 0, 1054, 1055, 1056, + 0, 1057, 1058, 0, 0, 1059, 1060, 0, 1061, 0, + 554, 0, 554, 0, 93, 93, 93, 93, 93, 0, + 0, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 0, 93, 93, 0, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 93, 93, 93, 0, 0, 0, + 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 93, 0, 93, 93, 93, 0, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 554, 554, 0, + 554, 0, 0, 0, 0, 554, 0, 0, 554, 0, + 554, 554, 554, 554, 554, 554, 554, 94, 554, 554, + 554, 554, 0, 554, 554, 0, 0, 554, 554, 554, + 554, 0, 0, 554, 554, 554, 554, 0, 0, 0, + 0, 0, 0, 554, 0, 554, 0, 0, 554, 0, + 0, 0, 0, 554, 0, 0, 0, 0, 0, 554, + 554, 554, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 554, 0, 554, 554, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, + 0, 0, 0, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 0, 0, 0, 94, 554, 0, 0, 554, + 554, 0, 0, 0, 0, 555, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 554, 554, + 0, 554, 554, 554, 554, 0, 0, 554, 0, 554, + 0, 554, 554, 554, 0, 0, 554, 554, 555, 554, + 554, 554, 0, 555, 0, 555, 555, 555, 554, 555, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 555, 555, 555, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 554, 554, 555, 554, 554, 554, + 0, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 555, 0, + 555, 0, 94, 94, 94, 94, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 362, 0, 0, 0, + 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 94, 94, 94, 0, 0, 0, 94, 94, + 0, 0, 0, 0, 94, 363, 0, 94, 0, 364, + 0, 0, 365, 366, 94, 94, 0, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 0, 0, 0, 0, 0, 379, 0, 0, 380, 785, + 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, + 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 94, 0, 94, 94, 94, 0, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 555, 555, 0, 555, 0, + 0, 0, 0, 555, 0, 0, 555, 0, 555, 555, + 555, 555, 555, 555, 555, 785, 555, 555, 555, 555, + 0, 555, 555, 0, 0, 555, 555, 555, 555, 0, + 0, 555, 555, 555, 555, 0, 0, 0, 0, 0, + 0, 555, 0, 555, 0, 0, 555, 0, 0, 0, + 0, 555, 0, 0, 0, 0, 0, 555, 555, 555, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 555, 0, 555, 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 0, 0, 0, 553, 555, 555, 555, 555, 555, 555, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, + 0, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 0, 0, 0, 553, 555, 553, 0, 555, - 555, 0, 0, 0, 0, 0, 0, 0, 0, 837, - 837, 837, 837, 837, 837, 837, 555, 555, 555, 555, - 0, 555, 555, 555, 555, 0, 0, 555, 1572, 555, - 0, 555, 555, 555, 0, 0, 555, 555, 0, 555, - 555, 555, 0, 1573, 0, 0, 0, 0, 555, 0, - 0, 838, 0, 0, 0, 0, 0, 0, 0, 1574, - 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, - 0, 0, 0, 0, 838, 0, 555, 555, 0, 0, - 0, 0, 1576, 1577, 1578, 1579, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 555, 0, 555, 555, 555, - 0, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 0, 555, 0, 0, 1580, 1581, 1582, 1583, 1584, 1585, - 1586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 553, 553, 0, 553, 0, 0, 0, 0, - 553, 839, 0, 553, 0, 553, 553, 553, 553, 553, - 553, 553, 0, 553, 553, 553, 553, 0, 553, 553, - 0, 0, 553, 553, 553, 553, 0, 0, 553, 553, - 553, 553, 0, 0, 0, 0, 551, 0, 553, 0, - 553, 0, 0, 553, 0, 0, 0, 838, 553, 0, - 0, 0, 0, 0, 553, 553, 553, 553, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 839, 0, 551, - 0, 0, 0, 0, 551, 0, 551, 551, 551, 0, - 551, 0, 0, 0, 0, 0, 0, 0, 0, 838, - 553, 0, 553, 553, 553, 551, 551, 551, 551, 838, - 0, 0, 838, 0, 0, 0, 553, 553, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 0, 0, 0, 551, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 0, 0, 0, 551, - 553, 551, 0, 553, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 838, 838, 838, 838, 838, 838, 838, - 553, 553, 553, 553, 0, 553, 553, 553, 553, 0, - 0, 553, 0, 553, 0, 553, 553, 553, 0, 0, - 553, 553, 0, 553, 553, 553, 0, 0, 0, 0, - 0, 0, 553, 0, 0, 839, 0, 95, 0, 0, - 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 839, 0, - 553, 553, 0, 97, 98, 0, 0, 0, 99, 0, - 100, 0, 0, 0, 0, 0, 0, 101, 553, 553, - 0, 553, 553, 553, 0, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 102, 553, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 0, 0, 551, 551, 0, 551, - 0, 0, 0, 0, 551, 0, 0, 551, 0, 551, - 551, 551, 551, 551, 551, 551, 0, 551, 551, 551, - 551, 0, 551, 551, 0, 0, 551, 551, 551, 551, - 0, 0, 551, 551, 551, 551, 0, 0, 0, 0, - 552, 0, 551, 0, 551, 0, 0, 551, 0, 0, - 0, 839, 551, 0, 0, 0, 0, 0, 551, 551, - 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 552, 0, 0, 0, 0, 552, 0, - 552, 552, 552, 0, 552, 0, 0, 0, 0, 0, - 0, 0, 0, 839, 551, 0, 551, 551, 551, 552, - 552, 552, 552, 839, 0, 0, 839, 0, 0, 0, - 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, - 0, 552, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 0, 0, 0, 552, 551, 552, 0, 551, 551, 0, - 0, 0, 0, 0, 0, 0, 0, 839, 839, 839, - 839, 839, 839, 839, 551, 551, 551, 551, 0, 551, - 551, 551, 551, 0, 0, 551, 0, 551, 0, 551, - 551, 551, 0, 0, 551, 551, 0, 551, 551, 551, - 0, 127, 0, 0, 0, 0, 551, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 1305, 144, 0, - 0, 0, 0, 0, 551, 551, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 551, 551, 0, 551, 551, 551, 0, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 0, 551, - 0, 0, 0, 0, 0, 0, 1306, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 552, 0, 552, 0, 1307, 0, 0, 552, 0, - 0, 552, 0, 552, 552, 552, 552, 552, 552, 552, - 0, 552, 552, 552, 552, 0, 552, 552, 0, 0, - 552, 552, 552, 552, 0, 0, 552, 552, 552, 552, - 0, 0, 0, 0, 554, 0, 552, 0, 552, 0, - 0, 552, 0, 0, 0, 0, 552, 0, 0, 0, - 0, 0, 552, 552, 552, 552, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, - 0, 0, 554, 0, 554, 554, 554, 0, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, - 552, 552, 552, 554, 554, 554, 554, 0, 0, 0, - 0, 0, 0, 0, 552, 552, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 552, 0, 0, 0, 554, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 0, 0, 0, 554, 552, 554, - 0, 552, 552, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 552, 552, - 552, 552, 0, 552, 552, 552, 552, 0, 0, 552, - 0, 552, 0, 552, 552, 552, 0, 0, 552, 552, - 0, 552, 552, 552, 0, 0, 0, 0, 0, 0, - 552, 873, 874, 875, 0, 876, 877, 878, 879, 0, - 880, 881, 198, 0, 882, 883, 884, 885, 0, 0, - 0, 886, 887, 0, 0, 0, 0, 0, 552, 552, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 552, 552, 0, 552, - 552, 552, 0, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 0, 552, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 554, 0, 554, 0, 888, - 0, 0, 554, 0, 0, 554, 0, 554, 554, 554, - 554, 554, 554, 554, 0, 554, 554, 554, 554, 0, - 554, 554, 0, 0, 554, 554, 554, 554, 0, 0, - 554, 554, 554, 554, 0, 0, 0, 0, 694, 0, - 554, 0, 554, 0, 0, 554, 0, 0, 0, 0, - 554, 0, 0, 0, 0, 0, 554, 554, 554, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 694, 0, 0, 0, 0, 694, 0, 694, 694, - 694, 0, 694, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 0, 554, 554, 554, 694, 694, 694, - 694, 0, 0, 0, 0, 0, 0, 0, 554, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 554, 0, 0, 0, 694, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 0, 0, - 0, 694, 554, 694, 0, 554, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 554, 554, 554, 0, 554, 554, 554, - 554, 0, 0, 554, 0, 554, 0, 554, 554, 554, - 0, 0, 554, 554, 0, 554, 554, 554, 0, 0, - 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 554, 0, 554, 554, 554, 0, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 0, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 694, 694, - 0, 694, 0, 0, 0, 0, 694, 0, 0, 694, - 0, 694, 694, 694, 694, 694, 694, 694, 0, 694, - 694, 694, 694, 0, 694, 694, 0, 0, 694, 694, - 694, 694, 0, 0, 694, 694, 694, 0, 0, 0, - 0, 0, 693, 0, 694, 0, 694, 0, 0, 694, - 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, - 694, 694, 694, 694, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, - 693, 0, 693, 693, 693, 0, 693, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 694, 0, 694, 694, - 694, 693, 693, 693, 693, 0, 0, 0, 0, 0, - 0, 0, 694, 694, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, - 0, 0, 0, 693, 694, 694, 694, 694, 694, 694, - 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 694, 694, 0, 0, 0, 693, 694, 693, 0, 694, - 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 694, 694, 694, 694, - 0, 694, 694, 694, 694, 0, 0, 694, 0, 694, - 0, 694, 694, 694, 0, 0, 694, 694, 0, 694, - 694, 694, 0, 0, 0, 0, 0, 0, 694, 0, + 0, 0, 0, 785, 555, 0, 0, 555, 555, 0, + 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 555, 555, 555, 0, 555, + 555, 555, 555, 0, 0, 555, 0, 555, 0, 555, + 555, 555, 0, 0, 555, 555, 557, 555, 555, 555, + 0, 557, 0, 557, 557, 557, 555, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 557, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 694, 694, 0, 0, + 0, 0, 555, 555, 557, 555, 555, 555, 0, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 694, 694, 0, 694, 694, 694, - 0, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 0, 694, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 693, 693, 0, 693, 0, 0, 0, 0, - 693, 0, 0, 693, 0, 693, 693, 693, 693, 693, - 693, 693, 0, 693, 693, 693, 693, 0, 693, 693, - 0, 0, 693, 693, 693, 693, 0, 0, 693, 693, - 693, 0, 0, 0, 0, 0, 692, 0, 693, 0, - 693, 0, 0, 693, 0, 0, 0, 0, 693, 0, - 0, 0, 0, 0, 693, 693, 693, 693, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, - 0, 0, 0, 0, 692, 0, 692, 692, 692, 0, - 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 693, 0, 693, 693, 693, 692, 692, 692, 692, 0, - 0, 0, 0, 0, 0, 0, 693, 693, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 693, 0, 0, 0, 692, 693, 693, - 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, - 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, - 693, 693, 693, 693, 693, 693, 0, 0, 0, 692, - 693, 692, 0, 693, 693, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 693, 693, 693, 693, 0, 693, 693, 693, 693, 0, - 0, 693, 0, 693, 0, 693, 693, 693, 0, 0, - 693, 693, 0, 693, 693, 693, 0, 0, 0, 0, - 0, 0, 693, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 693, 693, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 693, 693, - 0, 693, 693, 693, 0, 693, 693, 693, 693, 693, - 693, 693, 693, 693, 0, 693, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 692, 692, 0, 692, - 0, 0, 0, 0, 692, 0, 0, 692, 0, 692, - 692, 692, 692, 692, 692, 692, 0, 692, 692, 692, - 692, 0, 692, 692, 0, 0, 692, 692, 692, 692, - 0, 0, 692, 692, 692, 0, 0, 0, 0, 0, - 691, 0, 692, 0, 692, 0, 0, 692, 0, 0, - 0, 0, 692, 0, 0, 0, 0, 0, 692, 692, - 692, 692, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 691, 0, 0, 0, 0, 691, 0, - 691, 691, 691, 0, 691, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 692, 0, 692, 692, 692, 691, - 691, 691, 691, 0, 0, 0, 0, 0, 0, 0, - 692, 692, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, - 0, 691, 692, 692, 692, 692, 692, 692, 692, 692, - 692, 692, 692, 692, 692, 692, 692, 692, 692, 692, - 692, 692, 692, 692, 692, 692, 692, 692, 692, 692, - 0, 0, 0, 691, 692, 691, 0, 692, 692, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 692, 692, 692, 692, 0, 692, - 692, 692, 692, 0, 0, 692, 0, 692, 0, 692, - 692, 692, 0, 0, 692, 692, 0, 692, 692, 692, - 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 692, 692, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 692, 692, 0, 692, 692, 692, 0, 692, - 692, 692, 692, 692, 692, 692, 692, 692, 0, 692, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 691, 691, 0, 691, 0, 0, 0, 0, 691, 0, - 0, 691, 0, 691, 691, 691, 691, 691, 691, 691, - 0, 691, 691, 691, 691, 0, 691, 691, 0, 0, - 691, 691, 691, 691, 0, 0, 691, 691, 691, 0, - 0, 0, 0, 0, 701, 0, 691, 0, 691, 0, - 0, 691, 0, 0, 0, 0, 691, 0, 0, 0, - 0, 0, 691, 691, 691, 691, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 701, 0, 0, - 0, 0, 0, 0, 701, 701, 0, 0, 701, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 691, 0, - 691, 691, 691, 701, 0, 701, 701, 0, 0, 0, - 0, 0, 0, 0, 691, 691, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 691, 0, 0, 0, 0, 691, 691, 691, 691, - 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - 691, 691, 691, 691, 0, 0, 0, 701, 691, 701, - 0, 691, 691, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 691, 691, - 691, 691, 0, 691, 691, 691, 691, 0, 0, 691, - 0, 691, 0, 691, 691, 691, 0, 0, 691, 691, - 0, 691, 691, 691, 0, 0, 0, 0, 0, 0, - 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 691, 691, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 691, 691, 0, 691, - 691, 691, 0, 691, 691, 691, 691, 691, 691, 691, - 691, 691, 0, 691, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 701, 701, 0, 701, 0, 0, - 67, 68, 701, 69, 0, 701, 0, 701, 701, 701, - 701, 701, 701, 701, 0, 701, 701, 701, 701, 0, - 701, 701, 0, 0, 701, 701, 701, 701, 0, 0, - 701, 701, 701, 0, 360, 52, 0, 0, 0, 0, - 701, 0, 701, 0, 0, 701, 0, 0, 0, 0, - 701, 0, 0, 0, 0, 0, 701, 701, 701, 701, - 0, 0, 0, 361, 0, 0, 0, 362, 0, 0, - 363, 364, 0, 0, 0, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 0, 0, 0, - 0, 0, 701, 377, 52, 0, 378, 0, 0, 0, - 0, 0, 0, 379, 0, 157, 0, 0, 701, 701, - 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 701, 0, 0, 0, 0, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 52, 0, - 52, 0, 701, 0, 0, 701, 701, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 701, 701, 701, 701, 0, 701, 701, 701, - 701, 0, 0, 701, 0, 701, 0, 701, 701, 701, - 0, 0, 701, 701, 0, 701, 701, 701, 0, 0, - 0, 0, 0, 0, 701, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 701, 701, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 701, 701, 0, 701, 701, 701, 0, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 0, 701, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 52, 52, 52, 0, 52, 52, 52, 52, - 0, 52, 52, 52, 0, 52, 52, 52, 52, 0, - 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 127, 266, 54, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 52, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, - 144, 0, 0, 0, 52, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 147, 148, 149, 0, 52, - 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, - 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 54, 0, - 54, 0, 0, 866, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 52, 52, 52, 0, 52, 52, - 52, 52, 0, 0, 52, 0, 52, 0, 52, 52, - 52, 52, 0, 52, 52, 0, 52, 52, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 105, 105, - 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, + 105, 105, 0, 105, 0, 0, 557, 0, 557, 0, + 785, 785, 785, 785, 785, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 785, 785, 105, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, + 785, 785, 785, 0, 0, 0, 785, 785, 0, 0, + 0, 0, 785, 105, 0, 785, 0, 105, 0, 0, + 105, 105, 785, 785, 0, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 0, 0, 0, + 0, 0, 0, 105, 0, 0, 105, 47, 0, 0, + 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 52, 0, 52, 52, 52, 0, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 785, 785, 0, + 785, 785, 785, 0, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 557, 557, 0, 557, 0, 0, 0, + 0, 557, 0, 0, 557, 0, 557, 557, 557, 557, + 557, 557, 557, 47, 557, 557, 557, 557, 0, 557, + 557, 0, 0, 557, 557, 557, 557, 0, 0, 557, + 557, 557, 557, 0, 0, 0, 0, 0, 0, 557, + 0, 557, 0, 0, 557, 0, 0, 0, 0, 557, + 0, 0, 0, 0, 0, 557, 557, 557, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 557, 0, 557, 557, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 557, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 557, 0, 0, 0, 0, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 0, 0, + 0, 47, 557, 0, 0, 557, 557, 0, 0, 0, + 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 557, 557, 0, 557, 557, 557, + 557, 0, 0, 557, 0, 557, 0, 557, 557, 557, + 0, 0, 557, 557, 697, 557, 557, 557, 0, 697, + 0, 697, 697, 697, 557, 697, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 697, 697, 697, 697, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 557, 557, 697, 557, 557, 557, 0, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 697, 0, 697, 0, 47, 47, + 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 0, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, + 47, 0, 0, 0, 47, 47, 0, 0, 0, 0, + 47, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 47, 0, 47, 47, + 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 697, 697, 0, 697, 0, 0, 0, 0, 697, + 0, 0, 697, 0, 697, 697, 697, 697, 697, 697, + 697, 48, 697, 697, 697, 697, 0, 697, 697, 0, + 0, 697, 697, 697, 697, 0, 0, 697, 697, 697, + 0, 0, 0, 0, 0, 0, 0, 697, 0, 697, + 0, 0, 697, 0, 0, 0, 0, 697, 0, 0, + 0, 0, 0, 697, 697, 697, 697, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, + 0, 697, 697, 697, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 697, 697, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 697, 0, 0, 0, 0, 697, 697, 697, + 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, + 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, + 697, 697, 697, 697, 697, 697, 0, 0, 0, 48, + 697, 0, 0, 697, 697, 0, 0, 0, 0, 696, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 697, 697, 697, 697, 0, 697, 697, 697, 697, 0, + 0, 697, 0, 697, 0, 697, 697, 697, 0, 0, + 697, 697, 696, 697, 697, 697, 0, 696, 0, 696, + 696, 696, 697, 696, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, + 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, + 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 697, 697, + 696, 697, 697, 697, 0, 697, 697, 697, 697, 697, + 697, 697, 697, 697, 0, 697, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 696, 0, 696, 0, 48, 48, 48, 48, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 48, 48, 48, 0, + 0, 0, 48, 48, 0, 0, 0, 0, 48, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 48, 0, 48, 48, 48, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 696, + 696, 0, 696, 0, 0, 0, 0, 696, 0, 0, + 696, 0, 696, 696, 696, 696, 696, 696, 696, 49, + 696, 696, 696, 696, 0, 696, 696, 0, 0, 696, + 696, 696, 696, 0, 0, 696, 696, 696, 0, 0, + 0, 0, 0, 0, 0, 696, 0, 696, 0, 0, + 696, 0, 0, 0, 0, 696, 0, 0, 0, 0, + 0, 696, 696, 696, 696, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 696, 0, 696, + 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 696, 696, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 696, 0, 0, 0, 0, 696, 696, 696, 696, 696, + 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, + 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, + 696, 696, 696, 696, 0, 0, 0, 49, 696, 0, + 0, 696, 696, 0, 0, 0, 0, 695, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, + 696, 696, 0, 696, 696, 696, 696, 0, 0, 696, + 0, 696, 0, 696, 696, 696, 0, 0, 696, 696, + 695, 696, 696, 696, 0, 695, 0, 695, 695, 695, + 696, 695, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 695, 695, 695, 695, + 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 696, 696, 695, 696, + 696, 696, 0, 696, 696, 696, 696, 696, 696, 696, + 696, 696, 0, 696, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 695, 0, 695, 0, 49, 49, 49, 49, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 49, 49, 49, 0, 0, 0, + 49, 49, 0, 0, 0, 596, 49, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 49, 0, 49, 49, 49, 0, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 695, 695, 0, + 695, 0, 0, 0, 0, 695, 0, 0, 695, 0, + 695, 695, 695, 695, 695, 695, 695, 50, 695, 695, + 695, 695, 0, 695, 695, 0, 0, 695, 695, 695, + 695, 0, 0, 695, 695, 695, 0, 0, 0, 0, + 0, 0, 0, 695, 0, 695, 0, 0, 695, 0, + 0, 0, 0, 695, 0, 0, 0, 0, 0, 695, + 695, 695, 695, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 695, 0, 695, 695, 695, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 695, 695, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 695, 695, 695, 695, 695, 695, 695, + 695, 695, 695, 695, 695, 695, 695, 695, 695, 695, + 695, 695, 695, 695, 695, 695, 695, 695, 695, 695, + 695, 695, 0, 0, 0, 50, 695, 0, 0, 695, + 695, 0, 0, 0, 0, 694, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 695, 695, 695, 695, + 0, 695, 695, 695, 695, 0, 0, 695, 0, 695, + 0, 695, 695, 695, 0, 0, 695, 695, 694, 695, + 695, 695, 0, 694, 0, 694, 694, 694, 695, 694, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 694, 694, 694, 694, 0, 0, + 0, 0, 13, 0, 0, 0, 695, 695, 0, 0, + 0, 0, 0, 0, 592, 0, 593, 0, 0, 594, + 595, 0, 0, 0, 695, 695, 694, 695, 695, 695, + 0, 695, 695, 695, 695, 695, 695, 695, 695, 695, + 0, 695, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, + 694, 0, 50, 50, 50, 50, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 50, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 50, 50, 50, 0, 0, 0, 50, 50, + 0, 0, 0, 0, 50, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 50, 0, 50, 50, 50, 0, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 694, 694, 0, 694, 0, + 0, 0, 0, 694, 0, 0, 694, 0, 694, 694, + 694, 694, 694, 694, 694, 0, 694, 694, 694, 694, + 0, 694, 694, 0, 0, 694, 694, 694, 694, 0, + 0, 694, 694, 694, 0, 0, 0, 0, 0, 0, + 704, 694, 0, 694, 0, 0, 694, 0, 0, 0, + 0, 694, 0, 0, 0, 0, 0, 694, 694, 694, + 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, + 704, 704, 0, 0, 704, 0, 0, 0, 0, 0, + 0, 0, 0, 694, 0, 694, 694, 694, 0, 704, + 0, 704, 704, 0, 0, 0, 0, 0, 0, 694, + 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, + 0, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, + 0, 0, 0, 704, 694, 704, 0, 694, 694, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 694, 694, 694, 694, 0, 694, + 694, 694, 694, 0, 0, 694, 0, 694, 0, 694, + 694, 694, 0, 0, 694, 694, 0, 694, 694, 694, + 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 694, 694, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 694, 694, 0, 694, 694, 694, 0, 694, + 694, 694, 694, 694, 694, 694, 694, 694, 0, 694, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 704, 704, 0, 704, 0, 0, 0, 0, 704, 0, + 0, 704, 0, 704, 704, 704, 704, 704, 704, 704, + 0, 704, 704, 704, 704, 0, 704, 704, 0, 0, + 704, 704, 704, 704, 0, 0, 704, 704, 704, 0, + 0, 0, 52, 0, 387, 97, 704, 0, 704, 0, + 99, 704, 100, 0, 0, 0, 704, 0, 0, 101, + 0, 0, 704, 704, 704, 704, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 388, 0, 389, + 390, 391, 392, 393, 0, 0, 0, 0, 394, 0, + 0, 103, 0, 0, 0, 0, 0, 395, 704, 0, + 0, 52, 396, 0, 397, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 704, 704, 398, 399, 400, 401, + 402, 403, 404, 405, 0, 0, 0, 0, 0, 406, + 0, 704, 0, 0, 0, 0, 704, 704, 704, 704, + 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, + 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, + 704, 704, 704, 704, 704, 52, 0, 52, 0, 704, + 797, 0, 704, 704, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, + 704, 704, 704, 0, 704, 704, 704, 704, 0, 0, + 704, 0, 704, 0, 704, 704, 704, 0, 0, 704, + 704, 0, 704, 704, 704, 0, 0, 0, 0, 0, + 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, + 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 704, 0, + 704, 704, 704, 0, 704, 704, 704, 704, 704, 704, + 704, 704, 704, 0, 704, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 0, 54, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, - 0, 105, 0, 0, 0, 105, 0, 0, 105, 105, - 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 54, 0, 0, 54, 0, - 0, 105, 0, 0, 105, 155, 0, 0, 54, 0, - 0, 105, 54, 54, 54, 0, 54, 54, 54, 54, - 105, 54, 54, 54, 0, 54, 54, 54, 54, 0, - 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 127, 0, 55, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 54, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, - 144, 0, 0, 0, 54, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 147, 148, 149, 0, 54, - 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 54, 0, 54, 0, + 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 52, 52, 52, 0, 52, 52, 52, 52, + 0, 0, 52, 0, 52, 0, 52, 52, 52, 52, + 0, 52, 52, 0, 52, 52, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, - 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 55, 0, - 55, 0, 0, 232, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 54, 54, 54, 0, 54, 54, - 54, 54, 0, 0, 54, 0, 54, 0, 54, 54, - 54, 54, 0, 54, 54, 0, 54, 54, 54, 0, + 0, 0, 0, 54, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 54, 0, 0, 0, + 54, 54, 54, 0, 54, 54, 54, 54, 0, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 0, 55, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 54, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 147, 148, 149, 0, 54, 54, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, + 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 55, 0, 55, + 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 54, 54, 54, 0, 54, 54, 54, + 54, 0, 0, 54, 0, 54, 0, 54, 54, 54, + 54, 0, 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 54, 0, 54, 54, 54, 0, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 0, 54, 54, 54, 0, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 0, 55, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 55, 0, - 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 55, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 55, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, 0, - 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 232, 0, 56, 0, 232, 232, 232, - 232, 232, 0, 232, 232, 232, 232, 55, 232, 232, - 0, 0, 232, 232, 232, 232, 0, 0, 0, 232, - 232, 0, 0, 0, 55, 0, 0, 0, 232, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 232, 232, 232, 0, 55, - 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 56, 232, 232, 232, 232, + 232, 0, 232, 232, 232, 232, 55, 232, 232, 0, + 0, 232, 232, 232, 232, 0, 0, 0, 232, 232, + 0, 0, 0, 55, 0, 0, 0, 232, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 232, 232, 232, 0, 55, 55, + 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 0, @@ -1891,2665 +2031,2687 @@ static int yytable[] = { 70, 0, 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 53, 0, 225, 225, 225, + 0, 0, 0, 225, 0, 0, 53, 225, 225, 225, 225, 225, 0, 225, 225, 225, 225, 56, 225, 225, 0, 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, 0, 0, 0, 56, 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 225, 225, 225, 0, 56, - 56, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, - 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 53, 0, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 56, 56, 0, 56, 56, - 56, 56, 0, 0, 56, 0, 56, 0, 56, 56, - 56, 56, 0, 56, 56, 0, 56, 56, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 56, 0, 56, 56, 56, 0, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 53, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 53, 0, - 0, 0, 53, 53, 53, 0, 53, 53, 53, 53, - 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, - 0, 53, 53, 53, 0, 0, 0, 61, 0, 61, - 0, 0, 0, 0, 34, 385, 97, 0, 0, 0, - 0, 99, 0, 100, 0, 0, 0, 53, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 102, 386, 0, - 387, 388, 389, 390, 391, 0, 0, 0, 0, 392, - 0, 0, 103, 0, 53, 0, 0, 0, 393, 53, - 53, 0, 0, 394, 0, 395, 0, 0, 0, 0, - 522, 0, 0, 0, 0, 0, 0, 396, 397, 398, - 399, 400, 401, 402, 403, 0, 0, 0, 0, 0, - 404, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, - 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 0, 62, - 0, 0, 0, 0, 61, 0, 0, 61, 0, 0, - 0, 0, 0, 53, 53, 53, 53, 61, 53, 53, - 53, 53, 0, 0, 53, 0, 53, 0, 53, 53, - 53, 53, 0, 53, 53, 0, 53, 53, 53, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 53, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 56, 56, 56, 0, 56, + 56, 56, 56, 0, 0, 56, 0, 56, 0, 56, + 56, 56, 56, 0, 56, 56, 0, 56, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 2, 0, - 0, 53, 53, 0, 53, 53, 53, 0, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 0, 513, 0, 0, + 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 56, 0, 56, 56, 56, 0, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 225, 0, 0, 53, + 0, 0, 0, 53, 53, 53, 0, 53, 53, 53, + 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, + 0, 0, 53, 53, 53, 0, 0, 0, 0, 61, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 0, 62, 0, 0, 0, 61, 0, 0, 61, + 0, 0, 0, 0, 0, 53, 53, 53, 53, 61, + 53, 53, 53, 53, 0, 0, 53, 0, 53, 0, + 53, 53, 53, 53, 0, 53, 53, 0, 53, 53, + 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 53, 53, 0, 53, 53, 53, 0, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, + 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, - 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 61, 61, 61, 0, 61, 61, 61, - 61, 0, 0, 61, 0, 61, 0, 61, 61, 61, - 61, 0, 61, 61, 0, 61, 61, 61, 0, 0, - 0, 0, 0, 0, 514, 0, 5, 6, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 515, 0, - 0, 0, 0, 516, 0, 0, 8, 9, 0, 0, - 0, 0, 61, 61, 0, 0, 0, 0, 0, 62, - 0, 0, 62, 10, 11, 12, 13, 0, 517, 518, - 61, 61, 62, 61, 61, 61, 0, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 0, 0, 519, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 520, 521, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 61, 61, 61, 0, + 61, 61, 61, 61, 0, 0, 61, 0, 61, 0, + 61, 61, 61, 61, 0, 61, 61, 0, 61, 61, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 61, 0, 0, 0, + 0, 0, 62, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 61, 61, 62, 61, 61, 61, 0, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 0, 65, 0, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 0, 66, 0, 0, 0, 0, 65, 0, - 0, 65, 0, 0, 0, 0, 0, 62, 62, 62, - 62, 65, 62, 62, 62, 62, 0, 0, 62, 0, - 62, 0, 62, 62, 62, 62, 0, 62, 62, 0, - 62, 62, 62, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 62, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 0, 0, 0, 62, 62, 0, 62, 62, - 62, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, + 62, 62, 62, 62, 62, 62, 0, 0, 66, 0, + 0, 0, 65, 0, 0, 65, 0, 0, 0, 0, + 0, 62, 62, 62, 62, 65, 62, 62, 62, 62, + 0, 0, 62, 0, 62, 0, 62, 62, 62, 62, + 0, 62, 62, 0, 62, 62, 62, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, + 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 62, + 62, 0, 62, 62, 62, 0, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 0, 0, 0, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 0, 0, 0, 0, 0, 0, 566, 0, 0, - 0, 0, 0, 0, 0, 0, 65, 65, 65, 65, - 0, 65, 65, 65, 65, 0, 0, 65, 0, 65, - 0, 65, 65, 65, 65, 0, 65, 65, 0, 65, - 65, 65, 0, 0, 0, 0, 0, 566, 566, 0, - 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 566, 0, 566, 0, - 0, 0, 0, 0, 0, 0, 65, 65, 0, 0, - 0, 0, 0, 66, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 65, 65, 66, 65, 65, 65, - 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, + 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 65, 65, 0, 65, 65, 65, 65, + 0, 0, 65, 0, 65, 0, 65, 65, 65, 65, + 0, 65, 65, 0, 65, 65, 65, 0, 0, 0, + 0, 0, 0, 569, 569, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 566, 0, 566, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, + 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, + 65, 66, 65, 65, 65, 0, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, + 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 0, 0, 564, 0, - 0, 0, 0, 0, 0, 0, 0, 566, 566, 0, - 566, 66, 66, 66, 66, 0, 66, 66, 66, 66, - 566, 566, 66, 0, 66, 0, 66, 66, 66, 66, - 0, 66, 66, 0, 66, 66, 66, 0, 564, 564, - 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 564, 566, 564, - 0, 0, 0, 566, 0, 0, 0, 0, 0, 566, - 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 66, - 66, 0, 66, 66, 66, 0, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 0, 564, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 0, 0, 0, 566, 566, 566, 566, 566, 566, - 566, 0, 0, 0, 0, 566, 0, 0, 566, 566, - 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 566, 566, 566, 566, 0, - 566, 566, 566, 566, 0, 0, 566, 0, 566, 0, - 566, 566, 566, 0, 0, 566, 566, 0, 566, 566, - 566, 0, 565, 565, 0, 0, 565, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 0, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 566, 566, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 564, 566, 566, 0, 566, 566, 566, 0, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 0, 565, 0, 564, - 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, - 564, 0, 0, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 33, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 66, 66, 0, 0, 567, 0, 0, 0, 0, 0, + 0, 0, 0, 569, 569, 0, 569, 66, 66, 66, + 66, 0, 66, 66, 66, 66, 569, 569, 66, 0, + 66, 0, 66, 66, 66, 66, 0, 66, 66, 0, + 66, 66, 66, 0, 567, 567, 0, 0, 567, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 567, 569, 567, 0, 0, 0, 569, + 0, 0, 0, 0, 0, 569, 0, 66, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 66, 0, 66, 66, + 66, 0, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 567, 0, 567, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, + 0, 569, 569, 569, 569, 569, 569, 569, 0, 0, + 0, 0, 569, 0, 0, 569, 569, 0, 0, 568, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 569, 569, 569, 0, 569, 569, 569, + 569, 0, 0, 569, 0, 569, 0, 569, 569, 569, + 0, 0, 569, 569, 0, 569, 569, 569, 0, 568, + 568, 0, 0, 568, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, + 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 569, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 567, 567, 0, + 569, 569, 0, 569, 569, 569, 0, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 568, 0, 568, 567, 0, 0, 0, 0, + 567, 0, 0, 0, 0, 0, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 150, 0, 33, 564, 564, 564, 564, 564, - 564, 564, 0, 0, 0, 0, 564, 0, 0, 564, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 564, 564, 564, 564, - 0, 564, 564, 564, 564, 565, 565, 564, 0, 564, - 0, 564, 564, 564, 0, 0, 564, 564, 0, 564, - 564, 564, 0, 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 565, 0, 0, 0, 0, 565, 0, - 0, 0, 0, 0, 565, 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 564, 564, 0, 564, 564, 564, - 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 565, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 0, 155, 0, 565, - 565, 565, 565, 565, 565, 565, 0, 0, 0, 0, - 565, 0, 0, 565, 565, 33, 34, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 565, 565, 565, 565, 0, 565, 565, 565, 565, 0, - 0, 565, 0, 565, 0, 565, 565, 565, 0, 0, - 565, 565, 0, 565, 565, 565, 0, 0, 0, 0, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 33, + 0, 0, 567, 567, 567, 567, 567, 567, 567, 0, + 0, 0, 0, 567, 0, 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 34, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 565, 565, - 0, 565, 565, 565, 0, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 0, 0, 0, 0, 0, 0, - 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, - 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 0, 771, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 33, 0, 33, 33, - 33, 33, 0, 0, 33, 0, 33, 34, 0, 33, - 34, 0, 0, 0, 0, 0, 33, 33, 33, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 567, 567, 567, 567, 0, 567, 567, + 567, 567, 568, 568, 567, 0, 567, 0, 567, 567, + 567, 0, 0, 567, 567, 0, 567, 567, 567, 0, + 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 771, 0, 771, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 33, 33, 0, 33, 33, 33, 0, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, + 568, 0, 0, 0, 0, 568, 0, 0, 0, 0, + 0, 568, 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 773, 0, 0, 0, 0, 0, + 0, 567, 567, 0, 567, 567, 567, 0, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, - 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 0, 0, 773, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 771, 92, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 0, 0, 34, 0, 34, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 34, 34, - 34, 0, 0, 0, 0, 0, 0, 773, 0, 773, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 34, 0, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, - 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 771, 771, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 0, 0, 0, 771, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 771, 0, 0, 777, 0, 0, 0, 0, - 0, 0, 0, 0, 773, 0, 0, 0, 771, 771, - 771, 771, 0, 771, 771, 771, 771, 773, 0, 771, - 0, 771, 0, 0, 771, 0, 0, 0, 0, 0, - 0, 771, 771, 771, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 777, - 0, 777, 0, 0, 0, 0, 773, 0, 771, 771, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 771, 771, 0, 771, - 771, 771, 0, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 0, 0, - 0, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 0, 0, 775, - 0, 0, 0, 0, 92, 92, 92, 92, 92, 0, - 0, 0, 773, 773, 773, 773, 777, 773, 773, 773, - 773, 0, 0, 773, 0, 773, 92, 92, 773, 777, - 0, 0, 0, 0, 0, 773, 773, 773, 0, 0, - 0, 0, 0, 92, 92, 92, 92, 0, 0, 0, - 92, 92, 0, 0, 0, 0, 92, 0, 0, 92, - 0, 0, 0, 775, 0, 775, 92, 92, 0, 0, - 0, 0, 773, 773, 0, 0, 0, 0, 777, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 773, 773, 0, 773, 773, 773, 0, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 0, 0, 0, 0, - 0, 0, 0, 779, 0, 0, 0, 0, 0, 0, - 0, 92, 92, 0, 92, 92, 92, 0, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 0, 0, 779, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 775, 0, 0, 0, 777, 777, 777, 777, 0, 777, - 777, 777, 777, 775, 0, 777, 0, 777, 0, 0, - 777, 0, 0, 0, 0, 0, 0, 777, 777, 777, - 0, 0, 0, 0, 0, 0, 779, 0, 779, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 775, 0, 777, 777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 777, 777, 0, 777, 777, 777, 0, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 0, 0, 0, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 779, 729, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 779, 0, 775, 775, - 775, 775, 0, 775, 775, 775, 775, 0, 0, 775, - 0, 775, 0, 0, 775, 0, 0, 0, 0, 0, - 0, 775, 775, 775, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 779, 0, 0, 729, 0, - 729, 0, 0, 0, 0, 0, 0, 0, 775, 775, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 775, 775, 0, 775, - 775, 775, 0, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 0, 0, 0, 0, 0, 0, 731, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 779, - 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, - 779, 779, 779, 779, 779, 779, 779, 0, 0, 0, - 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, - 779, 779, 779, 779, 779, 779, 0, 731, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 779, 779, 779, 779, 0, 779, 779, 779, 779, - 0, 0, 779, 0, 779, 729, 0, 779, 729, 0, - 0, 0, 0, 0, 779, 779, 779, 0, 729, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 731, 0, 731, 0, 0, 0, 0, 0, 0, - 0, 779, 779, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 729, 0, 779, - 779, 0, 779, 779, 779, 0, 779, 779, 779, 779, - 779, 779, 779, 779, 779, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, - 0, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 0, - 0, 0, 729, 729, 729, 729, 729, 729, 729, 0, - 0, 0, 0, 729, 0, 0, 729, 729, 731, 0, - 0, 731, 400, 0, 0, 0, 0, 0, 0, 0, - 0, 731, 0, 729, 729, 729, 729, 400, 729, 729, - 729, 729, 0, 0, 729, 0, 729, 0, 729, 729, - 729, 0, 0, 729, 729, 0, 729, 729, 729, 0, + 0, 0, 0, 0, 0, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 0, 0, 0, 568, 568, 568, + 568, 568, 568, 568, 0, 0, 0, 34, 568, 0, + 33, 568, 568, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 568, 568, + 568, 568, 0, 568, 568, 568, 568, 0, 0, 568, + 0, 568, 0, 568, 568, 568, 0, 0, 568, 568, + 0, 568, 568, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 729, 729, 0, 0, 0, 0, 0, - 0, 400, 0, 400, 0, 0, 0, 0, 0, 0, - 0, 729, 729, 0, 729, 729, 729, 0, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 0, 0, 0, 731, 731, 731, 731, 731, - 731, 731, 0, 0, 0, 0, 731, 0, 0, 731, - 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 731, 731, 731, 731, - 0, 731, 731, 731, 731, 0, 0, 731, 0, 731, - 0, 731, 731, 731, 0, 0, 731, 731, 0, 731, - 731, 731, 0, 0, 0, 0, 0, 0, 400, 0, - 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 731, 731, 442, 0, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 731, 731, 208, 731, 731, 731, - 0, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 400, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 208, 0, 208, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 0, 0, 0, 400, 400, 400, 400, 400, - 400, 400, 150, 151, 0, 442, 400, 0, 442, 400, - 400, 208, 0, 0, 0, 0, 0, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, - 0, 400, 400, 400, 400, 0, 0, 400, 0, 400, - 0, 0, 400, 0, 0, 0, 0, 210, 0, 400, - 400, 400, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 0, 0, 0, 0, 0, 0, 400, 400, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 400, 400, 210, 400, 400, 400, - 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 0, 34, 33, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 568, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 208, - 0, 0, 442, 442, 442, 442, 442, 442, 442, 0, - 0, 0, 210, 442, 0, 0, 442, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 94, 0, 0, 442, 442, 442, 442, 0, 442, 442, - 442, 442, 0, 93, 442, 0, 442, 0, 208, 442, - 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, + 0, 0, 0, 0, 0, 0, 568, 568, 0, 568, + 568, 568, 0, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 0, 0, 0, 0, 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 774, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 33, 33, 33, 0, 33, 33, 33, 33, 34, 0, + 33, 34, 33, 0, 0, 33, 0, 0, 0, 0, + 0, 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 0, 0, 0, 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 442, 0, 442, 442, 442, 0, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 208, 208, 208, 208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 0, 0, 0, 208, 94, 0, 208, 208, 0, - 210, 0, 0, 782, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 208, 208, 208, 0, 208, - 208, 208, 208, 0, 0, 0, 0, 208, 0, 0, - 208, 93, 0, 0, 0, 0, 0, 208, 208, 208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 208, 0, 208, 208, 208, 0, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, - 0, 0, 0, 0, 0, 0, 210, 210, 210, 210, - 210, 0, 0, 94, 0, 48, 0, 0, 0, 0, - 210, 0, 0, 0, 0, 210, 0, 0, 210, 210, - 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, - 93, 93, 0, 47, 0, 210, 210, 210, 210, 0, - 210, 210, 210, 210, 0, 0, 0, 0, 210, 93, - 93, 210, 0, 0, 0, 0, 0, 0, 210, 210, - 210, 0, 0, 0, 48, 0, 93, 93, 93, 93, - 0, 0, 0, 93, 93, 0, 0, 0, 0, 93, - 0, 0, 93, 0, 0, 0, 0, 0, 0, 93, - 93, 0, 0, 0, 0, 210, 210, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 210, 0, 210, 210, 210, 0, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, - 48, 0, 0, 0, 0, 0, 782, 0, 0, 94, - 94, 94, 94, 94, 93, 93, 0, 93, 93, 93, - 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 49, 94, 94, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, - 94, 94, 0, 0, 0, 94, 94, 0, 0, 0, - 0, 94, 0, 0, 94, 0, 0, 0, 0, 0, - 0, 94, 94, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 94, 0, 94, - 94, 94, 0, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 782, 782, 782, 782, 782, 0, 48, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 782, 782, 0, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 782, 782, 782, 782, 0, 0, 0, 782, 782, - 0, 1030, 0, 0, 782, 0, 0, 782, 0, 0, - 0, 0, 51, 0, 782, 782, 0, 0, 0, 0, - 1031, 1032, 0, 1033, 1034, 1035, 1036, 1037, 1038, 0, - 1039, 1040, 0, 1041, 1042, 1043, 1044, 1045, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 47, 47, 47, 47, 0, 782, - 782, 51, 782, 782, 782, 0, 782, 782, 782, 782, - 782, 782, 782, 782, 782, 47, 47, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 48, 0, - 0, 0, 47, 47, 47, 47, 50, 0, 0, 47, - 47, 0, 0, 49, 0, 47, 48, 48, 47, 0, - 0, 0, 0, 785, 0, 47, 47, 0, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 51, 0, 0, - 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 785, 47, 47, 47, 0, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 1046, 1047, - 0, 1048, 1049, 1050, 0, 1051, 1052, 0, 0, 1053, - 1054, 0, 1055, 0, 0, 0, 0, 0, 785, 49, - 49, 49, 49, 49, 50, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 0, - 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 0, 0, 49, 49, - 49, 49, 0, 0, 0, 49, 49, 0, 0, 0, - 0, 49, 0, 0, 49, 0, 0, 0, 0, 0, - 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 49, 0, 49, - 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 50, 50, 50, 50, 0, 785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, - 0, 51, 51, 51, 51, 51, 0, 0, 0, 50, - 50, 50, 50, 0, 0, 0, 50, 50, 0, 0, - 0, 0, 50, 51, 51, 50, 0, 0, 0, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, - 51, 51, 51, 51, 0, 157, 0, 51, 51, 0, - 285, 0, 0, 51, 700, 0, 51, 0, 0, 0, - 0, 0, 0, 51, 51, 0, 0, 0, 0, 0, - 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, - 50, 50, 50, 0, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 468, 0, 0, 0, 0, 0, 0, - 0, 0, 785, 785, 785, 785, 785, 0, 51, 51, - 0, 51, 51, 51, 0, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 785, 785, 0, 0, 0, 0, + 0, 774, 0, 774, 0, 0, 0, 0, 0, 33, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 33, 33, 0, + 33, 33, 33, 0, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 785, 785, 785, 785, 0, 0, 0, 785, 785, - 0, 0, 0, 0, 785, 0, 0, 785, 0, 0, - 0, 0, 0, 0, 785, 785, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, - 0, 0, 681, 0, 0, 0, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 681, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, - 785, 0, 785, 785, 785, 0, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 681, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 0, 0, 0, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 0, 0, 0, 776, 0, 0, 774, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, + 34, 774, 34, 34, 34, 34, 0, 0, 34, 0, + 34, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, + 774, 776, 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 0, 0, 0, 0, 0, 34, 34, 0, 34, 34, + 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 0, 0, 0, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 0, 0, 0, 780, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 774, 774, 774, + 774, 0, 774, 774, 774, 774, 776, 0, 774, 0, + 774, 0, 0, 774, 0, 0, 0, 0, 0, 776, + 774, 774, 774, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, + 0, 780, 0, 0, 0, 0, 0, 774, 774, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, + 0, 0, 0, 0, 0, 774, 774, 0, 774, 774, + 774, 0, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 778, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 0, 0, 0, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 0, 0, 0, 778, 0, 0, 780, 0, 0, 0, + 0, 0, 0, 0, 0, 776, 776, 776, 776, 780, + 776, 776, 776, 776, 0, 0, 776, 0, 776, 0, + 0, 776, 0, 0, 0, 0, 0, 0, 776, 776, + 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 778, 780, 778, + 0, 0, 0, 0, 0, 776, 776, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 776, 776, 0, 776, 776, 776, 0, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 0, 0, 0, 780, 780, 780, 780, 780, 780, + 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, + 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 780, 780, 780, 780, 0, + 780, 780, 780, 780, 778, 0, 780, 0, 780, 0, + 0, 780, 0, 0, 0, 0, 0, 778, 780, 780, + 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 782, 0, 782, + 0, 0, 0, 0, 0, 780, 780, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 778, 0, 0, 0, + 0, 0, 0, 780, 780, 0, 780, 780, 780, 0, + 780, 780, 780, 780, 780, 780, 780, 780, 780, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 778, 778, 0, + 0, 0, 778, 778, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 778, 0, 0, + 0, 732, 0, 0, 782, 0, 0, 0, 0, 0, + 0, 0, 0, 778, 778, 778, 778, 782, 778, 778, + 778, 778, 0, 0, 778, 0, 778, 0, 0, 778, + 0, 0, 0, 0, 0, 0, 778, 778, 778, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 732, 782, 732, 0, 0, + 0, 0, 0, 778, 778, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 778, 778, 0, 778, 778, 778, 0, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 0, + 0, 0, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 0, 0, + 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 782, 782, 782, 782, 0, 782, 782, + 782, 782, 732, 0, 782, 732, 782, 0, 0, 782, + 0, 0, 0, 0, 0, 732, 782, 782, 782, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 734, 0, 734, 0, 0, + 0, 0, 0, 782, 782, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, + 0, 782, 782, 0, 782, 782, 782, 0, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, + 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, + 0, 732, 0, 400, 732, 732, 0, 0, 0, 0, + 0, 0, 734, 0, 0, 734, 0, 0, 0, 0, + 0, 732, 732, 732, 732, 734, 732, 732, 732, 732, + 0, 0, 732, 0, 732, 0, 732, 732, 732, 0, + 0, 732, 732, 0, 732, 732, 732, 400, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, + 0, 732, 732, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, + 732, 0, 732, 732, 732, 157, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 0, 0, 0, + 734, 734, 734, 734, 734, 734, 734, 442, 0, 0, + 0, 734, 0, 0, 734, 734, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 734, 734, 734, 734, 0, 734, 734, 734, 734, + 0, 51, 734, 0, 734, 0, 734, 734, 734, 0, + 0, 734, 734, 0, 734, 734, 734, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 734, 734, 400, 0, 0, 400, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 400, 0, 0, 734, + 734, 0, 734, 734, 734, 0, 734, 734, 734, 734, + 734, 734, 734, 734, 734, 0, 0, 0, 0, 0, + 442, 0, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, + 144, 0, 788, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, + 0, 400, 400, 400, 400, 400, 400, 400, 0, 0, + 150, 788, 400, 0, 0, 400, 400, 442, 0, 0, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 0, 400, 400, 400, 400, 0, 400, 400, 400, + 400, 0, 0, 400, 0, 400, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 400, 400, 400, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 788, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 400, 0, 0, 225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 400, 400, 0, 400, 400, 400, 0, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 0, 0, 0, 442, 442, 442, 442, 442, + 442, 442, 0, 0, 0, 0, 442, 0, 0, 442, + 442, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 0, 51, 51, 51, 51, 51, 442, 442, 442, 442, + 0, 442, 442, 442, 442, 0, 0, 442, 0, 442, + 0, 0, 442, 51, 51, 788, 0, 0, 0, 442, + 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 51, 51, 0, 0, 0, 51, 51, 0, + 0, 0, 0, 51, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 51, 51, 0, 442, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 285, 0, 442, 442, 284, 442, 442, 442, + 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, + 0, 51, 51, 51, 0, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 225, 470, 0, 0, 225, 225, + 225, 225, 225, 0, 225, 225, 225, 225, 0, 225, + 225, 0, 0, 225, 225, 225, 225, 0, 0, 0, + 225, 225, 788, 788, 788, 788, 788, 0, 0, 225, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 788, 788, 225, 225, 225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 788, 788, 788, 788, 0, 0, 0, 788, 788, + 0, 0, 0, 0, 788, 0, 0, 788, 0, 0, + 0, 225, 0, 0, 788, 788, 0, 157, 0, 0, + 0, 0, 285, 0, 0, 0, 703, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, + 788, 0, 788, 788, 788, 470, 788, 788, 788, 788, + 788, 788, 788, 788, 788, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 684, 0, 0, 0, 0, 684, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, + 0, 0, 150, 0, 278, 279, 280, 225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 468, 469, + 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 0, 278, 279, 280, 0, 157, 0, 0, 0, - 0, 285, 0, 0, 0, 284, 466, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 681, 681, 0, 681, 0, 0, - 0, 0, 681, 0, 0, 681, 152, 153, 154, 681, - 681, 681, 681, 681, 468, 681, 681, 681, 681, 0, - 681, 681, 0, 0, 681, 681, 681, 681, 0, 0, - 681, 681, 681, 0, 0, 0, 0, 0, 0, 0, - 681, 0, 681, 0, 0, 0, 0, 0, 0, 0, - 212, 0, 0, 0, 0, 0, 0, 681, 681, 681, - 0, 0, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 436, 0, 0, - 143, 144, 681, 0, 681, 681, 681, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 681, 681, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 437, 0, 438, 439, 440, 441, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 681, 681, - 681, 150, 0, 0, 0, 0, 0, 0, 0, 442, - 443, 444, 445, 0, 0, 446, 0, 0, 0, 447, - 448, 449, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 34, 152, + 153, 154, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 157, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 278, 279, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 468, 469, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 684, 684, 0, + 684, 0, 0, 0, 0, 684, 0, 0, 684, 152, + 153, 154, 684, 684, 684, 684, 684, 0, 684, 684, + 684, 684, 0, 684, 684, 0, 0, 684, 684, 684, + 684, 0, 0, 684, 684, 684, 0, 0, 0, 0, + 0, 0, 157, 684, 0, 684, 0, 285, 0, 0, + 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 684, 684, 684, 0, 0, 0, 0, 0, 0, 283, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 684, 0, 684, 684, 684, + 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 684, 684, 0, 0, 0, 0, 0, 0, 0, + 127, 515, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 212, 155, 139, + 140, 141, 142, 438, 0, 0, 143, 144, 0, 0, + 0, 0, 684, 684, 684, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 439, 0, 440, 441, + 442, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 516, + 0, 5, 6, 7, 0, 444, 445, 446, 447, 0, + 0, 448, 0, 517, 0, 449, 450, 451, 518, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 519, 520, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 69, 521, 0, 0, 0, 126, 0, 0, + 127, 684, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 522, 523, + 0, 0, 0, 0, 156, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 147, 148, 149, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 278, + 279, 280, 0, 0, 0, 212, 0, 0, 0, 212, + 212, 212, 212, 212, 0, 212, 212, 212, 212, 0, + 212, 212, 0, 155, 212, 212, 212, 212, 212, 0, + 0, 212, 212, 0, 0, 0, 0, 0, 0, 0, + 212, 0, 212, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 152, 153, 154, 212, 212, 212, + 0, 212, 0, 212, 212, 212, 212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, + 212, 212, 212, 212, 0, 0, 212, 0, 0, 0, + 212, 212, 212, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 138, 0, 0, 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 210, 0, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 450, 0, 0, 0, 681, 0, 0, - 0, 150, 0, 278, 279, 280, 0, 0, 212, 0, - 0, 0, 212, 212, 212, 212, 212, 0, 212, 212, - 212, 212, 0, 212, 212, 0, 0, 212, 212, 212, - 212, 212, 0, 0, 212, 212, 210, 0, 0, 0, - 0, 0, 0, 212, 0, 212, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 152, 153, 154, - 212, 212, 212, 157, 212, 0, 212, 212, 212, 212, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, - 0, 0, 0, 212, 212, 212, 212, 0, 0, 212, - 0, 0, 0, 212, 212, 212, 0, 0, 0, 0, - 0, 210, 0, 0, 0, 0, 0, 67, 68, 0, - 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, - 0, 157, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 147, 148, 149, 0, 911, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 126, 0, 0, 127, 212, 0, 0, - 128, 129, 130, 131, 132, 150, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 912, - 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, - 0, 145, 157, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 150, 151, 128, 129, 130, 131, 132, - 210, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 147, 148, 149, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 150, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 210, - 155, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 155, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 151, 0, 0, 212, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 212, 147, + 148, 149, 0, 916, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 917, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 151, 0, 0, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 210, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 159, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 159, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 33, 152, 153, 154, 667, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 670, 33, 146, 0, 0, + 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 0, 127, 0, 33, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 547, + 0, 0, 0, 155, 0, 0, 0, 0, 159, 159, + 0, 159, 0, 0, 0, 0, 159, 0, 0, 159, + 712, 0, 0, 159, 159, 159, 159, 159, 0, 159, + 159, 159, 159, 0, 159, 159, 0, 0, 159, 159, + 159, 159, 0, 0, 159, 159, 159, 0, 0, 317, + 0, 0, 0, 0, 159, 317, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 159, 159, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 33, 0, 159, 0, 33, 33, + 33, 33, 33, 317, 33, 33, 33, 33, 316, 33, + 33, 0, 0, 33, 33, 33, 33, 0, 37, 0, + 33, 33, 0, 40, 0, 43, 0, 316, 316, 33, + 0, 33, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 33, 49, + 0, 0, 0, 159, 159, 159, 0, 0, 0, 0, + 0, 0, 0, 33, 52, 0, 0, 33, 33, 33, + 33, 33, 0, 33, 33, 33, 33, 0, 33, 33, + 0, 33, 33, 33, 33, 33, 0, 37, 0, 33, + 33, 316, 40, 316, 43, 0, 155, 0, 33, 0, + 33, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 33, 49, 317, + 0, 0, 0, 0, 317, 317, 317, 317, 0, 317, + 317, 317, 317, 52, 317, 317, 0, 0, 317, 317, + 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, + 33, 0, 0, 0, 317, 0, 317, 0, 0, 0, + 0, 236, 0, 0, 0, 0, 0, 564, 0, 0, + 0, 317, 317, 317, 0, 0, 0, 0, 0, 236, + 0, 0, 159, 317, 0, 0, 0, 0, 317, 317, + 317, 317, 0, 317, 317, 317, 317, 0, 317, 317, + 0, 0, 317, 317, 317, 317, 317, 0, 0, 317, + 317, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 317, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 0, 316, 0, 0, 0, 317, 317, 317, 0, 0, + 0, 316, 0, 236, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 0, 150, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 33, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 317, 159, 159, 0, - 159, 155, 0, 0, 544, 159, 0, 0, 159, 0, - 0, 0, 159, 159, 159, 159, 159, 0, 159, 159, - 159, 159, 0, 159, 159, 0, 709, 159, 159, 159, - 159, 0, 0, 159, 159, 159, 0, 0, 0, 0, - 0, 0, 0, 159, 0, 159, 0, 225, 0, 0, - 0, 0, 34, 0, 317, 0, 0, 0, 0, 0, - 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 0, 317, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 33, - 0, 0, 155, 33, 33, 33, 33, 33, 1152, 33, - 33, 33, 33, 0, 33, 33, 0, 0, 33, 33, - 33, 33, 0, 37, 0, 33, 33, 0, 40, 0, - 43, 0, 0, 0, 33, 0, 33, 46, 0, 0, - 0, 159, 159, 159, 0, 0, 317, 0, 0, 0, - 0, 33, 33, 33, 49, 0, 0, 0, 0, 536, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 52, - 0, 0, 33, 33, 33, 33, 33, 0, 33, 33, - 33, 33, 0, 33, 33, 0, 33, 33, 33, 33, - 33, 0, 37, 0, 33, 33, 0, 40, 0, 43, - 0, 155, 0, 33, 0, 33, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 33, 49, 317, 0, 0, 0, 0, 317, - 317, 317, 317, 0, 317, 317, 317, 317, 52, 317, - 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, - 317, 317, 0, 0, 0, 33, 2, 0, 0, 317, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 225, 317, 317, 317, 225, - 225, 225, 225, 225, 316, 225, 225, 225, 225, 0, - 225, 225, 0, 0, 225, 225, 225, 225, 0, 0, - 0, 225, 225, 316, 316, 513, 0, 2, 0, 0, - 225, 317, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 225, 225, 225, - 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, - 0, 317, 317, 0, 0, 317, 317, 317, 317, 0, - 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, - 0, 317, 225, 317, 0, 0, 0, 316, 236, 316, - 0, 33, 0, 0, 561, 0, 0, 0, 317, 317, - 317, 0, 0, 0, 0, 0, 236, 0, 0, 0, - 0, 0, 514, 0, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, - 0, 516, 0, 317, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 0, 517, 518, 0, 0, - 33, 0, 0, 3, 4, 5, 6, 7, 0, 0, - 236, 235, 236, 0, 0, 0, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 9, 0, 0, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 0, 0, 14, - 15, 520, 521, 0, 0, 16, 317, 0, 17, 0, - 0, 0, 0, 0, 316, 18, 19, 316, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 22, 23, 24, 0, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, - 236, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 236, 561, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 0, 0, 0, 0, 316, 0, 0, - 0, 316, 316, 316, 316, 316, 316, 0, 0, 0, - 235, 0, 0, 235, 0, 316, 316, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 316, 316, 316, 0, 0, 0, 0, - 0, 187, 0, 316, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 236, 0, - 0, 0, 0, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 0, 0, 0, 0, - 236, 0, 0, 0, 236, 236, 236, 236, 236, 236, - 0, 0, 316, 316, 316, 0, 0, 0, 236, 236, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 236, 236, 236, 316, - 316, 316, 316, 316, 316, 316, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 235, 0, 0, 0, 0, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 0, - 0, 0, 0, 235, 0, 561, 0, 235, 235, 235, - 235, 235, 235, 0, 0, 236, 236, 522, 0, 0, - 0, 235, 235, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 235, 235, 236, 236, 236, 236, 236, 236, 236, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 522, 0, 522, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, - 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 324, 187, 325, 187, 187, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, - 187, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 522, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 324, 0, 742, 187, 187, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 187, 187, 187, 187, 187, 187, 0, 0, - 0, 67, 0, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, + 236, 0, 316, 236, 0, 0, 316, 316, 316, 316, + 316, 316, 317, 236, 564, 235, 0, 235, 0, 0, + 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, + 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, - 522, 522, 522, 522, 522, 522, 522, 0, 0, 0, - 34, 522, 0, 0, 0, 522, 522, 522, 522, 522, - 522, 0, 0, 0, 0, 0, 0, 0, 0, 522, - 522, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 0, 69, 0, 0, 0, 0, 522, 522, 522, 522, - 0, 2, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 522, 0, 0, 324, 0, 926, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 0, 0, 0, 527, 7, 0, 0, 0, 314, 315, - 316, 317, 318, 319, 0, 0, 522, 522, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 522, 522, 522, 522, 522, 522, 522, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 321, 0, 0, 527, 0, 527, + 0, 564, 0, 0, 316, 316, 316, 316, 316, 316, + 316, 236, 0, 525, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 0, 0, 235, 0, 236, 235, 0, 0, 236, 236, + 236, 236, 236, 236, 0, 235, 0, 0, 0, 0, + 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 236, 236, 236, 0, 0, 0, 0, 525, 0, 525, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 0, 0, 322, - 323, 7, 371, 0, 0, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 9, 67, 0, 0, 69, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 2, 0, 10, 11, 12, 13, - 0, 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 321, 0, 0, 0, 0, 371, 0, 371, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 235, 0, 34, 0, 0, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 0, 0, 0, 0, 235, 0, 0, 0, + 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 525, 0, 0, 525, 0, 0, + 0, 235, 235, 235, 235, 0, 0, 525, 564, 325, + 0, 326, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, - 0, 0, 0, 0, 527, 0, 0, 527, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 363, 0, 0, 0, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 0, 0, 0, 0, 7, 0, 0, 0, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 371, 0, 0, 371, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 371, 363, 0, 363, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, - 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, - 527, 527, 527, 0, 0, 0, 0, 527, 0, 0, - 0, 527, 527, 527, 527, 527, 527, 0, 0, 322, - 323, 0, 0, 0, 0, 527, 527, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 527, 527, 527, 27, 28, 29, 30, - 31, 32, 33, 527, 356, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 527, 527, 363, 0, 371, 363, 0, 0, - 371, 371, 371, 371, 371, 371, 0, 363, 356, 0, - 356, 0, 0, 0, 371, 371, 0, 0, 0, 527, - 527, 527, 527, 527, 527, 527, 0, 0, 0, 0, - 0, 371, 371, 371, 371, 0, 0, 0, 0, 0, - 0, 0, 371, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, + 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, + 525, 525, 525, 525, 0, 0, 67, 0, 525, 69, + 0, 0, 525, 525, 525, 525, 525, 525, 0, 2, + 0, 0, 0, 0, 0, 0, 525, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 525, 525, 525, 525, 0, 0, 0, + 0, 0, 0, 0, 525, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 371, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 371, 371, - 371, 371, 371, 371, 371, 0, 521, 0, 0, 0, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 363, 0, 0, 356, 0, 363, 356, 0, - 0, 363, 363, 363, 363, 363, 363, 34, 356, 0, - 0, 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 363, 363, 363, 363, 0, 0, 0, 0, - 521, 0, 521, 363, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 525, 525, 67, 0, 0, 69, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 325, 0, 931, 0, 0, 0, 0, 0, 0, 0, + 525, 525, 525, 525, 525, 525, 525, 0, 0, 530, + 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, + 7, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 0, 0, 530, 0, 530, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 363, 363, 210, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 323, 324, 67, 0, 7, + 69, 0, 0, 315, 316, 317, 318, 319, 320, 0, + 2, 0, 0, 0, 0, 0, 0, 8, 9, 0, + 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 10, 11, 12, 13, 0, 0, + 371, 0, 371, 0, 0, 321, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 530, 0, 0, 530, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 530, 323, 324, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 28, 29, 30, 31, 32, 33, 0, 0, + 0, 0, 0, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 0, 7, 0, 0, 0, 315, 316, 317, 318, 319, + 320, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 363, 0, 0, 0, 0, 0, 371, 0, 0, + 371, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 371, 0, 0, 0, 0, 0, 0, 321, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 530, 530, 530, 530, + 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, + 0, 0, 0, 0, 530, 363, 0, 363, 530, 530, + 530, 530, 530, 530, 0, 0, 323, 324, 0, 0, + 0, 0, 530, 530, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 530, + 530, 530, 530, 27, 28, 29, 30, 31, 32, 33, + 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 0, 0, 530, + 530, 371, 356, 0, 356, 371, 371, 371, 371, 371, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 371, + 371, 210, 0, 0, 0, 0, 530, 530, 530, 530, + 530, 530, 530, 0, 0, 0, 371, 371, 371, 371, + 0, 0, 363, 0, 0, 363, 0, 371, 0, 0, + 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, + 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 0, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 524, 0, 0, 0, 0, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 0, 0, 0, 0, 363, 0, 0, 0, 363, 363, 363, 363, 363, 363, 0, 0, 0, 0, - 0, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 0, 0, 0, 0, 356, 0, - 0, 0, 356, 356, 356, 356, 356, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 356, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, - 521, 0, 0, 356, 356, 356, 356, 0, 0, 0, - 521, 0, 0, 0, 356, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, + 0, 0, 210, 0, 34, 210, 0, 0, 0, 0, + 0, 363, 363, 363, 363, 210, 0, 524, 0, 524, + 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 0, + 538, 363, 363, 356, 0, 0, 0, 356, 356, 356, + 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 356, 0, 0, 0, 0, 0, 363, 363, + 363, 363, 363, 363, 363, 0, 0, 0, 356, 356, + 356, 356, 0, 0, 0, 34, 0, 0, 0, 356, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 356, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 356, 356, 0, 0, 210, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, - 356, 356, 356, 356, 356, 356, 356, 0, 0, 849, - 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, - 521, 0, 0, 0, 521, 521, 521, 521, 521, 521, - 0, 0, 210, 210, 0, 0, 0, 0, 521, 521, - 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, - 6, 7, 0, 0, 0, 521, 521, 521, 521, 210, - 210, 210, 210, 210, 210, 210, 521, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 521, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 0, 0, 0, 14, 15, 0, 0, 0, 0, 16, - 0, 0, 17, 808, 0, 0, 0, 0, 0, 18, - 19, 0, 0, 0, 0, 521, 521, 809, 0, 0, - 0, 0, 810, 811, 0, 812, 813, 814, 815, 816, - 817, 0, 818, 819, 0, 820, 821, 822, 823, 824, - 0, 0, 521, 521, 521, 521, 521, 521, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 21, 0, 22, 23, 24, - 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 0, 825, 0, 826, 0, 0, 808, 0, 827, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 809, 0, 0, 0, 828, 810, 811, 0, 812, 813, - 814, 815, 816, 817, 0, 818, 819, 0, 820, 821, - 822, 823, 824, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 829, 0, 0, + 210, 210, 0, 0, 524, 0, 210, 524, 0, 0, + 210, 210, 210, 210, 210, 210, 0, 524, 356, 356, + 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 210, 356, 356, 356, 356, 356, + 356, 356, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 210, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, + 210, 210, 210, 210, 210, 0, 0, 0, 0, 0, + 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, + 524, 524, 524, 524, 0, 0, 0, 0, 524, 0, + 0, 0, 524, 524, 524, 524, 524, 524, 0, 0, + 0, 0, 0, 0, 0, 0, 524, 524, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 524, 524, 524, 524, 0, 0, 0, + 0, 0, 0, 0, 524, 3, 4, 5, 6, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 11, 12, 13, 187, 0, + 0, 14, 15, 524, 524, 0, 0, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 524, 524, 524, 524, 524, 524, 524, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, + 7, 0, 20, 21, 0, 22, 23, 24, 0, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 8, 9, + 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 0, 0, 16, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 18, 19, + 0, 0, 0, 0, 0, 187, 0, 187, 187, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, + 187, 0, 0, 20, 21, 0, 22, 23, 24, 0, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 825, 0, 826, 0, 0, 0, - 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 187, 0, 0, 814, 0, + 0, 0, 0, 815, 816, 0, 817, 818, 819, 820, + 821, 822, 0, 823, 824, 813, 825, 826, 827, 828, + 829, 187, 187, 187, 187, 187, 187, 187, 0, 814, + 0, 0, 0, 0, 815, 816, 0, 817, 818, 819, + 820, 821, 822, 0, 823, 824, 0, 825, 826, 827, + 828, 829, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 830, 0, 831, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 833, 0, 0, 0, 0, + 0, 0, 0, 830, 0, 831, 0, 0, 0, 0, + 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 833, 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 829, 0, 0, 0, 0, 0, 0, 830, 0, 831, - 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, - 842, 843, 844, 845, 846, 847, 0, 0, 0, 848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 830, 0, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 842, 843, 844, 845, 846, 847, 0, - 0, 0, 848, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 835, + 0, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 851, 852, 0, 0, + 0, 853, 0, 0, 0, 0, 0, 0, 0, 0, + 835, 0, 836, 837, 838, 839, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 850, 851, 852, 0, + 0, 0, 853, }; static int yycheck[] = { 4, - 24, 24, 102, 103, 155, 1, 22, 23, 299, 24, - 1, 299, 299, 416, 19, 418, 679, 935, 64, 1, - 957, 93, 27, 28, 29, 30, 1, 13, 167, 1, - 36, 37, 1, 181, 38, 43, 38, 45, 24, 41, - 44, 665, 44, 790, 470, 43, 40, 61, 1101, 91, - 264, 264, 59, 352, 60, 125, 46, 46, 489, 490, - 491, 724, 1129, 24, 41, 46, 46, 167, 1091, 260, - 261, 41, 263, 46, 59, 365, 125, 61, 41, 41, - 1479, 46, 105, 193, 194, 195, 196, 197, 46, 91, - 190, 41, 59, 76, 44, 1203, 319, 169, 123, 59, - 736, 1466, 123, 41, 40, 128, 262, 46, 113, 482, - 115, 116, 117, 46, 42, 215, 279, 280, 104, 20, - 21, 145, 42, 41, 148, 40, 289, 60, 151, 502, - 41, 1496, 288, 41, 44, 93, 260, 261, 38, 263, - 125, 40, 42, 104, 168, 40, 46, 47, 40, 40, - 59, 156, 157, 199, 93, 41, 47, 380, 125, 41, - 60, 233, 41, 40, 65, 125, 44, 41, 38, 60, - 156, 72, 42, 263, 41, 123, 91, 41, 264, 92, - 58, 167, 187, 93, 42, 208, 342, 123, 470, 275, - 60, 91, 91, 42, 333, 43, 91, 203, 181, 91, - 205, 206, 41, 40, 1603, 210, 354, 41, 40, 299, - 111, 112, 1468, 40, 91, 91, 125, 1469, 267, 260, - 261, 91, 263, 46, 210, 524, 40, 232, 1336, 40, - 661, 1254, 868, 869, 239, 260, 260, 337, 263, 264, - 260, 261, 1498, 263, 263, 93, 33, 1499, 262, 61, - 374, 375, 542, 91, 91, 43, 157, 470, 689, 91, - 283, 924, 267, 268, 336, 270, 40, 290, 292, 274, - 93, 40, 277, 909, 288, 188, 281, 91, 262, 470, - 528, 286, 287, 288, 289, 470, 294, 264, 265, 359, - 336, 505, 506, 507, 364, 316, 123, 262, 306, 307, - 263, 123, 264, 299, 300, 93, 273, 943, 299, 300, - 260, 334, 123, 263, 330, 331, 324, 299, 300, 232, - 221, 222, 91, 365, 299, 300, 264, 299, 300, 59, - 299, 300, 260, 261, 340, 263, 299, 318, 318, 770, - 1003, 43, 264, 45, 264, 328, 264, 333, 334, 332, - 320, 321, 338, 264, 267, 266, 264, 265, 33, 355, - 356, 357, 358, 311, 273, 123, 374, 268, 296, 40, - 59, 354, 339, 274, 359, 286, 287, 338, 264, 364, - 355, 282, 264, 274, 262, 264, 355, 356, 357, 358, - 264, 265, 41, 391, 262, 125, 1333, 264, 414, 359, - 264, 391, 260, 261, 364, 263, 264, 42, 40, 1476, - 323, 260, 261, 314, 263, 316, 264, 275, 391, 320, - 91, 462, 335, 40, 855, 264, 574, 328, 329, 46, - 264, 332, 421, 123, 457, 262, 40, 585, 296, 44, - 423, 1494, 462, 1510, 544, 871, 451, 296, 453, 41, - 38, 262, 44, 354, 42, 44, 91, 1204, 452, 91, - 360, 361, 362, 468, 431, 432, 46, 46, 1092, 267, - 383, 40, 60, 260, 261, 480, 263, 264, 91, 465, - 485, 61, 468, 123, 451, 40, 260, 261, 93, 263, - 360, 361, 362, 315, 316, 123, 463, 40, 465, 466, - 542, 468, 469, 91, 93, 510, 407, 408, 40, 410, - 44, 412, 46, 41, 93, 424, 425, 426, 427, 315, - 592, 525, 91, 525, 264, 265, 427, 428, 535, 536, - 537, 538, 539, 540, 541, 543, 541, 542, 123, 448, - 449, 450, 451, 273, 472, 568, 459, 1484, 91, 123, - 535, 536, 537, 538, 539, 540, 541, 562, 123, 91, - 40, 567, 46, 635, 712, 637, 44, 468, 535, 536, - 537, 538, 539, 540, 541, 535, 536, 537, 538, 539, - 540, 541, 495, 496, 485, 260, 261, 570, 263, 264, - 40, 574, 294, 599, 600, 91, 1514, 510, 59, 605, - 646, 607, 585, 703, 306, 307, 611, 59, 521, 709, - 480, 91, 617, 636, 472, 93, 517, 518, 41, 40, - 40, 40, 324, 472, 1260, 1261, 535, 536, 537, 538, - 539, 540, 541, 43, 925, 40, 44, 925, 925, 540, - 61, 91, 543, 667, 91, 294, 40, 260, 261, 562, - 263, 61, 301, 676, 303, 304, 305, 729, 42, 91, - 264, 265, 266, 576, 125, 1328, 47, 40, 91, 570, - 359, 91, 374, 125, 679, 364, 699, 683, 44, 684, - 46, 686, 286, 287, 585, 795, 91, 797, 798, 799, - 800, 801, 61, 342, 343, 344, 40, 702, 40, 40, - 723, 706, 707, 708, 40, 260, 261, 91, 263, 610, - 726, 40, 681, 38, 1117, 738, 1119, 42, 91, 724, - 91, 451, 623, 306, 40, 40, 38, 44, 40, 712, - 42, 461, 91, 634, 464, 60, 264, 265, 266, 388, - 389, 390, 123, 392, 47, 62, 395, 91, 60, 91, - 91, 260, 261, 391, 263, 91, 657, 391, 286, 287, - 1423, 391, 745, 1461, 260, 261, 91, 263, 773, 1467, - 775, 754, 360, 361, 362, 91, 91, 41, 42, 91, - 41, 786, 43, 44, 856, 1421, 44, 260, 701, 702, - 263, 41, 42, 865, 695, 696, 320, 321, 1434, 1497, - 283, 284, 41, 391, 62, 535, 536, 537, 538, 539, - 540, 541, 273, 260, 261, 716, 263, 718, 391, 720, - 264, 273, 266, 41, 725, 267, 44, 91, 260, 261, - 260, 263, 856, 263, 264, 318, 268, 260, 261, 41, - 263, 91, 286, 287, 745, 268, 535, 536, 537, 538, - 539, 540, 541, 41, 755, 756, 260, 261, 59, 263, - 41, 91, 41, 42, 296, 374, 375, 299, 769, 41, - 853, 43, 33, 296, 306, 788, 299, 316, 266, 260, - 261, 1517, 263, 306, 42, 260, 261, 893, 263, 260, - 261, 792, 263, 40, 917, 910, 40, 1560, 286, 287, - 923, 260, 261, 804, 263, 806, 93, 41, 42, 914, - 982, 61, 91, 896, 582, 583, 584, 260, 261, 924, - 263, 40, 891, 1559, 125, 43, 330, 331, 91, 925, - 91, 927, 928, 929, 925, 940, 927, 928, 301, 1602, - 303, 304, 305, 925, 263, 927, 928, 41, 861, 43, - 925, 41, 1024, 925, 1590, 856, 925, 91, 927, 928, - 929, 944, 93, 946, 310, 866, 312, 313, 314, 1605, - 431, 432, 475, 978, 457, 458, 280, 460, 264, 265, - 266, 0, 414, 415, 416, 328, 1137, 330, 331, 93, - 451, 414, 415, 416, 337, 41, 393, 394, 1003, 451, - 286, 287, 463, 125, 465, 1077, 93, 468, 469, 461, - 41, 44, 464, 46, 1153, 1154, 1155, 1156, 919, 40, - 921, 934, 40, 936, 1163, 1164, 1165, 41, 91, 43, - 260, 261, 262, 263, 264, 360, 361, 362, 268, 40, - 59, 260, 261, 944, 263, 946, 393, 394, 360, 361, - 362, 38, 58, 283, 944, 42, 946, 330, 331, 332, - 40, 974, 40, 976, 43, 44, 296, 968, 260, 261, - 971, 263, 273, 60, 535, 536, 537, 538, 539, 540, - 541, 43, 44, 535, 536, 537, 538, 539, 540, 541, - 320, 321, 59, 366, 367, 368, 40, 260, 261, 1115, - 263, 1504, 1505, 1119, 91, 268, 125, 41, 42, 1133, - 271, 1127, 843, 844, 275, 276, 277, 278, 279, 40, - 281, 282, 283, 284, 44, 286, 287, 125, 41, 290, - 291, 292, 293, 296, 264, 295, 297, 298, 339, 40, - 300, 1146, 302, 306, 40, 306, 262, 308, 123, 309, - 262, 281, 282, 283, 44, 41, 1228, 1143, 125, 41, - 60, 274, 323, 324, 325, 463, 326, 1153, 1154, 1155, - 1156, 1072, 280, 281, 282, 283, 284, 1163, 1164, 1165, - 275, 341, 274, 62, 414, 415, 416, 44, 365, 58, - 1173, 123, 1197, 123, 123, 260, 261, 358, 263, 264, - 123, 1102, 1103, 1104, 1187, 274, 1189, 40, 1109, 1110, - 1111, 1112, 1113, 1114, 40, 1116, 1117, 1118, 1318, 1120, - 1121, 1122, 1123, 1124, 1125, 1126, 40, 1128, 41, 1130, - 40, 1132, 317, 1134, 317, 467, 1149, 1150, 38, 330, - 331, 332, 42, 280, 281, 282, 283, 284, 294, 61, - 451, 414, 415, 416, 273, 301, 1272, 303, 304, 305, - 60, 40, 463, 294, 465, 466, 61, 468, 469, 61, - 301, 470, 303, 304, 305, 366, 367, 368, 44, 1351, - 470, 41, 1306, 41, 93, 41, 1255, 38, 41, 1190, - 58, 91, 41, 41, 1195, 91, 342, 343, 344, 281, - 282, 283, 284, 41, 1309, 1206, 273, 281, 282, 283, - 284, 342, 343, 344, 41, 1216, 44, 41, 44, 1220, - 1221, 44, 125, 1328, 281, 282, 283, 284, 61, 61, - 1231, 40, 263, 40, 535, 536, 537, 538, 539, 540, - 541, 125, 388, 389, 390, 41, 392, 41, 40, 395, - 274, 1252, 1253, 93, 93, 274, 38, 388, 389, 390, - 42, 392, 41, 44, 395, 1266, 1267, 1268, 1269, 1270, - 1271, 41, 1273, 360, 361, 362, 44, 41, 60, 44, - 40, 58, 543, 40, 294, 41, 41, 40, 40, 40, - 409, 410, 411, 412, 413, 41, 41, 41, 41, 1368, - 62, 1424, 91, 41, 40, 489, 40, 277, 33, 91, - 41, 497, 431, 432, 1327, 1487, 451, 125, 1423, 501, - 61, 123, 62, 41, 93, 1338, 391, 93, 41, 448, - 449, 450, 451, 0, 41, 41, 455, 456, 41, 317, - 317, 40, 461, 40, 463, 464, 58, 58, 40, 1350, - 44, 93, 471, 472, 93, 504, 1357, 40, 93, 40, - 427, 93, 429, 430, 260, 261, 33, 263, 91, 91, - 41, 38, 268, 40, 41, 42, 123, 44, 93, 41, - 47, 448, 449, 450, 451, 40, 40, 510, 1512, 1505, - 41, 1563, 59, 60, 61, 62, 1596, 41, 93, 421, - 296, 44, 93, 274, 41, 58, 41, 526, 527, 1422, - 529, 530, 531, 41, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 44, 91, 61, 93, 278, 60, 93, - 281, 282, 283, 284, 40, 286, 287, 288, 294, 38, - 40, 125, 1443, 1444, 1445, 301, 40, 303, 304, 305, - 40, 40, 40, 40, 40, 1560, 123, 40, 125, 40, - 360, 361, 362, 40, 40, 62, 41, 1480, 535, 536, - 537, 538, 539, 540, 541, 93, 1599, 41, 260, 261, - 93, 263, 41, 93, 41, 93, 342, 343, 344, 41, - 93, 41, 93, 41, 1495, 41, 91, 1602, 41, 1500, - 1501, 1502, 93, 1504, 41, 1506, 1507, 1508, 93, 295, - 41, 93, 41, 93, 300, 41, 302, 41, 414, 415, - 416, 93, 93, 309, 123, 41, 93, 1528, 1529, 1530, - 41, 41, 388, 389, 390, 93, 392, 41, 41, 395, - 326, 327, 263, 44, 93, 270, 271, 272, 274, 41, - 275, 276, 277, 278, 279, 341, 281, 282, 283, 284, - 41, 286, 287, 41, 40, 290, 291, 292, 293, 40, - 93, 296, 297, 298, 93, 93, 40, 40, 360, 361, - 362, 306, 40, 308, 41, 58, 372, 1600, 41, 58, - 1591, 58, 41, 260, 261, 262, 263, 41, 323, 324, - 325, 268, 40, 40, 271, 38, 273, 274, 275, 276, - 277, 278, 279, 41, 281, 282, 283, 284, 93, 286, - 287, 288, 41, 290, 291, 292, 293, 93, 41, 296, - 297, 298, 299, 358, 93, 41, 40, 93, 40, 306, - 40, 308, 40, 40, 311, 40, 40, 40, 315, 316, - 40, 318, 40, 40, 33, 322, 323, 324, 325, 38, - 40, 260, 40, 42, 263, 260, 261, 41, 263, 93, - 263, 60, 339, 268, 58, 41, 93, 40, 40, 278, - 40, 60, 281, 282, 283, 284, 40, 286, 287, 288, - 123, 358, 359, 360, 361, 362, 41, 364, 365, 91, - 40, 296, 41, 41, 41, 41, 40, 374, 375, 274, - 263, 41, 91, 41, 40, 510, 41, 40, 358, 41, - 41, 40, 123, 274, 391, 41, 41, 41, 40, 396, + 24, 24, 102, 103, 155, 1, 22, 23, 167, 418, + 1, 420, 1, 24, 19, 13, 93, 299, 64, 299, + 1, 299, 27, 28, 29, 30, 24, 1, 36, 37, + 940, 682, 1, 668, 38, 38, 795, 963, 41, 91, + 44, 44, 181, 43, 1135, 45, 741, 40, 61, 472, + 1107, 46, 60, 43, 46, 42, 193, 194, 195, 196, + 197, 46, 125, 24, 41, 41, 46, 167, 46, 123, + 41, 91, 44, 59, 38, 365, 727, 319, 42, 42, + 38, 43, 105, 354, 42, 264, 58, 123, 91, 46, + 190, 41, 169, 125, 61, 1209, 60, 40, 491, 492, + 493, 1097, 60, 471, 40, 128, 104, 1485, 113, 41, + 115, 116, 117, 43, 40, 215, 41, 44, 41, 20, + 21, 145, 40, 40, 148, 263, 42, 91, 151, 47, + 40, 93, 91, 91, 262, 62, 42, 41, 380, 125, + 40, 40, 60, 104, 168, 263, 40, 59, 41, 42, + 40, 156, 157, 199, 59, 91, 233, 33, 156, 1472, + 288, 299, 46, 93, 65, 91, 41, 40, 46, 167, + 41, 72, 41, 44, 91, 334, 46, 92, 873, 874, + 123, 91, 187, 40, 76, 208, 40, 40, 91, 1502, + 60, 91, 91, 40, 43, 203, 45, 91, 91, 44, + 205, 206, 42, 41, 529, 210, 91, 41, 264, 93, + 111, 112, 210, 125, 342, 93, 91, 356, 91, 914, + 125, 41, 1474, 260, 261, 123, 263, 232, 1342, 1475, + 46, 1609, 61, 123, 239, 267, 260, 91, 41, 339, + 260, 261, 40, 263, 91, 61, 264, 265, 93, 262, + 41, 91, 1504, 543, 949, 526, 157, 311, 33, 1505, + 283, 338, 267, 268, 1260, 270, 123, 290, 292, 274, + 40, 664, 277, 188, 41, 288, 281, 264, 929, 41, + 316, 286, 287, 288, 289, 471, 263, 273, 264, 181, + 262, 61, 338, 91, 294, 262, 359, 260, 261, 692, + 263, 364, 264, 299, 300, 262, 306, 307, 299, 300, + 299, 300, 335, 365, 264, 331, 332, 232, 299, 300, + 221, 222, 299, 264, 324, 299, 300, 506, 507, 508, + 299, 300, 264, 296, 342, 264, 334, 335, 318, 264, + 318, 264, 340, 41, 260, 261, 275, 263, 264, 320, + 321, 123, 267, 339, 260, 261, 274, 263, 1009, 275, + 264, 357, 358, 359, 360, 59, 357, 268, 357, 358, + 359, 360, 262, 274, 374, 260, 261, 123, 263, 340, + 296, 282, 775, 268, 260, 260, 261, 263, 263, 260, + 296, 1482, 263, 268, 262, 264, 360, 361, 362, 391, + 416, 391, 360, 361, 362, 262, 391, 260, 261, 324, + 263, 296, 33, 1339, 315, 471, 317, 315, 316, 44, + 321, 296, 337, 267, 299, 1516, 264, 422, 329, 330, + 264, 306, 333, 391, 471, 91, 459, 329, 577, 40, + 59, 333, 123, 1500, 264, 294, 546, 359, 453, 588, + 455, 1210, 364, 876, 359, 356, 123, 306, 307, 364, + 453, 264, 265, 1098, 356, 470, 452, 860, 93, 467, + 385, 123, 470, 264, 265, 324, 40, 482, 464, 46, + 466, 467, 487, 469, 470, 260, 261, 44, 263, 264, + 46, 543, 38, 40, 59, 483, 42, 264, 265, 266, + 46, 47, 264, 265, 33, 59, 125, 512, 409, 410, + 473, 412, 38, 414, 60, 503, 42, 481, 595, 286, + 287, 123, 526, 526, 40, 374, 93, 91, 429, 430, + 415, 416, 417, 425, 60, 123, 93, 93, 543, 544, + 415, 416, 417, 46, 544, 91, 461, 40, 571, 123, + 536, 537, 538, 539, 540, 541, 542, 473, 91, 564, + 125, 638, 570, 640, 1490, 91, 264, 473, 266, 470, + 38, 1266, 1267, 44, 42, 91, 715, 260, 261, 315, + 263, 43, 497, 498, 260, 261, 487, 263, 286, 287, + 320, 321, 60, 44, 602, 603, 40, 512, 91, 61, + 608, 44, 610, 649, 260, 261, 706, 263, 523, 614, + 1520, 62, 712, 91, 40, 620, 639, 40, 519, 520, + 46, 40, 93, 91, 536, 537, 538, 539, 540, 541, + 542, 536, 537, 538, 539, 540, 541, 542, 40, 260, + 261, 542, 263, 264, 545, 42, 670, 91, 930, 564, + 930, 40, 930, 61, 273, 47, 679, 734, 40, 260, + 261, 306, 263, 800, 579, 802, 803, 804, 805, 806, + 40, 38, 573, 40, 566, 42, 47, 682, 686, 702, + 391, 573, 687, 1334, 689, 577, 260, 588, 260, 263, + 264, 263, 264, 60, 91, 684, 588, 41, 260, 261, + 705, 263, 91, 726, 709, 710, 711, 38, 273, 91, + 91, 42, 613, 729, 1123, 40, 1125, 264, 265, 266, + 743, 91, 727, 40, 91, 626, 391, 260, 261, 60, + 263, 123, 1427, 391, 260, 261, 637, 263, 391, 286, + 287, 270, 271, 272, 267, 1440, 275, 276, 277, 278, + 279, 40, 281, 282, 283, 284, 41, 286, 287, 660, + 91, 290, 291, 292, 293, 41, 91, 296, 297, 298, + 40, 279, 280, 778, 91, 780, 41, 306, 1429, 308, + 463, 289, 260, 261, 861, 263, 791, 463, 316, 704, + 705, 41, 42, 870, 323, 324, 325, 698, 699, 42, + 40, 40, 91, 40, 40, 359, 425, 426, 427, 428, + 364, 40, 374, 375, 360, 361, 362, 41, 719, 43, + 721, 91, 723, 715, 41, 42, 93, 728, 1523, 358, + 449, 450, 451, 452, 360, 361, 362, 861, 38, 61, + 732, 91, 536, 537, 538, 539, 540, 541, 542, 750, + 91, 91, 91, 40, 91, 1467, 41, 42, 750, 760, + 761, 1473, 43, 428, 91, 430, 431, 759, 260, 261, + 1565, 263, 263, 774, 91, 91, 393, 394, 793, 260, + 261, 44, 263, 46, 449, 450, 451, 452, 393, 394, + 898, 1503, 360, 361, 362, 33, 797, 260, 261, 922, + 263, 1596, 43, 44, 915, 928, 91, 896, 809, 266, + 811, 988, 59, 41, 919, 1566, 1611, 536, 537, 538, + 539, 540, 541, 542, 929, 260, 261, 93, 263, 286, + 287, 476, 283, 284, 930, 280, 932, 933, 934, 930, + 945, 930, 41, 932, 933, 934, 38, 43, 44, 930, + 42, 866, 41, 1030, 43, 44, 930, 1608, 932, 933, + 861, 930, 260, 932, 933, 263, 858, 318, 60, 59, + 871, 536, 537, 538, 539, 540, 541, 542, 125, 984, + 41, 42, 536, 537, 538, 539, 540, 541, 542, 585, + 586, 587, 1143, 360, 361, 362, 44, 40, 46, 91, + 1159, 1160, 1161, 1162, 1009, 41, 1083, 93, 44, 901, + 1169, 1170, 1171, 93, 301, 544, 303, 304, 305, 260, + 261, 40, 263, 924, 939, 926, 941, 268, 59, 360, + 361, 362, 125, 260, 261, 125, 263, 59, 91, 374, + 375, 268, 58, 295, 260, 261, 33, 263, 300, 950, + 302, 952, 268, 260, 261, 296, 263, 309, 950, 41, + 952, 59, 44, 260, 261, 980, 263, 982, 41, 296, + 43, 40, 299, 974, 326, 327, 977, 40, 278, 306, + 296, 281, 282, 283, 284, 40, 286, 287, 288, 341, + 306, 264, 265, 266, 125, 260, 261, 44, 263, 46, + 40, 1510, 1511, 125, 950, 1121, 952, 458, 459, 1125, + 461, 264, 40, 286, 287, 1139, 125, 1133, 260, 261, + 372, 263, 264, 0, 848, 849, 273, 125, 281, 282, + 283, 44, 270, 271, 272, 41, 40, 275, 276, 277, + 278, 279, 40, 281, 282, 283, 284, 1152, 286, 287, + 262, 1149, 290, 291, 292, 293, 264, 1234, 266, 297, + 298, 1159, 1160, 1161, 1162, 330, 331, 41, 306, 43, + 308, 1169, 1170, 1171, 415, 416, 417, 1078, 286, 287, + 123, 262, 59, 273, 44, 323, 324, 325, 415, 416, + 417, 59, 41, 41, 60, 294, 274, 274, 1203, 415, + 416, 417, 301, 464, 303, 304, 305, 1108, 1109, 1110, + 281, 282, 283, 284, 1115, 1116, 1117, 1118, 1119, 1120, + 358, 1122, 1123, 1124, 1324, 1126, 1127, 1128, 1129, 1130, + 1131, 1132, 322, 1134, 275, 1136, 62, 1138, 44, 1140, + 1155, 1156, 273, 342, 343, 344, 365, 123, 125, 58, + 123, 273, 280, 281, 282, 283, 284, 125, 123, 123, + 260, 261, 1278, 263, 281, 282, 283, 284, 360, 361, + 362, 295, 1261, 274, 296, 273, 300, 40, 302, 40, + 1357, 40, 317, 41, 40, 309, 59, 1179, 1312, 388, + 389, 390, 317, 392, 468, 1196, 395, 40, 296, 61, + 1201, 1193, 326, 1195, 61, 452, 61, 40, 339, 471, + 1315, 1212, 330, 331, 332, 462, 471, 341, 465, 44, + 410, 1222, 412, 413, 414, 1226, 1227, 41, 328, 1334, + 330, 331, 41, 93, 424, 41, 1237, 337, 41, 429, + 41, 41, 432, 433, 281, 282, 283, 284, 366, 367, + 368, 310, 125, 312, 313, 314, 41, 1258, 1259, 449, + 450, 451, 452, 58, 454, 455, 280, 281, 282, 283, + 284, 1272, 1273, 1274, 1275, 1276, 1277, 44, 1279, 41, + 44, 38, 61, 44, 474, 1374, 125, 61, 410, 536, + 537, 538, 539, 540, 541, 542, 273, 40, 38, 40, + 263, 432, 433, 125, 41, 273, 544, 1430, 41, 40, + 93, 93, 410, 274, 41, 274, 1493, 41, 1333, 509, + 510, 452, 44, 44, 1429, 41, 44, 40, 58, 1344, + 452, 40, 40, 464, 41, 466, 467, 0, 469, 470, + 462, 41, 40, 465, 41, 41, 536, 537, 538, 539, + 540, 541, 542, 41, 452, 1356, 40, 294, 62, 41, + 41, 40, 1363, 91, 462, 498, 123, 465, 502, 490, + 33, 40, 277, 41, 61, 38, 125, 40, 41, 42, + 41, 44, 62, 123, 47, 123, 452, 93, 391, 41, + 93, 41, 1569, 41, 1518, 1511, 59, 60, 61, 62, + 273, 317, 1602, 317, 41, 536, 537, 538, 539, 540, + 541, 542, 40, 1428, 536, 537, 538, 539, 540, 541, + 542, 40, 58, 296, 58, 40, 269, 93, 91, 272, + 93, 93, 44, 410, 411, 412, 413, 414, 536, 537, + 538, 539, 540, 541, 542, 505, 93, 93, 1449, 1450, + 1451, 91, 295, 296, 40, 432, 433, 300, 91, 302, + 123, 1566, 125, 40, 123, 41, 309, 93, 41, 40, + 40, 1486, 449, 450, 451, 452, 41, 422, 41, 456, + 457, 511, 1605, 326, 452, 462, 93, 464, 465, 93, + 44, 41, 58, 274, 462, 472, 473, 465, 341, 41, + 1501, 91, 41, 1608, 44, 1506, 1507, 1508, 60, 1510, + 61, 1512, 1513, 1514, 93, 40, 40, 40, 40, 40, + 260, 278, 40, 263, 281, 282, 283, 284, 40, 286, + 287, 288, 40, 1534, 1535, 1536, 40, 410, 278, 40, + 40, 281, 282, 283, 284, 40, 286, 287, 288, 62, + 527, 528, 41, 530, 531, 532, 125, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 93, 41, 536, 537, + 538, 539, 540, 541, 542, 41, 93, 93, 41, 452, + 41, 41, 93, 93, 93, 41, 41, 93, 41, 462, + 41, 1606, 465, 41, 93, 41, 1597, 260, 261, 262, + 263, 330, 331, 332, 41, 268, 93, 93, 271, 41, + 273, 274, 275, 276, 277, 278, 279, 93, 281, 282, + 283, 284, 93, 286, 287, 288, 41, 290, 291, 292, + 293, 41, 41, 296, 297, 298, 299, 366, 367, 368, + 38, 93, 41, 306, 93, 308, 41, 263, 311, 41, + 93, 44, 315, 316, 274, 318, 41, 41, 41, 322, + 323, 324, 325, 536, 537, 538, 539, 540, 541, 542, + 260, 261, 262, 263, 264, 41, 339, 40, 268, 93, + 93, 93, 40, 40, 40, 40, 58, 41, 58, 58, + 41, 41, 41, 283, 40, 358, 359, 360, 361, 362, + 40, 364, 365, 41, 93, 41, 296, 93, 41, 41, + 40, 374, 375, 93, 93, 40, 40, 40, 40, 40, + 40, 40, 33, 40, 40, 123, 40, 40, 391, 41, + 320, 321, 40, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 263, 60, 58, 41, 0, 41, 41, 93, 40, + 91, 40, 40, 93, 40, 91, 449, 450, 451, 452, + 40, 454, 455, 456, 457, 41, 41, 460, 41, 462, + 41, 464, 465, 466, 467, 40, 469, 470, 33, 472, + 473, 474, 274, 38, 41, 40, 41, 42, 481, 44, + 41, 263, 47, 40, 40, 415, 416, 417, 511, 358, + 269, 41, 41, 272, 59, 60, 61, 62, 274, 40, + 123, 41, 41, 294, 125, 41, 509, 510, 511, 123, + 301, 123, 303, 304, 305, 123, 295, 296, 44, 62, + 40, 300, 125, 302, 527, 528, 91, 530, 531, 532, + 309, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 278, 544, 41, 281, 282, 283, 284, 326, 286, 287, + 288, 342, 343, 344, 123, 125, 62, 123, 123, 123, + 125, 41, 341, 125, 123, 41, 41, 41, 41, 123, + 125, 277, 278, 279, 41, 281, 282, 283, 284, 123, + 286, 287, 288, 62, 290, 291, 292, 293, 59, 123, + 0, 297, 298, 41, 40, 40, 123, 388, 389, 390, + 41, 392, 93, 46, 395, 263, 93, 275, 275, 260, + 261, 42, 263, 91, 263, 790, 263, 268, 263, 61, + 271, 263, 180, 407, 275, 276, 277, 278, 279, 979, + 281, 282, 283, 284, 275, 286, 287, 275, 275, 290, + 291, 292, 293, 275, 275, 296, 297, 298, 275, 59, + 857, 61, 1445, 275, 125, 306, 275, 308, 275, 365, + 275, 956, 275, 1219, 275, 275, 699, 954, 1083, 679, + 876, 1220, 323, 324, 325, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 294, 1207, 866, 467, 24, 260, 261, 301, 263, 303, + 304, 305, 863, 268, 340, 9, 271, 358, 273, 274, + 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, + 114, 286, 287, 1147, 521, 290, 291, 292, 293, 24, + 714, 296, 297, 298, 299, 718, 583, 649, 342, 343, + 344, 306, 64, 308, 292, 479, 311, -1, -1, 358, + -1, 316, 262, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, 415, 416, 417, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, 388, 389, 390, -1, 392, 299, + -1, 395, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 296, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, 544, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, 322, 40, 41, 42, 481, 44, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, -1, -1, -1, 410, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 462, -1, -1, 465, -1, 123, -1, 125, -1, + 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 424, -1, -1, -1, -1, 429, + -1, -1, 432, 433, -1, -1, 59, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, 474, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, + -1, 268, 260, 261, 271, 263, 273, 274, 275, 276, + 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, 271, -1, 322, 323, 324, 325, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, -1, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, 355, 356, 357, + 273, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 380, 296, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 125, 33, 123, 44, - 0, 123, 123, 62, 123, 125, 123, 125, 62, 41, - 123, 448, 449, 450, 451, 41, 453, 454, 455, 456, - 260, 261, 459, 263, 461, 41, 463, 464, 465, 466, - 41, 468, 469, 33, 471, 472, 473, 125, 38, 41, - 40, 41, 42, 480, 44, 123, 41, 47, 543, 414, - 415, 416, 125, 123, 123, 41, 62, 123, 41, 59, - 60, 61, 62, 40, 40, 123, 41, 263, 93, 38, - 93, 508, 509, 510, 46, 278, 275, 263, 281, 282, - 283, 284, 275, 286, 287, 288, 42, 61, 263, 526, - 527, 91, 529, 530, 531, 275, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 180, 543, 263, 405, 275, - 91, 260, 261, 785, 263, 355, 356, 357, 263, 268, - 275, 950, 271, 123, 275, 125, 275, 276, 277, 278, - 279, 973, 281, 282, 283, 284, 275, 286, 287, 696, - 380, 290, 291, 292, 293, 852, 1213, 296, 297, 298, - 948, 1439, 275, 1077, 123, 59, 871, 306, 676, 308, - 861, 275, 1201, 275, 275, 338, 1214, 465, 24, 858, - 275, 9, 275, 275, 323, 324, 325, 114, 275, 519, - 24, 580, 277, 278, 279, 64, 281, 282, 283, 284, - 1141, 286, 287, 288, 646, 290, 291, 292, 293, 477, - -1, -1, 297, 298, 711, 292, -1, -1, -1, 358, - 356, 360, 361, 362, -1, 715, -1, -1, -1, -1, - -1, 125, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, 474, 271, 476, 477, 478, 479, - -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 260, 261, 298, 263, -1, 414, 415, 416, 268, 59, - 365, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, 278, - -1, 311, 281, 282, 283, 284, 316, 286, 287, 288, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, 47, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, 273, - -1, -1, -1, -1, 374, 375, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 391, 296, -1, 543, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - 262, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, 273, -1, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, - 292, 293, -1, -1, -1, 409, 296, 299, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, 451, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, 40, 260, 261, -1, 263, -1, -1, - -1, -1, 268, 59, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, 409, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, 535, 536, 537, 538, 539, 540, 541, -1, 125, - -1, 33, 260, 261, -1, 263, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, 451, 358, -1, 360, 361, 362, 59, 60, 61, - 62, 461, -1, -1, 464, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, 355, 356, 357, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 380, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, 273, -1, -1, - -1, -1, 269, -1, -1, 272, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 296, -1, 508, 509, -1, -1, -1, -1, 295, 296, - -1, -1, -1, 300, -1, 302, -1, -1, -1, -1, - 526, 527, 309, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, 326, - -1, -1, -1, -1, -1, -1, 474, -1, 476, 477, - 478, 479, -1, -1, 341, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, 59, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, 123, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, 409, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 125, -1, 33, -1, -1, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, 451, 358, -1, 360, 361, - 362, 59, 60, 61, 62, 461, -1, -1, 464, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, 294, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, 309, -1, -1, -1, -1, 480, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, 325, - -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, - -1, -1, -1, -1, 296, -1, 508, 509, -1, -1, - -1, -1, 348, 349, 350, 351, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, 380, 381, 382, 383, 384, 385, - 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, 59, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, 409, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 125, -1, 33, - -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, 451, - 358, -1, 360, 361, 362, 59, 60, 61, 62, 461, - -1, -1, 464, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, -1, -1, 273, -1, 269, -1, -1, - 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - 508, 509, -1, 295, 296, -1, -1, -1, 300, -1, - 302, -1, -1, -1, -1, -1, -1, 309, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 326, 543, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, 409, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, 451, 358, -1, 360, 361, 362, 59, - 60, 61, 62, 461, -1, -1, 464, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, 271, -1, -1, -1, -1, 480, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, + -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, 260, 261, 460, 263, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + 322, 40, 41, 42, 481, 44, -1, 475, -1, 477, + 478, 479, 480, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, 410, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, 452, + -1, -1, -1, -1, -1, -1, 355, 356, 357, 462, + -1, -1, 465, -1, 123, 123, 125, -1, 410, 411, + 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, + -1, 380, 424, -1, -1, -1, -1, 429, -1, -1, + 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, -1, -1, -1, -1, + 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, 474, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, 475, -1, 477, 478, + 479, 480, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 41, 294, 296, 297, 298, + 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, 309, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, 325, -1, -1, + -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 348, 349, 350, 351, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, 380, 381, 382, 383, 384, 385, 386, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, + 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, + 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, 294, -1, + -1, -1, -1, -1, -1, 301, -1, 303, 304, 305, + -1, -1, 123, -1, 125, 271, 410, 411, 412, 413, + 414, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, 432, 433, + -1, 297, 298, -1, 0, -1, 342, 343, 344, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 346, -1, 388, 389, 390, -1, 392, -1, -1, 395, + -1, -1, -1, 59, -1, -1, 277, 278, 279, 365, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, -1, 365, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, 257, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 276, 277, -1, 279, 280, + 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, + 291, 292, 293, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, 365, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, 485, 486, -1, 488, 489, 490, + -1, 492, 493, -1, -1, 496, 497, -1, 499, -1, + 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, + -1, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, -1, 432, 433, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, 123, -1, + 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, 294, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, + -1, -1, -1, -1, 462, 323, -1, 465, -1, 327, + -1, -1, 330, 331, 472, 473, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, + -1, -1, -1, -1, -1, 353, -1, -1, 356, 59, + -1, -1, -1, -1, -1, 363, -1, -1, -1, -1, + -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, + -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + 260, 261, -1, 263, -1, -1, 123, -1, 125, -1, + 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 432, 433, 294, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, + -1, -1, 462, 323, -1, 465, -1, 327, -1, -1, + 330, 331, 472, 473, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, -1, -1, + -1, -1, -1, 353, -1, -1, 356, 59, -1, -1, + -1, -1, -1, 363, -1, -1, -1, -1, -1, -1, + -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, + -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, + 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, + 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, -1, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, + 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, + 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, + 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - 260, 261, 268, 263, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, 294, 0, -1, -1, -1, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, - 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, -1, -1, - -1, -1, 358, 353, 59, -1, 356, -1, -1, -1, - -1, -1, -1, 363, -1, 33, -1, -1, 374, 375, - -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 123, -1, - 125, -1, 428, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, -1, 270, 271, 272, 0, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, - 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + 456, 457, -1, -1, -1, 125, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, - 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, 323, -1, -1, -1, 327, -1, -1, 330, 331, - -1, -1, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 260, -1, -1, 263, -1, - -1, 353, -1, -1, 356, 543, -1, -1, 273, -1, - -1, 363, 277, 278, 279, -1, 281, 282, 283, 284, - 372, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, + -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, 452, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, 464, -1, 466, -1, -1, 469, + 470, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, - 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 0, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, 59, + -1, 61, 62, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, 123, 429, 125, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, - 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, -1, 472, 473, 474, + -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, 0, -1, 294, 295, 306, -1, 308, -1, + 300, 311, 302, -1, -1, -1, 316, -1, -1, 309, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 326, 327, -1, 329, + 330, 331, 332, 333, -1, -1, -1, -1, 338, -1, + -1, 341, -1, -1, -1, -1, -1, 347, 358, -1, + -1, 59, 352, -1, 354, -1, -1, -1, -1, -1, + -1, -1, 33, -1, 374, 375, 366, 367, 368, 369, + 370, 371, 372, 373, -1, -1, -1, -1, -1, 379, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 123, -1, 125, -1, 429, + 91, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, + 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, 0, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, - 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, -1, 0, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, + -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, 0, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 359, 323, 324, 325, -1, 364, 365, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, + 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, + -1, -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, 0, -1, 275, 276, 277, + -1, -1, -1, 271, -1, -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, - 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 543, -1, -1, 273, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, 59, 294, 295, -1, -1, -1, - -1, 300, -1, 302, -1, -1, -1, 322, -1, -1, - 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 339, -1, -1, 326, 327, -1, - 329, 330, 331, 332, 333, -1, -1, -1, -1, 338, - -1, -1, 341, -1, 359, -1, -1, -1, 347, 364, - 365, -1, -1, 352, -1, 354, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 366, 367, 368, - 369, 370, 371, 372, 373, -1, -1, -1, -1, -1, - 379, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 0, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, 448, 449, 450, 451, 273, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, 339, -1, -1, -1, -1, 273, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, 322, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, 260, - -1, -1, 263, 448, 449, 450, 451, -1, 453, 454, - 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, 473, -1, - -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, 544, -1, -1, 273, + -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 359, -1, -1, -1, -1, + 364, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, 0, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, 448, 449, 450, - 451, 273, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, - 471, 472, 473, -1, 296, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + -1, -1, 0, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, + 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, 527, 528, 273, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, 40, 41, -1, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, 526, 527, 273, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, 448, 449, 450, 451, -1, 453, 454, 455, 456, - 273, 274, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 311, 61, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, + -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, 527, + 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, 274, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, 0, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 358, -1, 59, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, 273, 274, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, 449, 450, 451, + 452, -1, 454, 455, 456, 457, 273, 274, 460, -1, + 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, + 472, 473, 474, -1, 40, 41, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 311, 61, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, + -1, -1, 429, -1, -1, 432, 433, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, -1, 472, 473, 474, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 274, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, 543, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, 260, 59, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 260, -1, 464, - 263, -1, -1, -1, -1, -1, 471, 472, 473, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 59, + -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, + -1, -1, -1, 429, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 273, 274, 460, -1, 462, -1, 464, 465, + 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, 59, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 59, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, 59, 429, -1, + 260, 432, 433, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, 322, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, 273, -1, 459, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, + 460, 263, 462, -1, -1, 465, -1, -1, -1, -1, + -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, -1, -1, -1, 59, -1, -1, 260, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, 322, -1, 508, 509, + 322, 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, 260, -1, 460, -1, + 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, + 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, -1, -1, 59, - -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - -1, -1, 448, 449, 450, 451, 260, 453, 454, 455, - 456, -1, -1, 459, -1, 461, 431, 432, 464, 273, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, 123, -1, 125, 471, 472, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, 322, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, 59, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + -1, -1, -1, 59, -1, -1, 260, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, 273, -1, 459, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 123, 322, 125, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, 260, -1, 460, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 260, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, + -1, 59, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, 260, -1, 464, 263, -1, - -1, -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, + -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, 260, -1, - -1, 263, 44, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, 448, 449, 450, 451, 59, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, 0, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 322, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, 59, -1, 61, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 358, 359, -1, 260, 428, -1, 263, 431, - 432, 125, -1, -1, -1, -1, -1, -1, 273, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, -1, 464, -1, -1, -1, -1, 0, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 414, 415, - 416, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, 451, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 273, - -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 125, 428, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, - 0, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, 125, 459, -1, 461, -1, 322, 464, - -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, - -1, -1, -1, -1, 428, 125, -1, 431, 432, -1, - 273, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + -1, 429, -1, 0, 432, 433, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, -1, 472, 473, 474, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, 33, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, - 413, -1, -1, 273, -1, 0, -1, -1, -1, -1, - 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, 59, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, -1, -1, 461, 431, - 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, - 473, -1, -1, -1, 59, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, 508, 509, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - 125, -1, -1, -1, -1, -1, 273, -1, -1, 409, - 410, 411, 412, 413, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 409, 410, 411, 412, 413, -1, 273, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - -1, 257, -1, -1, 461, -1, -1, 464, -1, -1, - -1, -1, 0, -1, 471, 472, -1, -1, -1, -1, - 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, - 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 0, -1, -1, + -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, -1, 526, - 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 431, 432, -1, -1, -1, - -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - -1, -1, 448, 449, 450, 451, 125, -1, -1, 455, - 456, -1, -1, 273, -1, 461, 431, 432, 464, -1, - -1, -1, -1, 0, -1, 471, 472, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, 125, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, 484, 485, - -1, 487, 488, 489, -1, 491, 492, -1, -1, 495, - 496, -1, 498, -1, -1, -1, -1, -1, 125, 409, - 410, 411, 412, 413, 273, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, - -1, -1, 461, 431, 432, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 33, -1, 455, 456, -1, - 38, -1, -1, 461, 42, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 91, -1, -1, -1, -1, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, - -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, 0, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 91, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, 260, -1, -1, 263, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 273, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, 0, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, + 358, 59, 429, -1, -1, 432, 433, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, -1, 465, -1, + -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 125, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, -1, 33, -1, -1, -1, - -1, 38, -1, -1, -1, 42, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, -1, -1, -1, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, -1, 544, -1, -1, -1, + -1, 410, 411, 412, 413, 414, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, -1, 465, 432, 433, 273, -1, -1, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, + -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, + -1, -1, -1, 472, 473, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, 527, 528, 42, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 271, 91, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, 410, 411, 412, 413, 414, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, + -1, 358, -1, -1, 472, 473, -1, 33, -1, -1, + -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, 91, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, 414, 415, 416, 275, - 276, 277, 278, 279, 91, 281, 282, 283, 284, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, - 297, 298, 358, -1, 360, 361, 362, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 543, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 416, 358, -1, -1, -1, -1, -1, -1, -1, 366, - 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, - 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + 33, -1, -1, -1, -1, 38, -1, -1, -1, 42, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 544, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, 59, 415, + 416, 417, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 33, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, 415, + 416, 417, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, 33, 306, -1, 308, -1, 38, -1, -1, + -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + 271, 322, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 33, 544, 290, + 291, 292, 293, 294, -1, -1, 297, 298, -1, -1, + -1, -1, 415, 416, 417, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, + 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 410, + -1, 412, 413, 414, -1, 366, 367, 368, 369, -1, + -1, 372, -1, 424, -1, 376, 377, 378, 429, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, 474, -1, -1, -1, 268, -1, -1, + 271, 544, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 509, 510, + -1, -1, -1, -1, 91, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 481, -1, 323, 324, 325, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, 544, 290, 291, 292, 293, 294, -1, + -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 415, 416, 417, 323, 324, 325, + -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, + 366, 367, 368, 369, -1, -1, 372, -1, -1, -1, + 376, 377, 378, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 287, -1, -1, 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, 91, -1, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 480, -1, -1, -1, 543, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, 294, -1, -1, 297, 298, 91, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 543, 414, 415, 416, - 323, 324, 325, 33, 327, -1, 329, 330, 331, 332, + -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, 359, -1, -1, 481, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, 415, 416, + 417, -1, -1, -1, -1, -1, -1, -1, 544, 323, + 324, 325, -1, 327, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 452, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, 372, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, 415, 416, 417, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, - -1, -1, -1, 376, 377, 378, -1, -1, -1, -1, - -1, 91, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - -1, 33, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, - 323, 324, 325, -1, 327, -1, -1, -1, -1, 91, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, 480, -1, -1, - 275, 276, 277, 278, 279, 358, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, 372, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 543, 414, 415, 416, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 358, 359, 275, 276, 277, 278, 279, - 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, 358, 359, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, 91, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, + -1, 33, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, 91, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, + -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, 323, 324, 325, -1, -1, -1, 414, - 415, 416, -1, -1, -1, -1, -1, -1, 260, 261, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 33, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, 415, 416, 417, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, 41, + -1, -1, -1, 544, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, 358, 281, + 358, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, 91, - 543, -1, -1, -1, 306, -1, 308, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 260, - 261, -1, 263, -1, -1, -1, -1, 268, 543, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, 33, 414, 415, 416, 306, -1, 308, -1, -1, + -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, 415, 416, 417, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 544, 271, -1, 358, -1, 275, 276, + 277, 278, 279, 91, 281, 282, 283, 284, 40, 286, + 287, -1, -1, 290, 291, 292, 293, -1, 295, -1, + 297, 298, -1, 300, -1, 302, -1, 59, 60, 306, + -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, 326, + -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, + -1, -1, -1, 271, 341, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, 358, 290, 291, 292, 293, -1, 295, -1, 297, + 298, 123, 300, 125, 302, -1, 544, -1, 306, -1, + 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, 326, 271, + -1, -1, -1, -1, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 341, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 358, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, 41, -1, -1, -1, -1, -1, 47, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, 59, + -1, -1, 544, 271, -1, -1, -1, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, 358, -1, -1, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, 323, 324, 325, -1, -1, + -1, 273, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, + 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, + 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, + 422, 423, 544, 273, 274, 123, -1, 125, -1, -1, + 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, -1, -1, -1, -1, 449, 450, 451, + 452, -1, -1, -1, -1, -1, -1, -1, 460, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 543, -1, -1, -1, 358, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - 33, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, - -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, 33, 260, 261, -1, - 263, 543, -1, -1, 41, 268, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, 358, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, 33, -1, -1, - -1, -1, 59, -1, 91, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, 33, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 271, - -1, -1, 543, 275, 276, 277, 278, 279, 125, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, 295, -1, 297, 298, -1, 300, -1, - 302, -1, -1, -1, 306, -1, 308, 309, -1, -1, - -1, 414, 415, 416, -1, -1, 91, -1, -1, -1, - -1, 323, 324, 325, 326, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 271, 341, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, 358, 290, 291, 292, - 293, -1, 295, -1, 297, 298, -1, 300, -1, 302, - -1, 543, -1, 306, -1, 308, 309, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, 326, 271, -1, -1, -1, -1, 276, - 277, 278, 279, -1, 281, 282, 283, 284, 341, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, -1, -1, -1, 358, 273, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - 543, -1, -1, -1, -1, 271, 323, 324, 325, 275, - 276, 277, 278, 279, 40, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, 59, 60, 322, -1, 273, -1, -1, - 306, 358, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, 323, 324, 325, - -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, 358, 308, -1, -1, -1, 123, 41, 125, - -1, 543, -1, -1, 47, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, -1, 358, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, -1, -1, - 543, -1, -1, 409, 410, 411, 412, 413, -1, -1, - 123, 41, 125, -1, -1, -1, 473, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, 508, 509, -1, -1, 461, 543, -1, 464, -1, - -1, -1, -1, -1, 260, 471, 472, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 47, -1, -1, 536, 537, 538, 539, 540, 541, + 542, 391, -1, 59, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + -1, -1, 260, -1, 414, 263, -1, -1, 418, 419, + 420, 421, 422, 423, -1, 273, -1, -1, -1, -1, + -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, + 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, 543, -1, - 273, 274, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - 260, -1, -1, 263, -1, 431, 432, -1, -1, -1, - -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - -1, 125, -1, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, 508, 509, 510, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, - 536, 537, 538, 539, 540, 541, 459, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, 260, -1, 413, 263, 47, -1, 417, 418, 419, - 420, 421, 422, -1, 273, 508, 509, 59, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, 391, -1, 59, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, 449, 450, 451, 452, -1, -1, 273, 274, 123, + -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, 391, -1, -1, -1, -1, 396, 397, 398, + -1, -1, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 123, 409, 125, 411, 412, 413, - -1, -1, 431, 432, -1, -1, -1, -1, -1, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, 448, - 449, 450, 451, -1, -1, -1, -1, 59, -1, -1, - 459, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, -1, -1, -1, 473, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, 473, - -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, 508, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + 409, 509, 510, -1, -1, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, -1, -1, -1, 123, -1, + 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, -1, 260, -1, 414, 263, + -1, -1, 418, 419, 420, 421, 422, 423, -1, 273, + 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, 536, 537, 538, + 539, 540, 541, 542, 460, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - 59, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 273, -1, -1, -1, -1, -1, 459, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, 123, -1, 125, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, 59, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, 508, 509, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 508, - 509, 413, 59, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, - 432, 260, -1, -1, 263, -1, 535, 536, 537, 538, - 539, 540, 541, -1, 273, -1, 448, 449, 450, 451, - -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, + -1, -1, -1, 509, 510, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, 59, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 509, 510, 260, -1, 414, + 263, -1, -1, 418, 419, 420, 421, 422, 423, -1, + 273, -1, -1, -1, -1, -1, -1, 432, 433, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, + 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, 448, - 449, 450, 451, -1, -1, -1, 273, 123, -1, 125, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, 508, - 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, - 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, + -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, 59, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, 449, 450, 451, 452, + 273, -1, -1, -1, -1, -1, -1, 460, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + -1, -1, -1, -1, 414, 123, -1, 125, 418, 419, + 420, 421, 422, 423, -1, -1, 509, 510, -1, -1, + -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 449, + 450, 451, 452, 536, 537, 538, 539, 540, 541, 542, + 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 508, 509, 260, -1, 413, 263, -1, -1, - 417, 418, 419, 420, 421, 422, -1, 273, 123, -1, - 125, -1, -1, -1, 431, 432, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, -1, -1, - -1, -1, 459, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, -1, 509, + 510, 414, 123, -1, 125, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, 59, -1, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, 449, 450, 451, 452, + -1, -1, 260, -1, -1, 263, -1, 460, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 260, -1, 413, 263, -1, - -1, 417, 418, 419, 420, 421, 422, 59, 273, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, 260, -1, 59, 263, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 273, -1, 123, -1, 125, + -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, + 125, 509, 510, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, 449, 450, + 451, 452, -1, -1, -1, 59, -1, -1, -1, 460, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, + 418, 419, 420, 421, 422, 423, -1, 273, 509, 510, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 536, 537, 538, 539, 540, + 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 273, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + 125, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 508, 509, -1, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, 123, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, -1, -1, 448, 449, 450, 451, 535, - 536, 537, 538, 539, 540, 541, 459, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - -1, -1, 464, 257, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, 508, 509, 271, -1, -1, - -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, - 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 335, -1, 337, -1, -1, 257, -1, 342, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, -1, -1, 358, 276, 277, -1, 279, 280, - 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, - 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + -1, -1, -1, -1, 460, 410, 411, 412, 413, 414, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, - -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, 273, -1, + -1, 456, 457, 509, 510, -1, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 410, 411, 412, 413, + 414, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 432, 433, + 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, + -1, -1, -1, -1, -1, 410, -1, 412, 413, 414, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 424, + -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 474, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, 271, -1, + -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, + 283, 284, -1, 286, 287, 257, 289, 290, 291, 292, + 293, 536, 537, 538, 539, 540, 541, 542, -1, 271, + -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, + 282, 283, 284, -1, 286, 287, -1, 289, 290, 291, + 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, + 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, -1, -1, 481, -1, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, -1, -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 481, -1, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, - -1, -1, 503, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 482, + -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, -1, -1, + -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, + 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, -1, + -1, -1, 504, }; static int yyctable[] = { -1, - 239, 556, -1, 426, 771, -1, 278, 701, -1, 279, - 701, -1, 280, 701, -1, 282, 701, -1, 283, 701, - -1, 284, 701, -1, 285, 701, -1, 499, 722, -1, + 239, 559, -1, 428, 774, -1, 278, 704, -1, 279, + 704, -1, 280, 704, -1, 282, 704, -1, 283, 704, + -1, 284, 704, -1, 285, 704, -1, 501, 725, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 737, 317, -1, 805, 773, -1, - 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, + -1, 103, 495, -1, 742, 317, -1, 810, 776, -1, + 67, 567, -1, 68, 567, -1, 69, 567, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1070, 624, -1, 67, 565, -1, 68, - 565, -1, 69, 565, -1, 1089, 37, -1, 1215, 777, - -1, 1217, 775, -1, 1229, 608, -1, 1435, 779, -1, - 1072, 571, -1, 1073, 571, -1, + 34, 78, -1, 1076, 627, -1, 67, 568, -1, 68, + 568, -1, 69, 568, -1, 1095, 37, -1, 1221, 780, + -1, 1223, 778, -1, 1235, 611, -1, 1441, 782, -1, + 1078, 574, -1, 1079, 574, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, - 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, - 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, - 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 296, 319, 320, 398, 404, 405, 420, - 421, 423, 424, 426, 427, 428, 429, 430, 431, 432, - 434, 436, 438, 440, 441, 442, 443, 444, 445, 447, - 448, 449, 462, 480, 486, 215, 5, 6, 8, 310, - 311, 298, 325, 64, 125, 482, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 397, 397, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 294, 316, 317, 384, 386, 387, 297, - 298, 273, 399, 215, 401, 403, 215, 310, 9, 318, - 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, + 310, 18, 155, 156, 157, 158, 159, 177, 178, 194, + 195, 196, 197, 201, 202, 207, 210, 217, 218, 272, + 273, 275, 276, 277, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 297, 320, 321, 399, 405, 406, 422, + 423, 425, 426, 428, 429, 430, 431, 432, 433, 434, + 436, 438, 440, 442, 443, 444, 445, 446, 447, 449, + 450, 451, 464, 482, 488, 216, 5, 6, 8, 311, + 312, 299, 326, 64, 125, 484, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 398, 398, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 295, 317, 318, 385, 387, 388, 298, + 299, 274, 400, 216, 402, 404, 216, 311, 9, 319, + 319, 9, 10, 336, 336, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 159, 160, 161, 288, 298, 307, 310, 314, 339, - 363, 381, 385, 387, 404, 405, 459, 289, 310, 310, - 310, 310, 7, 12, 342, 343, 342, 342, 289, 289, - 425, 289, 289, 289, 289, 342, 388, 60, 450, 389, - 23, 26, 27, 28, 29, 31, 32, 33, 289, 305, - 481, 484, 485, 318, 402, 293, 318, 390, 311, 298, - 339, 381, 382, 387, 459, 7, 33, 297, 347, 292, - 294, 294, 46, 48, 49, 50, 316, 316, 382, 383, - 385, 339, 297, 294, 318, 318, 207, 310, 401, 100, - 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, - 76, 310, 310, 339, 26, 27, 28, 29, 381, 51, - 381, 24, 25, 34, 15, 17, 339, 307, 363, 217, - 304, 310, 387, 307, 310, 318, 306, 105, 106, 107, - 136, 298, 300, 304, 305, 136, 136, 136, 136, 316, - 386, 381, 446, 347, 295, 12, 295, 295, 422, 309, + 104, 160, 161, 162, 289, 299, 307, 311, 315, 340, + 364, 382, 386, 388, 405, 406, 461, 290, 311, 311, + 311, 311, 7, 12, 343, 344, 343, 343, 290, 290, + 427, 290, 290, 290, 290, 343, 389, 60, 452, 390, + 23, 26, 27, 28, 29, 31, 32, 33, 290, 306, + 483, 486, 487, 319, 403, 294, 319, 391, 312, 299, + 340, 382, 383, 388, 461, 7, 33, 298, 348, 293, + 295, 295, 46, 48, 49, 50, 317, 317, 383, 384, + 386, 340, 298, 295, 319, 319, 208, 311, 402, 100, + 101, 102, 125, 220, 222, 223, 224, 225, 311, 75, + 76, 311, 311, 340, 26, 27, 28, 29, 382, 51, + 382, 24, 25, 34, 15, 17, 340, 307, 364, 218, + 305, 311, 388, 307, 311, 319, 308, 105, 106, 107, + 136, 299, 301, 305, 306, 136, 136, 136, 136, 317, + 387, 382, 448, 348, 296, 12, 296, 296, 424, 310, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 162, 163, 164, 165, 166, 167, 204, - 218, 253, 254, 289, 290, 311, 406, 407, 408, 409, + 151, 152, 153, 154, 163, 164, 165, 166, 167, 168, + 205, 219, 254, 255, 290, 291, 312, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 427, 430, 441, 442, 443, 445, 464, 465, 466, 467, - 468, 469, 470, 473, 433, 435, 437, 439, 295, 39, - 68, 72, 75, 76, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 98, 101, 108, 117, - 310, 382, 61, 451, 39, 72, 74, 75, 76, 77, - 78, 83, 92, 97, 99, 111, 112, 113, 114, 115, - 116, 117, 118, 124, 316, 304, 294, 298, 323, 294, - 323, 294, 323, 294, 323, 294, 323, 294, 323, 294, - 483, 484, 294, 342, 7, 8, 292, 303, 73, 75, - 76, 82, 310, 310, 299, 39, 72, 74, 75, 76, - 77, 111, 112, 113, 114, 117, 121, 122, 123, 225, - 339, 297, 217, 310, 294, 297, 316, 294, 289, 294, - 291, 8, 318, 318, 295, 119, 120, 298, 310, 312, - 382, 289, 294, 347, 299, 166, 400, 310, 220, 136, - 381, 25, 310, 382, 307, 310, 318, 310, 299, 299, - 299, 310, 318, 310, 294, 294, 310, 20, 299, 318, - 340, 341, 339, 365, 366, 310, 310, 310, 310, 339, - 446, 290, 67, 154, 168, 173, 198, 199, 218, 253, - 254, 290, 421, 424, 426, 427, 430, 441, 442, 443, - 445, 453, 454, 456, 458, 290, 318, 318, 318, 298, - 110, 287, 298, 103, 382, 303, 311, 318, 318, 335, - 11, 31, 32, 294, 334, 335, 311, 318, 386, 15, - 17, 339, 387, 382, 87, 347, 485, 316, 383, 294, - 342, 197, 294, 425, 55, 57, 58, 59, 471, 472, - 474, 476, 477, 478, 479, 311, 318, 468, 208, 210, - 213, 214, 290, 441, 442, 445, 488, 489, 490, 491, - 84, 208, 211, 290, 487, 489, 492, 493, 41, 154, - 206, 209, 290, 442, 445, 494, 206, 209, 290, 442, - 445, 495, 294, 75, 76, 77, 111, 112, 113, 300, - 380, 382, 452, 294, 294, 322, 294, 318, 318, 318, - 318, 335, 334, 334, 290, 292, 311, 295, 318, 318, - 75, 76, 77, 111, 112, 113, 294, 294, 310, 310, - 299, 347, 395, 396, 289, 339, 51, 374, 375, 382, - 7, 292, 295, 295, 384, 300, 333, 364, 19, 370, - 372, 321, 487, 136, 310, 19, 310, 318, 299, 314, - 314, 314, 382, 382, 20, 292, 299, 301, 292, 304, - 110, 392, 393, 318, 318, 402, 110, 287, 103, 382, - 289, 425, 289, 289, 289, 303, 318, 298, 310, 298, - 310, 318, 316, 19, 294, 294, 310, 382, 294, 342, - 339, 311, 315, 318, 295, 294, 20, 322, 336, 337, - 338, 290, 382, 471, 56, 468, 475, 475, 475, 475, - 311, 318, 468, 62, 62, 212, 297, 304, 318, 377, - 297, 347, 342, 342, 297, 297, 342, 342, 294, 215, - 318, 310, 215, 310, 215, 318, 39, 51, 52, 69, - 119, 288, 291, 302, 327, 328, 379, 292, 318, 347, - 394, 298, 339, 347, 295, 299, 295, 295, 295, 295, - 295, 483, 295, 303, 8, 292, 318, 2, 16, 21, - 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, - 35, 36, 37, 38, 80, 82, 87, 103, 136, 226, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 248, 289, 344, - 345, 463, 63, 313, 299, 297, 295, 292, 370, 8, - 292, 290, 297, 8, 297, 298, 365, 294, 294, 310, - 312, 290, 22, 23, 24, 26, 27, 28, 29, 31, - 32, 35, 36, 37, 38, 42, 43, 110, 351, 352, - 373, 445, 485, 28, 29, 63, 202, 203, 205, 342, - 310, 310, 314, 295, 295, 318, 340, 339, 294, 382, - 72, 117, 310, 382, 72, 117, 316, 310, 298, 310, - 298, 310, 316, 19, 422, 290, 455, 457, 437, 318, - 299, 318, 318, 292, 299, 339, 312, 318, 335, 19, - 347, 295, 294, 292, 295, 292, 336, 339, 295, 292, - 311, 318, 311, 318, 318, 294, 303, 294, 295, 295, - 294, 294, 295, 295, 318, 314, 310, 63, 310, 295, - 294, 39, 329, 330, 328, 294, 310, 369, 301, 382, - 295, 136, 394, 39, 46, 48, 49, 50, 87, 88, - 89, 133, 134, 135, 137, 140, 295, 250, 251, 252, - 318, 225, 349, 295, 323, 323, 323, 323, 323, 323, - 318, 318, 295, 25, 26, 27, 28, 29, 294, 331, - 242, 234, 246, 294, 227, 247, 22, 331, 331, 2, - 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, - 34, 35, 36, 37, 38, 229, 230, 232, 233, 234, - 236, 237, 240, 241, 243, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 304, - 324, 298, 304, 295, 343, 311, 297, 346, 28, 65, - 66, 318, 326, 347, 348, 381, 395, 290, 297, 375, - 289, 289, 294, 347, 318, 301, 336, 336, 333, 364, - 294, 298, 294, 298, 26, 27, 28, 29, 294, 298, - 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, - 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, - 294, 298, 294, 298, 104, 109, 376, 445, 342, 311, - 295, 336, 196, 404, 310, 339, 318, 318, 292, 339, - 312, 290, 169, 170, 171, 172, 290, 430, 442, 443, - 445, 460, 172, 174, 175, 290, 430, 442, 443, 445, - 461, 290, 136, 299, 299, 382, 346, 382, 295, 295, - 310, 295, 336, 315, 315, 295, 349, 338, 62, 62, - 377, 295, 318, 318, 294, 330, 382, 367, 368, 382, - 292, 378, 310, 347, 295, 294, 303, 303, 299, 299, - 299, 299, 294, 312, 8, 292, 8, 249, 347, 298, - 298, 25, 26, 27, 28, 29, 270, 292, 298, 305, - 291, 299, 318, 290, 22, 23, 24, 26, 27, 28, - 29, 31, 32, 35, 36, 37, 38, 44, 347, 350, - 352, 294, 294, 289, 373, 370, 299, 295, 295, 294, - 294, 326, 318, 318, 318, 294, 298, 294, 298, 294, - 298, 294, 298, 318, 318, 318, 318, 318, 318, 335, - 318, 318, 334, 318, 334, 335, 318, 318, 318, 318, - 318, 318, 318, 335, 318, 351, 318, 8, 44, 318, - 44, 51, 381, 318, 42, 91, 110, 363, 371, 295, - 400, 295, 310, 299, 299, 382, 382, 255, 386, 386, - 386, 386, 386, 386, 386, 311, 292, 19, 295, 311, - 311, 318, 303, 295, 318, 310, 295, 292, 379, 378, - 394, 318, 138, 139, 138, 139, 345, 380, 318, 297, - 292, 318, 318, 347, 299, 318, 291, 299, 26, 27, - 28, 29, 318, 26, 27, 28, 318, 373, 290, 290, - 301, 336, 336, 295, 299, 295, 299, 318, 318, 318, - 318, 318, 318, 335, 318, 295, 299, 295, 299, 295, - 299, 295, 299, 295, 295, 299, 295, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, - 295, 299, 295, 8, 295, 299, 51, 381, 298, 310, - 294, 292, 19, 316, 382, 312, 377, 295, 378, 382, - 295, 295, 295, 294, 8, 318, 347, 299, 299, 299, - 318, 295, 303, 303, 303, 295, 290, 295, 295, 294, - 294, 295, 299, 295, 299, 295, 299, 295, 299, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 295, 294, 8, 299, 297, 336, 382, 312, 339, - 300, 332, 333, 303, 336, 295, 292, 295, 344, 299, - 318, 318, 318, 359, 356, 294, 294, 294, 294, 355, - 356, 357, 358, 353, 354, 355, 356, 357, 358, 362, - 360, 361, 351, 295, 332, 382, 294, 377, 295, 347, - 295, 295, 295, 295, 326, 295, 318, 355, 356, 357, - 358, 295, 318, 295, 295, 318, 295, 335, 295, 318, - 334, 295, 334, 335, 295, 295, 295, 295, 295, 351, - 8, 44, 295, 44, 51, 295, 381, 346, 294, 19, - 336, 391, 292, 295, 295, 295, 295, 8, 336, 312, - 295, 39, 54, 70, 79, 93, 94, 95, 96, 125, - 126, 127, 128, 129, 130, 131, 289, 347, 295, 294, - 294, 295, 255, 336, 318, 103, 295, 295, 316, 339, - 382, 19, 312, 332, 294, 336, 295, + 420, 421, 429, 432, 443, 444, 445, 447, 466, 467, + 468, 469, 470, 471, 472, 475, 435, 437, 439, 441, + 296, 39, 68, 72, 75, 76, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 98, 101, + 108, 117, 311, 383, 61, 453, 39, 72, 74, 75, + 76, 77, 78, 83, 92, 97, 99, 111, 112, 113, + 114, 115, 116, 117, 118, 124, 317, 305, 295, 299, + 324, 295, 324, 295, 324, 295, 324, 295, 324, 295, + 324, 295, 485, 486, 295, 343, 7, 8, 293, 304, + 73, 75, 76, 82, 311, 311, 300, 39, 72, 74, + 75, 76, 77, 111, 112, 113, 114, 117, 121, 122, + 123, 226, 340, 298, 218, 311, 295, 298, 317, 295, + 290, 295, 292, 8, 319, 319, 296, 119, 120, 299, + 311, 313, 383, 290, 295, 348, 300, 167, 401, 311, + 221, 136, 382, 25, 311, 383, 307, 311, 319, 311, + 300, 300, 300, 311, 319, 311, 295, 295, 311, 20, + 300, 319, 341, 342, 340, 366, 367, 311, 311, 311, + 311, 340, 448, 291, 67, 155, 169, 174, 199, 200, + 219, 254, 255, 291, 423, 426, 428, 429, 432, 443, + 444, 445, 447, 455, 456, 458, 460, 291, 319, 319, + 319, 299, 110, 288, 299, 103, 383, 304, 312, 319, + 319, 336, 11, 31, 32, 295, 335, 336, 312, 319, + 387, 15, 17, 340, 388, 307, 383, 87, 348, 487, + 317, 384, 295, 343, 198, 295, 427, 55, 57, 58, + 59, 473, 474, 476, 478, 479, 480, 481, 312, 319, + 470, 209, 211, 214, 215, 291, 443, 444, 447, 490, + 491, 492, 493, 84, 209, 212, 291, 489, 491, 494, + 495, 41, 155, 207, 210, 291, 444, 447, 496, 207, + 210, 291, 444, 447, 497, 295, 75, 76, 77, 111, + 112, 113, 301, 381, 383, 454, 295, 295, 323, 295, + 319, 319, 319, 319, 336, 335, 335, 291, 293, 312, + 296, 319, 319, 75, 76, 77, 111, 112, 113, 295, + 295, 311, 311, 300, 348, 396, 397, 290, 340, 51, + 375, 376, 383, 7, 293, 296, 296, 385, 301, 334, + 365, 19, 371, 373, 322, 489, 136, 311, 19, 311, + 319, 300, 315, 315, 315, 383, 383, 20, 293, 300, + 302, 293, 305, 110, 393, 394, 319, 319, 403, 110, + 288, 103, 383, 290, 427, 290, 290, 290, 304, 319, + 299, 311, 299, 311, 319, 317, 19, 295, 295, 311, + 383, 307, 312, 295, 343, 340, 312, 316, 319, 296, + 295, 20, 323, 337, 338, 339, 291, 383, 473, 56, + 470, 477, 477, 477, 477, 312, 319, 470, 62, 62, + 213, 298, 305, 319, 378, 298, 348, 343, 343, 298, + 298, 343, 343, 295, 216, 319, 311, 216, 311, 216, + 319, 39, 51, 52, 69, 119, 289, 292, 303, 328, + 329, 380, 293, 319, 348, 395, 299, 340, 348, 296, + 300, 296, 296, 296, 296, 296, 485, 296, 304, 8, + 293, 319, 2, 16, 21, 22, 24, 25, 26, 27, + 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, + 82, 87, 103, 136, 227, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 249, 290, 345, 346, 465, 63, 314, 300, + 298, 296, 293, 371, 8, 293, 291, 298, 8, 298, + 299, 366, 295, 295, 311, 313, 291, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, + 42, 43, 110, 352, 353, 374, 447, 487, 28, 29, + 63, 203, 204, 206, 343, 311, 311, 315, 296, 296, + 319, 341, 340, 295, 383, 72, 117, 311, 383, 72, + 117, 317, 311, 299, 311, 299, 311, 317, 19, 424, + 291, 457, 459, 439, 319, 300, 319, 319, 293, 300, + 340, 313, 319, 336, 19, 312, 348, 296, 295, 293, + 296, 293, 337, 340, 296, 293, 312, 319, 312, 319, + 319, 295, 304, 295, 296, 296, 295, 295, 296, 296, + 319, 315, 311, 63, 311, 296, 295, 39, 330, 331, + 329, 295, 311, 370, 302, 383, 296, 136, 395, 39, + 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, + 137, 140, 296, 251, 252, 253, 319, 226, 350, 296, + 324, 324, 324, 324, 324, 324, 319, 319, 296, 25, + 26, 27, 28, 29, 295, 332, 243, 235, 247, 295, + 228, 248, 22, 332, 332, 2, 21, 22, 24, 25, + 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, + 38, 230, 231, 233, 234, 235, 237, 238, 241, 242, + 244, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 305, 325, 299, 305, 296, + 344, 312, 298, 347, 28, 65, 66, 319, 327, 348, + 349, 382, 396, 291, 298, 376, 290, 290, 295, 348, + 319, 302, 337, 337, 334, 365, 295, 299, 295, 299, + 26, 27, 28, 29, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, + 104, 109, 377, 447, 343, 312, 296, 337, 197, 405, + 311, 340, 319, 319, 293, 340, 313, 291, 170, 171, + 172, 173, 291, 432, 444, 445, 447, 462, 173, 175, + 176, 291, 432, 444, 445, 447, 463, 291, 136, 300, + 300, 383, 347, 383, 296, 296, 311, 296, 337, 316, + 316, 296, 350, 339, 62, 62, 378, 296, 319, 319, + 295, 331, 383, 368, 369, 383, 293, 379, 311, 348, + 296, 295, 304, 304, 300, 300, 300, 300, 295, 313, + 8, 293, 8, 250, 348, 299, 299, 25, 26, 27, + 28, 29, 271, 293, 299, 306, 292, 300, 319, 291, + 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, + 36, 37, 38, 44, 348, 351, 353, 295, 295, 290, + 374, 371, 300, 296, 296, 295, 295, 327, 319, 319, + 319, 295, 299, 295, 299, 295, 299, 295, 299, 319, + 319, 319, 319, 319, 319, 336, 319, 319, 335, 319, + 335, 336, 319, 319, 319, 319, 319, 319, 319, 336, + 319, 352, 319, 8, 44, 319, 44, 51, 382, 319, + 42, 91, 110, 364, 372, 296, 401, 296, 311, 300, + 300, 383, 383, 256, 387, 387, 387, 387, 387, 387, + 387, 312, 293, 19, 296, 312, 312, 319, 304, 296, + 319, 311, 296, 293, 380, 379, 395, 319, 138, 139, + 138, 139, 346, 381, 319, 298, 293, 319, 319, 348, + 300, 319, 292, 300, 26, 27, 28, 29, 319, 26, + 27, 28, 319, 374, 291, 291, 302, 337, 337, 296, + 300, 296, 300, 319, 319, 319, 319, 319, 319, 336, + 319, 296, 300, 296, 300, 296, 300, 296, 300, 296, + 296, 300, 296, 296, 300, 296, 300, 296, 300, 296, + 300, 296, 300, 296, 300, 296, 296, 300, 296, 8, + 296, 300, 51, 382, 299, 311, 295, 293, 19, 317, + 383, 313, 378, 296, 379, 383, 296, 296, 296, 295, + 8, 319, 348, 300, 300, 300, 319, 296, 304, 304, + 304, 296, 291, 296, 296, 295, 295, 296, 300, 296, + 300, 296, 300, 296, 300, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 296, 295, 8, + 300, 298, 337, 383, 313, 340, 301, 333, 334, 304, + 337, 296, 293, 296, 345, 300, 319, 319, 319, 360, + 357, 295, 295, 295, 295, 356, 357, 358, 359, 354, + 355, 356, 357, 358, 359, 363, 361, 362, 352, 296, + 333, 383, 295, 378, 296, 348, 296, 296, 296, 296, + 327, 296, 319, 356, 357, 358, 359, 296, 319, 296, + 296, 319, 296, 336, 296, 319, 335, 296, 335, 336, + 296, 296, 296, 296, 296, 352, 8, 44, 296, 44, + 51, 296, 382, 347, 295, 19, 337, 392, 293, 296, + 296, 296, 296, 8, 337, 313, 296, 39, 54, 70, + 79, 93, 94, 95, 96, 125, 126, 127, 128, 129, + 130, 131, 290, 348, 296, 295, 295, 296, 256, 337, + 319, 103, 296, 296, 317, 340, 383, 19, 313, 333, + 295, 337, 296, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 543 +#define YYMAXTOKEN 544 #if YYDEBUG static const char *yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -4582,7 +4744,7 @@ static const char *yyname[] = { "PRESERVESIG_","RUNTIME_","INTERNALCALL_","_IMPORT","NOMANGLE_","LASTERR_", "WINAPI_","AS_","BESTFIT_","ON_","OFF_","CHARMAPERROR_","INSTR_NONE", "INSTR_VAR","INSTR_I","INSTR_I8","INSTR_R","INSTR_BRTARGET","INSTR_METHOD", -"INSTR_FIELD","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", +"INSTR_FIELD","INSTR_TVAR","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", "INSTR_SWITCH","_CLASS","_NAMESPACE","_METHOD","_FIELD","_DATA","_THIS","_BASE", "_NESTER","_EMITBYTE","_TRY","_MAXSTACK","_LOCALS","_ENTRYPOINT","_ZEROINIT", "_EVENT","_ADDON","_REMOVEON","_FIRE","_OTHER","_PROPERTY","_SET","_GET", @@ -5104,6 +5266,7 @@ static const char *yyrule[] = { "methodSpec : METHOD_", "instr_none : INSTR_NONE", "instr_var : INSTR_VAR", +"instr_tvar : INSTR_TVAR", "instr_i : INSTR_I", "instr_i8 : INSTR_I8", "instr_r : INSTR_R", @@ -5119,6 +5282,8 @@ static const char *yyrule[] = { "instr : instr_none", "instr : instr_var int32", "instr : instr_var id", +"instr : instr_tvar '!' id", +"instr : instr_tvar '!' '!' id", "instr : instr_i int32", "instr : instr_i8 int64", "instr : instr_r float64", @@ -5765,11 +5930,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2109 "asmparse.y" +#line 2114 "asmparse.y" #include "grammar_after.cpp" -#line 5773 "asmparse.cpp.tab.c" +#line 5938 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6222,13 +6387,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6226 "asmparse.cpp.tab.c" +#line 6391 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6232 "asmparse.cpp.tab.c" +#line 6397 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6237,31 +6402,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6241 "asmparse.cpp.tab.c" +#line 6406 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6247 "asmparse.cpp.tab.c" +#line 6412 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6253 "asmparse.cpp.tab.c" +#line 6418 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6259 "asmparse.cpp.tab.c" +#line 6424 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6265 "asmparse.cpp.tab.c" +#line 6430 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6276,13 +6441,13 @@ case 19: #pragma warning(pop) #endif } -#line 6280 "asmparse.cpp.tab.c" +#line 6445 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6286 "asmparse.cpp.tab.c" +#line 6451 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6290,7 +6455,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6294 "asmparse.cpp.tab.c" +#line 6459 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6298,44 +6463,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6302 "asmparse.cpp.tab.c" +#line 6467 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6308 "asmparse.cpp.tab.c" +#line 6473 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6314 "asmparse.cpp.tab.c" +#line 6479 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6320 "asmparse.cpp.tab.c" +#line 6485 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6326 "asmparse.cpp.tab.c" +#line 6491 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6332 "asmparse.cpp.tab.c" +#line 6497 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6339 "asmparse.cpp.tab.c" +#line 6504 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6343,121 +6508,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6347 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6353 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6359 "asmparse.cpp.tab.c" +#line 6524 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6365 "asmparse.cpp.tab.c" +#line 6530 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6371 "asmparse.cpp.tab.c" +#line 6536 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6377 "asmparse.cpp.tab.c" +#line 6542 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6383 "asmparse.cpp.tab.c" +#line 6548 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6389 "asmparse.cpp.tab.c" +#line 6554 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6395 "asmparse.cpp.tab.c" +#line 6560 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6401 "asmparse.cpp.tab.c" +#line 6566 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6407 "asmparse.cpp.tab.c" +#line 6572 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6413 "asmparse.cpp.tab.c" +#line 6578 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6419 "asmparse.cpp.tab.c" +#line 6584 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6425 "asmparse.cpp.tab.c" +#line 6590 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6431 "asmparse.cpp.tab.c" +#line 6596 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6437 "asmparse.cpp.tab.c" +#line 6602 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6443 "asmparse.cpp.tab.c" +#line 6608 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6449 "asmparse.cpp.tab.c" +#line 6614 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6455 "asmparse.cpp.tab.c" +#line 6620 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6461 "asmparse.cpp.tab.c" +#line 6626 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6465,7 +6630,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6469 "asmparse.cpp.tab.c" +#line 6634 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6473,13 +6638,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6477 "asmparse.cpp.tab.c" +#line 6642 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6483 "asmparse.cpp.tab.c" +#line 6648 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6488,73 +6653,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6492 "asmparse.cpp.tab.c" +#line 6657 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6498 "asmparse.cpp.tab.c" +#line 6663 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6504 "asmparse.cpp.tab.c" +#line 6669 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6510 "asmparse.cpp.tab.c" +#line 6675 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6516 "asmparse.cpp.tab.c" +#line 6681 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6522 "asmparse.cpp.tab.c" +#line 6687 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6528 "asmparse.cpp.tab.c" +#line 6693 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6534 "asmparse.cpp.tab.c" +#line 6699 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6540 "asmparse.cpp.tab.c" +#line 6705 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6546 "asmparse.cpp.tab.c" +#line 6711 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6552 "asmparse.cpp.tab.c" +#line 6717 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6558 "asmparse.cpp.tab.c" +#line 6723 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6562,25 +6727,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6566 "asmparse.cpp.tab.c" +#line 6731 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6572 "asmparse.cpp.tab.c" +#line 6737 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6578 "asmparse.cpp.tab.c" +#line 6743 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6584 "asmparse.cpp.tab.c" +#line 6749 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6589,32 +6754,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6593 "asmparse.cpp.tab.c" +#line 6758 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6599 "asmparse.cpp.tab.c" +#line 6764 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6606 "asmparse.cpp.tab.c" +#line 6771 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6612 "asmparse.cpp.tab.c" +#line 6777 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6618 "asmparse.cpp.tab.c" +#line 6783 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6624,25 +6789,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6628 "asmparse.cpp.tab.c" +#line 6793 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6634 "asmparse.cpp.tab.c" +#line 6799 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6640 "asmparse.cpp.tab.c" +#line 6805 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6646 "asmparse.cpp.tab.c" +#line 6811 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6651,13 +6816,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6655 "asmparse.cpp.tab.c" +#line 6820 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6661 "asmparse.cpp.tab.c" +#line 6826 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6668,57 +6833,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6672 "asmparse.cpp.tab.c" +#line 6837 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6678 "asmparse.cpp.tab.c" +#line 6843 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6684 "asmparse.cpp.tab.c" +#line 6849 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6690 "asmparse.cpp.tab.c" +#line 6855 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6697 "asmparse.cpp.tab.c" +#line 6862 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6704 "asmparse.cpp.tab.c" +#line 6869 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6710 "asmparse.cpp.tab.c" +#line 6875 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6716 "asmparse.cpp.tab.c" +#line 6881 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6722 "asmparse.cpp.tab.c" +#line 6887 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6727,74 +6892,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6731 "asmparse.cpp.tab.c" +#line 6896 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6738 "asmparse.cpp.tab.c" +#line 6903 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6744 "asmparse.cpp.tab.c" +#line 6909 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6750 "asmparse.cpp.tab.c" +#line 6915 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6756 "asmparse.cpp.tab.c" +#line 6921 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6762 "asmparse.cpp.tab.c" +#line 6927 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6768 "asmparse.cpp.tab.c" +#line 6933 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6774 "asmparse.cpp.tab.c" +#line 6939 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6780 "asmparse.cpp.tab.c" +#line 6945 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6786 "asmparse.cpp.tab.c" +#line 6951 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6792 "asmparse.cpp.tab.c" +#line 6957 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6798 "asmparse.cpp.tab.c" +#line 6963 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6804,355 +6969,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6808 "asmparse.cpp.tab.c" +#line 6973 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6814 "asmparse.cpp.tab.c" +#line 6979 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6820 "asmparse.cpp.tab.c" +#line 6985 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6826 "asmparse.cpp.tab.c" +#line 6991 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6832 "asmparse.cpp.tab.c" +#line 6997 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6838 "asmparse.cpp.tab.c" +#line 7003 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6844 "asmparse.cpp.tab.c" +#line 7009 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6850 "asmparse.cpp.tab.c" +#line 7015 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6856 "asmparse.cpp.tab.c" +#line 7021 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6862 "asmparse.cpp.tab.c" +#line 7027 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6868 "asmparse.cpp.tab.c" +#line 7033 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6874 "asmparse.cpp.tab.c" +#line 7039 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6880 "asmparse.cpp.tab.c" +#line 7045 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6886 "asmparse.cpp.tab.c" +#line 7051 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6892 "asmparse.cpp.tab.c" +#line 7057 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6898 "asmparse.cpp.tab.c" +#line 7063 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6904 "asmparse.cpp.tab.c" +#line 7069 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6910 "asmparse.cpp.tab.c" +#line 7075 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6916 "asmparse.cpp.tab.c" +#line 7081 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6922 "asmparse.cpp.tab.c" +#line 7087 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6928 "asmparse.cpp.tab.c" +#line 7093 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6934 "asmparse.cpp.tab.c" +#line 7099 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6940 "asmparse.cpp.tab.c" +#line 7105 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 6946 "asmparse.cpp.tab.c" +#line 7111 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 6952 "asmparse.cpp.tab.c" +#line 7117 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 6958 "asmparse.cpp.tab.c" +#line 7123 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 6964 "asmparse.cpp.tab.c" +#line 7129 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 6970 "asmparse.cpp.tab.c" +#line 7135 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 6976 "asmparse.cpp.tab.c" +#line 7141 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 6982 "asmparse.cpp.tab.c" +#line 7147 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6988 "asmparse.cpp.tab.c" +#line 7153 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6994 "asmparse.cpp.tab.c" +#line 7159 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7000 "asmparse.cpp.tab.c" +#line 7165 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7006 "asmparse.cpp.tab.c" +#line 7171 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7012 "asmparse.cpp.tab.c" +#line 7177 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7018 "asmparse.cpp.tab.c" +#line 7183 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7024 "asmparse.cpp.tab.c" +#line 7189 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7030 "asmparse.cpp.tab.c" +#line 7195 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7036 "asmparse.cpp.tab.c" +#line 7201 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7042 "asmparse.cpp.tab.c" +#line 7207 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7048 "asmparse.cpp.tab.c" +#line 7213 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7054 "asmparse.cpp.tab.c" +#line 7219 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7060 "asmparse.cpp.tab.c" +#line 7225 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7066 "asmparse.cpp.tab.c" +#line 7231 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7072 "asmparse.cpp.tab.c" +#line 7237 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7078 "asmparse.cpp.tab.c" +#line 7243 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7084 "asmparse.cpp.tab.c" +#line 7249 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7090 "asmparse.cpp.tab.c" +#line 7255 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7096 "asmparse.cpp.tab.c" +#line 7261 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7102 "asmparse.cpp.tab.c" +#line 7267 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7108 "asmparse.cpp.tab.c" +#line 7273 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7114 "asmparse.cpp.tab.c" +#line 7279 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7120 "asmparse.cpp.tab.c" +#line 7285 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7126 "asmparse.cpp.tab.c" +#line 7291 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7132 "asmparse.cpp.tab.c" +#line 7297 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7138 "asmparse.cpp.tab.c" +#line 7303 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7144 "asmparse.cpp.tab.c" +#line 7309 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7150 "asmparse.cpp.tab.c" +#line 7315 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7156 "asmparse.cpp.tab.c" +#line 7321 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7161,43 +7326,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7165 "asmparse.cpp.tab.c" +#line 7330 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7171 "asmparse.cpp.tab.c" +#line 7336 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7177 "asmparse.cpp.tab.c" +#line 7342 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7183 "asmparse.cpp.tab.c" +#line 7348 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7189 "asmparse.cpp.tab.c" +#line 7354 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7195 "asmparse.cpp.tab.c" +#line 7360 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7201 "asmparse.cpp.tab.c" +#line 7366 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7207,7 +7372,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7211 "asmparse.cpp.tab.c" +#line 7376 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7220,7 +7385,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7224 "asmparse.cpp.tab.c" +#line 7389 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7230,7 +7395,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7234 "asmparse.cpp.tab.c" +#line 7399 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7241,19 +7406,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7245 "asmparse.cpp.tab.c" +#line 7410 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7251 "asmparse.cpp.tab.c" +#line 7416 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7257 "asmparse.cpp.tab.c" +#line 7422 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7262,146 +7427,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7266 "asmparse.cpp.tab.c" +#line 7431 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7273 "asmparse.cpp.tab.c" +#line 7438 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7279 "asmparse.cpp.tab.c" +#line 7444 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7285 "asmparse.cpp.tab.c" +#line 7450 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7291 "asmparse.cpp.tab.c" +#line 7456 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7297 "asmparse.cpp.tab.c" +#line 7462 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7303 "asmparse.cpp.tab.c" +#line 7468 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7309 "asmparse.cpp.tab.c" +#line 7474 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7315 "asmparse.cpp.tab.c" +#line 7480 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7321 "asmparse.cpp.tab.c" +#line 7486 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7327 "asmparse.cpp.tab.c" +#line 7492 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7333 "asmparse.cpp.tab.c" +#line 7498 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7339 "asmparse.cpp.tab.c" +#line 7504 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7345 "asmparse.cpp.tab.c" +#line 7510 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7351 "asmparse.cpp.tab.c" +#line 7516 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7357 "asmparse.cpp.tab.c" +#line 7522 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7363 "asmparse.cpp.tab.c" +#line 7528 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7369 "asmparse.cpp.tab.c" +#line 7534 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7375 "asmparse.cpp.tab.c" +#line 7540 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7381 "asmparse.cpp.tab.c" +#line 7546 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7387 "asmparse.cpp.tab.c" +#line 7552 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7393 "asmparse.cpp.tab.c" +#line 7558 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7399 "asmparse.cpp.tab.c" +#line 7564 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7405 "asmparse.cpp.tab.c" +#line 7570 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7422,7 +7587,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7426 "asmparse.cpp.tab.c" +#line 7591 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7432,7 +7597,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7436 "asmparse.cpp.tab.c" +#line 7601 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7452,7 +7617,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7456 "asmparse.cpp.tab.c" +#line 7621 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7461,103 +7626,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7465 "asmparse.cpp.tab.c" +#line 7630 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7471 "asmparse.cpp.tab.c" +#line 7636 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7477 "asmparse.cpp.tab.c" +#line 7642 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7483 "asmparse.cpp.tab.c" +#line 7648 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7489 "asmparse.cpp.tab.c" +#line 7654 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7495 "asmparse.cpp.tab.c" +#line 7660 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7501 "asmparse.cpp.tab.c" +#line 7666 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7507 "asmparse.cpp.tab.c" +#line 7672 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7513 "asmparse.cpp.tab.c" +#line 7678 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7519 "asmparse.cpp.tab.c" +#line 7684 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7525 "asmparse.cpp.tab.c" +#line 7690 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7531 "asmparse.cpp.tab.c" +#line 7696 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7537 "asmparse.cpp.tab.c" +#line 7702 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7543 "asmparse.cpp.tab.c" +#line 7708 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7549 "asmparse.cpp.tab.c" +#line 7714 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7555 "asmparse.cpp.tab.c" +#line 7720 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7561 "asmparse.cpp.tab.c" +#line 7726 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7567,7 +7732,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7571 "asmparse.cpp.tab.c" +#line 7736 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7575,7 +7740,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7579 "asmparse.cpp.tab.c" +#line 7744 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7583,82 +7748,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7587 "asmparse.cpp.tab.c" +#line 7752 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7594 "asmparse.cpp.tab.c" +#line 7759 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7601 "asmparse.cpp.tab.c" +#line 7766 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7608 "asmparse.cpp.tab.c" +#line 7773 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7614 "asmparse.cpp.tab.c" +#line 7779 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7620 "asmparse.cpp.tab.c" +#line 7785 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7626 "asmparse.cpp.tab.c" +#line 7791 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7632 "asmparse.cpp.tab.c" +#line 7797 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7638 "asmparse.cpp.tab.c" +#line 7803 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7644 "asmparse.cpp.tab.c" +#line 7809 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7650 "asmparse.cpp.tab.c" +#line 7815 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7656 "asmparse.cpp.tab.c" +#line 7821 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7662 "asmparse.cpp.tab.c" +#line 7827 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7666,43 +7831,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7670 "asmparse.cpp.tab.c" +#line 7835 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7676 "asmparse.cpp.tab.c" +#line 7841 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7682 "asmparse.cpp.tab.c" +#line 7847 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7688 "asmparse.cpp.tab.c" +#line 7853 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7694 "asmparse.cpp.tab.c" +#line 7859 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7700 "asmparse.cpp.tab.c" +#line 7865 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7706 "asmparse.cpp.tab.c" +#line 7871 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7711,37 +7876,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7715 "asmparse.cpp.tab.c" +#line 7880 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7721 "asmparse.cpp.tab.c" +#line 7886 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7727 "asmparse.cpp.tab.c" +#line 7892 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7733 "asmparse.cpp.tab.c" +#line 7898 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7739 "asmparse.cpp.tab.c" +#line 7904 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7745 "asmparse.cpp.tab.c" +#line 7910 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7759,420 +7924,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7763 "asmparse.cpp.tab.c" +#line 7928 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7769 "asmparse.cpp.tab.c" +#line 7934 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7775 "asmparse.cpp.tab.c" +#line 7940 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7781 "asmparse.cpp.tab.c" +#line 7946 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7787 "asmparse.cpp.tab.c" +#line 7952 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7793 "asmparse.cpp.tab.c" +#line 7958 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7799 "asmparse.cpp.tab.c" +#line 7964 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7805 "asmparse.cpp.tab.c" +#line 7970 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7811 "asmparse.cpp.tab.c" +#line 7976 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7817 "asmparse.cpp.tab.c" +#line 7982 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7823 "asmparse.cpp.tab.c" +#line 7988 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7829 "asmparse.cpp.tab.c" +#line 7994 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7835 "asmparse.cpp.tab.c" +#line 8000 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7841 "asmparse.cpp.tab.c" +#line 8006 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7847 "asmparse.cpp.tab.c" +#line 8012 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7853 "asmparse.cpp.tab.c" +#line 8018 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7859 "asmparse.cpp.tab.c" +#line 8024 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 7865 "asmparse.cpp.tab.c" +#line 8030 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7871 "asmparse.cpp.tab.c" +#line 8036 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7877 "asmparse.cpp.tab.c" +#line 8042 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7883 "asmparse.cpp.tab.c" +#line 8048 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7890 "asmparse.cpp.tab.c" +#line 8055 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7897 "asmparse.cpp.tab.c" +#line 8062 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7904 "asmparse.cpp.tab.c" +#line 8069 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7910 "asmparse.cpp.tab.c" +#line 8075 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7916 "asmparse.cpp.tab.c" +#line 8081 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7922 "asmparse.cpp.tab.c" +#line 8087 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7928 "asmparse.cpp.tab.c" +#line 8093 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7934 "asmparse.cpp.tab.c" +#line 8099 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7940 "asmparse.cpp.tab.c" +#line 8105 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 7946 "asmparse.cpp.tab.c" +#line 8111 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 7952 "asmparse.cpp.tab.c" +#line 8117 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 7958 "asmparse.cpp.tab.c" +#line 8123 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 7964 "asmparse.cpp.tab.c" +#line 8129 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 7970 "asmparse.cpp.tab.c" +#line 8135 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 7976 "asmparse.cpp.tab.c" +#line 8141 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 7982 "asmparse.cpp.tab.c" +#line 8147 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 7988 "asmparse.cpp.tab.c" +#line 8153 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 7994 "asmparse.cpp.tab.c" +#line 8159 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8000 "asmparse.cpp.tab.c" +#line 8165 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8006 "asmparse.cpp.tab.c" +#line 8171 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8012 "asmparse.cpp.tab.c" +#line 8177 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8018 "asmparse.cpp.tab.c" +#line 8183 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8024 "asmparse.cpp.tab.c" +#line 8189 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8030 "asmparse.cpp.tab.c" +#line 8195 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8036 "asmparse.cpp.tab.c" +#line 8201 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8042 "asmparse.cpp.tab.c" +#line 8207 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8048 "asmparse.cpp.tab.c" +#line 8213 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8054 "asmparse.cpp.tab.c" +#line 8219 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8060 "asmparse.cpp.tab.c" +#line 8225 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8066 "asmparse.cpp.tab.c" +#line 8231 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8072 "asmparse.cpp.tab.c" +#line 8237 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8078 "asmparse.cpp.tab.c" +#line 8243 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8084 "asmparse.cpp.tab.c" +#line 8249 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8090 "asmparse.cpp.tab.c" +#line 8255 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8096 "asmparse.cpp.tab.c" +#line 8261 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8102 "asmparse.cpp.tab.c" +#line 8267 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8108 "asmparse.cpp.tab.c" +#line 8273 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8114 "asmparse.cpp.tab.c" +#line 8279 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8120 "asmparse.cpp.tab.c" +#line 8285 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8126 "asmparse.cpp.tab.c" +#line 8291 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8132 "asmparse.cpp.tab.c" +#line 8297 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8138 "asmparse.cpp.tab.c" +#line 8303 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8144 "asmparse.cpp.tab.c" +#line 8309 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8151 "asmparse.cpp.tab.c" +#line 8316 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8157 "asmparse.cpp.tab.c" +#line 8322 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8163 "asmparse.cpp.tab.c" +#line 8328 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8169 "asmparse.cpp.tab.c" +#line 8334 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8176 "asmparse.cpp.tab.c" +#line 8341 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8180,25 +8345,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8184 "asmparse.cpp.tab.c" +#line 8349 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8190 "asmparse.cpp.tab.c" +#line 8355 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8196 "asmparse.cpp.tab.c" +#line 8361 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8202 "asmparse.cpp.tab.c" +#line 8367 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8213,7 +8378,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8217 "asmparse.cpp.tab.c" +#line 8382 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8228,20 +8393,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8232 "asmparse.cpp.tab.c" +#line 8397 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8239 "asmparse.cpp.tab.c" +#line 8404 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8245 "asmparse.cpp.tab.c" +#line 8410 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8252,7 +8417,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8256 "asmparse.cpp.tab.c" +#line 8421 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8262,7 +8427,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8266 "asmparse.cpp.tab.c" +#line 8431 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8273,19 +8438,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8277 "asmparse.cpp.tab.c" +#line 8442 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8283 "asmparse.cpp.tab.c" +#line 8448 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8289 "asmparse.cpp.tab.c" +#line 8454 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8308,96 +8473,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8312 "asmparse.cpp.tab.c" +#line 8477 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8318 "asmparse.cpp.tab.c" +#line 8483 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8324 "asmparse.cpp.tab.c" +#line 8489 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8330 "asmparse.cpp.tab.c" +#line 8495 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8336 "asmparse.cpp.tab.c" +#line 8501 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8343 "asmparse.cpp.tab.c" +#line 8508 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8350 "asmparse.cpp.tab.c" +#line 8515 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8356 "asmparse.cpp.tab.c" +#line 8521 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8362 "asmparse.cpp.tab.c" +#line 8527 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8368 "asmparse.cpp.tab.c" +#line 8533 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8374 "asmparse.cpp.tab.c" +#line 8539 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8380 "asmparse.cpp.tab.c" +#line 8545 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8387 "asmparse.cpp.tab.c" +#line 8552 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8394 "asmparse.cpp.tab.c" +#line 8559 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8401 "asmparse.cpp.tab.c" +#line 8566 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8405,70 +8570,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8409 "asmparse.cpp.tab.c" +#line 8574 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8416 "asmparse.cpp.tab.c" +#line 8581 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8423 "asmparse.cpp.tab.c" +#line 8588 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8429 "asmparse.cpp.tab.c" +#line 8594 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8435 "asmparse.cpp.tab.c" +#line 8600 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8442 "asmparse.cpp.tab.c" +#line 8607 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8448 "asmparse.cpp.tab.c" +#line 8613 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8454 "asmparse.cpp.tab.c" +#line 8619 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8460 "asmparse.cpp.tab.c" +#line 8625 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8466 "asmparse.cpp.tab.c" +#line 8631 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8472 "asmparse.cpp.tab.c" +#line 8637 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8476,25 +8641,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8480 "asmparse.cpp.tab.c" +#line 8645 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8486 "asmparse.cpp.tab.c" +#line 8651 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8492 "asmparse.cpp.tab.c" +#line 8657 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8498 "asmparse.cpp.tab.c" +#line 8663 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8505,7 +8670,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8509 "asmparse.cpp.tab.c" +#line 8674 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8516,7 +8681,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8520 "asmparse.cpp.tab.c" +#line 8685 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8527,7 +8692,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8531 "asmparse.cpp.tab.c" +#line 8696 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8538,7 +8703,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8542 "asmparse.cpp.tab.c" +#line 8707 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8550,7 +8715,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8554 "asmparse.cpp.tab.c" +#line 8719 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8562,43 +8727,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8566 "asmparse.cpp.tab.c" +#line 8731 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8572 "asmparse.cpp.tab.c" +#line 8737 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8578 "asmparse.cpp.tab.c" +#line 8743 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8584 "asmparse.cpp.tab.c" +#line 8749 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8590 "asmparse.cpp.tab.c" +#line 8755 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8596 "asmparse.cpp.tab.c" +#line 8761 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8602 "asmparse.cpp.tab.c" +#line 8767 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8606,227 +8771,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8610 "asmparse.cpp.tab.c" +#line 8775 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8617 "asmparse.cpp.tab.c" +#line 8782 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8624 "asmparse.cpp.tab.c" +#line 8789 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8631 "asmparse.cpp.tab.c" +#line 8796 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8638 "asmparse.cpp.tab.c" +#line 8803 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8645 "asmparse.cpp.tab.c" +#line 8810 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8652 "asmparse.cpp.tab.c" +#line 8817 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8659 "asmparse.cpp.tab.c" +#line 8824 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8666 "asmparse.cpp.tab.c" +#line 8831 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8673 "asmparse.cpp.tab.c" +#line 8838 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8680 "asmparse.cpp.tab.c" +#line 8845 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8687 "asmparse.cpp.tab.c" +#line 8852 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8694 "asmparse.cpp.tab.c" +#line 8859 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8701 "asmparse.cpp.tab.c" +#line 8866 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8708 "asmparse.cpp.tab.c" +#line 8873 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8715 "asmparse.cpp.tab.c" +#line 8880 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8722 "asmparse.cpp.tab.c" +#line 8887 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8729 "asmparse.cpp.tab.c" +#line 8894 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8736 "asmparse.cpp.tab.c" +#line 8901 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8742 "asmparse.cpp.tab.c" +#line 8907 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8748 "asmparse.cpp.tab.c" +#line 8913 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8754 "asmparse.cpp.tab.c" +#line 8919 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8760 "asmparse.cpp.tab.c" +#line 8925 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8766 "asmparse.cpp.tab.c" +#line 8931 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8772 "asmparse.cpp.tab.c" +#line 8937 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8778 "asmparse.cpp.tab.c" +#line 8943 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8785 "asmparse.cpp.tab.c" +#line 8950 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8791 "asmparse.cpp.tab.c" +#line 8956 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8797 "asmparse.cpp.tab.c" +#line 8962 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8804 "asmparse.cpp.tab.c" +#line 8969 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8811 "asmparse.cpp.tab.c" +#line 8976 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8818 "asmparse.cpp.tab.c" +#line 8983 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8824 "asmparse.cpp.tab.c" +#line 8989 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8830 "asmparse.cpp.tab.c" +#line 8995 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -8834,7 +8999,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8838 "asmparse.cpp.tab.c" +#line 9003 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -8842,7 +9007,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8846 "asmparse.cpp.tab.c" +#line 9011 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -8850,7 +9015,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8854 "asmparse.cpp.tab.c" +#line 9019 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -8858,7 +9023,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8862 "asmparse.cpp.tab.c" +#line 9027 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -8866,7 +9031,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8870 "asmparse.cpp.tab.c" +#line 9035 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -8874,7 +9039,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8878 "asmparse.cpp.tab.c" +#line 9043 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -8882,7 +9047,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8886 "asmparse.cpp.tab.c" +#line 9051 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -8890,7 +9055,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8894 "asmparse.cpp.tab.c" +#line 9059 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -8898,7 +9063,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8902 "asmparse.cpp.tab.c" +#line 9067 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -8906,7 +9071,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8910 "asmparse.cpp.tab.c" +#line 9075 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -8914,7 +9079,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8918 "asmparse.cpp.tab.c" +#line 9083 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -8922,7 +9087,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8926 "asmparse.cpp.tab.c" +#line 9091 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -8930,7 +9095,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8934 "asmparse.cpp.tab.c" +#line 9099 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -8938,7 +9103,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8942 "asmparse.cpp.tab.c" +#line 9107 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -8946,7 +9111,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8950 "asmparse.cpp.tab.c" +#line 9115 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -8954,7 +9119,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8958 "asmparse.cpp.tab.c" +#line 9123 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -8962,7 +9127,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8966 "asmparse.cpp.tab.c" +#line 9131 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -8970,7 +9135,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8974 "asmparse.cpp.tab.c" +#line 9139 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -8978,166 +9143,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8982 "asmparse.cpp.tab.c" +#line 9147 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8988 "asmparse.cpp.tab.c" +#line 9153 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 8995 "asmparse.cpp.tab.c" +#line 9160 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9002 "asmparse.cpp.tab.c" +#line 9167 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9008 "asmparse.cpp.tab.c" +#line 9173 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9015 "asmparse.cpp.tab.c" +#line 9180 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9022 "asmparse.cpp.tab.c" +#line 9187 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9028 "asmparse.cpp.tab.c" +#line 9193 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9035 "asmparse.cpp.tab.c" +#line 9200 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9041 "asmparse.cpp.tab.c" +#line 9206 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9047 "asmparse.cpp.tab.c" +#line 9212 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9053 "asmparse.cpp.tab.c" +#line 9218 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9059 "asmparse.cpp.tab.c" +#line 9224 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9065 "asmparse.cpp.tab.c" +#line 9230 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9071 "asmparse.cpp.tab.c" +#line 9236 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9077 "asmparse.cpp.tab.c" +#line 9242 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9084 "asmparse.cpp.tab.c" +#line 9249 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9090 "asmparse.cpp.tab.c" +#line 9255 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9096 "asmparse.cpp.tab.c" +#line 9261 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9103 "asmparse.cpp.tab.c" +#line 9268 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9109 "asmparse.cpp.tab.c" +#line 9274 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9115 "asmparse.cpp.tab.c" +#line 9280 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9122 "asmparse.cpp.tab.c" +#line 9287 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9129 "asmparse.cpp.tab.c" +#line 9294 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9135 "asmparse.cpp.tab.c" +#line 9300 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9141 "asmparse.cpp.tab.c" +#line 9306 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9146,142 +9311,160 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9150 "asmparse.cpp.tab.c" +#line 9315 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9156 "asmparse.cpp.tab.c" +#line 9321 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9162 "asmparse.cpp.tab.c" +#line 9327 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9168 "asmparse.cpp.tab.c" +#line 9333 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9174 "asmparse.cpp.tab.c" +#line 9339 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9180 "asmparse.cpp.tab.c" +#line 9345 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9186 "asmparse.cpp.tab.c" +#line 9351 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 9357 "asmparse.cpp.tab.c" +break; +case 503: + if (!yytrial) +#line 1349 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); if((!PASM->OnErrGo)&& ((yyvsp[0].opcode == CEE_NEWOBJ)|| (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9197 "asmparse.cpp.tab.c" -break; -case 503: - if (!yytrial) -#line 1354 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9203 "asmparse.cpp.tab.c" +#line 9368 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9209 "asmparse.cpp.tab.c" +#line 9374 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9215 "asmparse.cpp.tab.c" +#line 9380 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9221 "asmparse.cpp.tab.c" +#line 9386 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9227 "asmparse.cpp.tab.c" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 9392 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9233 "asmparse.cpp.tab.c" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } +#line 9398 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" -{ yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9239 "asmparse.cpp.tab.c" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 9404 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) -#line 1376 "asmparse.y" -{ PASM->EmitOpcode(yyvsp[0].instr); } -#line 9245 "asmparse.cpp.tab.c" +#line 1375 "asmparse.y" +{ yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } +#line 9410 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) -#line 1377 "asmparse.y" -{ PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9251 "asmparse.cpp.tab.c" +#line 1379 "asmparse.y" +{ PASM->EmitOpcode(yyvsp[0].instr); } +#line 9416 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) -#line 1378 "asmparse.y" -{ PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9257 "asmparse.cpp.tab.c" +#line 1380 "asmparse.y" +{ PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9422 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) -#line 1379 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9263 "asmparse.cpp.tab.c" +#line 1381 "asmparse.y" +{ PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } +#line 9428 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) -#line 1380 "asmparse.y" -{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9269 "asmparse.cpp.tab.c" +#line 1382 "asmparse.y" +{ PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } +#line 9434 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) -#line 1381 "asmparse.y" -{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9275 "asmparse.cpp.tab.c" +#line 1383 "asmparse.y" +{ PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } +#line 9440 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) -#line 1382 "asmparse.y" -{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9281 "asmparse.cpp.tab.c" +#line 1384 "asmparse.y" +{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9446 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) -#line 1383 "asmparse.y" +#line 1385 "asmparse.y" +{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } +#line 9452 "asmparse.cpp.tab.c" +break; +case 518: + if (!yytrial) +#line 1386 "asmparse.y" +{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} +#line 9458 "asmparse.cpp.tab.c" +break; +case 519: + if (!yytrial) +#line 1387 "asmparse.y" +{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } +#line 9464 "asmparse.cpp.tab.c" +break; +case 520: + if (!yytrial) +#line 1388 "asmparse.y" { unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -9291,34 +9474,34 @@ case 517: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9295 "asmparse.cpp.tab.c" +#line 9478 "asmparse.cpp.tab.c" break; -case 518: +case 521: if (!yytrial) -#line 1392 "asmparse.y" +#line 1397 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9301 "asmparse.cpp.tab.c" +#line 9484 "asmparse.cpp.tab.c" break; -case 519: +case 522: if (!yytrial) -#line 1393 "asmparse.y" +#line 1398 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9307 "asmparse.cpp.tab.c" +#line 9490 "asmparse.cpp.tab.c" break; -case 520: +case 523: if (!yytrial) -#line 1395 "asmparse.y" +#line 1400 "asmparse.y" { PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9318 "asmparse.cpp.tab.c" +#line 9501 "asmparse.cpp.tab.c" break; -case 521: +case 524: if (!yytrial) -#line 1402 "asmparse.y" +#line 1407 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); @@ -9326,11 +9509,11 @@ case 521: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9330 "asmparse.cpp.tab.c" +#line 9513 "asmparse.cpp.tab.c" break; -case 522: +case 525: if (!yytrial) -#line 1410 "asmparse.y" +#line 1415 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); @@ -9338,1073 +9521,1073 @@ case 522: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9342 "asmparse.cpp.tab.c" +#line 9525 "asmparse.cpp.tab.c" break; -case 523: +case 526: if (!yytrial) -#line 1417 "asmparse.y" +#line 1422 "asmparse.y" { mdToken mr = yyvsp[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9353 "asmparse.cpp.tab.c" +#line 9536 "asmparse.cpp.tab.c" break; -case 524: +case 527: if (!yytrial) -#line 1423 "asmparse.y" +#line 1428 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9364 "asmparse.cpp.tab.c" +#line 9547 "asmparse.cpp.tab.c" break; -case 525: +case 528: if (!yytrial) -#line 1429 "asmparse.y" +#line 1434 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9375 "asmparse.cpp.tab.c" +#line 9558 "asmparse.cpp.tab.c" break; -case 526: +case 529: if (!yytrial) -#line 1435 "asmparse.y" +#line 1440 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9384 "asmparse.cpp.tab.c" +#line 9567 "asmparse.cpp.tab.c" break; -case 527: +case 530: if (!yytrial) -#line 1439 "asmparse.y" +#line 1444 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9390 "asmparse.cpp.tab.c" +#line 9573 "asmparse.cpp.tab.c" break; -case 528: +case 531: if (!yytrial) -#line 1441 "asmparse.y" +#line 1446 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9396 "asmparse.cpp.tab.c" +#line 9579 "asmparse.cpp.tab.c" break; -case 529: +case 532: if (!yytrial) -#line 1443 "asmparse.y" +#line 1448 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9402 "asmparse.cpp.tab.c" +#line 9585 "asmparse.cpp.tab.c" break; -case 530: +case 533: if (!yytrial) -#line 1445 "asmparse.y" +#line 1450 "asmparse.y" { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9410 "asmparse.cpp.tab.c" +#line 9593 "asmparse.cpp.tab.c" break; -case 531: +case 534: if (!yytrial) -#line 1449 "asmparse.y" +#line 1454 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9420 "asmparse.cpp.tab.c" +#line 9603 "asmparse.cpp.tab.c" break; -case 532: +case 535: if (!yytrial) -#line 1454 "asmparse.y" +#line 1459 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9426 "asmparse.cpp.tab.c" +#line 9609 "asmparse.cpp.tab.c" break; -case 533: +case 536: if (!yytrial) -#line 1457 "asmparse.y" +#line 1462 "asmparse.y" { yyval.labels = 0; } -#line 9432 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp.tab.c" break; -case 534: +case 537: if (!yytrial) -#line 1458 "asmparse.y" +#line 1463 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9438 "asmparse.cpp.tab.c" +#line 9621 "asmparse.cpp.tab.c" break; -case 535: +case 538: if (!yytrial) -#line 1459 "asmparse.y" +#line 1464 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9444 "asmparse.cpp.tab.c" +#line 9627 "asmparse.cpp.tab.c" break; -case 536: +case 539: if (!yytrial) -#line 1460 "asmparse.y" +#line 1465 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9450 "asmparse.cpp.tab.c" +#line 9633 "asmparse.cpp.tab.c" break; -case 537: +case 540: if (!yytrial) -#line 1461 "asmparse.y" +#line 1466 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9456 "asmparse.cpp.tab.c" +#line 9639 "asmparse.cpp.tab.c" break; -case 538: +case 541: if (!yytrial) -#line 1465 "asmparse.y" +#line 1470 "asmparse.y" { yyval.binstr = NULL; } -#line 9462 "asmparse.cpp.tab.c" +#line 9645 "asmparse.cpp.tab.c" break; -case 539: +case 542: if (!yytrial) -#line 1466 "asmparse.y" +#line 1471 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9468 "asmparse.cpp.tab.c" +#line 9651 "asmparse.cpp.tab.c" break; -case 540: +case 543: if (!yytrial) -#line 1469 "asmparse.y" +#line 1474 "asmparse.y" { yyval.binstr = NULL; } -#line 9474 "asmparse.cpp.tab.c" +#line 9657 "asmparse.cpp.tab.c" break; -case 541: +case 544: if (!yytrial) -#line 1470 "asmparse.y" +#line 1475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9480 "asmparse.cpp.tab.c" +#line 9663 "asmparse.cpp.tab.c" break; -case 542: +case 545: if (!yytrial) -#line 1473 "asmparse.y" +#line 1478 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9486 "asmparse.cpp.tab.c" +#line 9669 "asmparse.cpp.tab.c" break; -case 543: +case 546: if (!yytrial) -#line 1474 "asmparse.y" +#line 1479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9492 "asmparse.cpp.tab.c" +#line 9675 "asmparse.cpp.tab.c" break; -case 544: +case 547: if (!yytrial) -#line 1478 "asmparse.y" +#line 1483 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9498 "asmparse.cpp.tab.c" +#line 9681 "asmparse.cpp.tab.c" break; -case 545: +case 548: if (!yytrial) -#line 1479 "asmparse.y" +#line 1484 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9504 "asmparse.cpp.tab.c" +#line 9687 "asmparse.cpp.tab.c" break; -case 546: +case 549: if (!yytrial) -#line 1482 "asmparse.y" +#line 1487 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9510 "asmparse.cpp.tab.c" +#line 9693 "asmparse.cpp.tab.c" break; -case 547: +case 550: if (!yytrial) -#line 1483 "asmparse.y" +#line 1488 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9516 "asmparse.cpp.tab.c" +#line 9699 "asmparse.cpp.tab.c" break; -case 548: +case 551: if (!yytrial) -#line 1486 "asmparse.y" +#line 1491 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9522 "asmparse.cpp.tab.c" +#line 9705 "asmparse.cpp.tab.c" break; -case 549: +case 552: if (!yytrial) -#line 1487 "asmparse.y" +#line 1492 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9528 "asmparse.cpp.tab.c" +#line 9711 "asmparse.cpp.tab.c" break; -case 550: +case 553: if (!yytrial) -#line 1488 "asmparse.y" +#line 1493 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9534 "asmparse.cpp.tab.c" +#line 9717 "asmparse.cpp.tab.c" break; -case 551: +case 554: if (!yytrial) -#line 1492 "asmparse.y" +#line 1497 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9540 "asmparse.cpp.tab.c" +#line 9723 "asmparse.cpp.tab.c" break; -case 552: +case 555: if (!yytrial) -#line 1493 "asmparse.y" +#line 1498 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9546 "asmparse.cpp.tab.c" +#line 9729 "asmparse.cpp.tab.c" break; -case 553: +case 556: if (!yytrial) -#line 1494 "asmparse.y" +#line 1499 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9552 "asmparse.cpp.tab.c" +#line 9735 "asmparse.cpp.tab.c" break; -case 554: +case 557: if (!yytrial) -#line 1495 "asmparse.y" +#line 1500 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9558 "asmparse.cpp.tab.c" +#line 9741 "asmparse.cpp.tab.c" break; -case 555: +case 558: if (!yytrial) -#line 1496 "asmparse.y" +#line 1501 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9564 "asmparse.cpp.tab.c" +#line 9747 "asmparse.cpp.tab.c" break; -case 556: +case 559: if (!yytrial) -#line 1497 "asmparse.y" +#line 1502 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9570 "asmparse.cpp.tab.c" +#line 9753 "asmparse.cpp.tab.c" break; -case 557: +case 560: if (!yytrial) -#line 1498 "asmparse.y" +#line 1503 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9576 "asmparse.cpp.tab.c" +#line 9759 "asmparse.cpp.tab.c" break; -case 558: +case 561: if (!yytrial) -#line 1499 "asmparse.y" +#line 1504 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9584 "asmparse.cpp.tab.c" +#line 9767 "asmparse.cpp.tab.c" break; -case 559: +case 562: if (!yytrial) -#line 1502 "asmparse.y" +#line 1507 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9595 "asmparse.cpp.tab.c" +#line 9778 "asmparse.cpp.tab.c" break; -case 560: +case 563: if (!yytrial) -#line 1508 "asmparse.y" +#line 1513 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9605 "asmparse.cpp.tab.c" +#line 9788 "asmparse.cpp.tab.c" break; -case 561: +case 564: if (!yytrial) -#line 1515 "asmparse.y" +#line 1520 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9611 "asmparse.cpp.tab.c" +#line 9794 "asmparse.cpp.tab.c" break; -case 562: +case 565: if (!yytrial) -#line 1516 "asmparse.y" +#line 1521 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9617 "asmparse.cpp.tab.c" +#line 9800 "asmparse.cpp.tab.c" break; -case 563: +case 566: if (!yytrial) -#line 1519 "asmparse.y" +#line 1524 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9623 "asmparse.cpp.tab.c" +#line 9806 "asmparse.cpp.tab.c" break; -case 564: +case 567: if (!yytrial) -#line 1520 "asmparse.y" +#line 1525 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9629 "asmparse.cpp.tab.c" +#line 9812 "asmparse.cpp.tab.c" break; -case 565: +case 568: if (!yytrial) -#line 1521 "asmparse.y" +#line 1526 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9635 "asmparse.cpp.tab.c" +#line 9818 "asmparse.cpp.tab.c" break; -case 566: +case 569: if (!yytrial) -#line 1522 "asmparse.y" +#line 1527 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9641 "asmparse.cpp.tab.c" +#line 9824 "asmparse.cpp.tab.c" break; -case 567: +case 570: if (!yytrial) -#line 1526 "asmparse.y" +#line 1531 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9647 "asmparse.cpp.tab.c" +#line 9830 "asmparse.cpp.tab.c" break; -case 568: +case 571: if (!yytrial) -#line 1528 "asmparse.y" +#line 1533 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9658 "asmparse.cpp.tab.c" +#line 9841 "asmparse.cpp.tab.c" break; -case 569: +case 572: if (!yytrial) -#line 1535 "asmparse.y" +#line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9668 "asmparse.cpp.tab.c" +#line 9851 "asmparse.cpp.tab.c" break; -case 570: +case 573: if (!yytrial) -#line 1540 "asmparse.y" +#line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9675 "asmparse.cpp.tab.c" +#line 9858 "asmparse.cpp.tab.c" break; -case 571: +case 574: if (!yytrial) -#line 1543 "asmparse.y" +#line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9682 "asmparse.cpp.tab.c" +#line 9865 "asmparse.cpp.tab.c" break; -case 572: +case 575: if (!yytrial) -#line 1545 "asmparse.y" +#line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9689 "asmparse.cpp.tab.c" +#line 9872 "asmparse.cpp.tab.c" break; -case 573: +case 576: if (!yytrial) -#line 1547 "asmparse.y" +#line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9695 "asmparse.cpp.tab.c" +#line 9878 "asmparse.cpp.tab.c" break; -case 574: +case 577: if (!yytrial) -#line 1548 "asmparse.y" +#line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9702 "asmparse.cpp.tab.c" +#line 9885 "asmparse.cpp.tab.c" break; -case 575: +case 578: if (!yytrial) -#line 1550 "asmparse.y" +#line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9709 "asmparse.cpp.tab.c" +#line 9892 "asmparse.cpp.tab.c" break; -case 576: +case 579: if (!yytrial) -#line 1552 "asmparse.y" +#line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9715 "asmparse.cpp.tab.c" +#line 9898 "asmparse.cpp.tab.c" break; -case 577: +case 580: if (!yytrial) -#line 1553 "asmparse.y" +#line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9721 "asmparse.cpp.tab.c" +#line 9904 "asmparse.cpp.tab.c" break; -case 578: +case 581: if (!yytrial) -#line 1554 "asmparse.y" +#line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9727 "asmparse.cpp.tab.c" +#line 9910 "asmparse.cpp.tab.c" break; -case 579: +case 582: if (!yytrial) -#line 1555 "asmparse.y" +#line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9733 "asmparse.cpp.tab.c" +#line 9916 "asmparse.cpp.tab.c" break; -case 580: +case 583: if (!yytrial) -#line 1556 "asmparse.y" +#line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9739 "asmparse.cpp.tab.c" +#line 9922 "asmparse.cpp.tab.c" break; -case 581: +case 584: if (!yytrial) -#line 1557 "asmparse.y" +#line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9745 "asmparse.cpp.tab.c" +#line 9928 "asmparse.cpp.tab.c" break; -case 582: +case 585: if (!yytrial) -#line 1558 "asmparse.y" +#line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9751 "asmparse.cpp.tab.c" +#line 9934 "asmparse.cpp.tab.c" break; -case 583: +case 586: if (!yytrial) -#line 1559 "asmparse.y" +#line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9757 "asmparse.cpp.tab.c" +#line 9940 "asmparse.cpp.tab.c" break; -case 584: +case 587: if (!yytrial) -#line 1560 "asmparse.y" +#line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9763 "asmparse.cpp.tab.c" +#line 9946 "asmparse.cpp.tab.c" break; -case 585: +case 588: if (!yytrial) -#line 1561 "asmparse.y" +#line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9769 "asmparse.cpp.tab.c" +#line 9952 "asmparse.cpp.tab.c" break; -case 586: +case 589: if (!yytrial) -#line 1562 "asmparse.y" +#line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9775 "asmparse.cpp.tab.c" +#line 9958 "asmparse.cpp.tab.c" break; -case 587: +case 590: if (!yytrial) -#line 1563 "asmparse.y" +#line 1568 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9781 "asmparse.cpp.tab.c" +#line 9964 "asmparse.cpp.tab.c" break; -case 588: +case 591: if (!yytrial) -#line 1564 "asmparse.y" +#line 1569 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9787 "asmparse.cpp.tab.c" +#line 9970 "asmparse.cpp.tab.c" break; -case 589: +case 592: if (!yytrial) -#line 1565 "asmparse.y" +#line 1570 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9793 "asmparse.cpp.tab.c" +#line 9976 "asmparse.cpp.tab.c" break; -case 590: +case 593: if (!yytrial) -#line 1566 "asmparse.y" +#line 1571 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9799 "asmparse.cpp.tab.c" +#line 9982 "asmparse.cpp.tab.c" break; -case 591: +case 594: if (!yytrial) -#line 1567 "asmparse.y" +#line 1572 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9805 "asmparse.cpp.tab.c" +#line 9988 "asmparse.cpp.tab.c" break; -case 592: +case 595: if (!yytrial) -#line 1568 "asmparse.y" +#line 1573 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 9812 "asmparse.cpp.tab.c" +#line 9995 "asmparse.cpp.tab.c" break; -case 593: +case 596: if (!yytrial) -#line 1570 "asmparse.y" +#line 1575 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9819 "asmparse.cpp.tab.c" +#line 10002 "asmparse.cpp.tab.c" break; -case 594: +case 597: if (!yytrial) -#line 1572 "asmparse.y" +#line 1577 "asmparse.y" { yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 9829 "asmparse.cpp.tab.c" +#line 10012 "asmparse.cpp.tab.c" break; -case 595: +case 598: if (!yytrial) -#line 1577 "asmparse.y" +#line 1582 "asmparse.y" { yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9839 "asmparse.cpp.tab.c" +#line 10022 "asmparse.cpp.tab.c" break; -case 596: +case 599: if (!yytrial) -#line 1582 "asmparse.y" +#line 1587 "asmparse.y" { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9847 "asmparse.cpp.tab.c" +#line 10030 "asmparse.cpp.tab.c" break; -case 597: +case 600: if (!yytrial) -#line 1585 "asmparse.y" +#line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9854 "asmparse.cpp.tab.c" +#line 10037 "asmparse.cpp.tab.c" break; -case 598: +case 601: if (!yytrial) -#line 1587 "asmparse.y" +#line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9861 "asmparse.cpp.tab.c" +#line 10044 "asmparse.cpp.tab.c" break; -case 599: +case 602: if (!yytrial) -#line 1589 "asmparse.y" +#line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9867 "asmparse.cpp.tab.c" +#line 10050 "asmparse.cpp.tab.c" break; -case 600: +case 603: if (!yytrial) -#line 1590 "asmparse.y" +#line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9873 "asmparse.cpp.tab.c" +#line 10056 "asmparse.cpp.tab.c" break; -case 601: +case 604: if (!yytrial) -#line 1591 "asmparse.y" +#line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9879 "asmparse.cpp.tab.c" +#line 10062 "asmparse.cpp.tab.c" break; -case 602: +case 605: if (!yytrial) -#line 1592 "asmparse.y" +#line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9885 "asmparse.cpp.tab.c" +#line 10068 "asmparse.cpp.tab.c" break; -case 603: +case 606: if (!yytrial) -#line 1593 "asmparse.y" +#line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9892 "asmparse.cpp.tab.c" +#line 10075 "asmparse.cpp.tab.c" break; -case 604: +case 607: if (!yytrial) -#line 1595 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9899 "asmparse.cpp.tab.c" +#line 10082 "asmparse.cpp.tab.c" break; -case 605: +case 608: if (!yytrial) -#line 1597 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9906 "asmparse.cpp.tab.c" +#line 10089 "asmparse.cpp.tab.c" break; -case 606: +case 609: if (!yytrial) -#line 1599 "asmparse.y" +#line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9912 "asmparse.cpp.tab.c" +#line 10095 "asmparse.cpp.tab.c" break; -case 607: +case 610: if (!yytrial) -#line 1600 "asmparse.y" +#line 1605 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9919 "asmparse.cpp.tab.c" +#line 10102 "asmparse.cpp.tab.c" break; -case 608: +case 611: if (!yytrial) -#line 1602 "asmparse.y" +#line 1607 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 9927 "asmparse.cpp.tab.c" +#line 10110 "asmparse.cpp.tab.c" break; -case 609: +case 612: if (!yytrial) -#line 1605 "asmparse.y" +#line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9935 "asmparse.cpp.tab.c" +#line 10118 "asmparse.cpp.tab.c" break; -case 610: +case 613: if (!yytrial) -#line 1609 "asmparse.y" +#line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9941 "asmparse.cpp.tab.c" +#line 10124 "asmparse.cpp.tab.c" break; -case 611: +case 614: if (!yytrial) -#line 1610 "asmparse.y" +#line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9947 "asmparse.cpp.tab.c" +#line 10130 "asmparse.cpp.tab.c" break; -case 612: +case 615: if (!yytrial) -#line 1611 "asmparse.y" +#line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9953 "asmparse.cpp.tab.c" +#line 10136 "asmparse.cpp.tab.c" break; -case 613: +case 616: if (!yytrial) -#line 1612 "asmparse.y" +#line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 9960 "asmparse.cpp.tab.c" +#line 10143 "asmparse.cpp.tab.c" break; -case 614: +case 617: if (!yytrial) -#line 1614 "asmparse.y" +#line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 9966 "asmparse.cpp.tab.c" +#line 10149 "asmparse.cpp.tab.c" break; -case 615: +case 618: if (!yytrial) -#line 1615 "asmparse.y" +#line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 9972 "asmparse.cpp.tab.c" +#line 10155 "asmparse.cpp.tab.c" break; -case 616: +case 619: if (!yytrial) -#line 1616 "asmparse.y" +#line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 9978 "asmparse.cpp.tab.c" +#line 10161 "asmparse.cpp.tab.c" break; -case 617: +case 620: if (!yytrial) -#line 1617 "asmparse.y" +#line 1622 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 9984 "asmparse.cpp.tab.c" +#line 10167 "asmparse.cpp.tab.c" break; -case 618: +case 621: if (!yytrial) -#line 1618 "asmparse.y" +#line 1623 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 9990 "asmparse.cpp.tab.c" +#line 10173 "asmparse.cpp.tab.c" break; -case 619: +case 622: if (!yytrial) -#line 1619 "asmparse.y" +#line 1624 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 9996 "asmparse.cpp.tab.c" +#line 10179 "asmparse.cpp.tab.c" break; -case 620: +case 623: if (!yytrial) -#line 1620 "asmparse.y" +#line 1625 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10002 "asmparse.cpp.tab.c" +#line 10185 "asmparse.cpp.tab.c" break; -case 621: +case 624: if (!yytrial) -#line 1621 "asmparse.y" +#line 1626 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10008 "asmparse.cpp.tab.c" +#line 10191 "asmparse.cpp.tab.c" break; -case 622: +case 625: if (!yytrial) -#line 1624 "asmparse.y" +#line 1629 "asmparse.y" { yyval.int32 = -1; } -#line 10014 "asmparse.cpp.tab.c" +#line 10197 "asmparse.cpp.tab.c" break; -case 623: +case 626: if (!yytrial) -#line 1625 "asmparse.y" +#line 1630 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 10020 "asmparse.cpp.tab.c" +#line 10203 "asmparse.cpp.tab.c" break; -case 624: +case 627: if (!yytrial) -#line 1628 "asmparse.y" +#line 1633 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 10026 "asmparse.cpp.tab.c" +#line 10209 "asmparse.cpp.tab.c" break; -case 625: +case 628: if (!yytrial) -#line 1629 "asmparse.y" +#line 1634 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 10032 "asmparse.cpp.tab.c" +#line 10215 "asmparse.cpp.tab.c" break; -case 626: +case 629: if (!yytrial) -#line 1630 "asmparse.y" +#line 1635 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 10038 "asmparse.cpp.tab.c" +#line 10221 "asmparse.cpp.tab.c" break; -case 627: +case 630: if (!yytrial) -#line 1631 "asmparse.y" +#line 1636 "asmparse.y" { yyval.int32 = VT_CY; } -#line 10044 "asmparse.cpp.tab.c" +#line 10227 "asmparse.cpp.tab.c" break; -case 628: +case 631: if (!yytrial) -#line 1632 "asmparse.y" +#line 1637 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 10050 "asmparse.cpp.tab.c" +#line 10233 "asmparse.cpp.tab.c" break; -case 629: +case 632: if (!yytrial) -#line 1633 "asmparse.y" +#line 1638 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 10056 "asmparse.cpp.tab.c" +#line 10239 "asmparse.cpp.tab.c" break; -case 630: +case 633: if (!yytrial) -#line 1634 "asmparse.y" +#line 1639 "asmparse.y" { yyval.int32 = VT_I1; } -#line 10062 "asmparse.cpp.tab.c" +#line 10245 "asmparse.cpp.tab.c" break; -case 631: +case 634: if (!yytrial) -#line 1635 "asmparse.y" +#line 1640 "asmparse.y" { yyval.int32 = VT_I2; } -#line 10068 "asmparse.cpp.tab.c" +#line 10251 "asmparse.cpp.tab.c" break; -case 632: +case 635: if (!yytrial) -#line 1636 "asmparse.y" +#line 1641 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10074 "asmparse.cpp.tab.c" +#line 10257 "asmparse.cpp.tab.c" break; -case 633: +case 636: if (!yytrial) -#line 1637 "asmparse.y" +#line 1642 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10080 "asmparse.cpp.tab.c" +#line 10263 "asmparse.cpp.tab.c" break; -case 634: +case 637: if (!yytrial) -#line 1638 "asmparse.y" +#line 1643 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10086 "asmparse.cpp.tab.c" +#line 10269 "asmparse.cpp.tab.c" break; -case 635: +case 638: if (!yytrial) -#line 1639 "asmparse.y" +#line 1644 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10092 "asmparse.cpp.tab.c" +#line 10275 "asmparse.cpp.tab.c" break; -case 636: +case 639: if (!yytrial) -#line 1640 "asmparse.y" +#line 1645 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10098 "asmparse.cpp.tab.c" +#line 10281 "asmparse.cpp.tab.c" break; -case 637: +case 640: if (!yytrial) -#line 1641 "asmparse.y" +#line 1646 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10104 "asmparse.cpp.tab.c" +#line 10287 "asmparse.cpp.tab.c" break; -case 638: +case 641: if (!yytrial) -#line 1642 "asmparse.y" +#line 1647 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10110 "asmparse.cpp.tab.c" +#line 10293 "asmparse.cpp.tab.c" break; -case 639: +case 642: if (!yytrial) -#line 1643 "asmparse.y" +#line 1648 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10116 "asmparse.cpp.tab.c" +#line 10299 "asmparse.cpp.tab.c" break; -case 640: +case 643: if (!yytrial) -#line 1644 "asmparse.y" +#line 1649 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10122 "asmparse.cpp.tab.c" +#line 10305 "asmparse.cpp.tab.c" break; -case 641: +case 644: if (!yytrial) -#line 1645 "asmparse.y" +#line 1650 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10128 "asmparse.cpp.tab.c" +#line 10311 "asmparse.cpp.tab.c" break; -case 642: +case 645: if (!yytrial) -#line 1646 "asmparse.y" +#line 1651 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10134 "asmparse.cpp.tab.c" +#line 10317 "asmparse.cpp.tab.c" break; -case 643: +case 646: if (!yytrial) -#line 1647 "asmparse.y" +#line 1652 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10140 "asmparse.cpp.tab.c" +#line 10323 "asmparse.cpp.tab.c" break; -case 644: +case 647: if (!yytrial) -#line 1648 "asmparse.y" +#line 1653 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10146 "asmparse.cpp.tab.c" +#line 10329 "asmparse.cpp.tab.c" break; -case 645: +case 648: if (!yytrial) -#line 1649 "asmparse.y" +#line 1654 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10152 "asmparse.cpp.tab.c" +#line 10335 "asmparse.cpp.tab.c" break; -case 646: +case 649: if (!yytrial) -#line 1650 "asmparse.y" +#line 1655 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10158 "asmparse.cpp.tab.c" +#line 10341 "asmparse.cpp.tab.c" break; -case 647: +case 650: if (!yytrial) -#line 1651 "asmparse.y" +#line 1656 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10164 "asmparse.cpp.tab.c" +#line 10347 "asmparse.cpp.tab.c" break; -case 648: +case 651: if (!yytrial) -#line 1652 "asmparse.y" +#line 1657 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10170 "asmparse.cpp.tab.c" +#line 10353 "asmparse.cpp.tab.c" break; -case 649: +case 652: if (!yytrial) -#line 1653 "asmparse.y" +#line 1658 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10176 "asmparse.cpp.tab.c" +#line 10359 "asmparse.cpp.tab.c" break; -case 650: +case 653: if (!yytrial) -#line 1654 "asmparse.y" +#line 1659 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10182 "asmparse.cpp.tab.c" +#line 10365 "asmparse.cpp.tab.c" break; -case 651: +case 654: if (!yytrial) -#line 1655 "asmparse.y" +#line 1660 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10188 "asmparse.cpp.tab.c" +#line 10371 "asmparse.cpp.tab.c" break; -case 652: +case 655: if (!yytrial) -#line 1656 "asmparse.y" +#line 1661 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10194 "asmparse.cpp.tab.c" +#line 10377 "asmparse.cpp.tab.c" break; -case 653: +case 656: if (!yytrial) -#line 1657 "asmparse.y" +#line 1662 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10200 "asmparse.cpp.tab.c" +#line 10383 "asmparse.cpp.tab.c" break; -case 654: +case 657: if (!yytrial) -#line 1658 "asmparse.y" +#line 1663 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10206 "asmparse.cpp.tab.c" +#line 10389 "asmparse.cpp.tab.c" break; -case 655: +case 658: if (!yytrial) -#line 1659 "asmparse.y" +#line 1664 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10212 "asmparse.cpp.tab.c" +#line 10395 "asmparse.cpp.tab.c" break; -case 656: +case 659: if (!yytrial) -#line 1660 "asmparse.y" +#line 1665 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10218 "asmparse.cpp.tab.c" +#line 10401 "asmparse.cpp.tab.c" break; -case 657: +case 660: if (!yytrial) -#line 1661 "asmparse.y" +#line 1666 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10224 "asmparse.cpp.tab.c" +#line 10407 "asmparse.cpp.tab.c" break; -case 658: +case 661: if (!yytrial) -#line 1662 "asmparse.y" +#line 1667 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10230 "asmparse.cpp.tab.c" +#line 10413 "asmparse.cpp.tab.c" break; -case 659: +case 662: if (!yytrial) -#line 1663 "asmparse.y" +#line 1668 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10236 "asmparse.cpp.tab.c" +#line 10419 "asmparse.cpp.tab.c" break; -case 660: +case 663: if (!yytrial) -#line 1664 "asmparse.y" +#line 1669 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10242 "asmparse.cpp.tab.c" +#line 10425 "asmparse.cpp.tab.c" break; -case 661: +case 664: if (!yytrial) -#line 1665 "asmparse.y" +#line 1670 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10248 "asmparse.cpp.tab.c" +#line 10431 "asmparse.cpp.tab.c" break; -case 662: +case 665: if (!yytrial) -#line 1666 "asmparse.y" +#line 1671 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10254 "asmparse.cpp.tab.c" +#line 10437 "asmparse.cpp.tab.c" break; -case 663: +case 666: if (!yytrial) -#line 1667 "asmparse.y" +#line 1672 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10260 "asmparse.cpp.tab.c" +#line 10443 "asmparse.cpp.tab.c" break; -case 664: +case 667: if (!yytrial) -#line 1668 "asmparse.y" +#line 1673 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10266 "asmparse.cpp.tab.c" +#line 10449 "asmparse.cpp.tab.c" break; -case 665: +case 668: if (!yytrial) -#line 1669 "asmparse.y" +#line 1674 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10272 "asmparse.cpp.tab.c" +#line 10455 "asmparse.cpp.tab.c" break; -case 666: +case 669: if (!yytrial) -#line 1670 "asmparse.y" +#line 1675 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10278 "asmparse.cpp.tab.c" +#line 10461 "asmparse.cpp.tab.c" break; -case 667: +case 670: if (!yytrial) -#line 1671 "asmparse.y" +#line 1676 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10284 "asmparse.cpp.tab.c" +#line 10467 "asmparse.cpp.tab.c" break; -case 668: +case 671: if (!yytrial) -#line 1672 "asmparse.y" +#line 1677 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10290 "asmparse.cpp.tab.c" +#line 10473 "asmparse.cpp.tab.c" break; -case 669: +case 672: if (!yytrial) -#line 1673 "asmparse.y" +#line 1678 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10296 "asmparse.cpp.tab.c" +#line 10479 "asmparse.cpp.tab.c" break; -case 670: +case 673: if (!yytrial) -#line 1674 "asmparse.y" +#line 1679 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10302 "asmparse.cpp.tab.c" +#line 10485 "asmparse.cpp.tab.c" break; -case 671: +case 674: if (!yytrial) -#line 1675 "asmparse.y" +#line 1680 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10308 "asmparse.cpp.tab.c" +#line 10491 "asmparse.cpp.tab.c" break; -case 672: +case 675: if (!yytrial) -#line 1676 "asmparse.y" +#line 1681 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10314 "asmparse.cpp.tab.c" +#line 10497 "asmparse.cpp.tab.c" break; -case 673: +case 676: if (!yytrial) -#line 1680 "asmparse.y" +#line 1685 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10325 "asmparse.cpp.tab.c" +#line 10508 "asmparse.cpp.tab.c" break; -case 674: +case 677: if (!yytrial) -#line 1686 "asmparse.y" +#line 1691 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10331 "asmparse.cpp.tab.c" +#line 10514 "asmparse.cpp.tab.c" break; -case 675: +case 678: if (!yytrial) -#line 1687 "asmparse.y" +#line 1692 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10337 "asmparse.cpp.tab.c" +#line 10520 "asmparse.cpp.tab.c" break; -case 676: +case 679: if (!yytrial) -#line 1688 "asmparse.y" +#line 1693 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10343 "asmparse.cpp.tab.c" +#line 10526 "asmparse.cpp.tab.c" break; -case 677: +case 680: if (!yytrial) -#line 1689 "asmparse.y" +#line 1694 "asmparse.y" { yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } -#line 10349 "asmparse.cpp.tab.c" +#line 10532 "asmparse.cpp.tab.c" break; -case 678: +case 681: if (!yytrial) -#line 1690 "asmparse.y" +#line 1695 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10355 "asmparse.cpp.tab.c" +#line 10538 "asmparse.cpp.tab.c" break; -case 679: +case 682: if (!yytrial) -#line 1691 "asmparse.y" +#line 1696 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10361 "asmparse.cpp.tab.c" +#line 10544 "asmparse.cpp.tab.c" break; -case 680: +case 683: if (!yytrial) -#line 1692 "asmparse.y" +#line 1697 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10367 "asmparse.cpp.tab.c" +#line 10550 "asmparse.cpp.tab.c" break; -case 681: +case 684: if (!yytrial) -#line 1693 "asmparse.y" +#line 1698 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10373 "asmparse.cpp.tab.c" +#line 10556 "asmparse.cpp.tab.c" break; -case 682: +case 685: if (!yytrial) -#line 1694 "asmparse.y" +#line 1699 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10379 "asmparse.cpp.tab.c" +#line 10562 "asmparse.cpp.tab.c" break; -case 683: +case 686: if (!yytrial) -#line 1695 "asmparse.y" +#line 1700 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10386 "asmparse.cpp.tab.c" +#line 10569 "asmparse.cpp.tab.c" break; -case 684: +case 687: if (!yytrial) -#line 1697 "asmparse.y" +#line 1702 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10393 "asmparse.cpp.tab.c" +#line 10576 "asmparse.cpp.tab.c" break; -case 685: +case 688: if (!yytrial) -#line 1700 "asmparse.y" +#line 1705 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10404 "asmparse.cpp.tab.c" +#line 10587 "asmparse.cpp.tab.c" break; -case 686: +case 689: if (!yytrial) -#line 1706 "asmparse.y" +#line 1711 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10412,49 +10595,49 @@ case 686: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10416 "asmparse.cpp.tab.c" +#line 10599 "asmparse.cpp.tab.c" break; -case 687: +case 690: if (!yytrial) -#line 1713 "asmparse.y" +#line 1718 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10424 "asmparse.cpp.tab.c" +#line 10607 "asmparse.cpp.tab.c" break; -case 688: +case 691: if (!yytrial) -#line 1716 "asmparse.y" +#line 1721 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10435 "asmparse.cpp.tab.c" +#line 10618 "asmparse.cpp.tab.c" break; -case 689: +case 692: if (!yytrial) -#line 1722 "asmparse.y" +#line 1727 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10443 "asmparse.cpp.tab.c" +#line 10626 "asmparse.cpp.tab.c" break; -case 690: +case 693: if (!yytrial) -#line 1725 "asmparse.y" +#line 1730 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10454 "asmparse.cpp.tab.c" +#line 10637 "asmparse.cpp.tab.c" break; -case 691: +case 694: if (!yytrial) -#line 1731 "asmparse.y" +#line 1736 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10470,11 +10653,11 @@ case 691: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10474 "asmparse.cpp.tab.c" +#line 10657 "asmparse.cpp.tab.c" break; -case 692: +case 695: if (!yytrial) -#line 1746 "asmparse.y" +#line 1751 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10490,11 +10673,11 @@ case 692: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10494 "asmparse.cpp.tab.c" +#line 10677 "asmparse.cpp.tab.c" break; -case 693: +case 696: if (!yytrial) -#line 1761 "asmparse.y" +#line 1766 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10510,11 +10693,11 @@ case 693: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10514 "asmparse.cpp.tab.c" +#line 10697 "asmparse.cpp.tab.c" break; -case 694: +case 697: if (!yytrial) -#line 1776 "asmparse.y" +#line 1781 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10530,924 +10713,924 @@ case 694: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10534 "asmparse.cpp.tab.c" +#line 10717 "asmparse.cpp.tab.c" break; -case 695: +case 698: if (!yytrial) -#line 1791 "asmparse.y" +#line 1796 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10540 "asmparse.cpp.tab.c" +#line 10723 "asmparse.cpp.tab.c" break; -case 696: +case 699: if (!yytrial) -#line 1792 "asmparse.y" +#line 1797 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10546 "asmparse.cpp.tab.c" +#line 10729 "asmparse.cpp.tab.c" break; -case 697: +case 700: if (!yytrial) -#line 1793 "asmparse.y" +#line 1798 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10552 "asmparse.cpp.tab.c" +#line 10735 "asmparse.cpp.tab.c" break; -case 698: +case 701: if (!yytrial) -#line 1794 "asmparse.y" +#line 1799 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10558 "asmparse.cpp.tab.c" +#line 10741 "asmparse.cpp.tab.c" break; -case 699: +case 702: if (!yytrial) -#line 1795 "asmparse.y" +#line 1800 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10564 "asmparse.cpp.tab.c" +#line 10747 "asmparse.cpp.tab.c" break; -case 700: +case 703: if (!yytrial) -#line 1796 "asmparse.y" +#line 1801 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10570 "asmparse.cpp.tab.c" +#line 10753 "asmparse.cpp.tab.c" break; -case 701: +case 704: if (!yytrial) -#line 1797 "asmparse.y" +#line 1802 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10576 "asmparse.cpp.tab.c" +#line 10759 "asmparse.cpp.tab.c" break; -case 702: +case 705: if (!yytrial) -#line 1800 "asmparse.y" +#line 1805 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10582 "asmparse.cpp.tab.c" +#line 10765 "asmparse.cpp.tab.c" break; -case 703: +case 706: if (!yytrial) -#line 1801 "asmparse.y" +#line 1806 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10588 "asmparse.cpp.tab.c" +#line 10771 "asmparse.cpp.tab.c" break; -case 704: +case 707: if (!yytrial) -#line 1802 "asmparse.y" +#line 1807 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10594 "asmparse.cpp.tab.c" +#line 10777 "asmparse.cpp.tab.c" break; -case 705: +case 708: if (!yytrial) -#line 1803 "asmparse.y" +#line 1808 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10600 "asmparse.cpp.tab.c" +#line 10783 "asmparse.cpp.tab.c" break; -case 706: +case 709: if (!yytrial) -#line 1804 "asmparse.y" +#line 1809 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10606 "asmparse.cpp.tab.c" +#line 10789 "asmparse.cpp.tab.c" break; -case 707: +case 710: if (!yytrial) -#line 1805 "asmparse.y" +#line 1810 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10612 "asmparse.cpp.tab.c" +#line 10795 "asmparse.cpp.tab.c" break; -case 708: +case 711: if (!yytrial) -#line 1806 "asmparse.y" +#line 1811 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10618 "asmparse.cpp.tab.c" +#line 10801 "asmparse.cpp.tab.c" break; -case 709: +case 712: if (!yytrial) -#line 1807 "asmparse.y" +#line 1812 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10624 "asmparse.cpp.tab.c" +#line 10807 "asmparse.cpp.tab.c" break; -case 710: +case 713: if (!yytrial) -#line 1808 "asmparse.y" +#line 1813 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10630 "asmparse.cpp.tab.c" +#line 10813 "asmparse.cpp.tab.c" break; -case 711: +case 714: if (!yytrial) -#line 1809 "asmparse.y" +#line 1814 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10636 "asmparse.cpp.tab.c" +#line 10819 "asmparse.cpp.tab.c" break; -case 712: +case 715: if (!yytrial) -#line 1810 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10642 "asmparse.cpp.tab.c" +#line 10825 "asmparse.cpp.tab.c" break; -case 713: +case 716: if (!yytrial) -#line 1811 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10648 "asmparse.cpp.tab.c" +#line 10831 "asmparse.cpp.tab.c" break; -case 714: +case 717: if (!yytrial) -#line 1812 "asmparse.y" +#line 1817 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10654 "asmparse.cpp.tab.c" +#line 10837 "asmparse.cpp.tab.c" break; -case 715: +case 718: if (!yytrial) -#line 1813 "asmparse.y" +#line 1818 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10660 "asmparse.cpp.tab.c" +#line 10843 "asmparse.cpp.tab.c" break; -case 716: +case 719: if (!yytrial) -#line 1814 "asmparse.y" +#line 1819 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10666 "asmparse.cpp.tab.c" +#line 10849 "asmparse.cpp.tab.c" break; -case 717: +case 720: if (!yytrial) -#line 1815 "asmparse.y" +#line 1820 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10672 "asmparse.cpp.tab.c" +#line 10855 "asmparse.cpp.tab.c" break; -case 718: +case 721: if (!yytrial) -#line 1816 "asmparse.y" +#line 1821 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10678 "asmparse.cpp.tab.c" +#line 10861 "asmparse.cpp.tab.c" break; -case 719: +case 722: if (!yytrial) -#line 1817 "asmparse.y" +#line 1822 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10684 "asmparse.cpp.tab.c" +#line 10867 "asmparse.cpp.tab.c" break; -case 720: +case 723: if (!yytrial) -#line 1820 "asmparse.y" +#line 1825 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10690 "asmparse.cpp.tab.c" +#line 10873 "asmparse.cpp.tab.c" break; -case 721: +case 724: if (!yytrial) -#line 1821 "asmparse.y" +#line 1826 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10696 "asmparse.cpp.tab.c" +#line 10879 "asmparse.cpp.tab.c" break; -case 722: +case 725: if (!yytrial) -#line 1824 "asmparse.y" +#line 1829 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10702 "asmparse.cpp.tab.c" +#line 10885 "asmparse.cpp.tab.c" break; -case 723: +case 726: if (!yytrial) -#line 1825 "asmparse.y" +#line 1830 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10708 "asmparse.cpp.tab.c" +#line 10891 "asmparse.cpp.tab.c" break; -case 724: +case 727: if (!yytrial) -#line 1826 "asmparse.y" +#line 1831 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10714 "asmparse.cpp.tab.c" +#line 10897 "asmparse.cpp.tab.c" break; -case 725: +case 728: if (!yytrial) -#line 1827 "asmparse.y" +#line 1832 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10722 "asmparse.cpp.tab.c" +#line 10905 "asmparse.cpp.tab.c" break; -case 726: +case 729: if (!yytrial) -#line 1830 "asmparse.y" +#line 1835 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10728 "asmparse.cpp.tab.c" +#line 10911 "asmparse.cpp.tab.c" break; -case 727: +case 730: if (!yytrial) -#line 1835 "asmparse.y" +#line 1840 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10734 "asmparse.cpp.tab.c" +#line 10917 "asmparse.cpp.tab.c" break; -case 728: +case 731: if (!yytrial) -#line 1837 "asmparse.y" +#line 1842 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10740 "asmparse.cpp.tab.c" +#line 10923 "asmparse.cpp.tab.c" break; -case 729: +case 732: if (!yytrial) -#line 1838 "asmparse.y" +#line 1843 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10746 "asmparse.cpp.tab.c" +#line 10929 "asmparse.cpp.tab.c" break; -case 730: +case 733: if (!yytrial) -#line 1839 "asmparse.y" +#line 1844 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10752 "asmparse.cpp.tab.c" +#line 10935 "asmparse.cpp.tab.c" break; -case 731: +case 734: if (!yytrial) -#line 1841 "asmparse.y" +#line 1846 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10758 "asmparse.cpp.tab.c" +#line 10941 "asmparse.cpp.tab.c" break; -case 732: +case 735: if (!yytrial) -#line 1843 "asmparse.y" +#line 1848 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10769 "asmparse.cpp.tab.c" +#line 10952 "asmparse.cpp.tab.c" break; -case 733: +case 736: if (!yytrial) -#line 1851 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10775 "asmparse.cpp.tab.c" +#line 10958 "asmparse.cpp.tab.c" break; -case 734: +case 737: if (!yytrial) -#line 1852 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10781 "asmparse.cpp.tab.c" +#line 10964 "asmparse.cpp.tab.c" break; -case 735: +case 738: if (!yytrial) -#line 1853 "asmparse.y" +#line 1858 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10787 "asmparse.cpp.tab.c" +#line 10970 "asmparse.cpp.tab.c" break; -case 736: +case 739: if (!yytrial) -#line 1857 "asmparse.y" +#line 1862 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10794 "asmparse.cpp.tab.c" +#line 10977 "asmparse.cpp.tab.c" break; -case 737: +case 740: if (!yytrial) -#line 1860 "asmparse.y" +#line 1865 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10801 "asmparse.cpp.tab.c" +#line 10984 "asmparse.cpp.tab.c" break; -case 738: +case 741: if (!yytrial) -#line 1864 "asmparse.y" +#line 1869 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10807 "asmparse.cpp.tab.c" +#line 10990 "asmparse.cpp.tab.c" break; -case 739: +case 742: if (!yytrial) -#line 1866 "asmparse.y" +#line 1871 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10813 "asmparse.cpp.tab.c" +#line 10996 "asmparse.cpp.tab.c" break; -case 740: +case 743: if (!yytrial) -#line 1869 "asmparse.y" +#line 1874 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 10819 "asmparse.cpp.tab.c" +#line 11002 "asmparse.cpp.tab.c" break; -case 741: +case 744: if (!yytrial) -#line 1870 "asmparse.y" +#line 1875 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 10825 "asmparse.cpp.tab.c" +#line 11008 "asmparse.cpp.tab.c" break; -case 742: +case 745: if (!yytrial) -#line 1873 "asmparse.y" +#line 1878 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 10831 "asmparse.cpp.tab.c" +#line 11014 "asmparse.cpp.tab.c" break; -case 743: +case 746: if (!yytrial) -#line 1876 "asmparse.y" +#line 1881 "asmparse.y" { yyval.int32 = 1; } -#line 10837 "asmparse.cpp.tab.c" +#line 11020 "asmparse.cpp.tab.c" break; -case 744: +case 747: if (!yytrial) -#line 1877 "asmparse.y" +#line 1882 "asmparse.y" { yyval.int32 = 0; } -#line 10843 "asmparse.cpp.tab.c" +#line 11026 "asmparse.cpp.tab.c" break; -case 745: +case 748: if (!yytrial) -#line 1880 "asmparse.y" +#line 1885 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10851 "asmparse.cpp.tab.c" +#line 11034 "asmparse.cpp.tab.c" break; -case 746: +case 749: if (!yytrial) -#line 1883 "asmparse.y" +#line 1888 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10859 "asmparse.cpp.tab.c" +#line 11042 "asmparse.cpp.tab.c" break; -case 747: +case 750: if (!yytrial) -#line 1886 "asmparse.y" +#line 1891 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10867 "asmparse.cpp.tab.c" +#line 11050 "asmparse.cpp.tab.c" break; -case 748: +case 751: if (!yytrial) -#line 1889 "asmparse.y" +#line 1894 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 10876 "asmparse.cpp.tab.c" +#line 11059 "asmparse.cpp.tab.c" break; -case 749: +case 752: if (!yytrial) -#line 1893 "asmparse.y" +#line 1898 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10887 "asmparse.cpp.tab.c" +#line 11070 "asmparse.cpp.tab.c" break; -case 750: +case 753: if (!yytrial) -#line 1899 "asmparse.y" +#line 1904 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10898 "asmparse.cpp.tab.c" +#line 11081 "asmparse.cpp.tab.c" break; -case 751: +case 754: if (!yytrial) -#line 1905 "asmparse.y" +#line 1910 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10909 "asmparse.cpp.tab.c" +#line 11092 "asmparse.cpp.tab.c" break; -case 752: +case 755: if (!yytrial) -#line 1911 "asmparse.y" +#line 1916 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10920 "asmparse.cpp.tab.c" +#line 11103 "asmparse.cpp.tab.c" break; -case 753: +case 756: if (!yytrial) -#line 1919 "asmparse.y" +#line 1924 "asmparse.y" { yyval.secAct = dclRequest; } -#line 10926 "asmparse.cpp.tab.c" +#line 11109 "asmparse.cpp.tab.c" break; -case 754: +case 757: if (!yytrial) -#line 1920 "asmparse.y" +#line 1925 "asmparse.y" { yyval.secAct = dclDemand; } -#line 10932 "asmparse.cpp.tab.c" +#line 11115 "asmparse.cpp.tab.c" break; -case 755: +case 758: if (!yytrial) -#line 1921 "asmparse.y" +#line 1926 "asmparse.y" { yyval.secAct = dclAssert; } -#line 10938 "asmparse.cpp.tab.c" +#line 11121 "asmparse.cpp.tab.c" break; -case 756: +case 759: if (!yytrial) -#line 1922 "asmparse.y" +#line 1927 "asmparse.y" { yyval.secAct = dclDeny; } -#line 10944 "asmparse.cpp.tab.c" +#line 11127 "asmparse.cpp.tab.c" break; -case 757: +case 760: if (!yytrial) -#line 1923 "asmparse.y" +#line 1928 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 10950 "asmparse.cpp.tab.c" +#line 11133 "asmparse.cpp.tab.c" break; -case 758: +case 761: if (!yytrial) -#line 1924 "asmparse.y" +#line 1929 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 10956 "asmparse.cpp.tab.c" +#line 11139 "asmparse.cpp.tab.c" break; -case 759: +case 762: if (!yytrial) -#line 1925 "asmparse.y" +#line 1930 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 10962 "asmparse.cpp.tab.c" +#line 11145 "asmparse.cpp.tab.c" break; -case 760: +case 763: if (!yytrial) -#line 1926 "asmparse.y" +#line 1931 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 10968 "asmparse.cpp.tab.c" +#line 11151 "asmparse.cpp.tab.c" break; -case 761: +case 764: if (!yytrial) -#line 1927 "asmparse.y" +#line 1932 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 10974 "asmparse.cpp.tab.c" +#line 11157 "asmparse.cpp.tab.c" break; -case 762: +case 765: if (!yytrial) -#line 1928 "asmparse.y" +#line 1933 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 10980 "asmparse.cpp.tab.c" +#line 11163 "asmparse.cpp.tab.c" break; -case 763: +case 766: if (!yytrial) -#line 1929 "asmparse.y" +#line 1934 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 10986 "asmparse.cpp.tab.c" +#line 11169 "asmparse.cpp.tab.c" break; -case 764: +case 767: if (!yytrial) -#line 1930 "asmparse.y" +#line 1935 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 10992 "asmparse.cpp.tab.c" +#line 11175 "asmparse.cpp.tab.c" break; -case 765: +case 768: if (!yytrial) -#line 1931 "asmparse.y" +#line 1936 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 10998 "asmparse.cpp.tab.c" +#line 11181 "asmparse.cpp.tab.c" break; -case 766: +case 769: if (!yytrial) -#line 1932 "asmparse.y" +#line 1937 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11004 "asmparse.cpp.tab.c" +#line 11187 "asmparse.cpp.tab.c" break; -case 767: +case 770: if (!yytrial) -#line 1933 "asmparse.y" +#line 1938 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11010 "asmparse.cpp.tab.c" +#line 11193 "asmparse.cpp.tab.c" break; -case 768: +case 771: if (!yytrial) -#line 1937 "asmparse.y" +#line 1942 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11016 "asmparse.cpp.tab.c" +#line 11199 "asmparse.cpp.tab.c" break; -case 769: +case 772: if (!yytrial) -#line 1938 "asmparse.y" +#line 1943 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11022 "asmparse.cpp.tab.c" +#line 11205 "asmparse.cpp.tab.c" break; -case 770: +case 773: if (!yytrial) -#line 1941 "asmparse.y" +#line 1946 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11030 "asmparse.cpp.tab.c" +#line 11213 "asmparse.cpp.tab.c" break; -case 771: +case 774: if (!yytrial) -#line 1944 "asmparse.y" +#line 1949 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11037 "asmparse.cpp.tab.c" +#line 11220 "asmparse.cpp.tab.c" break; -case 772: +case 775: if (!yytrial) -#line 1946 "asmparse.y" +#line 1951 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11045 "asmparse.cpp.tab.c" +#line 11228 "asmparse.cpp.tab.c" break; -case 773: +case 776: if (!yytrial) -#line 1949 "asmparse.y" +#line 1954 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11052 "asmparse.cpp.tab.c" +#line 11235 "asmparse.cpp.tab.c" break; -case 774: +case 777: if (!yytrial) -#line 1952 "asmparse.y" +#line 1957 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11060 "asmparse.cpp.tab.c" +#line 11243 "asmparse.cpp.tab.c" break; -case 775: +case 778: if (!yytrial) -#line 1956 "asmparse.y" +#line 1961 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11067 "asmparse.cpp.tab.c" +#line 11250 "asmparse.cpp.tab.c" break; -case 776: +case 779: if (!yytrial) -#line 1959 "asmparse.y" +#line 1964 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11075 "asmparse.cpp.tab.c" +#line 11258 "asmparse.cpp.tab.c" break; -case 777: +case 780: if (!yytrial) -#line 1963 "asmparse.y" +#line 1968 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11082 "asmparse.cpp.tab.c" +#line 11265 "asmparse.cpp.tab.c" break; -case 778: +case 781: if (!yytrial) -#line 1966 "asmparse.y" +#line 1971 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11090 "asmparse.cpp.tab.c" +#line 11273 "asmparse.cpp.tab.c" break; -case 779: +case 782: if (!yytrial) -#line 1970 "asmparse.y" +#line 1975 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11097 "asmparse.cpp.tab.c" +#line 11280 "asmparse.cpp.tab.c" break; -case 780: +case 783: if (!yytrial) -#line 1972 "asmparse.y" +#line 1977 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11105 "asmparse.cpp.tab.c" +#line 11288 "asmparse.cpp.tab.c" break; -case 781: +case 784: if (!yytrial) -#line 1979 "asmparse.y" +#line 1984 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11111 "asmparse.cpp.tab.c" +#line 11294 "asmparse.cpp.tab.c" break; -case 782: +case 785: if (!yytrial) -#line 1980 "asmparse.y" +#line 1985 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11117 "asmparse.cpp.tab.c" +#line 11300 "asmparse.cpp.tab.c" break; -case 783: +case 786: if (!yytrial) -#line 1983 "asmparse.y" +#line 1988 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11123 "asmparse.cpp.tab.c" +#line 11306 "asmparse.cpp.tab.c" break; -case 784: +case 787: if (!yytrial) -#line 1984 "asmparse.y" +#line 1989 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11129 "asmparse.cpp.tab.c" +#line 11312 "asmparse.cpp.tab.c" break; -case 785: +case 788: if (!yytrial) -#line 1987 "asmparse.y" +#line 1992 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11135 "asmparse.cpp.tab.c" +#line 11318 "asmparse.cpp.tab.c" break; -case 786: +case 789: if (!yytrial) -#line 1988 "asmparse.y" +#line 1993 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11141 "asmparse.cpp.tab.c" +#line 11324 "asmparse.cpp.tab.c" break; -case 787: +case 790: if (!yytrial) -#line 1991 "asmparse.y" +#line 1996 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11147 "asmparse.cpp.tab.c" +#line 11330 "asmparse.cpp.tab.c" break; -case 788: +case 791: if (!yytrial) -#line 1994 "asmparse.y" +#line 1999 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11153 "asmparse.cpp.tab.c" +#line 11336 "asmparse.cpp.tab.c" break; -case 789: +case 792: if (!yytrial) -#line 1997 "asmparse.y" +#line 2002 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11159 "asmparse.cpp.tab.c" +#line 11342 "asmparse.cpp.tab.c" break; -case 790: +case 793: if (!yytrial) -#line 1998 "asmparse.y" +#line 2003 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11165 "asmparse.cpp.tab.c" +#line 11348 "asmparse.cpp.tab.c" break; -case 791: +case 794: if (!yytrial) -#line 1999 "asmparse.y" +#line 2004 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11171 "asmparse.cpp.tab.c" +#line 11354 "asmparse.cpp.tab.c" break; -case 792: +case 795: if (!yytrial) -#line 2000 "asmparse.y" +#line 2005 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11177 "asmparse.cpp.tab.c" +#line 11360 "asmparse.cpp.tab.c" break; -case 793: +case 796: if (!yytrial) -#line 2001 "asmparse.y" +#line 2006 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11183 "asmparse.cpp.tab.c" +#line 11366 "asmparse.cpp.tab.c" break; -case 794: +case 797: if (!yytrial) -#line 2002 "asmparse.y" +#line 2007 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11189 "asmparse.cpp.tab.c" +#line 11372 "asmparse.cpp.tab.c" break; -case 795: +case 798: if (!yytrial) -#line 2003 "asmparse.y" +#line 2008 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11195 "asmparse.cpp.tab.c" +#line 11378 "asmparse.cpp.tab.c" break; -case 796: +case 799: if (!yytrial) -#line 2004 "asmparse.y" +#line 2009 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11201 "asmparse.cpp.tab.c" +#line 11384 "asmparse.cpp.tab.c" break; -case 797: +case 800: if (!yytrial) -#line 2005 "asmparse.y" +#line 2010 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11207 "asmparse.cpp.tab.c" +#line 11390 "asmparse.cpp.tab.c" break; -case 798: +case 801: if (!yytrial) -#line 2006 "asmparse.y" +#line 2011 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11213 "asmparse.cpp.tab.c" +#line 11396 "asmparse.cpp.tab.c" break; -case 801: +case 804: if (!yytrial) -#line 2013 "asmparse.y" +#line 2018 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11219 "asmparse.cpp.tab.c" +#line 11402 "asmparse.cpp.tab.c" break; -case 804: +case 807: if (!yytrial) -#line 2018 "asmparse.y" +#line 2023 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11225 "asmparse.cpp.tab.c" +#line 11408 "asmparse.cpp.tab.c" break; -case 805: +case 808: if (!yytrial) -#line 2019 "asmparse.y" +#line 2024 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11231 "asmparse.cpp.tab.c" +#line 11414 "asmparse.cpp.tab.c" break; -case 806: +case 809: if (!yytrial) -#line 2022 "asmparse.y" +#line 2027 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11237 "asmparse.cpp.tab.c" +#line 11420 "asmparse.cpp.tab.c" break; -case 807: +case 810: if (!yytrial) -#line 2024 "asmparse.y" +#line 2029 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11243 "asmparse.cpp.tab.c" +#line 11426 "asmparse.cpp.tab.c" break; -case 808: +case 811: if (!yytrial) -#line 2025 "asmparse.y" +#line 2030 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11249 "asmparse.cpp.tab.c" +#line 11432 "asmparse.cpp.tab.c" break; -case 809: +case 812: if (!yytrial) -#line 2026 "asmparse.y" +#line 2031 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11255 "asmparse.cpp.tab.c" +#line 11438 "asmparse.cpp.tab.c" break; -case 812: +case 815: if (!yytrial) -#line 2031 "asmparse.y" +#line 2036 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11261 "asmparse.cpp.tab.c" +#line 11444 "asmparse.cpp.tab.c" break; -case 813: +case 816: if (!yytrial) -#line 2034 "asmparse.y" +#line 2039 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11267 "asmparse.cpp.tab.c" +#line 11450 "asmparse.cpp.tab.c" break; -case 814: +case 817: if (!yytrial) -#line 2037 "asmparse.y" +#line 2042 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11273 "asmparse.cpp.tab.c" +#line 11456 "asmparse.cpp.tab.c" break; -case 815: +case 818: if (!yytrial) -#line 2041 "asmparse.y" +#line 2046 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11279 "asmparse.cpp.tab.c" +#line 11462 "asmparse.cpp.tab.c" break; -case 816: +case 819: if (!yytrial) -#line 2043 "asmparse.y" +#line 2048 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11285 "asmparse.cpp.tab.c" +#line 11468 "asmparse.cpp.tab.c" break; -case 819: +case 822: if (!yytrial) -#line 2050 "asmparse.y" +#line 2055 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11291 "asmparse.cpp.tab.c" +#line 11474 "asmparse.cpp.tab.c" break; -case 821: +case 824: if (!yytrial) -#line 2052 "asmparse.y" +#line 2057 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11297 "asmparse.cpp.tab.c" +#line 11480 "asmparse.cpp.tab.c" break; -case 822: +case 825: if (!yytrial) -#line 2053 "asmparse.y" +#line 2058 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11303 "asmparse.cpp.tab.c" +#line 11486 "asmparse.cpp.tab.c" break; -case 823: +case 826: if (!yytrial) -#line 2056 "asmparse.y" +#line 2061 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11309 "asmparse.cpp.tab.c" +#line 11492 "asmparse.cpp.tab.c" break; -case 824: +case 827: if (!yytrial) -#line 2059 "asmparse.y" +#line 2064 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11315 "asmparse.cpp.tab.c" +#line 11498 "asmparse.cpp.tab.c" break; -case 825: +case 828: if (!yytrial) -#line 2062 "asmparse.y" +#line 2067 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11321 "asmparse.cpp.tab.c" +#line 11504 "asmparse.cpp.tab.c" break; -case 826: +case 829: if (!yytrial) -#line 2063 "asmparse.y" +#line 2068 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11327 "asmparse.cpp.tab.c" +#line 11510 "asmparse.cpp.tab.c" break; -case 827: +case 830: if (!yytrial) -#line 2064 "asmparse.y" +#line 2069 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11333 "asmparse.cpp.tab.c" +#line 11516 "asmparse.cpp.tab.c" break; -case 828: +case 831: if (!yytrial) -#line 2065 "asmparse.y" +#line 2070 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11339 "asmparse.cpp.tab.c" +#line 11522 "asmparse.cpp.tab.c" break; -case 829: +case 832: if (!yytrial) -#line 2066 "asmparse.y" +#line 2071 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11345 "asmparse.cpp.tab.c" +#line 11528 "asmparse.cpp.tab.c" break; -case 830: +case 833: if (!yytrial) -#line 2067 "asmparse.y" +#line 2072 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11351 "asmparse.cpp.tab.c" +#line 11534 "asmparse.cpp.tab.c" break; -case 831: +case 834: if (!yytrial) -#line 2068 "asmparse.y" +#line 2073 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11357 "asmparse.cpp.tab.c" +#line 11540 "asmparse.cpp.tab.c" break; -case 832: +case 835: if (!yytrial) -#line 2069 "asmparse.y" +#line 2074 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11363 "asmparse.cpp.tab.c" +#line 11546 "asmparse.cpp.tab.c" break; -case 833: +case 836: if (!yytrial) -#line 2070 "asmparse.y" +#line 2075 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11369 "asmparse.cpp.tab.c" +#line 11552 "asmparse.cpp.tab.c" break; -case 834: +case 837: if (!yytrial) -#line 2071 "asmparse.y" +#line 2076 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11375 "asmparse.cpp.tab.c" +#line 11558 "asmparse.cpp.tab.c" break; -case 837: +case 840: if (!yytrial) -#line 2078 "asmparse.y" +#line 2083 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11381 "asmparse.cpp.tab.c" +#line 11564 "asmparse.cpp.tab.c" break; -case 838: +case 841: if (!yytrial) -#line 2079 "asmparse.y" +#line 2084 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11387 "asmparse.cpp.tab.c" +#line 11570 "asmparse.cpp.tab.c" break; -case 839: +case 842: if (!yytrial) -#line 2080 "asmparse.y" +#line 2085 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11393 "asmparse.cpp.tab.c" +#line 11576 "asmparse.cpp.tab.c" break; -case 840: +case 843: if (!yytrial) -#line 2081 "asmparse.y" +#line 2086 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11400 "asmparse.cpp.tab.c" +#line 11583 "asmparse.cpp.tab.c" break; -case 841: +case 844: if (!yytrial) -#line 2083 "asmparse.y" +#line 2088 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11407 "asmparse.cpp.tab.c" +#line 11590 "asmparse.cpp.tab.c" break; -case 844: +case 847: if (!yytrial) -#line 2089 "asmparse.y" +#line 2094 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11413 "asmparse.cpp.tab.c" +#line 11596 "asmparse.cpp.tab.c" break; -case 845: +case 848: if (!yytrial) -#line 2091 "asmparse.y" +#line 2096 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11419 "asmparse.cpp.tab.c" +#line 11602 "asmparse.cpp.tab.c" break; -case 846: +case 849: if (!yytrial) -#line 2094 "asmparse.y" +#line 2099 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11425 "asmparse.cpp.tab.c" +#line 11608 "asmparse.cpp.tab.c" break; -case 847: +case 850: if (!yytrial) -#line 2095 "asmparse.y" +#line 2100 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11431 "asmparse.cpp.tab.c" +#line 11614 "asmparse.cpp.tab.c" break; -case 848: +case 851: if (!yytrial) -#line 2096 "asmparse.y" +#line 2101 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11437 "asmparse.cpp.tab.c" +#line 11620 "asmparse.cpp.tab.c" break; -case 851: +case 854: if (!yytrial) -#line 2103 "asmparse.y" +#line 2108 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11443 "asmparse.cpp.tab.c" +#line 11626 "asmparse.cpp.tab.c" break; -case 852: +case 855: if (!yytrial) -#line 2104 "asmparse.y" +#line 2109 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11449 "asmparse.cpp.tab.c" +#line 11632 "asmparse.cpp.tab.c" break; -#line 11451 "asmparse.cpp.tab.c" +#line 11634 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp index e9baa3dc02d91..8bc48e6cb5c43 100644 --- a/src/coreclr/ildasm/dis.cpp +++ b/src/coreclr/ildasm/dis.cpp @@ -1450,6 +1450,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineVar: + case ShortInlineTypeVar: { if(g_fShowBytes) { @@ -1484,7 +1485,13 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md else szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s A_%d",pszInstrName, v); } break; - + case CEE_LDTARG_S: + { + CorElementType elemType = (CorElementType)(v & 0xFF); + int idx = v >> 8; + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s %s%d", pszInstrName, elemType == CorElementType::ELEMENT_TYPE_CVAR ? "!" : "!!", idx); + } + break; case CEE_LDLOCA: case CEE_LDLOC: case CEE_STLOC: @@ -1509,16 +1516,31 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md case InlineI: case InlineTypeI: case InlineRVA: + case InlineTypeVar: { DWORD v = pCode[PC] + (pCode[PC+1] << 8) + (pCode[PC+2] << 16) + (pCode[PC+3] << 24); - if(g_fShowBytes) + switch(instr) { - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%2.2X%2.2X%2.2X%2.2X ", - pCode[PC+3], pCode[PC+2], pCode[PC+1], pCode[PC]); - Len += 9; - PadTheString; + case CEE_LDTARG: + { + CorElementType elemType = (CorElementType)(v & 0xFFFF); + int idx = v >> 16; + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s %s%d", pszInstrName, elemType == CorElementType::ELEMENT_TYPE_CVAR ? "!" : "!!", idx); + break; + } + default: + { + if(g_fShowBytes) + { + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%2.2X%2.2X%2.2X%2.2X ", + pCode[PC+3], pCode[PC+2], pCode[PC+1], pCode[PC]); + Len += 9; + PadTheString; + } + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s 0x%x", pszInstrName, v); + break; + } } - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s 0x%x", pszInstrName, v); PC += 4; break; } diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 7a1595a9e8205..5a6bc4aaef173 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -205,7 +205,7 @@ OPDEF(CEE_LDCT_I4, "ldtc.i4", Pop0, Pu OPDEF(CEE_LDCT_I8, "ldtc.i8", Pop0, PushI8, InlineTypeI8, IPrimitive, 1, 0xFF, 0xA8, NEXT) OPDEF(CEE_LDCT_R4, "ldtc.r4", Pop0, PushR4, ShortInlineTypeR, IPrimitive, 1, 0xFF, 0xA9, NEXT) OPDEF(CEE_LDCT_R8, "ldtc.r8", Pop0, PushR8, InlineTypeR, IPrimitive, 1, 0xFF, 0xAA, NEXT) -OPDEF(CEE_UNUSED10, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) +OPDEF(CEE_LDTARG_S, "ldtarg.s", Pop0, Push1, ShortInlineTypeVar, IMacro, 1, 0xFF, 0xAB, NEXT) OPDEF(CEE_UNUSED11, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAC, NEXT) OPDEF(CEE_UNUSED12, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAD, NEXT) OPDEF(CEE_UNUSED13, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAE, NEXT) @@ -299,7 +299,7 @@ OPDEF(CEE_CLT, "clt", Pop1+Pop1, Pu OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) -OPDEF(CEE_UNUSED56, "unused", Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x08, NEXT) +OPDEF(CEE_LDTARG, "ldtarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFF, 0x08, NEXT) OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) diff --git a/src/coreclr/inc/openum.h b/src/coreclr/inc/openum.h index 5533fa9119c21..63924e7acf320 100644 --- a/src/coreclr/inc/openum.h +++ b/src/coreclr/inc/openum.h @@ -34,6 +34,7 @@ typedef enum opcode_format_t InlineTypeI = 15, // a signed integer for const type parameter InlineTypeR = 16, // a real integer for const type parameter InlineTypeI8 = 17, + InlineTypeVar = 18, // WATCH OUT we are close to the limit here, if you add // more enumerations you need to change ShortIline definition below @@ -46,6 +47,7 @@ typedef enum opcode_format_t ShortInlineBrTarget = (ShortInline + InlineBrTarget), ShortInlineTypeI = (ShortInline + InlineTypeI), ShortInlineTypeR = (ShortInline + InlineTypeR), + ShortInlineTypeVar = (ShortInline + InlineTypeVar), InlineOpcode = (ShortInline + InlineNone), // This is only used internally. It means the 'opcode' is two byte instead of 1 } OPCODE_FORMAT; From b18f20ebecc6442ba6da4ef9a4aa2ad127a6d965 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 02:25:03 +0900 Subject: [PATCH 11/80] Support using type parameter index directly in parser --- src/coreclr/ilasm/asmparse.y | 2 + src/coreclr/ilasm/prebuilt/asmparse.cpp | 8884 ++++++++++++----------- 2 files changed, 4455 insertions(+), 4431 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 15e215f18f5e7..e3db03981eeb7 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -1379,7 +1379,9 @@ instr_r_head : instr_r '(' { $$ = $1; bParsing instr : instr_none { PASM->EmitOpcode($1); } | instr_var int32 { PASM->EmitInstrVar($1, $2); } | instr_var id { PASM->EmitInstrVarByName($1, $2); } + | instr_tvar '!' int32 { PASM->EmitInstrTypeVar($1, ELEMENT_TYPE_CVAR, $3); } | instr_tvar '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_CVAR, $3); } + | instr_tvar '!' '!' int32 { PASM->EmitInstrTypeVar($1, ELEMENT_TYPE_MCVAR, $4); } | instr_tvar '!' '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_MCVAR, $4); } | instr_i int32 { PASM->EmitInstrI($1, $2); } | instr_i8 int64 { PASM->EmitInstrI8($1, $2); } diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 6bd0d76488836..8b22aa2b720f7 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -399,39 +399,39 @@ static int yylhs[] = { -1, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 6, 6, 6, 6, 6, - 55, 55, 56, 56, 57, 57, 27, 27, 28, 28, - 29, 29, 29, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 5, 5, 73, 73, 73, 73, 35, + 159, 159, 159, 159, 159, 159, 159, 6, 6, 6, + 6, 6, 55, 55, 56, 56, 57, 57, 27, 27, + 28, 28, 29, 29, 29, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 5, 5, 73, 73, 73, + 73, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 22, 22, 15, 15, 15, 15, + 35, 35, 35, 35, 35, 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 30, 30, 30, 30, 30, + 15, 15, 15, 15, 15, 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 54, 54, 54, 54, 54, 54, + 30, 30, 30, 30, 30, 30, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 32, 32, 31, 31, 31, 31, 31, 133, - 133, 133, 133, 133, 133, 66, 66, 66, 65, 65, - 89, 89, 86, 86, 87, 17, 17, 39, 39, 39, - 39, 39, 39, 39, 39, 88, 88, 88, 88, 88, + 54, 54, 54, 54, 32, 32, 31, 31, 31, 31, + 31, 133, 133, 133, 133, 133, 133, 66, 66, 66, + 65, 65, 89, 89, 86, 86, 87, 17, 17, 39, + 39, 39, 39, 39, 39, 39, 39, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 178, 178, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 123, 123, 90, 90, 91, 91, 179, - 124, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 125, 125, 180, 180, 180, 68, 68, 181, 181, - 181, 181, 181, 181, 182, 184, 183, 126, 126, 127, - 127, 185, 185, 185, 185, 128, 150, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 129, 129, 186, - 186, 186, 186, 186, 186, 186, 130, 130, 94, 94, - 94, 131, 131, 187, 187, 187, 187, + 88, 88, 178, 178, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 123, 123, 90, 90, 91, + 91, 179, 124, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 125, 125, 180, 180, 180, 68, 68, + 181, 181, 181, 181, 181, 181, 182, 184, 183, 126, + 126, 127, 127, 185, 185, 185, 185, 128, 150, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 129, + 129, 186, 186, 186, 186, 186, 186, 186, 130, 130, + 94, 94, 94, 131, 131, 187, 187, 187, 187, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -485,73 +485,73 @@ static int yylen[] = { 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 2, 2, 3, 4, 2, 2, 2, 2, 3, - 2, 2, 2, 5, 3, 2, 2, 2, 2, 2, - 5, 4, 6, 2, 4, 0, 3, 3, 1, 1, - 0, 3, 0, 1, 1, 3, 0, 1, 1, 3, - 1, 3, 4, 4, 4, 4, 5, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 3, 4, 1, 0, - 10, 6, 5, 6, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 1, 1, 1, 1, 2, 3, 4, 6, 5, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, - 2, 4, 1, 2, 1, 2, 1, 2, 1, 2, - 1, 2, 1, 1, 0, 5, 0, 1, 1, 1, + 1, 2, 2, 3, 3, 4, 4, 2, 2, 2, + 2, 3, 2, 2, 2, 5, 3, 2, 2, 2, + 2, 2, 5, 4, 6, 2, 4, 0, 3, 3, + 1, 1, 0, 3, 0, 1, 1, 3, 0, 1, + 1, 3, 1, 3, 4, 4, 4, 4, 5, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 3, 4, + 1, 0, 10, 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 1, 1, 1, 1, 1, 3, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 1, 1, 1, 1, 2, 3, 4, 6, + 5, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 2, 2, 4, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 3, 2, 2, - 3, 4, 2, 2, 2, 5, 5, 7, 4, 4, - 3, 3, 2, 4, 3, 3, 2, 1, 1, 2, - 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 1, 3, 0, 1, 1, 3, 2, 6, - 7, 3, 3, 3, 6, 0, 1, 3, 5, 6, - 4, 4, 1, 3, 3, 1, 1, 1, 1, 4, - 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, + 2, 2, 3, 4, 2, 2, 2, 5, 5, 7, + 4, 4, 3, 3, 2, 4, 3, 3, 2, 1, + 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, + 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, + 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, + 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 5, 4, 7, 6, 7, 6, - 9, 8, 3, 8, 4, 0, 2, 0, 1, 3, - 3, 0, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 0, 2, 3, 1, 1, 1, 1, 3, 8, - 2, 3, 1, 1, 3, 3, 3, 4, 6, 0, - 2, 3, 1, 3, 1, 4, 3, 0, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 0, 2, 2, - 3, 3, 4, 2, 1, 1, 3, 5, 0, 2, - 2, 0, 2, 4, 3, 1, 1, + 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, + 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, + 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, + 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, + 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, + 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, + 0, 2, 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 771, - 772, 0, 0, 0, 0, 0, 0, 849, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 773, + 774, 0, 0, 0, 0, 0, 0, 851, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 828, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, - 770, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 830, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 792, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 560, 722, 0, 699, 707, - 705, 0, 708, 709, 710, 711, 712, 713, 718, 719, - 720, 721, 677, 706, 0, 698, 0, 0, 0, 495, - 0, 561, 562, 563, 0, 0, 0, 0, 0, 0, - 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 562, 724, 0, 701, 709, + 707, 0, 710, 711, 712, 713, 714, 715, 720, 721, + 722, 723, 679, 708, 0, 700, 0, 0, 0, 495, + 0, 563, 564, 565, 0, 0, 0, 0, 0, 0, + 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 802, 820, 838, 852, 0, 0, 0, 0, 0, + 0, 804, 822, 840, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 566, 0, 559, 0, 31, 0, 0, 0, 0, + 0, 568, 0, 561, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 787, 0, 0, 793, - 794, 795, 797, 0, 798, 799, 800, 801, 0, 850, - 851, 0, 0, 0, 714, 715, 716, 717, 676, 0, - 679, 0, 700, 702, 237, 238, 0, 0, 680, 0, - 0, 0, 0, 0, 0, 693, 0, 685, 0, 0, - 0, 0, 0, 684, 683, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 64, 440, 68, 733, 0, 0, + 73, 0, 0, 103, 0, 21, 789, 0, 0, 795, + 796, 797, 799, 0, 800, 801, 802, 803, 0, 852, + 853, 0, 0, 0, 716, 717, 718, 719, 678, 0, + 681, 0, 702, 704, 237, 238, 0, 0, 682, 0, + 0, 0, 0, 0, 0, 695, 0, 687, 0, 0, + 0, 0, 0, 686, 685, 0, 0, 0, 0, 0, + 234, 0, 0, 0, 64, 440, 68, 735, 0, 0, 496, 497, 499, 500, 501, 502, 503, 504, 498, 505, 506, 507, 508, 509, 0, 375, 0, 338, 346, 347, 0, 0, 0, 0, 368, 5, 0, 511, 0, 0, @@ -564,475 +564,475 @@ static int yydefred[] = { 1, 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, - 412, 436, 0, 0, 0, 0, 783, 773, 0, 0, - 831, 830, 829, 0, 0, 0, 213, 0, 199, 193, + 412, 436, 0, 0, 0, 0, 785, 775, 0, 0, + 833, 832, 831, 0, 0, 0, 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, - 197, 0, 0, 391, 0, 0, 0, 0, 0, 742, - 0, 741, 0, 0, 0, 0, 0, 314, 315, 0, - 0, 0, 0, 75, 69, 0, 96, 789, 0, 0, - 796, 0, 678, 701, 0, 0, 0, 0, 692, 0, - 0, 0, 0, 0, 691, 0, 0, 0, 0, 726, - 681, 0, 723, 0, 0, 0, 0, 0, 0, 0, + 197, 0, 0, 391, 0, 0, 0, 0, 0, 744, + 0, 743, 0, 0, 0, 0, 0, 314, 315, 0, + 0, 0, 0, 75, 69, 0, 96, 791, 0, 0, + 798, 0, 680, 703, 0, 0, 0, 0, 694, 0, + 0, 0, 0, 0, 693, 0, 0, 0, 0, 728, + 683, 0, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, 256, 0, 0, - 828, 0, 0, 3, 0, 339, 174, 175, 177, 176, + 830, 0, 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, 350, 513, 512, - 516, 517, 44, 0, 0, 510, 518, 519, 522, 521, - 523, 527, 528, 0, 526, 0, 529, 0, 0, 0, - 0, 534, 0, 0, 0, 0, 0, 385, 0, 383, + 518, 519, 44, 0, 0, 510, 520, 521, 524, 523, + 525, 529, 530, 0, 528, 0, 531, 0, 0, 0, + 0, 536, 0, 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 372, 0, 0, 0, 0, 12, 805, 813, 814, 803, - 806, 0, 0, 825, 0, 0, 13, 0, 823, 0, - 821, 0, 0, 0, 0, 14, 845, 846, 839, 0, - 0, 15, 856, 857, 853, 0, 125, 126, 127, 128, + 372, 0, 0, 0, 0, 12, 807, 815, 816, 805, + 808, 0, 0, 827, 0, 0, 13, 0, 825, 0, + 823, 0, 0, 0, 0, 14, 847, 848, 841, 0, + 0, 15, 858, 859, 855, 0, 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, - 404, 0, 0, 832, 833, 834, 835, 836, 837, 0, + 404, 0, 0, 834, 835, 836, 837, 838, 839, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 690, 0, 0, 0, 0, 0, 0, 0, 0, 682, - 689, 0, 0, 0, 0, 0, 179, 180, 0, 0, - 0, 0, 0, 139, 0, 245, 259, 838, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 514, 0, 0, 0, 0, 0, 0, 520, - 0, 551, 0, 0, 0, 549, 367, 384, 370, 0, - 387, 376, 377, 378, 379, 381, 382, 380, 0, 0, - 0, 0, 808, 807, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 844, 0, 0, 0, 0, - 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 401, 0, 0, 0, 0, 0, 398, 403, 0, 775, - 0, 0, 586, 624, 578, 579, 0, 613, 580, 581, - 582, 583, 584, 585, 615, 591, 592, 593, 594, 0, - 0, 0, 621, 0, 0, 0, 0, 576, 577, 600, - 601, 602, 619, 603, 604, 605, 606, 0, 0, 609, - 0, 617, 623, 273, 0, 0, 0, 0, 0, 0, - 0, 730, 0, 0, 0, 0, 735, 0, 35, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 444, 0, 77, 0, 97, 98, - 0, 99, 100, 101, 0, 0, 0, 0, 686, 687, - 728, 724, 0, 0, 0, 244, 243, 0, 0, 258, - 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 0, 0, 0, 358, 0, 0, 0, 0, 0, - 0, 359, 0, 0, 0, 515, 0, 532, 0, 0, - 535, 0, 0, 0, 344, 0, 0, 0, 373, 374, - 804, 815, 0, 817, 809, 812, 790, 816, 822, 824, - 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, - 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, - 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, - 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, - 410, 409, 408, 407, 405, 406, 0, 0, 207, 614, - 587, 588, 589, 590, 0, 610, 616, 618, 622, 0, - 0, 0, 620, 607, 608, 662, 631, 632, 0, 659, - 633, 634, 635, 636, 637, 638, 661, 643, 644, 645, - 646, 629, 630, 651, 652, 653, 654, 655, 656, 657, - 658, 628, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 647, 0, 0, 595, 200, - 0, 209, 0, 191, 0, 746, 747, 749, 748, 0, - 745, 0, 744, 731, 0, 738, 78, 75, 70, 0, - 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 82, 0, 80, 0, 95, 0, 0, 0, 190, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, - 0, 0, 172, 251, 252, 253, 254, 246, 0, 0, - 0, 173, 265, 264, 266, 267, 260, 181, 0, 362, - 0, 365, 366, 0, 45, 46, 0, 531, 0, 537, - 538, 345, 0, 550, 0, 0, 0, 843, 854, 0, - 0, 160, 0, 0, 0, 145, 0, 163, 0, 0, - 296, 0, 0, 0, 318, 319, 320, 321, 0, 0, - 779, 0, 777, 0, 0, 0, 0, 660, 639, 640, - 641, 642, 649, 0, 0, 650, 0, 596, 0, 272, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 0, 211, 441, 0, 0, 78, - 0, 0, 0, 217, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 0, 87, 86, 0, 435, 784, 688, 0, 186, - 0, 189, 0, 0, 247, 248, 249, 250, 263, 261, - 262, 357, 0, 0, 533, 553, 388, 389, 0, 155, - 0, 0, 166, 0, 165, 162, 0, 0, 309, 310, - 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 0, 597, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 739, 67, 169, 0, 0, 434, - 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 424, 0, 423, 0, 422, 0, 421, 0, 419, - 417, 0, 418, 420, 0, 432, 0, 431, 0, 430, - 0, 429, 0, 450, 0, 446, 445, 0, 449, 0, - 448, 0, 0, 90, 0, 0, 0, 0, 0, 0, - 364, 0, 0, 158, 161, 146, 295, 313, 270, 0, - 781, 0, 0, 573, 0, 599, 0, 750, 0, 0, - 0, 755, 740, 215, 214, 484, 480, 428, 0, 427, - 0, 426, 0, 425, 0, 482, 480, 478, 476, 470, - 473, 482, 480, 478, 476, 493, 486, 447, 489, 89, - 91, 0, 0, 188, 0, 0, 0, 0, 168, 0, - 0, 626, 0, 572, 0, 598, 0, 0, 0, 0, - 0, 482, 480, 478, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, - 0, 0, 0, 810, 322, 0, 752, 753, 754, 466, - 485, 465, 481, 0, 0, 0, 0, 456, 483, 455, - 454, 479, 453, 477, 451, 472, 471, 452, 474, 475, - 460, 459, 458, 457, 469, 494, 488, 487, 467, 490, - 0, 468, 492, 255, 0, 0, 0, 0, 0, 464, - 463, 462, 461, 491, 0, 0, 360, 0, 327, 323, - 332, 333, 334, 335, 336, 324, 325, 326, 328, 329, - 330, 331, 274, 0, 0, 0, 0, 571, 0, 0, - 0, 0, 182, 337, 0, 0, 0, 0, 0, 0, - 0, 0, 183, + 692, 0, 0, 0, 0, 0, 0, 0, 0, 684, + 691, 0, 0, 0, 0, 0, 179, 180, 0, 0, + 0, 0, 0, 139, 0, 245, 259, 840, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 514, 0, 0, 0, 0, 0, 0, + 522, 0, 553, 0, 0, 0, 551, 367, 384, 370, + 0, 387, 376, 377, 378, 379, 381, 382, 380, 0, + 0, 0, 0, 810, 809, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 846, 0, 0, 0, + 0, 0, 0, 151, 153, 152, 154, 0, 149, 150, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 401, 0, 0, 0, 0, 0, 398, 403, 0, + 777, 0, 0, 588, 626, 580, 581, 0, 615, 582, + 583, 584, 585, 586, 587, 617, 593, 594, 595, 596, + 0, 0, 0, 623, 0, 0, 0, 0, 578, 579, + 602, 603, 604, 621, 605, 606, 607, 608, 0, 0, + 611, 0, 619, 625, 273, 0, 0, 0, 0, 0, + 0, 0, 732, 0, 0, 0, 0, 737, 0, 35, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 444, 0, 77, 0, 97, + 98, 0, 99, 100, 101, 0, 0, 0, 0, 688, + 689, 730, 726, 0, 0, 0, 244, 243, 0, 0, + 258, 257, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 0, 0, 0, 358, 0, 0, 0, 0, + 0, 0, 359, 0, 0, 0, 517, 516, 0, 534, + 0, 0, 537, 0, 0, 0, 344, 0, 0, 0, + 373, 374, 806, 817, 0, 819, 811, 814, 792, 818, + 824, 826, 0, 0, 0, 0, 0, 134, 0, 0, + 0, 0, 157, 0, 0, 0, 148, 141, 294, 0, + 0, 0, 305, 306, 307, 308, 300, 301, 302, 299, + 303, 304, 0, 0, 297, 0, 0, 0, 0, 0, + 0, 402, 410, 409, 408, 407, 405, 406, 0, 0, + 207, 616, 589, 590, 591, 592, 0, 612, 618, 620, + 624, 0, 0, 0, 622, 609, 610, 664, 633, 634, + 0, 661, 635, 636, 637, 638, 639, 640, 663, 645, + 646, 647, 648, 631, 632, 653, 654, 655, 656, 657, + 658, 659, 660, 630, 665, 666, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 649, 0, 0, + 597, 200, 0, 209, 0, 191, 0, 748, 749, 751, + 750, 0, 747, 0, 746, 733, 0, 740, 78, 75, + 70, 0, 0, 544, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 81, 82, 0, 80, 0, 95, 0, 0, + 0, 190, 0, 0, 0, 0, 0, 0, 0, 171, + 0, 0, 0, 0, 172, 251, 252, 253, 254, 246, + 0, 0, 0, 173, 265, 264, 266, 267, 260, 181, + 0, 362, 0, 365, 366, 0, 45, 46, 0, 533, + 0, 539, 540, 345, 0, 552, 0, 0, 0, 845, + 856, 0, 0, 160, 0, 0, 0, 145, 0, 163, + 0, 0, 296, 0, 0, 0, 318, 319, 320, 321, + 0, 0, 781, 0, 779, 0, 0, 0, 0, 662, + 641, 642, 643, 644, 651, 0, 0, 652, 0, 598, + 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 211, 441, 0, + 0, 78, 0, 0, 0, 217, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 0, 87, 86, 0, 435, 786, 690, + 0, 186, 0, 189, 0, 0, 247, 248, 249, 250, + 263, 261, 262, 357, 0, 0, 535, 555, 388, 389, + 0, 155, 0, 0, 166, 0, 165, 162, 0, 0, + 309, 310, 311, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 650, 0, 0, 599, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 741, 67, 169, 0, + 0, 434, 0, 433, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 424, 0, 423, 0, 422, 0, 421, + 0, 419, 417, 0, 418, 420, 0, 432, 0, 431, + 0, 430, 0, 429, 0, 450, 0, 446, 445, 0, + 449, 0, 448, 0, 0, 90, 0, 0, 0, 0, + 0, 0, 364, 0, 0, 158, 161, 146, 295, 313, + 270, 0, 783, 0, 0, 575, 0, 601, 0, 752, + 0, 0, 0, 757, 742, 215, 214, 484, 480, 428, + 0, 427, 0, 426, 0, 425, 0, 482, 480, 478, + 476, 470, 473, 482, 480, 478, 476, 493, 486, 447, + 489, 89, 91, 0, 0, 188, 0, 0, 0, 0, + 168, 0, 0, 628, 0, 574, 0, 600, 0, 0, + 0, 0, 0, 482, 480, 478, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 0, 0, 0, 0, 812, 322, 0, 754, 755, + 756, 466, 485, 465, 481, 0, 0, 0, 0, 456, + 483, 455, 454, 479, 453, 477, 451, 472, 471, 452, + 474, 475, 460, 459, 458, 457, 469, 494, 488, 487, + 467, 490, 0, 468, 492, 255, 0, 0, 0, 0, + 0, 464, 463, 462, 461, 491, 0, 0, 360, 0, + 327, 323, 332, 333, 334, 335, 336, 324, 325, 326, + 328, 329, 330, 331, 274, 0, 0, 0, 0, 573, + 0, 0, 0, 0, 182, 337, 0, 0, 0, 0, + 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 472, 859, 159, 738, 105, 106, 764, 35, - 36, 685, 743, 411, 1077, 73, 1089, 790, 791, 979, - 980, 1026, 1488, 1489, 557, 1544, 744, 745, 746, 211, - 503, 504, 175, 176, 855, 856, 1084, 665, 1091, 1009, - 1256, 894, 895, 1510, 1511, 1506, 1501, 1508, 1509, 1500, - 1517, 1518, 1516, 161, 681, 506, 507, 1204, 1205, 984, - 683, 1315, 684, 896, 671, 672, 1143, 765, 1208, 792, + 158, 71, 472, 860, 159, 739, 105, 106, 765, 35, + 36, 685, 744, 411, 1079, 73, 1091, 791, 792, 981, + 982, 1028, 1490, 1491, 557, 1546, 745, 746, 747, 211, + 503, 504, 175, 176, 856, 857, 1086, 665, 1093, 1011, + 1258, 895, 896, 1512, 1513, 1508, 1503, 1510, 1511, 1502, + 1519, 1520, 1518, 161, 681, 506, 507, 1206, 1207, 986, + 683, 1317, 684, 897, 671, 672, 1145, 766, 1210, 793, 634, 212, 229, 230, 107, 231, 108, 214, 187, 190, - 208, 1568, 705, 706, 796, 666, 667, 92, 37, 113, + 208, 1570, 705, 706, 797, 666, 667, 92, 37, 113, 479, 115, 205, 116, 38, 39, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 40, 41, 299, 42, 43, 181, 44, 343, 46, 47, 344, 49, 50, 357, 51, 358, 52, 359, 53, 360, 54, 345, 346, 347, 58, 348, 293, 60, 61, - 62, 189, 386, 636, 534, 535, 932, 536, 933, 537, - 215, 1168, 1177, 63, 857, 349, 350, 351, 352, 751, - 354, 355, 582, 583, 356, 584, 752, 585, 586, 587, - 588, 64, 201, 76, 423, 424, 898, 65, 608, 600, + 62, 189, 386, 636, 534, 535, 933, 536, 934, 537, + 215, 1170, 1179, 63, 858, 349, 350, 351, 352, 752, + 354, 355, 582, 583, 356, 584, 753, 585, 586, 587, + 588, 64, 201, 76, 423, 424, 899, 65, 608, 600, 601, 602, 603, 610, 611, 619, 625, }; static int yysindex[] = { 0, -15657, 0, -367, 638, 0, 42, -241, 1682, 1682, 0, - 0, -117, 1258, 172, 98, -324, -185, 0, -36, 60, - 60, -17, -17,12974, 229, 0, 638, 638, 638, 638, - 0, 0, 133, 0, 157, 157, 157, 0, 0, 0, - 255, 320, 0, 0, 0, 0, 0, 0, 0, 334, - 349, 399, 413, 0, 0, 0, 0, 0, 0, 157, - 0, 265, 0, 1344, 60, 0, 0, 0, 0, 498, - 0, 60, 0, 0, 0, 703, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1790, -12, 558, 0, 0, 578, 582, 0, 0, - 714, 977, 977,13177,11603, 0, 593, 0, 0, 599, - 60, 60, 318, 0, 2323, 836, 638, 498, 0, 0, - 0, 0, 0, 0, 0, 0, 0,11603, 0, 0, - 0, 930, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 356, 116, 493, 0, - 863, 0, 0, 0, 2363, 38, 226, 498, 630, 43, - 0, 290, 336, 0, 343, 348, 1662, 116, 44, 498, - 498, 498, 0, 0, 657, 478, 716, 725, 0, 0, -14537, 0, 0, 0, 0, 736, 3923, 1790, 473, 6571, - 758, 65, 75, 84, 91, 101, 102, 765, 801, 772, - 0, 0, 157, 29, 1001, 638, 734,12600, 779, 95, - 533, 0, 231, 0, 977, 0, 814, 58, 820, 610, - 60, 60, 0, 0, 0, 0, 0, 0, 0, 873, - 0,12195, 111, 0, 835, 0, 0, 6, 2323, 0, - 0, 0, 0, 456, 0, 0, 0, 0, 498, 0, - 0, 9, 498, 0, 0, 0, 0, 0, 0, 116, - 0, 656, 0, 0, 0, 0,12760, 380, 0, 638, - 915, 117, 921, 859, 498, 0, 638, 0, 958, 982, - 638, 72,11603, 0, 0, 638, 638, 638, 638,11603, - 0, 116, 908, 820, 0, 0, 0, 0, 911,15546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60, 0, 60, 0, 0, 0, - 60, 948, -51,13280, 0, 0, 985, 0, 429, 60, - -17, 454, 429, 1662, 472, 1014, 1790, -127, 977,13177, - 1032, 157, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 1042, 427, 5871, 15, 979, 854, - 0, 1038, 0, 0, 0, 0, 0, 0, 983, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 131, 0, 1790, 0, 1046, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1061, 0, 0, 1073, 60, 60, - 0, 60, 0, 60, 0, -17, 0, 644, 0, 644, - 0, 0, 992, 1088, 703, 1095, 0, 0, 60, 60, - 0, 0, 0, 1372, 498, 0, 0, 1097, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1103, 475, 0, 638, 123, 889, 1058,11603, 0, -13380, 0, 920, 1141, 1152, 1153, 1662, 0, 0, 85, - 498, 1135, 923, 0, 0, 820, 0, 0, 740, 16, - 0, 638, 0, 0, 498, 924, 859, 498, 0, 434, - 638, 638, 638, 498, 0, 498, 1790, 1790, 498, 0, - 0, 960, 0, 156, 533, 1175, 1195, 498, 498, 498, - 498,12345, 0, 0, 882, 0, 0, 0, 60, 60, - 0, -289,13483, 0, 1125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1128, 1136, 1137, 0, 0, 0, - 1192, 60, -19, 345, 60, 0, 1000, 0, 0, 0, - 0, 0, 0, 1238, 1240, 0, 0, 0, 0, 0, - 0, 0, 0,12760, 0, 125, 0, 1242, 820, 157, -11603, 0, 429, 1243, 1245, 0,14636, 0, 1790, 0, - 0, 0, 1042, -53, -53, -53, -53, 427, 966, 976, - 0, 827, 1239, 14, 34, 0, 0, 0, 0, 0, - 0, 157, 157, 0, 1244, 1246, 0, 157, 0, 157, - 0, 1268, -55, 638, 839, 0, 0, 0, 0, 638, - 846, 0, 0, 0, 0, 60, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 1276, 60, 889, 6900, 889, - 1287, 1241, 1292, 1295, 1298, 1300, 1301, 0, 801, 1316, - 0, 1306, 1334, 0, 0, 0, 0, 0, 0, 60, -15968, 21, 445, 0, 539, 1339, 1337, 0, 670, 760, - 1340, 1262, 1322, 0, 1138, 0, 0, 1327, 7211, 1358, - 1360, 439, 1279, 3130, 650, 157, 638, 498, 638, 498, - 0, 638, 630, 630, 630, 1364, 1368, 60, 72, 0, - 0,11603, 1370, 1790,13077, 749, 0, 0, 1001, 468, - 523, 0, 1140, 0,14788, 0, 0, 0, 60, 1318, - 60, 498, 60, 838, 1319,11603, 439, 60, -17, 498, - 1142, 703, 0, 889, 1374, 634, 1379, 1377, 1380, 0, - 0, 0, 6900, 1385, 1383, 0, 0, 0, 0, 429, - 0, 0, 0, 0, 0, 0, 0, 0, 703, 60, - 60, 1388, 0, 0, 1371, 1392, 820, 1394, 1401, 1393, - 1403, 1404, 1405, 60, 638, 0, 498, 638, 23, 638, - 1413, 1417, 0, 0, 0, 0, 1164, 0, 0, 152, - 148, 1397, 1790, 1419, 11, 902, -178, 37, 777, 1373, - 0, 1373, 1373, 1373, 1373, 1373, 0, 0, 60, 0, - 60, 1420, 0, 0, 0, 0, 973, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1422, - 968, 980, 0, 967, 1432, 13, 1196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1422, 1422, 0, - 3250, 0, 0, 0, 161, 1433, 157, 703, 1414, 0, - 1511, 0, 889, 1352, 0,13380, 0, 1363, 0, 144, - 60, 1421, 0, 0, 498, 1135, 0, 107, 128, 984, - 147, 154, 203, 437, 485, 508, 557, 612, 619, 631, - 676, 684, 712, 0, 0, 447, 0, 157, 0, 0, - 703, 0, 0, 0, 1440, 498, 498, 630, 0, 0, - 0, 0, 533, 0, 1035, 0, 0, 498, 638, 0, - 0,11603, 498, 60, 498, 60, 953,11603, 439,12550, - 0, 382, 436, 1003, 0, 1098, 1395, 1398, 1790, 1414, -12760, 0, 1449, 1451, 638, 0, 1028, 0, 0, 429, - 0, 429, 1453, 37, 0, 0, 1185, 1187, 0, 0, - 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 1464, 630, 498, 60, 498, 0, 60, 1473, 1164, 1790, - 0, 1790, 1054, 638, 0, 0, 0, 889, 1650, 1482, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1465, 1467, 0, 1435, 1439, 1454, 1455, 1486, 439, 0, - 0, 0, 0, 0, 0, 0, 1489, 0, 0, 0, - 0, 0, 0, 0, 1041, 0, 0, 0, 0, 889, - 1461, 1468, 0, 0, 0, 0, 0, 0, 1087, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -3, 39, 0, 0, - -31, 0, 1931, 0, 1515, 0, 0, 0, 0, 820, - 0, 1524, 0, 0, 1442, 0, 0, 0, 0, 820, - 1475, 0, 1525, 1528, 1530, 1531, 271, 60, 60, 60, - 731, 761, 762, 764, 60, 60, 60, 60, 60, 60, - -17, 60, 893, 60, 828, 60, 60, 60, 60, 60, - 60, 60, -17, 60, 3130, 60, -137, 60, 774, 60, - 0, 0, 3045, 0, 1536, 0, 1156, 1538, 1662, 0, - 498, 475, 1494, 1497, 1790,12760, 1071, 0, 1662, 1662, - 1662, 1662, 0, 0, 0, 0, 0, 0, 1662, 1662, - 1662, 0, 0, 0, 0, 0, 0, 0, 703, 0, - 1547, 0, 0, 1320, 0, 0, 498, 0, 1551, 0, - 0, 0, 703, 0, 703, 60, 1535, 0, 0, 1559, - 60, 0, 638, 1562, 1561, 0, 1, 0, 1054, 820, - 0, 60, 484, 496, 0, 0, 0, 0,15968, 1549, - 0, 60, 0, 1550, 860, 60, 60, 0, 0, 0, - 0, 0, 0, 889, 1522, 0, 60, 0, 71, 0, - 1576, 1577, 1064, 1578, 1579, 1580, 1583, 1589, 1593, 1597, - 1600, 1601, 1606, 0, 820, 0, 0, 60, 848, 0, - 89, 1532, 1588, 0, 0, 0, 0, 1612, 1574, 1627, - 1584, 60, 60, 60, 60, 60, 60, -17, 60, 1635, - 1585, 1638, 1590, 1640, 1591, 1641, 1592, 1645, 1646, 1595, - 1648, 1653, 1602, 1655, 1614, 1664, 1615, 1669, 1625, 1686, - 1630, 1691, 1649, 1692, 1702, 1652, 1706, 1485, 1709, 1658, - 0, 785, 0, 0, 620, 0, 0, 0, 575, 0, - 1708, 0, 1481, 977, 0, 0, 0, 0, 0, 0, - 0, 0, 1790, 439, 0, 0, 0, 0, 14, 0, - 1716, 1054, 0, 1790, 0, 0, 1837, 1717, 0, 0, - 0, 0, 1718, 1738, 0, 60, 889, 1687, 1688, 820, - 0, 1689, 60, 0, 1743, 1744, 1745, 1746, 1747, 1729, - 1731, 1732, 1750, 96, 0, 0, 0, 1751, 1752, 0, - 1755, 0, 1761, 1763, 1712, 1765, 1715, 1768, 1721, 1769, - 1722, 0, 1771, 0, 1776, 0, 1777, 0, 1778, 0, - 0, 1779, 0, 0, 1780, 0, 1781, 0, 1782, 0, - 1784, 0, 1785, 0, 1787, 0, 0, 1788, 0, 1789, - 0, 1793, 1609, 0, 1786, 185, 0, 1790, 439,11603, - 0, 1813, 1816, 0, 0, 0, 0, 0, 0, 0, - 0, 1834, 912, 0,15999, 0, 1791, 0, 60, 60, - 60, 0, 0, 0, 0, 0, 0, 0, 1840, 0, - 1842, 0, 1843, 0, 1845, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3130, 1836, 0, 1813,12760, 1795, 1851, 0, 14, - 1855, 0, 889, 0, 0, 0, 1856, 1858, 1860, 30, - 25, 0, 0, 0, 0, 51, 69, 76, 198, 303, - 234, 78, 97, 132, 210, 1735, 24, 126, 0, 1414, - 1866, 1639, 0, 0, 0, 905, 0, 0, 0, 0, - 0, 0, 0, 163, 167, 181, 239, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1659, 0, 0, 0, 0, 439, 1874, 2753, 889, 0, - 0, 0, 0, 0, 1880, 1884, 0, 1885, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1127, 1418, 0, 60, 0, 1572, 1891, - 1892, 977, 0, 0,11603,12760, 1665, 439, 1813, 1900, - 0, 1901, 0, +15661, 0, -370, 672, 0, 80, -221, 1957, 1957, 0, + 0, -146, 1096, 133, 107, -322, -258, 0, -37, -25, + -25, 253, 253,12978, 125, 0, 672, 672, 672, 672, + 0, 0, 98, 0, 120, 120, 120, 0, 0, 0, + 142, 280, 0, 0, 0, 0, 0, 0, 0, 299, + 356, 364, 410, 0, 0, 0, 0, 0, 0, 120, + 0, 76, 0, 606, -25, 0, 0, 0, 0, 496, + 0, -25, 0, 0, 0, -8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1794, 19, 519, 0, 0, 545, 560, 0, 0, + 734, 755, 755,13181,11607, 0, 582, 0, 0, 566, + -25, -25, 231, 0, 1154, 648, 672, 496, 0, 0, + 0, 0, 0, 0, 0, 0, 0,11607, 0, 0, + 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 878, 0, 323, 878, 726, 0, + 7215, 0, 0, 0, 1760, 34, 532, 496, 601, 264, + 0, 285, 288, 0, 309, 321, 1659, 878, 24, 496, + 496, 496, 0, 0, 649, 518, 748, 777, 0, 0, +14541, 0, 0, 0, 0, 833, 4803, 1794, 513, 6575, + 805, 65, 67, 90, 91, 101, 151, 818, 1362, 837, + 0, 0, 120, 74, 853, 672, 807,12604, 825, 96, + 128, 0, 160, 0, 755, 0, 864, 46, 870, 662, + -25, -25, 0, 0, 0, 0, 0, 0, 0, 890, + 0,12199, 111, 0, 844, 0, 0, -2, 1154, 0, + 0, 0, 0, 491, 0, 0, 0, 0, 496, 0, + 0, -3, 496, 0, 0, 0, 0, 0, 0, 878, + 0, 690, 0, 0, 0, 0,12764, 553, 0, 672, + 896, 82, 898, 739, 496, 0, 672, 0, 956, 989, + 672, 12,11607, 0, 0, 672, 672, 672, 672,11607, + 0, 878, 909, 870, 0, 0, 0, 0,12554,15550, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -25, 0, -25, 0, 0, 0, + -25, 953, -42,13284, 0, 0, 995, 0, 760, -25, + 253, 293, 760, 1659, 6904, 1023, 1794, -165, 755,13181, + 1026, 120, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 785, 318, 5875, 229, 1974, 268, + 0, 1029, 0, 0, 0, 0, 0, 0, 793, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 393, 0, 1794, 0, 1033, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 0, 0, 1043, -25, -25, + 0, -25, 0, -25, 0, 253, 0, 711, 0, 711, + 0, 0, 962, 1056, -8, 1062, 0, 0, -25, -25, + 0, 0, 0, 1020, 496, 0, 0, 1075, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1077, 811, 0, 672, 185, 859, 1006,11607, 0, +13384, 0, 871, 1091, 1099, 1106, 1659, 0, 0, 115, + 496, 1089, 877, 0, 0, 870, 0, 0, 698, 14, + 0, 672, 0, 0, 496, 908, 739, 496, 0, 370, + 672, 672, 672, 496, 0, 496, 1794, 1794, 496, 0, + 0, 914, 0, 43, 128, 1130, 1156, 496, 496, 496, + 496,12349, 0, 0, 840, 0, 0, 0, -25, -25, + 0, -290,13487, 0, 1079, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1083, 1100, 1114, 0, 0, 0, + 1149, -25, 367, 596, -25, 0, 961, 0, 0, 0, + 0, 0, 0, 1199, 1201, 0, 0, 0, 0, 0, + 0, 0, 0,12764, 0, 48, 0, 1205, 870, 120, +11607, 0, 760, 1207, 1206, 0,14640, 0, 1794, 0, + 0, 0, 785, -62, -62, -62, -62, 318, 933, 939, + 0, 781, 1203, 106, 18, 0, 0, 0, 0, 0, + 0, 120, 120, 0, 1210, 1211, 0, 120, 0, 120, + 0, 1252, -127, 672, 812, 0, 0, 0, 0, 672, + 826, 0, 0, 0, 0, -25, 0, 0, 0, 0, + 0, 0, 45, 0, 0, 1258, -25, 859, 1170, 859, + 1255, 1214, 1267, 1268, 1274, 1278, 1281, 0, 1362, 1285, + 0, 1269, 1287, 0, 0, 0, 0, 0, 0, -25, +16016, 16, 450, 0, 172, 1292, 1293, 0, 176, 895, + 1294, 1215, 1275, 0, 1078, 0, 0, 1282, 7526, 1309, + 1314, 540, 1230, 3561, 497, 120, 672, 496, 672, 496, + 0, 672, 601, 601, 601, 1316, 1317, -25, 12, 0, + 0,11607, 1319, 1794,13081, 1021, 0, 0, 853, 618, + 636, 0, 1090, 0,14792, 0, 0, 0, -25, 1276, + -25, 496, -25, 428, 1277,11607, 540, -25, 253, 496, + 1093, 760, 0, 0, 859, 1331, 804, 1329, 1339, 1338, + 0, 0, 0, 1170, 1348, 1346, 0, 0, 0, 0, + 760, 0, 0, 0, 0, 0, 0, 0, 0, -8, + -25, -25, 1354, 0, 0, 1337, 1357, 870, 1360, 1363, + 1366, 1367, 1368, 1371, -25, 672, 0, 496, 672, 17, + 672, 1372, 1376, 0, 0, 0, 0, 1109, 0, 0, + 452, 341, 1358, 1794, 1378, 3, 156, -208, 35, 534, + 1332, 0, 1332, 1332, 1332, 1332, 1332, 0, 0, -25, + 0, -25, 1383, 0, 0, 0, 0, 996, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1385, 910, 936, 0, 926, 1394, -364, 1158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1385, 1385, + 0, 4130, 0, 0, 0, 524, 1397, 120, -8, 1379, + 0, 1359, 0, 859, 1318, 0,13384, 0, 1321, 0, + 127, -25, 1377, 0, 0, 496, 1089, 0, 384, 386, + 932, 440, 441, 473, 481, 521, 550, 565, 568, 581, + 583, 598, 627, 681, 0, 0, -14, 0, 120, 0, + 0, -8, 0, 0, 0, 1414, 496, 496, 601, 0, + 0, 0, 0, 128, 0, 1007, 0, 0, 496, 672, + 0, 0,11607, 496, -25, 496, -25, 806,11607, 540, +15730, 0, 1145, 1246, 2412, 0, 1073, 1373, 1384, 1794, + 1379,12764, 0, 1428, 1429, 672, 0, 0, 827, 0, + 0, 760, 0, 760, 1430, 35, 0, 0, 1162, 1164, + 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 0, 1444, 601, 496, -25, 496, 0, -25, 1448, + 1109, 1794, 0, 1794, 901, 672, 0, 0, 0, 859, + 670, 1450, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1433, 1434, 0, 1403, 1406, 1407, 1413, 1467, + 540, 0, 0, 0, 0, 0, 0, 0, 1464, 0, + 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, + 0, 859, 1421, 1423, 0, 0, 0, 0, 0, 0, + 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -6, 179, + 0, 0, -29, 0, 1846, 0, 1475, 0, 0, 0, + 0, 870, 0, 1477, 0, 0, 1395, 0, 0, 0, + 0, 870, 1439, 0, 1481, 1482, 1506, 1507, 411, -25, + -25, -25, 688, 721, 791, 794, -25, -25, -25, -25, + -25, -25, 253, -25, 663, -25, 922, -25, -25, -25, + -25, -25, -25, -25, 253, -25, 3561, -25, -123, -25, + 1057, -25, 0, 0, 3136, 0, 1508, 0, 1128, 1513, + 1659, 0, 496, 811, 1455, 1462, 1794,12764, 1045, 0, + 1659, 1659, 1659, 1659, 0, 0, 0, 0, 0, 0, + 1659, 1659, 1659, 0, 0, 0, 0, 0, 0, 0, + -8, 0, 1516, 0, 0, 1283, 0, 0, 496, 0, + 1520, 0, 0, 0, -8, 0, -8, -25, 1504, 0, + 0, 1522, -25, 0, 672, 1525, 1524, 0, 45, 0, + 901, 870, 0, -25, 461, 713, 0, 0, 0, 0, +16016, 1509, 0, -25, 0, 1518, 1067, -25, -25, 0, + 0, 0, 0, 0, 0, 859, 1487, 0, -25, 0, + 49, 0, 1541, 1544, 1004, 1547, 1549, 1552, 1553, 1560, + 1561, 1562, 1564, 1565, 1567, 0, 870, 0, 0, -25, + 584, 0, 203, 1486, 1551, 0, 0, 0, 0, 1576, + 1531, 1577, 1532, -25, -25, -25, -25, -25, -25, 253, + -25, 1585, 1535, 1589, 1542, 1598, 1554, 1600, 1558, 1611, + 1618, 1579, 1628, 1629, 1580, 1634, 1595, 1637, 1596, 1649, + 1599, 1650, 1607, 1652, 1608, 1665, 1666, 1615, 1668, 1449, + 1670, 1638, 0, -17, 0, 0, 720, 0, 0, 0, + 62, 0, 1678, 0, 1453, 755, 0, 0, 0, 0, + 0, 0, 0, 0, 1794, 540, 0, 0, 0, 0, + 106, 0, 1695, 901, 0, 1794, 0, 0, 742, 1696, + 0, 0, 0, 0, 1701, 1703, 0, -25, 859, 1651, + 1653, 870, 0, 1654, -25, 0, 1705, 1709, 1711, 1712, + 1713, 1697, 1698, 1704, 1718, 212, 0, 0, 0, 1720, + 1722, 0, 1728, 0, 1729, 1731, 1677, 1732, 1684, 1737, + 1686, 1739, 1699, 0, 1749, 0, 1750, 0, 1751, 0, + 1754, 0, 0, 1755, 0, 0, 1756, 0, 1757, 0, + 1758, 0, 1759, 0, 1765, 0, 1769, 0, 0, 1770, + 0, 1771, 0, 1773, 1555, 0, 1721, 54, 0, 1794, + 540,11607, 0, 1761, 1762, 0, 0, 0, 0, 0, + 0, 0, 0, 1774, 876, 0,16044, 0, 1726, 0, + -25, -25, -25, 0, 0, 0, 0, 0, 0, 0, + 1782, 0, 1783, 0, 1784, 0, 1785, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3561, 1787, 0, 1761,12764, 1746, 1836, + 0, 106, 1837, 0, 859, 0, 0, 0, 1838, 1840, + 1841, 28, 37, 0, 0, 0, 0, 83, 94, 154, + 102, 218, 405, 164, 167, 168, 143, 1730, 30, 577, + 0, 1379, 1843, 1603, 0, 0, 0, 1084, 0, 0, + 0, 0, 0, 0, 0, 184, 188, 200, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1621, 0, 0, 0, 0, 540, 1845, 1881, + 859, 0, 0, 0, 0, 0, 1847, 1849, 0, 1850, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 911, 1389, 0, -25, 0, + 1529, 1854, 1860, 755, 0, 0,11607,12764, 1631, 540, + 1761, 1863, 0, 1869, 0, }; static int yyrindex[] = { 0, - 0, 0, 4361, 0, 0,12855, 1361, 0, 0, 0, - 0, 0,12014, 0, 0, 325, 2512, 0, 2907, 0, + 0, 0, 5241, 0, 0,12859, 1548, 0, 0, 0, + 0, 0,12018, 0, 0, 373, 1844, 0, 2911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1902, 1902, 1902, 0, 0, 0, + 0, 0, 0, 0, 1876, 1876, 1876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902, - 0, -35, 0, 0, 0, 0, 0, 0, 0, 1818, - 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1876, + 0, -56, 0, 0, 0, 0, 0, 0, 0, 1796, + 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9771, 0, 0, 0, 0, 0, 0, - 7522, 7833, 7833, 0, 0, 0, 8287, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3345, 0, 0, + 0, 0, 0, 9775, 0, 0, 0, 0, 0, 0, + 7837,13783,13783, 0, 0, 0, 8291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1876, 2752, 0, - 0, 0, 0, 0, 0, 0,12014, 1820, 6863, 7174, - 7485, 7796, 0, 0, 0, 1905, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1827, 7833, - 0,11534,11534,11534,11534,11534,11534, 0, 0, 0, - 0, 0, 1902,10149, 0, 0, 0, 0, 0, 0, - 9164, 0,11103, 0,12014, 0, 0, 0,11283, 0, + 0, 0, 0, 0, 0, 0, 0, 1880, 2756, 0, + 0, 0, 0, 0, 0, 0,12018, 1800, 6867, 7178, + 7489, 7800, 0, 0, 0, 1885, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1806,13783, + 0,11538,11538,11538,11538,11538,11538, 0, 0, 0, + 0, 0, 1876,10153, 0, 0, 0, 0, 0, 0, + 9168, 0,11107, 0,12018, 0, 0, 0,11287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1124, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1829, 0, - 0, 1833, 3783, 6561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1807, 0, + 0, 1809, 3787, 6565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4942, 0, 0, 0, 0, 0, - 0, 1915, 1898, 0, 0, 0, 0, 0, 0, 0, - 0, 1820, 0, 8107, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4946, 0, 0, 0, 0, 0, + 0, 1889, 1872, 0, 0, 0, 0, 0, 0, 0, + 0, 1800, 0, 8111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12014, 0, 0, 0, 0,12014, 0, - 0, 1902, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12018, 0, 0, 0, 0,12018, 0, + 0, 1876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1838, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1872, 1438, 0, 0, 0, 0, + 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1813, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1871, 0, 0, 9969, 0, 0,12014, 0, 0, 1915, - 83, 1921, 0, 0, 0, 8543, 0, 0, 4221, 1875, - 0, 0, 0, 0,14051, 0, 0, 5380, 0, 0, - 0, 0, 0, 5818, 0, 2314, 0, 0, 4659, 0, - 0, 376, 0, 0, 74, 0, 1935, 5097, 5535, 5973, -11742, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1812, 0, 0, 9973, 0, 0,12018, 0, 0, 1889, + 87, 1898, 0, 0, 0, 8547, 0, 0, 4225, 1820, + 0, 0, 0, 0,14055, 0, 0, 5384, 0, 0, + 0, 0, 0, 5822, 0, 2318, 0, 0, 4663, 0, + 0, 591, 0, 0, 578, 0, 1882, 5101, 5539, 5977, +11746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,14871, 1902, - 0, 0, 1942, 0, 0,13779, 0, 0, 0, 0, - 0, 0,14968, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,14875, 1876, + 0, 0, 1904, 0, 0, 976, 0, 0, 0, 0, + 0, 0,14972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1902, 1902, 0, 0, 0, 0, 1902, 0, 1902, + 0, 1876, 1876, 0, 0, 0, 0, 1876, 0, 1876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 1877, 0, 3005, 0, 0, + 0, 0, 475, 0, 0, 1823, 0, 1041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,10347, 0, 0, 0, 0, 0, 0, 0, - 108, 2031, 0, 9415, 0, 0, 1961, 0, 0, 0, - 1879, 0, 0, 0, 0, 0, 0, 8723, 1898, 0, - 0, 0, 0, -62, 0, 1902, 0, 1882, 0, 6256, - 0, 0, 3190, 3628, 4066, 0, 0, 444, 530, 0, - 0, 0,12488, 0, 0,12014, 0, 0, 0, 0, + 0, 0,10351, 0, 0, 0, 0, 0, 0, 0, + 119, 2035, 0, 9419, 0, 0, 1906, 0, 0, 0, + 1824, 0, 0, 0, 0, 0, 0, 8727, 1872, 0, + 0, 0, 0, -21, 0, 1876, 0, 1825, 0, 6260, + 0, 0, 3194, 3632, 4070, 0, 0, 729, 750, 0, + 0, 0,12492, 0, 0,12018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,15163, 0, 0, 0, 0, 0, 0, 0,14385, - 0, 0, 0, 0, 0, 0, 1965, 0, 1966, 0, -13779, 0, 0, 0, 1967, 0, 0, 0, 0, 0, + 0,15167, 0, 0, 0, 0, 0, 0, 0,14389, + 0, 0, 0, 0, 0, 0, 0, 1909, 0, 1915, + 0, 976, 0, 0, 0, 1916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 970, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1228, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13569, 0, 0, 400, - 0, 0, 0, 0, 3005, 0, 0, 666, 0,11534, - 0,11534,11534,11534,11534,11534, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2849, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13573, 0, 0, + 475, 0, 0, 0, 0, 1041, 0, 0, 727, 0, +11538, 0,11538,11538,11538,11538,11538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, - 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 751, 751, 0, - -2, 0, 0, 0, 1968, 0, 0, 0, 2469, 9600, - 0, 0, 0, 0, 455, 1871, 0, 0, 0, 0, - 0, 0,13779,13779,13899, 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1886, 0, 1902, 0, 0, - 0, 0, 0, 0, 0, 1887,14203, 4504, 0, 0, - 0, 0, 550,13779, 0, 0, 0, 609, 0, 0, - 0, 0, 1897, 0,15726, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,15260, 0, 0, 0,15343, - 0, 0, 0, 0, 0, 0, 0, 0,13779, 1942, - 0, 1942, 0, 130, 0,13843, 0, 0, 0, 0, + 444, 0, 0, 0, 0, 0, 0, 612, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, + 0, -7, 0, 0, 0, 1917, 0, 0, 0, 2473, + 9604, 0, 0, 0, 0, 108, 1812, 0, 0, 0, + 0, 0, 0, 976, 976,13903, 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1970, 2408, 0, 1133, 0, 0, 0,13569, 0, - 0, 1974, 1962, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1835, 0, 1876, 0, + 0, 0, 0, 0, 0, 0, 1839,14207, 4508, 0, + 0, 0, 0, 758, 976, 0, 0, 0, 661, 0, + 0, 0, 0, 1842, 0,15803, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,15264, 0, 0, 0, +15347, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 976, 1904, 0, 1904, 0, 146, 0,13847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3287, 3725, 0, 657, 0, 0, 0, +13573, 0, 0, 1922, 1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,10527,10725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,10531,10729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,11903, 0,12014, 0, - 1907, 0, 0, 0, 0, 0, 0, 0,12014,12014, -12014,12014, 0, 0, 0, 0, 0, 0,12014,12014, -12014, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,15495, 0, 0, 0, - 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1993, 0, 400, 0, 1962, 3005, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 1995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11907, 0, +12018, 0, 1852, 0, 0, 0, 0, 0, 0, 0, +12018,12018,12018,12018, 0, 0, 0, 0, 0, 0, +12018,12018,12018, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,15499, 0, + 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1925, 0, 475, 0, + 1902, 1041, 0, 0, 0, 0, 0, 0, 0, 0, + 119, 1927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,11708, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13779,13779, 0, 0, 0, + 0, 0, 0, 0, 0, 0,11712, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 976, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12014, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,12018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1962, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,10905, 0, 0, 0, 0, 816, + 0, 0, 0, 1902, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,10909, 0, 0, 0, + 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 976, 0, + 0, 0, 0, 1947, 0, 0, 0, 0, 0, 0, + 0, 976, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13779, 0, 0, 0, - 0, 1996, 0, 0, 0, 0, 0, 0, 0,13779, - 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1947, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1996, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1914, - 0, 0,13779, 0, 0, 0, 0, 0, 0, 0, + 0, 1865, 0, 0, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,13779, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13779, 0, 0, 0, 0, - 0,12014, 0, 0, 0, 0, 0, 0, 1996, 0, -13779, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 976, 0, 0, + 0, 0, 0,12018, 0, 0, 0, 0, 0, 0, + 1947, 0, 976, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1051,19 +1051,20 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14302, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14306, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1077,39 +1078,39 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,13658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1733, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1119,30 +1120,29 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1953, 0, 0, 0, 0, 0, 0, 0, 0, + 817, 0, 0, 0, 0, 1936, 0, 0, 0, 0, + 0, 0, 0, 1724, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2010, 0, 0, 0, 0, 0, 0, 0, 0, 804, - 0, 0, 0, 0, 1999, 0, 0, 0, 0, 0, - 0, 0, 1800, 1803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1809, 0, - 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, + 1744, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1794, 1796, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1738, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1963, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1161,7 +1161,7 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1814, 1819, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1786, 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1170,584 +1170,672 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824, + 0, 0, 0, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 604, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1826, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1831, 0, 0, + 0, 0, 1804, 0, 0, }; -static int yygindex[] = { 1883, - -4, 109, -650, 0, -392, 155, -99, 0, 100, 0, - 0, 0, 1657, -136, 0, 0,-1056, 0, 1266, 0, - 1091, 277,-1377, -422, -408, -15, -694, 0, 1146, -22, - 1408, 0, -7, 1234, 648, 885, -909, -76, 0, 1154, - 0,-1090, 1026, 0, 0,-1312, -611,-1251,-1245, 0, - 0, 0, 0, -150, 1235, 1431, 0, 0, 0, 0, - -634, 0, 0, -995, 0, 1267, 0, -925,-1113, 925, - 892, -23, 86, 1805, 1667, 2111, -158, 3, 0, 0, - 0, 0, 0, 0, -758, 1280, 0, 2137, 0, 0, - 1017, 2047, 1644, 0, -10, 2146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -281, 1457, 0, -279, -270, -277, 20, 0, - 0, 27, 0, 0, 0, 0, 0, 0, 1458, 0, - 0, 0, 10, 5, 32, 0, 12, 1893, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, -138, - 0, 0, 1594, 0, 0, 0, 405, 0, 0, 0, - 0, 0, 0, 0, 1529, 2119, -45, 0, 1707, 0, - 1832, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1856, + -4, 109, -634, 0, -434, 56, -99, 0, 100, 0, + 0, 0, 1617, -143, 0, 0,-1067, 0, 1234, 0, + 1048, 326,-1415, -432, -408, -15, -695, 0, 1072, -22, + 1333, 0, 29, 1176, 593, 824, -919, -84, 0, 1092, + 0,-1082, 964, 0, 0,-1341, -642,-1302,-1260, 0, + 0, 0, 0, -150, 1182, 1381, 0, 0, 0, 0, + -633, 0, 0,-1017, 0, 1216, 0, -937,-1117, 873, + 866, -23, 86, 1753, 1622, 2073, -131, 6, 0, 0, + 0, 0, 0, 0, -757, 1237, 0, 2089, 0, 0, + 954, 1992, 1588, 0, -11, 2086, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -285, 1398, 0, -282, -251, -279, 20, 0, + 0, 10, 0, 0, 0, 0, 0, 0, 1393, 0, + 0, 0, 15, 5, 32, 0, 26, 1821, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 0, 0, 0, -163, + 0, 0, 1533, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 0, 0, 1465, 2051, -35, 0, 1641, 0, + 1764, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 16503 +#define YYTABLESIZE 16548 static int yytable[] = { 70, - 162, 160, 227, 228, 269, 56, 124, 125, 291, 646, - 55, 647, 59, 165, 118, 109, 219, 525, 203, 526, - 45, 527, 169, 170, 171, 172, 164, 48, 177, 178, - 1183, 876, 57, 864, 1236, 627, 989, 1197, 627, 545, - 1234, 627, 353, 788, 1302, 789, 953, 576, 218, 680, - 1268, 206, 186, 463, 206, 763, 413, 415, 417, 419, - 421, 206, 78, 167, 1559, 1532, 206, 290, 206, 325, - 1530, 721, 429, 34, 285, 710, 942, 74, 284, 271, - 285, 1237, 232, 577, 284, 119, 430, 135, 627, 206, - 407, 1538, 294, 1240, 766, 1346, 283, 462, 693, 694, - 695, 1261, 283, 66, 409, 254, 164, 1521, 238, 1540, - 249, 252, 253, 1363, 412, 459, 1541, 545, 1551, 120, - 121, 259, 316, 414, 261, 1304, 271, 282, 267, 564, - 416, 1238, 72, 282, 216, 545, 271, 1552, 75, 607, - 418, 420, 316, 167, 292, 94, 1107, 34, 570, 570, - 475, 272, 275, 203, 34, 410, 476, 732, 273, 1512, - 198, 1305, 206, 1364, 204, 410, 1562, 1109, 206, 109, - 269, 207, 1553, 269, 410, 561, 206, 213, 1103, 1104, - 461, 410, 383, 1099, 209, 453, 1115, 982, 111, 1534, - 633, 410, 410, 1117, 788, 426, 789, 1108, 570, 699, - 435, 436, 1079, 1570, 112, 456, 156, 1571, 119, 492, - 235, 236, 273, 1375, 568, 664, 156, 591, 1110, 1148, - 1453, 1572, 1514, 67, 68, 147, 69, 471, 1435, 1515, - 206, 1610, 110, 474, 480, 296, 483, 1116, 1543, 571, - 67, 68, 1119, 69, 1118, 1482, 122, 123, 700, 216, - 1554, 1078, 1536, 711, 1189, 715, 276, 750, 274, 1537, - 505, 569, 485, 488, 1374, 490, 1098, 512, 292, 494, - 457, 694, 496, 384, 1548, 217, 499, 119, 1157, 1573, - 135, 508, 509, 510, 511, 114, 1557, 2, 119, 327, - 427, 458, 570, 1120, 782, 216, 78, 67, 68, 908, - 69, 78, 119, 531, 56, 216, 783, 784, 530, 55, - 533, 59, 564, 543, 119, 552, 558, 473, 528, 45, - 465, 466, 1558, 119, 785, 529, 48, 1004, 1005, 1006, - 532, 57, 119, 98, 574, 119, 109, 565, 858, 119, - 974, 119, 164, 1545, 67, 68, 500, 69, 119, 1086, - 1087, 168, 486, 604, 67, 68, 564, 69, 1220, 500, - 119, 598, 598, 617, 623, 91, 597, 489, 599, 599, - 618, 624, 216, 495, 786, 67, 68, 179, 69, 167, - 98, 502, 972, 126, 67, 67, 68, 69, 69, 269, - 98, 1519, 269, 126, 173, 119, 278, 279, 280, 482, - 645, 988, 278, 279, 280, 216, 687, 67, 68, 547, - 69, 98, 487, 1433, 539, 775, 540, 147, 147, 727, - 541, 98, 567, 174, 1560, 1556, 119, 478, 550, 551, - 119, 1561, 560, 281, 117, 723, 669, 549, 353, 156, - 34, 559, 180, 1531, 119, 782, 726, 1141, 662, 758, - 663, 1347, 1142, 1105, 1141, 590, 182, 783, 784, 1142, - 575, 122, 123, 1262, 589, 456, 13, 908, 727, 109, - 635, 183, 273, 122, 123, 785, 1121, 688, 605, 206, - 593, 606, 690, 594, 595, 67, 68, 729, 69, 119, - 206, 544, 37, 556, 34, 1031, 37, 122, 123, 553, - 37, 37, 122, 123, 157, 34, 1163, 471, 641, 642, - 270, 643, 285, 644, 37, 1032, 284, 1008, 767, 554, - 555, 184, 1233, 627, 1123, 786, 692, 1122, 652, 653, - 152, 153, 154, 650, 283, 185, 729, 860, 722, 724, - 152, 153, 154, 206, 787, 37, 673, 1125, 736, 325, - 27, 28, 29, 30, 31, 32, 33, 455, 924, 730, - 1172, 795, 735, 799, 1524, 282, 119, 455, 553, 502, - 285, 1378, 1379, 725, 284, 1124, 353, 67, 68, 188, - 69, 463, 696, 697, 786, 786, 691, 786, 554, 555, - 1086, 1087, 283, 546, 768, 769, 1127, 473, 1126, 861, - 772, 220, 773, 203, 67, 68, 922, 69, 713, 777, - 1564, 546, 928, 926, 1427, 779, 798, 221, 707, 708, - 206, 222, 725, 282, 27, 28, 29, 30, 31, 32, - 33, 27, 28, 29, 30, 31, 32, 33, 234, 67, - 68, 720, 69, 119, 725, 124, 259, 1128, 525, 731, - 526, 1129, 527, 233, 2, 564, 505, 947, 1131, 156, - 156, 260, 156, 1011, 748, 1012, 1013, 1014, 1015, 1016, - 1133, 285, 739, 949, 733, 284, 277, 875, 905, 913, - 286, 737, 906, 1432, 907, 327, 67, 757, 67, 69, - 119, 69, 119, 283, 121, 897, 756, 295, 67, 68, - 918, 69, 1130, 941, 923, 925, 927, 285, 2, 1132, - 1425, 703, 776, 944, 1289, 1135, 1291, 122, 123, 553, - 954, 1134, 875, 1137, 282, 781, 287, 67, 68, 283, - 69, 241, 1483, 288, 67, 68, 794, 69, 289, 554, - 555, 562, 127, 563, 296, 1491, 128, 129, 130, 131, - 132, 1139, 133, 134, 135, 136, 297, 137, 138, 812, - 282, 139, 140, 141, 142, 298, 1136, 98, 143, 144, - 1272, 262, 263, 973, 1138, 975, 361, 145, 1485, 146, - 237, 264, 67, 68, 1090, 69, 983, 786, 385, 915, - 919, 625, 625, 1100, 147, 148, 149, 911, 502, 408, - 1274, 1276, 1140, 1278, 422, 1141, 1159, 1160, 1161, 1162, - 1142, 425, 468, 469, 37, 37, 37, 1010, 935, 463, - 937, 1273, 938, 327, 575, 575, 437, 943, 1567, 150, - 10, 11, 12, 13, 278, 279, 280, 1092, 200, 454, - 946, 625, 70, 73, 76, 79, 82, 85, 88, 958, - 156, 1275, 1277, 460, 1279, 1507, 612, 612, 957, 960, - 961, 1513, 463, 1169, 156, 1170, 1171, 959, 564, 564, - 1575, 564, 464, 971, 575, 156, 1349, 1350, 986, 67, - 68, 939, 69, 206, 10, 11, 12, 13, 1351, 1352, - 1145, 1535, 278, 279, 280, 157, 1007, 67, 68, 1152, - 69, 1600, 463, 1357, 1150, 1156, 612, 1144, 1017, 553, - 1018, 1210, 34, 467, 1151, 1576, 1612, 27, 28, 29, - 30, 31, 32, 33, 875, 269, 269, 477, 269, 554, - 555, 481, 899, 900, 531, 484, 1165, 1174, 617, 530, - 1187, 533, 1003, 1167, 1176, 618, 25, 463, 1569, 528, - 22, 673, 1494, 1225, 463, 1493, 529, 1609, 1164, 1173, - 1088, 532, 67, 1166, 1175, 69, 1082, 901, 19, 34, - 1101, 27, 28, 29, 30, 31, 32, 33, 622, 1209, - 611, 611, 27, 28, 29, 30, 31, 32, 33, 753, - 754, 755, 1314, 278, 279, 280, 1155, 497, 206, 16, - 1325, 1326, 1327, 1328, 875, 751, 1255, 491, 751, 1146, - 1329, 1330, 1331, 493, 223, 155, 224, 225, 226, 67, - 68, 498, 865, 1153, 1182, 1154, 1184, 126, 811, 278, - 279, 280, 514, 67, 68, 524, 69, 34, 542, 269, - 269, 126, 548, 97, 67, 68, 566, 69, 99, 739, - 100, 739, 126, 61, 64, 98, 67, 101, 737, 552, - 737, 34, 552, 97, 100, 1203, 103, 1206, 1188, 98, - 463, 573, 1307, 1199, 102, 920, 1200, 626, 191, 1308, - 98, 192, 193, 194, 195, 637, 196, 197, 198, 103, - 1423, 122, 123, 553, 811, 67, 68, 1207, 69, 206, - 638, 1547, 1549, 616, 1190, 1286, 1191, 902, 903, 1292, - 904, 119, 640, 554, 555, 1309, 648, 1300, 67, 68, - 921, 69, 119, 788, 1034, 1035, 2, 1178, 1370, 1371, - 1372, 649, 265, 127, 266, 651, 660, 128, 129, 130, - 131, 132, 661, 133, 134, 135, 136, 1319, 137, 138, - 216, 109, 139, 140, 141, 142, 119, 1360, 553, 143, - 144, 109, 109, 109, 109, 250, 251, 1598, 145, 463, - 146, 109, 109, 109, 152, 153, 154, 1239, 554, 555, - 668, 674, 788, 2, 675, 147, 148, 149, 152, 153, - 154, 855, 676, 677, 679, 990, 682, 689, 1342, 152, - 153, 154, 991, 605, 992, 993, 994, 1269, 1270, 1271, - 255, 256, 257, 258, 1280, 1281, 1282, 1283, 1284, 1285, - 150, 1287, 1288, 1290, 1430, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 515, 1301, 698, 1303, 701, 1306, 702, 1310, - 1322, 1323, 811, 995, 996, 997, 704, 714, 788, 719, - 716, 2, 1020, 1021, 1022, 1023, 1024, 855, 717, 718, - 67, 68, 1390, 69, 1111, 1112, 1113, 1114, 7, 10, - 13, 97, 1144, 727, 612, 2, 99, 728, 100, 729, - 1443, 734, 759, 740, 741, 101, 840, 1332, 1424, 998, - 999, 1000, 760, 1001, 761, 1338, 1002, 104, 612, 762, - 1341, 1336, 102, 1337, 770, 13, 771, 774, 811, 778, - 1426, 1348, 627, 628, 629, 620, 780, 103, 621, 793, - 516, 1355, 5, 6, 7, 1358, 1359, 800, 431, 875, - 432, 433, 802, 801, 517, 803, 1362, 434, 804, 518, - 805, 806, 8, 9, 1365, 1366, 1367, 1368, 630, 631, - 632, 578, 840, 579, 580, 581, 808, 1369, 1373, 10, - 11, 12, 13, 809, 519, 520, 1228, 1229, 1230, 1231, - 1232, 1384, 1385, 1386, 1387, 1388, 1389, 811, 1391, 862, - 863, 200, 868, 866, 521, 1144, 867, 870, 613, 27, - 28, 29, 30, 31, 32, 33, 788, 873, 393, 874, - 869, 811, 811, 877, 909, 855, 155, 1486, 910, 914, - 936, 940, 613, 929, 948, 945, 1526, 951, 1431, 522, - 523, 811, 950, 952, 875, 955, 956, 962, 963, 1436, - 13, 964, 967, 811, 965, 811, 811, 40, 811, 811, - 614, 966, 968, 615, 969, 970, 27, 28, 29, 30, - 31, 32, 33, 976, 13, 1442, 977, 978, 985, 987, - 1019, 1025, 1447, 410, 614, 1027, 199, 615, 1029, 1028, - 40, 1030, 1033, 1080, 1083, 40, 1094, 40, 40, 40, - 1147, 40, 1102, 393, 40, 1097, 1149, 1180, 1179, 1185, - 1181, 1186, 1594, 1192, 1563, 1550, 40, 40, 40, 40, - 840, 1195, 1605, 1196, 1198, 811, 811, 811, 811, 811, - 811, 811, 1201, 1484, 27, 28, 29, 30, 31, 32, - 33, 1212, 1213, 840, 1214, 1219, 95, 1215, 40, 96, - 40, 1216, 1222, 788, 788, 788, 788, 788, 27, 28, - 29, 30, 31, 32, 33, 1224, 1217, 1218, 1497, 1498, - 1499, 1226, 97, 98, 1258, 788, 788, 99, 1227, 100, - 40, 875, 40, 1259, 1260, 1264, 101, 1263, 1265, 1266, - 1267, 1522, 788, 788, 788, 788, 1316, 478, 1318, 788, - 788, 1324, 1606, 102, 855, 788, 1320, 788, 788, 1321, - 1333, 1335, 1339, 1334, 855, 788, 788, 855, 103, 1340, - 1533, 156, 1343, 875, 1344, 1539, 1533, 1542, 633, 1546, - 1356, 1539, 1533, 1542, 1361, 1107, 1109, 1115, 1117, 1119, - 393, 191, 1121, 393, 192, 193, 194, 195, 1123, 196, - 197, 198, 1125, 1539, 1533, 1542, 1127, 840, 393, 1129, - 1131, 393, 393, 393, 393, 1133, 393, 393, 393, 1377, - 788, 788, 1380, 788, 788, 788, 1376, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 1381, 1382, 855, 855, - 855, 855, 855, 855, 855, 1392, 1383, 1393, 1394, 840, - 1396, 1398, 1395, 1397, 1399, 1400, 1401, 1402, 1403, 840, - 1211, 1607, 840, 1404, 1405, 1406, 1601, 40, 40, 40, - 40, 654, 655, 656, 1408, 40, 1407, 1409, 40, 1410, - 40, 40, 40, 40, 40, 40, 40, 1411, 40, 40, - 40, 40, 1413, 40, 40, 40, 1412, 40, 40, 40, - 40, 1414, 1416, 40, 40, 40, 40, 657, 658, 659, - 392, 1415, 1417, 40, 1418, 40, 1419, 1420, 40, 1421, - 1422, 1428, 40, 40, 1429, 40, 1434, 1438, 1439, 40, - 40, 40, 40, 840, 840, 840, 840, 840, 840, 840, - 67, 68, 216, 69, 119, 1555, 40, 1440, 126, 1444, - 1445, 1446, 1272, 1274, 1276, 1278, 1449, 1448, 1450, 1451, - 1452, 1454, 1455, 1085, 1456, 40, 40, 40, 40, 40, - 1457, 40, 40, 1458, 1459, 1460, 98, 1461, 1462, 1464, - 1466, 40, 40, 1463, 1465, 1467, 1468, 1469, 1470, 1471, - 1472, 1473, 157, 1474, 1475, 392, 1476, 1477, 40, 1478, - 1086, 1087, 1479, 40, 40, 40, 40, 40, 40, 40, + 162, 160, 227, 228, 269, 56, 124, 125, 219, 646, + 48, 647, 165, 525, 118, 55, 526, 353, 109, 527, + 45, 1185, 169, 170, 171, 172, 59, 1199, 203, 164, + 629, 1238, 57, 629, 865, 291, 629, 1236, 991, 680, + 576, 1270, 206, 206, 34, 463, 955, 877, 545, 413, + 415, 417, 419, 421, 1304, 119, 693, 694, 695, 206, + 325, 206, 206, 167, 177, 178, 135, 290, 1532, 206, + 1561, 1523, 285, 156, 710, 271, 284, 1534, 767, 218, + 732, 1263, 232, 629, 294, 462, 699, 789, 186, 790, + 407, 1365, 943, 1348, 283, 1242, 216, 74, 147, 206, + 66, 1429, 577, 78, 409, 254, 412, 206, 238, 164, + 249, 252, 253, 91, 1484, 459, 94, 429, 1033, 120, + 121, 259, 198, 1540, 261, 282, 316, 206, 267, 414, + 416, 430, 1514, 566, 1542, 700, 119, 271, 1034, 1306, + 418, 1366, 1545, 167, 292, 37, 316, 764, 476, 37, + 475, 272, 275, 37, 37, 410, 271, 410, 75, 572, + 572, 273, 1536, 203, 204, 285, 1101, 37, 461, 284, + 72, 207, 109, 1516, 492, 1307, 568, 213, 1105, 1106, + 410, 410, 383, 1556, 209, 453, 269, 283, 1575, 269, + 420, 410, 591, 110, 1543, 1612, 1005, 111, 37, 457, + 435, 436, 561, 1538, 1553, 456, 112, 1554, 1555, 572, + 235, 236, 114, 285, 463, 273, 1517, 703, 282, 1150, + 458, 1239, 67, 68, 1572, 69, 1437, 471, 1573, 694, + 206, 426, 862, 474, 480, 283, 483, 296, 119, 571, + 1574, 410, 67, 68, 1376, 69, 1539, 168, 751, 1100, + 126, 67, 711, 569, 69, 1191, 276, 909, 1547, 135, + 505, 34, 485, 488, 179, 490, 282, 512, 292, 494, + 34, 1240, 496, 384, 715, 119, 499, 664, 98, 216, + 216, 508, 509, 510, 511, 216, 500, 34, 1425, 327, + 147, 147, 1559, 67, 68, 1159, 69, 1006, 1007, 1008, + 119, 285, 570, 531, 56, 284, 217, 67, 529, 48, + 69, 119, 564, 530, 55, 552, 558, 473, 528, 45, + 465, 466, 543, 283, 533, 59, 34, 1377, 1560, 98, + 532, 57, 556, 859, 976, 427, 1455, 78, 783, 109, + 565, 974, 78, 776, 1143, 164, 119, 1088, 1089, 1144, + 784, 785, 486, 607, 282, 67, 68, 119, 69, 173, + 566, 598, 598, 617, 623, 122, 123, 489, 786, 119, + 574, 597, 216, 495, 67, 68, 1222, 69, 119, 167, + 984, 502, 599, 599, 618, 624, 174, 482, 216, 500, + 188, 98, 622, 990, 278, 279, 280, 152, 153, 154, + 645, 1521, 180, 1435, 687, 269, 122, 123, 269, 547, + 98, 122, 123, 353, 539, 206, 540, 119, 787, 478, + 541, 182, 567, 1109, 759, 1111, 909, 119, 550, 551, + 119, 119, 560, 117, 1533, 1558, 669, 549, 206, 25, + 325, 559, 119, 22, 1107, 1550, 726, 119, 662, 992, + 663, 119, 633, 575, 1349, 590, 993, 721, 994, 995, + 996, 19, 692, 119, 589, 456, 1264, 37, 37, 37, + 635, 940, 109, 206, 1110, 273, 1112, 688, 183, 1117, + 1119, 119, 690, 553, 627, 627, 184, 278, 279, 280, + 67, 68, 16, 69, 789, 206, 790, 997, 998, 999, + 544, 2, 753, 554, 555, 753, 270, 471, 641, 642, + 768, 643, 1121, 644, 156, 1010, 122, 123, 629, 1235, + 1123, 27, 28, 29, 30, 31, 32, 33, 652, 653, + 1118, 1120, 185, 650, 627, 278, 279, 280, 722, 724, + 2, 206, 861, 1000, 1001, 1002, 673, 1003, 737, 554, + 1004, 353, 554, 796, 1526, 800, 122, 123, 553, 730, + 1125, 1143, 220, 1122, 274, 1081, 1144, 604, 455, 502, + 1143, 1124, 1380, 1381, 1012, 1144, 463, 67, 554, 555, + 69, 119, 696, 697, 221, 487, 691, 455, 788, 1127, + 70, 73, 76, 79, 82, 85, 88, 473, 736, 222, + 67, 68, 1566, 69, 1129, 234, 923, 1131, 713, 778, + 813, 1126, 929, 203, 1080, 780, 799, 1564, 707, 708, + 1133, 547, 1135, 278, 279, 280, 67, 68, 260, 69, + 769, 770, 788, 788, 729, 788, 773, 1137, 774, 547, + 1128, 720, 233, 200, 725, 525, 259, 277, 526, 731, + 949, 527, 577, 577, 281, 1130, 505, 1013, 1132, 1014, + 1015, 1016, 1017, 1018, 749, 734, 1139, 156, 122, 123, + 553, 1134, 740, 1136, 733, 286, 813, 876, 287, 914, + 13, 738, 907, 729, 908, 327, 723, 758, 1138, 295, + 554, 555, 605, 237, 593, 606, 757, 594, 595, 288, + 919, 1434, 577, 942, 924, 926, 928, 566, 925, 898, + 1213, 289, 777, 945, 906, 857, 1291, 1140, 1293, 13, + 1141, 956, 876, 614, 614, 782, 927, 1274, 199, 620, + 1088, 1089, 621, 1485, 156, 156, 795, 156, 27, 28, + 29, 30, 31, 32, 33, 783, 1493, 27, 28, 29, + 30, 31, 32, 33, 754, 755, 756, 784, 785, 813, + 1276, 7, 10, 13, 27, 28, 29, 30, 31, 32, + 33, 1142, 731, 614, 975, 786, 977, 1092, 1275, 900, + 901, 857, 1439, 241, 296, 124, 1102, 985, 297, 916, + 920, 67, 68, 727, 69, 119, 1487, 912, 502, 67, + 68, 548, 69, 27, 28, 29, 30, 31, 32, 33, + 1427, 1277, 67, 68, 902, 69, 119, 298, 936, 548, + 938, 731, 939, 327, 813, 787, 1509, 944, 385, 1569, + 1278, 948, 1515, 1280, 121, 788, 67, 68, 1094, 69, + 947, 285, 727, 951, 126, 284, 408, 119, 285, 1157, + 960, 206, 284, 1351, 1352, 67, 68, 422, 69, 959, + 962, 963, 1537, 283, 1372, 1373, 1374, 1190, 961, 463, + 283, 1577, 98, 361, 973, 1562, 425, 67, 68, 988, + 69, 1279, 1563, 191, 1281, 454, 192, 193, 194, 195, + 813, 196, 197, 198, 282, 67, 68, 1009, 69, 437, + 1154, 282, 1602, 460, 1152, 1212, 1158, 67, 68, 1019, + 69, 1020, 463, 468, 469, 1153, 1496, 1614, 463, 1495, + 566, 566, 1146, 566, 464, 876, 119, 1147, 553, 857, + 467, 67, 68, 1578, 69, 531, 477, 1167, 1176, 617, + 529, 1189, 1166, 1175, 1209, 530, 206, 1227, 554, 555, + 528, 1600, 673, 463, 903, 904, 533, 905, 1169, 1178, + 618, 1090, 532, 992, 1168, 1177, 481, 1084, 156, 484, + 993, 1103, 994, 995, 996, 1611, 553, 250, 251, 67, + 68, 1211, 69, 813, 813, 156, 269, 269, 491, 269, + 493, 152, 153, 154, 1316, 497, 554, 555, 67, 68, + 1257, 69, 119, 813, 262, 263, 876, 1192, 317, 1193, + 1148, 997, 998, 999, 264, 813, 549, 813, 813, 67, + 813, 813, 69, 119, 1155, 1184, 1156, 1186, 498, 1327, + 1328, 1329, 1330, 514, 223, 992, 224, 225, 226, 1331, + 1332, 1333, 993, 542, 994, 995, 996, 61, 64, 97, + 67, 740, 548, 740, 99, 566, 100, 1000, 1001, 1002, + 738, 1003, 738, 101, 1004, 573, 317, 1205, 626, 1208, + 67, 68, 637, 69, 638, 1201, 97, 100, 1202, 103, + 102, 298, 640, 997, 998, 999, 648, 813, 813, 813, + 813, 813, 813, 813, 578, 103, 579, 580, 581, 649, + 269, 269, 651, 1549, 1551, 1353, 1354, 1288, 857, 463, + 1359, 1294, 67, 68, 660, 69, 661, 1311, 857, 1302, + 216, 857, 627, 628, 629, 790, 463, 1571, 668, 1000, + 1001, 1002, 674, 1003, 675, 104, 1004, 67, 68, 676, + 69, 255, 256, 257, 258, 126, 677, 156, 679, 1321, + 682, 1362, 613, 613, 67, 68, 109, 866, 630, 631, + 632, 605, 126, 278, 279, 280, 109, 109, 109, 109, + 278, 279, 280, 98, 1036, 1037, 109, 109, 109, 1241, + 431, 689, 432, 433, 790, 122, 123, 553, 698, 434, + 98, 701, 857, 857, 857, 857, 857, 857, 857, 702, + 1344, 714, 157, 34, 704, 716, 719, 554, 555, 1271, + 1272, 1273, 1113, 1114, 1115, 1116, 1282, 1283, 1284, 1285, + 1286, 1287, 717, 1289, 1290, 1292, 1432, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 727, 1303, 718, 1305, 728, 1308, + 729, 1312, 1324, 1325, 735, 742, 317, 741, 762, 760, + 790, 317, 317, 317, 317, 761, 317, 317, 317, 317, + 798, 317, 317, 763, 1392, 317, 317, 317, 317, 1165, + 771, 772, 317, 317, 1445, 1022, 1023, 1024, 1025, 1026, + 392, 317, 779, 317, 1367, 1368, 1369, 1370, 1146, 1334, + 1426, 775, 152, 153, 154, 801, 781, 1340, 317, 317, + 317, 794, 1343, 1338, 34, 1339, 802, 803, 804, 152, + 153, 154, 1428, 1350, 805, 97, 67, 68, 806, 69, + 99, 807, 100, 1357, 126, 809, 810, 1360, 1361, 101, + 812, 876, 863, 317, 298, 869, 864, 867, 1364, 868, + 870, 298, 871, 298, 298, 298, 102, 921, 874, 654, + 655, 656, 98, 875, 878, 1309, 910, 911, 915, 1371, + 1375, 103, 1310, 930, 95, 392, 946, 96, 937, 941, + 1174, 950, 952, 1386, 1387, 1388, 1389, 1390, 1391, 953, + 1393, 954, 298, 298, 298, 657, 658, 659, 957, 958, + 97, 98, 922, 964, 965, 99, 966, 100, 790, 200, + 967, 1146, 980, 968, 101, 969, 970, 1029, 971, 1488, + 1528, 972, 978, 67, 68, 979, 69, 2, 989, 987, + 1433, 102, 410, 1021, 1027, 1030, 876, 1031, 298, 298, + 298, 1438, 298, 1032, 1035, 298, 103, 1082, 1104, 1085, + 127, 40, 1096, 1099, 128, 129, 130, 131, 132, 156, + 133, 134, 135, 136, 1149, 137, 138, 1444, 1151, 139, + 140, 141, 142, 1181, 1449, 1182, 143, 144, 1187, 1188, + 1194, 152, 153, 154, 40, 145, 1183, 146, 1197, 40, + 1198, 40, 40, 40, 1200, 40, 1596, 1203, 40, 1214, + 1215, 1216, 147, 148, 149, 1217, 1565, 1552, 1218, 1219, + 40, 40, 40, 40, 1607, 1220, 1221, 1224, 240, 241, + 242, 1228, 1226, 1229, 1260, 1486, 1261, 1262, 2, 317, + 392, 1266, 1267, 392, 392, 392, 392, 150, 392, 392, + 392, 1265, 40, 243, 40, 790, 790, 790, 790, 790, + 1230, 1231, 1232, 1233, 1234, 1268, 1269, 1322, 1318, 478, + 1499, 1500, 1501, 1320, 1323, 1326, 1336, 790, 790, 1335, + 1337, 1341, 1342, 876, 40, 1345, 40, 1346, 633, 1161, + 1162, 1163, 1164, 1524, 790, 790, 790, 790, 1358, 1363, + 1109, 790, 790, 1111, 1608, 393, 1117, 790, 1119, 790, + 790, 1121, 1123, 10, 11, 12, 13, 790, 790, 1125, + 1127, 1129, 1535, 1131, 1133, 876, 1135, 1541, 1535, 1544, + 1378, 1548, 1379, 1541, 1535, 1544, 1382, 1384, 67, 68, + 216, 69, 119, 1383, 1385, 1394, 126, 1395, 244, 1396, + 245, 246, 247, 248, 1397, 1541, 1535, 1544, 1398, 191, + 1400, 1087, 192, 193, 194, 195, 1399, 196, 197, 198, + 1401, 1402, 790, 790, 98, 790, 790, 790, 1403, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 1405, 1406, + 393, 1404, 1407, 1171, 1408, 1172, 1173, 1410, 1088, 1089, + 27, 28, 29, 30, 31, 32, 33, 1409, 1411, 1412, + 1414, 1413, 1416, 1609, 10, 11, 12, 13, 1603, 1415, + 1417, 40, 40, 40, 40, 1418, 1419, 1420, 1421, 40, + 1423, 1422, 40, 155, 40, 40, 40, 40, 40, 40, + 40, 1430, 40, 40, 40, 40, 1431, 40, 40, 40, + 1424, 40, 40, 40, 40, 1436, 1440, 40, 40, 40, + 40, 1441, 1442, 1446, 1274, 1447, 1448, 40, 1276, 40, + 1278, 1280, 40, 1450, 1451, 1452, 40, 40, 1454, 40, + 1456, 1453, 1457, 40, 40, 40, 40, 1458, 1459, 1461, + 1557, 1460, 1462, 152, 153, 154, 1463, 1464, 1465, 1466, + 40, 27, 28, 29, 30, 31, 32, 33, 1468, 1469, + 1470, 1467, 268, 1471, 1472, 1473, 1474, 1475, 1476, 40, + 40, 40, 40, 40, 1477, 40, 40, 393, 1478, 1479, + 393, 1480, 1481, 1483, 1494, 40, 40, 1482, 1498, 1492, + 1489, 1504, 1505, 1506, 1507, 393, 157, 1522, 393, 393, + 393, 393, 40, 393, 393, 393, 872, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 1480, 1487, 1490, 1492, 564, 1520, 1437, 1481, 1502, - 210, 1503, 1504, 1496, 1505, 871, 40, 40, 40, 40, - 1523, 40, 40, 40, 40, 1525, 1527, 40, 1528, 40, - 1529, 40, 40, 40, 40, 1565, 40, 40, 564, 40, - 40, 40, 1566, 564, 1577, 564, 564, 564, 40, 564, - 1595, 1574, 564, 1596, 1597, 152, 153, 154, 1599, 1602, - 95, 1603, 1604, 96, 564, 564, 564, 564, 1608, 1611, - 104, 1613, 437, 990, 29, 438, 40, 40, 40, 137, - 991, 791, 992, 993, 994, 847, 97, 98, 725, 543, - 541, 99, 399, 100, 40, 40, 564, 40, 40, 40, - 101, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 392, 40, 536, 392, 392, 392, 392, 102, 392, 392, - 392, 995, 996, 997, 826, 736, 544, 818, 564, 138, - 564, 743, 103, 737, 848, 539, 540, 548, 271, 819, - 74, 878, 879, 880, 143, 881, 882, 883, 884, 827, - 885, 886, 198, 164, 887, 888, 889, 890, 841, 240, - 208, 891, 892, 144, 147, 167, 210, 998, 999, 1000, - 574, 1001, 28, 31, 1002, 4, 28, 55, 55, 67, - 68, 94, 69, 115, 58, 981, 109, 126, 112, 106, - 127, 118, 300, 639, 128, 129, 130, 131, 132, 1202, - 133, 134, 135, 136, 55, 137, 138, 55, 55, 139, - 140, 141, 142, 55, 55, 98, 143, 144, 55, 208, - 1081, 208, 1495, 55, 841, 145, 55, 146, 55, 893, - 55, 1194, 55, 1353, 55, 55, 912, 1193, 1257, 872, - 1106, 1354, 147, 148, 149, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 990, 1345, 1096, 678, 163, 564, 564, 991, 564, 992, - 993, 994, 1093, 564, 572, 93, 564, 150, 564, 564, - 564, 564, 564, 564, 564, 208, 564, 564, 564, 564, - 239, 564, 564, 1317, 709, 564, 564, 564, 564, 166, - 930, 564, 564, 564, 564, 934, 749, 807, 995, 996, - 997, 564, 202, 564, 513, 686, 564, 0, 0, 609, - 0, 564, 216, 0, 0, 0, 0, 564, 564, 564, - 564, 0, 0, 0, 152, 153, 154, 1241, 1242, 1243, - 0, 1244, 1245, 1246, 1247, 0, 1248, 1249, 198, 0, - 1250, 1251, 1252, 1253, 998, 999, 1000, 0, 1001, 1254, - 0, 1002, 0, 564, 0, 564, 564, 564, 0, 0, - 0, 0, 841, 0, 0, 0, 0, 0, 0, 564, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 841, 564, 0, 0, 0, - 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 0, 0, 0, 208, 564, 0, 0, 564, 564, 0, - 0, 0, 0, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 564, 564, 564, 564, 0, 564, - 564, 564, 564, 155, 0, 564, 0, 564, 0, 564, - 564, 564, 0, 0, 564, 564, 565, 564, 564, 564, - 0, 565, 208, 565, 565, 565, 564, 565, 0, 0, - 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 565, 565, 565, 565, 0, 0, 0, 841, - 0, 0, 0, 0, 564, 564, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, - 0, 0, 564, 564, 565, 564, 564, 564, 0, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 0, 564, - 0, 841, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 841, 0, 0, 841, 0, 565, 0, 565, 0, - 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 208, - 0, 0, 208, 208, 0, 0, 842, 0, 210, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 208, 208, 208, 0, 208, 208, 208, 208, 0, 0, - 0, 0, 208, 0, 0, 208, 0, 0, 0, 0, - 0, 0, 208, 208, 208, 841, 841, 841, 841, 841, - 841, 841, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 842, 0, 0, 0, 0, 0, 0, 208, - 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 208, 0, - 208, 208, 208, 0, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 565, 565, 0, 565, 0, 0, 0, - 0, 565, 67, 68, 565, 69, 565, 565, 565, 565, - 565, 565, 565, 210, 565, 565, 565, 565, 0, 565, - 565, 0, 0, 565, 565, 565, 565, 0, 0, 565, - 565, 565, 565, 0, 0, 0, 0, 0, 0, 565, - 0, 565, 0, 0, 565, 0, 0, 0, 0, 565, - 0, 0, 0, 127, 0, 565, 565, 565, 565, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 0, - 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 0, 565, 565, 565, 0, 240, 241, 242, - 842, 0, 0, 0, 0, 0, 0, 565, 565, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 243, 842, 565, 0, 0, 0, 0, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 0, 0, - 0, 210, 565, 0, 0, 565, 565, 0, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 565, 565, 565, 565, 0, 565, 565, 565, - 565, 792, 792, 565, 792, 565, 0, 565, 565, 565, - 0, 0, 565, 565, 558, 565, 565, 565, 0, 558, - 210, 558, 558, 558, 565, 558, 0, 244, 0, 245, - 246, 247, 248, 0, 0, 0, 0, 0, 0, 0, - 558, 558, 558, 558, 0, 0, 0, 842, 0, 0, - 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 565, 565, 558, 565, 565, 565, 0, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 0, 565, 0, 842, - 0, 0, 0, 0, 0, 0, 792, 792, 792, 842, - 0, 0, 842, 0, 558, 1593, 558, 0, 210, 210, - 210, 210, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 792, 210, 0, 0, 0, 0, 210, 0, 0, - 210, 210, 0, 0, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 210, 210, - 210, 0, 210, 210, 210, 210, 0, 0, 0, 0, - 210, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 210, 210, 210, 842, 842, 842, 842, 842, 842, 842, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, - 0, 0, 0, 0, 0, 0, 792, 0, 792, 792, - 792, 792, 0, 0, 0, 210, 210, 0, 210, 210, - 210, 0, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 558, 558, 0, 558, 0, 0, 0, 0, 558, - 0, 0, 558, 0, 558, 558, 558, 558, 558, 558, - 558, 92, 558, 558, 558, 558, 0, 558, 558, 0, - 0, 558, 558, 558, 558, 298, 1578, 558, 558, 558, - 558, 0, 0, 0, 0, 0, 0, 558, 0, 558, - 0, 1579, 558, 0, 0, 0, 0, 558, 0, 0, - 0, 0, 0, 558, 558, 558, 558, 1580, 0, 0, - 0, 0, 0, 0, 0, 0, 1581, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1582, 1583, 1584, 1585, 0, 0, 0, 0, 0, 558, - 0, 558, 558, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 558, 558, 0, 0, 0, - 0, 0, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 0, - 0, 0, 558, 0, 0, 0, 0, 558, 558, 558, + 40, 40, 40, 40, 40, 1525, 1568, 1527, 1529, 566, + 1530, 1531, 1567, 1576, 210, 1579, 1604, 1597, 1598, 1599, + 40, 40, 40, 40, 1605, 40, 40, 40, 40, 1601, + 1606, 40, 1613, 40, 1610, 40, 40, 40, 40, 1615, + 40, 40, 566, 40, 40, 40, 437, 566, 104, 566, + 566, 566, 40, 566, 29, 438, 566, 95, 137, 793, + 96, 849, 727, 545, 399, 828, 738, 543, 566, 566, + 566, 566, 820, 546, 538, 138, 745, 850, 739, 541, + 40, 40, 40, 97, 98, 542, 550, 271, 99, 74, + 100, 821, 143, 164, 829, 144, 147, 101, 40, 40, + 566, 40, 40, 40, 240, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 102, 40, 167, 210, 576, 4, + 31, 28, 28, 55, 94, 58, 106, 55, 55, 103, + 109, 115, 566, 1595, 566, 112, 879, 880, 881, 55, + 882, 883, 884, 885, 55, 886, 887, 198, 55, 888, + 889, 890, 891, 639, 983, 118, 892, 893, 1204, 1196, + 127, 913, 34, 1083, 208, 300, 130, 131, 132, 1497, + 133, 134, 135, 136, 1355, 137, 138, 1195, 1259, 139, + 140, 141, 142, 67, 68, 55, 69, 144, 1108, 873, + 55, 126, 55, 55, 127, 55, 55, 55, 128, 129, + 130, 131, 132, 55, 133, 134, 135, 136, 55, 137, + 138, 1347, 1098, 139, 140, 141, 142, 1356, 678, 98, + 143, 144, 572, 208, 894, 208, 163, 93, 616, 145, + 1095, 146, 1319, 794, 794, 239, 794, 216, 709, 166, + 935, 931, 513, 808, 202, 750, 147, 148, 149, 686, + 0, 609, 1243, 1244, 1245, 0, 1246, 1247, 1248, 1249, + 0, 1250, 1251, 198, 0, 1252, 1253, 1254, 1255, 566, + 566, 0, 566, 0, 1256, 0, 0, 566, 0, 0, + 566, 150, 566, 566, 566, 566, 566, 566, 566, 208, + 566, 566, 566, 566, 0, 566, 566, 0, 0, 566, + 566, 566, 566, 0, 1580, 566, 566, 566, 566, 0, + 0, 0, 0, 0, 0, 566, 0, 566, 0, 1581, + 566, 0, 0, 0, 0, 566, 0, 0, 794, 794, + 794, 566, 566, 566, 566, 1582, 0, 0, 152, 153, + 154, 0, 0, 0, 1583, 0, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 1584, 1585, + 1586, 1587, 0, 0, 0, 0, 0, 566, 0, 566, + 566, 566, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 566, 566, 0, 0, 0, 0, 0, + 1588, 1589, 1590, 1591, 1592, 1593, 1594, 0, 0, 612, + 566, 0, 0, 0, 0, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 0, 0, 0, 208, 566, 0, + 0, 566, 566, 0, 0, 0, 0, 567, 794, 0, + 794, 794, 794, 794, 0, 0, 0, 0, 566, 566, + 566, 566, 0, 566, 566, 566, 566, 155, 0, 566, + 0, 566, 0, 566, 566, 566, 0, 0, 566, 566, + 567, 566, 566, 566, 0, 567, 208, 567, 567, 567, + 566, 567, 0, 0, 567, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 567, 567, 567, 567, + 0, 0, 0, 613, 0, 0, 0, 0, 566, 566, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 0, 566, 566, 567, 566, + 566, 566, 0, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 0, 566, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 614, 0, 0, 615, 0, + 567, 0, 567, 0, 208, 208, 208, 208, 208, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, + 0, 0, 0, 208, 0, 0, 208, 208, 0, 0, + 34, 0, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 208, 208, 208, 208, 0, 208, 208, + 208, 208, 0, 0, 0, 0, 208, 0, 0, 208, + 0, 0, 0, 0, 0, 0, 208, 208, 208, 27, + 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 210, 0, 0, 0, 0, 1180, 0, 0, 0, + 0, 0, 0, 208, 208, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 208, 0, 208, 208, 208, 0, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 567, 567, 0, + 567, 0, 0, 0, 0, 567, 0, 0, 567, 0, + 567, 567, 567, 567, 567, 567, 567, 210, 567, 567, + 567, 567, 0, 567, 567, 0, 0, 567, 567, 567, + 567, 0, 0, 567, 567, 567, 567, 0, 0, 0, + 0, 0, 0, 567, 0, 567, 0, 0, 567, 0, + 0, 0, 0, 567, 0, 0, 0, 0, 0, 567, + 567, 567, 567, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 567, 0, 567, 567, 567, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 612, 567, 0, + 0, 0, 0, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 0, 0, 0, 210, 567, 0, 0, 567, + 567, 0, 0, 0, 0, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 567, 567, 567, 567, + 0, 567, 567, 567, 567, 0, 0, 567, 0, 567, + 0, 567, 567, 567, 0, 0, 567, 567, 560, 567, + 567, 567, 0, 560, 210, 560, 560, 560, 567, 560, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 560, 560, 560, 560, 0, 0, + 0, 613, 0, 0, 0, 0, 567, 567, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 567, 567, 560, 567, 567, 567, + 0, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 0, 567, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 614, 0, 0, 615, 0, 560, 0, + 560, 0, 210, 210, 210, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, + 0, 210, 0, 0, 210, 210, 0, 842, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 210, 0, 210, 210, 210, 210, + 0, 0, 0, 0, 210, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 210, 210, 210, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, + 0, 210, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 210, 0, 210, 210, 210, 0, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 560, 560, 0, 560, 0, + 0, 0, 0, 560, 0, 0, 560, 0, 560, 560, + 560, 560, 560, 560, 560, 92, 560, 560, 560, 560, + 0, 560, 560, 0, 0, 560, 560, 560, 560, 0, + 0, 560, 560, 560, 560, 0, 0, 0, 0, 0, + 0, 560, 0, 560, 0, 0, 560, 0, 0, 0, + 0, 560, 0, 0, 0, 0, 0, 560, 560, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 560, 0, 560, 560, 560, 0, 0, + 0, 842, 0, 0, 0, 0, 0, 0, 0, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 842, 0, 560, 0, 0, 0, + 0, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 0, 0, 0, 92, 560, 0, 0, 560, 560, 0, + 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 560, 560, 560, 560, 0, 560, + 560, 560, 560, 0, 0, 560, 0, 560, 0, 560, + 560, 560, 0, 0, 560, 560, 558, 560, 560, 560, + 0, 558, 0, 558, 558, 558, 560, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 558, 558, 558, 558, 0, 0, 842, 0, + 0, 0, 0, 0, 560, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 560, 560, 558, 560, 560, 560, 0, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 0, 560, + 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 842, 0, 0, 842, 0, 0, 558, 0, 558, 0, + 92, 92, 92, 92, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 92, 0, 843, 0, 0, 93, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 92, 92, 92, 0, 0, 0, 92, 92, 0, 0, + 0, 0, 92, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 92, 92, 842, 842, 842, 842, 842, 842, + 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127, 93, 0, 0, + 0, 843, 130, 131, 132, 0, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 0, 1313, 144, 0, 0, 0, 92, 92, 0, + 92, 92, 92, 0, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 558, 558, 0, 558, 0, 0, 0, + 0, 558, 0, 0, 558, 0, 558, 558, 558, 558, + 558, 558, 558, 93, 558, 558, 558, 558, 0, 558, + 558, 1314, 0, 558, 558, 558, 558, 0, 0, 558, + 558, 558, 558, 0, 0, 0, 0, 0, 0, 558, + 1315, 558, 0, 0, 558, 0, 0, 0, 0, 558, + 0, 0, 0, 0, 0, 558, 558, 558, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 558, 0, 558, 558, 558, 0, 0, 0, 843, + 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 843, 0, 558, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 0, 0, 0, 92, - 558, 0, 0, 558, 558, 0, 0, 0, 0, 556, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 558, 558, 558, 558, 0, 558, 558, 558, 558, 0, - 0, 558, 0, 558, 0, 558, 558, 558, 0, 0, - 558, 558, 556, 558, 558, 558, 0, 556, 0, 556, - 556, 556, 558, 556, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, - 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, - 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, - 556, 558, 558, 558, 0, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 0, 558, 0, 0, 298, 0, - 0, 0, 0, 0, 0, 298, 0, 298, 298, 298, - 0, 0, 556, 0, 556, 127, 92, 92, 92, 92, - 92, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 92, 92, - 0, 1311, 144, 0, 93, 0, 298, 298, 298, 0, - 0, 0, 0, 0, 0, 92, 92, 92, 92, 0, - 0, 0, 92, 92, 0, 0, 0, 0, 92, 0, - 0, 92, 0, 0, 0, 0, 0, 0, 92, 92, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1312, 0, 298, 298, 298, 0, 298, 0, 0, 298, - 0, 0, 0, 93, 0, 0, 878, 879, 880, 1313, - 881, 882, 883, 884, 0, 885, 886, 198, 0, 887, - 888, 889, 890, 0, 0, 0, 891, 892, 0, 0, - 0, 0, 0, 92, 92, 0, 92, 92, 92, 0, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 556, - 556, 0, 556, 0, 0, 0, 0, 556, 0, 0, - 556, 0, 556, 556, 556, 556, 556, 556, 556, 93, - 556, 556, 556, 556, 0, 556, 556, 0, 0, 556, - 556, 556, 556, 0, 0, 556, 556, 556, 556, 0, - 0, 0, 0, 0, 893, 556, 0, 556, 0, 0, - 556, 0, 0, 0, 0, 556, 1036, 0, 0, 0, - 0, 556, 556, 556, 556, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1037, 1038, 0, 1039, 1040, - 1041, 1042, 1043, 1044, 0, 1045, 1046, 0, 1047, 1048, - 1049, 1050, 1051, 0, 0, 0, 0, 556, 0, 556, - 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 556, 556, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 556, 0, 0, 0, 0, 556, 556, 556, 556, 556, + 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, + 0, 93, 558, 0, 0, 558, 558, 0, 0, 0, + 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 558, 558, 558, 558, 0, 558, 558, 558, + 558, 0, 0, 558, 0, 558, 0, 558, 558, 558, + 0, 0, 558, 558, 556, 558, 558, 558, 0, 556, + 0, 556, 556, 556, 558, 556, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 556, 556, 556, 556, 0, 0, 843, 0, 0, 0, + 0, 0, 558, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 558, 558, 556, 558, 558, 558, 0, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 0, 558, 843, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, + 0, 843, 0, 0, 556, 0, 556, 0, 93, 93, + 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 93, 0, 844, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, + 93, 0, 0, 0, 93, 93, 0, 0, 0, 0, + 93, 0, 0, 93, 0, 0, 0, 0, 0, 0, + 93, 93, 843, 843, 843, 843, 843, 843, 843, 0, + 0, 0, 0, 0, 0, 0, 0, 879, 880, 881, + 0, 882, 883, 884, 885, 94, 886, 887, 198, 844, + 888, 889, 890, 891, 0, 0, 0, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 93, 0, 93, 93, + 93, 0, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 556, 556, 0, 556, 0, 0, 0, 0, 556, + 0, 0, 556, 0, 556, 556, 556, 556, 556, 556, + 556, 94, 556, 556, 556, 556, 0, 556, 556, 0, + 0, 556, 556, 556, 556, 894, 0, 556, 556, 556, + 556, 0, 0, 0, 0, 0, 0, 556, 0, 556, + 0, 0, 556, 0, 0, 0, 0, 556, 0, 0, + 0, 0, 0, 556, 556, 556, 556, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 0, 556, 556, 556, 0, 0, 0, 844, 0, 0, + 0, 0, 0, 0, 0, 556, 556, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 844, 0, 556, 0, 0, 0, 0, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 0, 0, 0, 93, 556, 0, - 0, 556, 556, 0, 0, 0, 0, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, - 556, 556, 0, 556, 556, 556, 556, 0, 0, 556, - 0, 556, 0, 556, 556, 556, 0, 0, 556, 556, - 554, 556, 556, 556, 0, 554, 0, 554, 554, 554, - 556, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 554, 554, + 556, 556, 556, 556, 556, 556, 0, 0, 0, 94, + 556, 0, 0, 556, 556, 0, 0, 0, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 556, 556, 556, 556, 0, 556, 556, 556, 556, 0, + 0, 556, 0, 556, 0, 556, 556, 556, 0, 0, + 556, 556, 557, 556, 556, 556, 0, 557, 0, 557, + 557, 557, 556, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, + 557, 557, 0, 0, 844, 0, 0, 0, 0, 0, + 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 556, 556, 554, 556, - 556, 556, 0, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 0, 556, 1052, 1053, 0, 1054, 1055, 1056, - 0, 1057, 1058, 0, 0, 1059, 1060, 0, 1061, 0, - 554, 0, 554, 0, 93, 93, 93, 93, 93, 0, - 0, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 0, 93, 93, 0, 0, - 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 93, 93, 93, 0, 0, 0, - 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 93, 0, 93, 93, 93, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 554, 554, 0, - 554, 0, 0, 0, 0, 554, 0, 0, 554, 0, - 554, 554, 554, 554, 554, 554, 554, 94, 554, 554, - 554, 554, 0, 554, 554, 0, 0, 554, 554, 554, - 554, 0, 0, 554, 554, 554, 554, 0, 0, 0, - 0, 0, 0, 554, 0, 554, 0, 0, 554, 0, - 0, 0, 0, 554, 0, 0, 0, 0, 0, 554, - 554, 554, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 554, 0, 554, 554, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, - 0, 0, 0, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 0, 0, 0, 94, 554, 0, 0, 554, - 554, 0, 0, 0, 0, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 554, 554, - 0, 554, 554, 554, 554, 0, 0, 554, 0, 554, - 0, 554, 554, 554, 0, 0, 554, 554, 555, 554, - 554, 554, 0, 555, 0, 555, 555, 555, 554, 555, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 555, 555, 555, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 554, 555, 554, 554, 554, - 0, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 555, 0, - 555, 0, 94, 94, 94, 94, 94, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 94, 362, 0, 0, 0, - 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 94, 94, 94, 0, 0, 0, 94, 94, - 0, 0, 0, 0, 94, 363, 0, 94, 0, 364, - 0, 0, 365, 366, 94, 94, 0, 367, 368, 369, + 557, 556, 556, 556, 0, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 0, 556, 844, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 844, 0, 0, 844, + 0, 0, 557, 0, 557, 0, 94, 94, 94, 94, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, + 0, 0, 0, 0, 787, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, + 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, + 844, 844, 844, 844, 844, 844, 844, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 557, + 557, 0, 557, 0, 0, 0, 0, 557, 0, 0, + 557, 0, 557, 557, 557, 557, 557, 557, 557, 787, + 557, 557, 557, 557, 0, 557, 557, 0, 0, 557, + 557, 557, 557, 0, 0, 557, 557, 557, 557, 0, + 0, 0, 0, 0, 0, 557, 0, 557, 0, 0, + 557, 0, 0, 0, 0, 557, 1038, 0, 0, 0, + 0, 557, 557, 557, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1039, 1040, 0, 1041, 1042, + 1043, 1044, 1045, 1046, 0, 1047, 1048, 0, 1049, 1050, + 1051, 1052, 1053, 0, 0, 0, 0, 557, 0, 557, + 557, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 557, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 557, 0, 0, 0, 0, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 0, 0, 0, 787, 557, 0, + 0, 557, 557, 0, 0, 0, 0, 559, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, + 557, 557, 0, 557, 557, 557, 557, 0, 0, 557, + 0, 557, 0, 557, 557, 557, 0, 0, 557, 557, + 559, 557, 557, 557, 0, 559, 0, 559, 559, 559, + 557, 559, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 559, 559, 559, 559, + 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 557, 557, 559, 557, + 557, 557, 0, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 0, 557, 1054, 1055, 0, 1056, 1057, 1058, + 0, 1059, 1060, 0, 0, 1061, 1062, 0, 1063, 0, + 559, 0, 559, 0, 787, 787, 787, 787, 787, 0, + 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 0, 787, 787, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 787, 787, 787, 787, 0, 0, 0, + 787, 787, 0, 0, 0, 0, 787, 0, 0, 787, + 0, 0, 0, 0, 0, 0, 787, 787, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 787, 0, 787, 787, 787, 0, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 559, 559, 0, + 559, 0, 0, 0, 0, 559, 0, 0, 559, 0, + 559, 559, 559, 559, 559, 559, 559, 47, 559, 559, + 559, 559, 0, 559, 559, 0, 0, 559, 559, 559, + 559, 0, 0, 559, 559, 559, 559, 0, 0, 0, + 0, 0, 0, 559, 0, 559, 0, 0, 559, 0, + 0, 0, 0, 559, 0, 0, 0, 0, 0, 559, + 559, 559, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 559, 0, 559, 559, 559, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, + 0, 0, 0, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 0, 0, 0, 47, 559, 0, 0, 559, + 559, 0, 0, 0, 0, 699, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 559, 559, 559, 559, + 0, 559, 559, 559, 559, 0, 0, 559, 0, 559, + 0, 559, 559, 559, 0, 0, 559, 559, 699, 559, + 559, 559, 0, 699, 0, 699, 699, 699, 559, 699, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 699, 699, 699, 699, 0, 0, + 0, 0, 0, 0, 0, 0, 559, 559, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 559, 559, 699, 559, 559, 559, + 0, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 699, 0, + 699, 0, 47, 47, 47, 47, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 362, 0, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 47, 47, 47, 0, 0, 0, 47, 47, + 0, 0, 0, 0, 47, 363, 0, 47, 0, 364, + 0, 0, 365, 366, 47, 47, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 0, 0, 0, 0, 0, 379, 0, 0, 380, 785, + 0, 0, 0, 0, 0, 379, 0, 0, 380, 48, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 94, 0, 94, 94, 94, 0, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 555, 555, 0, 555, 0, - 0, 0, 0, 555, 0, 0, 555, 0, 555, 555, - 555, 555, 555, 555, 555, 785, 555, 555, 555, 555, - 0, 555, 555, 0, 0, 555, 555, 555, 555, 0, - 0, 555, 555, 555, 555, 0, 0, 0, 0, 0, - 0, 555, 0, 555, 0, 0, 555, 0, 0, 0, - 0, 555, 0, 0, 0, 0, 0, 555, 555, 555, - 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 0, 555, 555, 555, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, - 0, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 0, 0, 0, 785, 555, 0, 0, 555, 555, 0, - 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 555, 555, 555, 0, 555, - 555, 555, 555, 0, 0, 555, 0, 555, 0, 555, - 555, 555, 0, 0, 555, 555, 557, 555, 555, 555, - 0, 557, 0, 557, 557, 557, 555, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 557, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 555, 555, 557, 555, 555, 555, 0, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 0, 555, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 105, 0, 105, 0, 0, 557, 0, 557, 0, - 785, 785, 785, 785, 785, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 785, 785, 105, 0, 0, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, - 785, 785, 785, 0, 0, 0, 785, 785, 0, 0, - 0, 0, 785, 105, 0, 785, 0, 105, 0, 0, - 105, 105, 785, 785, 0, 105, 105, 105, 105, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 47, 0, 47, 47, 47, 0, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 699, 699, 0, 699, 0, + 0, 0, 0, 699, 0, 0, 699, 0, 699, 699, + 699, 699, 699, 699, 699, 48, 699, 699, 699, 699, + 0, 699, 699, 0, 0, 699, 699, 699, 699, 0, + 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, + 0, 699, 0, 699, 0, 0, 699, 0, 0, 0, + 0, 699, 0, 0, 0, 0, 0, 699, 699, 699, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 699, 0, 699, 699, 699, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, + 0, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 0, 0, 0, 48, 699, 0, 0, 699, 699, 0, + 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 699, 699, 699, 699, 0, 699, + 699, 699, 699, 0, 0, 699, 0, 699, 0, 699, + 699, 699, 0, 0, 699, 699, 698, 699, 699, 699, + 0, 698, 0, 698, 698, 698, 699, 698, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 698, 698, 698, 698, 0, 0, 0, 0, + 0, 0, 0, 0, 699, 699, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 699, 699, 698, 699, 699, 699, 0, 699, + 699, 699, 699, 699, 699, 699, 699, 699, 0, 699, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 105, 105, 0, 105, 0, 0, 698, 0, 698, 0, + 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 105, 0, 0, 0, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 48, 105, 0, 48, 0, 105, 0, 0, + 105, 105, 48, 48, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 0, 0, 0, - 0, 0, 0, 105, 0, 0, 105, 47, 0, 0, + 0, 0, 0, 105, 0, 0, 105, 49, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 785, 785, 0, - 785, 785, 785, 0, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 557, 557, 0, 557, 0, 0, 0, - 0, 557, 0, 0, 557, 0, 557, 557, 557, 557, - 557, 557, 557, 47, 557, 557, 557, 557, 0, 557, - 557, 0, 0, 557, 557, 557, 557, 0, 0, 557, - 557, 557, 557, 0, 0, 0, 0, 0, 0, 557, - 0, 557, 0, 0, 557, 0, 0, 0, 0, 557, - 0, 0, 0, 0, 0, 557, 557, 557, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 557, 0, 557, 557, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 557, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 557, 0, 0, 0, 0, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 0, 0, - 0, 47, 557, 0, 0, 557, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, + 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 698, 698, 0, 698, 0, 0, 0, + 0, 698, 0, 0, 698, 0, 698, 698, 698, 698, + 698, 698, 698, 49, 698, 698, 698, 698, 0, 698, + 698, 0, 0, 698, 698, 698, 698, 0, 0, 698, + 698, 698, 0, 0, 0, 0, 0, 0, 0, 698, + 0, 698, 0, 0, 698, 0, 0, 0, 0, 698, + 0, 0, 0, 0, 0, 698, 698, 698, 698, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 698, 0, 698, 698, 698, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 698, 698, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 698, 0, 0, 0, 0, 698, + 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, + 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, + 698, 698, 698, 698, 698, 698, 698, 698, 0, 0, + 0, 49, 698, 0, 0, 698, 698, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 557, 557, 0, 557, 557, 557, - 557, 0, 0, 557, 0, 557, 0, 557, 557, 557, - 0, 0, 557, 557, 697, 557, 557, 557, 0, 697, - 0, 697, 697, 697, 557, 697, 0, 0, 0, 0, + 0, 0, 698, 698, 698, 698, 0, 698, 698, 698, + 698, 0, 0, 698, 0, 698, 0, 698, 698, 698, + 0, 0, 698, 698, 697, 698, 698, 698, 0, 697, + 0, 697, 697, 697, 698, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 697, 697, 697, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 698, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 557, 557, 697, 557, 557, 557, 0, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 0, 557, 0, 0, + 698, 698, 697, 698, 698, 698, 0, 698, 698, 698, + 698, 698, 698, 698, 698, 698, 0, 698, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 697, 0, 697, 0, 49, 49, + 49, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 697, 0, 697, 0, 47, 47, - 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 49, 49, 0, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, + 49, 0, 0, 0, 49, 49, 0, 0, 0, 596, + 49, 0, 0, 49, 0, 0, 0, 0, 0, 0, + 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, - 47, 0, 0, 0, 47, 47, 0, 0, 0, 0, - 47, 0, 0, 47, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 47, 0, 47, 47, - 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 697, 697, 0, 697, 0, 0, 0, 0, 697, + 0, 0, 0, 0, 0, 49, 49, 0, 49, 49, + 49, 0, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 697, 697, 0, 697, 0, 0, 0, 0, 697, 0, 0, 697, 0, 697, 697, 697, 697, 697, 697, - 697, 48, 697, 697, 697, 697, 0, 697, 697, 0, + 697, 50, 697, 697, 697, 697, 0, 697, 697, 0, 0, 697, 697, 697, 697, 0, 0, 697, 697, 697, 0, 0, 0, 0, 0, 0, 0, 697, 0, 697, 0, 0, 697, 0, 0, 0, 0, 697, 0, 0, - 0, 0, 0, 697, 697, 697, 697, 0, 0, 0, + 0, 0, 0, 697, 697, 697, 697, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, @@ -1757,1438 +1845,1442 @@ static int yytable[] = { 70, 0, 0, 697, 0, 0, 0, 0, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 0, 0, 0, 48, + 697, 697, 697, 697, 697, 697, 0, 0, 0, 50, 697, 0, 0, 697, 697, 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 697, 697, 697, 0, 697, 697, 697, 697, 0, 0, 697, 0, 697, 0, 697, 697, 697, 0, 0, 697, 697, 696, 697, 697, 697, 0, 696, 0, 696, - 696, 696, 697, 696, 0, 0, 0, 0, 0, 0, + 696, 696, 697, 696, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, - 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, - 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 697, 697, + 696, 696, 0, 0, 0, 0, 13, 0, 0, 0, + 697, 697, 0, 0, 0, 0, 0, 0, 592, 0, + 593, 0, 0, 594, 595, 0, 0, 0, 697, 697, 696, 697, 697, 697, 0, 697, 697, 697, 697, 697, 697, 697, 697, 697, 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 696, 0, 696, 0, 48, 48, 48, 48, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 48, 48, 48, 0, - 0, 0, 48, 48, 0, 0, 0, 0, 48, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 0, 696, 0, 696, 0, 50, 50, 50, 50, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 50, 50, 50, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 50, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 48, 0, 48, 48, 48, 0, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 696, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 50, 0, 50, 50, 50, 0, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 696, 696, 0, 696, 0, 0, 0, 0, 696, 0, 0, - 696, 0, 696, 696, 696, 696, 696, 696, 696, 49, + 696, 0, 696, 696, 696, 696, 696, 696, 696, 0, 696, 696, 696, 696, 0, 696, 696, 0, 0, 696, 696, 696, 696, 0, 0, 696, 696, 696, 0, 0, - 0, 0, 0, 0, 0, 696, 0, 696, 0, 0, + 0, 0, 0, 0, 706, 696, 0, 696, 0, 0, 696, 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, 696, 696, 696, 696, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, + 0, 0, 0, 0, 706, 706, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 696, 0, 696, - 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, + 696, 696, 0, 706, 0, 706, 706, 0, 0, 0, 0, 0, 0, 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 0, 0, 0, 0, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 0, 0, 0, 49, 696, 0, - 0, 696, 696, 0, 0, 0, 0, 695, 0, 0, + 696, 696, 696, 696, 0, 0, 0, 706, 696, 706, + 0, 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, 696, 696, 0, 696, 696, 696, 696, 0, 0, 696, 0, 696, 0, 696, 696, 696, 0, 0, 696, 696, - 695, 696, 696, 696, 0, 695, 0, 695, 695, 695, - 696, 695, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 695, 695, 695, 695, + 0, 696, 696, 696, 0, 0, 0, 0, 0, 0, + 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 696, 696, 695, 696, + 0, 0, 0, 0, 0, 0, 696, 696, 0, 696, 696, 696, 0, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 0, 696, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 695, 0, 695, 0, 49, 49, 49, 49, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, - 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 49, 49, 49, 0, 0, 0, - 49, 49, 0, 0, 0, 596, 49, 0, 0, 49, - 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 49, 0, 49, 49, 49, 0, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 695, 695, 0, - 695, 0, 0, 0, 0, 695, 0, 0, 695, 0, - 695, 695, 695, 695, 695, 695, 695, 50, 695, 695, - 695, 695, 0, 695, 695, 0, 0, 695, 695, 695, - 695, 0, 0, 695, 695, 695, 0, 0, 0, 0, - 0, 0, 0, 695, 0, 695, 0, 0, 695, 0, - 0, 0, 0, 695, 0, 0, 0, 0, 0, 695, - 695, 695, 695, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 695, 0, 695, 695, 695, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 695, 695, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, - 0, 0, 0, 695, 695, 695, 695, 695, 695, 695, - 695, 695, 695, 695, 695, 695, 695, 695, 695, 695, - 695, 695, 695, 695, 695, 695, 695, 695, 695, 695, - 695, 695, 0, 0, 0, 50, 695, 0, 0, 695, - 695, 0, 0, 0, 0, 694, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 695, 695, 695, 695, - 0, 695, 695, 695, 695, 0, 0, 695, 0, 695, - 0, 695, 695, 695, 0, 0, 695, 695, 694, 695, - 695, 695, 0, 694, 0, 694, 694, 694, 695, 694, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 694, 694, 694, 694, 0, 0, - 0, 0, 13, 0, 0, 0, 695, 695, 0, 0, - 0, 0, 0, 0, 592, 0, 593, 0, 0, 594, - 595, 0, 0, 0, 695, 695, 694, 695, 695, 695, - 0, 695, 695, 695, 695, 695, 695, 695, 695, 695, - 0, 695, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, - 694, 0, 50, 50, 50, 50, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 50, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 50, 50, 50, 0, 0, 0, 50, 50, - 0, 0, 0, 0, 50, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 50, 0, 50, 50, 50, 0, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 694, 694, 0, 694, 0, - 0, 0, 0, 694, 0, 0, 694, 0, 694, 694, - 694, 694, 694, 694, 694, 0, 694, 694, 694, 694, - 0, 694, 694, 0, 0, 694, 694, 694, 694, 0, - 0, 694, 694, 694, 0, 0, 0, 0, 0, 0, - 704, 694, 0, 694, 0, 0, 694, 0, 0, 0, - 0, 694, 0, 0, 0, 0, 0, 694, 694, 694, - 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, - 704, 704, 0, 0, 704, 0, 0, 0, 0, 0, - 0, 0, 0, 694, 0, 694, 694, 694, 0, 704, - 0, 704, 704, 0, 0, 0, 0, 0, 0, 694, - 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, - 0, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, - 0, 0, 0, 704, 694, 704, 0, 694, 694, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 694, 694, 694, 694, 0, 694, - 694, 694, 694, 0, 0, 694, 0, 694, 0, 694, - 694, 694, 0, 0, 694, 694, 0, 694, 694, 694, - 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 694, 694, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 694, 694, 0, 694, 694, 694, 0, 694, - 694, 694, 694, 694, 694, 694, 694, 694, 0, 694, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 704, 0, 704, 0, 0, 0, 0, 704, 0, - 0, 704, 0, 704, 704, 704, 704, 704, 704, 704, - 0, 704, 704, 704, 704, 0, 704, 704, 0, 0, - 704, 704, 704, 704, 0, 0, 704, 704, 704, 0, - 0, 0, 52, 0, 387, 97, 704, 0, 704, 0, - 99, 704, 100, 0, 0, 0, 704, 0, 0, 101, - 0, 0, 704, 704, 704, 704, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 102, 388, 0, 389, - 390, 391, 392, 393, 0, 0, 0, 0, 394, 0, - 0, 103, 0, 0, 0, 0, 0, 395, 704, 0, - 0, 52, 396, 0, 397, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 704, 704, 398, 399, 400, 401, - 402, 403, 404, 405, 0, 0, 0, 0, 0, 406, - 0, 704, 0, 0, 0, 0, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 52, 0, 52, 0, 704, - 797, 0, 704, 704, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, - 704, 704, 704, 0, 704, 704, 704, 704, 0, 0, - 704, 0, 704, 0, 704, 704, 704, 0, 0, 704, - 704, 0, 704, 704, 704, 0, 0, 0, 0, 0, - 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, - 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 704, 704, 0, - 704, 704, 704, 0, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 0, 704, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 54, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, + 696, 696, 0, 696, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 706, 706, 0, 706, 0, 0, + 0, 0, 706, 0, 0, 706, 0, 706, 706, 706, + 706, 706, 706, 706, 0, 706, 706, 706, 706, 0, + 706, 706, 0, 0, 706, 706, 706, 706, 0, 0, + 706, 706, 706, 0, 0, 0, 52, 0, 387, 97, + 706, 0, 706, 0, 99, 706, 100, 0, 0, 0, + 706, 0, 0, 101, 0, 0, 706, 706, 706, 706, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 102, 388, 0, 389, 390, 391, 392, 393, 0, 0, + 0, 0, 394, 0, 0, 103, 0, 0, 0, 0, + 0, 395, 706, 0, 0, 52, 396, 0, 397, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 706, 706, + 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, + 0, 0, 0, 406, 0, 706, 0, 0, 0, 0, + 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, + 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, + 706, 706, 706, 706, 706, 706, 706, 706, 706, 52, + 0, 52, 0, 706, 0, 0, 706, 706, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 706, 706, 706, 706, 0, 706, 706, + 706, 706, 0, 0, 706, 0, 706, 0, 706, 706, + 706, 0, 0, 706, 706, 0, 706, 706, 706, 0, + 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 706, 706, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 706, 706, 0, 706, 706, 706, 0, 706, 706, + 706, 706, 706, 706, 706, 706, 706, 0, 706, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 0, 52, 52, 52, 0, 52, 52, 52, + 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, + 0, 0, 52, 52, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 127, 563, 0, 54, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 52, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 52, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 147, 148, 149, 0, + 52, 52, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, + 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, + 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 54, 0, 54, 0, - 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 52, 52, 52, 0, 52, 52, 52, 52, - 0, 0, 52, 0, 52, 0, 52, 52, 52, 52, - 0, 52, 52, 0, 52, 52, 52, 0, 0, 0, + 54, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 0, 52, 0, 52, 0, + 52, 52, 52, 52, 0, 52, 52, 0, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 52, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 54, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 54, 0, 0, 0, - 54, 54, 54, 0, 54, 54, 54, 54, 0, 54, - 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 0, 55, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 54, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 0, 54, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 54, 0, 0, 0, 54, 54, 54, 0, 54, 54, + 54, 54, 0, 54, 54, 54, 0, 54, 54, 54, + 54, 0, 0, 54, 54, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 127, 266, 0, 55, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 54, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 0, 54, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 147, 148, 149, + 0, 54, 54, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 147, 148, 149, 0, 54, 54, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 54, + 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, - 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 55, 0, 55, - 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 54, 54, 54, 0, 54, 54, 54, - 54, 0, 0, 54, 0, 54, 0, 54, 54, 54, - 54, 0, 54, 54, 0, 54, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 55, 0, 55, 0, 0, 872, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, + 0, 54, 54, 54, 54, 0, 0, 54, 0, 54, + 0, 54, 54, 54, 54, 0, 54, 54, 0, 54, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 54, 0, 54, 54, 54, 0, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 54, 0, 54, 54, 54, + 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 55, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 55, 0, 0, - 0, 55, 55, 55, 0, 55, 55, 55, 55, 0, - 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 0, 0, 56, 232, 232, 232, 232, - 232, 0, 232, 232, 232, 232, 55, 232, 232, 0, - 0, 232, 232, 232, 232, 0, 0, 0, 232, 232, - 0, 0, 0, 55, 0, 0, 0, 232, 0, 232, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 232, 232, 232, 0, 55, 55, - 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, + 0, 55, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 55, 0, 0, 0, 55, 55, 55, 0, 55, + 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, + 55, 55, 0, 0, 55, 55, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127, 0, 0, 56, + 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, + 55, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 0, 143, 144, 0, 0, 0, 55, 0, 0, + 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 147, 148, + 149, 0, 55, 55, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, - 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 56, 0, - 56, 0, 0, 225, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 55, 55, 55, 0, 55, 55, - 55, 55, 0, 0, 55, 0, 55, 0, 55, 55, - 55, 55, 0, 55, 55, 0, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 56, 0, 56, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 0, 55, 0, + 55, 0, 55, 55, 55, 55, 0, 55, 55, 0, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 0, 55, 55, 55, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 55, 0, 55, 55, + 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 232, 0, 0, 56, 0, - 0, 0, 56, 56, 56, 0, 56, 56, 56, 56, - 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, - 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 0, 53, 225, 225, 225, - 225, 225, 0, 225, 225, 225, 225, 56, 225, 225, - 0, 0, 225, 225, 225, 225, 0, 0, 0, 225, - 225, 0, 0, 0, 56, 0, 0, 0, 225, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 225, 225, 225, 0, 56, - 56, 0, 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 56, 0, 0, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 0, 56, 56, 56, 0, 56, + 56, 56, 56, 0, 0, 56, 56, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 53, 232, 232, 232, 232, 232, 0, 232, 232, 232, + 232, 56, 232, 232, 0, 0, 232, 232, 232, 232, + 0, 0, 0, 232, 232, 0, 0, 0, 56, 0, + 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 232, + 232, 232, 0, 56, 56, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 0, 0, 0, 0, 232, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 53, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 56, 56, 56, 0, 56, - 56, 56, 56, 0, 0, 56, 0, 56, 0, 56, - 56, 56, 56, 0, 56, 56, 0, 56, 56, 56, + 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, + 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 56, 0, 56, 56, 56, 0, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 0, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 225, 0, 0, 53, - 0, 0, 0, 53, 53, 53, 0, 53, 53, 53, - 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, - 0, 0, 53, 53, 53, 0, 0, 0, 0, 61, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, + 53, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 232, 0, 0, 53, 0, 0, 0, 53, 53, 53, + 0, 53, 53, 53, 53, 0, 53, 53, 53, 0, + 53, 53, 53, 53, 0, 0, 53, 53, 53, 0, + 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 0, 0, 62, 0, 0, 0, 61, 0, 0, 61, - 0, 0, 0, 0, 0, 53, 53, 53, 53, 61, - 53, 53, 53, 53, 0, 0, 53, 0, 53, 0, - 53, 53, 53, 53, 0, 53, 53, 0, 53, 53, - 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 53, 53, 0, 53, 53, 53, 0, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, - 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, + 53, 53, 53, 53, 0, 0, 62, 0, 0, 0, + 61, 0, 0, 61, 0, 0, 0, 0, 0, 53, + 53, 53, 53, 61, 53, 53, 53, 53, 0, 0, + 53, 0, 53, 0, 53, 53, 53, 53, 0, 53, + 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 53, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 53, 53, 0, + 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 61, 61, 61, 0, - 61, 61, 61, 61, 0, 0, 61, 0, 61, 0, - 61, 61, 61, 61, 0, 61, 61, 0, 61, 61, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 61, 61, 61, 0, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, + 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, + 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 61, 61, 62, + 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 61, 0, 0, 0, - 0, 0, 62, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 61, 61, 62, 61, 61, 61, 0, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 65, 0, 65, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 62, 62, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, + 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 0, 0, 66, 0, - 0, 0, 65, 0, 0, 65, 0, 0, 0, 0, - 0, 62, 62, 62, 62, 65, 62, 62, 62, 62, - 0, 0, 62, 0, 62, 0, 62, 62, 62, 62, - 0, 62, 62, 0, 62, 62, 62, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, - 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 62, - 62, 0, 62, 62, 62, 0, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 65, 65, + 0, 0, 66, 0, 0, 0, 65, 0, 0, 65, + 0, 0, 0, 0, 0, 62, 62, 62, 62, 65, + 62, 62, 62, 62, 0, 0, 62, 0, 62, 0, + 62, 62, 62, 62, 0, 62, 62, 0, 62, 62, + 62, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 62, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 62, 62, 0, 62, 62, 62, 0, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, + 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, - 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 65, 65, 65, 65, 0, 65, 65, 65, 65, - 0, 0, 65, 0, 65, 0, 65, 65, 65, 65, - 0, 65, 65, 0, 65, 65, 65, 0, 0, 0, - 0, 0, 0, 569, 569, 0, 0, 569, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, - 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, - 65, 66, 65, 65, 65, 0, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, + 0, 0, 0, 0, 0, 65, 65, 65, 65, 0, + 65, 65, 65, 65, 0, 0, 65, 0, 65, 0, + 65, 65, 65, 65, 0, 65, 65, 0, 65, 65, + 65, 0, 0, 0, 0, 0, 0, 571, 571, 0, + 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 571, 0, 571, 0, + 0, 0, 0, 0, 0, 65, 65, 0, 0, 0, + 0, 0, 66, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 66, 65, 65, 65, 0, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 571, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, + 0, 0, 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 567, 0, 0, 0, 0, 0, - 0, 0, 0, 569, 569, 0, 569, 66, 66, 66, - 66, 0, 66, 66, 66, 66, 569, 569, 66, 0, - 66, 0, 66, 66, 66, 66, 0, 66, 66, 0, - 66, 66, 66, 0, 567, 567, 0, 0, 567, 0, + 66, 66, 66, 66, 66, 66, 0, 0, 569, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 571, 0, + 571, 66, 66, 66, 66, 0, 66, 66, 66, 66, + 571, 571, 66, 0, 66, 0, 66, 66, 66, 66, + 0, 66, 66, 0, 66, 66, 66, 0, 569, 569, + 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 569, 571, 569, + 0, 0, 0, 571, 0, 0, 0, 0, 0, 571, + 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 66, 0, 66, 66, 66, 0, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 567, 569, 567, 0, 0, 0, 569, - 0, 0, 0, 0, 0, 569, 0, 66, 66, 0, + 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 66, 0, 66, 66, - 66, 0, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 567, 0, 567, + 0, 0, 0, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 0, 0, 0, 571, 571, 571, 571, 571, + 571, 571, 0, 0, 0, 0, 571, 0, 0, 571, + 571, 0, 0, 570, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 571, 571, 571, 571, + 0, 571, 571, 571, 571, 0, 0, 571, 0, 571, + 0, 571, 571, 571, 0, 0, 571, 571, 0, 571, + 571, 571, 0, 570, 570, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, - 0, 569, 569, 569, 569, 569, 569, 569, 0, 0, - 0, 0, 569, 0, 0, 569, 569, 0, 0, 568, + 0, 0, 570, 0, 570, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 569, 569, 569, 0, 569, 569, 569, - 569, 0, 0, 569, 0, 569, 0, 569, 569, 569, - 0, 0, 569, 569, 0, 569, 569, 569, 0, 568, - 568, 0, 0, 568, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, - 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 567, 567, 0, - 569, 569, 0, 569, 569, 569, 0, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, + 0, 569, 569, 0, 571, 571, 0, 571, 571, 571, + 0, 571, 571, 571, 571, 571, 571, 571, 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 568, 0, 568, 567, 0, 0, 0, 0, - 567, 0, 0, 0, 0, 0, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 570, 0, 570, 569, + 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 33, 0, 0, 569, 569, 569, 569, + 569, 569, 569, 0, 0, 0, 0, 569, 0, 0, + 569, 569, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 569, 569, 569, + 569, 0, 569, 569, 569, 569, 570, 570, 569, 0, + 569, 0, 569, 569, 569, 0, 0, 569, 569, 0, + 569, 569, 569, 0, 0, 0, 0, 33, 0, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 570, 0, 0, 0, 0, 570, + 0, 0, 0, 0, 0, 570, 0, 569, 569, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 569, 569, 0, 569, 569, + 569, 0, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 0, 0, + 0, 570, 570, 570, 570, 570, 570, 570, 0, 0, + 0, 34, 570, 0, 33, 570, 570, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 570, 570, 570, 570, 0, 570, 570, 570, + 570, 0, 0, 570, 0, 570, 0, 570, 570, 570, + 0, 0, 570, 570, 0, 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 33, - 0, 0, 567, 567, 567, 567, 567, 567, 567, 0, - 0, 0, 0, 567, 0, 0, 567, 567, 0, 0, + 0, 0, 0, 0, 0, 34, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 567, 567, 567, 567, 0, 567, 567, - 567, 567, 568, 568, 567, 0, 567, 0, 567, 567, - 567, 0, 0, 567, 567, 0, 567, 567, 567, 0, - 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, + 0, 0, 570, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 568, 0, 0, 0, 0, 568, 0, 0, 0, 0, - 0, 568, 0, 567, 567, 0, 0, 0, 0, 0, + 570, 570, 0, 570, 570, 570, 0, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 0, 0, 0, 0, + 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 567, 567, 0, 567, 567, 567, 0, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, + 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, + 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 33, 0, 33, 33, + 33, 33, 34, 0, 33, 34, 33, 0, 0, 33, + 0, 0, 0, 0, 0, 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 0, 0, 0, 568, 568, 568, - 568, 568, 568, 568, 0, 0, 0, 34, 568, 0, - 33, 568, 568, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 568, 568, - 568, 568, 0, 568, 568, 568, 568, 0, 0, 568, - 0, 568, 0, 568, 568, 568, 0, 0, 568, 568, - 0, 568, 568, 568, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 776, 0, 776, 0, 0, + 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 33, 33, 0, 33, 33, 33, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 33, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 568, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 568, 568, 0, 568, - 568, 568, 0, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 0, 0, 0, 0, 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 0, 0, 774, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 33, 33, 33, 0, 33, 33, 33, 33, 34, 0, - 33, 34, 33, 0, 0, 33, 0, 0, 0, 0, - 0, 34, 33, 33, 33, 0, 0, 0, 0, 0, + 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 0, 0, 0, 778, + 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 34, 34, 34, 776, 34, 34, 34, 34, + 0, 0, 34, 0, 34, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 774, 0, 774, 0, 0, 0, 0, 0, 33, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 33, 33, 0, - 33, 33, 33, 0, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 778, 776, 778, 0, 0, 0, 0, + 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 34, 0, 34, 34, 34, 0, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 776, 776, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 776, 776, 0, 0, 0, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 776, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, + 0, 776, 776, 776, 776, 0, 776, 776, 776, 776, + 778, 0, 776, 0, 776, 0, 0, 776, 0, 0, + 0, 0, 0, 778, 776, 776, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 0, 0, 0, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 0, 0, 0, 776, 0, 0, 774, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, - 34, 774, 34, 34, 34, 34, 0, 0, 34, 0, - 34, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, - 774, 776, 0, 0, 0, 0, 0, 34, 34, 0, + 0, 0, 0, 782, 0, 782, 0, 0, 0, 0, + 0, 776, 776, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 778, 0, 0, 0, 0, 0, 0, 776, + 776, 0, 776, 776, 776, 0, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 0, 34, 34, - 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 0, 0, 0, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 0, 0, 0, 780, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 774, 774, 774, - 774, 0, 774, 774, 774, 774, 776, 0, 774, 0, - 774, 0, 0, 774, 0, 0, 0, 0, 0, 776, - 774, 774, 774, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, - 0, 780, 0, 0, 0, 0, 0, 774, 774, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, - 0, 0, 0, 0, 0, 774, 774, 0, 774, 774, - 774, 0, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 778, 778, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 778, 778, 0, 0, 0, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 778, 0, 0, 0, 780, 0, 0, + 782, 0, 0, 0, 0, 0, 0, 0, 0, 778, + 778, 778, 778, 782, 778, 778, 778, 778, 0, 0, + 778, 0, 778, 0, 0, 778, 0, 0, 0, 0, + 0, 0, 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 778, 0, 0, 0, 0, 0, + 0, 780, 782, 780, 0, 0, 0, 0, 0, 778, + 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 778, 778, 0, + 778, 778, 778, 0, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 0, 0, 0, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 0, 0, 0, 778, 0, 0, 780, 0, 0, 0, - 0, 0, 0, 0, 0, 776, 776, 776, 776, 780, - 776, 776, 776, 776, 0, 0, 776, 0, 776, 0, - 0, 776, 0, 0, 0, 0, 0, 0, 776, 776, - 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 0, 0, 0, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 0, 0, 0, 784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, + 782, 782, 782, 0, 782, 782, 782, 782, 780, 0, + 782, 0, 782, 0, 0, 782, 0, 0, 0, 0, + 0, 780, 782, 782, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 778, 780, 778, - 0, 0, 0, 0, 0, 776, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 776, 776, 0, 776, 776, 776, 0, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 0, + 0, 784, 0, 784, 0, 0, 0, 0, 0, 782, + 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 780, 0, 0, 0, 0, 0, 0, 782, 782, 0, + 782, 782, 782, 0, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 780, 780, 780, 780, 780, 780, 780, 780, + 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, - 780, 0, 0, 0, 780, 780, 780, 780, 780, 780, + 780, 780, 780, 0, 0, 0, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, - 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 780, 780, 780, 780, 0, - 780, 780, 780, 780, 778, 0, 780, 0, 780, 0, - 0, 780, 0, 0, 0, 0, 0, 778, 780, 780, - 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 782, 0, 782, - 0, 0, 0, 0, 0, 780, 780, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 778, 0, 0, 0, - 0, 0, 0, 780, 780, 0, 780, 780, 780, 0, - 780, 780, 780, 780, 780, 780, 780, 780, 780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 780, 780, 0, 0, 0, 734, 0, 0, 784, 0, + 0, 0, 0, 0, 0, 0, 0, 780, 780, 780, + 780, 784, 780, 780, 780, 780, 0, 0, 780, 0, + 780, 0, 0, 780, 0, 0, 0, 0, 0, 0, + 780, 780, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, + 784, 734, 0, 0, 0, 0, 0, 780, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 780, 780, 0, 780, 780, + 780, 0, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 778, 0, - 0, 0, 778, 778, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 0, 0, - 0, 732, 0, 0, 782, 0, 0, 0, 0, 0, - 0, 0, 0, 778, 778, 778, 778, 782, 778, 778, - 778, 778, 0, 0, 778, 0, 778, 0, 0, 778, - 0, 0, 0, 0, 0, 0, 778, 778, 778, 0, + 0, 0, 0, 0, 784, 784, 784, 784, 784, 784, + 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, + 784, 784, 784, 0, 0, 0, 784, 784, 784, 784, + 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, + 784, 784, 0, 0, 0, 736, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, + 784, 0, 784, 784, 784, 784, 734, 0, 784, 734, + 784, 0, 0, 784, 0, 0, 0, 0, 0, 734, + 784, 784, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, + 0, 736, 0, 0, 0, 0, 0, 784, 784, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, + 0, 0, 0, 0, 0, 784, 784, 0, 784, 784, + 784, 0, 784, 784, 784, 784, 784, 784, 784, 784, + 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 732, 782, 732, 0, 0, - 0, 0, 0, 778, 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 778, 778, 0, 778, 778, 778, 0, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, - 782, 782, 782, 782, 782, 782, 782, 782, 782, 0, - 0, 0, 782, 782, 782, 782, 782, 782, 782, 782, - 782, 782, 782, 782, 782, 782, 782, 782, 0, 0, - 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 782, 782, 782, 782, 0, 782, 782, - 782, 782, 732, 0, 782, 732, 782, 0, 0, 782, - 0, 0, 0, 0, 0, 732, 782, 782, 782, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 734, 0, 734, 0, 0, - 0, 0, 0, 782, 782, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, - 0, 782, 782, 0, 782, 782, 782, 0, 782, 782, - 782, 782, 782, 782, 782, 782, 782, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, - 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, - 0, 732, 0, 400, 732, 732, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 734, 0, 0, 0, 0, - 0, 732, 732, 732, 732, 734, 732, 732, 732, 732, - 0, 0, 732, 0, 732, 0, 732, 732, 732, 0, - 0, 732, 732, 0, 732, 732, 732, 400, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, - 0, 732, 732, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, - 732, 0, 732, 732, 732, 157, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 734, 734, + 0, 0, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 0, 0, 0, - 734, 734, 734, 734, 734, 734, 734, 442, 0, 0, - 0, 734, 0, 0, 734, 734, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 734, 734, 734, 734, 0, 734, 734, 734, 734, - 0, 51, 734, 0, 734, 0, 734, 734, 734, 0, - 0, 734, 734, 0, 734, 734, 734, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 734, 734, 400, 0, 0, 400, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 400, 0, 0, 734, - 734, 0, 734, 734, 734, 0, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 0, 0, 0, 0, 0, - 442, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, - 144, 0, 788, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, - 0, 400, 400, 400, 400, 400, 400, 400, 0, 0, - 150, 788, 400, 0, 0, 400, 400, 442, 0, 0, + 734, 0, 0, 0, 734, 734, 734, 734, 734, 734, + 734, 0, 0, 0, 0, 734, 0, 400, 734, 734, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 736, + 0, 0, 0, 0, 0, 734, 734, 734, 734, 736, + 734, 734, 734, 734, 0, 0, 734, 0, 734, 0, + 734, 734, 734, 0, 0, 734, 734, 0, 734, 734, + 734, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, + 0, 0, 0, 0, 0, 734, 734, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 734, 734, 0, 734, 734, 734, 157, + 734, 734, 734, 734, 734, 734, 734, 734, 734, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 400, 0, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, + 736, 0, 0, 0, 736, 736, 736, 736, 736, 736, + 736, 442, 0, 0, 0, 736, 0, 0, 736, 736, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 736, 736, 736, 736, 0, + 736, 736, 736, 736, 0, 51, 736, 0, 736, 0, + 736, 736, 736, 0, 0, 736, 736, 0, 736, 736, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 400, 400, 400, 400, 0, 400, 400, 400, - 400, 0, 0, 400, 0, 400, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 400, 400, 400, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 788, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 400, 0, 0, 225, 0, 0, 0, + 0, 0, 0, 0, 0, 736, 736, 400, 0, 0, + 400, 0, 0, 0, 51, 0, 0, 0, 0, 0, + 400, 0, 0, 736, 736, 0, 736, 736, 736, 0, + 736, 736, 736, 736, 736, 736, 736, 736, 736, 0, + 0, 0, 0, 0, 442, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 400, 400, 0, 400, 400, 400, 0, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 790, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 0, 0, 0, 400, 400, 400, 400, 400, + 400, 400, 0, 0, 150, 790, 400, 0, 0, 400, + 400, 442, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 400, 400, 400, 400, + 0, 400, 400, 400, 400, 0, 0, 400, 0, 400, + 0, 0, 400, 0, 0, 0, 0, 0, 0, 400, + 400, 400, 0, 0, 0, 0, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 790, 0, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 400, 0, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 400, 400, 0, 400, 400, 400, + 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 442, 442, 442, 442, 442, 442, + 0, 0, 0, 0, 0, 0, 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 0, 0, 0, 442, 442, 442, 442, 442, - 442, 442, 0, 0, 0, 0, 442, 0, 0, 442, - 442, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 0, 51, 51, 51, 51, 51, 442, 442, 442, 442, - 0, 442, 442, 442, 442, 0, 0, 442, 0, 442, - 0, 0, 442, 51, 51, 788, 0, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 0, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 0, 0, 0, 0, + 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 51, 51, 51, 51, 51, + 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, + 0, 442, 0, 442, 0, 0, 442, 51, 51, 790, + 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 51, 51, 51, 0, 0, + 0, 51, 51, 0, 0, 0, 0, 51, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 51, 51, 0, 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 51, 51, 51, 0, 0, 0, 51, 51, 0, - 0, 0, 0, 51, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 51, 51, 0, 442, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 285, 0, 442, 442, 284, 442, 442, 442, - 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, - 0, 51, 51, 51, 0, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 225, 470, 0, 0, 225, 225, - 225, 225, 225, 0, 225, 225, 225, 225, 0, 225, - 225, 0, 0, 225, 225, 225, 225, 0, 0, 0, - 225, 225, 788, 788, 788, 788, 788, 0, 0, 225, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 788, 788, 225, 225, 225, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 788, 788, 788, 788, 0, 0, 0, 788, 788, - 0, 0, 0, 0, 788, 0, 0, 788, 0, 0, - 0, 225, 0, 0, 788, 788, 0, 157, 0, 0, - 0, 0, 285, 0, 0, 0, 703, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, - 788, 0, 788, 788, 788, 470, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 684, 0, 0, 0, 0, 684, 0, 0, 0, 684, + 0, 157, 0, 0, 0, 0, 285, 0, 442, 442, + 284, 442, 442, 442, 0, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 0, 0, 0, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 51, 0, 51, 51, 51, 0, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 225, 470, + 0, 0, 225, 225, 225, 225, 225, 0, 225, 225, + 225, 225, 0, 225, 225, 0, 0, 225, 225, 225, + 225, 0, 0, 0, 225, 225, 790, 790, 790, 790, + 790, 0, 0, 225, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 790, 790, + 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 790, 790, 790, 790, 0, + 0, 0, 790, 790, 0, 0, 0, 0, 790, 0, + 0, 790, 0, 0, 0, 225, 0, 0, 790, 790, + 0, 157, 0, 0, 0, 0, 285, 0, 0, 0, + 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 790, 790, 0, 790, 790, 790, 470, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 686, 0, 0, 0, 0, 686, + 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 686, 0, 0, 0, 0, 150, 0, 278, 279, + 280, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 468, 469, 0, 0, 0, 0, 0, 0, + 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 34, 152, 153, 154, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 157, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 524, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 0, 278, 279, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 468, 469, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 686, 686, 0, 686, 0, 0, 0, 0, 686, + 0, 0, 686, 152, 153, 154, 686, 686, 686, 686, + 686, 0, 686, 686, 686, 686, 0, 686, 686, 0, + 0, 686, 686, 686, 686, 0, 0, 686, 686, 686, + 0, 0, 0, 0, 0, 0, 157, 686, 0, 686, + 0, 285, 0, 0, 0, 284, 0, 0, 0, 0, + 0, 0, 0, 0, 686, 686, 686, 0, 0, 0, + 0, 0, 0, 283, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, + 0, 686, 686, 686, 470, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 686, 686, 0, 0, 0, + 0, 0, 0, 0, 127, 515, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 212, 155, 139, 140, 141, 142, 438, 0, 0, + 143, 144, 0, 0, 0, 0, 686, 686, 686, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 439, 0, 440, 441, 442, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, - 0, 0, 150, 0, 278, 279, 280, 225, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 468, 469, - 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 0, 516, 0, 5, 6, 7, 0, 444, + 445, 446, 447, 0, 0, 448, 0, 517, 0, 449, + 450, 451, 518, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 34, 152, - 153, 154, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 157, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 278, 279, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 468, 469, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 684, 0, - 684, 0, 0, 0, 0, 684, 0, 0, 684, 152, - 153, 154, 684, 684, 684, 684, 684, 0, 684, 684, - 684, 684, 0, 684, 684, 0, 0, 684, 684, 684, - 684, 0, 0, 684, 684, 684, 0, 0, 0, 0, - 0, 0, 157, 684, 0, 684, 0, 285, 0, 0, - 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, - 684, 684, 684, 0, 0, 0, 0, 0, 0, 283, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 684, 0, 684, 684, 684, - 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 684, 684, 0, 0, 0, 0, 0, 0, 0, - 127, 515, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 212, 155, 139, - 140, 141, 142, 438, 0, 0, 143, 144, 0, 0, - 0, 0, 684, 684, 684, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 439, 0, 440, 441, - 442, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 516, - 0, 5, 6, 7, 0, 444, 445, 446, 447, 0, - 0, 448, 0, 517, 0, 449, 450, 451, 518, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 519, 520, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 69, 521, 0, 0, 0, 126, 0, 0, - 127, 684, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 522, 523, - 0, 0, 0, 0, 156, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 147, 148, 149, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 278, - 279, 280, 0, 0, 0, 212, 0, 0, 0, 212, - 212, 212, 212, 212, 0, 212, 212, 212, 212, 0, - 212, 212, 0, 155, 212, 212, 212, 212, 212, 0, - 0, 212, 212, 0, 0, 0, 0, 0, 0, 0, - 212, 0, 212, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 152, 153, 154, 212, 212, 212, - 0, 212, 0, 212, 212, 212, 212, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 0, 519, 520, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 68, 0, 69, 521, 0, 0, + 0, 126, 0, 0, 127, 686, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 522, 523, 0, 0, 0, 0, 156, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 452, 0, 147, 148, 149, 27, + 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 150, 0, 278, 279, 280, 0, 0, 0, 212, + 0, 0, 0, 212, 212, 212, 212, 212, 0, 212, + 212, 212, 212, 0, 212, 212, 0, 155, 212, 212, + 212, 212, 212, 0, 0, 212, 212, 0, 0, 0, + 0, 0, 0, 0, 212, 0, 212, 0, 0, 0, + 0, 210, 0, 0, 0, 0, 0, 0, 152, 153, + 154, 212, 212, 212, 0, 212, 0, 212, 212, 212, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 212, 0, 0, 0, + 0, 0, 0, 0, 212, 212, 212, 212, 0, 0, + 212, 0, 0, 0, 212, 212, 212, 67, 68, 0, + 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 147, 148, 149, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 151, 0, 0, 212, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 0, 212, 147, 148, 149, 0, 917, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 918, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 212, 212, 212, 212, 0, 0, 212, 0, 0, 0, - 212, 212, 212, 67, 68, 0, 69, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 159, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 546, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 159, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 670, + 33, 146, 0, 0, 0, 0, 0, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 151, 0, 0, 212, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 150, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 33, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 212, 147, - 148, 149, 0, 916, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 917, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 210, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 152, 153, 154, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 0, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 151, 0, 0, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 210, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, + 159, 0, 0, 159, 712, 0, 0, 159, 159, 159, + 159, 159, 0, 159, 159, 159, 159, 0, 159, 159, + 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, + 159, 0, 0, 225, 0, 0, 0, 0, 159, 317, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 159, 159, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 159, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 546, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 159, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 670, 33, 146, 0, 0, - 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 0, 0, 127, 0, 33, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 547, - 0, 0, 0, 155, 0, 0, 0, 0, 159, 159, - 0, 159, 0, 0, 0, 0, 159, 0, 0, 159, - 712, 0, 0, 159, 159, 159, 159, 159, 0, 159, - 159, 159, 159, 0, 159, 159, 0, 0, 159, 159, - 159, 159, 0, 0, 159, 159, 159, 0, 0, 317, - 0, 0, 0, 0, 159, 317, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 159, 159, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 33, 0, 159, 0, 33, 33, - 33, 33, 33, 317, 33, 33, 33, 33, 316, 33, - 33, 0, 0, 33, 33, 33, 33, 0, 37, 0, - 33, 33, 0, 40, 0, 43, 0, 316, 316, 33, - 0, 33, 46, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 33, 33, 49, - 0, 0, 0, 159, 159, 159, 0, 0, 0, 0, - 0, 0, 0, 33, 52, 0, 0, 33, 33, 33, - 33, 33, 0, 33, 33, 33, 33, 0, 33, 33, - 0, 33, 33, 33, 33, 33, 0, 37, 0, 33, - 33, 316, 40, 316, 43, 0, 155, 0, 33, 0, - 33, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 33, 49, 317, - 0, 0, 0, 0, 317, 317, 317, 317, 0, 317, - 317, 317, 317, 52, 317, 317, 0, 0, 317, 317, - 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, - 33, 0, 0, 0, 317, 0, 317, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 0, 564, 0, 0, - 0, 317, 317, 317, 0, 0, 0, 0, 0, 236, - 0, 0, 159, 317, 0, 0, 0, 0, 317, 317, - 317, 317, 0, 317, 317, 317, 317, 0, 317, 317, - 0, 0, 317, 317, 317, 317, 317, 0, 0, 317, - 317, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 317, 0, 0, 0, 0, 0, 0, 0, 316, 0, - 0, 316, 0, 0, 0, 317, 317, 317, 0, 0, - 0, 316, 0, 236, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 33, 0, + 159, 0, 33, 33, 33, 33, 33, 317, 33, 33, + 33, 33, 316, 33, 33, 0, 0, 33, 33, 33, + 33, 0, 37, 0, 33, 33, 0, 40, 0, 43, + 0, 316, 316, 33, 0, 33, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 33, 49, 0, 0, 0, 159, 159, 159, + 0, 0, 0, 0, 0, 0, 0, 33, 52, 0, + 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, + 33, 0, 33, 33, 0, 33, 33, 33, 33, 33, + 0, 37, 0, 33, 33, 316, 40, 316, 43, 0, + 155, 0, 33, 0, 33, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 33, 33, 49, 225, 0, 0, 0, 225, 225, 225, + 225, 225, 0, 225, 225, 225, 225, 52, 225, 225, + 0, 0, 225, 225, 225, 225, 0, 0, 0, 225, + 225, 0, 0, 0, 33, 0, 0, 0, 225, 0, + 225, 0, 0, 0, 0, 236, 0, 0, 0, 0, + 0, 566, 0, 0, 0, 225, 225, 225, 0, 0, + 0, 0, 0, 236, 0, 0, 159, 317, 0, 0, + 0, 0, 317, 317, 317, 317, 0, 317, 317, 317, + 317, 0, 317, 317, 0, 0, 317, 317, 317, 317, + 225, 0, 0, 317, 317, 0, 0, 0, 0, 0, + 0, 0, 317, 0, 317, 0, 0, 0, 0, 0, + 0, 0, 316, 0, 0, 316, 0, 0, 0, 317, + 317, 317, 0, 0, 0, 316, 0, 236, 0, 236, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, - 236, 0, 316, 236, 0, 0, 316, 316, 316, 316, - 316, 316, 317, 236, 564, 235, 0, 235, 0, 0, - 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, - 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 0, 0, 236, 0, 316, 236, 0, 0, + 316, 316, 316, 316, 316, 316, 225, 236, 566, 235, + 0, 235, 0, 0, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 0, 0, 316, 316, 316, 316, 316, 316, - 316, 236, 0, 525, 0, 0, 236, 236, 236, 236, + 0, 0, 0, 0, 0, 566, 0, 0, 316, 316, + 316, 316, 316, 316, 316, 236, 0, 527, 0, 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 0, 0, 235, 0, 236, 235, 0, 0, 236, 236, - 236, 236, 236, 236, 0, 235, 0, 0, 0, 0, - 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 236, 236, 236, 0, 0, 0, 0, 525, 0, 525, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 236, 236, 236, - 236, 236, 236, 235, 0, 34, 0, 0, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 0, 0, 0, 0, 235, 0, 0, 0, - 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 525, 0, 0, 525, 0, 0, - 0, 235, 235, 235, 235, 0, 0, 525, 564, 325, - 0, 326, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 236, 236, 236, 236, 0, 0, 235, 0, 236, 235, + 0, 0, 236, 236, 236, 236, 236, 236, 0, 235, + 0, 0, 0, 0, 0, 0, 236, 236, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 236, 236, 236, 0, 0, 0, + 0, 527, 0, 527, 236, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 236, 236, 236, 236, 236, 235, 0, 34, + 0, 0, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, + 235, 0, 0, 0, 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, - 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 525, 525, 525, 0, 0, 67, 0, 525, 69, - 0, 0, 525, 525, 525, 525, 525, 525, 0, 2, - 0, 0, 0, 0, 0, 0, 525, 525, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 525, 525, 525, 525, 0, 0, 0, - 0, 0, 0, 0, 525, 0, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 525, 525, 67, 0, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 325, 0, 931, 0, 0, 0, 0, 0, 0, 0, - 525, 525, 525, 525, 525, 525, 525, 0, 0, 530, - 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, - 7, 0, 0, 0, 315, 316, 317, 318, 319, 320, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 0, 0, 530, 0, 530, 321, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, - 0, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 323, 324, 67, 0, 7, - 69, 0, 0, 315, 316, 317, 318, 319, 320, 0, - 2, 0, 0, 0, 0, 0, 0, 8, 9, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 0, 10, 11, 12, 13, 0, 0, - 371, 0, 371, 0, 0, 321, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 530, 0, 0, 530, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 530, 323, 324, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 28, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, - 0, 7, 0, 0, 0, 315, 316, 317, 318, 319, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 9, 363, 0, 0, 0, 0, 0, 371, 0, 0, - 371, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 371, 0, 0, 0, 0, 0, 0, 321, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 322, 0, 0, 0, 0, 530, 530, 530, 530, - 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, - 0, 0, 0, 0, 530, 363, 0, 363, 530, 530, - 530, 530, 530, 530, 0, 0, 323, 324, 0, 0, - 0, 0, 530, 530, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 530, - 530, 530, 530, 27, 28, 29, 30, 31, 32, 33, - 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 0, 0, 530, - 530, 371, 356, 0, 356, 371, 371, 371, 371, 371, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 371, - 371, 210, 0, 0, 0, 0, 530, 530, 530, 530, - 530, 530, 530, 0, 0, 0, 371, 371, 371, 371, - 0, 0, 363, 0, 0, 363, 0, 371, 0, 0, - 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, + 0, 527, 0, 0, 0, 235, 235, 235, 235, 0, + 0, 527, 566, 325, 0, 326, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 524, 0, 0, 0, 0, 363, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 0, 0, 0, 0, 363, 0, 0, 0, + 0, 0, 325, 0, 748, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, + 67, 0, 527, 69, 0, 0, 527, 527, 527, 527, + 527, 527, 0, 2, 0, 0, 0, 0, 0, 0, + 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, + 527, 0, 0, 0, 0, 0, 0, 0, 527, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 527, 67, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 325, 0, 932, 0, 0, 0, + 0, 0, 0, 0, 527, 527, 527, 527, 527, 527, + 527, 0, 0, 532, 0, 0, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 0, 0, 0, 0, 7, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 0, 532, 0, 532, + 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 0, 0, 0, 0, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 323, + 324, 67, 0, 7, 69, 0, 0, 315, 316, 317, + 318, 319, 320, 0, 2, 0, 0, 0, 0, 0, + 0, 8, 9, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 0, 371, 0, 371, 0, 0, 321, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 532, 0, 0, 532, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 532, 323, 324, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 0, 0, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 0, 7, 0, 0, 0, 315, + 316, 317, 318, 319, 320, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 9, 363, 0, 0, 0, 0, + 0, 371, 0, 0, 371, 0, 0, 0, 0, 0, + 10, 11, 12, 13, 371, 0, 0, 0, 0, 0, + 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 0, 0, 0, 0, 532, 363, + 0, 363, 532, 532, 532, 532, 532, 532, 0, 0, + 323, 324, 0, 0, 0, 0, 532, 532, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 532, 532, 532, 532, 27, 28, 29, + 30, 31, 32, 33, 532, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 0, 0, 532, 532, 371, 356, 0, 356, 371, + 371, 371, 371, 371, 371, 0, 0, 0, 0, 0, + 0, 0, 0, 371, 371, 210, 0, 0, 0, 0, + 532, 532, 532, 532, 532, 532, 532, 0, 0, 0, + 371, 371, 371, 371, 0, 0, 363, 0, 0, 363, + 0, 371, 0, 0, 0, 0, 0, 0, 0, 363, + 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, + 371, 371, 371, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 356, 0, 0, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 526, 0, 0, + 0, 0, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, - 0, 0, 210, 0, 34, 210, 0, 0, 0, 0, - 0, 363, 363, 363, 363, 210, 0, 524, 0, 524, - 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 0, - 538, 363, 363, 356, 0, 0, 0, 356, 356, 356, - 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 356, 0, 0, 0, 0, 0, 363, 363, - 363, 363, 363, 363, 363, 0, 0, 0, 356, 356, - 356, 356, 0, 0, 0, 34, 0, 0, 0, 356, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 356, 0, 0, 0, 0, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 0, 0, 524, 0, 210, 524, 0, 0, - 210, 210, 210, 210, 210, 210, 0, 524, 356, 356, - 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 210, 356, 356, 356, 356, 356, - 356, 356, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 210, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, - 210, 210, 210, 210, 210, 0, 0, 0, 0, 0, - 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, - 524, 524, 524, 524, 0, 0, 0, 0, 524, 0, - 0, 0, 524, 524, 524, 524, 524, 524, 0, 0, - 0, 0, 0, 0, 0, 0, 524, 524, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 524, 524, 524, 524, 0, 0, 0, - 0, 0, 0, 0, 524, 3, 4, 5, 6, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 11, 12, 13, 187, 0, - 0, 14, 15, 524, 524, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 524, 524, 524, 524, 524, 524, 524, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, - 7, 0, 20, 21, 0, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 8, 9, - 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 0, 14, 15, 0, 0, 0, 0, 16, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 0, 0, 0, 187, 0, 187, 187, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, - 187, 0, 0, 20, 21, 0, 22, 23, 24, 0, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 187, 0, 0, 814, 0, - 0, 0, 0, 815, 816, 0, 817, 818, 819, 820, - 821, 822, 0, 823, 824, 813, 825, 826, 827, 828, - 829, 187, 187, 187, 187, 187, 187, 187, 0, 814, - 0, 0, 0, 0, 815, 816, 0, 817, 818, 819, - 820, 821, 822, 0, 823, 824, 0, 825, 826, 827, - 828, 829, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 830, 0, 831, 0, 0, 0, 0, 832, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 833, 0, 0, 0, 0, - 0, 0, 0, 830, 0, 831, 0, 0, 0, 0, - 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 833, 0, 834, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 834, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 835, - 0, 836, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 0, 0, - 0, 853, 0, 0, 0, 0, 0, 0, 0, 0, - 835, 0, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 0, - 0, 0, 853, + 363, 0, 0, 0, 363, 363, 363, 363, 363, 363, + 0, 0, 0, 0, 0, 0, 0, 0, 363, 363, + 0, 0, 0, 0, 0, 0, 210, 0, 34, 210, + 0, 0, 0, 0, 0, 363, 363, 363, 363, 210, + 0, 526, 0, 526, 0, 0, 363, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 0, 538, 363, 363, 356, 0, 0, + 0, 356, 356, 356, 356, 356, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 356, 356, 0, 0, 0, + 0, 0, 363, 363, 363, 363, 363, 363, 363, 0, + 0, 0, 356, 356, 356, 356, 0, 0, 0, 34, + 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, + 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 0, 0, 526, 0, + 210, 526, 0, 0, 210, 210, 210, 210, 210, 210, + 0, 526, 356, 356, 0, 0, 0, 0, 210, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 210, 210, 210, 210, 356, + 356, 356, 356, 356, 356, 356, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1160, 210, 210, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 210, 210, 210, 210, 210, 0, + 0, 0, 0, 0, 526, 526, 526, 526, 526, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 0, 0, + 0, 0, 526, 0, 0, 0, 526, 526, 526, 526, + 526, 526, 0, 0, 0, 0, 0, 187, 0, 0, + 526, 526, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 526, 526, 526, + 526, 0, 0, 0, 0, 0, 0, 0, 526, 3, + 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 2, 0, 0, 14, 15, 526, 526, 0, + 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 526, 526, 526, 526, 526, 526, + 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 5, 6, 7, 187, 20, 21, 0, 22, + 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, + 0, 0, 16, 0, 187, 17, 0, 0, 0, 0, + 0, 0, 18, 19, 0, 0, 0, 0, 855, 516, + 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 518, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 519, 520, 0, 0, 20, 21, 0, + 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 187, 0, 0, 187, 187, 0, 0, 522, 523, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 187, 187, 187, 0, 187, 187, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 814, 0, 0, 0, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 815, 0, 0, 0, + 0, 816, 817, 0, 818, 819, 820, 821, 822, 823, + 814, 824, 825, 0, 826, 827, 828, 829, 830, 0, + 0, 187, 187, 0, 815, 0, 0, 0, 0, 816, + 817, 0, 818, 819, 820, 821, 822, 823, 0, 824, + 825, 0, 826, 827, 828, 829, 830, 0, 187, 187, + 187, 187, 187, 187, 187, 0, 0, 0, 0, 0, + 831, 0, 832, 0, 0, 0, 0, 833, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 834, 0, 0, 0, 0, 831, 0, + 832, 0, 0, 0, 0, 833, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 834, 0, 0, 0, 0, 835, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 835, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 836, 0, 837, + 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 0, 0, 0, 854, + 0, 0, 0, 0, 0, 836, 0, 837, 838, 839, + 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, + 850, 851, 852, 853, 0, 0, 0, 854, }; static int yycheck[] = { 4, - 24, 24, 102, 103, 155, 1, 22, 23, 167, 418, - 1, 420, 1, 24, 19, 13, 93, 299, 64, 299, - 1, 299, 27, 28, 29, 30, 24, 1, 36, 37, - 940, 682, 1, 668, 38, 38, 795, 963, 41, 91, - 44, 44, 181, 43, 1135, 45, 741, 40, 61, 472, - 1107, 46, 60, 43, 46, 42, 193, 194, 195, 196, - 197, 46, 125, 24, 41, 41, 46, 167, 46, 123, - 41, 91, 44, 59, 38, 365, 727, 319, 42, 42, - 38, 43, 105, 354, 42, 264, 58, 123, 91, 46, - 190, 41, 169, 125, 61, 1209, 60, 40, 491, 492, - 493, 1097, 60, 471, 40, 128, 104, 1485, 113, 41, - 115, 116, 117, 43, 40, 215, 41, 44, 41, 20, - 21, 145, 40, 40, 148, 263, 42, 91, 151, 47, - 40, 93, 91, 91, 262, 62, 42, 41, 380, 125, - 40, 40, 60, 104, 168, 263, 40, 59, 41, 42, - 40, 156, 157, 199, 59, 91, 233, 33, 156, 1472, - 288, 299, 46, 93, 65, 91, 41, 40, 46, 167, - 41, 72, 41, 44, 91, 334, 46, 92, 873, 874, - 123, 91, 187, 40, 76, 208, 40, 40, 91, 1502, - 60, 91, 91, 40, 43, 203, 45, 91, 91, 44, - 205, 206, 42, 41, 529, 210, 91, 41, 264, 93, - 111, 112, 210, 125, 342, 93, 91, 356, 91, 914, - 125, 41, 1474, 260, 261, 123, 263, 232, 1342, 1475, - 46, 1609, 61, 123, 239, 267, 260, 91, 41, 339, - 260, 261, 40, 263, 91, 61, 264, 265, 93, 262, - 41, 91, 1504, 543, 949, 526, 157, 311, 33, 1505, - 283, 338, 267, 268, 1260, 270, 123, 290, 292, 274, - 40, 664, 277, 188, 41, 288, 281, 264, 929, 41, - 316, 286, 287, 288, 289, 471, 263, 273, 264, 181, - 262, 61, 338, 91, 294, 262, 359, 260, 261, 692, - 263, 364, 264, 299, 300, 262, 306, 307, 299, 300, - 299, 300, 335, 365, 264, 331, 332, 232, 299, 300, - 221, 222, 299, 264, 324, 299, 300, 506, 507, 508, - 299, 300, 264, 296, 342, 264, 334, 335, 318, 264, - 318, 264, 340, 41, 260, 261, 275, 263, 264, 320, - 321, 123, 267, 339, 260, 261, 274, 263, 1009, 275, - 264, 357, 358, 359, 360, 59, 357, 268, 357, 358, - 359, 360, 262, 274, 374, 260, 261, 123, 263, 340, - 296, 282, 775, 268, 260, 260, 261, 263, 263, 260, - 296, 1482, 263, 268, 262, 264, 360, 361, 362, 391, - 416, 391, 360, 361, 362, 262, 391, 260, 261, 324, - 263, 296, 33, 1339, 315, 471, 317, 315, 316, 44, - 321, 296, 337, 267, 299, 1516, 264, 422, 329, 330, - 264, 306, 333, 391, 471, 91, 459, 329, 577, 40, - 59, 333, 123, 1500, 264, 294, 546, 359, 453, 588, - 455, 1210, 364, 876, 359, 356, 123, 306, 307, 364, - 453, 264, 265, 1098, 356, 470, 452, 860, 93, 467, - 385, 123, 470, 264, 265, 324, 40, 482, 464, 46, - 466, 467, 487, 469, 470, 260, 261, 44, 263, 264, - 46, 543, 38, 40, 59, 483, 42, 264, 265, 266, - 46, 47, 264, 265, 33, 59, 125, 512, 409, 410, - 473, 412, 38, 414, 60, 503, 42, 481, 595, 286, - 287, 123, 526, 526, 40, 374, 93, 91, 429, 430, - 415, 416, 417, 425, 60, 123, 93, 93, 543, 544, - 415, 416, 417, 46, 544, 91, 461, 40, 571, 123, - 536, 537, 538, 539, 540, 541, 542, 473, 91, 564, - 125, 638, 570, 640, 1490, 91, 264, 473, 266, 470, - 38, 1266, 1267, 44, 42, 91, 715, 260, 261, 315, - 263, 43, 497, 498, 260, 261, 487, 263, 286, 287, - 320, 321, 60, 44, 602, 603, 40, 512, 91, 61, - 608, 44, 610, 649, 260, 261, 706, 263, 523, 614, - 1520, 62, 712, 91, 40, 620, 639, 40, 519, 520, - 46, 40, 93, 91, 536, 537, 538, 539, 540, 541, - 542, 536, 537, 538, 539, 540, 541, 542, 40, 260, - 261, 542, 263, 264, 545, 42, 670, 91, 930, 564, - 930, 40, 930, 61, 273, 47, 679, 734, 40, 260, - 261, 306, 263, 800, 579, 802, 803, 804, 805, 806, - 40, 38, 573, 40, 566, 42, 47, 682, 686, 702, - 391, 573, 687, 1334, 689, 577, 260, 588, 260, 263, - 264, 263, 264, 60, 91, 684, 588, 41, 260, 261, - 705, 263, 91, 726, 709, 710, 711, 38, 273, 91, - 91, 42, 613, 729, 1123, 40, 1125, 264, 265, 266, - 743, 91, 727, 40, 91, 626, 391, 260, 261, 60, - 263, 123, 1427, 391, 260, 261, 637, 263, 391, 286, - 287, 270, 271, 272, 267, 1440, 275, 276, 277, 278, - 279, 40, 281, 282, 283, 284, 41, 286, 287, 660, - 91, 290, 291, 292, 293, 41, 91, 296, 297, 298, - 40, 279, 280, 778, 91, 780, 41, 306, 1429, 308, - 463, 289, 260, 261, 861, 263, 791, 463, 316, 704, - 705, 41, 42, 870, 323, 324, 325, 698, 699, 42, - 40, 40, 91, 40, 40, 359, 425, 426, 427, 428, - 364, 40, 374, 375, 360, 361, 362, 41, 719, 43, - 721, 91, 723, 715, 41, 42, 93, 728, 1523, 358, - 449, 450, 451, 452, 360, 361, 362, 861, 38, 61, - 732, 91, 536, 537, 538, 539, 540, 541, 542, 750, - 91, 91, 91, 40, 91, 1467, 41, 42, 750, 760, - 761, 1473, 43, 428, 91, 430, 431, 759, 260, 261, - 1565, 263, 263, 774, 91, 91, 393, 394, 793, 260, - 261, 44, 263, 46, 449, 450, 451, 452, 393, 394, - 898, 1503, 360, 361, 362, 33, 797, 260, 261, 922, - 263, 1596, 43, 44, 915, 928, 91, 896, 809, 266, - 811, 988, 59, 41, 919, 1566, 1611, 536, 537, 538, - 539, 540, 541, 542, 929, 260, 261, 93, 263, 286, - 287, 476, 283, 284, 930, 280, 932, 933, 934, 930, - 945, 930, 41, 932, 933, 934, 38, 43, 44, 930, - 42, 866, 41, 1030, 43, 44, 930, 1608, 932, 933, - 861, 930, 260, 932, 933, 263, 858, 318, 60, 59, - 871, 536, 537, 538, 539, 540, 541, 542, 125, 984, - 41, 42, 536, 537, 538, 539, 540, 541, 542, 585, - 586, 587, 1143, 360, 361, 362, 44, 40, 46, 91, - 1159, 1160, 1161, 1162, 1009, 41, 1083, 93, 44, 901, - 1169, 1170, 1171, 93, 301, 544, 303, 304, 305, 260, - 261, 40, 263, 924, 939, 926, 941, 268, 59, 360, - 361, 362, 125, 260, 261, 125, 263, 59, 91, 374, - 375, 268, 58, 295, 260, 261, 33, 263, 300, 950, - 302, 952, 268, 260, 261, 296, 263, 309, 950, 41, - 952, 59, 44, 260, 261, 980, 263, 982, 41, 296, - 43, 40, 299, 974, 326, 327, 977, 40, 278, 306, - 296, 281, 282, 283, 284, 40, 286, 287, 288, 341, - 306, 264, 265, 266, 125, 260, 261, 44, 263, 46, - 40, 1510, 1511, 125, 950, 1121, 952, 458, 459, 1125, - 461, 264, 40, 286, 287, 1139, 125, 1133, 260, 261, - 372, 263, 264, 0, 848, 849, 273, 125, 281, 282, - 283, 44, 270, 271, 272, 41, 40, 275, 276, 277, - 278, 279, 40, 281, 282, 283, 284, 1152, 286, 287, - 262, 1149, 290, 291, 292, 293, 264, 1234, 266, 297, - 298, 1159, 1160, 1161, 1162, 330, 331, 41, 306, 43, - 308, 1169, 1170, 1171, 415, 416, 417, 1078, 286, 287, - 123, 262, 59, 273, 44, 323, 324, 325, 415, 416, - 417, 59, 41, 41, 60, 294, 274, 274, 1203, 415, - 416, 417, 301, 464, 303, 304, 305, 1108, 1109, 1110, - 281, 282, 283, 284, 1115, 1116, 1117, 1118, 1119, 1120, - 358, 1122, 1123, 1124, 1324, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 322, 1134, 275, 1136, 62, 1138, 44, 1140, - 1155, 1156, 273, 342, 343, 344, 365, 123, 125, 58, - 123, 273, 280, 281, 282, 283, 284, 125, 123, 123, - 260, 261, 1278, 263, 281, 282, 283, 284, 360, 361, - 362, 295, 1261, 274, 296, 273, 300, 40, 302, 40, - 1357, 40, 317, 41, 40, 309, 59, 1179, 1312, 388, - 389, 390, 317, 392, 468, 1196, 395, 40, 296, 61, - 1201, 1193, 326, 1195, 61, 452, 61, 40, 339, 471, - 1315, 1212, 330, 331, 332, 462, 471, 341, 465, 44, - 410, 1222, 412, 413, 414, 1226, 1227, 41, 328, 1334, - 330, 331, 41, 93, 424, 41, 1237, 337, 41, 429, - 41, 41, 432, 433, 281, 282, 283, 284, 366, 367, - 368, 310, 125, 312, 313, 314, 41, 1258, 1259, 449, - 450, 451, 452, 58, 454, 455, 280, 281, 282, 283, - 284, 1272, 1273, 1274, 1275, 1276, 1277, 44, 1279, 41, - 44, 38, 61, 44, 474, 1374, 125, 61, 410, 536, - 537, 538, 539, 540, 541, 542, 273, 40, 38, 40, - 263, 432, 433, 125, 41, 273, 544, 1430, 41, 40, - 93, 93, 410, 274, 41, 274, 1493, 41, 1333, 509, - 510, 452, 44, 44, 1429, 41, 44, 40, 58, 1344, - 452, 40, 40, 464, 41, 466, 467, 0, 469, 470, - 462, 41, 40, 465, 41, 41, 536, 537, 538, 539, - 540, 541, 542, 41, 452, 1356, 40, 294, 62, 41, - 41, 40, 1363, 91, 462, 498, 123, 465, 502, 490, - 33, 40, 277, 41, 61, 38, 125, 40, 41, 42, - 41, 44, 62, 123, 47, 123, 452, 93, 391, 41, - 93, 41, 1569, 41, 1518, 1511, 59, 60, 61, 62, - 273, 317, 1602, 317, 41, 536, 537, 538, 539, 540, - 541, 542, 40, 1428, 536, 537, 538, 539, 540, 541, - 542, 40, 58, 296, 58, 40, 269, 93, 91, 272, - 93, 93, 44, 410, 411, 412, 413, 414, 536, 537, - 538, 539, 540, 541, 542, 505, 93, 93, 1449, 1450, - 1451, 91, 295, 296, 40, 432, 433, 300, 91, 302, - 123, 1566, 125, 40, 123, 41, 309, 93, 41, 40, - 40, 1486, 449, 450, 451, 452, 41, 422, 41, 456, - 457, 511, 1605, 326, 452, 462, 93, 464, 465, 93, - 44, 41, 58, 274, 462, 472, 473, 465, 341, 41, - 1501, 91, 41, 1608, 44, 1506, 1507, 1508, 60, 1510, - 61, 1512, 1513, 1514, 93, 40, 40, 40, 40, 40, - 260, 278, 40, 263, 281, 282, 283, 284, 40, 286, - 287, 288, 40, 1534, 1535, 1536, 40, 410, 278, 40, - 40, 281, 282, 283, 284, 40, 286, 287, 288, 62, - 527, 528, 41, 530, 531, 532, 125, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 93, 41, 536, 537, - 538, 539, 540, 541, 542, 41, 93, 93, 41, 452, - 41, 41, 93, 93, 93, 41, 41, 93, 41, 462, - 41, 1606, 465, 41, 93, 41, 1597, 260, 261, 262, - 263, 330, 331, 332, 41, 268, 93, 93, 271, 41, - 273, 274, 275, 276, 277, 278, 279, 93, 281, 282, - 283, 284, 93, 286, 287, 288, 41, 290, 291, 292, - 293, 41, 41, 296, 297, 298, 299, 366, 367, 368, - 38, 93, 41, 306, 93, 308, 41, 263, 311, 41, - 93, 44, 315, 316, 274, 318, 41, 41, 41, 322, - 323, 324, 325, 536, 537, 538, 539, 540, 541, 542, - 260, 261, 262, 263, 264, 41, 339, 40, 268, 93, - 93, 93, 40, 40, 40, 40, 58, 41, 58, 58, - 41, 41, 41, 283, 40, 358, 359, 360, 361, 362, - 40, 364, 365, 41, 93, 41, 296, 93, 41, 41, - 40, 374, 375, 93, 93, 40, 40, 40, 40, 40, - 40, 40, 33, 40, 40, 123, 40, 40, 391, 41, - 320, 321, 40, 396, 397, 398, 399, 400, 401, 402, + 24, 24, 102, 103, 155, 1, 22, 23, 93, 418, + 1, 420, 24, 299, 19, 1, 299, 181, 13, 299, + 1, 941, 27, 28, 29, 30, 1, 965, 64, 24, + 38, 38, 1, 41, 668, 167, 44, 44, 796, 472, + 40, 1109, 46, 46, 59, 43, 742, 682, 91, 193, + 194, 195, 196, 197, 1137, 264, 491, 492, 493, 46, + 123, 46, 46, 24, 36, 37, 123, 167, 41, 46, + 41, 1487, 38, 91, 365, 42, 42, 41, 61, 61, + 33, 1099, 105, 91, 169, 40, 44, 43, 60, 45, + 190, 43, 727, 1211, 60, 125, 262, 319, 123, 46, + 471, 40, 354, 125, 40, 128, 40, 46, 113, 104, + 115, 116, 117, 59, 61, 215, 263, 44, 483, 20, + 21, 145, 288, 41, 148, 91, 40, 46, 151, 40, + 40, 58, 1474, 47, 41, 93, 264, 42, 503, 263, + 40, 93, 41, 104, 168, 38, 60, 42, 233, 42, + 40, 156, 157, 46, 47, 91, 42, 91, 380, 41, + 42, 156, 1504, 199, 65, 38, 40, 60, 123, 42, + 91, 72, 167, 1476, 93, 299, 342, 92, 874, 875, + 91, 91, 187, 41, 76, 208, 41, 60, 41, 44, + 40, 91, 356, 61, 41, 1611, 41, 91, 91, 40, + 205, 206, 334, 1506, 41, 210, 529, 41, 41, 91, + 111, 112, 471, 38, 43, 210, 1477, 42, 91, 915, + 61, 43, 260, 261, 41, 263, 1344, 232, 41, 664, + 46, 203, 61, 123, 239, 60, 260, 267, 264, 339, + 41, 91, 260, 261, 1262, 263, 1507, 123, 311, 123, + 268, 260, 543, 338, 263, 951, 157, 692, 41, 316, + 283, 59, 267, 268, 123, 270, 91, 290, 292, 274, + 59, 93, 277, 188, 526, 264, 281, 93, 296, 262, + 262, 286, 287, 288, 289, 262, 275, 59, 306, 181, + 315, 316, 263, 260, 261, 930, 263, 506, 507, 508, + 264, 38, 338, 299, 300, 42, 288, 260, 299, 300, + 263, 264, 335, 299, 300, 331, 332, 232, 299, 300, + 221, 222, 365, 60, 299, 300, 59, 125, 299, 296, + 299, 300, 40, 318, 318, 262, 125, 359, 294, 334, + 335, 776, 364, 471, 359, 340, 264, 320, 321, 364, + 306, 307, 267, 125, 91, 260, 261, 264, 263, 262, + 274, 357, 358, 359, 360, 264, 265, 268, 324, 264, + 342, 357, 262, 274, 260, 261, 1011, 263, 264, 340, + 40, 282, 357, 358, 359, 360, 267, 391, 262, 275, + 315, 296, 125, 391, 360, 361, 362, 415, 416, 417, + 416, 1484, 123, 1341, 391, 260, 264, 265, 263, 324, + 296, 264, 265, 577, 315, 46, 317, 264, 374, 422, + 321, 123, 337, 40, 588, 40, 861, 264, 329, 330, + 264, 264, 333, 471, 1502, 1518, 459, 329, 46, 38, + 123, 333, 264, 42, 877, 41, 546, 264, 453, 294, + 455, 264, 60, 453, 1212, 356, 301, 91, 303, 304, + 305, 60, 93, 264, 356, 470, 1100, 360, 361, 362, + 385, 44, 467, 46, 91, 470, 91, 482, 123, 40, + 40, 264, 487, 266, 41, 42, 123, 360, 361, 362, + 260, 261, 91, 263, 43, 46, 45, 342, 343, 344, + 543, 273, 41, 286, 287, 44, 473, 512, 409, 410, + 595, 412, 40, 414, 40, 481, 264, 265, 526, 526, + 40, 536, 537, 538, 539, 540, 541, 542, 429, 430, + 91, 91, 123, 425, 91, 360, 361, 362, 543, 544, + 273, 46, 93, 388, 389, 390, 461, 392, 571, 41, + 395, 715, 44, 638, 1492, 640, 264, 265, 266, 564, + 40, 359, 44, 91, 33, 42, 364, 339, 473, 470, + 359, 91, 1268, 1269, 41, 364, 43, 260, 286, 287, + 263, 264, 497, 498, 40, 33, 487, 473, 544, 40, + 536, 537, 538, 539, 540, 541, 542, 512, 570, 40, + 260, 261, 1522, 263, 40, 40, 706, 40, 523, 614, + 59, 91, 712, 649, 91, 620, 639, 41, 519, 520, + 40, 44, 40, 360, 361, 362, 260, 261, 306, 263, + 602, 603, 260, 261, 44, 263, 608, 40, 610, 62, + 91, 542, 61, 38, 545, 931, 670, 47, 931, 564, + 735, 931, 41, 42, 391, 91, 679, 801, 91, 803, + 804, 805, 806, 807, 579, 566, 40, 91, 264, 265, + 266, 91, 573, 91, 566, 391, 125, 682, 391, 702, + 452, 573, 687, 93, 689, 577, 91, 588, 91, 41, + 286, 287, 464, 463, 466, 467, 588, 469, 470, 391, + 705, 1336, 91, 726, 709, 710, 711, 47, 91, 684, + 41, 391, 613, 729, 686, 59, 1125, 91, 1127, 452, + 40, 744, 727, 41, 42, 626, 91, 40, 123, 462, + 320, 321, 465, 1429, 260, 261, 637, 263, 536, 537, + 538, 539, 540, 541, 542, 294, 1442, 536, 537, 538, + 539, 540, 541, 542, 585, 586, 587, 306, 307, 660, + 40, 360, 361, 362, 536, 537, 538, 539, 540, 541, + 542, 91, 44, 91, 779, 324, 781, 862, 91, 283, + 284, 125, 41, 123, 267, 42, 871, 792, 41, 704, + 705, 260, 261, 44, 263, 264, 1431, 698, 699, 260, + 261, 44, 263, 536, 537, 538, 539, 540, 541, 542, + 91, 91, 260, 261, 318, 263, 264, 41, 719, 62, + 721, 93, 723, 715, 273, 374, 1469, 728, 316, 1525, + 40, 732, 1475, 40, 91, 463, 260, 261, 862, 263, + 732, 38, 93, 40, 268, 42, 42, 264, 38, 44, + 751, 46, 42, 393, 394, 260, 261, 40, 263, 751, + 761, 762, 1505, 60, 281, 282, 283, 41, 760, 43, + 60, 1567, 296, 41, 775, 299, 40, 260, 261, 794, + 263, 91, 306, 278, 91, 61, 281, 282, 283, 284, + 339, 286, 287, 288, 91, 260, 261, 798, 263, 93, + 923, 91, 1598, 40, 916, 990, 929, 260, 261, 810, + 263, 812, 43, 374, 375, 920, 41, 1613, 43, 44, + 260, 261, 897, 263, 263, 930, 264, 899, 266, 273, + 41, 260, 261, 1568, 263, 931, 93, 933, 934, 935, + 931, 946, 933, 934, 44, 931, 46, 1032, 286, 287, + 931, 41, 867, 43, 458, 459, 931, 461, 933, 934, + 935, 862, 931, 294, 933, 934, 476, 859, 91, 280, + 301, 872, 303, 304, 305, 1610, 266, 330, 331, 260, + 261, 986, 263, 432, 433, 91, 260, 261, 93, 263, + 93, 415, 416, 417, 1145, 40, 286, 287, 260, 261, + 1085, 263, 264, 452, 279, 280, 1011, 952, 33, 954, + 902, 342, 343, 344, 289, 464, 41, 466, 467, 260, + 469, 470, 263, 264, 925, 940, 927, 942, 40, 1161, + 1162, 1163, 1164, 125, 301, 294, 303, 304, 305, 1171, + 1172, 1173, 301, 91, 303, 304, 305, 260, 261, 295, + 263, 952, 58, 954, 300, 33, 302, 388, 389, 390, + 952, 392, 954, 309, 395, 40, 91, 982, 40, 984, + 260, 261, 40, 263, 40, 976, 260, 261, 979, 263, + 326, 41, 40, 342, 343, 344, 125, 536, 537, 538, + 539, 540, 541, 542, 310, 341, 312, 313, 314, 44, + 374, 375, 41, 1512, 1513, 393, 394, 1123, 452, 43, + 44, 1127, 260, 261, 40, 263, 40, 1141, 462, 1135, + 262, 465, 330, 331, 332, 0, 43, 44, 123, 388, + 389, 390, 262, 392, 44, 40, 395, 260, 261, 41, + 263, 281, 282, 283, 284, 268, 41, 91, 60, 1154, + 274, 1236, 41, 42, 260, 261, 1151, 263, 366, 367, + 368, 464, 268, 360, 361, 362, 1161, 1162, 1163, 1164, + 360, 361, 362, 296, 849, 850, 1171, 1172, 1173, 1080, + 328, 274, 330, 331, 59, 264, 265, 266, 275, 337, + 296, 62, 536, 537, 538, 539, 540, 541, 542, 44, + 1205, 123, 33, 59, 365, 123, 58, 286, 287, 1110, + 1111, 1112, 281, 282, 283, 284, 1117, 1118, 1119, 1120, + 1121, 1122, 123, 1124, 1125, 1126, 1326, 1128, 1129, 1130, + 1131, 1132, 1133, 1134, 274, 1136, 123, 1138, 40, 1140, + 40, 1142, 1157, 1158, 40, 40, 271, 41, 468, 317, + 125, 276, 277, 278, 279, 317, 281, 282, 283, 284, + 91, 286, 287, 61, 1280, 290, 291, 292, 293, 125, + 61, 61, 297, 298, 1359, 280, 281, 282, 283, 284, + 38, 306, 471, 308, 281, 282, 283, 284, 1263, 1181, + 1314, 40, 415, 416, 417, 41, 471, 1198, 323, 324, + 325, 44, 1203, 1195, 59, 1197, 93, 41, 41, 415, + 416, 417, 1317, 1214, 41, 295, 260, 261, 41, 263, + 300, 41, 302, 1224, 268, 41, 58, 1228, 1229, 309, + 44, 1336, 41, 358, 294, 61, 44, 44, 1239, 125, + 263, 301, 61, 303, 304, 305, 326, 327, 40, 330, + 331, 332, 296, 40, 125, 299, 41, 41, 40, 1260, + 1261, 341, 306, 274, 269, 123, 274, 272, 93, 93, + 125, 41, 44, 1274, 1275, 1276, 1277, 1278, 1279, 41, + 1281, 44, 342, 343, 344, 366, 367, 368, 41, 44, + 295, 296, 372, 40, 58, 300, 40, 302, 273, 38, + 41, 1376, 294, 41, 309, 40, 40, 498, 41, 1432, + 1495, 41, 41, 260, 261, 40, 263, 273, 41, 62, + 1335, 326, 91, 41, 40, 490, 1431, 502, 388, 389, + 390, 1346, 392, 40, 277, 395, 341, 41, 62, 61, + 271, 0, 125, 123, 275, 276, 277, 278, 279, 91, + 281, 282, 283, 284, 41, 286, 287, 1358, 452, 290, + 291, 292, 293, 391, 1365, 93, 297, 298, 41, 41, + 41, 415, 416, 417, 33, 306, 93, 308, 317, 38, + 317, 40, 41, 42, 41, 44, 1571, 40, 47, 40, + 58, 58, 323, 324, 325, 93, 1520, 1513, 93, 93, + 59, 60, 61, 62, 1604, 93, 40, 44, 355, 356, + 357, 91, 505, 91, 40, 1430, 40, 123, 273, 544, + 278, 41, 41, 281, 282, 283, 284, 358, 286, 287, + 288, 93, 91, 380, 93, 410, 411, 412, 413, 414, + 280, 281, 282, 283, 284, 40, 40, 93, 41, 422, + 1451, 1452, 1453, 41, 93, 511, 274, 432, 433, 44, + 41, 58, 41, 1568, 123, 41, 125, 44, 60, 425, + 426, 427, 428, 1488, 449, 450, 451, 452, 61, 93, + 40, 456, 457, 40, 1607, 38, 40, 462, 40, 464, + 465, 40, 40, 449, 450, 451, 452, 472, 473, 40, + 40, 40, 1503, 40, 40, 1610, 40, 1508, 1509, 1510, + 125, 1512, 62, 1514, 1515, 1516, 41, 41, 260, 261, + 262, 263, 264, 93, 93, 41, 268, 93, 475, 41, + 477, 478, 479, 480, 93, 1536, 1537, 1538, 41, 278, + 41, 283, 281, 282, 283, 284, 93, 286, 287, 288, + 93, 41, 527, 528, 296, 530, 531, 532, 41, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 41, 41, + 123, 93, 93, 428, 41, 430, 431, 41, 320, 321, + 536, 537, 538, 539, 540, 541, 542, 93, 93, 41, + 41, 93, 41, 1608, 449, 450, 451, 452, 1599, 93, + 93, 260, 261, 262, 263, 41, 41, 93, 41, 268, + 41, 263, 271, 544, 273, 274, 275, 276, 277, 278, + 279, 44, 281, 282, 283, 284, 274, 286, 287, 288, + 93, 290, 291, 292, 293, 41, 41, 296, 297, 298, + 299, 41, 40, 93, 40, 93, 93, 306, 40, 308, + 40, 40, 311, 41, 58, 58, 315, 316, 41, 318, + 41, 58, 41, 322, 323, 324, 325, 40, 40, 93, + 41, 41, 41, 415, 416, 417, 93, 41, 93, 41, + 339, 536, 537, 538, 539, 540, 541, 542, 40, 40, + 40, 93, 33, 40, 40, 40, 40, 40, 40, 358, + 359, 360, 361, 362, 40, 364, 365, 260, 40, 40, + 263, 41, 40, 93, 41, 374, 375, 263, 93, 58, + 60, 40, 40, 40, 40, 278, 33, 41, 281, 282, + 283, 284, 391, 286, 287, 288, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 40, 274, 41, 41, 0, + 41, 41, 40, 263, 91, 41, 358, 41, 40, 40, + 449, 450, 451, 452, 41, 454, 455, 456, 457, 511, + 41, 460, 40, 462, 274, 464, 465, 466, 467, 41, + 469, 470, 33, 472, 473, 474, 41, 38, 123, 40, + 41, 42, 481, 44, 125, 41, 47, 269, 123, 123, + 272, 123, 44, 62, 125, 123, 125, 40, 59, 60, + 61, 62, 123, 62, 41, 123, 41, 123, 125, 41, + 509, 510, 511, 295, 296, 41, 41, 41, 300, 125, + 302, 123, 41, 62, 123, 41, 40, 309, 527, 528, + 91, 530, 531, 532, 123, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 326, 544, 40, 123, 41, 263, + 46, 93, 93, 275, 42, 263, 61, 275, 275, 341, + 263, 91, 123, 123, 125, 263, 277, 278, 279, 275, + 281, 282, 283, 284, 275, 286, 287, 288, 275, 290, + 291, 292, 293, 407, 791, 263, 297, 298, 981, 958, + 271, 699, 59, 858, 0, 180, 277, 278, 279, 1447, + 281, 282, 283, 284, 1221, 286, 287, 956, 1085, 290, + 291, 292, 293, 260, 261, 275, 263, 298, 877, 679, + 275, 268, 275, 275, 271, 275, 275, 275, 275, 276, + 277, 278, 279, 275, 281, 282, 283, 284, 275, 286, + 287, 1209, 867, 290, 291, 292, 293, 1222, 467, 296, + 297, 298, 340, 59, 365, 61, 24, 9, 125, 306, + 864, 308, 1149, 260, 261, 114, 263, 262, 521, 24, + 718, 714, 292, 649, 64, 583, 323, 324, 325, 479, + -1, 358, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, 260, + 261, -1, 263, -1, 299, -1, -1, 268, -1, -1, + 271, 358, 273, 274, 275, 276, 277, 278, 279, 125, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, 294, 296, 297, 298, 299, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, 309, + 311, -1, -1, -1, -1, 316, -1, -1, 355, 356, + 357, 322, 323, 324, 325, 325, -1, -1, 415, 416, + 417, -1, -1, -1, 334, -1, -1, -1, -1, -1, + -1, -1, -1, 380, -1, -1, -1, -1, 348, 349, + 350, 351, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + 380, 381, 382, 383, 384, 385, 386, -1, -1, 296, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, 475, -1, + 477, 478, 479, 480, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, 544, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, 322, 40, 41, 42, + 481, 44, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, 410, -1, -1, -1, -1, 509, 510, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, -1, 452, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 462, -1, -1, 465, -1, + 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 424, -1, + -1, -1, -1, 429, -1, -1, 432, 433, -1, -1, + 59, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, 474, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 263, 60, 58, 41, 0, 41, 41, 93, 40, - 91, 40, 40, 93, 40, 91, 449, 450, 451, 452, - 40, 454, 455, 456, 457, 41, 41, 460, 41, 462, - 41, 464, 465, 466, 467, 40, 469, 470, 33, 472, - 473, 474, 274, 38, 41, 40, 41, 42, 481, 44, - 41, 263, 47, 40, 40, 415, 416, 417, 511, 358, - 269, 41, 41, 272, 59, 60, 61, 62, 274, 40, - 123, 41, 41, 294, 125, 41, 509, 510, 511, 123, - 301, 123, 303, 304, 305, 123, 295, 296, 44, 62, - 40, 300, 125, 302, 527, 528, 91, 530, 531, 532, - 309, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 278, 544, 41, 281, 282, 283, 284, 326, 286, 287, - 288, 342, 343, 344, 123, 125, 62, 123, 123, 123, - 125, 41, 341, 125, 123, 41, 41, 41, 41, 123, - 125, 277, 278, 279, 41, 281, 282, 283, 284, 123, - 286, 287, 288, 62, 290, 291, 292, 293, 59, 123, - 0, 297, 298, 41, 40, 40, 123, 388, 389, 390, - 41, 392, 93, 46, 395, 263, 93, 275, 275, 260, - 261, 42, 263, 91, 263, 790, 263, 268, 263, 61, - 271, 263, 180, 407, 275, 276, 277, 278, 279, 979, - 281, 282, 283, 284, 275, 286, 287, 275, 275, 290, - 291, 292, 293, 275, 275, 296, 297, 298, 275, 59, - 857, 61, 1445, 275, 125, 306, 275, 308, 275, 365, - 275, 956, 275, 1219, 275, 275, 699, 954, 1083, 679, - 876, 1220, 323, 324, 325, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 294, 1207, 866, 467, 24, 260, 261, 301, 263, 303, - 304, 305, 863, 268, 340, 9, 271, 358, 273, 274, + 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, 322, 40, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, 410, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, 452, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 462, -1, -1, 465, -1, 123, -1, + 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, + -1, 429, -1, -1, 432, 433, -1, 59, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, 474, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, - 114, 286, 287, 1147, 521, 290, 291, 292, 293, 24, - 714, 296, 297, 298, 299, 718, 583, 649, 342, 343, - 344, 306, 64, 308, 292, 479, 311, -1, -1, 358, - -1, 316, 262, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, 415, 416, 417, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, 388, 389, 390, -1, 392, 299, - -1, 395, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, 374, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 296, 391, -1, -1, -1, + -1, -1, -1, -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, 544, -1, 460, -1, 462, -1, 464, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, 322, 40, 41, 42, 481, 44, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, 410, + -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, -1, -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, - -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 462, -1, -1, 465, -1, 123, -1, 125, -1, + 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 462, -1, -1, 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 424, -1, -1, -1, -1, 429, - -1, -1, 432, 433, -1, -1, 59, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 432, 433, -1, 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, 474, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + -1, -1, 472, 473, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, 59, -1, -1, + -1, 125, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, - -1, 268, 260, 261, 271, 263, 273, 274, 275, 276, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 287, 346, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, 271, -1, 322, 323, 324, 325, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, -1, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, 355, 356, 357, - 273, -1, -1, -1, -1, -1, -1, 374, 375, -1, + 365, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 380, 296, 391, -1, -1, -1, -1, 396, + -1, 358, -1, 360, 361, 362, -1, -1, -1, 273, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, 260, 261, 460, 263, 462, -1, 464, 465, 466, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - 322, 40, 41, 42, 481, 44, -1, 475, -1, 477, - 478, 479, 480, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, 410, -1, -1, + -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, 452, - -1, -1, -1, -1, -1, -1, 355, 356, 357, 462, - -1, -1, 465, -1, 123, 123, 125, -1, 410, 411, + 537, 538, 539, 540, 541, 542, -1, 544, 452, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, - -1, 380, 424, -1, -1, -1, -1, 429, -1, -1, - 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 432, 433, -1, 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, -1, -1, + 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, 474, 536, 537, 538, 539, 540, 541, 542, + 472, 473, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, 59, 286, 287, 288, 125, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, 475, -1, 477, 478, - 479, 480, -1, -1, -1, 527, 528, -1, 530, 531, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 41, 294, 296, 297, 298, + -1, 290, 291, 292, 293, 365, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, 309, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, 325, -1, -1, - -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 348, 349, 350, 351, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, 380, 381, 382, 383, 384, 385, 386, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, @@ -3199,31 +3291,31 @@ static int yycheck[] = { 4, 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 61, 62, -1, -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, 294, -1, - -1, -1, -1, -1, -1, 301, -1, 303, 304, 305, - -1, -1, 123, -1, 125, 271, 410, 411, 412, 413, - 414, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, 432, 433, - -1, 297, 298, -1, 0, -1, 342, 343, 344, -1, + 539, 540, 541, 542, -1, 544, 452, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 462, -1, -1, 465, + -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, + 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 346, -1, 388, 389, 390, -1, 392, -1, -1, 395, - -1, -1, -1, 59, -1, -1, 277, 278, 279, 365, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, -1, 365, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, 257, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 276, 277, -1, 279, 280, @@ -3310,7 +3402,7 @@ static int yycheck[] = { 4, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3354,7 +3446,7 @@ static int yycheck[] = { 4, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3379,13 +3471,13 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, + 452, -1, -1, -1, 456, 457, -1, -1, -1, 125, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3400,7 +3492,7 @@ static int yycheck[] = { 4, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, 322, 323, 324, 325, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, @@ -3416,314 +3508,270 @@ static int yycheck[] = { 4, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, - 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, + 41, 42, 481, 44, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 61, 62, -1, -1, -1, -1, 452, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, 464, -1, + 466, -1, -1, 469, 470, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, 0, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + 361, 362, -1, 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + 421, 422, 423, 424, -1, -1, -1, 123, 429, 125, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, -1, -1, -1, -1, 59, + 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - 456, 457, -1, -1, -1, 125, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, 0, -1, 294, 295, + 306, -1, 308, -1, 300, 311, 302, -1, -1, -1, + 316, -1, -1, 309, -1, -1, 322, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 326, 327, -1, 329, 330, 331, 332, 333, -1, -1, + -1, -1, 338, -1, -1, 341, -1, -1, -1, -1, + -1, 347, 358, -1, -1, 59, 352, -1, 354, -1, + -1, -1, -1, -1, -1, -1, 33, -1, 374, 375, + 366, 367, 368, 369, 370, 371, 372, 373, -1, -1, + -1, -1, -1, 379, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 123, + -1, 125, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, + 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, + -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, - -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, 452, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, 464, -1, 466, -1, -1, 469, - 470, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, -1, 270, 271, 272, -1, 0, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, 322, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, 339, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 359, 323, 324, 325, -1, + 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - 0, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, 59, - -1, 61, 62, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, 123, 429, 125, -1, 432, 433, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, -1, 472, 473, 474, - -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, + -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, 0, -1, 294, 295, 306, -1, 308, -1, - 300, 311, 302, -1, -1, -1, 316, -1, -1, 309, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 326, 327, -1, 329, - 330, 331, 332, 333, -1, -1, -1, -1, 338, -1, - -1, 341, -1, -1, -1, -1, -1, 347, 358, -1, - -1, 59, 352, -1, 354, -1, -1, -1, -1, -1, - -1, -1, 33, -1, 374, 375, 366, 367, 368, 369, - 370, 371, 372, 373, -1, -1, -1, -1, -1, 379, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 123, -1, 125, -1, 429, - 91, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, - -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, 544, -1, -1, + 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, -1, 0, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, + -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 123, -1, 125, -1, -1, 91, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, -1, 0, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, - -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, 544, -1, + -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, -1, -1, 0, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 359, 323, 324, + 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 271, -1, -1, 0, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 123, -1, 125, -1, -1, 91, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, + 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, 544, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, + 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, - -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, 0, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 359, 323, 324, 325, -1, 364, 365, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 123, -1, - 125, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + -1, -1, -1, -1, 364, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 544, -1, -1, 273, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, -1, 0, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, - 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, 449, + 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, + 470, -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 123, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, + 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, 544, -1, -1, 273, - -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, 123, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, 527, 528, 273, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 296, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 359, -1, -1, -1, -1, - 364, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, @@ -3746,20 +3794,20 @@ static int yycheck[] = { 4, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + 474, -1, -1, -1, -1, -1, -1, 40, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 527, 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3772,123 +3820,155 @@ static int yycheck[] = { 4, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, 296, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, 449, 450, 451, 452, -1, 454, 455, 456, 457, + 273, 274, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, 40, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 311, 61, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, -1, -1, -1, 527, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, - -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, -1, -1, -1, -1, 429, -1, -1, 432, + 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, -1, 472, + 473, 474, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, 527, - 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, 274, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, 449, 450, 451, + 412, 413, 414, 59, -1, -1, 418, 419, 420, 421, + 422, 423, 424, -1, -1, -1, -1, 429, -1, -1, + 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, 273, 274, 460, -1, - 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, - 472, 473, 474, -1, 40, 41, -1, -1, 44, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, + 472, 473, 474, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 311, 61, -1, -1, -1, 316, + -1, -1, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, -1, 429, -1, -1, 432, 433, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 429, -1, 260, 432, 433, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, -1, 472, 473, 474, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 274, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, + -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, + -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 322, 125, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + 260, -1, 460, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 59, - -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 273, 274, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, + 260, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 59, 429, -1, - 260, 432, 433, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, 322, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, 0, -1, + -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, @@ -3897,7 +3977,7 @@ static int yycheck[] = { 4, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, - 460, 263, 462, -1, -1, 465, -1, -1, -1, -1, + 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3934,7 +4014,7 @@ static int yycheck[] = { 4, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, 260, -1, 460, -1, + 452, -1, 454, 455, 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3946,600 +4026,528 @@ static int yycheck[] = { 4, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, -1, 59, -1, -1, 260, -1, -1, -1, + 424, -1, -1, -1, -1, 429, -1, 0, 432, 433, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, 322, 125, + 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, + 474, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, 33, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + 424, 0, -1, -1, -1, 429, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, 260, -1, 460, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, + 454, 455, 456, 457, -1, 0, 460, -1, 462, -1, + 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + -1, -1, -1, -1, -1, 509, 510, 260, -1, -1, + 263, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 273, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, 0, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, -1, -1, 358, 59, 429, -1, -1, 432, + 433, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, - -1, 59, -1, -1, 260, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, 474, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, - -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - -1, 429, -1, 0, 432, 433, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, -1, 472, 473, 474, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, 33, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 0, -1, -1, - -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, 0, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, 260, -1, -1, 263, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 273, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, 0, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, - 358, 59, 429, -1, -1, 432, 433, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, -1, 465, -1, - -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 125, -1, 322, + -1, 125, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, + 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, + 544, -1, -1, -1, -1, 410, 411, 412, 413, 414, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, -1, 465, 432, 433, 273, + -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, + -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 527, 528, + 42, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 271, 91, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, 410, 411, 412, 413, + 414, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, -1, 358, -1, -1, 472, 473, + -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, -1, 544, -1, -1, -1, - -1, 410, 411, 412, 413, 414, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, -1, 465, 432, 433, 273, -1, -1, -1, 472, - 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, - -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, - -1, -1, -1, 472, 473, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 527, 528, 42, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 271, 91, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, 410, 411, 412, 413, 414, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - -1, 358, -1, -1, 472, 473, -1, 33, -1, -1, - -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, 91, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, 323, 324, 325, 33, -1, -1, -1, -1, 38, + -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, 91, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - 33, -1, -1, -1, -1, 38, -1, -1, -1, 42, + -1, 60, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 544, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, 59, 415, 416, 417, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 33, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, 59, 415, - 416, 417, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 33, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, 415, 416, 417, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, 33, 306, -1, 308, + -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, 415, - 416, 417, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, 33, 306, -1, 308, -1, 38, -1, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 91, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, 271, 322, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 33, 544, 290, 291, 292, 293, 294, -1, -1, + 297, 298, -1, -1, -1, -1, 415, 416, 417, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - 271, 322, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 33, 544, 290, - 291, 292, 293, 294, -1, -1, 297, 298, -1, -1, - -1, -1, 415, 416, 417, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, - 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 410, -1, 412, 413, 414, -1, 366, + 367, 368, 369, -1, -1, 372, -1, 424, -1, 376, + 377, 378, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 410, - -1, 412, 413, 414, -1, 366, 367, 368, 369, -1, - -1, 372, -1, 424, -1, 376, 377, 378, 429, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, 474, -1, -1, -1, 268, -1, -1, - 271, 544, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 509, 510, - -1, -1, -1, -1, 91, 306, -1, 308, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, 474, -1, -1, + -1, 268, -1, -1, 271, 544, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 509, 510, -1, -1, -1, -1, 91, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 481, -1, 323, 324, 325, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 481, -1, 323, 324, 325, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, 544, 290, 291, 292, 293, 294, -1, - -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, 91, -1, -1, - -1, -1, -1, -1, 415, 416, 417, 323, 324, 325, - -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, 544, 290, 291, + 292, 293, 294, -1, -1, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, 415, 416, + 417, 323, 324, 325, -1, 327, -1, 329, 330, 331, + 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, 358, -1, -1, -1, + -1, -1, -1, -1, 366, 367, 368, 369, -1, -1, + 372, -1, -1, -1, 376, 377, 378, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, 544, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 359, -1, -1, 481, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, + -1, -1, 544, 323, 324, 325, -1, 327, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, 372, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, - 366, 367, 368, 369, -1, -1, 372, -1, -1, -1, - 376, 377, 378, 260, 261, -1, 263, -1, -1, -1, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, 308, -1, -1, -1, 415, 416, 417, -1, -1, + -1, -1, -1, -1, -1, 33, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, 359, -1, -1, 481, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, 415, 416, - 417, -1, -1, -1, -1, -1, -1, -1, 544, 323, - 324, 325, -1, 327, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 452, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, 372, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, 415, 416, 417, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, 544, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 359, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, 91, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, - -1, 33, 323, 324, 325, -1, -1, -1, -1, -1, + -1, 358, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, 91, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + 33, 308, -1, -1, -1, -1, -1, -1, 415, 416, + 417, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, 91, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, - -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, 358, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 33, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, 415, 416, + 417, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 33, -1, 275, 276, 277, + 268, -1, -1, 271, 358, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, 415, 416, 417, -1, -1, -1, + 298, -1, -1, 91, -1, -1, -1, -1, 306, 33, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, 41, - -1, -1, -1, 544, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - 358, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, 91, - -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, 415, 416, 417, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 544, 271, -1, 358, -1, 275, 276, - 277, 278, 279, 91, 281, 282, 283, 284, 40, 286, - 287, -1, -1, 290, 291, 292, 293, -1, 295, -1, - 297, 298, -1, 300, -1, 302, -1, 59, 60, 306, - -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, 326, - -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, - -1, -1, -1, 271, 341, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, 358, 290, 291, 292, 293, -1, 295, -1, 297, - 298, 123, 300, 125, 302, -1, 544, -1, 306, -1, - 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, 326, 271, - -1, -1, -1, -1, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 341, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 358, -1, -1, -1, 306, -1, 308, -1, -1, -1, - -1, 41, -1, -1, -1, -1, -1, 47, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, 59, - -1, -1, 544, 271, -1, -1, -1, -1, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, 358, -1, -1, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, 323, 324, 325, -1, -1, - -1, 273, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, - 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 544, 271, -1, + 358, -1, 275, 276, 277, 278, 279, 91, 281, 282, + 283, 284, 40, 286, 287, -1, -1, 290, 291, 292, + 293, -1, 295, -1, 297, 298, -1, 300, -1, 302, + -1, 59, 60, 306, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, + 323, 324, 325, 326, -1, -1, -1, 415, 416, 417, + -1, -1, -1, -1, -1, -1, -1, 271, 341, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, 358, 290, 291, 292, 293, + -1, 295, -1, 297, 298, 123, 300, 125, 302, -1, + 544, -1, 306, -1, 308, 309, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, 326, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 341, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 358, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, 41, -1, -1, -1, -1, + -1, 47, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, 59, -1, -1, 544, 271, -1, -1, + -1, -1, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + 358, -1, -1, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, 323, + 324, 325, -1, -1, -1, 273, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 544, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, - 422, 423, 544, 273, 274, 123, -1, 125, -1, -1, - 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, -1, -1, -1, -1, 460, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, 47, -1, -1, 536, 537, 538, 539, 540, 541, - 542, 391, -1, 59, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - -1, -1, 260, -1, 414, 263, -1, -1, 418, 419, - 420, 421, 422, 423, -1, 273, -1, -1, -1, -1, - -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, - 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, 391, -1, 59, -1, -1, 396, 397, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, 449, 450, 451, 452, -1, -1, 273, 274, 123, - -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, + 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, + 418, 419, 420, 421, 422, 423, 544, 273, 274, 123, + -1, 125, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, -1, -1, + -1, -1, 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, 59, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 509, 510, -1, -1, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, -1, 123, -1, - 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, 511, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, 47, -1, -1, 536, 537, + 538, 539, 540, 541, 542, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, 422, 423, -1, 273, - 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, 536, 537, 538, - 539, 540, 541, 542, 460, -1, 59, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, -1, 123, -1, 125, 460, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, 449, 450, 451, 452, -1, + -1, 273, 274, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 509, 510, 260, -1, 414, - 263, -1, -1, 418, 419, 420, 421, 422, 423, -1, - 273, -1, -1, -1, -1, -1, -1, 432, 433, -1, + 405, 406, 407, 408, 409, 509, 510, -1, -1, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, + -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, + 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, + 422, 423, -1, 273, 509, 510, -1, -1, -1, -1, + 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, 536, 537, 538, 539, 540, 541, 542, 460, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, - -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, 59, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, 449, 450, 451, 452, - 273, -1, -1, -1, -1, -1, -1, 460, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, + -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, + 542, -1, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - -1, -1, -1, -1, 414, 123, -1, 125, 418, 419, - 420, 421, 422, 423, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 449, - 450, 451, 452, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, -1, -1, 509, - 510, 414, 123, -1, 125, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, 59, -1, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, 449, 450, 451, 452, - -1, -1, 260, -1, -1, 263, -1, 460, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 509, + 510, 260, -1, 414, 263, -1, -1, 418, 419, 420, + 421, 422, 423, -1, 273, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, -1, 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, 260, -1, 59, 263, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, -1, 123, -1, 125, - -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, - 125, 509, 510, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, 449, 450, - 451, 452, -1, -1, -1, 59, -1, -1, -1, 460, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, -1, -1, -1, -1, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 449, 450, 451, 452, 273, -1, -1, -1, -1, -1, + -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, -1, -1, -1, 414, 123, + -1, 125, 418, 419, 420, 421, 422, 423, -1, -1, + 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 474, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, - 418, 419, 420, 421, 422, 423, -1, 273, 509, 510, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 536, 537, 538, 539, 540, - 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, 273, -1, + -1, -1, 59, 449, 450, 451, 452, 536, 537, 538, + 539, 540, 541, 542, 460, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, -1, -1, 509, 510, 414, 123, -1, 125, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + 449, 450, 451, 452, -1, -1, 260, -1, -1, 263, + -1, 460, -1, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, -1, -1, -1, -1, 432, 433, -1, 273, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, 260, -1, 59, 263, + -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, + -1, 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, -1, -1, -1, 460, 410, 411, 412, 413, 414, - -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, -1, 125, 509, 510, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, 449, 450, 451, 452, -1, -1, -1, 59, + -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, 260, -1, + 414, 263, -1, -1, 418, 419, 420, 421, 422, 423, + -1, 273, 509, 510, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, 536, + 537, 538, 539, 540, 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, 273, -1, - -1, 456, 457, 509, 510, -1, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, + 474, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 410, 411, 412, 413, - 414, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 432, 433, - 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, - -1, -1, -1, -1, -1, 410, -1, 412, 413, 414, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 424, - -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, + -1, -1, -1, -1, 125, 509, 510, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 474, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, + -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, -1, 125, -1, -1, + 432, 433, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, -1, -1, -1, -1, -1, -1, 460, 410, + 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, 273, -1, -1, 456, 457, 509, 510, -1, + -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, + -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 410, 411, 412, 413, 414, 273, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, + -1, -1, 462, -1, 322, 465, -1, -1, -1, -1, + -1, -1, 472, 473, -1, -1, -1, -1, 123, 410, + -1, 412, 413, 414, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 474, -1, -1, -1, -1, -1, -1, + -1, -1, 410, -1, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, + -1, 429, -1, -1, 432, 433, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, -1, -1, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, 257, -1, -1, -1, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, + -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, + 257, 286, 287, -1, 289, 290, 291, 292, 293, -1, + -1, 509, 510, -1, 271, -1, -1, -1, -1, 276, + 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, + 287, -1, 289, 290, 291, 292, 293, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, 271, -1, - -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, - 283, 284, -1, 286, 287, 257, 289, 290, 291, 292, - 293, 536, 537, 538, 539, 540, 541, 542, -1, 271, - -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, - 282, 283, 284, -1, 286, 287, -1, 289, 290, 291, - 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 335, -1, 337, -1, -1, -1, -1, 342, + -1, -1, -1, 358, -1, -1, -1, -1, 335, -1, + 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, - 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 391, -1, + -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 482, - -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, -1, -1, - -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, - 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, -1, - -1, -1, 504, + -1, -1, -1, -1, -1, -1, -1, 482, -1, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, -1, -1, -1, 504, + -1, -1, -1, -1, -1, 482, -1, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, -1, -1, -1, 504, }; static int yyctable[] = { -1, - 239, 559, -1, 428, 774, -1, 278, 704, -1, 279, - 704, -1, 280, 704, -1, 282, 704, -1, 283, 704, - -1, 284, 704, -1, 285, 704, -1, 501, 725, -1, + 239, 561, -1, 428, 776, -1, 278, 706, -1, 279, + 706, -1, 280, 706, -1, 282, 706, -1, 283, 706, + -1, 284, 706, -1, 285, 706, -1, 501, 727, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 742, 317, -1, 810, 776, -1, - 67, 567, -1, 68, 567, -1, 69, 567, -1, 27, + -1, 103, 495, -1, 743, 317, -1, 811, 778, -1, + 67, 569, -1, 68, 569, -1, 69, 569, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1076, 627, -1, 67, 568, -1, 68, - 568, -1, 69, 568, -1, 1095, 37, -1, 1221, 780, - -1, 1223, 778, -1, 1235, 611, -1, 1441, 782, -1, - 1078, 574, -1, 1079, 574, -1, + 34, 78, -1, 1078, 629, -1, 67, 570, -1, 68, + 570, -1, 69, 570, -1, 1097, 37, -1, 1223, 782, + -1, 1225, 780, -1, 1237, 613, -1, 1443, 784, -1, + 1080, 576, -1, 1081, 576, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, @@ -4616,95 +4624,95 @@ static int yyastable[] = { 0, 302, 293, 305, 110, 393, 394, 319, 319, 403, 110, 288, 103, 383, 290, 427, 290, 290, 290, 304, 319, 299, 311, 299, 311, 319, 317, 19, 295, 295, 311, - 383, 307, 312, 295, 343, 340, 312, 316, 319, 296, - 295, 20, 323, 337, 338, 339, 291, 383, 473, 56, - 470, 477, 477, 477, 477, 312, 319, 470, 62, 62, - 213, 298, 305, 319, 378, 298, 348, 343, 343, 298, - 298, 343, 343, 295, 216, 319, 311, 216, 311, 216, - 319, 39, 51, 52, 69, 119, 289, 292, 303, 328, - 329, 380, 293, 319, 348, 395, 299, 340, 348, 296, - 300, 296, 296, 296, 296, 296, 485, 296, 304, 8, - 293, 319, 2, 16, 21, 22, 24, 25, 26, 27, - 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, - 82, 87, 103, 136, 227, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 249, 290, 345, 346, 465, 63, 314, 300, - 298, 296, 293, 371, 8, 293, 291, 298, 8, 298, - 299, 366, 295, 295, 311, 313, 291, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 42, 43, 110, 352, 353, 374, 447, 487, 28, 29, - 63, 203, 204, 206, 343, 311, 311, 315, 296, 296, - 319, 341, 340, 295, 383, 72, 117, 311, 383, 72, - 117, 317, 311, 299, 311, 299, 311, 317, 19, 424, - 291, 457, 459, 439, 319, 300, 319, 319, 293, 300, - 340, 313, 319, 336, 19, 312, 348, 296, 295, 293, - 296, 293, 337, 340, 296, 293, 312, 319, 312, 319, - 319, 295, 304, 295, 296, 296, 295, 295, 296, 296, - 319, 315, 311, 63, 311, 296, 295, 39, 330, 331, - 329, 295, 311, 370, 302, 383, 296, 136, 395, 39, - 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, - 137, 140, 296, 251, 252, 253, 319, 226, 350, 296, - 324, 324, 324, 324, 324, 324, 319, 319, 296, 25, - 26, 27, 28, 29, 295, 332, 243, 235, 247, 295, - 228, 248, 22, 332, 332, 2, 21, 22, 24, 25, - 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, - 38, 230, 231, 233, 234, 235, 237, 238, 241, 242, - 244, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 305, 325, 299, 305, 296, - 344, 312, 298, 347, 28, 65, 66, 319, 327, 348, - 349, 382, 396, 291, 298, 376, 290, 290, 295, 348, - 319, 302, 337, 337, 334, 365, 295, 299, 295, 299, - 26, 27, 28, 29, 295, 299, 295, 299, 295, 299, + 383, 307, 312, 319, 295, 343, 340, 312, 316, 319, + 296, 295, 20, 323, 337, 338, 339, 291, 383, 473, + 56, 470, 477, 477, 477, 477, 312, 319, 470, 62, + 62, 213, 298, 305, 319, 378, 298, 348, 343, 343, + 298, 298, 343, 343, 295, 216, 319, 311, 216, 311, + 216, 319, 39, 51, 52, 69, 119, 289, 292, 303, + 328, 329, 380, 293, 319, 348, 395, 299, 340, 348, + 296, 300, 296, 296, 296, 296, 296, 485, 296, 304, + 8, 293, 319, 2, 16, 21, 22, 24, 25, 26, + 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, + 80, 82, 87, 103, 136, 227, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 249, 290, 345, 346, 465, 63, 314, + 300, 298, 296, 293, 371, 8, 293, 291, 298, 8, + 298, 299, 366, 295, 295, 311, 313, 291, 22, 23, + 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, + 38, 42, 43, 110, 352, 353, 374, 447, 487, 28, + 29, 63, 203, 204, 206, 343, 311, 311, 315, 296, + 296, 319, 341, 340, 295, 383, 72, 117, 311, 383, + 72, 117, 317, 311, 299, 311, 299, 311, 317, 19, + 424, 291, 457, 459, 439, 319, 300, 319, 319, 293, + 300, 340, 313, 319, 336, 19, 312, 319, 348, 296, + 295, 293, 296, 293, 337, 340, 296, 293, 312, 319, + 312, 319, 319, 295, 304, 295, 296, 296, 295, 295, + 296, 296, 319, 315, 311, 63, 311, 296, 295, 39, + 330, 331, 329, 295, 311, 370, 302, 383, 296, 136, + 395, 39, 46, 48, 49, 50, 87, 88, 89, 133, + 134, 135, 137, 140, 296, 251, 252, 253, 319, 226, + 350, 296, 324, 324, 324, 324, 324, 324, 319, 319, + 296, 25, 26, 27, 28, 29, 295, 332, 243, 235, + 247, 295, 228, 248, 22, 332, 332, 2, 21, 22, + 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, + 36, 37, 38, 230, 231, 233, 234, 235, 237, 238, + 241, 242, 244, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 305, 325, 299, + 305, 296, 344, 312, 298, 347, 28, 65, 66, 319, + 327, 348, 349, 382, 396, 291, 298, 376, 290, 290, + 295, 348, 319, 302, 337, 337, 334, 365, 295, 299, + 295, 299, 26, 27, 28, 29, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 104, 109, 377, 447, 343, 312, 296, 337, 197, 405, - 311, 340, 319, 319, 293, 340, 313, 291, 170, 171, - 172, 173, 291, 432, 444, 445, 447, 462, 173, 175, - 176, 291, 432, 444, 445, 447, 463, 291, 136, 300, - 300, 383, 347, 383, 296, 296, 311, 296, 337, 316, - 316, 296, 350, 339, 62, 62, 378, 296, 319, 319, - 295, 331, 383, 368, 369, 383, 293, 379, 311, 348, - 296, 295, 304, 304, 300, 300, 300, 300, 295, 313, - 8, 293, 8, 250, 348, 299, 299, 25, 26, 27, - 28, 29, 271, 293, 299, 306, 292, 300, 319, 291, - 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, - 36, 37, 38, 44, 348, 351, 353, 295, 295, 290, - 374, 371, 300, 296, 296, 295, 295, 327, 319, 319, - 319, 295, 299, 295, 299, 295, 299, 295, 299, 319, - 319, 319, 319, 319, 319, 336, 319, 319, 335, 319, - 335, 336, 319, 319, 319, 319, 319, 319, 319, 336, - 319, 352, 319, 8, 44, 319, 44, 51, 382, 319, - 42, 91, 110, 364, 372, 296, 401, 296, 311, 300, - 300, 383, 383, 256, 387, 387, 387, 387, 387, 387, - 387, 312, 293, 19, 296, 312, 312, 319, 304, 296, - 319, 311, 296, 293, 380, 379, 395, 319, 138, 139, - 138, 139, 346, 381, 319, 298, 293, 319, 319, 348, - 300, 319, 292, 300, 26, 27, 28, 29, 319, 26, - 27, 28, 319, 374, 291, 291, 302, 337, 337, 296, - 300, 296, 300, 319, 319, 319, 319, 319, 319, 336, - 319, 296, 300, 296, 300, 296, 300, 296, 300, 296, - 296, 300, 296, 296, 300, 296, 300, 296, 300, 296, - 300, 296, 300, 296, 300, 296, 296, 300, 296, 8, - 296, 300, 51, 382, 299, 311, 295, 293, 19, 317, - 383, 313, 378, 296, 379, 383, 296, 296, 296, 295, - 8, 319, 348, 300, 300, 300, 319, 296, 304, 304, - 304, 296, 291, 296, 296, 295, 295, 296, 300, 296, - 300, 296, 300, 296, 300, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 296, 295, 8, - 300, 298, 337, 383, 313, 340, 301, 333, 334, 304, - 337, 296, 293, 296, 345, 300, 319, 319, 319, 360, - 357, 295, 295, 295, 295, 356, 357, 358, 359, 354, - 355, 356, 357, 358, 359, 363, 361, 362, 352, 296, - 333, 383, 295, 378, 296, 348, 296, 296, 296, 296, - 327, 296, 319, 356, 357, 358, 359, 296, 319, 296, - 296, 319, 296, 336, 296, 319, 335, 296, 335, 336, - 296, 296, 296, 296, 296, 352, 8, 44, 296, 44, - 51, 296, 382, 347, 295, 19, 337, 392, 293, 296, - 296, 296, 296, 8, 337, 313, 296, 39, 54, 70, - 79, 93, 94, 95, 96, 125, 126, 127, 128, 129, - 130, 131, 290, 348, 296, 295, 295, 296, 256, 337, - 319, 103, 296, 296, 317, 340, 383, 19, 313, 333, - 295, 337, 296, + 295, 299, 104, 109, 377, 447, 343, 312, 296, 337, + 197, 405, 311, 340, 319, 319, 293, 340, 313, 291, + 170, 171, 172, 173, 291, 432, 444, 445, 447, 462, + 173, 175, 176, 291, 432, 444, 445, 447, 463, 291, + 136, 300, 300, 383, 347, 383, 296, 296, 311, 296, + 337, 316, 316, 296, 350, 339, 62, 62, 378, 296, + 319, 319, 295, 331, 383, 368, 369, 383, 293, 379, + 311, 348, 296, 295, 304, 304, 300, 300, 300, 300, + 295, 313, 8, 293, 8, 250, 348, 299, 299, 25, + 26, 27, 28, 29, 271, 293, 299, 306, 292, 300, + 319, 291, 22, 23, 24, 26, 27, 28, 29, 31, + 32, 35, 36, 37, 38, 44, 348, 351, 353, 295, + 295, 290, 374, 371, 300, 296, 296, 295, 295, 327, + 319, 319, 319, 295, 299, 295, 299, 295, 299, 295, + 299, 319, 319, 319, 319, 319, 319, 336, 319, 319, + 335, 319, 335, 336, 319, 319, 319, 319, 319, 319, + 319, 336, 319, 352, 319, 8, 44, 319, 44, 51, + 382, 319, 42, 91, 110, 364, 372, 296, 401, 296, + 311, 300, 300, 383, 383, 256, 387, 387, 387, 387, + 387, 387, 387, 312, 293, 19, 296, 312, 312, 319, + 304, 296, 319, 311, 296, 293, 380, 379, 395, 319, + 138, 139, 138, 139, 346, 381, 319, 298, 293, 319, + 319, 348, 300, 319, 292, 300, 26, 27, 28, 29, + 319, 26, 27, 28, 319, 374, 291, 291, 302, 337, + 337, 296, 300, 296, 300, 319, 319, 319, 319, 319, + 319, 336, 319, 296, 300, 296, 300, 296, 300, 296, + 300, 296, 296, 300, 296, 296, 300, 296, 300, 296, + 300, 296, 300, 296, 300, 296, 300, 296, 296, 300, + 296, 8, 296, 300, 51, 382, 299, 311, 295, 293, + 19, 317, 383, 313, 378, 296, 379, 383, 296, 296, + 296, 295, 8, 319, 348, 300, 300, 300, 319, 296, + 304, 304, 304, 296, 291, 296, 296, 295, 295, 296, + 300, 296, 300, 296, 300, 296, 300, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, + 295, 8, 300, 298, 337, 383, 313, 340, 301, 333, + 334, 304, 337, 296, 293, 296, 345, 300, 319, 319, + 319, 360, 357, 295, 295, 295, 295, 356, 357, 358, + 359, 354, 355, 356, 357, 358, 359, 363, 361, 362, + 352, 296, 333, 383, 295, 378, 296, 348, 296, 296, + 296, 296, 327, 296, 319, 356, 357, 358, 359, 296, + 319, 296, 296, 319, 296, 336, 296, 319, 335, 296, + 335, 336, 296, 296, 296, 296, 296, 352, 8, 44, + 296, 44, 51, 296, 382, 347, 295, 19, 337, 392, + 293, 296, 296, 296, 296, 8, 337, 313, 296, 39, + 54, 70, 79, 93, 94, 95, 96, 125, 126, 127, + 128, 129, 130, 131, 290, 348, 296, 295, 295, 296, + 256, 337, 319, 103, 296, 296, 317, 340, 383, 19, + 313, 333, 295, 337, 296, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -5282,7 +5290,9 @@ static const char *yyrule[] = { "instr : instr_none", "instr : instr_var int32", "instr : instr_var id", +"instr : instr_tvar '!' int32", "instr : instr_tvar '!' id", +"instr : instr_tvar '!' '!' int32", "instr : instr_tvar '!' '!' id", "instr : instr_i int32", "instr : instr_i8 int64", @@ -5930,11 +5940,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2114 "asmparse.y" +#line 2116 "asmparse.y" #include "grammar_after.cpp" -#line 5938 "asmparse.cpp.tab.c" +#line 5948 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6387,13 +6397,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6391 "asmparse.cpp.tab.c" +#line 6401 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6397 "asmparse.cpp.tab.c" +#line 6407 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6402,31 +6412,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6406 "asmparse.cpp.tab.c" +#line 6416 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6412 "asmparse.cpp.tab.c" +#line 6422 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6418 "asmparse.cpp.tab.c" +#line 6428 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6424 "asmparse.cpp.tab.c" +#line 6434 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6430 "asmparse.cpp.tab.c" +#line 6440 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6441,13 +6451,13 @@ case 19: #pragma warning(pop) #endif } -#line 6445 "asmparse.cpp.tab.c" +#line 6455 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6451 "asmparse.cpp.tab.c" +#line 6461 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6455,7 +6465,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6459 "asmparse.cpp.tab.c" +#line 6469 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6463,44 +6473,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6467 "asmparse.cpp.tab.c" +#line 6477 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6473 "asmparse.cpp.tab.c" +#line 6483 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6479 "asmparse.cpp.tab.c" +#line 6489 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6485 "asmparse.cpp.tab.c" +#line 6495 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6491 "asmparse.cpp.tab.c" +#line 6501 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6497 "asmparse.cpp.tab.c" +#line 6507 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6504 "asmparse.cpp.tab.c" +#line 6514 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6508,121 +6518,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6512 "asmparse.cpp.tab.c" +#line 6522 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6518 "asmparse.cpp.tab.c" +#line 6528 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6524 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6530 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6536 "asmparse.cpp.tab.c" +#line 6546 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6542 "asmparse.cpp.tab.c" +#line 6552 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6548 "asmparse.cpp.tab.c" +#line 6558 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6554 "asmparse.cpp.tab.c" +#line 6564 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6560 "asmparse.cpp.tab.c" +#line 6570 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6566 "asmparse.cpp.tab.c" +#line 6576 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6572 "asmparse.cpp.tab.c" +#line 6582 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6578 "asmparse.cpp.tab.c" +#line 6588 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6584 "asmparse.cpp.tab.c" +#line 6594 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6590 "asmparse.cpp.tab.c" +#line 6600 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6596 "asmparse.cpp.tab.c" +#line 6606 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6602 "asmparse.cpp.tab.c" +#line 6612 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6608 "asmparse.cpp.tab.c" +#line 6618 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6614 "asmparse.cpp.tab.c" +#line 6624 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6620 "asmparse.cpp.tab.c" +#line 6630 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6626 "asmparse.cpp.tab.c" +#line 6636 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6630,7 +6640,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6634 "asmparse.cpp.tab.c" +#line 6644 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6638,13 +6648,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6642 "asmparse.cpp.tab.c" +#line 6652 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6648 "asmparse.cpp.tab.c" +#line 6658 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6653,73 +6663,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6657 "asmparse.cpp.tab.c" +#line 6667 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6663 "asmparse.cpp.tab.c" +#line 6673 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6669 "asmparse.cpp.tab.c" +#line 6679 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6675 "asmparse.cpp.tab.c" +#line 6685 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6681 "asmparse.cpp.tab.c" +#line 6691 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6687 "asmparse.cpp.tab.c" +#line 6697 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6693 "asmparse.cpp.tab.c" +#line 6703 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6699 "asmparse.cpp.tab.c" +#line 6709 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6705 "asmparse.cpp.tab.c" +#line 6715 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6711 "asmparse.cpp.tab.c" +#line 6721 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6717 "asmparse.cpp.tab.c" +#line 6727 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6723 "asmparse.cpp.tab.c" +#line 6733 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6727,25 +6737,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6731 "asmparse.cpp.tab.c" +#line 6741 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6737 "asmparse.cpp.tab.c" +#line 6747 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6743 "asmparse.cpp.tab.c" +#line 6753 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6749 "asmparse.cpp.tab.c" +#line 6759 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6754,32 +6764,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6758 "asmparse.cpp.tab.c" +#line 6768 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6764 "asmparse.cpp.tab.c" +#line 6774 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6771 "asmparse.cpp.tab.c" +#line 6781 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6777 "asmparse.cpp.tab.c" +#line 6787 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6783 "asmparse.cpp.tab.c" +#line 6793 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6789,25 +6799,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6793 "asmparse.cpp.tab.c" +#line 6803 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6799 "asmparse.cpp.tab.c" +#line 6809 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6805 "asmparse.cpp.tab.c" +#line 6815 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6811 "asmparse.cpp.tab.c" +#line 6821 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6816,13 +6826,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6820 "asmparse.cpp.tab.c" +#line 6830 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6826 "asmparse.cpp.tab.c" +#line 6836 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6833,57 +6843,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6837 "asmparse.cpp.tab.c" +#line 6847 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6843 "asmparse.cpp.tab.c" +#line 6853 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6849 "asmparse.cpp.tab.c" +#line 6859 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6855 "asmparse.cpp.tab.c" +#line 6865 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6862 "asmparse.cpp.tab.c" +#line 6872 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6869 "asmparse.cpp.tab.c" +#line 6879 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6875 "asmparse.cpp.tab.c" +#line 6885 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6881 "asmparse.cpp.tab.c" +#line 6891 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6887 "asmparse.cpp.tab.c" +#line 6897 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6892,74 +6902,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6896 "asmparse.cpp.tab.c" +#line 6906 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6903 "asmparse.cpp.tab.c" +#line 6913 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6909 "asmparse.cpp.tab.c" +#line 6919 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6915 "asmparse.cpp.tab.c" +#line 6925 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6921 "asmparse.cpp.tab.c" +#line 6931 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6927 "asmparse.cpp.tab.c" +#line 6937 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6933 "asmparse.cpp.tab.c" +#line 6943 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6939 "asmparse.cpp.tab.c" +#line 6949 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6945 "asmparse.cpp.tab.c" +#line 6955 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6951 "asmparse.cpp.tab.c" +#line 6961 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6957 "asmparse.cpp.tab.c" +#line 6967 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6963 "asmparse.cpp.tab.c" +#line 6973 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6969,355 +6979,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6973 "asmparse.cpp.tab.c" +#line 6983 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6979 "asmparse.cpp.tab.c" +#line 6989 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6985 "asmparse.cpp.tab.c" +#line 6995 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6991 "asmparse.cpp.tab.c" +#line 7001 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6997 "asmparse.cpp.tab.c" +#line 7007 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 7003 "asmparse.cpp.tab.c" +#line 7013 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 7009 "asmparse.cpp.tab.c" +#line 7019 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 7015 "asmparse.cpp.tab.c" +#line 7025 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 7021 "asmparse.cpp.tab.c" +#line 7031 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 7027 "asmparse.cpp.tab.c" +#line 7037 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 7033 "asmparse.cpp.tab.c" +#line 7043 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 7039 "asmparse.cpp.tab.c" +#line 7049 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 7045 "asmparse.cpp.tab.c" +#line 7055 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 7051 "asmparse.cpp.tab.c" +#line 7061 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 7057 "asmparse.cpp.tab.c" +#line 7067 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 7063 "asmparse.cpp.tab.c" +#line 7073 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 7069 "asmparse.cpp.tab.c" +#line 7079 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 7075 "asmparse.cpp.tab.c" +#line 7085 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 7081 "asmparse.cpp.tab.c" +#line 7091 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 7087 "asmparse.cpp.tab.c" +#line 7097 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 7093 "asmparse.cpp.tab.c" +#line 7103 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 7099 "asmparse.cpp.tab.c" +#line 7109 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 7105 "asmparse.cpp.tab.c" +#line 7115 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 7111 "asmparse.cpp.tab.c" +#line 7121 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 7117 "asmparse.cpp.tab.c" +#line 7127 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 7123 "asmparse.cpp.tab.c" +#line 7133 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 7129 "asmparse.cpp.tab.c" +#line 7139 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 7135 "asmparse.cpp.tab.c" +#line 7145 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 7141 "asmparse.cpp.tab.c" +#line 7151 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 7147 "asmparse.cpp.tab.c" +#line 7157 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7153 "asmparse.cpp.tab.c" +#line 7163 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7159 "asmparse.cpp.tab.c" +#line 7169 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7165 "asmparse.cpp.tab.c" +#line 7175 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7171 "asmparse.cpp.tab.c" +#line 7181 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7177 "asmparse.cpp.tab.c" +#line 7187 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7183 "asmparse.cpp.tab.c" +#line 7193 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7189 "asmparse.cpp.tab.c" +#line 7199 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7195 "asmparse.cpp.tab.c" +#line 7205 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7201 "asmparse.cpp.tab.c" +#line 7211 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7207 "asmparse.cpp.tab.c" +#line 7217 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7213 "asmparse.cpp.tab.c" +#line 7223 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7219 "asmparse.cpp.tab.c" +#line 7229 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7225 "asmparse.cpp.tab.c" +#line 7235 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7231 "asmparse.cpp.tab.c" +#line 7241 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7237 "asmparse.cpp.tab.c" +#line 7247 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7243 "asmparse.cpp.tab.c" +#line 7253 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7249 "asmparse.cpp.tab.c" +#line 7259 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7255 "asmparse.cpp.tab.c" +#line 7265 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7261 "asmparse.cpp.tab.c" +#line 7271 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7267 "asmparse.cpp.tab.c" +#line 7277 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7273 "asmparse.cpp.tab.c" +#line 7283 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7279 "asmparse.cpp.tab.c" +#line 7289 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7285 "asmparse.cpp.tab.c" +#line 7295 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7291 "asmparse.cpp.tab.c" +#line 7301 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7297 "asmparse.cpp.tab.c" +#line 7307 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7303 "asmparse.cpp.tab.c" +#line 7313 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7309 "asmparse.cpp.tab.c" +#line 7319 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7315 "asmparse.cpp.tab.c" +#line 7325 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7321 "asmparse.cpp.tab.c" +#line 7331 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7326,43 +7336,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7330 "asmparse.cpp.tab.c" +#line 7340 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7336 "asmparse.cpp.tab.c" +#line 7346 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7342 "asmparse.cpp.tab.c" +#line 7352 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7348 "asmparse.cpp.tab.c" +#line 7358 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7354 "asmparse.cpp.tab.c" +#line 7364 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7360 "asmparse.cpp.tab.c" +#line 7370 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7366 "asmparse.cpp.tab.c" +#line 7376 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7372,7 +7382,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7376 "asmparse.cpp.tab.c" +#line 7386 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7385,7 +7395,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7389 "asmparse.cpp.tab.c" +#line 7399 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7395,7 +7405,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7399 "asmparse.cpp.tab.c" +#line 7409 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7406,19 +7416,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7410 "asmparse.cpp.tab.c" +#line 7420 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7416 "asmparse.cpp.tab.c" +#line 7426 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7422 "asmparse.cpp.tab.c" +#line 7432 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7427,146 +7437,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7431 "asmparse.cpp.tab.c" +#line 7441 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7438 "asmparse.cpp.tab.c" +#line 7448 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7444 "asmparse.cpp.tab.c" +#line 7454 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7450 "asmparse.cpp.tab.c" +#line 7460 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7456 "asmparse.cpp.tab.c" +#line 7466 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7462 "asmparse.cpp.tab.c" +#line 7472 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7468 "asmparse.cpp.tab.c" +#line 7478 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7474 "asmparse.cpp.tab.c" +#line 7484 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7480 "asmparse.cpp.tab.c" +#line 7490 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7486 "asmparse.cpp.tab.c" +#line 7496 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7492 "asmparse.cpp.tab.c" +#line 7502 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7498 "asmparse.cpp.tab.c" +#line 7508 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7504 "asmparse.cpp.tab.c" +#line 7514 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7510 "asmparse.cpp.tab.c" +#line 7520 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7516 "asmparse.cpp.tab.c" +#line 7526 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7522 "asmparse.cpp.tab.c" +#line 7532 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7528 "asmparse.cpp.tab.c" +#line 7538 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7534 "asmparse.cpp.tab.c" +#line 7544 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7540 "asmparse.cpp.tab.c" +#line 7550 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7546 "asmparse.cpp.tab.c" +#line 7556 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7552 "asmparse.cpp.tab.c" +#line 7562 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7558 "asmparse.cpp.tab.c" +#line 7568 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7564 "asmparse.cpp.tab.c" +#line 7574 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7570 "asmparse.cpp.tab.c" +#line 7580 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7587,7 +7597,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7591 "asmparse.cpp.tab.c" +#line 7601 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7597,7 +7607,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7601 "asmparse.cpp.tab.c" +#line 7611 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7617,7 +7627,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7621 "asmparse.cpp.tab.c" +#line 7631 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7626,103 +7636,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7630 "asmparse.cpp.tab.c" +#line 7640 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7636 "asmparse.cpp.tab.c" +#line 7646 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7642 "asmparse.cpp.tab.c" +#line 7652 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7648 "asmparse.cpp.tab.c" +#line 7658 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7654 "asmparse.cpp.tab.c" +#line 7664 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7660 "asmparse.cpp.tab.c" +#line 7670 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7666 "asmparse.cpp.tab.c" +#line 7676 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7672 "asmparse.cpp.tab.c" +#line 7682 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7678 "asmparse.cpp.tab.c" +#line 7688 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7684 "asmparse.cpp.tab.c" +#line 7694 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7690 "asmparse.cpp.tab.c" +#line 7700 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7696 "asmparse.cpp.tab.c" +#line 7706 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7702 "asmparse.cpp.tab.c" +#line 7712 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7708 "asmparse.cpp.tab.c" +#line 7718 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7714 "asmparse.cpp.tab.c" +#line 7724 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7720 "asmparse.cpp.tab.c" +#line 7730 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7726 "asmparse.cpp.tab.c" +#line 7736 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7732,7 +7742,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7736 "asmparse.cpp.tab.c" +#line 7746 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7740,7 +7750,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7744 "asmparse.cpp.tab.c" +#line 7754 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7748,82 +7758,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7752 "asmparse.cpp.tab.c" +#line 7762 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7759 "asmparse.cpp.tab.c" +#line 7769 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7766 "asmparse.cpp.tab.c" +#line 7776 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7773 "asmparse.cpp.tab.c" +#line 7783 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7779 "asmparse.cpp.tab.c" +#line 7789 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7785 "asmparse.cpp.tab.c" +#line 7795 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7791 "asmparse.cpp.tab.c" +#line 7801 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7797 "asmparse.cpp.tab.c" +#line 7807 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7803 "asmparse.cpp.tab.c" +#line 7813 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7809 "asmparse.cpp.tab.c" +#line 7819 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7815 "asmparse.cpp.tab.c" +#line 7825 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7821 "asmparse.cpp.tab.c" +#line 7831 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7827 "asmparse.cpp.tab.c" +#line 7837 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7831,43 +7841,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7835 "asmparse.cpp.tab.c" +#line 7845 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7841 "asmparse.cpp.tab.c" +#line 7851 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7847 "asmparse.cpp.tab.c" +#line 7857 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7853 "asmparse.cpp.tab.c" +#line 7863 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7859 "asmparse.cpp.tab.c" +#line 7869 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7865 "asmparse.cpp.tab.c" +#line 7875 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7871 "asmparse.cpp.tab.c" +#line 7881 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7876,37 +7886,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7880 "asmparse.cpp.tab.c" +#line 7890 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7886 "asmparse.cpp.tab.c" +#line 7896 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7892 "asmparse.cpp.tab.c" +#line 7902 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7898 "asmparse.cpp.tab.c" +#line 7908 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7904 "asmparse.cpp.tab.c" +#line 7914 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7910 "asmparse.cpp.tab.c" +#line 7920 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7924,420 +7934,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7928 "asmparse.cpp.tab.c" +#line 7938 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7934 "asmparse.cpp.tab.c" +#line 7944 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7940 "asmparse.cpp.tab.c" +#line 7950 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7946 "asmparse.cpp.tab.c" +#line 7956 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7952 "asmparse.cpp.tab.c" +#line 7962 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7958 "asmparse.cpp.tab.c" +#line 7968 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7964 "asmparse.cpp.tab.c" +#line 7974 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7970 "asmparse.cpp.tab.c" +#line 7980 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7976 "asmparse.cpp.tab.c" +#line 7986 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7982 "asmparse.cpp.tab.c" +#line 7992 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7988 "asmparse.cpp.tab.c" +#line 7998 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7994 "asmparse.cpp.tab.c" +#line 8004 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 8000 "asmparse.cpp.tab.c" +#line 8010 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 8006 "asmparse.cpp.tab.c" +#line 8016 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 8012 "asmparse.cpp.tab.c" +#line 8022 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 8018 "asmparse.cpp.tab.c" +#line 8028 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 8024 "asmparse.cpp.tab.c" +#line 8034 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 8030 "asmparse.cpp.tab.c" +#line 8040 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 8036 "asmparse.cpp.tab.c" +#line 8046 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 8042 "asmparse.cpp.tab.c" +#line 8052 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 8048 "asmparse.cpp.tab.c" +#line 8058 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 8055 "asmparse.cpp.tab.c" +#line 8065 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 8062 "asmparse.cpp.tab.c" +#line 8072 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 8069 "asmparse.cpp.tab.c" +#line 8079 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 8075 "asmparse.cpp.tab.c" +#line 8085 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 8081 "asmparse.cpp.tab.c" +#line 8091 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 8087 "asmparse.cpp.tab.c" +#line 8097 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 8093 "asmparse.cpp.tab.c" +#line 8103 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 8099 "asmparse.cpp.tab.c" +#line 8109 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 8105 "asmparse.cpp.tab.c" +#line 8115 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 8111 "asmparse.cpp.tab.c" +#line 8121 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 8117 "asmparse.cpp.tab.c" +#line 8127 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 8123 "asmparse.cpp.tab.c" +#line 8133 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 8129 "asmparse.cpp.tab.c" +#line 8139 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 8135 "asmparse.cpp.tab.c" +#line 8145 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 8141 "asmparse.cpp.tab.c" +#line 8151 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 8147 "asmparse.cpp.tab.c" +#line 8157 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 8153 "asmparse.cpp.tab.c" +#line 8163 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 8159 "asmparse.cpp.tab.c" +#line 8169 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8165 "asmparse.cpp.tab.c" +#line 8175 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8171 "asmparse.cpp.tab.c" +#line 8181 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8177 "asmparse.cpp.tab.c" +#line 8187 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8183 "asmparse.cpp.tab.c" +#line 8193 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8189 "asmparse.cpp.tab.c" +#line 8199 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8195 "asmparse.cpp.tab.c" +#line 8205 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8201 "asmparse.cpp.tab.c" +#line 8211 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8207 "asmparse.cpp.tab.c" +#line 8217 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8213 "asmparse.cpp.tab.c" +#line 8223 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8219 "asmparse.cpp.tab.c" +#line 8229 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8225 "asmparse.cpp.tab.c" +#line 8235 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8231 "asmparse.cpp.tab.c" +#line 8241 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8237 "asmparse.cpp.tab.c" +#line 8247 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8243 "asmparse.cpp.tab.c" +#line 8253 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8249 "asmparse.cpp.tab.c" +#line 8259 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8255 "asmparse.cpp.tab.c" +#line 8265 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8261 "asmparse.cpp.tab.c" +#line 8271 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8267 "asmparse.cpp.tab.c" +#line 8277 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8273 "asmparse.cpp.tab.c" +#line 8283 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8279 "asmparse.cpp.tab.c" +#line 8289 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8285 "asmparse.cpp.tab.c" +#line 8295 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8291 "asmparse.cpp.tab.c" +#line 8301 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8297 "asmparse.cpp.tab.c" +#line 8307 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8303 "asmparse.cpp.tab.c" +#line 8313 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8309 "asmparse.cpp.tab.c" +#line 8319 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8316 "asmparse.cpp.tab.c" +#line 8326 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8322 "asmparse.cpp.tab.c" +#line 8332 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8328 "asmparse.cpp.tab.c" +#line 8338 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8334 "asmparse.cpp.tab.c" +#line 8344 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8341 "asmparse.cpp.tab.c" +#line 8351 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8345,25 +8355,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8349 "asmparse.cpp.tab.c" +#line 8359 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8355 "asmparse.cpp.tab.c" +#line 8365 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8361 "asmparse.cpp.tab.c" +#line 8371 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8367 "asmparse.cpp.tab.c" +#line 8377 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8378,7 +8388,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8382 "asmparse.cpp.tab.c" +#line 8392 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8393,20 +8403,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8397 "asmparse.cpp.tab.c" +#line 8407 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8404 "asmparse.cpp.tab.c" +#line 8414 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8410 "asmparse.cpp.tab.c" +#line 8420 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8417,7 +8427,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8421 "asmparse.cpp.tab.c" +#line 8431 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8427,7 +8437,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8431 "asmparse.cpp.tab.c" +#line 8441 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8438,19 +8448,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8442 "asmparse.cpp.tab.c" +#line 8452 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8448 "asmparse.cpp.tab.c" +#line 8458 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8454 "asmparse.cpp.tab.c" +#line 8464 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8473,96 +8483,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8477 "asmparse.cpp.tab.c" +#line 8487 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8483 "asmparse.cpp.tab.c" +#line 8493 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8489 "asmparse.cpp.tab.c" +#line 8499 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8495 "asmparse.cpp.tab.c" +#line 8505 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8501 "asmparse.cpp.tab.c" +#line 8511 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8508 "asmparse.cpp.tab.c" +#line 8518 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8515 "asmparse.cpp.tab.c" +#line 8525 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8521 "asmparse.cpp.tab.c" +#line 8531 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8527 "asmparse.cpp.tab.c" +#line 8537 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8533 "asmparse.cpp.tab.c" +#line 8543 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8539 "asmparse.cpp.tab.c" +#line 8549 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8545 "asmparse.cpp.tab.c" +#line 8555 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8552 "asmparse.cpp.tab.c" +#line 8562 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8559 "asmparse.cpp.tab.c" +#line 8569 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8566 "asmparse.cpp.tab.c" +#line 8576 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8570,70 +8580,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8574 "asmparse.cpp.tab.c" +#line 8584 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8581 "asmparse.cpp.tab.c" +#line 8591 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8588 "asmparse.cpp.tab.c" +#line 8598 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8594 "asmparse.cpp.tab.c" +#line 8604 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8600 "asmparse.cpp.tab.c" +#line 8610 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8607 "asmparse.cpp.tab.c" +#line 8617 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8613 "asmparse.cpp.tab.c" +#line 8623 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8619 "asmparse.cpp.tab.c" +#line 8629 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8625 "asmparse.cpp.tab.c" +#line 8635 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8631 "asmparse.cpp.tab.c" +#line 8641 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8637 "asmparse.cpp.tab.c" +#line 8647 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8641,25 +8651,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8645 "asmparse.cpp.tab.c" +#line 8655 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8651 "asmparse.cpp.tab.c" +#line 8661 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8657 "asmparse.cpp.tab.c" +#line 8667 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8663 "asmparse.cpp.tab.c" +#line 8673 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8670,7 +8680,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8674 "asmparse.cpp.tab.c" +#line 8684 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8681,7 +8691,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8685 "asmparse.cpp.tab.c" +#line 8695 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8692,7 +8702,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8696 "asmparse.cpp.tab.c" +#line 8706 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8703,7 +8713,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8707 "asmparse.cpp.tab.c" +#line 8717 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8715,7 +8725,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8719 "asmparse.cpp.tab.c" +#line 8729 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8727,43 +8737,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8731 "asmparse.cpp.tab.c" +#line 8741 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8737 "asmparse.cpp.tab.c" +#line 8747 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8743 "asmparse.cpp.tab.c" +#line 8753 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8749 "asmparse.cpp.tab.c" +#line 8759 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8755 "asmparse.cpp.tab.c" +#line 8765 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8761 "asmparse.cpp.tab.c" +#line 8771 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8767 "asmparse.cpp.tab.c" +#line 8777 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8771,227 +8781,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8775 "asmparse.cpp.tab.c" +#line 8785 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8782 "asmparse.cpp.tab.c" +#line 8792 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8789 "asmparse.cpp.tab.c" +#line 8799 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8796 "asmparse.cpp.tab.c" +#line 8806 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8803 "asmparse.cpp.tab.c" +#line 8813 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8810 "asmparse.cpp.tab.c" +#line 8820 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8817 "asmparse.cpp.tab.c" +#line 8827 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8824 "asmparse.cpp.tab.c" +#line 8834 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8831 "asmparse.cpp.tab.c" +#line 8841 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8838 "asmparse.cpp.tab.c" +#line 8848 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8845 "asmparse.cpp.tab.c" +#line 8855 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8852 "asmparse.cpp.tab.c" +#line 8862 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8859 "asmparse.cpp.tab.c" +#line 8869 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8866 "asmparse.cpp.tab.c" +#line 8876 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8873 "asmparse.cpp.tab.c" +#line 8883 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8880 "asmparse.cpp.tab.c" +#line 8890 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8887 "asmparse.cpp.tab.c" +#line 8897 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8894 "asmparse.cpp.tab.c" +#line 8904 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8901 "asmparse.cpp.tab.c" +#line 8911 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8907 "asmparse.cpp.tab.c" +#line 8917 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8913 "asmparse.cpp.tab.c" +#line 8923 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8919 "asmparse.cpp.tab.c" +#line 8929 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8925 "asmparse.cpp.tab.c" +#line 8935 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8931 "asmparse.cpp.tab.c" +#line 8941 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8937 "asmparse.cpp.tab.c" +#line 8947 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8943 "asmparse.cpp.tab.c" +#line 8953 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8950 "asmparse.cpp.tab.c" +#line 8960 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8956 "asmparse.cpp.tab.c" +#line 8966 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8962 "asmparse.cpp.tab.c" +#line 8972 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8969 "asmparse.cpp.tab.c" +#line 8979 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8976 "asmparse.cpp.tab.c" +#line 8986 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8983 "asmparse.cpp.tab.c" +#line 8993 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8989 "asmparse.cpp.tab.c" +#line 8999 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8995 "asmparse.cpp.tab.c" +#line 9005 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -8999,7 +9009,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9003 "asmparse.cpp.tab.c" +#line 9013 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -9007,7 +9017,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9011 "asmparse.cpp.tab.c" +#line 9021 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -9015,7 +9025,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9019 "asmparse.cpp.tab.c" +#line 9029 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -9023,7 +9033,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9027 "asmparse.cpp.tab.c" +#line 9037 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -9031,7 +9041,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9035 "asmparse.cpp.tab.c" +#line 9045 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -9039,7 +9049,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9043 "asmparse.cpp.tab.c" +#line 9053 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -9047,7 +9057,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9051 "asmparse.cpp.tab.c" +#line 9061 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -9055,7 +9065,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9059 "asmparse.cpp.tab.c" +#line 9069 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -9063,7 +9073,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9067 "asmparse.cpp.tab.c" +#line 9077 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -9071,7 +9081,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9075 "asmparse.cpp.tab.c" +#line 9085 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -9079,7 +9089,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9083 "asmparse.cpp.tab.c" +#line 9093 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -9087,7 +9097,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9091 "asmparse.cpp.tab.c" +#line 9101 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -9095,7 +9105,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9099 "asmparse.cpp.tab.c" +#line 9109 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -9103,7 +9113,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9107 "asmparse.cpp.tab.c" +#line 9117 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -9111,7 +9121,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9115 "asmparse.cpp.tab.c" +#line 9125 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -9119,7 +9129,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9123 "asmparse.cpp.tab.c" +#line 9133 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -9127,7 +9137,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9131 "asmparse.cpp.tab.c" +#line 9141 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -9135,7 +9145,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9139 "asmparse.cpp.tab.c" +#line 9149 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -9143,166 +9153,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9147 "asmparse.cpp.tab.c" +#line 9157 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9153 "asmparse.cpp.tab.c" +#line 9163 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 9160 "asmparse.cpp.tab.c" +#line 9170 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9167 "asmparse.cpp.tab.c" +#line 9177 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9173 "asmparse.cpp.tab.c" +#line 9183 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9180 "asmparse.cpp.tab.c" +#line 9190 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9187 "asmparse.cpp.tab.c" +#line 9197 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9193 "asmparse.cpp.tab.c" +#line 9203 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9200 "asmparse.cpp.tab.c" +#line 9210 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9206 "asmparse.cpp.tab.c" +#line 9216 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9212 "asmparse.cpp.tab.c" +#line 9222 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9218 "asmparse.cpp.tab.c" +#line 9228 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9224 "asmparse.cpp.tab.c" +#line 9234 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9230 "asmparse.cpp.tab.c" +#line 9240 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9236 "asmparse.cpp.tab.c" +#line 9246 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9242 "asmparse.cpp.tab.c" +#line 9252 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9249 "asmparse.cpp.tab.c" +#line 9259 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9255 "asmparse.cpp.tab.c" +#line 9265 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9261 "asmparse.cpp.tab.c" +#line 9271 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9268 "asmparse.cpp.tab.c" +#line 9278 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9274 "asmparse.cpp.tab.c" +#line 9284 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9280 "asmparse.cpp.tab.c" +#line 9290 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9287 "asmparse.cpp.tab.c" +#line 9297 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9294 "asmparse.cpp.tab.c" +#line 9304 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9300 "asmparse.cpp.tab.c" +#line 9310 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9306 "asmparse.cpp.tab.c" +#line 9316 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9311,49 +9321,49 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9315 "asmparse.cpp.tab.c" +#line 9325 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9321 "asmparse.cpp.tab.c" +#line 9331 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9327 "asmparse.cpp.tab.c" +#line 9337 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9333 "asmparse.cpp.tab.c" +#line 9343 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9339 "asmparse.cpp.tab.c" +#line 9349 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9345 "asmparse.cpp.tab.c" +#line 9355 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9351 "asmparse.cpp.tab.c" +#line 9361 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9357 "asmparse.cpp.tab.c" +#line 9367 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) @@ -9364,107 +9374,119 @@ case 503: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9368 "asmparse.cpp.tab.c" +#line 9378 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9374 "asmparse.cpp.tab.c" +#line 9384 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9380 "asmparse.cpp.tab.c" +#line 9390 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9386 "asmparse.cpp.tab.c" +#line 9396 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9392 "asmparse.cpp.tab.c" +#line 9402 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9398 "asmparse.cpp.tab.c" +#line 9408 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9404 "asmparse.cpp.tab.c" +#line 9414 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1375 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9410 "asmparse.cpp.tab.c" +#line 9420 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9416 "asmparse.cpp.tab.c" +#line 9426 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9422 "asmparse.cpp.tab.c" +#line 9432 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9428 "asmparse.cpp.tab.c" +#line 9438 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) #line 1382 "asmparse.y" -{ PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } -#line 9434 "asmparse.cpp.tab.c" +{ PASM->EmitInstrTypeVar(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].int32); } +#line 9444 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) #line 1383 "asmparse.y" -{ PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } -#line 9440 "asmparse.cpp.tab.c" +{ PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } +#line 9450 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) #line 1384 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9446 "asmparse.cpp.tab.c" +{ PASM->EmitInstrTypeVar(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].int32); } +#line 9456 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) #line 1385 "asmparse.y" -{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9452 "asmparse.cpp.tab.c" +{ PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } +#line 9462 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) #line 1386 "asmparse.y" -{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9458 "asmparse.cpp.tab.c" +{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9468 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) #line 1387 "asmparse.y" -{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9464 "asmparse.cpp.tab.c" +{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } +#line 9474 "asmparse.cpp.tab.c" break; case 520: if (!yytrial) #line 1388 "asmparse.y" +{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} +#line 9480 "asmparse.cpp.tab.c" +break; +case 521: + if (!yytrial) +#line 1389 "asmparse.y" +{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } +#line 9486 "asmparse.cpp.tab.c" +break; +case 522: + if (!yytrial) +#line 1390 "asmparse.y" { unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -9474,34 +9496,34 @@ case 520: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9478 "asmparse.cpp.tab.c" +#line 9500 "asmparse.cpp.tab.c" break; -case 521: +case 523: if (!yytrial) -#line 1397 "asmparse.y" +#line 1399 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9484 "asmparse.cpp.tab.c" +#line 9506 "asmparse.cpp.tab.c" break; -case 522: +case 524: if (!yytrial) -#line 1398 "asmparse.y" +#line 1400 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9490 "asmparse.cpp.tab.c" +#line 9512 "asmparse.cpp.tab.c" break; -case 523: +case 525: if (!yytrial) -#line 1400 "asmparse.y" +#line 1402 "asmparse.y" { PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9501 "asmparse.cpp.tab.c" +#line 9523 "asmparse.cpp.tab.c" break; -case 524: +case 526: if (!yytrial) -#line 1407 "asmparse.y" +#line 1409 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); @@ -9509,11 +9531,11 @@ case 524: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9513 "asmparse.cpp.tab.c" +#line 9535 "asmparse.cpp.tab.c" break; -case 525: +case 527: if (!yytrial) -#line 1415 "asmparse.y" +#line 1417 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); @@ -9521,1073 +9543,1073 @@ case 525: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9525 "asmparse.cpp.tab.c" +#line 9547 "asmparse.cpp.tab.c" break; -case 526: +case 528: if (!yytrial) -#line 1422 "asmparse.y" +#line 1424 "asmparse.y" { mdToken mr = yyvsp[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9536 "asmparse.cpp.tab.c" +#line 9558 "asmparse.cpp.tab.c" break; -case 527: +case 529: if (!yytrial) -#line 1428 "asmparse.y" +#line 1430 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9547 "asmparse.cpp.tab.c" +#line 9569 "asmparse.cpp.tab.c" break; -case 528: +case 530: if (!yytrial) -#line 1434 "asmparse.y" +#line 1436 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9558 "asmparse.cpp.tab.c" +#line 9580 "asmparse.cpp.tab.c" break; -case 529: +case 531: if (!yytrial) -#line 1440 "asmparse.y" +#line 1442 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9567 "asmparse.cpp.tab.c" +#line 9589 "asmparse.cpp.tab.c" break; -case 530: +case 532: if (!yytrial) -#line 1444 "asmparse.y" +#line 1446 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9573 "asmparse.cpp.tab.c" +#line 9595 "asmparse.cpp.tab.c" break; -case 531: +case 533: if (!yytrial) -#line 1446 "asmparse.y" +#line 1448 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9579 "asmparse.cpp.tab.c" +#line 9601 "asmparse.cpp.tab.c" break; -case 532: +case 534: if (!yytrial) -#line 1448 "asmparse.y" +#line 1450 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9585 "asmparse.cpp.tab.c" +#line 9607 "asmparse.cpp.tab.c" break; -case 533: +case 535: if (!yytrial) -#line 1450 "asmparse.y" +#line 1452 "asmparse.y" { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9593 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp.tab.c" break; -case 534: +case 536: if (!yytrial) -#line 1454 "asmparse.y" +#line 1456 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9603 "asmparse.cpp.tab.c" -break; -case 535: - if (!yytrial) -#line 1459 "asmparse.y" -{ PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9609 "asmparse.cpp.tab.c" -break; -case 536: - if (!yytrial) -#line 1462 "asmparse.y" -{ yyval.labels = 0; } -#line 9615 "asmparse.cpp.tab.c" +#line 9625 "asmparse.cpp.tab.c" break; case 537: if (!yytrial) -#line 1463 "asmparse.y" -{ yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9621 "asmparse.cpp.tab.c" +#line 1461 "asmparse.y" +{ PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } +#line 9631 "asmparse.cpp.tab.c" break; case 538: if (!yytrial) #line 1464 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9627 "asmparse.cpp.tab.c" +{ yyval.labels = 0; } +#line 9637 "asmparse.cpp.tab.c" break; case 539: if (!yytrial) #line 1465 "asmparse.y" -{ yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9633 "asmparse.cpp.tab.c" +{ yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } +#line 9643 "asmparse.cpp.tab.c" break; case 540: if (!yytrial) #line 1466 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9639 "asmparse.cpp.tab.c" +{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } +#line 9649 "asmparse.cpp.tab.c" break; case 541: if (!yytrial) -#line 1470 "asmparse.y" -{ yyval.binstr = NULL; } -#line 9645 "asmparse.cpp.tab.c" +#line 1467 "asmparse.y" +{ yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } +#line 9655 "asmparse.cpp.tab.c" break; case 542: if (!yytrial) -#line 1471 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 9651 "asmparse.cpp.tab.c" +#line 1468 "asmparse.y" +{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } +#line 9661 "asmparse.cpp.tab.c" break; case 543: if (!yytrial) -#line 1474 "asmparse.y" +#line 1472 "asmparse.y" { yyval.binstr = NULL; } -#line 9657 "asmparse.cpp.tab.c" +#line 9667 "asmparse.cpp.tab.c" break; case 544: if (!yytrial) -#line 1475 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9663 "asmparse.cpp.tab.c" +#line 1473 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; } +#line 9673 "asmparse.cpp.tab.c" break; case 545: if (!yytrial) -#line 1478 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9669 "asmparse.cpp.tab.c" +#line 1476 "asmparse.y" +{ yyval.binstr = NULL; } +#line 9679 "asmparse.cpp.tab.c" break; case 546: if (!yytrial) -#line 1479 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9675 "asmparse.cpp.tab.c" +#line 1477 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9685 "asmparse.cpp.tab.c" break; case 547: if (!yytrial) -#line 1483 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 9681 "asmparse.cpp.tab.c" +#line 1480 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9691 "asmparse.cpp.tab.c" break; case 548: if (!yytrial) -#line 1484 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr;} -#line 9687 "asmparse.cpp.tab.c" +#line 1481 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 9697 "asmparse.cpp.tab.c" break; case 549: if (!yytrial) -#line 1487 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9693 "asmparse.cpp.tab.c" +#line 1485 "asmparse.y" +{ yyval.binstr = new BinStr(); } +#line 9703 "asmparse.cpp.tab.c" break; case 550: if (!yytrial) -#line 1488 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9699 "asmparse.cpp.tab.c" +#line 1486 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr;} +#line 9709 "asmparse.cpp.tab.c" break; case 551: if (!yytrial) -#line 1491 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9705 "asmparse.cpp.tab.c" +#line 1489 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 9715 "asmparse.cpp.tab.c" break; case 552: if (!yytrial) -#line 1492 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9711 "asmparse.cpp.tab.c" +#line 1490 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 9721 "asmparse.cpp.tab.c" break; case 553: if (!yytrial) #line 1493 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9717 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } +#line 9727 "asmparse.cpp.tab.c" break; case 554: if (!yytrial) -#line 1497 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9723 "asmparse.cpp.tab.c" +#line 1494 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } +#line 9733 "asmparse.cpp.tab.c" break; case 555: if (!yytrial) -#line 1498 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9729 "asmparse.cpp.tab.c" +#line 1495 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} +#line 9739 "asmparse.cpp.tab.c" break; case 556: if (!yytrial) #line 1499 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9735 "asmparse.cpp.tab.c" +{ yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} +#line 9745 "asmparse.cpp.tab.c" break; case 557: if (!yytrial) #line 1500 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9741 "asmparse.cpp.tab.c" +{ yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } +#line 9751 "asmparse.cpp.tab.c" break; case 558: if (!yytrial) #line 1501 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9747 "asmparse.cpp.tab.c" +{ yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } +#line 9757 "asmparse.cpp.tab.c" break; case 559: if (!yytrial) #line 1502 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 9753 "asmparse.cpp.tab.c" +{ yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} +#line 9763 "asmparse.cpp.tab.c" break; case 560: if (!yytrial) #line 1503 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9759 "asmparse.cpp.tab.c" +{ yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } +#line 9769 "asmparse.cpp.tab.c" break; case 561: if (!yytrial) #line 1504 "asmparse.y" +{ yyval.token = yyvsp[0].token; } +#line 9775 "asmparse.cpp.tab.c" +break; +case 562: + if (!yytrial) +#line 1505 "asmparse.y" +{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } +#line 9781 "asmparse.cpp.tab.c" +break; +case 563: + if (!yytrial) +#line 1506 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9767 "asmparse.cpp.tab.c" +#line 9789 "asmparse.cpp.tab.c" break; -case 562: +case 564: if (!yytrial) -#line 1507 "asmparse.y" +#line 1509 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9778 "asmparse.cpp.tab.c" +#line 9800 "asmparse.cpp.tab.c" break; -case 563: +case 565: if (!yytrial) -#line 1513 "asmparse.y" +#line 1515 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9788 "asmparse.cpp.tab.c" +#line 9810 "asmparse.cpp.tab.c" break; -case 564: +case 566: if (!yytrial) -#line 1520 "asmparse.y" +#line 1522 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9794 "asmparse.cpp.tab.c" +#line 9816 "asmparse.cpp.tab.c" break; -case 565: +case 567: if (!yytrial) -#line 1521 "asmparse.y" +#line 1523 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9800 "asmparse.cpp.tab.c" +#line 9822 "asmparse.cpp.tab.c" break; -case 566: +case 568: if (!yytrial) -#line 1524 "asmparse.y" +#line 1526 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9806 "asmparse.cpp.tab.c" +#line 9828 "asmparse.cpp.tab.c" break; -case 567: +case 569: if (!yytrial) -#line 1525 "asmparse.y" +#line 1527 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9812 "asmparse.cpp.tab.c" +#line 9834 "asmparse.cpp.tab.c" break; -case 568: +case 570: if (!yytrial) -#line 1526 "asmparse.y" +#line 1528 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9818 "asmparse.cpp.tab.c" +#line 9840 "asmparse.cpp.tab.c" break; -case 569: +case 571: if (!yytrial) -#line 1527 "asmparse.y" +#line 1529 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9824 "asmparse.cpp.tab.c" +#line 9846 "asmparse.cpp.tab.c" break; -case 570: +case 572: if (!yytrial) -#line 1531 "asmparse.y" +#line 1533 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9830 "asmparse.cpp.tab.c" +#line 9852 "asmparse.cpp.tab.c" break; -case 571: +case 573: if (!yytrial) -#line 1533 "asmparse.y" +#line 1535 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9841 "asmparse.cpp.tab.c" +#line 9863 "asmparse.cpp.tab.c" break; -case 572: +case 574: if (!yytrial) -#line 1540 "asmparse.y" +#line 1542 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9851 "asmparse.cpp.tab.c" +#line 9873 "asmparse.cpp.tab.c" break; -case 573: +case 575: if (!yytrial) -#line 1545 "asmparse.y" +#line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9858 "asmparse.cpp.tab.c" +#line 9880 "asmparse.cpp.tab.c" break; -case 574: +case 576: if (!yytrial) -#line 1548 "asmparse.y" +#line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9865 "asmparse.cpp.tab.c" +#line 9887 "asmparse.cpp.tab.c" break; -case 575: +case 577: if (!yytrial) -#line 1550 "asmparse.y" +#line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9872 "asmparse.cpp.tab.c" +#line 9894 "asmparse.cpp.tab.c" break; -case 576: +case 578: if (!yytrial) -#line 1552 "asmparse.y" +#line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9878 "asmparse.cpp.tab.c" +#line 9900 "asmparse.cpp.tab.c" break; -case 577: +case 579: if (!yytrial) -#line 1553 "asmparse.y" +#line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9885 "asmparse.cpp.tab.c" +#line 9907 "asmparse.cpp.tab.c" break; -case 578: +case 580: if (!yytrial) -#line 1555 "asmparse.y" +#line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9892 "asmparse.cpp.tab.c" -break; -case 579: - if (!yytrial) -#line 1557 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9898 "asmparse.cpp.tab.c" -break; -case 580: - if (!yytrial) -#line 1558 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9904 "asmparse.cpp.tab.c" +#line 9914 "asmparse.cpp.tab.c" break; case 581: if (!yytrial) #line 1559 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9910 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } +#line 9920 "asmparse.cpp.tab.c" break; case 582: if (!yytrial) #line 1560 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9916 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } +#line 9926 "asmparse.cpp.tab.c" break; case 583: if (!yytrial) #line 1561 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9922 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } +#line 9932 "asmparse.cpp.tab.c" break; case 584: if (!yytrial) #line 1562 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9928 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } +#line 9938 "asmparse.cpp.tab.c" break; case 585: if (!yytrial) #line 1563 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9934 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } +#line 9944 "asmparse.cpp.tab.c" break; case 586: if (!yytrial) #line 1564 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9940 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } +#line 9950 "asmparse.cpp.tab.c" break; case 587: if (!yytrial) #line 1565 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9946 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } +#line 9956 "asmparse.cpp.tab.c" break; case 588: if (!yytrial) #line 1566 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9952 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } +#line 9962 "asmparse.cpp.tab.c" break; case 589: if (!yytrial) #line 1567 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9958 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 9968 "asmparse.cpp.tab.c" break; case 590: if (!yytrial) #line 1568 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9964 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 9974 "asmparse.cpp.tab.c" break; case 591: if (!yytrial) #line 1569 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9970 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 9980 "asmparse.cpp.tab.c" break; case 592: if (!yytrial) #line 1570 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9976 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 9986 "asmparse.cpp.tab.c" break; case 593: if (!yytrial) #line 1571 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9982 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 9992 "asmparse.cpp.tab.c" break; case 594: if (!yytrial) #line 1572 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9988 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 9998 "asmparse.cpp.tab.c" break; case 595: if (!yytrial) #line 1573 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); - PASM->report->warn("Deprecated native type '*'\n"); } -#line 9995 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 10004 "asmparse.cpp.tab.c" break; case 596: if (!yytrial) +#line 1574 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 10010 "asmparse.cpp.tab.c" +break; +case 597: + if (!yytrial) #line 1575 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); + PASM->report->warn("Deprecated native type '*'\n"); } +#line 10017 "asmparse.cpp.tab.c" +break; +case 598: + if (!yytrial) +#line 1577 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10002 "asmparse.cpp.tab.c" +#line 10024 "asmparse.cpp.tab.c" break; -case 597: +case 599: if (!yytrial) -#line 1577 "asmparse.y" +#line 1579 "asmparse.y" { yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10012 "asmparse.cpp.tab.c" +#line 10034 "asmparse.cpp.tab.c" break; -case 598: +case 600: if (!yytrial) -#line 1582 "asmparse.y" +#line 1584 "asmparse.y" { yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10022 "asmparse.cpp.tab.c" +#line 10044 "asmparse.cpp.tab.c" break; -case 599: +case 601: if (!yytrial) -#line 1587 "asmparse.y" +#line 1589 "asmparse.y" { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 10030 "asmparse.cpp.tab.c" +#line 10052 "asmparse.cpp.tab.c" break; -case 600: +case 602: if (!yytrial) -#line 1590 "asmparse.y" +#line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10037 "asmparse.cpp.tab.c" +#line 10059 "asmparse.cpp.tab.c" break; -case 601: +case 603: if (!yytrial) -#line 1592 "asmparse.y" +#line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10044 "asmparse.cpp.tab.c" +#line 10066 "asmparse.cpp.tab.c" break; -case 602: +case 604: if (!yytrial) -#line 1594 "asmparse.y" +#line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10050 "asmparse.cpp.tab.c" +#line 10072 "asmparse.cpp.tab.c" break; -case 603: +case 605: if (!yytrial) -#line 1595 "asmparse.y" +#line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10056 "asmparse.cpp.tab.c" +#line 10078 "asmparse.cpp.tab.c" break; -case 604: +case 606: if (!yytrial) -#line 1596 "asmparse.y" +#line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10062 "asmparse.cpp.tab.c" +#line 10084 "asmparse.cpp.tab.c" break; -case 605: +case 607: if (!yytrial) -#line 1597 "asmparse.y" +#line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10068 "asmparse.cpp.tab.c" +#line 10090 "asmparse.cpp.tab.c" break; -case 606: +case 608: if (!yytrial) -#line 1598 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10075 "asmparse.cpp.tab.c" +#line 10097 "asmparse.cpp.tab.c" break; -case 607: +case 609: if (!yytrial) -#line 1600 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10082 "asmparse.cpp.tab.c" +#line 10104 "asmparse.cpp.tab.c" break; -case 608: +case 610: if (!yytrial) -#line 1602 "asmparse.y" +#line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10089 "asmparse.cpp.tab.c" +#line 10111 "asmparse.cpp.tab.c" break; -case 609: +case 611: if (!yytrial) -#line 1604 "asmparse.y" +#line 1606 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 10095 "asmparse.cpp.tab.c" +#line 10117 "asmparse.cpp.tab.c" break; -case 610: +case 612: if (!yytrial) -#line 1605 "asmparse.y" +#line 1607 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10102 "asmparse.cpp.tab.c" +#line 10124 "asmparse.cpp.tab.c" break; -case 611: +case 613: if (!yytrial) -#line 1607 "asmparse.y" +#line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 10110 "asmparse.cpp.tab.c" +#line 10132 "asmparse.cpp.tab.c" break; -case 612: +case 614: if (!yytrial) -#line 1610 "asmparse.y" +#line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 10118 "asmparse.cpp.tab.c" -break; -case 613: - if (!yytrial) -#line 1614 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 10124 "asmparse.cpp.tab.c" -break; -case 614: - if (!yytrial) -#line 1615 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10130 "asmparse.cpp.tab.c" +#line 10140 "asmparse.cpp.tab.c" break; case 615: if (!yytrial) #line 1616 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10136 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } +#line 10146 "asmparse.cpp.tab.c" break; case 616: if (!yytrial) #line 1617 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); - PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 10143 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 10152 "asmparse.cpp.tab.c" break; case 617: if (!yytrial) -#line 1619 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 10149 "asmparse.cpp.tab.c" +#line 1618 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 10158 "asmparse.cpp.tab.c" break; case 618: if (!yytrial) -#line 1620 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 10155 "asmparse.cpp.tab.c" +#line 1619 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); + PASM->report->warn("Deprecated native type 'nested struct'\n"); } +#line 10165 "asmparse.cpp.tab.c" break; case 619: if (!yytrial) #line 1621 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 10161 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } +#line 10171 "asmparse.cpp.tab.c" break; case 620: if (!yytrial) #line 1622 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 10167 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } +#line 10177 "asmparse.cpp.tab.c" break; case 621: if (!yytrial) #line 1623 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 10173 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } +#line 10183 "asmparse.cpp.tab.c" break; case 622: if (!yytrial) #line 1624 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 10179 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } +#line 10189 "asmparse.cpp.tab.c" break; case 623: if (!yytrial) #line 1625 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10185 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } +#line 10195 "asmparse.cpp.tab.c" break; case 624: if (!yytrial) #line 1626 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10191 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } +#line 10201 "asmparse.cpp.tab.c" break; case 625: if (!yytrial) -#line 1629 "asmparse.y" -{ yyval.int32 = -1; } -#line 10197 "asmparse.cpp.tab.c" +#line 1627 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } +#line 10207 "asmparse.cpp.tab.c" break; case 626: if (!yytrial) -#line 1630 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32; } -#line 10203 "asmparse.cpp.tab.c" +#line 1628 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } +#line 10213 "asmparse.cpp.tab.c" break; case 627: if (!yytrial) -#line 1633 "asmparse.y" -{ yyval.int32 = VT_EMPTY; } -#line 10209 "asmparse.cpp.tab.c" +#line 1631 "asmparse.y" +{ yyval.int32 = -1; } +#line 10219 "asmparse.cpp.tab.c" break; case 628: if (!yytrial) -#line 1634 "asmparse.y" -{ yyval.int32 = VT_NULL; } -#line 10215 "asmparse.cpp.tab.c" +#line 1632 "asmparse.y" +{ yyval.int32 = yyvsp[-1].int32; } +#line 10225 "asmparse.cpp.tab.c" break; case 629: if (!yytrial) #line 1635 "asmparse.y" -{ yyval.int32 = VT_VARIANT; } -#line 10221 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_EMPTY; } +#line 10231 "asmparse.cpp.tab.c" break; case 630: if (!yytrial) #line 1636 "asmparse.y" -{ yyval.int32 = VT_CY; } -#line 10227 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_NULL; } +#line 10237 "asmparse.cpp.tab.c" break; case 631: if (!yytrial) #line 1637 "asmparse.y" -{ yyval.int32 = VT_VOID; } -#line 10233 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_VARIANT; } +#line 10243 "asmparse.cpp.tab.c" break; case 632: if (!yytrial) #line 1638 "asmparse.y" -{ yyval.int32 = VT_BOOL; } -#line 10239 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_CY; } +#line 10249 "asmparse.cpp.tab.c" break; case 633: if (!yytrial) #line 1639 "asmparse.y" -{ yyval.int32 = VT_I1; } -#line 10245 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_VOID; } +#line 10255 "asmparse.cpp.tab.c" break; case 634: if (!yytrial) #line 1640 "asmparse.y" -{ yyval.int32 = VT_I2; } -#line 10251 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_BOOL; } +#line 10261 "asmparse.cpp.tab.c" break; case 635: if (!yytrial) #line 1641 "asmparse.y" -{ yyval.int32 = VT_I4; } -#line 10257 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_I1; } +#line 10267 "asmparse.cpp.tab.c" break; case 636: if (!yytrial) #line 1642 "asmparse.y" -{ yyval.int32 = VT_I8; } -#line 10263 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_I2; } +#line 10273 "asmparse.cpp.tab.c" break; case 637: if (!yytrial) #line 1643 "asmparse.y" -{ yyval.int32 = VT_R4; } -#line 10269 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_I4; } +#line 10279 "asmparse.cpp.tab.c" break; case 638: if (!yytrial) #line 1644 "asmparse.y" -{ yyval.int32 = VT_R8; } -#line 10275 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_I8; } +#line 10285 "asmparse.cpp.tab.c" break; case 639: if (!yytrial) #line 1645 "asmparse.y" -{ yyval.int32 = VT_UI1; } -#line 10281 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_R4; } +#line 10291 "asmparse.cpp.tab.c" break; case 640: if (!yytrial) #line 1646 "asmparse.y" -{ yyval.int32 = VT_UI2; } -#line 10287 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_R8; } +#line 10297 "asmparse.cpp.tab.c" break; case 641: if (!yytrial) #line 1647 "asmparse.y" -{ yyval.int32 = VT_UI4; } -#line 10293 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI1; } +#line 10303 "asmparse.cpp.tab.c" break; case 642: if (!yytrial) #line 1648 "asmparse.y" -{ yyval.int32 = VT_UI8; } -#line 10299 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI2; } +#line 10309 "asmparse.cpp.tab.c" break; case 643: if (!yytrial) #line 1649 "asmparse.y" -{ yyval.int32 = VT_UI1; } -#line 10305 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI4; } +#line 10315 "asmparse.cpp.tab.c" break; case 644: if (!yytrial) #line 1650 "asmparse.y" -{ yyval.int32 = VT_UI2; } -#line 10311 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI8; } +#line 10321 "asmparse.cpp.tab.c" break; case 645: if (!yytrial) #line 1651 "asmparse.y" -{ yyval.int32 = VT_UI4; } -#line 10317 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI1; } +#line 10327 "asmparse.cpp.tab.c" break; case 646: if (!yytrial) #line 1652 "asmparse.y" -{ yyval.int32 = VT_UI8; } -#line 10323 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI2; } +#line 10333 "asmparse.cpp.tab.c" break; case 647: if (!yytrial) #line 1653 "asmparse.y" -{ yyval.int32 = VT_PTR; } -#line 10329 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI4; } +#line 10339 "asmparse.cpp.tab.c" break; case 648: if (!yytrial) #line 1654 "asmparse.y" -{ yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10335 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UI8; } +#line 10345 "asmparse.cpp.tab.c" break; case 649: if (!yytrial) #line 1655 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10341 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_PTR; } +#line 10351 "asmparse.cpp.tab.c" break; case 650: if (!yytrial) #line 1656 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10347 "asmparse.cpp.tab.c" +{ yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } +#line 10357 "asmparse.cpp.tab.c" break; case 651: if (!yytrial) #line 1657 "asmparse.y" -{ yyval.int32 = VT_DECIMAL; } -#line 10353 "asmparse.cpp.tab.c" +{ yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } +#line 10363 "asmparse.cpp.tab.c" break; case 652: if (!yytrial) #line 1658 "asmparse.y" -{ yyval.int32 = VT_DATE; } -#line 10359 "asmparse.cpp.tab.c" +{ yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } +#line 10369 "asmparse.cpp.tab.c" break; case 653: if (!yytrial) #line 1659 "asmparse.y" -{ yyval.int32 = VT_BSTR; } -#line 10365 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_DECIMAL; } +#line 10375 "asmparse.cpp.tab.c" break; case 654: if (!yytrial) #line 1660 "asmparse.y" -{ yyval.int32 = VT_LPSTR; } -#line 10371 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_DATE; } +#line 10381 "asmparse.cpp.tab.c" break; case 655: if (!yytrial) #line 1661 "asmparse.y" -{ yyval.int32 = VT_LPWSTR; } -#line 10377 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_BSTR; } +#line 10387 "asmparse.cpp.tab.c" break; case 656: if (!yytrial) #line 1662 "asmparse.y" -{ yyval.int32 = VT_UNKNOWN; } -#line 10383 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_LPSTR; } +#line 10393 "asmparse.cpp.tab.c" break; case 657: if (!yytrial) #line 1663 "asmparse.y" -{ yyval.int32 = VT_DISPATCH; } -#line 10389 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_LPWSTR; } +#line 10399 "asmparse.cpp.tab.c" break; case 658: if (!yytrial) #line 1664 "asmparse.y" -{ yyval.int32 = VT_SAFEARRAY; } -#line 10395 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UNKNOWN; } +#line 10405 "asmparse.cpp.tab.c" break; case 659: if (!yytrial) #line 1665 "asmparse.y" -{ yyval.int32 = VT_INT; } -#line 10401 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_DISPATCH; } +#line 10411 "asmparse.cpp.tab.c" break; case 660: if (!yytrial) #line 1666 "asmparse.y" -{ yyval.int32 = VT_UINT; } -#line 10407 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_SAFEARRAY; } +#line 10417 "asmparse.cpp.tab.c" break; case 661: if (!yytrial) #line 1667 "asmparse.y" -{ yyval.int32 = VT_UINT; } -#line 10413 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_INT; } +#line 10423 "asmparse.cpp.tab.c" break; case 662: if (!yytrial) #line 1668 "asmparse.y" -{ yyval.int32 = VT_ERROR; } -#line 10419 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UINT; } +#line 10429 "asmparse.cpp.tab.c" break; case 663: if (!yytrial) #line 1669 "asmparse.y" -{ yyval.int32 = VT_HRESULT; } -#line 10425 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_UINT; } +#line 10435 "asmparse.cpp.tab.c" break; case 664: if (!yytrial) #line 1670 "asmparse.y" -{ yyval.int32 = VT_CARRAY; } -#line 10431 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_ERROR; } +#line 10441 "asmparse.cpp.tab.c" break; case 665: if (!yytrial) #line 1671 "asmparse.y" -{ yyval.int32 = VT_USERDEFINED; } -#line 10437 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_HRESULT; } +#line 10447 "asmparse.cpp.tab.c" break; case 666: if (!yytrial) #line 1672 "asmparse.y" -{ yyval.int32 = VT_RECORD; } -#line 10443 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_CARRAY; } +#line 10453 "asmparse.cpp.tab.c" break; case 667: if (!yytrial) #line 1673 "asmparse.y" -{ yyval.int32 = VT_FILETIME; } -#line 10449 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_USERDEFINED; } +#line 10459 "asmparse.cpp.tab.c" break; case 668: if (!yytrial) #line 1674 "asmparse.y" -{ yyval.int32 = VT_BLOB; } -#line 10455 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_RECORD; } +#line 10465 "asmparse.cpp.tab.c" break; case 669: if (!yytrial) #line 1675 "asmparse.y" -{ yyval.int32 = VT_STREAM; } -#line 10461 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_FILETIME; } +#line 10471 "asmparse.cpp.tab.c" break; case 670: if (!yytrial) #line 1676 "asmparse.y" -{ yyval.int32 = VT_STORAGE; } -#line 10467 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_BLOB; } +#line 10477 "asmparse.cpp.tab.c" break; case 671: if (!yytrial) #line 1677 "asmparse.y" -{ yyval.int32 = VT_STREAMED_OBJECT; } -#line 10473 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_STREAM; } +#line 10483 "asmparse.cpp.tab.c" break; case 672: if (!yytrial) #line 1678 "asmparse.y" -{ yyval.int32 = VT_STORED_OBJECT; } -#line 10479 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_STORAGE; } +#line 10489 "asmparse.cpp.tab.c" break; case 673: if (!yytrial) #line 1679 "asmparse.y" -{ yyval.int32 = VT_BLOB_OBJECT; } -#line 10485 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_STREAMED_OBJECT; } +#line 10495 "asmparse.cpp.tab.c" break; case 674: if (!yytrial) #line 1680 "asmparse.y" -{ yyval.int32 = VT_CF; } -#line 10491 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_STORED_OBJECT; } +#line 10501 "asmparse.cpp.tab.c" break; case 675: if (!yytrial) #line 1681 "asmparse.y" -{ yyval.int32 = VT_CLSID; } -#line 10497 "asmparse.cpp.tab.c" +{ yyval.int32 = VT_BLOB_OBJECT; } +#line 10507 "asmparse.cpp.tab.c" break; case 676: if (!yytrial) -#line 1685 "asmparse.y" -{ if(yyvsp[0].token == PASM->m_tkSysString) - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } - else if(yyvsp[0].token == PASM->m_tkSysObject) - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } - else - yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10508 "asmparse.cpp.tab.c" +#line 1682 "asmparse.y" +{ yyval.int32 = VT_CF; } +#line 10513 "asmparse.cpp.tab.c" break; case 677: if (!yytrial) -#line 1691 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10514 "asmparse.cpp.tab.c" +#line 1683 "asmparse.y" +{ yyval.int32 = VT_CLSID; } +#line 10519 "asmparse.cpp.tab.c" break; case 678: if (!yytrial) -#line 1692 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10520 "asmparse.cpp.tab.c" +#line 1687 "asmparse.y" +{ if(yyvsp[0].token == PASM->m_tkSysString) + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } + else if(yyvsp[0].token == PASM->m_tkSysObject) + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } + else + yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } +#line 10530 "asmparse.cpp.tab.c" break; case 679: if (!yytrial) #line 1693 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10526 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } +#line 10536 "asmparse.cpp.tab.c" break; case 680: if (!yytrial) #line 1694 "asmparse.y" -{ yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } -#line 10532 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } +#line 10542 "asmparse.cpp.tab.c" break; case 681: if (!yytrial) #line 1695 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10538 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } +#line 10548 "asmparse.cpp.tab.c" break; case 682: if (!yytrial) #line 1696 "asmparse.y" -{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10544 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } +#line 10554 "asmparse.cpp.tab.c" break; case 683: if (!yytrial) #line 1697 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10550 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10560 "asmparse.cpp.tab.c" break; case 684: if (!yytrial) #line 1698 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10556 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } +#line 10566 "asmparse.cpp.tab.c" break; case 685: if (!yytrial) #line 1699 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10562 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 10572 "asmparse.cpp.tab.c" break; case 686: if (!yytrial) #line 1700 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); - yyval.binstr->append(yyvsp[-4].binstr); } -#line 10569 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 10578 "asmparse.cpp.tab.c" break; case 687: if (!yytrial) +#line 1701 "asmparse.y" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 10584 "asmparse.cpp.tab.c" +break; +case 688: + if (!yytrial) #line 1702 "asmparse.y" +{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); + yyval.binstr->append(yyvsp[-4].binstr); } +#line 10591 "asmparse.cpp.tab.c" +break; +case 689: + if (!yytrial) +#line 1704 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10576 "asmparse.cpp.tab.c" +#line 10598 "asmparse.cpp.tab.c" break; -case 688: +case 690: if (!yytrial) -#line 1705 "asmparse.y" +#line 1707 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10587 "asmparse.cpp.tab.c" +#line 10609 "asmparse.cpp.tab.c" break; -case 689: +case 691: if (!yytrial) -#line 1711 "asmparse.y" +#line 1713 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10595,49 +10617,49 @@ case 689: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10599 "asmparse.cpp.tab.c" +#line 10621 "asmparse.cpp.tab.c" break; -case 690: +case 692: if (!yytrial) -#line 1718 "asmparse.y" +#line 1720 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10607 "asmparse.cpp.tab.c" +#line 10629 "asmparse.cpp.tab.c" break; -case 691: +case 693: if (!yytrial) -#line 1721 "asmparse.y" +#line 1723 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10618 "asmparse.cpp.tab.c" +#line 10640 "asmparse.cpp.tab.c" break; -case 692: +case 694: if (!yytrial) -#line 1727 "asmparse.y" +#line 1729 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10626 "asmparse.cpp.tab.c" +#line 10648 "asmparse.cpp.tab.c" break; -case 693: +case 695: if (!yytrial) -#line 1730 "asmparse.y" +#line 1732 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10637 "asmparse.cpp.tab.c" +#line 10659 "asmparse.cpp.tab.c" break; -case 694: +case 696: if (!yytrial) -#line 1736 "asmparse.y" +#line 1738 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10653,11 +10675,11 @@ case 694: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10657 "asmparse.cpp.tab.c" +#line 10679 "asmparse.cpp.tab.c" break; -case 695: +case 697: if (!yytrial) -#line 1751 "asmparse.y" +#line 1753 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10673,11 +10695,11 @@ case 695: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10677 "asmparse.cpp.tab.c" +#line 10699 "asmparse.cpp.tab.c" break; -case 696: +case 698: if (!yytrial) -#line 1766 "asmparse.y" +#line 1768 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10693,11 +10715,11 @@ case 696: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10697 "asmparse.cpp.tab.c" +#line 10719 "asmparse.cpp.tab.c" break; -case 697: +case 699: if (!yytrial) -#line 1781 "asmparse.y" +#line 1783 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10713,924 +10735,924 @@ case 697: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10717 "asmparse.cpp.tab.c" -break; -case 698: - if (!yytrial) -#line 1796 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10723 "asmparse.cpp.tab.c" -break; -case 699: - if (!yytrial) -#line 1797 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10729 "asmparse.cpp.tab.c" +#line 10739 "asmparse.cpp.tab.c" break; case 700: if (!yytrial) #line 1798 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10735 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 10745 "asmparse.cpp.tab.c" break; case 701: if (!yytrial) #line 1799 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10741 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } +#line 10751 "asmparse.cpp.tab.c" break; case 702: if (!yytrial) #line 1800 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10747 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } +#line 10757 "asmparse.cpp.tab.c" break; case 703: if (!yytrial) #line 1801 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 10753 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 10763 "asmparse.cpp.tab.c" break; case 704: if (!yytrial) #line 1802 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10759 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 10769 "asmparse.cpp.tab.c" break; case 705: if (!yytrial) -#line 1805 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10765 "asmparse.cpp.tab.c" +#line 1803 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 10775 "asmparse.cpp.tab.c" break; case 706: if (!yytrial) -#line 1806 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10771 "asmparse.cpp.tab.c" +#line 1804 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 10781 "asmparse.cpp.tab.c" break; case 707: if (!yytrial) #line 1807 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10777 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } +#line 10787 "asmparse.cpp.tab.c" break; case 708: if (!yytrial) #line 1808 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10783 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } +#line 10793 "asmparse.cpp.tab.c" break; case 709: if (!yytrial) #line 1809 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10789 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 10799 "asmparse.cpp.tab.c" break; case 710: if (!yytrial) #line 1810 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10795 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } +#line 10805 "asmparse.cpp.tab.c" break; case 711: if (!yytrial) #line 1811 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10801 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } +#line 10811 "asmparse.cpp.tab.c" break; case 712: if (!yytrial) #line 1812 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10807 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } +#line 10817 "asmparse.cpp.tab.c" break; case 713: if (!yytrial) #line 1813 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10813 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } +#line 10823 "asmparse.cpp.tab.c" break; case 714: if (!yytrial) #line 1814 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10819 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } +#line 10829 "asmparse.cpp.tab.c" break; case 715: if (!yytrial) #line 1815 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10825 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } +#line 10835 "asmparse.cpp.tab.c" break; case 716: if (!yytrial) #line 1816 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10831 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 10841 "asmparse.cpp.tab.c" break; case 717: if (!yytrial) #line 1817 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10837 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 10847 "asmparse.cpp.tab.c" break; case 718: if (!yytrial) #line 1818 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10843 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 10853 "asmparse.cpp.tab.c" break; case 719: if (!yytrial) #line 1819 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10849 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 10859 "asmparse.cpp.tab.c" break; case 720: if (!yytrial) #line 1820 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10855 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 10865 "asmparse.cpp.tab.c" break; case 721: if (!yytrial) #line 1821 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10861 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 10871 "asmparse.cpp.tab.c" break; case 722: if (!yytrial) #line 1822 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10867 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 10877 "asmparse.cpp.tab.c" break; case 723: if (!yytrial) -#line 1825 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 10873 "asmparse.cpp.tab.c" +#line 1823 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 10883 "asmparse.cpp.tab.c" break; case 724: if (!yytrial) -#line 1826 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10879 "asmparse.cpp.tab.c" +#line 1824 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } +#line 10889 "asmparse.cpp.tab.c" break; case 725: if (!yytrial) -#line 1829 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10885 "asmparse.cpp.tab.c" +#line 1827 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 10895 "asmparse.cpp.tab.c" break; case 726: if (!yytrial) -#line 1830 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10891 "asmparse.cpp.tab.c" +#line 1828 "asmparse.y" +{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 10901 "asmparse.cpp.tab.c" break; case 727: if (!yytrial) #line 1831 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10897 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 10907 "asmparse.cpp.tab.c" break; case 728: if (!yytrial) #line 1832 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 10913 "asmparse.cpp.tab.c" +break; +case 729: + if (!yytrial) +#line 1833 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 10919 "asmparse.cpp.tab.c" +break; +case 730: + if (!yytrial) +#line 1834 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10905 "asmparse.cpp.tab.c" +#line 10927 "asmparse.cpp.tab.c" break; -case 729: +case 731: if (!yytrial) -#line 1835 "asmparse.y" +#line 1837 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10911 "asmparse.cpp.tab.c" +#line 10933 "asmparse.cpp.tab.c" break; -case 730: +case 732: if (!yytrial) -#line 1840 "asmparse.y" +#line 1842 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10917 "asmparse.cpp.tab.c" +#line 10939 "asmparse.cpp.tab.c" break; -case 731: +case 733: if (!yytrial) -#line 1842 "asmparse.y" +#line 1844 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10923 "asmparse.cpp.tab.c" +#line 10945 "asmparse.cpp.tab.c" break; -case 732: +case 734: if (!yytrial) -#line 1843 "asmparse.y" +#line 1845 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10929 "asmparse.cpp.tab.c" +#line 10951 "asmparse.cpp.tab.c" break; -case 733: +case 735: if (!yytrial) -#line 1844 "asmparse.y" +#line 1846 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10935 "asmparse.cpp.tab.c" +#line 10957 "asmparse.cpp.tab.c" break; -case 734: +case 736: if (!yytrial) -#line 1846 "asmparse.y" +#line 1848 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10941 "asmparse.cpp.tab.c" +#line 10963 "asmparse.cpp.tab.c" break; -case 735: +case 737: if (!yytrial) -#line 1848 "asmparse.y" +#line 1850 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10952 "asmparse.cpp.tab.c" +#line 10974 "asmparse.cpp.tab.c" break; -case 736: +case 738: if (!yytrial) -#line 1856 "asmparse.y" +#line 1858 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10958 "asmparse.cpp.tab.c" +#line 10980 "asmparse.cpp.tab.c" break; -case 737: +case 739: if (!yytrial) -#line 1857 "asmparse.y" +#line 1859 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10964 "asmparse.cpp.tab.c" +#line 10986 "asmparse.cpp.tab.c" break; -case 738: +case 740: if (!yytrial) -#line 1858 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10970 "asmparse.cpp.tab.c" +#line 10992 "asmparse.cpp.tab.c" break; -case 739: +case 741: if (!yytrial) -#line 1862 "asmparse.y" +#line 1864 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10977 "asmparse.cpp.tab.c" +#line 10999 "asmparse.cpp.tab.c" break; -case 740: +case 742: if (!yytrial) -#line 1865 "asmparse.y" +#line 1867 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10984 "asmparse.cpp.tab.c" +#line 11006 "asmparse.cpp.tab.c" break; -case 741: +case 743: if (!yytrial) -#line 1869 "asmparse.y" +#line 1871 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10990 "asmparse.cpp.tab.c" +#line 11012 "asmparse.cpp.tab.c" break; -case 742: +case 744: if (!yytrial) -#line 1871 "asmparse.y" +#line 1873 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10996 "asmparse.cpp.tab.c" +#line 11018 "asmparse.cpp.tab.c" break; -case 743: +case 745: if (!yytrial) -#line 1874 "asmparse.y" +#line 1876 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 11002 "asmparse.cpp.tab.c" +#line 11024 "asmparse.cpp.tab.c" break; -case 744: +case 746: if (!yytrial) -#line 1875 "asmparse.y" +#line 1877 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 11008 "asmparse.cpp.tab.c" +#line 11030 "asmparse.cpp.tab.c" break; -case 745: +case 747: if (!yytrial) -#line 1878 "asmparse.y" +#line 1880 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 11014 "asmparse.cpp.tab.c" +#line 11036 "asmparse.cpp.tab.c" break; -case 746: +case 748: if (!yytrial) -#line 1881 "asmparse.y" +#line 1883 "asmparse.y" { yyval.int32 = 1; } -#line 11020 "asmparse.cpp.tab.c" +#line 11042 "asmparse.cpp.tab.c" break; -case 747: +case 749: if (!yytrial) -#line 1882 "asmparse.y" +#line 1884 "asmparse.y" { yyval.int32 = 0; } -#line 11026 "asmparse.cpp.tab.c" +#line 11048 "asmparse.cpp.tab.c" break; -case 748: +case 750: if (!yytrial) -#line 1885 "asmparse.y" +#line 1887 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 11034 "asmparse.cpp.tab.c" +#line 11056 "asmparse.cpp.tab.c" break; -case 749: +case 751: if (!yytrial) -#line 1888 "asmparse.y" +#line 1890 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11042 "asmparse.cpp.tab.c" +#line 11064 "asmparse.cpp.tab.c" break; -case 750: +case 752: if (!yytrial) -#line 1891 "asmparse.y" +#line 1893 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11050 "asmparse.cpp.tab.c" +#line 11072 "asmparse.cpp.tab.c" break; -case 751: +case 753: if (!yytrial) -#line 1894 "asmparse.y" +#line 1896 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 11059 "asmparse.cpp.tab.c" +#line 11081 "asmparse.cpp.tab.c" break; -case 752: +case 754: if (!yytrial) -#line 1898 "asmparse.y" +#line 1900 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11070 "asmparse.cpp.tab.c" +#line 11092 "asmparse.cpp.tab.c" break; -case 753: +case 755: if (!yytrial) -#line 1904 "asmparse.y" +#line 1906 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11081 "asmparse.cpp.tab.c" +#line 11103 "asmparse.cpp.tab.c" break; -case 754: +case 756: if (!yytrial) -#line 1910 "asmparse.y" +#line 1912 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11092 "asmparse.cpp.tab.c" +#line 11114 "asmparse.cpp.tab.c" break; -case 755: +case 757: if (!yytrial) -#line 1916 "asmparse.y" +#line 1918 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11103 "asmparse.cpp.tab.c" -break; -case 756: - if (!yytrial) -#line 1924 "asmparse.y" -{ yyval.secAct = dclRequest; } -#line 11109 "asmparse.cpp.tab.c" -break; -case 757: - if (!yytrial) -#line 1925 "asmparse.y" -{ yyval.secAct = dclDemand; } -#line 11115 "asmparse.cpp.tab.c" +#line 11125 "asmparse.cpp.tab.c" break; case 758: if (!yytrial) #line 1926 "asmparse.y" -{ yyval.secAct = dclAssert; } -#line 11121 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequest; } +#line 11131 "asmparse.cpp.tab.c" break; case 759: if (!yytrial) #line 1927 "asmparse.y" -{ yyval.secAct = dclDeny; } -#line 11127 "asmparse.cpp.tab.c" +{ yyval.secAct = dclDemand; } +#line 11137 "asmparse.cpp.tab.c" break; case 760: if (!yytrial) #line 1928 "asmparse.y" -{ yyval.secAct = dclPermitOnly; } -#line 11133 "asmparse.cpp.tab.c" +{ yyval.secAct = dclAssert; } +#line 11143 "asmparse.cpp.tab.c" break; case 761: if (!yytrial) #line 1929 "asmparse.y" -{ yyval.secAct = dclLinktimeCheck; } -#line 11139 "asmparse.cpp.tab.c" +{ yyval.secAct = dclDeny; } +#line 11149 "asmparse.cpp.tab.c" break; case 762: if (!yytrial) #line 1930 "asmparse.y" -{ yyval.secAct = dclInheritanceCheck; } -#line 11145 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPermitOnly; } +#line 11155 "asmparse.cpp.tab.c" break; case 763: if (!yytrial) #line 1931 "asmparse.y" -{ yyval.secAct = dclRequestMinimum; } -#line 11151 "asmparse.cpp.tab.c" +{ yyval.secAct = dclLinktimeCheck; } +#line 11161 "asmparse.cpp.tab.c" break; case 764: if (!yytrial) #line 1932 "asmparse.y" -{ yyval.secAct = dclRequestOptional; } -#line 11157 "asmparse.cpp.tab.c" +{ yyval.secAct = dclInheritanceCheck; } +#line 11167 "asmparse.cpp.tab.c" break; case 765: if (!yytrial) #line 1933 "asmparse.y" -{ yyval.secAct = dclRequestRefuse; } -#line 11163 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestMinimum; } +#line 11173 "asmparse.cpp.tab.c" break; case 766: if (!yytrial) #line 1934 "asmparse.y" -{ yyval.secAct = dclPrejitGrant; } -#line 11169 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestOptional; } +#line 11179 "asmparse.cpp.tab.c" break; case 767: if (!yytrial) #line 1935 "asmparse.y" -{ yyval.secAct = dclPrejitDenied; } -#line 11175 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestRefuse; } +#line 11185 "asmparse.cpp.tab.c" break; case 768: if (!yytrial) #line 1936 "asmparse.y" -{ yyval.secAct = dclNonCasDemand; } -#line 11181 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPrejitGrant; } +#line 11191 "asmparse.cpp.tab.c" break; case 769: if (!yytrial) #line 1937 "asmparse.y" -{ yyval.secAct = dclNonCasLinkDemand; } -#line 11187 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPrejitDenied; } +#line 11197 "asmparse.cpp.tab.c" break; case 770: if (!yytrial) #line 1938 "asmparse.y" -{ yyval.secAct = dclNonCasInheritance; } -#line 11193 "asmparse.cpp.tab.c" +{ yyval.secAct = dclNonCasDemand; } +#line 11203 "asmparse.cpp.tab.c" break; case 771: if (!yytrial) -#line 1942 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11199 "asmparse.cpp.tab.c" +#line 1939 "asmparse.y" +{ yyval.secAct = dclNonCasLinkDemand; } +#line 11209 "asmparse.cpp.tab.c" break; case 772: if (!yytrial) -#line 1943 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11205 "asmparse.cpp.tab.c" +#line 1940 "asmparse.y" +{ yyval.secAct = dclNonCasInheritance; } +#line 11215 "asmparse.cpp.tab.c" break; case 773: if (!yytrial) -#line 1946 "asmparse.y" +#line 1944 "asmparse.y" +{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 11221 "asmparse.cpp.tab.c" +break; +case 774: + if (!yytrial) +#line 1945 "asmparse.y" +{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } +#line 11227 "asmparse.cpp.tab.c" +break; +case 775: + if (!yytrial) +#line 1948 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11213 "asmparse.cpp.tab.c" +#line 11235 "asmparse.cpp.tab.c" break; -case 774: +case 776: if (!yytrial) -#line 1949 "asmparse.y" +#line 1951 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11220 "asmparse.cpp.tab.c" +#line 11242 "asmparse.cpp.tab.c" break; -case 775: +case 777: if (!yytrial) -#line 1951 "asmparse.y" +#line 1953 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11228 "asmparse.cpp.tab.c" +#line 11250 "asmparse.cpp.tab.c" break; -case 776: +case 778: if (!yytrial) -#line 1954 "asmparse.y" +#line 1956 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11235 "asmparse.cpp.tab.c" +#line 11257 "asmparse.cpp.tab.c" break; -case 777: +case 779: if (!yytrial) -#line 1957 "asmparse.y" +#line 1959 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11243 "asmparse.cpp.tab.c" +#line 11265 "asmparse.cpp.tab.c" break; -case 778: +case 780: if (!yytrial) -#line 1961 "asmparse.y" +#line 1963 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11250 "asmparse.cpp.tab.c" +#line 11272 "asmparse.cpp.tab.c" break; -case 779: +case 781: if (!yytrial) -#line 1964 "asmparse.y" +#line 1966 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11258 "asmparse.cpp.tab.c" +#line 11280 "asmparse.cpp.tab.c" break; -case 780: +case 782: if (!yytrial) -#line 1968 "asmparse.y" +#line 1970 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11265 "asmparse.cpp.tab.c" +#line 11287 "asmparse.cpp.tab.c" break; -case 781: +case 783: if (!yytrial) -#line 1971 "asmparse.y" +#line 1973 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11273 "asmparse.cpp.tab.c" +#line 11295 "asmparse.cpp.tab.c" break; -case 782: +case 784: if (!yytrial) -#line 1975 "asmparse.y" +#line 1977 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11280 "asmparse.cpp.tab.c" +#line 11302 "asmparse.cpp.tab.c" break; -case 783: +case 785: if (!yytrial) -#line 1977 "asmparse.y" +#line 1979 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11288 "asmparse.cpp.tab.c" -break; -case 784: - if (!yytrial) -#line 1984 "asmparse.y" -{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11294 "asmparse.cpp.tab.c" -break; -case 785: - if (!yytrial) -#line 1985 "asmparse.y" -{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11300 "asmparse.cpp.tab.c" +#line 11310 "asmparse.cpp.tab.c" break; case 786: if (!yytrial) -#line 1988 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } -#line 11306 "asmparse.cpp.tab.c" +#line 1986 "asmparse.y" +{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } +#line 11316 "asmparse.cpp.tab.c" break; case 787: if (!yytrial) -#line 1989 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11312 "asmparse.cpp.tab.c" +#line 1987 "asmparse.y" +{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } +#line 11322 "asmparse.cpp.tab.c" break; case 788: if (!yytrial) -#line 1992 "asmparse.y" +#line 1990 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11318 "asmparse.cpp.tab.c" +#line 11328 "asmparse.cpp.tab.c" break; case 789: if (!yytrial) -#line 1993 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11324 "asmparse.cpp.tab.c" +#line 1991 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } +#line 11334 "asmparse.cpp.tab.c" break; case 790: if (!yytrial) -#line 1996 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 11330 "asmparse.cpp.tab.c" +#line 1994 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0; } +#line 11340 "asmparse.cpp.tab.c" break; case 791: if (!yytrial) -#line 1999 "asmparse.y" -{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11336 "asmparse.cpp.tab.c" +#line 1995 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0x80000000; } +#line 11346 "asmparse.cpp.tab.c" break; case 792: if (!yytrial) -#line 2002 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11342 "asmparse.cpp.tab.c" +#line 1998 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 11352 "asmparse.cpp.tab.c" break; case 793: if (!yytrial) -#line 2003 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11348 "asmparse.cpp.tab.c" +#line 2001 "asmparse.y" +{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } +#line 11358 "asmparse.cpp.tab.c" break; case 794: if (!yytrial) #line 2004 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11354 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) 0; } +#line 11364 "asmparse.cpp.tab.c" break; case 795: if (!yytrial) #line 2005 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11360 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } +#line 11370 "asmparse.cpp.tab.c" break; case 796: if (!yytrial) #line 2006 "asmparse.y" -{ yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11366 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } +#line 11376 "asmparse.cpp.tab.c" break; case 797: if (!yytrial) #line 2007 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11372 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } +#line 11382 "asmparse.cpp.tab.c" break; case 798: if (!yytrial) #line 2008 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11378 "asmparse.cpp.tab.c" +{ yyval.asmAttr = yyvsp[-2].asmAttr; } +#line 11388 "asmparse.cpp.tab.c" break; case 799: if (!yytrial) #line 2009 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11384 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } +#line 11394 "asmparse.cpp.tab.c" break; case 800: if (!yytrial) #line 2010 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11390 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } +#line 11400 "asmparse.cpp.tab.c" break; case 801: if (!yytrial) #line 2011 "asmparse.y" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } +#line 11406 "asmparse.cpp.tab.c" +break; +case 802: + if (!yytrial) +#line 2012 "asmparse.y" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } +#line 11412 "asmparse.cpp.tab.c" +break; +case 803: + if (!yytrial) +#line 2013 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11396 "asmparse.cpp.tab.c" +#line 11418 "asmparse.cpp.tab.c" break; -case 804: +case 806: if (!yytrial) -#line 2018 "asmparse.y" +#line 2020 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11402 "asmparse.cpp.tab.c" +#line 11424 "asmparse.cpp.tab.c" break; -case 807: +case 809: if (!yytrial) -#line 2023 "asmparse.y" +#line 2025 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11408 "asmparse.cpp.tab.c" +#line 11430 "asmparse.cpp.tab.c" break; -case 808: +case 810: if (!yytrial) -#line 2024 "asmparse.y" +#line 2026 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11414 "asmparse.cpp.tab.c" +#line 11436 "asmparse.cpp.tab.c" break; -case 809: +case 811: if (!yytrial) -#line 2027 "asmparse.y" +#line 2029 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11420 "asmparse.cpp.tab.c" +#line 11442 "asmparse.cpp.tab.c" break; -case 810: +case 812: if (!yytrial) -#line 2029 "asmparse.y" +#line 2031 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11426 "asmparse.cpp.tab.c" +#line 11448 "asmparse.cpp.tab.c" break; -case 811: +case 813: if (!yytrial) -#line 2030 "asmparse.y" +#line 2032 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11432 "asmparse.cpp.tab.c" +#line 11454 "asmparse.cpp.tab.c" break; -case 812: +case 814: if (!yytrial) -#line 2031 "asmparse.y" +#line 2033 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11438 "asmparse.cpp.tab.c" +#line 11460 "asmparse.cpp.tab.c" break; -case 815: +case 817: if (!yytrial) -#line 2036 "asmparse.y" +#line 2038 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11444 "asmparse.cpp.tab.c" +#line 11466 "asmparse.cpp.tab.c" break; -case 816: +case 818: if (!yytrial) -#line 2039 "asmparse.y" +#line 2041 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11450 "asmparse.cpp.tab.c" +#line 11472 "asmparse.cpp.tab.c" break; -case 817: +case 819: if (!yytrial) -#line 2042 "asmparse.y" +#line 2044 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11456 "asmparse.cpp.tab.c" +#line 11478 "asmparse.cpp.tab.c" break; -case 818: +case 820: if (!yytrial) -#line 2046 "asmparse.y" +#line 2048 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11462 "asmparse.cpp.tab.c" +#line 11484 "asmparse.cpp.tab.c" break; -case 819: +case 821: if (!yytrial) -#line 2048 "asmparse.y" +#line 2050 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11468 "asmparse.cpp.tab.c" -break; -case 822: - if (!yytrial) -#line 2055 "asmparse.y" -{ PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11474 "asmparse.cpp.tab.c" +#line 11490 "asmparse.cpp.tab.c" break; case 824: if (!yytrial) #line 2057 "asmparse.y" -{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11480 "asmparse.cpp.tab.c" -break; -case 825: - if (!yytrial) -#line 2058 "asmparse.y" -{ PASMM->SetAssemblyAutodetect(); } -#line 11486 "asmparse.cpp.tab.c" +{ PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } +#line 11496 "asmparse.cpp.tab.c" break; case 826: if (!yytrial) -#line 2061 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11492 "asmparse.cpp.tab.c" +#line 2059 "asmparse.y" +{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } +#line 11502 "asmparse.cpp.tab.c" break; case 827: if (!yytrial) -#line 2064 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11498 "asmparse.cpp.tab.c" +#line 2060 "asmparse.y" +{ PASMM->SetAssemblyAutodetect(); } +#line 11508 "asmparse.cpp.tab.c" break; case 828: if (!yytrial) -#line 2067 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) 0; } -#line 11504 "asmparse.cpp.tab.c" +#line 2063 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} +#line 11514 "asmparse.cpp.tab.c" break; case 829: if (!yytrial) -#line 2068 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11510 "asmparse.cpp.tab.c" +#line 2066 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } +#line 11520 "asmparse.cpp.tab.c" break; case 830: if (!yytrial) #line 2069 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11516 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) 0; } +#line 11526 "asmparse.cpp.tab.c" break; case 831: if (!yytrial) #line 2070 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11522 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } +#line 11532 "asmparse.cpp.tab.c" break; case 832: if (!yytrial) #line 2071 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11528 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } +#line 11538 "asmparse.cpp.tab.c" break; case 833: if (!yytrial) #line 2072 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11534 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } +#line 11544 "asmparse.cpp.tab.c" break; case 834: if (!yytrial) #line 2073 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11540 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } +#line 11550 "asmparse.cpp.tab.c" break; case 835: if (!yytrial) #line 2074 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11546 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } +#line 11556 "asmparse.cpp.tab.c" break; case 836: if (!yytrial) #line 2075 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11552 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } +#line 11562 "asmparse.cpp.tab.c" break; case 837: if (!yytrial) #line 2076 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11558 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } +#line 11568 "asmparse.cpp.tab.c" break; -case 840: +case 838: if (!yytrial) -#line 2083 "asmparse.y" -{ PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11564 "asmparse.cpp.tab.c" +#line 2077 "asmparse.y" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } +#line 11574 "asmparse.cpp.tab.c" break; -case 841: +case 839: if (!yytrial) -#line 2084 "asmparse.y" -{ PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11570 "asmparse.cpp.tab.c" +#line 2078 "asmparse.y" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } +#line 11580 "asmparse.cpp.tab.c" break; case 842: if (!yytrial) #line 2085 "asmparse.y" -{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11576 "asmparse.cpp.tab.c" +{ PASMM->SetComTypeFile(yyvsp[0].string); } +#line 11586 "asmparse.cpp.tab.c" break; case 843: if (!yytrial) #line 2086 "asmparse.y" -{ if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) - PASM->report->error("Invalid implementation of exported type\n"); } -#line 11583 "asmparse.cpp.tab.c" +{ PASMM->SetComTypeComType(yyvsp[0].string); } +#line 11592 "asmparse.cpp.tab.c" break; case 844: if (!yytrial) +#line 2087 "asmparse.y" +{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } +#line 11598 "asmparse.cpp.tab.c" +break; +case 845: + if (!yytrial) #line 2088 "asmparse.y" +{ if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) + PASM->report->error("Invalid implementation of exported type\n"); } +#line 11605 "asmparse.cpp.tab.c" +break; +case 846: + if (!yytrial) +#line 2090 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11590 "asmparse.cpp.tab.c" +#line 11612 "asmparse.cpp.tab.c" break; -case 847: +case 849: if (!yytrial) -#line 2094 "asmparse.y" +#line 2096 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11596 "asmparse.cpp.tab.c" +#line 11618 "asmparse.cpp.tab.c" break; -case 848: +case 850: if (!yytrial) -#line 2096 "asmparse.y" +#line 2098 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11602 "asmparse.cpp.tab.c" +#line 11624 "asmparse.cpp.tab.c" break; -case 849: +case 851: if (!yytrial) -#line 2099 "asmparse.y" +#line 2101 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11608 "asmparse.cpp.tab.c" +#line 11630 "asmparse.cpp.tab.c" break; -case 850: +case 852: if (!yytrial) -#line 2100 "asmparse.y" +#line 2102 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11614 "asmparse.cpp.tab.c" +#line 11636 "asmparse.cpp.tab.c" break; -case 851: +case 853: if (!yytrial) -#line 2101 "asmparse.y" +#line 2103 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11620 "asmparse.cpp.tab.c" +#line 11642 "asmparse.cpp.tab.c" break; -case 854: +case 856: if (!yytrial) -#line 2108 "asmparse.y" +#line 2110 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11626 "asmparse.cpp.tab.c" +#line 11648 "asmparse.cpp.tab.c" break; -case 855: +case 857: if (!yytrial) -#line 2109 "asmparse.y" +#line 2111 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11632 "asmparse.cpp.tab.c" +#line 11654 "asmparse.cpp.tab.c" break; -#line 11634 "asmparse.cpp.tab.c" +#line 11656 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: From 4b7d14fe3ee02d5b82d55a5e1afc25b1c7a595f7 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 15:01:17 +0900 Subject: [PATCH 12/80] Remove ldtc.* and rename ldtarg to ldctarg --- .../dlls/mscorpe/ceefilegenwritertokens.cpp | 5 - src/coreclr/ilasm/asmparse.y | 42 +- src/coreclr/ilasm/assembler.cpp | 6 +- src/coreclr/ilasm/grammar_after.cpp | 15 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 10352 +++++++++------- src/coreclr/ildasm/dasm.cpp | 3 + src/coreclr/ildasm/dis.cpp | 9 +- src/coreclr/inc/cor.h | 51 +- src/coreclr/inc/corhdr.h | 5 +- src/coreclr/inc/formattype.cpp | 77 +- src/coreclr/inc/opcode.def | 14 +- src/coreclr/inc/openum.h | 7 +- 12 files changed, 5999 insertions(+), 4587 deletions(-) diff --git a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp index 71129c54e20cd..dc07469afa875 100644 --- a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp +++ b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp @@ -162,7 +162,6 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case ShortInlineI: case ShortInlineVar: case ShortInlineBrTarget: - case ShortInlineTypeI: PC++; break; @@ -175,16 +174,12 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case ShortInlineR: case InlineBrTarget: case InlineRVA: - case InlineTypeI: - case ShortInlineTypeR: case InlineTypeVar: PC += 4; break; case InlineI8: case InlineR: - case InlineTypeI8: - case InlineTypeR: PC += 8; break; diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index e3db03981eeb7..1365f459a28d6 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -153,7 +153,7 @@ %type int64 %type sigArgs0 sigArgs1 sigArg type bound bounds1 bytes hexbytes nativeType marshalBlob initOpt compQstring caValue %type marshalClause -%type fieldInit serInit fieldSerInit +%type fieldInit serInit fieldSerInit constTypeArg %type f32seq f64seq i8seq i16seq i32seq i64seq boolSeq sqstringSeq classSeq objSeq %type simpleType %type tyArgs0 tyArgs1 tyArgs2 typeList typeListNotEmpty tyBound @@ -1683,6 +1683,45 @@ variantType : /* EMPTY */ { $$ = VT_EMPTY; } | CLSID_ { $$ = VT_CLSID; } ; +constTypeArg : FLOAT32_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*$3); + $$->appendInt32(*((__int32*)&f)); delete $3; } + | FLOAT64_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); + $$->appendInt64((__int64 *)$3); delete $3; } + | FLOAT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); + $$->appendInt32($3); } + | FLOAT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); + $$->appendInt64((__int64 *)$3); delete $3; } + | INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I8); + $$->appendInt64((__int64 *)$3); delete $3; } + | INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I4); + $$->appendInt32($3); } + | INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I2); + $$->appendInt16($3); } + | INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I1); + $$->appendInt8($3); } + | UNSIGNED_ INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); + $$->appendInt64((__int64 *)$4); delete $4; } + | UNSIGNED_ INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); + $$->appendInt32($4); } + | UNSIGNED_ INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); + $$->appendInt16($4); } + | UNSIGNED_ INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); + $$->appendInt8($4); } + | UINT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); + $$->appendInt64((__int64 *)$3); delete $3; } + | UINT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); + $$->appendInt32($3); } + | UINT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); + $$->appendInt16($3); } + | UINT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); + $$->appendInt8($3); } + | CHAR_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_CHAR); + $$->appendInt16($3); } + | BOOL_ '(' truefalse ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_BOOLEAN); + $$->appendInt8($3);} + ; + /* Managed types for signatures */ type : CLASS_ className { if($2 == PASM->m_tkSysString) { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_STRING); } @@ -1693,6 +1732,7 @@ type : CLASS_ className { if($2 == PASM->m | OBJECT_ { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_OBJECT); } | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } + | CONST_ constTypeArg { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } | CONST_ simpleType { $$ = parser->MakeConstTypeClass($2); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index 8d445ae42df10..bfd4d9c838509 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -1491,7 +1491,7 @@ unsigned Assembler::ShortOf(unsigned opcode) case CEE_LDARGA: retcode=CEE_LDARGA_S; break; case CEE_STARG: retcode=CEE_STARG_S; break; - case CEE_LDTARG: retcode=CEE_LDTARG_S; break; + case CEE_LDCTARG: retcode=CEE_LDCTARG_S; break; case CEE_LDLOC: retcode=CEE_LDLOC_S; break; case CEE_LDLOCA: retcode=CEE_LDLOCA_S; break; @@ -1647,8 +1647,8 @@ void Assembler::EmitInstrTypeVarByName(Instr* instr, CorElementType type, _In_ _ int idx = -1; switch(instr->opcode) { - case CEE_LDTARG: - case CEE_LDTARG_S: + case CEE_LDCTARG: + case CEE_LDCTARG_S: if(m_pCurMethod) { _ASSERTE(type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index d0d9e5139adc7..f3b08ffec8d24 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -36,11 +36,6 @@ static Keywords keywords[] = { #undef InlineTok #undef InlineSwitch #undef InlineVarTok -#undef InlineTypeI -#undef InlineTypeI8 -#undef InlineTypeR -#undef ShortInlineTypeI -#undef ShortInlineTypeR #undef InlineTypeVar #undef ShortInlineTypeVar @@ -62,11 +57,6 @@ static Keywords keywords[] = { #define InlineSig INSTR_SIG #define InlineTok INSTR_TOK #define InlineSwitch INSTR_SWITCH -#define InlineTypeI INSTR_I -#define InlineTypeI8 INSTR_I8 -#define InlineTypeR INSTR_R -#define ShortInlineTypeI INSTR_I -#define ShortInlineTypeR INSTR_R #define InlineTypeVar INSTR_TVAR #define ShortInlineTypeVar INSTR_TVAR @@ -1343,7 +1333,6 @@ static void corEmitInt(BinStr* buff, unsigned data) buff->remove(5 - cnt); } - /**************************************************************************/ /* move 'ptr past the exactly one type description */ @@ -1379,7 +1368,9 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; - + case ELEMENT_TYPE_CTARG : + ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type parameter + break; case ELEMENT_TYPE_CMOD_REQD : case ELEMENT_TYPE_CMOD_OPT : ptr += CorSigUncompressToken(ptr, &tk); diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 8b22aa2b720f7..4639b9093696d 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -346,64 +346,64 @@ typedef union { #define CONST_ 544 #define YYERRCODE 256 static int yylhs[] = { -1, - 0, 0, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 138, 138, - 38, 38, 135, 135, 135, 2, 2, 1, 1, 1, - 9, 26, 26, 25, 25, 25, 136, 136, 136, 136, - 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 95, 95, 95, 95, 96, 96, 96, 96, 10, 11, - 75, 74, 74, 61, 63, 63, 63, 64, 64, 64, - 67, 67, 134, 134, 134, 62, 62, 62, 62, 62, - 62, 132, 132, 132, 121, 12, 12, 12, 12, 12, - 12, 120, 139, 115, 140, 141, 113, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 142, 142, 143, 143, 114, 114, - 144, 144, 58, 58, 59, 59, 71, 71, 18, 18, + 0, 0, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 139, 139, + 38, 38, 136, 136, 136, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 137, 137, 137, 137, + 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 96, 96, 96, 96, 97, 97, 97, 97, 10, 11, + 76, 75, 75, 62, 64, 64, 64, 65, 65, 65, + 68, 68, 135, 135, 135, 63, 63, 63, 63, 63, + 63, 133, 133, 133, 122, 12, 12, 12, 12, 12, + 12, 121, 140, 116, 141, 142, 114, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 143, 143, 144, 144, 115, 115, + 145, 145, 59, 59, 60, 60, 72, 72, 18, 18, 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 70, 70, 70, 69, 69, 60, 23, 23, 24, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 118, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 4, 4, 37, - 37, 16, 16, 77, 77, 77, 77, 77, 77, 77, + 71, 71, 71, 70, 70, 61, 23, 23, 24, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 119, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 4, 4, 37, + 37, 16, 16, 78, 78, 78, 78, 78, 78, 78, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 78, 76, 76, 76, 76, 76, 76, 146, - 146, 83, 83, 83, 147, 147, 152, 152, 152, 152, - 152, 152, 152, 152, 148, 84, 84, 84, 149, 149, - 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, - 36, 36, 155, 116, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 3, 3, 3, 13, 13, 13, 13, - 13, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 156, 117, 117, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, - 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, - 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, - 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, - 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, + 8, 8, 79, 77, 77, 77, 77, 77, 77, 147, + 147, 84, 84, 84, 148, 148, 153, 153, 153, 153, + 153, 153, 153, 153, 149, 85, 85, 85, 150, 150, + 154, 154, 154, 154, 154, 154, 154, 155, 40, 40, + 36, 36, 156, 117, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 3, 3, 3, 13, 13, 13, 13, + 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 157, 118, 118, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 161, 162, 159, 164, + 164, 163, 163, 163, 166, 165, 165, 165, 165, 169, + 169, 169, 172, 167, 170, 171, 168, 168, 168, 120, + 173, 173, 175, 175, 175, 174, 174, 176, 176, 14, + 14, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, + 43, 43, 43, 43, 43, 178, 33, 33, 34, 34, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, - 44, 44, 45, 45, 45, 49, 49, 48, 48, 47, - 47, 46, 46, 50, 50, 51, 51, 51, 52, 52, - 52, 52, 53, 53, 151, 97, 98, 105, 99, 100, - 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 6, 6, 6, - 6, 6, 55, 55, 56, 56, 57, 57, 27, 27, - 28, 28, 29, 29, 29, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 5, 5, 73, 73, 73, - 73, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 45, + 45, 45, 46, 46, 46, 50, 50, 49, 49, 48, + 48, 47, 47, 51, 51, 52, 52, 52, 53, 53, + 53, 53, 54, 54, 152, 98, 99, 106, 100, 101, + 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 6, 6, 6, + 6, 6, 56, 56, 57, 57, 58, 58, 27, 27, + 28, 28, 29, 29, 29, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 5, 5, 74, 74, 74, + 74, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, @@ -413,25 +413,27 @@ static int yylhs[] = { -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 30, 30, 30, + 15, 15, 15, 15, 15, 15, 15, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 32, 32, 31, 31, 31, 31, - 31, 133, 133, 133, 133, 133, 133, 66, 66, 66, - 65, 65, 89, 89, 86, 86, 87, 17, 17, 39, - 39, 39, 39, 39, 39, 39, 39, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 178, 178, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 123, 123, 90, 90, 91, - 91, 179, 124, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 125, 125, 180, 180, 180, 68, 68, - 181, 181, 181, 181, 181, 181, 182, 184, 183, 126, - 126, 127, 127, 185, 185, 185, 185, 128, 150, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 129, - 129, 186, 186, 186, 186, 186, 186, 186, 130, 130, - 94, 94, 94, 131, 131, 187, 187, 187, 187, + 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, + 134, 134, 134, 134, 134, 134, 67, 67, 67, 66, + 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, + 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 179, 179, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 124, 124, 91, 91, 92, 92, + 180, 125, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 126, 126, 181, 181, 181, 69, 69, 182, + 182, 182, 182, 182, 182, 183, 185, 184, 127, 127, + 128, 128, 186, 186, 186, 186, 129, 151, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 130, 130, + 187, 187, 187, 187, 187, 187, 187, 131, 131, 95, + 95, 95, 132, 132, 188, 188, 188, 188, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -501,150 +503,159 @@ static int yylen[] = { 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, - 2, 2, 3, 4, 2, 2, 2, 5, 5, 7, - 4, 4, 3, 3, 2, 4, 3, 3, 2, 1, - 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, - 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, - 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, - 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, + 4, 4, 4, 4, 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 2, 1, 3, 2, 2, + 2, 3, 4, 2, 2, 2, 5, 5, 7, 4, + 4, 3, 3, 2, 4, 3, 3, 2, 1, 1, + 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, + 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, + 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, + 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, - 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, - 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, - 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, - 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, - 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, - 0, 2, 2, 0, 2, 4, 3, 1, 1, + 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, + 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, + 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, + 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, + 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, + 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, + 2, 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 773, - 774, 0, 0, 0, 0, 0, 0, 851, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 792, + 793, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 830, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 758, 759, 760, 761, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 772, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 849, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 777, 778, 779, 780, + 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, + 791, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 794, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 562, 724, 0, 701, 709, - 707, 0, 710, 711, 712, 713, 714, 715, 720, 721, - 722, 723, 679, 708, 0, 700, 0, 0, 0, 495, + 0, 0, 0, 813, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 562, 743, 0, 720, 728, + 726, 0, 729, 730, 731, 732, 733, 734, 739, 740, + 741, 742, 697, 727, 0, 719, 0, 0, 0, 495, 0, 563, 564, 565, 0, 0, 0, 0, 0, 0, - 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 804, 822, 840, 854, 0, 0, 0, 0, 0, + 0, 823, 841, 859, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 561, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 789, 0, 0, 795, - 796, 797, 799, 0, 800, 801, 802, 803, 0, 852, - 853, 0, 0, 0, 716, 717, 718, 719, 678, 0, - 681, 0, 702, 704, 237, 238, 0, 0, 682, 0, - 0, 0, 0, 0, 0, 695, 0, 687, 0, 0, - 0, 0, 0, 686, 685, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 64, 440, 68, 735, 0, 0, - 496, 497, 499, 500, 501, 502, 503, 504, 498, 505, - 506, 507, 508, 509, 0, 375, 0, 338, 346, 347, - 0, 0, 0, 0, 368, 5, 0, 511, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, - 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, - 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, - 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, - 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, - 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, - 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, - 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, - 412, 436, 0, 0, 0, 0, 785, 775, 0, 0, - 833, 832, 831, 0, 0, 0, 213, 0, 199, 193, - 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, - 197, 0, 0, 391, 0, 0, 0, 0, 0, 744, - 0, 743, 0, 0, 0, 0, 0, 314, 315, 0, - 0, 0, 0, 75, 69, 0, 96, 791, 0, 0, - 798, 0, 680, 703, 0, 0, 0, 0, 694, 0, - 0, 0, 0, 0, 693, 0, 0, 0, 0, 728, - 683, 0, 725, 0, 0, 0, 0, 0, 0, 0, + 73, 0, 0, 103, 0, 21, 808, 0, 0, 814, + 815, 816, 818, 0, 819, 820, 821, 822, 0, 871, + 872, 0, 0, 0, 735, 736, 737, 738, 696, 0, + 699, 0, 721, 723, 237, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 700, 701, 0, 0, 0, 0, 0, 0, 714, + 0, 706, 0, 0, 0, 0, 0, 705, 704, 0, + 0, 0, 0, 0, 234, 0, 0, 0, 64, 440, + 68, 754, 0, 0, 496, 497, 499, 500, 501, 502, + 503, 504, 498, 505, 506, 507, 508, 509, 0, 375, + 0, 338, 346, 347, 0, 0, 0, 0, 368, 5, + 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 352, 351, 354, + 353, 355, 0, 340, 342, 349, 361, 339, 0, 0, + 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, + 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, + 122, 112, 131, 124, 123, 133, 0, 136, 0, 107, + 0, 281, 276, 277, 278, 279, 280, 284, 282, 292, + 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, + 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, + 413, 0, 411, 0, 412, 436, 0, 0, 0, 0, + 804, 794, 0, 0, 852, 851, 850, 0, 0, 0, + 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, + 204, 198, 205, 206, 197, 0, 0, 391, 0, 0, + 0, 0, 0, 763, 0, 762, 0, 0, 0, 0, + 0, 314, 315, 0, 0, 0, 0, 75, 69, 0, + 96, 810, 0, 0, 817, 0, 698, 722, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, + 0, 0, 0, 0, 712, 0, 0, 0, 0, 747, + 702, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, 256, 0, 0, - 830, 0, 0, 3, 0, 339, 174, 175, 177, 176, + 849, 0, 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, 350, 513, 512, 518, 519, 44, 0, 0, 510, 520, 521, 524, 523, 525, 529, 530, 0, 528, 0, 531, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 372, 0, 0, 0, 0, 12, 807, 815, 816, 805, - 808, 0, 0, 827, 0, 0, 13, 0, 825, 0, - 823, 0, 0, 0, 0, 14, 847, 848, 841, 0, - 0, 15, 858, 859, 855, 0, 125, 126, 127, 128, + 372, 0, 0, 0, 0, 12, 826, 834, 835, 824, + 827, 0, 0, 846, 0, 0, 13, 0, 844, 0, + 842, 0, 0, 0, 0, 14, 866, 867, 860, 0, + 0, 15, 877, 878, 874, 0, 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, - 404, 0, 0, 834, 835, 836, 837, 838, 839, 0, + 404, 0, 0, 853, 854, 855, 856, 857, 858, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 767, + 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 692, 0, 0, 0, 0, 0, 0, 0, 0, 684, - 691, 0, 0, 0, 0, 0, 179, 180, 0, 0, - 0, 0, 0, 139, 0, 245, 259, 840, 0, 0, + 711, 0, 0, 0, 0, 0, 0, 0, 0, 703, + 710, 0, 0, 0, 0, 0, 179, 180, 0, 0, + 0, 0, 0, 139, 0, 245, 259, 859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 514, 0, 0, 0, 0, 0, 0, 522, 0, 553, 0, 0, 0, 551, 367, 384, 370, 0, 387, 376, 377, 378, 379, 381, 382, 380, 0, - 0, 0, 0, 810, 809, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 846, 0, 0, 0, + 0, 0, 0, 829, 828, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 398, 403, 0, - 777, 0, 0, 588, 626, 580, 581, 0, 615, 582, + 796, 0, 0, 588, 626, 580, 581, 0, 615, 582, 583, 584, 585, 586, 587, 617, 593, 594, 595, 596, 0, 0, 0, 623, 0, 0, 0, 0, 578, 579, 602, 603, 604, 621, 605, 606, 607, 608, 0, 0, 611, 0, 619, 625, 273, 0, 0, 0, 0, 0, - 0, 0, 732, 0, 0, 0, 0, 737, 0, 35, + 0, 0, 751, 0, 0, 0, 0, 756, 0, 35, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 444, 0, 77, 0, 97, - 98, 0, 99, 100, 101, 0, 0, 0, 0, 688, - 689, 730, 726, 0, 0, 0, 244, 243, 0, 0, - 258, 257, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 0, 0, 0, 358, 0, 0, 0, 0, - 0, 0, 359, 0, 0, 0, 517, 516, 0, 534, - 0, 0, 537, 0, 0, 0, 344, 0, 0, 0, - 373, 374, 806, 817, 0, 819, 811, 814, 792, 818, - 824, 826, 0, 0, 0, 0, 0, 134, 0, 0, - 0, 0, 157, 0, 0, 0, 148, 141, 294, 0, - 0, 0, 305, 306, 307, 308, 300, 301, 302, 299, - 303, 304, 0, 0, 297, 0, 0, 0, 0, 0, - 0, 402, 410, 409, 408, 407, 405, 406, 0, 0, - 207, 616, 589, 590, 591, 592, 0, 612, 618, 620, - 624, 0, 0, 0, 622, 609, 610, 664, 633, 634, - 0, 661, 635, 636, 637, 638, 639, 640, 663, 645, - 646, 647, 648, 631, 632, 653, 654, 655, 656, 657, - 658, 659, 660, 630, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 649, 0, 0, - 597, 200, 0, 209, 0, 191, 0, 748, 749, 751, - 750, 0, 747, 0, 746, 733, 0, 740, 78, 75, - 70, 0, 0, 544, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 82, 0, 80, 0, 95, 0, 0, + 98, 0, 99, 100, 101, 0, 0, 0, 695, 694, + 0, 0, 0, 0, 685, 684, 683, 682, 680, 678, + 679, 681, 693, 692, 691, 690, 0, 707, 708, 749, + 745, 0, 0, 0, 244, 243, 0, 0, 258, 257, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, + 359, 0, 0, 0, 517, 516, 0, 534, 0, 0, + 537, 0, 0, 0, 344, 0, 0, 0, 373, 374, + 825, 836, 0, 838, 830, 833, 811, 837, 843, 845, + 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, + 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, + 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, + 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, + 410, 409, 408, 407, 405, 406, 0, 0, 207, 616, + 589, 590, 591, 592, 0, 612, 618, 620, 624, 0, + 0, 0, 622, 609, 610, 664, 633, 634, 0, 661, + 635, 636, 637, 638, 639, 640, 663, 645, 646, 647, + 648, 631, 632, 653, 654, 655, 656, 657, 658, 659, + 660, 630, 665, 666, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 649, 0, 0, 597, 200, + 0, 209, 0, 191, 0, 770, 769, 0, 766, 0, + 765, 752, 0, 759, 78, 75, 70, 0, 0, 544, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 81, 82, + 0, 80, 0, 95, 0, 689, 688, 687, 686, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, 251, 252, 253, 254, 246, 0, 0, 0, 173, 265, 264, 266, 267, 260, 181, 0, 362, 0, 365, 366, 0, 45, 46, 0, 533, - 0, 539, 540, 345, 0, 552, 0, 0, 0, 845, - 856, 0, 0, 160, 0, 0, 0, 145, 0, 163, + 0, 539, 540, 345, 0, 552, 0, 0, 0, 864, + 875, 0, 0, 160, 0, 0, 0, 145, 0, 163, 0, 0, 296, 0, 0, 0, 318, 319, 320, 321, - 0, 0, 781, 0, 779, 0, 0, 0, 0, 662, + 0, 0, 800, 0, 798, 0, 0, 0, 0, 662, 641, 642, 643, 644, 651, 0, 0, 652, 0, 598, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 211, 441, 0, @@ -653,29 +664,29 @@ static int yydefred[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 87, 86, 0, 435, 786, 690, + 0, 0, 88, 0, 87, 86, 0, 435, 805, 709, 0, 186, 0, 189, 0, 0, 247, 248, 249, 250, 263, 261, 262, 357, 0, 0, 535, 555, 388, 389, 0, 155, 0, 0, 166, 0, 165, 162, 0, 0, 309, 310, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 599, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 741, 67, 169, 0, + 0, 0, 0, 0, 0, 0, 760, 67, 169, 0, 0, 434, 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, 423, 0, 422, 0, 421, 0, 419, 417, 0, 418, 420, 0, 432, 0, 431, 0, 430, 0, 429, 0, 450, 0, 446, 445, 0, 449, 0, 448, 0, 0, 90, 0, 0, 0, 0, 0, 0, 364, 0, 0, 158, 161, 146, 295, 313, - 270, 0, 783, 0, 0, 575, 0, 601, 0, 752, - 0, 0, 0, 757, 742, 215, 214, 484, 480, 428, + 270, 0, 802, 0, 0, 575, 0, 601, 0, 771, + 0, 0, 0, 776, 761, 215, 214, 484, 480, 428, 0, 427, 0, 426, 0, 425, 0, 482, 480, 478, 476, 470, 473, 482, 480, 478, 476, 493, 486, 447, 489, 89, 91, 0, 0, 188, 0, 0, 0, 0, 168, 0, 0, 628, 0, 574, 0, 600, 0, 0, 0, 0, 0, 482, 480, 478, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 0, 0, 812, 322, 0, 754, 755, - 756, 466, 485, 465, 481, 0, 0, 0, 0, 456, + 79, 0, 0, 0, 0, 831, 322, 0, 773, 774, + 775, 466, 485, 465, 481, 0, 0, 0, 0, 456, 483, 455, 454, 479, 453, 477, 451, 472, 471, 452, 474, 475, 460, 459, 458, 457, 469, 494, 488, 487, 467, 490, 0, 468, 492, 255, 0, 0, 0, 0, @@ -686,353 +697,367 @@ static int yydefred[] = { 1, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 472, 860, 159, 739, 105, 106, 765, 35, - 36, 685, 744, 411, 1079, 73, 1091, 791, 792, 981, - 982, 1028, 1490, 1491, 557, 1546, 745, 746, 747, 211, - 503, 504, 175, 176, 856, 857, 1086, 665, 1093, 1011, - 1258, 895, 896, 1512, 1513, 1508, 1503, 1510, 1511, 1502, - 1519, 1520, 1518, 161, 681, 506, 507, 1206, 1207, 986, - 683, 1317, 684, 897, 671, 672, 1145, 766, 1210, 793, - 634, 212, 229, 230, 107, 231, 108, 214, 187, 190, - 208, 1570, 705, 706, 797, 666, 667, 92, 37, 113, - 479, 115, 205, 116, 38, 39, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 40, 41, 299, 42, 43, 181, 44, 343, 46, - 47, 344, 49, 50, 357, 51, 358, 52, 359, 53, - 360, 54, 345, 346, 347, 58, 348, 293, 60, 61, - 62, 189, 386, 636, 534, 535, 933, 536, 934, 537, - 215, 1170, 1179, 63, 858, 349, 350, 351, 352, 752, - 354, 355, 582, 583, 356, 584, 753, 585, 586, 587, - 588, 64, 201, 76, 423, 424, 899, 65, 608, 600, - 601, 602, 603, 610, 611, 619, 625, + 158, 71, 486, 910, 159, 789, 105, 106, 815, 35, + 36, 715, 794, 425, 1147, 73, 722, 841, 842, 1049, + 1050, 1096, 1560, 1561, 587, 1616, 795, 796, 797, 211, + 533, 534, 175, 176, 906, 907, 1154, 695, 1159, 1079, + 1328, 945, 946, 282, 1582, 1583, 1578, 1573, 1580, 1581, + 1572, 1589, 1590, 1588, 161, 711, 536, 537, 1276, 1277, + 1054, 713, 1387, 714, 947, 701, 702, 1211, 816, 1280, + 843, 664, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1640, 755, 756, 847, 696, 697, 92, 37, + 113, 493, 115, 205, 116, 38, 39, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 40, 41, 313, 42, 43, 181, 44, 357, + 46, 47, 358, 49, 50, 371, 51, 372, 52, 373, + 53, 374, 54, 359, 360, 361, 58, 362, 307, 60, + 61, 62, 189, 400, 666, 564, 565, 1001, 566, 1002, + 567, 215, 1240, 1249, 63, 908, 363, 364, 365, 366, + 802, 368, 369, 612, 613, 370, 614, 803, 615, 616, + 617, 618, 64, 201, 76, 437, 438, 949, 65, 638, + 630, 631, 632, 633, 640, 641, 649, 655, }; static int yysindex[] = { 0, -15661, 0, -370, 672, 0, 80, -221, 1957, 1957, 0, - 0, -146, 1096, 133, 107, -322, -258, 0, -37, -25, - -25, 253, 253,12978, 125, 0, 672, 672, 672, 672, - 0, 0, 98, 0, 120, 120, 120, 0, 0, 0, - 142, 280, 0, 0, 0, 0, 0, 0, 0, 299, - 356, 364, 410, 0, 0, 0, 0, 0, 0, 120, - 0, 76, 0, 606, -25, 0, 0, 0, 0, 496, - 0, -25, 0, 0, 0, -8, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1794, 19, 519, 0, 0, 545, 560, 0, 0, - 734, 755, 755,13181,11607, 0, 582, 0, 0, 566, - -25, -25, 231, 0, 1154, 648, 672, 496, 0, 0, - 0, 0, 0, 0, 0, 0, 0,11607, 0, 0, - 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 878, 0, 323, 878, 726, 0, - 7215, 0, 0, 0, 1760, 34, 532, 496, 601, 264, - 0, 285, 288, 0, 309, 321, 1659, 878, 24, 496, - 496, 496, 0, 0, 649, 518, 748, 777, 0, 0, -14541, 0, 0, 0, 0, 833, 4803, 1794, 513, 6575, - 805, 65, 67, 90, 91, 101, 151, 818, 1362, 837, - 0, 0, 120, 74, 853, 672, 807,12604, 825, 96, - 128, 0, 160, 0, 755, 0, 864, 46, 870, 662, - -25, -25, 0, 0, 0, 0, 0, 0, 0, 890, - 0,12199, 111, 0, 844, 0, 0, -2, 1154, 0, - 0, 0, 0, 491, 0, 0, 0, 0, 496, 0, - 0, -3, 496, 0, 0, 0, 0, 0, 0, 878, - 0, 690, 0, 0, 0, 0,12764, 553, 0, 672, - 896, 82, 898, 739, 496, 0, 672, 0, 956, 989, - 672, 12,11607, 0, 0, 672, 672, 672, 672,11607, - 0, 878, 909, 870, 0, 0, 0, 0,12554,15550, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -25, 0, -25, 0, 0, 0, - -25, 953, -42,13284, 0, 0, 995, 0, 760, -25, - 253, 293, 760, 1659, 6904, 1023, 1794, -165, 755,13181, - 1026, 120, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 785, 318, 5875, 229, 1974, 268, - 0, 1029, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 393, 0, 1794, 0, 1033, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1035, 0, 0, 1043, -25, -25, - 0, -25, 0, -25, 0, 253, 0, 711, 0, 711, - 0, 0, 962, 1056, -8, 1062, 0, 0, -25, -25, - 0, 0, 0, 1020, 496, 0, 0, 1075, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 811, 0, 672, 185, 859, 1006,11607, 0, -13384, 0, 871, 1091, 1099, 1106, 1659, 0, 0, 115, - 496, 1089, 877, 0, 0, 870, 0, 0, 698, 14, - 0, 672, 0, 0, 496, 908, 739, 496, 0, 370, - 672, 672, 672, 496, 0, 496, 1794, 1794, 496, 0, - 0, 914, 0, 43, 128, 1130, 1156, 496, 496, 496, - 496,12349, 0, 0, 840, 0, 0, 0, -25, -25, - 0, -290,13487, 0, 1079, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1083, 1100, 1114, 0, 0, 0, - 1149, -25, 367, 596, -25, 0, 961, 0, 0, 0, - 0, 0, 0, 1199, 1201, 0, 0, 0, 0, 0, - 0, 0, 0,12764, 0, 48, 0, 1205, 870, 120, -11607, 0, 760, 1207, 1206, 0,14640, 0, 1794, 0, - 0, 0, 785, -62, -62, -62, -62, 318, 933, 939, - 0, 781, 1203, 106, 18, 0, 0, 0, 0, 0, - 0, 120, 120, 0, 1210, 1211, 0, 120, 0, 120, - 0, 1252, -127, 672, 812, 0, 0, 0, 0, 672, - 826, 0, 0, 0, 0, -25, 0, 0, 0, 0, - 0, 0, 45, 0, 0, 1258, -25, 859, 1170, 859, - 1255, 1214, 1267, 1268, 1274, 1278, 1281, 0, 1362, 1285, - 0, 1269, 1287, 0, 0, 0, 0, 0, 0, -25, -16016, 16, 450, 0, 172, 1292, 1293, 0, 176, 895, - 1294, 1215, 1275, 0, 1078, 0, 0, 1282, 7526, 1309, - 1314, 540, 1230, 3561, 497, 120, 672, 496, 672, 496, - 0, 672, 601, 601, 601, 1316, 1317, -25, 12, 0, - 0,11607, 1319, 1794,13081, 1021, 0, 0, 853, 618, - 636, 0, 1090, 0,14792, 0, 0, 0, -25, 1276, - -25, 496, -25, 428, 1277,11607, 540, -25, 253, 496, - 1093, 760, 0, 0, 859, 1331, 804, 1329, 1339, 1338, - 0, 0, 0, 1170, 1348, 1346, 0, 0, 0, 0, - 760, 0, 0, 0, 0, 0, 0, 0, 0, -8, - -25, -25, 1354, 0, 0, 1337, 1357, 870, 1360, 1363, - 1366, 1367, 1368, 1371, -25, 672, 0, 496, 672, 17, - 672, 1372, 1376, 0, 0, 0, 0, 1109, 0, 0, - 452, 341, 1358, 1794, 1378, 3, 156, -208, 35, 534, - 1332, 0, 1332, 1332, 1332, 1332, 1332, 0, 0, -25, - 0, -25, 1383, 0, 0, 0, 0, 996, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1385, 910, 936, 0, 926, 1394, -364, 1158, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1385, 1385, - 0, 4130, 0, 0, 0, 524, 1397, 120, -8, 1379, - 0, 1359, 0, 859, 1318, 0,13384, 0, 1321, 0, - 127, -25, 1377, 0, 0, 496, 1089, 0, 384, 386, - 932, 440, 441, 473, 481, 521, 550, 565, 568, 581, - 583, 598, 627, 681, 0, 0, -14, 0, 120, 0, - 0, -8, 0, 0, 0, 1414, 496, 496, 601, 0, - 0, 0, 0, 128, 0, 1007, 0, 0, 496, 672, - 0, 0,11607, 496, -25, 496, -25, 806,11607, 540, -15730, 0, 1145, 1246, 2412, 0, 1073, 1373, 1384, 1794, - 1379,12764, 0, 1428, 1429, 672, 0, 0, 827, 0, - 0, 760, 0, 760, 1430, 35, 0, 0, 1162, 1164, - 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, - 0, 0, 1444, 601, 496, -25, 496, 0, -25, 1448, - 1109, 1794, 0, 1794, 901, 672, 0, 0, 0, 859, - 670, 1450, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1433, 1434, 0, 1403, 1406, 1407, 1413, 1467, - 540, 0, 0, 0, 0, 0, 0, 0, 1464, 0, - 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, - 0, 859, 1421, 1423, 0, 0, 0, 0, 0, 0, - 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -6, 179, - 0, 0, -29, 0, 1846, 0, 1475, 0, 0, 0, - 0, 870, 0, 1477, 0, 0, 1395, 0, 0, 0, - 0, 870, 1439, 0, 1481, 1482, 1506, 1507, 411, -25, - -25, -25, 688, 721, 791, 794, -25, -25, -25, -25, - -25, -25, 253, -25, 663, -25, 922, -25, -25, -25, - -25, -25, -25, -25, 253, -25, 3561, -25, -123, -25, - 1057, -25, 0, 0, 3136, 0, 1508, 0, 1128, 1513, - 1659, 0, 496, 811, 1455, 1462, 1794,12764, 1045, 0, - 1659, 1659, 1659, 1659, 0, 0, 0, 0, 0, 0, - 1659, 1659, 1659, 0, 0, 0, 0, 0, 0, 0, - -8, 0, 1516, 0, 0, 1283, 0, 0, 496, 0, - 1520, 0, 0, 0, -8, 0, -8, -25, 1504, 0, - 0, 1522, -25, 0, 672, 1525, 1524, 0, 45, 0, - 901, 870, 0, -25, 461, 713, 0, 0, 0, 0, -16016, 1509, 0, -25, 0, 1518, 1067, -25, -25, 0, - 0, 0, 0, 0, 0, 859, 1487, 0, -25, 0, - 49, 0, 1541, 1544, 1004, 1547, 1549, 1552, 1553, 1560, - 1561, 1562, 1564, 1565, 1567, 0, 870, 0, 0, -25, - 584, 0, 203, 1486, 1551, 0, 0, 0, 0, 1576, - 1531, 1577, 1532, -25, -25, -25, -25, -25, -25, 253, - -25, 1585, 1535, 1589, 1542, 1598, 1554, 1600, 1558, 1611, - 1618, 1579, 1628, 1629, 1580, 1634, 1595, 1637, 1596, 1649, - 1599, 1650, 1607, 1652, 1608, 1665, 1666, 1615, 1668, 1449, - 1670, 1638, 0, -17, 0, 0, 720, 0, 0, 0, - 62, 0, 1678, 0, 1453, 755, 0, 0, 0, 0, - 0, 0, 0, 0, 1794, 540, 0, 0, 0, 0, - 106, 0, 1695, 901, 0, 1794, 0, 0, 742, 1696, - 0, 0, 0, 0, 1701, 1703, 0, -25, 859, 1651, - 1653, 870, 0, 1654, -25, 0, 1705, 1709, 1711, 1712, - 1713, 1697, 1698, 1704, 1718, 212, 0, 0, 0, 1720, - 1722, 0, 1728, 0, 1729, 1731, 1677, 1732, 1684, 1737, - 1686, 1739, 1699, 0, 1749, 0, 1750, 0, 1751, 0, - 1754, 0, 0, 1755, 0, 0, 1756, 0, 1757, 0, - 1758, 0, 1759, 0, 1765, 0, 1769, 0, 0, 1770, - 0, 1771, 0, 1773, 1555, 0, 1721, 54, 0, 1794, - 540,11607, 0, 1761, 1762, 0, 0, 0, 0, 0, - 0, 0, 0, 1774, 876, 0,16044, 0, 1726, 0, - -25, -25, -25, 0, 0, 0, 0, 0, 0, 0, - 1782, 0, 1783, 0, 1784, 0, 1785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3561, 1787, 0, 1761,12764, 1746, 1836, - 0, 106, 1837, 0, 859, 0, 0, 0, 1838, 1840, - 1841, 28, 37, 0, 0, 0, 0, 83, 94, 154, - 102, 218, 405, 164, 167, 168, 143, 1730, 30, 577, - 0, 1379, 1843, 1603, 0, 0, 0, 1084, 0, 0, - 0, 0, 0, 0, 0, 184, 188, 200, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1621, 0, 0, 0, 0, 540, 1845, 1881, - 859, 0, 0, 0, 0, 0, 1847, 1849, 0, 1850, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 911, 1389, 0, -25, 0, - 1529, 1854, 1860, 755, 0, 0,11607,12764, 1631, 540, - 1761, 1863, 0, 1869, 0, +19397, 0, -338, 683, 0, 48, -221, 2066, 2066, 0, + 0, -66, 1427, 171, 318, -76, 68, 0, -15, 230, + 230, 210, 210, 7863, 424, 0, 683, 683, 683, 683, + 0, 0, 289, 0, 300, 300, 300, 0, 0, 0, + 482, 498, 0, 0, 0, 0, 0, 0, 0, 502, + 528, 534, 559, 0, 0, 0, 0, 0, 0, 300, + 0, 379, 0, 1491, 230, 0, 0, 0, 0, 654, + 0, 230, 0, 0, 0, 378, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1748, -18, 696, 0, 0, 705, 720, 0, 0, + 755, 676, 676, 8301,14177, 0, 662, 0, 0, 743, + 230, 230, 199, 0, 1798, 586, 683, 654, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14177, 0, 0, + 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 0, 517, 363, 469, 0, +11351, 0, 0, 0, 2321, 60, 104, 654, 703, 192, + 0, 459, 463, 0, 476, 481, 1877, 363, 77, 654, + 654, 654, 0, 0, 819, 609, 853, 861, 0, 0, +20252, 0, 0, 0, 0, 873, 4319, 1748, 606,10918, + 890, 75, 90, 120, 170, 178, 187, 920, 1604, 926, + 0, 0, 300, 164, 596, 683, 879,19355, 945, 128, + 896, 0, 224, 0, 676, 0, 985, 51, 993, 765, + 230, 230, 0, 0, 0, 0, 0, 0, 0, 1006, + 0,18957, 17, 0, 962, 0, 0, -2, 1798, 0, + 0, 0, 0, 603, 0, 0, 0, 0, 654, 0, + 0, 13, 654, 0, 0, 0, 0, 0, 0, 363, + 0, 812, 0, 0, 0, 0, 7425, 0, 0, 986, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 579, 0, 0, 683, 1000, 588, 1001, 947, 654, 0, + 683, 0, 1068, 1073, 683, 420,14177, 0, 0, 683, + 683, 683, 683,14177, 0, 363, 972, 993, 0, 0, + 0, 0,19040,18275, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, + 230, 0, 0, 0, 230, 1025, -20, 8739, 0, 0, + 1059, 0, 297, 230, 210, 183, 297, 1877,10913, 1096, + 1748, -144, 676, 8301, 1092, 300, 0, 0, 0, 0, + 0, 0, -1, 0, 0, 0, 0, 0, 764, -13, + 7203, 1940, 135, 259, 0, 1097, 0, 0, 0, 0, + 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 341, 0, 1748, 0, + 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, + 0, 1107, 230, 230, 0, 230, 0, 230, 0, 210, + 0, -28, 0, -28, 0, 0, 1023, 1106, 378, 1113, + 0, 0, 230, 230, 0, 0, 0, 677, 654, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1124, 701, 0, 683, 634, + 903, 1044,14177, 0, 9177, 0, 912, 1138, 1164, 1168, + 1877, 0, 0, 122, 654, 1152, 939, 0, 0, 993, + 0, 0, 750, 14, 0, 683, 0, 0, 654, 943, + 486, 230, 0, 0, 0, 0, 230, 230, 230, 210, + 665, 836, 230, 230, 230, 210, 947, 654, 0, 645, + 683, 683, 683, 654, 0, 654, 1748, 1748, 654, 0, + 0, 946, 0, 50, 896, 1156, 1179, 654, 654, 654, + 654,19100, 0, 0, 859, 0, 0, 0, 230, 230, + 0, -281, 9615, 0, 1102, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1108, 1110, 1130, 0, 0, 0, + 1174, 230, 367, 425, 230, 0, 980, 0, 0, 0, + 0, 0, 0, 1215, 1219, 0, 0, 0, 0, 0, + 0, 0, 0, 7425, 0, 47, 0, 1220, 993, 300, +14177, 0, 297, 1222, 1224, 0,20350, 0, 1748, 0, + 0, 0, 764, -44, -44, -44, -44, -13, 948, 963, + 0, 811, 1225, 142, -8, 0, 0, 0, 0, 0, + 0, 300, 300, 0, 1227, 1228, 0, 300, 0, 300, + 0, 1241, -43, 683, 814, 0, 0, 0, 0, 683, + 822, 0, 0, 0, 0, 230, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 1246, 230, 903,11805, 903, + 1253, 1206, 1259, 1260, 1266, 1267, 1268, 0, 1604, 1276, + 0, 1261, 1274, 0, 0, 0, 0, 0, 0, 230, +21433, 20, 660, 0, 58, 1280, 1278, 0, 935, 1323, + 1281, 1201, 1269, 0, 1064, 0, 0, 1271,12242, 1288, + 1289, 372, 1209, 3526, 445, 300, 683, 654, 683, 0, + 0, 1295, 1302, 230, 230, 230, 210, 1305, 1306, 1307, + 1308, 1309, 1311, 1312, 1313, 1315, 1316, 1318, 1326, 654, + 0, 683, 703, 703, 703, 1327, 1328, 230, 420, 0, + 0,14177, 1330, 1748, 828, 1184, 0, 0, 596, 444, + 449, 0, 1103, 0,20503, 0, 0, 0, 230, 1283, + 230, 654, 230, 80, 1286,14177, 372, 230, 210, 654, + 1112, 297, 0, 0, 903, 1332, 784, 1336, 1333, 1340, + 0, 0, 0,11805, 1346, 1345, 0, 0, 0, 0, + 297, 0, 0, 0, 0, 0, 0, 0, 0, 378, + 230, 230, 1331, 0, 0, 1334, 1350, 993, 1352, 1353, + 1351, 1355, 1356, 1357, 230, 683, 0, 654, 683, 44, + 683, 1362, 1364, 0, 0, 0, 0, 1111, 0, 0, + 594, 139, 1344, 1748, 1375, 12, 1057, -202, 78, 793, + 1329, 0, 1329, 1329, 1329, 1329, 1329, 0, 0, 230, + 0, 230, 1376, 0, 0, 0, 0, 803, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1378, 921, 932, 0, 922, 1383, -376, 1148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1378, 1378, + 0, 3646, 0, 0, 0, 112, 1385, 300, 378, 1366, + 0, 1906, 0, 903, 1310, 0, 9177, 0, 1319, 0, + 57, 230, 1368, 0, 0, 654, 1152, 0, 197, 201, + 991, 203, 431, 443, 453, 465, 497, 508, 515, 518, + 524, 526, 531, 553, 0, 0, 249, 0, 300, 0, + 0, 378, 0, 0, 0, 1390, 654, 654, 0, 0, + 1391, 1392, 1400, 1403, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 703, 0, 0, 0, + 0, 896, 0, 999, 0, 0, 654, 683, 0, 0, +14177, 654, 230, 654, 230, 891,14177, 372,20420, 0, + 1109, 36, 923, 0, 1062, 1361, 1373, 1748, 1366, 7425, + 0, 1409, 1428, 683, 0, 0, 907, 0, 0, 297, + 0, 297, 1429, 78, 0, 0, 1151, 1154, 0, 0, + 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, + 1431, 703, 654, 230, 654, 0, 230, 1434, 1111, 1748, + 0, 1748, 975, 683, 0, 0, 0, 903, 1795, 1435, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1418, 1419, 0, 1389, 1395, 1397, 1398, 1438, 372, 0, + 0, 0, 0, 0, 0, 0, 1439, 0, 0, 0, + 0, 0, 0, 0, 987, 0, 0, 0, 0, 903, + 1394, 1404, 0, 0, 0, 0, 0, 0, 876, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -6, 7, 0, 0, + -36, 0, 2760, 0, 1454, 0, 0, 993, 0, 1456, + 0, 0, 1382, 0, 0, 0, 0, 993, 1405, 0, + 1458, 1465, 1467, 1468, 486, 230, 230, 230, 564, 576, + 605, 653, 230, 230, 230, 230, 230, 230, 210, 230, + 665, 230, 836, 230, 230, 230, 230, 230, 230, 230, + 210, 230, 3526, 230, -95, 230, 867, 230, 0, 0, + 3441, 0, 1471, 0, 1087, 0, 0, 0, 0, 1472, + 1877, 0, 654, 701, 1424, 1425, 1748, 7425, 1009, 0, + 1877, 1877, 1877, 1877, 0, 0, 0, 0, 0, 0, + 1877, 1877, 1877, 0, 0, 0, 0, 0, 0, 0, + 378, 0, 1480, 0, 0, 1252, 0, 0, 654, 0, + 1486, 0, 0, 0, 378, 0, 378, 230, 1470, 0, + 0, 1489, 230, 0, 683, 1490, 1488, 0, 6, 0, + 975, 993, 0, 230, 421, 436, 0, 0, 0, 0, +21433, 1473, 0, 230, 0, 1477, 864, 230, 230, 0, + 0, 0, 0, 0, 0, 903, 1450, 0, 230, 0, + 92, 0, 1504, 1505, 1022, 1508, 1510, 1511, 1513, 1525, + 1527, 1528, 1529, 1530, 1534, 0, 993, 0, 0, 230, + 299, 0, 774, 1457, 1519, 0, 0, 0, 0, 1544, + 1497, 1551, 1501, 230, 230, 230, 230, 230, 230, 210, + 230, 1554, 1503, 1556, 1509, 1557, 1514, 1569, 1520, 1571, + 1574, 1540, 1582, 1602, 1559, 1612, 1567, 1620, 1570, 1624, + 1573, 1627, 1588, 1644, 1597, 1650, 1656, 1605, 1659, 1440, + 1664, 1613, 0, 1348, 0, 0, 507, 0, 0, 0, + 193, 0, 1665, 0, 1436, 676, 0, 0, 0, 0, + 0, 0, 0, 0, 1748, 372, 0, 0, 0, 0, + 142, 0, 1667, 975, 0, 1748, 0, 0, 2989, 1672, + 0, 0, 0, 0, 1674, 1676, 0, 230, 903, 1631, + 1633, 993, 0, 1635, 230, 0, 1677, 1690, 1691, 1692, + 1693, 1675, 1679, 1683, 1701, 871, 0, 0, 0, 1702, + 1703, 0, 1705, 0, 1706, 1707, 1654, 1708, 1657, 1710, + 1666, 1711, 1669, 0, 1726, 0, 1727, 0, 1736, 0, + 1740, 0, 0, 1742, 0, 0, 1743, 0, 1744, 0, + 1745, 0, 1749, 0, 1750, 0, 1751, 0, 0, 1790, + 0, 1747, 0, 1791, 1575, 0, 1739, 617, 0, 1748, + 372,14177, 0, 1773, 1779, 0, 0, 0, 0, 0, + 0, 0, 0, 1799, 1008, 0,10445, 0, 1756, 0, + 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, + 1801, 0, 1802, 0, 1803, 0, 1804, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3526, 1813, 0, 1773, 7425, 1764, 1817, + 0, 142, 1818, 0, 903, 0, 0, 0, 1823, 1830, + 1832, 40, 22, 0, 0, 0, 0, 31, 67, 84, + 37, 159, 232, 93, 95, 107, 105, 1684, 27, 393, + 0, 1366, 1839, 1606, 0, 0, 0, 949, 0, 0, + 0, 0, 0, 0, 0, 132, 149, 150, 114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1621, 0, 0, 0, 0, 372, 1842, 1255, + 903, 0, 0, 0, 0, 0, 1848, 1857, 0, 1858, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 998, 1388, 0, 230, 0, + 1542, 1860, 1861, 676, 0, 0,14177, 7425, 1629, 372, + 1773, 1864, 0, 1867, 0, }; static int yyrindex[] = { 0, - 0, 0, 5241, 0, 0,12859, 1548, 0, 0, 0, - 0, 0,12018, 0, 0, 373, 1844, 0, 2911, 0, + 0, 0, 4757, 0, 0,19466, 1797, 0, 0, 0, + 0, 0,14488, 0, 0, 251, 2281, 0, 2865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1876, 1876, 1876, 0, 0, 0, + 0, 0, 0, 0, 1868, 1868, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1876, - 0, -56, 0, 0, 0, 0, 0, 0, 0, 1796, - 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1868, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 1787, + 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9775, 0, 0, 0, 0, 0, 0, - 7837,13783,13783, 0, 0, 0, 8291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3349, 0, 0, + 0, 0, 0,16737, 0, 0, 0, 0, 0, 0, +12680,13118,13118, 0, 0, 0,15253, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1880, 2756, 0, - 0, 0, 0, 0, 0, 0,12018, 1800, 6867, 7178, - 7489, 7800, 0, 0, 0, 1885, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1806,13783, - 0,11538,11538,11538,11538,11538,11538, 0, 0, 0, - 0, 0, 1876,10153, 0, 0, 0, 0, 0, 0, - 9168, 0,11107, 0,12018, 0, 0, 0,11287, 0, + 0, 0, 0, 0, 0, 0, 0, 1834, 2710, 0, + 0, 0, 0, 0, 0, 0,14488, 1786,13829,14140, +14451,14762, 0, 0, 0, 1871, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1792,13118, + 0,18500,18500,18500,18500,18500,18500, 0, 0, 0, + 0, 0, 1868,17115, 0, 0, 0, 0, 0, 0, +16130, 0,18069, 0,14488, 0, 0, 0,18249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1807, 0, - 0, 1809, 3787, 6565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1793, 0, + 0, 1794, 3741,13527, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6652, 7090, 0, + 7528, 7966, 8404, 8842, 9280, 9718,10156,10594,11032,11470, + 0, 0, 0, 0, 0, 0, 0, 0, 4900, 0, + 0, 0, 0, 0, 0, 1869, 1852, 0, 0, 0, + 0, 0, 0, 0, 0, 1786, 0,15073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4946, 0, 0, 0, 0, 0, - 0, 1889, 1872, 0, 0, 0, 0, 0, 0, 0, - 0, 1800, 0, 8111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14488, 0, 0, + 0, 0,14488, 0, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12018, 0, 0, 0, 0,12018, 0, - 0, 1876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1806, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1813, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1814, 0, 0,16935, 0, 0, +14488, 0, 0, 1869, 81, 1878, 0, 0, 0,15509, + 0, 0, 4179, 1819, 0, 0, 0, 0,19759, 0, + 0, 0,11908,12346,12784,13222, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5338, 0, 0, + 0, 0, 0, 5776, 0, 2272, 0, 0, 4617, 0, + 0, 119, 0, 0, 180, 0, 1881, 5055, 5493, 5931, + 6369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1812, 0, 0, 9973, 0, 0,12018, 0, 0, 1889, - 87, 1898, 0, 0, 0, 8547, 0, 0, 4225, 1820, - 0, 0, 0, 0,14055, 0, 0, 5384, 0, 0, - 0, 0, 0, 5822, 0, 2318, 0, 0, 4663, 0, - 0, 591, 0, 0, 578, 0, 1882, 5101, 5539, 5977, -11746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,20655, 1868, + 0, 0, 1907, 0, 0,13866, 0, 0, 0, 0, + 0, 0,20738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,14875, 1876, - 0, 0, 1904, 0, 0, 976, 0, 0, 0, 0, - 0, 0,14972, 0, 0, 0, 0, 0, 0, 0, + 0, 1868, 1868, 0, 0, 0, 0, 1868, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1876, 1876, 0, 0, 0, 0, 1876, 0, 1876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 169, 0, 0, 1829, 0, 3401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 475, 0, 0, 1823, 0, 1041, 0, 0, + 0, 0,17313, 0, 0, 0, 0, 0, 0, 0, + 740, 1989, 0,16381, 0, 0, 1912, 0, 0, 0, + 1831, 0, 0, 0, 0, 0, 0,15689, 1852, 0, + 0, 0, 0, 63, 0, 1868, 0, 1835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,10351, 0, 0, 0, 0, 0, 0, 0, - 119, 2035, 0, 9419, 0, 0, 1906, 0, 0, 0, - 1824, 0, 0, 0, 0, 0, 0, 8727, 1872, 0, - 0, 0, 0, -21, 0, 1876, 0, 1825, 0, 6260, - 0, 0, 3194, 3632, 4070, 0, 0, 729, 750, 0, - 0, 0,12492, 0, 0,12018, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6214, + 0, 0, 3148, 3586, 4024, 0, 0, 172, 492, 0, + 0, 0,19250, 0, 0,14488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,15167, 0, 0, 0, 0, 0, 0, 0,14389, - 0, 0, 0, 0, 0, 0, 0, 1909, 0, 1915, - 0, 976, 0, 0, 0, 1916, 0, 0, 0, 0, + 0,20821, 0, 0, 0, 0, 0, 0, 0,20169, + 0, 0, 0, 0, 0, 0, 0, 1913, 0, 1914, + 0,13866, 0, 0, 0, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2849, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13573, 0, 0, - 475, 0, 0, 0, 0, 1041, 0, 0, 727, 0, -11538, 0,11538,11538,11538,11538,11538, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6705, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1928, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10053, 0, 0, + 169, 0, 0, 0, 0, 3401, 0, 0, 679, 0, +18500, 0,18500,18500,18500,18500,18500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 444, 0, 0, 0, 0, 0, 0, 612, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, - 0, -7, 0, 0, 0, 1917, 0, 0, 0, 2473, - 9604, 0, 0, 0, 0, 108, 1812, 0, 0, 0, - 0, 0, 0, 976, 976,13903, 1898, 0, 0, 0, + 761, 0, 0, 0, 0, 0, 0, 850, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 761, 761, + 0, 23, 0, 0, 0, 1923, 0, 0, 0, 2427, +16566, 0, 0, 0, 0, 129, 1814, 0, 0, 0, + 0, 0, 0,13866,13866,19595, 1878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1835, 0, 1876, 0, - 0, 0, 0, 0, 0, 0, 1839,14207, 4508, 0, - 0, 0, 0, 758, 976, 0, 0, 0, 661, 0, - 0, 0, 0, 1842, 0,15803, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,15264, 0, 0, 0, -15347, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 976, 1904, 0, 1904, 0, 146, 0,13847, 0, 0, + 0, 0, 0, 0, 0, 0, 1844, 0, 1868, 0, + 0, 0, 0, 0, 0, 0, 1850,19853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3287, 3725, 0, 657, 0, 0, 0, -13573, 0, 0, 1922, 1902, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4462, 0, 0, 0, + 0, 437,13866, 0, 0, 0, 556, 0, 0, 0, + 0, 1855, 0,21141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,20973, 0, 0, 0,21126, 0, + 0, 0, 0, 0, 0, 0, 0, 0,13866, 1907, + 0, 1907, 0, 152, 0,14799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2366, 2803, 0, 710, 0, 0, 0,10053, 0, + 0, 1938, 1918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,10531,10729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,17493,17691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8983, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, + 0, 0, 0, 0, 0, 0, 0,15945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,11907, 0, -12018, 0, 1852, 0, 0, 0, 0, 0, 0, 0, -12018,12018,12018,12018, 0, 0, 0, 0, 0, 0, -12018,12018,12018, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,15499, 0, - 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1925, 0, 475, 0, - 1902, 1041, 0, 0, 0, 0, 0, 0, 0, 0, - 119, 1927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6807, 0, 0, 0, 0, 0, +14488, 0, 1862, 0, 0, 0, 0, 0, 0, 0, +14488,14488,14488,14488, 0, 0, 0, 0, 0, 0, +14488,14488,14488, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,21224, 0, + 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1942, 0, 169, 0, + 1918, 3401, 0, 0, 0, 0, 0, 0, 0, 0, + 740, 1879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,11712, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 976, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,18674, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13866,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,12018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1902, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,10909, 0, 0, 0, - 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,14488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,17871, 0, 0, 0, + 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 976, 0, - 0, 0, 0, 1947, 0, 0, 0, 0, 0, 0, - 0, 976, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,13866, 0, + 0, 0, 0, 1882, 0, 0, 0, 0, 0, 0, + 0,13866, 0, 0, 0, 0, 740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1947, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1882, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1865, 0, 0, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1863, 0, 0,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 976, 0, 0, - 0, 0, 0,12018, 0, 0, 0, 0, 0, 0, - 1947, 0, 976, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13866, 0, 0, + 0, 0, 0,14488, 0, 0, 0, 0, 0, 0, + 1882, 0,13866, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1051,19 +1076,22 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14306, 0, 0, 0, 0, 0, 0, + 0, 0, 0,20017, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1950, 1951, 0, + 1952, 1953, 1954, 1955, 1956, 1958, 1960, 1961, 1962, 1963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1076,41 +1104,42 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1900, + 0, 0, 1966, 1967, 1972, 1973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1752, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1733, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,10475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1120,31 +1149,32 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1953, 0, 0, 0, 0, 0, 0, 0, 0, - 817, 0, 0, 0, 0, 1936, 0, 0, 0, 0, - 0, 0, 0, 1724, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, + 751, 0, 0, 0, 0, 1957, 0, 0, 0, 0, + 0, 0, 0, 1758, 1761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1744, 0, 0, 0, 0, 0, 0, 1781, 0, 0, + 0, 0, 1762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1767, 0, + 0, 0, 0, 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1738, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1757, 1759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1161,2126 +1191,2531 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1786, 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1772, 1776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, + 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1804, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1815, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1816, 0, 0, }; -static int yygindex[] = { 1856, - -4, 109, -634, 0, -434, 56, -99, 0, 100, 0, - 0, 0, 1617, -143, 0, 0,-1067, 0, 1234, 0, - 1048, 326,-1415, -432, -408, -15, -695, 0, 1072, -22, - 1333, 0, 29, 1176, 593, 824, -919, -84, 0, 1092, - 0,-1082, 964, 0, 0,-1341, -642,-1302,-1260, 0, - 0, 0, 0, -150, 1182, 1381, 0, 0, 0, 0, - -633, 0, 0,-1017, 0, 1216, 0, -937,-1117, 873, - 866, -23, 86, 1753, 1622, 2073, -131, 6, 0, 0, - 0, 0, 0, 0, -757, 1237, 0, 2089, 0, 0, - 954, 1992, 1588, 0, -11, 2086, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -285, 1398, 0, -282, -251, -279, 20, 0, - 0, 10, 0, 0, 0, 0, 0, 0, 1393, 0, - 0, 0, 15, 5, 32, 0, 26, 1821, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, -163, - 0, 0, 1533, 0, 0, 0, 170, 0, 0, 0, - 0, 0, 0, 0, 1465, 2051, -35, 0, 1641, 0, - 1764, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1884, + -4, 11, -681, 0, -365, -300, -98, 0, -7, 0, + 0, 0, 1593, -120, 0, 0, -882, 0, 1221, 0, + 1017, 168,-1464, -445, -380, 5, -747, 0, 1041, -22, + 1320, 0, 10, 1160, 557, 779, -998, -84, 0, 1052, + 0,-1147, 924, 0, 0, 0,-1349, -694,-1347,-1321, + 0, 0, 0, 0, -154, 1161, 1384, 0, 0, 0, + 0, -663, 0, 0,-1083, 0, 1175, 0,-1000,-1195, + 824, 809, -3, -85, 1765, 1623, 2098, -161, -5, 0, + 0, 0, 0, 0, 0, -810, 1214, 0, 2114, 0, + 0, 914, 2020, 1584, 0, -14, 2112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -301, 1377, 0, -297, -280, -296, 19, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 1379, + 0, 0, 0, 39, 21, 33, 0, 2, 1837, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + -163, 0, 0, 1531, 0, 0, 0, 364, 0, 0, + 0, 0, 0, 0, 0, 1469, 2087, -27, 0, 1668, + 0, 1780, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 16548 +#define YYTABLESIZE 21937 static int yytable[] = { 70, - 162, 160, 227, 228, 269, 56, 124, 125, 219, 646, - 48, 647, 165, 525, 118, 55, 526, 353, 109, 527, - 45, 1185, 169, 170, 171, 172, 59, 1199, 203, 164, - 629, 1238, 57, 629, 865, 291, 629, 1236, 991, 680, - 576, 1270, 206, 206, 34, 463, 955, 877, 545, 413, - 415, 417, 419, 421, 1304, 119, 693, 694, 695, 206, - 325, 206, 206, 167, 177, 178, 135, 290, 1532, 206, - 1561, 1523, 285, 156, 710, 271, 284, 1534, 767, 218, - 732, 1263, 232, 629, 294, 462, 699, 789, 186, 790, - 407, 1365, 943, 1348, 283, 1242, 216, 74, 147, 206, - 66, 1429, 577, 78, 409, 254, 412, 206, 238, 164, - 249, 252, 253, 91, 1484, 459, 94, 429, 1033, 120, - 121, 259, 198, 1540, 261, 282, 316, 206, 267, 414, - 416, 430, 1514, 566, 1542, 700, 119, 271, 1034, 1306, - 418, 1366, 1545, 167, 292, 37, 316, 764, 476, 37, - 475, 272, 275, 37, 37, 410, 271, 410, 75, 572, - 572, 273, 1536, 203, 204, 285, 1101, 37, 461, 284, - 72, 207, 109, 1516, 492, 1307, 568, 213, 1105, 1106, - 410, 410, 383, 1556, 209, 453, 269, 283, 1575, 269, - 420, 410, 591, 110, 1543, 1612, 1005, 111, 37, 457, - 435, 436, 561, 1538, 1553, 456, 112, 1554, 1555, 572, - 235, 236, 114, 285, 463, 273, 1517, 703, 282, 1150, - 458, 1239, 67, 68, 1572, 69, 1437, 471, 1573, 694, - 206, 426, 862, 474, 480, 283, 483, 296, 119, 571, - 1574, 410, 67, 68, 1376, 69, 1539, 168, 751, 1100, - 126, 67, 711, 569, 69, 1191, 276, 909, 1547, 135, - 505, 34, 485, 488, 179, 490, 282, 512, 292, 494, - 34, 1240, 496, 384, 715, 119, 499, 664, 98, 216, - 216, 508, 509, 510, 511, 216, 500, 34, 1425, 327, - 147, 147, 1559, 67, 68, 1159, 69, 1006, 1007, 1008, - 119, 285, 570, 531, 56, 284, 217, 67, 529, 48, - 69, 119, 564, 530, 55, 552, 558, 473, 528, 45, - 465, 466, 543, 283, 533, 59, 34, 1377, 1560, 98, - 532, 57, 556, 859, 976, 427, 1455, 78, 783, 109, - 565, 974, 78, 776, 1143, 164, 119, 1088, 1089, 1144, - 784, 785, 486, 607, 282, 67, 68, 119, 69, 173, - 566, 598, 598, 617, 623, 122, 123, 489, 786, 119, - 574, 597, 216, 495, 67, 68, 1222, 69, 119, 167, - 984, 502, 599, 599, 618, 624, 174, 482, 216, 500, - 188, 98, 622, 990, 278, 279, 280, 152, 153, 154, - 645, 1521, 180, 1435, 687, 269, 122, 123, 269, 547, - 98, 122, 123, 353, 539, 206, 540, 119, 787, 478, - 541, 182, 567, 1109, 759, 1111, 909, 119, 550, 551, - 119, 119, 560, 117, 1533, 1558, 669, 549, 206, 25, - 325, 559, 119, 22, 1107, 1550, 726, 119, 662, 992, - 663, 119, 633, 575, 1349, 590, 993, 721, 994, 995, - 996, 19, 692, 119, 589, 456, 1264, 37, 37, 37, - 635, 940, 109, 206, 1110, 273, 1112, 688, 183, 1117, - 1119, 119, 690, 553, 627, 627, 184, 278, 279, 280, - 67, 68, 16, 69, 789, 206, 790, 997, 998, 999, - 544, 2, 753, 554, 555, 753, 270, 471, 641, 642, - 768, 643, 1121, 644, 156, 1010, 122, 123, 629, 1235, - 1123, 27, 28, 29, 30, 31, 32, 33, 652, 653, - 1118, 1120, 185, 650, 627, 278, 279, 280, 722, 724, - 2, 206, 861, 1000, 1001, 1002, 673, 1003, 737, 554, - 1004, 353, 554, 796, 1526, 800, 122, 123, 553, 730, - 1125, 1143, 220, 1122, 274, 1081, 1144, 604, 455, 502, - 1143, 1124, 1380, 1381, 1012, 1144, 463, 67, 554, 555, - 69, 119, 696, 697, 221, 487, 691, 455, 788, 1127, - 70, 73, 76, 79, 82, 85, 88, 473, 736, 222, - 67, 68, 1566, 69, 1129, 234, 923, 1131, 713, 778, - 813, 1126, 929, 203, 1080, 780, 799, 1564, 707, 708, - 1133, 547, 1135, 278, 279, 280, 67, 68, 260, 69, - 769, 770, 788, 788, 729, 788, 773, 1137, 774, 547, - 1128, 720, 233, 200, 725, 525, 259, 277, 526, 731, - 949, 527, 577, 577, 281, 1130, 505, 1013, 1132, 1014, - 1015, 1016, 1017, 1018, 749, 734, 1139, 156, 122, 123, - 553, 1134, 740, 1136, 733, 286, 813, 876, 287, 914, - 13, 738, 907, 729, 908, 327, 723, 758, 1138, 295, - 554, 555, 605, 237, 593, 606, 757, 594, 595, 288, - 919, 1434, 577, 942, 924, 926, 928, 566, 925, 898, - 1213, 289, 777, 945, 906, 857, 1291, 1140, 1293, 13, - 1141, 956, 876, 614, 614, 782, 927, 1274, 199, 620, - 1088, 1089, 621, 1485, 156, 156, 795, 156, 27, 28, - 29, 30, 31, 32, 33, 783, 1493, 27, 28, 29, - 30, 31, 32, 33, 754, 755, 756, 784, 785, 813, - 1276, 7, 10, 13, 27, 28, 29, 30, 31, 32, - 33, 1142, 731, 614, 975, 786, 977, 1092, 1275, 900, - 901, 857, 1439, 241, 296, 124, 1102, 985, 297, 916, - 920, 67, 68, 727, 69, 119, 1487, 912, 502, 67, - 68, 548, 69, 27, 28, 29, 30, 31, 32, 33, - 1427, 1277, 67, 68, 902, 69, 119, 298, 936, 548, - 938, 731, 939, 327, 813, 787, 1509, 944, 385, 1569, - 1278, 948, 1515, 1280, 121, 788, 67, 68, 1094, 69, - 947, 285, 727, 951, 126, 284, 408, 119, 285, 1157, - 960, 206, 284, 1351, 1352, 67, 68, 422, 69, 959, - 962, 963, 1537, 283, 1372, 1373, 1374, 1190, 961, 463, - 283, 1577, 98, 361, 973, 1562, 425, 67, 68, 988, - 69, 1279, 1563, 191, 1281, 454, 192, 193, 194, 195, - 813, 196, 197, 198, 282, 67, 68, 1009, 69, 437, - 1154, 282, 1602, 460, 1152, 1212, 1158, 67, 68, 1019, - 69, 1020, 463, 468, 469, 1153, 1496, 1614, 463, 1495, - 566, 566, 1146, 566, 464, 876, 119, 1147, 553, 857, - 467, 67, 68, 1578, 69, 531, 477, 1167, 1176, 617, - 529, 1189, 1166, 1175, 1209, 530, 206, 1227, 554, 555, - 528, 1600, 673, 463, 903, 904, 533, 905, 1169, 1178, - 618, 1090, 532, 992, 1168, 1177, 481, 1084, 156, 484, - 993, 1103, 994, 995, 996, 1611, 553, 250, 251, 67, - 68, 1211, 69, 813, 813, 156, 269, 269, 491, 269, - 493, 152, 153, 154, 1316, 497, 554, 555, 67, 68, - 1257, 69, 119, 813, 262, 263, 876, 1192, 317, 1193, - 1148, 997, 998, 999, 264, 813, 549, 813, 813, 67, - 813, 813, 69, 119, 1155, 1184, 1156, 1186, 498, 1327, - 1328, 1329, 1330, 514, 223, 992, 224, 225, 226, 1331, - 1332, 1333, 993, 542, 994, 995, 996, 61, 64, 97, - 67, 740, 548, 740, 99, 566, 100, 1000, 1001, 1002, - 738, 1003, 738, 101, 1004, 573, 317, 1205, 626, 1208, - 67, 68, 637, 69, 638, 1201, 97, 100, 1202, 103, - 102, 298, 640, 997, 998, 999, 648, 813, 813, 813, - 813, 813, 813, 813, 578, 103, 579, 580, 581, 649, - 269, 269, 651, 1549, 1551, 1353, 1354, 1288, 857, 463, - 1359, 1294, 67, 68, 660, 69, 661, 1311, 857, 1302, - 216, 857, 627, 628, 629, 790, 463, 1571, 668, 1000, - 1001, 1002, 674, 1003, 675, 104, 1004, 67, 68, 676, - 69, 255, 256, 257, 258, 126, 677, 156, 679, 1321, - 682, 1362, 613, 613, 67, 68, 109, 866, 630, 631, - 632, 605, 126, 278, 279, 280, 109, 109, 109, 109, - 278, 279, 280, 98, 1036, 1037, 109, 109, 109, 1241, - 431, 689, 432, 433, 790, 122, 123, 553, 698, 434, - 98, 701, 857, 857, 857, 857, 857, 857, 857, 702, - 1344, 714, 157, 34, 704, 716, 719, 554, 555, 1271, - 1272, 1273, 1113, 1114, 1115, 1116, 1282, 1283, 1284, 1285, - 1286, 1287, 717, 1289, 1290, 1292, 1432, 1295, 1296, 1297, - 1298, 1299, 1300, 1301, 727, 1303, 718, 1305, 728, 1308, - 729, 1312, 1324, 1325, 735, 742, 317, 741, 762, 760, - 790, 317, 317, 317, 317, 761, 317, 317, 317, 317, - 798, 317, 317, 763, 1392, 317, 317, 317, 317, 1165, - 771, 772, 317, 317, 1445, 1022, 1023, 1024, 1025, 1026, - 392, 317, 779, 317, 1367, 1368, 1369, 1370, 1146, 1334, - 1426, 775, 152, 153, 154, 801, 781, 1340, 317, 317, - 317, 794, 1343, 1338, 34, 1339, 802, 803, 804, 152, - 153, 154, 1428, 1350, 805, 97, 67, 68, 806, 69, - 99, 807, 100, 1357, 126, 809, 810, 1360, 1361, 101, - 812, 876, 863, 317, 298, 869, 864, 867, 1364, 868, - 870, 298, 871, 298, 298, 298, 102, 921, 874, 654, - 655, 656, 98, 875, 878, 1309, 910, 911, 915, 1371, - 1375, 103, 1310, 930, 95, 392, 946, 96, 937, 941, - 1174, 950, 952, 1386, 1387, 1388, 1389, 1390, 1391, 953, - 1393, 954, 298, 298, 298, 657, 658, 659, 957, 958, - 97, 98, 922, 964, 965, 99, 966, 100, 790, 200, - 967, 1146, 980, 968, 101, 969, 970, 1029, 971, 1488, - 1528, 972, 978, 67, 68, 979, 69, 2, 989, 987, - 1433, 102, 410, 1021, 1027, 1030, 876, 1031, 298, 298, - 298, 1438, 298, 1032, 1035, 298, 103, 1082, 1104, 1085, - 127, 40, 1096, 1099, 128, 129, 130, 131, 132, 156, - 133, 134, 135, 136, 1149, 137, 138, 1444, 1151, 139, - 140, 141, 142, 1181, 1449, 1182, 143, 144, 1187, 1188, - 1194, 152, 153, 154, 40, 145, 1183, 146, 1197, 40, - 1198, 40, 40, 40, 1200, 40, 1596, 1203, 40, 1214, - 1215, 1216, 147, 148, 149, 1217, 1565, 1552, 1218, 1219, - 40, 40, 40, 40, 1607, 1220, 1221, 1224, 240, 241, - 242, 1228, 1226, 1229, 1260, 1486, 1261, 1262, 2, 317, - 392, 1266, 1267, 392, 392, 392, 392, 150, 392, 392, - 392, 1265, 40, 243, 40, 790, 790, 790, 790, 790, - 1230, 1231, 1232, 1233, 1234, 1268, 1269, 1322, 1318, 478, - 1499, 1500, 1501, 1320, 1323, 1326, 1336, 790, 790, 1335, - 1337, 1341, 1342, 876, 40, 1345, 40, 1346, 633, 1161, - 1162, 1163, 1164, 1524, 790, 790, 790, 790, 1358, 1363, - 1109, 790, 790, 1111, 1608, 393, 1117, 790, 1119, 790, - 790, 1121, 1123, 10, 11, 12, 13, 790, 790, 1125, - 1127, 1129, 1535, 1131, 1133, 876, 1135, 1541, 1535, 1544, - 1378, 1548, 1379, 1541, 1535, 1544, 1382, 1384, 67, 68, - 216, 69, 119, 1383, 1385, 1394, 126, 1395, 244, 1396, - 245, 246, 247, 248, 1397, 1541, 1535, 1544, 1398, 191, - 1400, 1087, 192, 193, 194, 195, 1399, 196, 197, 198, - 1401, 1402, 790, 790, 98, 790, 790, 790, 1403, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 1405, 1406, - 393, 1404, 1407, 1171, 1408, 1172, 1173, 1410, 1088, 1089, - 27, 28, 29, 30, 31, 32, 33, 1409, 1411, 1412, - 1414, 1413, 1416, 1609, 10, 11, 12, 13, 1603, 1415, - 1417, 40, 40, 40, 40, 1418, 1419, 1420, 1421, 40, - 1423, 1422, 40, 155, 40, 40, 40, 40, 40, 40, - 40, 1430, 40, 40, 40, 40, 1431, 40, 40, 40, - 1424, 40, 40, 40, 40, 1436, 1440, 40, 40, 40, - 40, 1441, 1442, 1446, 1274, 1447, 1448, 40, 1276, 40, - 1278, 1280, 40, 1450, 1451, 1452, 40, 40, 1454, 40, - 1456, 1453, 1457, 40, 40, 40, 40, 1458, 1459, 1461, - 1557, 1460, 1462, 152, 153, 154, 1463, 1464, 1465, 1466, - 40, 27, 28, 29, 30, 31, 32, 33, 1468, 1469, - 1470, 1467, 268, 1471, 1472, 1473, 1474, 1475, 1476, 40, - 40, 40, 40, 40, 1477, 40, 40, 393, 1478, 1479, - 393, 1480, 1481, 1483, 1494, 40, 40, 1482, 1498, 1492, - 1489, 1504, 1505, 1506, 1507, 393, 157, 1522, 393, 393, - 393, 393, 40, 393, 393, 393, 872, 40, 40, 40, + 283, 160, 59, 227, 228, 305, 213, 109, 219, 165, + 1255, 555, 120, 121, 118, 556, 557, 367, 164, 45, + 162, 56, 169, 170, 171, 172, 124, 125, 48, 1157, + 927, 1308, 1269, 57, 915, 1059, 203, 1306, 606, 55, + 710, 167, 218, 206, 1023, 177, 178, 139, 839, 1309, + 840, 676, 817, 677, 477, 1374, 489, 204, 206, 206, + 629, 119, 1604, 629, 207, 206, 629, 1631, 304, 186, + 575, 1610, 427, 429, 431, 433, 435, 1615, 339, 782, + 1602, 1333, 232, 760, 308, 1418, 209, 607, 1312, 206, + 476, 421, 1593, 749, 34, 1011, 1167, 74, 164, 1310, + 477, 285, 398, 235, 236, 254, 1101, 1612, 238, 339, + 249, 252, 253, 629, 423, 299, 473, 216, 912, 298, + 316, 167, 206, 1008, 1613, 206, 1102, 566, 267, 426, + 733, 734, 66, 1623, 1435, 1624, 288, 297, 72, 488, + 316, 259, 750, 198, 261, 1626, 487, 1625, 490, 290, + 287, 286, 289, 1149, 1645, 743, 744, 745, 75, 428, + 1244, 109, 748, 285, 306, 424, 37, 1376, 296, 285, + 37, 203, 1642, 475, 37, 37, 1171, 1172, 1052, 1166, + 424, 500, 397, 814, 1436, 467, 591, 78, 37, 1643, + 1644, 341, 269, 34, 1584, 269, 94, 598, 1586, 1617, + 449, 450, 1148, 1377, 287, 470, 621, 443, 156, 430, + 424, 748, 440, 479, 480, 750, 1682, 432, 1507, 37, + 119, 444, 586, 547, 1606, 1587, 434, 485, 1608, 299, + 310, 110, 1499, 298, 494, 1220, 1175, 583, 206, 135, + 1177, 547, 1183, 216, 67, 68, 67, 69, 1446, 69, + 119, 297, 577, 216, 601, 1609, 497, 584, 585, 646, + 424, 761, 499, 471, 750, 597, 801, 599, 424, 217, + 119, 1261, 1620, 519, 535, 765, 518, 424, 216, 520, + 525, 542, 296, 524, 472, 119, 526, 1176, 532, 1629, + 529, 1178, 1340, 1184, 119, 538, 539, 540, 541, 833, + 122, 123, 306, 1074, 1075, 1076, 67, 34, 2, 69, + 119, 834, 835, 665, 563, 59, 1229, 34, 216, 67, + 68, 569, 69, 570, 600, 1630, 594, 571, 744, 836, + 119, 558, 45, 561, 56, 580, 581, 909, 216, 590, + 559, 48, 109, 595, 573, 562, 57, 119, 164, 582, + 588, 560, 55, 579, 566, 98, 119, 589, 119, 720, + 721, 1044, 620, 67, 68, 604, 69, 119, 122, 123, + 119, 167, 629, 629, 648, 654, 977, 122, 123, 837, + 619, 67, 68, 652, 69, 119, 206, 67, 68, 703, + 69, 628, 628, 647, 653, 119, 530, 1292, 67, 68, + 663, 69, 1058, 496, 717, 119, 1591, 2, 111, 627, + 1505, 269, 119, 119, 269, 671, 672, 98, 673, 492, + 674, 78, 119, 98, 583, 441, 78, 826, 156, 156, + 642, 156, 135, 1634, 675, 682, 683, 292, 293, 294, + 1628, 746, 747, 367, 584, 585, 122, 123, 583, 680, + 699, 605, 112, 156, 809, 117, 487, 771, 67, 68, + 1042, 69, 692, 1241, 693, 1242, 1243, 763, 584, 585, + 1185, 1419, 147, 122, 123, 109, 532, 776, 287, 470, + 548, 1173, 1187, 156, 10, 11, 12, 13, 37, 37, + 37, 718, 1189, 119, 723, 122, 123, 583, 548, 728, + 729, 730, 1334, 732, 1191, 736, 737, 738, 781, 741, + 807, 807, 740, 807, 731, 773, 735, 584, 585, 1305, + 739, 1186, 574, 799, 118, 121, 124, 127, 130, 133, + 136, 2, 284, 1188, 993, 746, 1193, 485, 114, 995, + 818, 757, 758, 1190, 643, 977, 168, 1195, 629, 838, + 173, 292, 293, 294, 1197, 1192, 67, 1199, 1078, 69, + 119, 1596, 119, 1201, 770, 1203, 174, 775, 772, 774, + 1205, 27, 28, 29, 30, 31, 32, 33, 787, 1442, + 1443, 1444, 295, 846, 746, 850, 13, 1194, 784, 780, + 1450, 1451, 1207, 1636, 469, 790, 644, 1497, 1196, 645, + 469, 367, 566, 1344, 179, 1198, 783, 1209, 1200, 786, + 808, 517, 1210, 788, 1202, 1346, 1204, 341, 172, 81, + 180, 1206, 67, 68, 182, 69, 67, 68, 807, 69, + 126, 67, 68, 206, 69, 827, 839, 67, 840, 828, + 69, 819, 820, 1208, 1348, 830, 849, 823, 832, 824, + 183, 203, 67, 68, 1345, 69, 184, 991, 98, 845, + 126, 237, 206, 997, 147, 147, 1347, 169, 984, 988, + 27, 28, 29, 30, 31, 32, 33, 1554, 241, 206, + 522, 185, 863, 119, 67, 68, 535, 69, 98, 1603, + 206, 1632, 1350, 188, 530, 1349, 259, 555, 1633, 206, + 1017, 556, 557, 67, 68, 206, 69, 926, 67, 68, + 13, 69, 957, 807, 958, 948, 961, 962, 963, 1262, + 650, 1263, 233, 651, 1504, 956, 694, 950, 951, 982, + 1081, 964, 1082, 1083, 1084, 1085, 1086, 742, 299, 220, + 980, 532, 298, 1351, 221, 482, 483, 262, 263, 291, + 987, 1555, 911, 1010, 992, 994, 996, 264, 1056, 222, + 297, 1004, 952, 1006, 1563, 1007, 67, 68, 876, 69, + 1012, 1024, 926, 772, 1016, 341, 772, 152, 153, 154, + 572, 572, 234, 1013, 27, 28, 29, 30, 31, 32, + 33, 296, 1015, 1028, 27, 28, 29, 30, 31, 32, + 33, 627, 627, 1030, 1031, 720, 721, 152, 153, 154, + 1361, 1027, 1363, 1421, 1422, 566, 566, 1041, 566, 1557, + 1029, 299, 260, 1019, 1043, 298, 1045, 1158, 1423, 1424, + 572, 703, 34, 1080, 876, 477, 1168, 1053, 67, 68, + 1077, 69, 119, 297, 1579, 67, 68, 1639, 69, 300, + 1585, 627, 1087, 301, 1088, 67, 68, 81, 69, 309, + 157, 81, 81, 81, 81, 81, 302, 81, 81, 81, + 81, 303, 81, 81, 296, 310, 81, 81, 81, 81, + 1607, 85, 554, 81, 81, 554, 88, 833, 91, 1647, + 577, 577, 81, 311, 81, 94, 614, 614, 1447, 834, + 835, 312, 953, 954, 1156, 955, 477, 1429, 1160, 81, + 81, 81, 97, 375, 1169, 250, 251, 836, 210, 1152, + 1672, 399, 1254, 445, 1256, 446, 447, 100, 119, 34, + 583, 422, 448, 299, 1227, 1684, 206, 298, 269, 269, + 577, 269, 67, 68, 81, 69, 614, 1260, 1212, 477, + 584, 585, 657, 658, 659, 297, 1648, 156, 1213, 436, + 67, 68, 1214, 69, 1275, 439, 1278, 837, 1224, 1222, + 97, 451, 299, 1282, 1228, 99, 753, 100, 804, 805, + 806, 34, 876, 1223, 101, 1225, 296, 1226, 660, 661, + 662, 477, 1641, 926, 297, 1525, 109, 112, 1681, 115, + 563, 102, 1239, 1248, 648, 468, 684, 685, 686, 1259, + 145, 148, 790, 151, 790, 1297, 103, 558, 1279, 561, + 206, 1237, 1246, 647, 474, 296, 559, 478, 1236, 1245, + 788, 562, 788, 1238, 1247, 477, 1271, 560, 1670, 1272, + 477, 25, 687, 688, 689, 22, 481, 1250, 1566, 1281, + 477, 1565, 269, 269, 491, 223, 1386, 224, 225, 226, + 292, 293, 294, 19, 613, 613, 1104, 1105, 1327, 1397, + 1398, 1399, 1400, 608, 926, 609, 610, 611, 495, 1401, + 1402, 1403, 1090, 1091, 1092, 1093, 1094, 67, 68, 809, + 69, 498, 521, 523, 16, 126, 544, 1073, 127, 122, + 123, 583, 128, 129, 130, 131, 132, 527, 133, 134, + 135, 136, 528, 137, 138, 572, 578, 139, 140, 141, + 142, 584, 585, 98, 143, 144, 67, 68, 596, 69, + 81, 603, 1209, 145, 126, 146, 656, 1210, 667, 668, + 1311, 1394, 1395, 292, 293, 294, 670, 678, 809, 679, + 147, 148, 149, 681, 985, 1300, 1301, 1302, 1303, 1304, + 690, 876, 98, 691, 216, 1379, 698, 34, 1341, 1342, + 1343, 876, 1380, 704, 876, 1352, 1353, 1354, 1355, 1356, + 1357, 705, 1359, 1360, 1362, 150, 1365, 1366, 1367, 1368, + 1369, 1370, 1371, 1358, 1373, 2, 1375, 1364, 1378, 986, + 1382, 1619, 1621, 1381, 706, 1372, 67, 68, 707, 69, + 119, 709, 712, 635, 809, 109, 719, 751, 642, 1391, + 748, 1432, 752, 754, 764, 109, 109, 109, 109, 1209, + 766, 769, 767, 1235, 1210, 109, 109, 109, 255, 256, + 257, 258, 152, 153, 154, 876, 876, 876, 876, 876, + 876, 876, 768, 777, 778, 292, 293, 294, 779, 785, + 1410, 1404, 791, 792, 810, 1413, 503, 504, 505, 506, + 1414, 1179, 1180, 1181, 1182, 1408, 1420, 1409, 812, 811, + 825, 152, 153, 154, 829, 813, 1427, 821, 822, 844, + 1430, 1431, 831, 851, 292, 293, 294, 1502, 852, 853, + 854, 1434, 1437, 1438, 1439, 1440, 855, 856, 857, 27, + 28, 29, 30, 31, 32, 33, 859, 862, 860, 1503, + 913, 914, 1441, 1445, 917, 918, 920, 924, 925, 919, + 1508, 921, 643, 928, 1212, 959, 1456, 1457, 1458, 1459, + 1460, 1461, 960, 1463, 1515, 965, 966, 967, 968, 969, + 1060, 970, 971, 972, 1462, 973, 974, 1061, 975, 1062, + 1063, 1064, 809, 7, 10, 13, 976, 978, 979, 983, + 1032, 155, 1018, 1021, 13, 1005, 998, 1665, 1009, 1020, + 1496, 2, 1498, 1022, 644, 1014, 1025, 645, 1026, 1034, + 1037, 1033, 1035, 1036, 1038, 40, 1039, 1040, 1065, 1066, + 1067, 926, 1046, 1047, 1048, 1055, 27, 28, 29, 30, + 31, 32, 33, 156, 1556, 1057, 1089, 1095, 1097, 424, + 1514, 1098, 1100, 1099, 1103, 1150, 1153, 1519, 40, 1170, + 1215, 1216, 1217, 40, 1162, 40, 40, 40, 156, 40, + 1218, 1165, 40, 1219, 1068, 1069, 1070, 1212, 1071, 1257, + 1221, 1072, 1251, 1252, 40, 40, 40, 40, 27, 28, + 29, 30, 31, 32, 33, 1253, 104, 1267, 1258, 1264, + 1268, 1270, 1594, 1273, 1284, 1285, 1286, 1291, 97, 1558, + 1598, 1287, 1294, 99, 1298, 100, 40, 1288, 40, 1289, + 1290, 1296, 101, 1330, 1299, 1331, 926, 1335, 1336, 809, + 809, 809, 809, 809, 1332, 1337, 1338, 1339, 492, 102, + 989, 1388, 1390, 1569, 1570, 1571, 1392, 1393, 40, 1396, + 40, 809, 809, 1405, 103, 1406, 1407, 1411, 200, 1412, + 1415, 1416, 663, 1231, 1232, 1233, 1234, 1428, 809, 809, + 809, 809, 1433, 1175, 1177, 809, 809, 1183, 1650, 1185, + 1187, 809, 1189, 809, 809, 990, 1666, 10, 11, 12, + 13, 809, 809, 1651, 1191, 1605, 1193, 1195, 1197, 1199, + 1611, 1605, 1614, 1201, 1618, 1677, 1611, 1605, 1614, 1652, + 1449, 1448, 67, 68, 1452, 916, 1635, 1622, 1653, 1453, + 126, 1454, 1679, 1455, 1464, 1465, 1466, 1468, 1611, 1605, + 1614, 1467, 1654, 1655, 1656, 1657, 1469, 67, 68, 1470, + 69, 1472, 1471, 199, 1473, 126, 809, 809, 98, 809, + 809, 809, 1475, 809, 809, 809, 809, 809, 809, 809, + 809, 809, 1474, 926, 1658, 1659, 1660, 1661, 1662, 1663, + 1664, 200, 1476, 98, 27, 28, 29, 30, 31, 32, + 33, 1477, 1478, 1495, 1678, 40, 40, 40, 40, 1479, + 1480, 1673, 1481, 40, 1482, 1483, 40, 1484, 40, 40, + 40, 40, 40, 40, 40, 926, 40, 40, 40, 40, + 1485, 40, 40, 40, 1486, 40, 40, 40, 40, 1487, + 1488, 40, 40, 40, 40, 95, 1489, 1490, 96, 1491, + 392, 40, 1492, 40, 1493, 1494, 40, 1506, 1500, 1501, + 40, 40, 1510, 40, 1511, 1512, 1344, 40, 40, 40, + 40, 97, 98, 1516, 1627, 1517, 99, 1518, 100, 1346, + 1348, 1350, 1521, 1520, 40, 101, 1522, 152, 153, 154, + 1523, 1524, 1526, 1527, 1528, 1529, 1531, 1530, 1532, 1533, + 1534, 1536, 102, 40, 40, 40, 40, 40, 1535, 40, + 40, 1537, 152, 153, 154, 1538, 1539, 103, 191, 40, + 40, 192, 193, 194, 195, 1540, 196, 197, 198, 1541, + 157, 1542, 1543, 1544, 1545, 392, 40, 1550, 1546, 1547, + 1548, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 1525, 1568, 1527, 1529, 566, - 1530, 1531, 1567, 1576, 210, 1579, 1604, 1597, 1598, 1599, - 40, 40, 40, 40, 1605, 40, 40, 40, 40, 1601, - 1606, 40, 1613, 40, 1610, 40, 40, 40, 40, 1615, - 40, 40, 566, 40, 40, 40, 437, 566, 104, 566, - 566, 566, 40, 566, 29, 438, 566, 95, 137, 793, - 96, 849, 727, 545, 399, 828, 738, 543, 566, 566, - 566, 566, 820, 546, 538, 138, 745, 850, 739, 541, - 40, 40, 40, 97, 98, 542, 550, 271, 99, 74, - 100, 821, 143, 164, 829, 144, 147, 101, 40, 40, - 566, 40, 40, 40, 240, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 102, 40, 167, 210, 576, 4, - 31, 28, 28, 55, 94, 58, 106, 55, 55, 103, - 109, 115, 566, 1595, 566, 112, 879, 880, 881, 55, - 882, 883, 884, 885, 55, 886, 887, 198, 55, 888, - 889, 890, 891, 639, 983, 118, 892, 893, 1204, 1196, - 127, 913, 34, 1083, 208, 300, 130, 131, 132, 1497, - 133, 134, 135, 136, 1355, 137, 138, 1195, 1259, 139, - 140, 141, 142, 67, 68, 55, 69, 144, 1108, 873, - 55, 126, 55, 55, 127, 55, 55, 55, 128, 129, - 130, 131, 132, 55, 133, 134, 135, 136, 55, 137, - 138, 1347, 1098, 139, 140, 141, 142, 1356, 678, 98, - 143, 144, 572, 208, 894, 208, 163, 93, 616, 145, - 1095, 146, 1319, 794, 794, 239, 794, 216, 709, 166, - 935, 931, 513, 808, 202, 750, 147, 148, 149, 686, - 0, 609, 1243, 1244, 1245, 0, 1246, 1247, 1248, 1249, - 0, 1250, 1251, 198, 0, 1252, 1253, 1254, 1255, 566, - 566, 0, 566, 0, 1256, 0, 0, 566, 0, 0, - 566, 150, 566, 566, 566, 566, 566, 566, 566, 208, - 566, 566, 566, 566, 0, 566, 566, 0, 0, 566, - 566, 566, 566, 0, 1580, 566, 566, 566, 566, 0, - 0, 0, 0, 0, 0, 566, 0, 566, 0, 1581, - 566, 0, 0, 0, 0, 566, 0, 0, 794, 794, - 794, 566, 566, 566, 566, 1582, 0, 0, 152, 153, - 154, 0, 0, 0, 1583, 0, 0, 0, 0, 0, - 0, 0, 0, 794, 0, 0, 0, 0, 1584, 1585, - 1586, 1587, 0, 0, 0, 0, 0, 566, 0, 566, - 566, 566, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 566, 566, 0, 0, 0, 0, 0, - 1588, 1589, 1590, 1591, 1592, 1593, 1594, 0, 0, 612, - 566, 0, 0, 0, 0, 566, 566, 566, 566, 566, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 1549, + 1551, 1553, 1559, 566, 393, 1283, 1562, 1552, 210, 1564, + 1574, 1575, 1576, 1577, 40, 40, 40, 40, 1568, 40, + 40, 40, 40, 1592, 922, 40, 1595, 40, 1597, 40, + 40, 40, 40, 1599, 40, 40, 566, 40, 40, 40, + 1600, 566, 1601, 566, 566, 566, 40, 566, 1637, 1638, + 566, 191, 1649, 1646, 192, 193, 194, 195, 1667, 196, + 197, 198, 566, 566, 566, 566, 1668, 1669, 1671, 1674, + 1675, 1676, 1680, 1683, 40, 40, 40, 1685, 437, 104, + 29, 438, 746, 545, 137, 812, 868, 543, 147, 393, + 399, 167, 40, 40, 566, 40, 40, 40, 847, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 757, 40, + 392, 839, 546, 392, 392, 392, 392, 538, 392, 392, + 392, 138, 764, 541, 542, 758, 566, 869, 566, 550, + 929, 930, 931, 271, 932, 933, 934, 935, 74, 936, + 937, 198, 840, 938, 939, 940, 941, 848, 143, 164, + 942, 943, 144, 576, 240, 210, 861, 4, 208, 28, + 31, 34, 37, 40, 43, 46, 156, 49, 34, 52, + 55, 58, 61, 64, 67, 70, 73, 67, 68, 64, + 69, 76, 79, 669, 106, 126, 142, 154, 127, 157, + 103, 160, 128, 129, 130, 131, 132, 103, 133, 134, + 135, 136, 103, 137, 138, 103, 103, 139, 140, 141, + 142, 103, 103, 98, 143, 144, 103, 208, 944, 208, + 103, 166, 861, 145, 163, 146, 393, 67, 68, 393, + 69, 1051, 103, 314, 637, 1274, 1266, 1151, 981, 1425, + 147, 148, 149, 1567, 393, 1265, 1329, 393, 393, 393, + 393, 103, 393, 393, 393, 103, 103, 1174, 1060, 103, + 103, 1164, 923, 566, 566, 1061, 566, 1062, 1063, 1064, + 1426, 566, 1417, 708, 566, 150, 566, 566, 566, 566, + 566, 566, 566, 208, 566, 566, 566, 566, 602, 566, + 566, 163, 93, 566, 566, 566, 566, 1161, 1389, 566, + 566, 566, 566, 239, 759, 166, 1065, 1066, 1067, 566, + 999, 566, 543, 800, 566, 95, 1003, 858, 96, 566, + 202, 639, 240, 241, 242, 566, 566, 566, 566, 0, + 716, 0, 152, 153, 154, 67, 68, 216, 69, 119, + 0, 97, 98, 126, 0, 0, 99, 243, 100, 0, + 0, 0, 1068, 1069, 1070, 101, 1071, 0, 1155, 1072, + 0, 566, 0, 566, 566, 566, 0, 0, 0, 0, + 861, 98, 102, 0, 0, 0, 0, 566, 566, 0, + 0, 0, 2, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 861, 566, 720, 721, 0, 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 0, 0, 0, 208, 566, 0, - 0, 566, 566, 0, 0, 0, 0, 567, 794, 0, - 794, 794, 794, 794, 0, 0, 0, 0, 566, 566, - 566, 566, 0, 566, 566, 566, 566, 155, 0, 566, - 0, 566, 0, 566, 566, 566, 0, 0, 566, 566, - 567, 566, 566, 566, 0, 567, 208, 567, 567, 567, - 566, 567, 0, 0, 567, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 567, 567, 567, 567, - 0, 0, 0, 613, 0, 0, 0, 0, 566, 566, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 0, 566, 566, 567, 566, - 566, 566, 0, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 0, 566, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 614, 0, 0, 615, 0, - 567, 0, 567, 0, 208, 208, 208, 208, 208, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 0, 0, 0, 208, 0, 0, 208, 208, 0, 0, - 34, 0, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 208, 208, 208, 0, 208, 208, - 208, 208, 0, 0, 0, 0, 208, 0, 0, 208, - 0, 0, 0, 0, 0, 0, 208, 208, 208, 27, - 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 0, 0, 0, 0, 1180, 0, 0, 0, - 0, 0, 0, 208, 208, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 208, 0, 208, 208, 208, 0, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 567, 567, 0, - 567, 0, 0, 0, 0, 567, 0, 0, 567, 0, - 567, 567, 567, 567, 567, 567, 567, 210, 567, 567, - 567, 567, 0, 567, 567, 0, 0, 567, 567, 567, - 567, 0, 0, 567, 567, 567, 567, 0, 0, 0, - 0, 0, 0, 567, 0, 567, 0, 0, 567, 0, - 0, 0, 0, 567, 0, 0, 0, 0, 0, 567, - 567, 567, 567, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 567, 0, 567, 567, 567, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 612, 567, 0, - 0, 0, 0, 567, 567, 567, 567, 567, 567, 567, + 566, 566, 566, 566, 566, 566, 566, 566, 0, 0, + 0, 208, 566, 0, 0, 566, 566, 0, 0, 0, + 0, 567, 244, 0, 245, 246, 247, 248, 634, 0, + 0, 0, 566, 566, 566, 566, 0, 566, 566, 566, + 566, 155, 0, 566, 0, 566, 0, 566, 566, 566, + 0, 0, 566, 566, 567, 566, 566, 566, 0, 567, + 208, 567, 567, 567, 566, 567, 0, 0, 567, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 567, 567, 567, 567, 0, 0, 0, 861, 0, 0, + 0, 0, 566, 566, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, + 566, 566, 567, 566, 566, 566, 0, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 0, 566, 0, 861, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 861, + 0, 13, 861, 0, 567, 0, 567, 0, 208, 208, + 208, 208, 208, 635, 0, 623, 636, 0, 624, 625, + 0, 0, 208, 0, 0, 0, 0, 208, 0, 0, + 208, 208, 0, 0, 862, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 208, 208, 208, + 208, 0, 208, 208, 208, 208, 0, 0, 0, 0, + 208, 0, 0, 208, 0, 0, 0, 0, 0, 0, + 208, 208, 208, 861, 861, 861, 861, 861, 861, 861, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 210, 0, 0, 0, 0, + 862, 0, 0, 0, 0, 0, 0, 208, 208, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 0, 208, 208, 0, 208, 208, + 208, 0, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 567, 567, 0, 567, 0, 0, 0, 0, 567, + 813, 813, 567, 813, 567, 567, 567, 567, 567, 567, + 567, 210, 567, 567, 567, 567, 0, 567, 567, 0, + 0, 567, 567, 567, 567, 0, 0, 567, 567, 567, + 567, 0, 0, 0, 0, 0, 0, 567, 0, 567, + 0, 0, 567, 0, 0, 0, 0, 567, 0, 0, + 0, 127, 0, 567, 567, 567, 567, 268, 269, 270, + 0, 271, 272, 273, 274, 0, 275, 276, 0, 0, + 277, 278, 279, 280, 0, 0, 0, 0, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, + 0, 567, 567, 567, 0, 813, 813, 813, 862, 0, + 0, 0, 0, 0, 0, 567, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 813, 862, 567, 0, 0, 0, 0, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 0, 0, 0, 210, 567, 0, 0, 567, - 567, 0, 0, 0, 0, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 567, 567, 567, 567, - 0, 567, 567, 567, 567, 0, 0, 567, 0, 567, - 0, 567, 567, 567, 0, 0, 567, 567, 560, 567, - 567, 567, 0, 560, 210, 560, 560, 560, 567, 560, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 560, 560, 560, 560, 0, 0, - 0, 613, 0, 0, 0, 0, 567, 567, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 567, 567, 560, 567, 567, 567, - 0, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 0, 567, 0, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 614, 0, 0, 615, 0, 560, 0, - 560, 0, 210, 210, 210, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 210, 0, 0, 210, 210, 0, 842, 0, 0, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 210, 0, 210, 210, 210, 210, - 0, 0, 0, 0, 210, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 210, 210, 210, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, - 0, 210, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 210, 0, 210, 210, 210, 0, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 560, 560, 0, 560, 0, - 0, 0, 0, 560, 0, 0, 560, 0, 560, 560, - 560, 560, 560, 560, 560, 92, 560, 560, 560, 560, - 0, 560, 560, 0, 0, 560, 560, 560, 560, 0, - 0, 560, 560, 560, 560, 0, 0, 0, 0, 0, - 0, 560, 0, 560, 0, 0, 560, 0, 0, 0, - 0, 560, 0, 0, 0, 0, 0, 560, 560, 560, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 560, 0, 560, 560, 560, 0, 0, - 0, 842, 0, 0, 0, 0, 0, 0, 0, 560, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 842, 0, 560, 0, 0, 0, - 0, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 567, 567, 567, 567, 567, 567, 0, 0, 0, 210, + 567, 0, 0, 567, 567, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 567, 567, 567, 567, 0, 567, 567, 567, 567, 0, + 0, 567, 0, 567, 0, 567, 567, 567, 0, 0, + 567, 567, 560, 567, 567, 567, 0, 560, 210, 560, + 560, 560, 567, 560, 0, 813, 0, 813, 813, 813, + 813, 0, 0, 0, 0, 0, 0, 0, 560, 560, + 560, 560, 0, 0, 0, 862, 0, 0, 0, 0, + 567, 567, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 567, 567, + 560, 567, 567, 567, 0, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 0, 567, 0, 862, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, + 862, 0, 560, 0, 560, 0, 210, 210, 210, 210, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 0, 0, 0, 0, 210, 0, 0, 210, 210, + 0, 863, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 210, 210, 210, 0, + 210, 210, 210, 210, 0, 0, 0, 0, 210, 0, + 0, 210, 0, 0, 0, 0, 0, 0, 210, 210, + 210, 862, 862, 862, 862, 862, 862, 862, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 863, 0, 0, + 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 0, 210, 210, 210, 0, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 560, + 560, 0, 560, 0, 0, 0, 0, 560, 0, 0, + 560, 0, 560, 560, 560, 560, 560, 560, 560, 92, + 560, 560, 560, 560, 0, 560, 560, 0, 0, 560, + 560, 560, 560, 0, 0, 560, 560, 560, 560, 0, + 0, 0, 0, 0, 0, 560, 0, 560, 0, 0, + 560, 216, 0, 0, 0, 560, 0, 0, 0, 1509, + 0, 560, 560, 560, 560, 0, 1313, 1314, 1315, 0, + 1316, 1317, 1318, 1319, 0, 1320, 1321, 198, 0, 1322, + 1323, 1324, 1325, 0, 0, 0, 0, 0, 1326, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 560, + 560, 560, 0, 0, 0, 863, 0, 0, 0, 0, + 0, 0, 0, 560, 560, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 863, 0, + 560, 0, 0, 0, 0, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 0, 0, 0, 92, 560, 0, 0, 560, 560, 0, - 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 560, 560, 560, 560, 0, 560, - 560, 560, 560, 0, 0, 560, 0, 560, 0, 560, - 560, 560, 0, 0, 560, 560, 558, 560, 560, 560, - 0, 558, 0, 558, 558, 558, 560, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 558, 558, 558, 0, 0, 842, 0, - 0, 0, 0, 0, 560, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 560, 560, 558, 560, 560, 560, 0, 560, - 560, 560, 560, 560, 560, 560, 560, 560, 0, 560, - 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 842, 0, 0, 842, 0, 0, 558, 0, 558, 0, - 92, 92, 92, 92, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 92, 0, 843, 0, 0, 93, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 92, 92, 92, 0, 0, 0, 92, 92, 0, 0, - 0, 0, 92, 0, 0, 92, 0, 0, 0, 0, - 0, 0, 92, 92, 842, 842, 842, 842, 842, 842, - 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 93, 0, 0, - 0, 843, 130, 131, 132, 0, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 0, 1313, 144, 0, 0, 0, 92, 92, 0, - 92, 92, 92, 0, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 558, 558, 0, 558, 0, 0, 0, - 0, 558, 0, 0, 558, 0, 558, 558, 558, 558, - 558, 558, 558, 93, 558, 558, 558, 558, 0, 558, - 558, 1314, 0, 558, 558, 558, 558, 0, 0, 558, - 558, 558, 558, 0, 0, 0, 0, 0, 0, 558, - 1315, 558, 0, 0, 558, 0, 0, 0, 0, 558, - 0, 0, 0, 0, 0, 558, 558, 558, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 558, 0, 558, 558, 558, 0, 0, 0, 843, - 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 843, 0, 558, 0, 0, 0, 0, 558, + 560, 560, 560, 560, 0, 0, 0, 92, 560, 0, + 0, 560, 560, 0, 0, 0, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 560, 560, + 560, 560, 0, 560, 560, 560, 560, 0, 0, 560, + 0, 560, 0, 560, 560, 560, 0, 0, 560, 560, + 558, 560, 560, 560, 0, 558, 0, 558, 558, 558, + 560, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, + 0, 0, 863, 0, 0, 0, 0, 0, 560, 560, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 560, 560, 558, 560, + 560, 560, 0, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 0, 560, 863, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 863, 0, 0, 863, 0, 0, + 558, 0, 558, 0, 92, 92, 92, 92, 92, 0, + 0, 0, 1060, 0, 0, 0, 0, 0, 0, 1061, + 0, 1062, 1063, 1064, 0, 0, 92, 92, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 92, 92, 92, 0, 0, 0, + 92, 92, 0, 0, 0, 0, 92, 0, 0, 92, + 1065, 1066, 1067, 0, 0, 0, 92, 92, 863, 863, + 863, 863, 863, 863, 863, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1068, 1069, 1070, 0, + 1071, 0, 0, 1072, 0, 0, 0, 0, 0, 0, + 0, 92, 92, 0, 92, 92, 92, 0, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 558, 558, 0, + 558, 0, 0, 0, 0, 558, 0, 0, 558, 0, + 558, 558, 558, 558, 558, 558, 558, 93, 558, 558, + 558, 558, 0, 558, 558, 0, 0, 558, 558, 558, + 558, 298, 0, 558, 558, 558, 558, 0, 0, 0, + 0, 0, 0, 558, 0, 558, 0, 0, 558, 0, + 0, 0, 0, 558, 0, 0, 0, 0, 0, 558, + 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 558, 0, 558, 558, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, + 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, - 0, 93, 558, 0, 0, 558, 558, 0, 0, 0, - 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 558, 558, 558, 0, 558, 558, 558, - 558, 0, 0, 558, 0, 558, 0, 558, 558, 558, - 0, 0, 558, 558, 556, 558, 558, 558, 0, 556, - 0, 556, 556, 556, 558, 556, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 556, 556, 556, 556, 0, 0, 843, 0, 0, 0, - 0, 0, 558, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 558, 558, 556, 558, 558, 558, 0, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 0, 558, 843, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, - 0, 843, 0, 0, 556, 0, 556, 0, 93, 93, - 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 93, 0, 844, 0, 0, 94, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, - 93, 0, 0, 0, 93, 93, 0, 0, 0, 0, - 93, 0, 0, 93, 0, 0, 0, 0, 0, 0, - 93, 93, 843, 843, 843, 843, 843, 843, 843, 0, - 0, 0, 0, 0, 0, 0, 0, 879, 880, 881, - 0, 882, 883, 884, 885, 94, 886, 887, 198, 844, - 888, 889, 890, 891, 0, 0, 0, 892, 893, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 93, 0, 93, 93, - 93, 0, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 556, 556, 0, 556, 0, 0, 0, 0, 556, - 0, 0, 556, 0, 556, 556, 556, 556, 556, 556, - 556, 94, 556, 556, 556, 556, 0, 556, 556, 0, - 0, 556, 556, 556, 556, 894, 0, 556, 556, 556, - 556, 0, 0, 0, 0, 0, 0, 556, 0, 556, - 0, 0, 556, 0, 0, 0, 0, 556, 0, 0, - 0, 0, 0, 556, 556, 556, 556, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 558, 558, 0, 0, 0, 93, 558, 0, 0, 558, + 558, 0, 0, 0, 0, 556, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, + 0, 558, 558, 558, 558, 0, 0, 558, 0, 558, + 0, 558, 558, 558, 0, 0, 558, 558, 556, 558, + 558, 558, 0, 556, 0, 556, 556, 556, 558, 556, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 556, 556, 556, 556, 0, 0, + 0, 0, 0, 0, 0, 0, 558, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 558, 558, 556, 558, 558, 558, + 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 0, 558, 0, 0, 298, 0, 0, 0, 0, 0, + 0, 298, 0, 298, 298, 298, 0, 0, 556, 0, + 556, 127, 93, 93, 93, 93, 93, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 93, 93, 0, 1383, 144, 0, + 94, 0, 298, 298, 298, 0, 0, 0, 0, 0, + 0, 93, 93, 93, 93, 0, 0, 0, 93, 93, + 0, 0, 0, 0, 93, 0, 0, 93, 0, 0, + 0, 0, 0, 0, 93, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1384, 0, 298, 298, + 298, 0, 298, 0, 0, 298, 0, 0, 0, 94, + 0, 0, 929, 930, 931, 1385, 932, 933, 934, 935, + 0, 936, 937, 198, 0, 938, 939, 940, 941, 0, + 0, 0, 942, 943, 0, 0, 0, 0, 0, 93, + 93, 0, 93, 93, 93, 0, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 556, 556, 0, 556, 0, + 0, 0, 0, 556, 0, 0, 556, 0, 556, 556, + 556, 556, 556, 556, 556, 94, 556, 556, 556, 556, + 0, 556, 556, 0, 0, 556, 556, 556, 556, 0, + 0, 556, 556, 556, 556, 0, 0, 0, 0, 0, + 944, 556, 0, 556, 0, 0, 556, 0, 0, 0, + 0, 556, 1106, 0, 0, 0, 0, 556, 556, 556, + 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1107, 1108, 0, 1109, 1110, 1111, 1112, 1113, 1114, + 0, 1115, 1116, 0, 1117, 1118, 1119, 1120, 1121, 0, + 0, 0, 0, 556, 0, 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, - 0, 556, 556, 556, 0, 0, 0, 844, 0, 0, - 0, 0, 0, 0, 0, 556, 556, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 844, 0, 556, 0, 0, 0, 0, 556, 556, 556, + 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, + 0, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 0, 0, 0, 94, - 556, 0, 0, 556, 556, 0, 0, 0, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 556, 556, 556, 556, 0, 556, 556, 556, 556, 0, - 0, 556, 0, 556, 0, 556, 556, 556, 0, 0, - 556, 556, 557, 556, 556, 556, 0, 557, 0, 557, - 557, 557, 556, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, - 557, 557, 0, 0, 844, 0, 0, 0, 0, 0, - 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, - 557, 556, 556, 556, 0, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 0, 556, 844, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 844, 0, 0, 844, - 0, 0, 557, 0, 557, 0, 94, 94, 94, 94, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, - 0, 0, 0, 0, 787, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, - 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, - 844, 844, 844, 844, 844, 844, 844, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 557, - 557, 0, 557, 0, 0, 0, 0, 557, 0, 0, - 557, 0, 557, 557, 557, 557, 557, 557, 557, 787, - 557, 557, 557, 557, 0, 557, 557, 0, 0, 557, - 557, 557, 557, 0, 0, 557, 557, 557, 557, 0, - 0, 0, 0, 0, 0, 557, 0, 557, 0, 0, - 557, 0, 0, 0, 0, 557, 1038, 0, 0, 0, - 0, 557, 557, 557, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1039, 1040, 0, 1041, 1042, - 1043, 1044, 1045, 1046, 0, 1047, 1048, 0, 1049, 1050, - 1051, 1052, 1053, 0, 0, 0, 0, 557, 0, 557, - 557, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 557, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 557, 0, 0, 0, 0, 557, 557, 557, 557, 557, + 0, 0, 0, 94, 556, 0, 0, 556, 556, 0, + 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 556, 556, 556, 556, 0, 556, + 556, 556, 556, 0, 0, 556, 0, 556, 0, 556, + 556, 556, 0, 0, 556, 556, 557, 556, 556, 556, + 0, 557, 0, 557, 557, 557, 556, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 557, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 556, 556, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 556, 556, 557, 556, 556, 556, 0, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 0, 556, + 1122, 1123, 0, 1124, 1125, 1126, 0, 1127, 1128, 0, + 0, 1129, 1130, 0, 1131, 0, 557, 0, 557, 0, + 94, 94, 94, 94, 94, 0, 0, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, + 1145, 0, 94, 94, 0, 0, 0, 0, 806, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 94, 94, 94, 0, 0, 0, 94, 94, 0, 0, + 0, 0, 94, 0, 0, 94, 0, 0, 0, 0, + 0, 0, 94, 94, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 806, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, + 94, 94, 94, 0, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 557, 557, 0, 557, 0, 0, 0, + 0, 557, 0, 0, 557, 0, 557, 557, 557, 557, + 557, 557, 557, 806, 557, 557, 557, 557, 0, 557, + 557, 0, 0, 557, 557, 557, 557, 0, 0, 557, + 557, 557, 557, 0, 0, 0, 0, 0, 0, 557, + 0, 557, 0, 0, 557, 0, 0, 0, 0, 557, + 0, 0, 0, 0, 0, 557, 557, 557, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 557, 0, 557, 557, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 557, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 557, 0, 0, 0, 0, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 0, 0, 0, 787, 557, 0, - 0, 557, 557, 0, 0, 0, 0, 559, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, - 557, 557, 0, 557, 557, 557, 557, 0, 0, 557, - 0, 557, 0, 557, 557, 557, 0, 0, 557, 557, - 559, 557, 557, 557, 0, 559, 0, 559, 559, 559, - 557, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 559, 559, 559, 559, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 557, 557, 559, 557, - 557, 557, 0, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 0, 557, 1054, 1055, 0, 1056, 1057, 1058, - 0, 1059, 1060, 0, 0, 1061, 1062, 0, 1063, 0, - 559, 0, 559, 0, 787, 787, 787, 787, 787, 0, - 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, - 1073, 1074, 1075, 1076, 1077, 0, 787, 787, 0, 0, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 787, 787, 787, 787, 0, 0, 0, - 787, 787, 0, 0, 0, 0, 787, 0, 0, 787, - 0, 0, 0, 0, 0, 0, 787, 787, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 787, 787, 0, 787, 787, 787, 0, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 559, 559, 0, - 559, 0, 0, 0, 0, 559, 0, 0, 559, 0, - 559, 559, 559, 559, 559, 559, 559, 47, 559, 559, - 559, 559, 0, 559, 559, 0, 0, 559, 559, 559, - 559, 0, 0, 559, 559, 559, 559, 0, 0, 0, - 0, 0, 0, 559, 0, 559, 0, 0, 559, 0, - 0, 0, 0, 559, 0, 0, 0, 0, 0, 559, - 559, 559, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 559, 0, 559, 559, 559, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, - 0, 0, 0, 559, 559, 559, 559, 559, 559, 559, + 557, 557, 557, 557, 557, 557, 557, 557, 0, 0, + 0, 806, 557, 0, 0, 557, 557, 0, 0, 0, + 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 557, 557, 0, 557, 557, 557, + 557, 0, 0, 557, 0, 557, 0, 557, 557, 557, + 0, 0, 557, 557, 559, 557, 557, 557, 0, 559, + 0, 559, 559, 559, 557, 559, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 559, 559, 559, 559, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 557, 557, 559, 557, 557, 557, 0, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 559, 0, 559, 0, 806, 806, + 806, 806, 806, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 806, 806, 376, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 806, 806, 806, + 806, 0, 0, 0, 806, 806, 0, 0, 0, 0, + 806, 377, 0, 806, 0, 378, 0, 0, 379, 380, + 806, 806, 0, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 0, 0, 0, 0, 0, + 0, 393, 0, 0, 394, 47, 0, 0, 0, 0, + 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, + 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 806, 806, 0, 806, 806, + 806, 0, 806, 806, 806, 806, 806, 806, 806, 806, + 806, 559, 559, 0, 559, 0, 0, 0, 0, 559, + 0, 0, 559, 0, 559, 559, 559, 559, 559, 559, + 559, 47, 559, 559, 559, 559, 0, 559, 559, 0, + 0, 559, 559, 559, 559, 0, 0, 559, 559, 559, + 559, 0, 0, 0, 0, 0, 0, 559, 0, 559, + 0, 0, 559, 0, 0, 0, 0, 559, 0, 0, + 0, 0, 0, 559, 559, 559, 559, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 559, + 0, 559, 559, 559, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 559, 559, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 559, 0, 0, 0, 0, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 0, 0, 0, 47, 559, 0, 0, 559, - 559, 0, 0, 0, 0, 699, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 559, 559, 559, 559, - 0, 559, 559, 559, 559, 0, 0, 559, 0, 559, - 0, 559, 559, 559, 0, 0, 559, 559, 699, 559, - 559, 559, 0, 699, 0, 699, 699, 699, 559, 699, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 699, 699, 699, 699, 0, 0, - 0, 0, 0, 0, 0, 0, 559, 559, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 559, 559, 699, 559, 559, 559, - 0, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 699, 0, - 699, 0, 47, 47, 47, 47, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 362, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 47, 47, 47, 0, 0, 0, 47, 47, - 0, 0, 0, 0, 47, 363, 0, 47, 0, 364, - 0, 0, 365, 366, 47, 47, 0, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 0, 0, 0, 0, 0, 379, 0, 0, 380, 48, - 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, - 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 47, 0, 47, 47, 47, 0, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 699, 699, 0, 699, 0, - 0, 0, 0, 699, 0, 0, 699, 0, 699, 699, - 699, 699, 699, 699, 699, 48, 699, 699, 699, 699, - 0, 699, 699, 0, 0, 699, 699, 699, 699, 0, - 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, - 0, 699, 0, 699, 0, 0, 699, 0, 0, 0, - 0, 699, 0, 0, 0, 0, 0, 699, 699, 699, - 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 699, 0, 699, 699, 699, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, - 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, - 0, 699, 699, 699, 699, 699, 699, 699, 699, 699, - 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, - 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, - 0, 0, 0, 48, 699, 0, 0, 699, 699, 0, - 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 699, 699, 699, 699, 0, 699, - 699, 699, 699, 0, 0, 699, 0, 699, 0, 699, - 699, 699, 0, 0, 699, 699, 698, 699, 699, 699, - 0, 698, 0, 698, 698, 698, 699, 698, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 698, 698, 698, 698, 0, 0, 0, 0, - 0, 0, 0, 0, 699, 699, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 699, 699, 698, 699, 699, 699, 0, 699, - 699, 699, 699, 699, 699, 699, 699, 699, 0, 699, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 105, 0, 105, 0, 0, 698, 0, 698, 0, - 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 105, 0, 0, 0, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 48, 48, 48, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 48, 105, 0, 48, 0, 105, 0, 0, - 105, 105, 48, 48, 0, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 0, 0, 0, - 0, 0, 0, 105, 0, 0, 105, 49, 0, 0, - 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, - 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 698, 698, 0, 698, 0, 0, 0, - 0, 698, 0, 0, 698, 0, 698, 698, 698, 698, - 698, 698, 698, 49, 698, 698, 698, 698, 0, 698, - 698, 0, 0, 698, 698, 698, 698, 0, 0, 698, - 698, 698, 0, 0, 0, 0, 0, 0, 0, 698, - 0, 698, 0, 0, 698, 0, 0, 0, 0, 698, - 0, 0, 0, 0, 0, 698, 698, 698, 698, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 698, 0, 698, 698, 698, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 698, 698, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 698, 0, 0, 0, 0, 698, - 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, - 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, - 698, 698, 698, 698, 698, 698, 698, 698, 0, 0, - 0, 49, 698, 0, 0, 698, 698, 0, 0, 0, - 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 698, 698, 698, 698, 0, 698, 698, 698, - 698, 0, 0, 698, 0, 698, 0, 698, 698, 698, - 0, 0, 698, 698, 697, 698, 698, 698, 0, 697, - 0, 697, 697, 697, 698, 697, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 697, 697, 697, 697, 0, 0, 0, 0, 0, 0, - 0, 0, 698, 698, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 698, 698, 697, 698, 698, 698, 0, 698, 698, 698, - 698, 698, 698, 698, 698, 698, 0, 698, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 697, 0, 697, 0, 49, 49, - 49, 49, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 0, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, - 49, 0, 0, 0, 49, 49, 0, 0, 0, 596, - 49, 0, 0, 49, 0, 0, 0, 0, 0, 0, - 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 49, 0, 49, 49, - 49, 0, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 697, 697, 0, 697, 0, 0, 0, 0, 697, - 0, 0, 697, 0, 697, 697, 697, 697, 697, 697, - 697, 50, 697, 697, 697, 697, 0, 697, 697, 0, - 0, 697, 697, 697, 697, 0, 0, 697, 697, 697, - 0, 0, 0, 0, 0, 0, 0, 697, 0, 697, - 0, 0, 697, 0, 0, 0, 0, 697, 0, 0, - 0, 0, 0, 697, 697, 697, 697, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, - 0, 697, 697, 697, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 697, 697, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 697, 0, 0, 0, 0, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 0, 0, 0, 50, - 697, 0, 0, 697, 697, 0, 0, 0, 0, 696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 697, 697, 697, 697, 0, 697, 697, 697, 697, 0, - 0, 697, 0, 697, 0, 697, 697, 697, 0, 0, - 697, 697, 696, 697, 697, 697, 0, 696, 0, 696, - 696, 696, 697, 696, 0, 0, 8, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, - 696, 696, 0, 0, 0, 0, 13, 0, 0, 0, - 697, 697, 0, 0, 0, 0, 0, 0, 592, 0, - 593, 0, 0, 594, 595, 0, 0, 0, 697, 697, - 696, 697, 697, 697, 0, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 0, 697, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 696, 0, 696, 0, 50, 50, 50, 50, + 559, 559, 559, 559, 559, 559, 0, 0, 0, 47, + 559, 0, 0, 559, 559, 0, 0, 0, 0, 718, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 559, 559, 559, 559, 0, 559, 559, 559, 559, 0, + 0, 559, 0, 559, 0, 559, 559, 559, 0, 0, + 559, 559, 718, 559, 559, 559, 0, 718, 0, 718, + 718, 718, 559, 718, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, + 718, 718, 0, 0, 0, 0, 0, 0, 0, 0, + 559, 559, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 559, 559, + 718, 559, 559, 559, 0, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 0, 559, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 105, 0, 105, + 0, 0, 718, 0, 718, 0, 47, 47, 47, 47, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, + 105, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, + 0, 0, 47, 47, 0, 0, 0, 0, 47, 105, + 0, 47, 0, 105, 0, 0, 105, 105, 47, 47, + 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 105, 48, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 47, 0, 47, 47, 47, 0, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 718, + 718, 0, 718, 0, 0, 0, 0, 718, 0, 0, + 718, 0, 718, 718, 718, 718, 718, 718, 718, 48, + 718, 718, 718, 718, 0, 718, 718, 0, 0, 718, + 718, 718, 718, 0, 0, 718, 718, 718, 0, 0, + 0, 0, 0, 0, 0, 718, 0, 718, 0, 0, + 718, 0, 0, 0, 0, 718, 0, 0, 0, 0, + 0, 718, 718, 718, 718, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 718, 0, 718, + 718, 718, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 718, 718, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 718, 0, 0, 0, 0, 718, 718, 718, 718, 718, + 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, + 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, + 718, 718, 718, 718, 0, 0, 0, 48, 718, 0, + 0, 718, 718, 0, 0, 0, 0, 717, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, + 718, 718, 0, 718, 718, 718, 718, 0, 0, 718, + 0, 718, 0, 718, 718, 718, 0, 0, 718, 718, + 717, 718, 718, 718, 0, 717, 0, 717, 717, 717, + 718, 717, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 717, 717, 717, 717, + 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 718, 718, 717, 718, + 718, 718, 0, 718, 718, 718, 718, 718, 718, 718, + 718, 718, 0, 718, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 717, 0, 717, 0, 48, 48, 48, 48, 48, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 48, 48, 48, 0, 0, 0, + 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 717, 717, 0, + 717, 0, 0, 0, 0, 717, 0, 0, 717, 0, + 717, 717, 717, 717, 717, 717, 717, 49, 717, 717, + 717, 717, 0, 717, 717, 0, 0, 717, 717, 717, + 717, 0, 0, 717, 717, 717, 0, 0, 0, 0, + 0, 0, 0, 717, 0, 717, 0, 0, 717, 0, + 0, 0, 0, 717, 0, 0, 0, 0, 0, 717, + 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 717, 0, 717, 717, 717, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 717, 717, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 717, 0, + 0, 0, 0, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 0, 0, 0, 49, 717, 0, 0, 717, + 717, 0, 0, 0, 0, 716, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 717, 717, 717, 717, + 0, 717, 717, 717, 717, 0, 0, 717, 0, 717, + 0, 717, 717, 717, 0, 0, 717, 717, 716, 717, + 717, 717, 0, 716, 0, 716, 716, 716, 717, 716, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 716, 716, 716, 716, 0, 0, + 0, 0, 0, 0, 0, 0, 717, 717, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 717, 717, 716, 717, 717, 717, + 0, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 0, 717, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 716, 0, + 716, 0, 49, 49, 49, 49, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 50, 50, 50, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 50, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 50, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 50, 0, 50, 50, 50, 0, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 696, - 696, 0, 696, 0, 0, 0, 0, 696, 0, 0, - 696, 0, 696, 696, 696, 696, 696, 696, 696, 0, - 696, 696, 696, 696, 0, 696, 696, 0, 0, 696, - 696, 696, 696, 0, 0, 696, 696, 696, 0, 0, - 0, 0, 0, 0, 706, 696, 0, 696, 0, 0, - 696, 0, 0, 0, 0, 696, 0, 0, 0, 0, - 0, 696, 696, 696, 696, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, - 0, 0, 0, 0, 706, 706, 0, 0, 706, 0, - 0, 0, 0, 0, 0, 0, 0, 696, 0, 696, - 696, 696, 0, 706, 0, 706, 706, 0, 0, 0, - 0, 0, 0, 696, 696, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 696, 0, 0, 0, 0, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 696, 696, 0, 0, 0, 706, 696, 706, - 0, 696, 696, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, - 696, 696, 0, 696, 696, 696, 696, 0, 0, 696, - 0, 696, 0, 696, 696, 696, 0, 0, 696, 696, - 0, 696, 696, 696, 0, 0, 0, 0, 0, 0, - 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 696, 696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 696, 696, 0, 696, - 696, 696, 0, 696, 696, 696, 696, 696, 696, 696, - 696, 696, 0, 696, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 706, 706, 0, 706, 0, 0, - 0, 0, 706, 0, 0, 706, 0, 706, 706, 706, - 706, 706, 706, 706, 0, 706, 706, 706, 706, 0, - 706, 706, 0, 0, 706, 706, 706, 706, 0, 0, - 706, 706, 706, 0, 0, 0, 52, 0, 387, 97, - 706, 0, 706, 0, 99, 706, 100, 0, 0, 0, - 706, 0, 0, 101, 0, 0, 706, 706, 706, 706, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 388, 0, 389, 390, 391, 392, 393, 0, 0, - 0, 0, 394, 0, 0, 103, 0, 0, 0, 0, - 0, 395, 706, 0, 0, 52, 396, 0, 397, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 706, 706, - 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, - 0, 0, 0, 406, 0, 706, 0, 0, 0, 0, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 52, - 0, 52, 0, 706, 0, 0, 706, 706, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 706, 706, 706, 706, 0, 706, 706, - 706, 706, 0, 0, 706, 0, 706, 0, 706, 706, - 706, 0, 0, 706, 706, 0, 706, 706, 706, 0, - 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 706, 706, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 706, 706, 0, 706, 706, 706, 0, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 0, 706, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 0, 0, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 0, 52, 52, 52, 0, 52, 52, 52, - 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, - 0, 0, 52, 52, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 127, 563, 0, 54, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 52, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 52, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 147, 148, 149, 0, - 52, 52, 0, 0, 0, 0, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 54, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 52, 52, 0, - 52, 52, 52, 52, 0, 0, 52, 0, 52, 0, - 52, 52, 52, 52, 0, 52, 52, 0, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 49, 49, 49, 0, 0, 0, 49, 49, + 0, 0, 0, 0, 49, 0, 0, 49, 0, 0, + 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 49, 0, 49, 49, 49, 0, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 716, 716, 0, 716, 0, + 0, 0, 0, 716, 0, 0, 716, 0, 716, 716, + 716, 716, 716, 716, 716, 50, 716, 716, 716, 716, + 0, 716, 716, 0, 0, 716, 716, 716, 716, 0, + 0, 716, 716, 716, 0, 0, 0, 0, 0, 0, + 0, 716, 0, 716, 0, 0, 716, 0, 0, 0, + 0, 716, 0, 0, 0, 0, 0, 716, 716, 716, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 716, 0, 716, 716, 716, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 716, 0, 0, 0, + 0, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 0, 0, 0, 50, 716, 0, 0, 716, 716, 0, + 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 716, 716, 716, 716, 0, 716, + 716, 716, 716, 0, 0, 716, 0, 716, 0, 716, + 716, 716, 0, 0, 716, 716, 715, 716, 716, 716, + 0, 715, 0, 715, 715, 715, 716, 715, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 715, 715, 715, 715, 0, 0, 0, 0, + 0, 0, 0, 0, 716, 716, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 716, 716, 715, 716, 716, 716, 0, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 0, 716, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 715, 0, 715, 0, + 50, 50, 50, 50, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 50, 50, 50, 0, 0, 0, 50, 50, 0, 0, + 0, 0, 50, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, + 50, 50, 50, 0, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 715, 715, 0, 715, 0, 0, 0, + 0, 715, 0, 0, 715, 0, 715, 715, 715, 715, + 715, 715, 715, 51, 715, 715, 715, 715, 0, 715, + 715, 0, 0, 715, 715, 715, 715, 0, 0, 715, + 715, 715, 0, 0, 0, 0, 0, 0, 0, 715, + 0, 715, 0, 0, 715, 0, 0, 0, 0, 715, + 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 715, 0, 715, 715, 715, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 715, 715, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 715, 0, 0, 0, 0, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 0, 0, + 0, 51, 715, 0, 0, 715, 715, 0, 0, 0, + 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 715, 715, 715, 715, 0, 715, 715, 715, + 715, 0, 0, 715, 0, 715, 0, 715, 715, 715, + 0, 0, 715, 715, 728, 715, 715, 715, 0, 728, + 0, 0, 728, 728, 715, 728, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 728, 728, 728, 728, 0, 0, 0, 0, 0, 0, + 0, 0, 715, 715, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 715, 715, 728, 715, 715, 715, 0, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 0, 715, 0, 0, + 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 728, 0, 728, 0, 51, 51, + 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 0, 0, 0, 0, 809, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 0, 0, 0, 51, 51, 0, 0, 0, 832, + 51, 0, 0, 51, 0, 0, 0, 0, 0, 0, + 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 809, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 51, 0, 51, 51, + 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 728, 728, 0, 728, 0, 0, 0, 0, 728, + 0, 0, 728, 0, 728, 728, 728, 728, 728, 728, + 728, 809, 728, 728, 728, 728, 0, 728, 728, 0, + 0, 728, 728, 728, 728, 0, 0, 728, 728, 728, + 0, 0, 0, 0, 0, 0, 0, 728, 0, 728, + 0, 0, 728, 0, 0, 0, 0, 728, 0, 0, + 0, 0, 0, 728, 728, 728, 728, 832, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, + 0, 728, 728, 728, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 728, 728, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 728, 832, 0, 0, 0, 728, 728, 728, + 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, + 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, + 728, 728, 728, 728, 728, 728, 0, 0, 0, 809, + 728, 0, 0, 728, 728, 0, 0, 0, 0, 726, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 728, 728, 728, 728, 0, 728, 728, 728, 728, 0, + 0, 728, 0, 728, 0, 728, 728, 728, 0, 0, + 728, 728, 726, 728, 728, 728, 0, 726, 0, 0, + 726, 726, 728, 726, 0, 0, 832, 832, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, + 726, 726, 0, 0, 0, 0, 832, 0, 0, 0, + 728, 728, 0, 0, 0, 0, 0, 0, 832, 0, + 832, 832, 0, 832, 832, 0, 0, 0, 728, 728, + 726, 728, 728, 728, 0, 728, 728, 728, 728, 728, + 728, 728, 728, 728, 0, 728, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 726, 0, 726, 0, 809, 809, 809, 809, + 809, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 809, 809, + 832, 832, 832, 832, 832, 832, 832, 0, 0, 0, + 0, 0, 0, 0, 0, 809, 809, 809, 809, 0, + 0, 34, 809, 809, 0, 0, 0, 0, 809, 0, + 0, 809, 0, 0, 0, 0, 0, 0, 809, 809, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, + 0, 0, 0, 809, 809, 0, 809, 809, 809, 0, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 726, + 726, 0, 726, 0, 0, 0, 0, 726, 0, 0, + 726, 0, 726, 726, 726, 726, 726, 726, 726, 0, + 726, 726, 726, 726, 0, 726, 726, 0, 0, 726, + 726, 726, 726, 0, 0, 726, 726, 726, 0, 0, + 0, 0, 0, 0, 0, 726, 0, 726, 0, 0, + 726, 0, 0, 0, 0, 726, 0, 0, 0, 0, + 0, 726, 726, 726, 726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 726, 0, 726, + 726, 726, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 299, 726, 726, 0, 298, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 726, 0, 0, 0, 297, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 0, 484, 0, 0, 726, 0, + 0, 726, 726, 0, 0, 0, 0, 729, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, + 726, 726, 0, 726, 726, 726, 726, 0, 0, 726, + 0, 726, 0, 726, 726, 726, 0, 0, 726, 726, + 729, 726, 726, 726, 0, 729, 0, 0, 729, 729, + 726, 729, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 729, 729, 729, 729, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 726, 726, 729, 726, + 726, 726, 0, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 0, 726, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 729, 0, 729, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 622, 0, 623, 0, + 0, 624, 625, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 292, 293, 294, 729, 729, 0, + 729, 0, 0, 0, 0, 729, 0, 0, 729, 0, + 729, 729, 729, 729, 729, 729, 729, 0, 729, 729, + 729, 729, 0, 729, 729, 0, 0, 729, 729, 729, + 729, 0, 0, 729, 729, 729, 0, 0, 0, 0, + 0, 0, 0, 729, 0, 729, 0, 0, 729, 152, + 153, 154, 0, 729, 0, 0, 0, 0, 0, 729, + 729, 729, 729, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 729, 0, 729, 729, 729, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 729, 729, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, + 0, 0, 0, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 0, 156, 0, 0, 729, 0, 0, 729, + 729, 0, 0, 0, 0, 730, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 729, 729, 729, 729, + 0, 729, 729, 729, 729, 0, 0, 729, 0, 729, + 0, 729, 729, 729, 0, 0, 729, 729, 730, 729, + 729, 729, 0, 730, 0, 0, 730, 730, 729, 730, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 730, 730, 730, 730, 0, 0, + 0, 0, 0, 0, 0, 0, 729, 729, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 729, 729, 730, 729, 729, 729, + 0, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 0, 729, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 151, 0, 0, 0, 730, 730, 0, 730, 0, + 0, 0, 0, 730, 0, 0, 730, 0, 730, 730, + 730, 730, 730, 730, 730, 0, 730, 730, 730, 730, + 0, 730, 730, 0, 0, 730, 730, 730, 730, 0, + 0, 730, 730, 730, 0, 0, 0, 0, 0, 0, + 0, 730, 0, 730, 0, 0, 730, 152, 153, 154, + 0, 730, 0, 0, 0, 0, 0, 730, 730, 730, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 0, 730, 730, 730, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 730, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, + 0, 730, 730, 730, 730, 730, 730, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, + 0, 210, 0, 0, 730, 0, 0, 730, 730, 0, + 0, 0, 0, 731, 0, 0, 155, 0, 0, 0, + 0, 0, 0, 0, 730, 730, 730, 730, 0, 730, + 730, 730, 730, 0, 0, 730, 0, 730, 0, 730, + 730, 730, 0, 0, 730, 730, 731, 730, 730, 730, + 0, 731, 0, 0, 731, 731, 730, 731, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 731, 731, 731, 731, 0, 0, 0, 0, + 0, 0, 0, 0, 730, 730, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 730, 730, 731, 730, 730, 730, 0, 730, + 730, 730, 730, 730, 730, 730, 730, 730, 0, 730, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 731, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 52, 0, 52, 52, 52, 0, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, - 54, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 54, 0, 0, 0, 54, 54, 54, 0, 54, 54, - 54, 54, 0, 54, 54, 54, 0, 54, 54, 54, - 54, 0, 0, 54, 54, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 127, 266, 0, 55, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 54, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 0, 54, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 147, 148, 149, - 0, 54, 54, 0, 0, 0, 0, 55, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 55, 0, 55, 0, 0, 872, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, - 0, 54, 54, 54, 54, 0, 0, 54, 0, 54, - 0, 54, 54, 54, 54, 0, 54, 54, 0, 54, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, + 0, 0, 0, 731, 731, 0, 731, 0, 0, 0, + 0, 731, 0, 0, 731, 0, 731, 731, 731, 731, + 731, 731, 731, 0, 731, 731, 731, 731, 0, 731, + 731, 0, 0, 731, 731, 731, 731, 0, 0, 731, + 731, 731, 0, 0, 0, 0, 0, 0, 0, 731, + 0, 731, 0, 0, 731, 152, 153, 154, 0, 731, + 0, 0, 0, 0, 0, 731, 731, 731, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 54, 0, 54, 54, 54, - 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 0, 731, 0, 731, 731, 731, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 731, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 731, 0, 0, 0, 0, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 0, 210, + 0, 0, 731, 0, 0, 731, 731, 0, 0, 0, + 0, 732, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 731, 731, 731, 731, 0, 731, 731, 731, + 731, 0, 0, 731, 0, 731, 0, 731, 731, 731, + 0, 0, 731, 731, 732, 731, 731, 731, 0, 732, + 0, 0, 732, 732, 731, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 155, 0, - 0, 55, 0, 0, 0, 55, 55, 55, 0, 55, - 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, - 55, 55, 0, 0, 55, 55, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 56, - 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, - 55, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 0, 143, 144, 0, 0, 0, 55, 0, 0, - 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 147, 148, - 149, 0, 55, 55, 0, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, + 732, 732, 732, 732, 0, 0, 0, 0, 0, 0, + 0, 0, 731, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 56, 0, 56, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 0, 55, 0, - 55, 0, 55, 55, 55, 55, 0, 55, 55, 0, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, + 731, 731, 732, 731, 731, 731, 0, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 732, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 55, 0, 55, 55, - 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 0, 0, 56, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 56, 0, 0, 0, 56, 56, 56, 0, - 56, 56, 56, 56, 0, 56, 56, 56, 0, 56, - 56, 56, 56, 0, 0, 56, 56, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, - 53, 232, 232, 232, 232, 232, 0, 232, 232, 232, - 232, 56, 232, 232, 0, 0, 232, 232, 232, 232, - 0, 0, 0, 232, 232, 0, 0, 0, 56, 0, - 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 232, - 232, 232, 0, 56, 56, 0, 0, 0, 0, 53, + 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, - 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, - 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, + 0, 732, 732, 0, 732, 0, 0, 0, 0, 732, + 0, 0, 732, 0, 732, 732, 732, 732, 732, 732, + 732, 0, 732, 732, 732, 732, 0, 732, 732, 0, + 0, 732, 732, 732, 732, 0, 0, 732, 732, 732, + 0, 0, 0, 0, 0, 0, 0, 732, 0, 732, + 0, 0, 732, 152, 153, 154, 0, 732, 0, 0, + 0, 0, 0, 732, 732, 732, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, + 0, 732, 732, 732, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 732, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 732, 0, 0, 0, 0, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 0, 210, 0, 0, + 732, 0, 0, 732, 732, 0, 0, 0, 0, 733, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 732, 732, 732, 732, 0, 732, 732, 732, 732, 0, + 0, 732, 0, 732, 0, 732, 732, 732, 0, 0, + 732, 732, 733, 732, 732, 732, 0, 733, 0, 0, + 733, 733, 732, 733, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 733, 733, + 733, 733, 0, 0, 0, 0, 0, 0, 0, 0, + 732, 732, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 732, 732, + 733, 732, 732, 732, 0, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 0, 732, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 733, 0, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 700, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 0, 0, 0, 0, 733, + 733, 0, 733, 0, 0, 0, 0, 733, 0, 0, + 733, 0, 733, 733, 733, 733, 733, 733, 733, 0, + 733, 733, 733, 733, 0, 733, 733, 0, 0, 733, + 733, 733, 733, 0, 0, 733, 733, 733, 0, 0, + 0, 0, 0, 0, 0, 733, 0, 733, 0, 0, + 733, 152, 153, 154, 0, 733, 0, 0, 0, 0, + 0, 733, 733, 733, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 733, 0, 733, + 733, 733, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 733, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 733, 0, 0, 0, 0, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 0, 210, 0, 0, 733, 0, + 0, 733, 733, 0, 0, 0, 0, 734, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 733, 733, + 733, 733, 0, 733, 733, 733, 733, 0, 0, 733, + 0, 733, 0, 733, 733, 733, 0, 0, 733, 733, + 734, 733, 733, 733, 0, 734, 0, 0, 734, 734, + 733, 734, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 734, 734, 734, 734, + 0, 0, 0, 0, 0, 0, 0, 0, 733, 733, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 733, 733, 734, 733, + 733, 733, 0, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 0, 733, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 232, 0, 0, 53, 0, 0, 0, 53, 53, 53, - 0, 53, 53, 53, 53, 0, 53, 53, 53, 0, - 53, 53, 53, 53, 0, 0, 53, 53, 53, 0, - 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, + 0, 0, 762, 0, 0, 0, 0, 734, 734, 0, + 734, 0, 0, 0, 0, 734, 0, 0, 734, 0, + 734, 734, 734, 734, 734, 734, 734, 0, 734, 734, + 734, 734, 0, 734, 734, 0, 0, 734, 734, 734, + 734, 0, 0, 734, 734, 734, 0, 0, 0, 0, + 0, 0, 0, 734, 0, 734, 0, 0, 734, 152, + 153, 154, 0, 734, 0, 0, 0, 0, 0, 734, + 734, 734, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 0, 0, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 0, 0, 62, 0, 0, 0, - 61, 0, 0, 61, 0, 0, 0, 0, 0, 53, - 53, 53, 53, 61, 53, 53, 53, 53, 0, 0, - 53, 0, 53, 0, 53, 53, 53, 53, 0, 53, - 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 53, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 53, 53, 0, - 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, - 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, - 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 734, 0, 734, 734, 734, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 734, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, + 0, 0, 0, 734, 734, 734, 734, 734, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, + 734, 734, 0, 159, 0, 0, 734, 0, 0, 734, + 734, 0, 0, 0, 0, 739, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 734, 734, 734, 734, + 0, 734, 734, 734, 734, 0, 0, 734, 0, 734, + 0, 734, 734, 734, 0, 0, 734, 734, 739, 734, + 734, 734, 0, 739, 0, 0, 739, 739, 734, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, - 0, 0, 0, 0, 0, 0, 0, 61, 61, 62, - 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 65, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 739, 739, 739, 739, 0, 0, + 0, 0, 0, 0, 0, 0, 734, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 734, 734, 739, 734, 734, 734, + 0, 734, 734, 734, 734, 734, 734, 734, 734, 734, + 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, + 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, + 159, 0, 0, 159, 0, 0, 0, 159, 159, 159, + 159, 159, 0, 159, 159, 159, 159, 0, 159, 159, + 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, + 159, 0, 0, 0, 0, 0, 0, 0, 159, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 0, 0, 66, 0, 0, 0, 65, 0, 0, 65, - 0, 0, 0, 0, 0, 62, 62, 62, 62, 65, - 62, 62, 62, 62, 0, 0, 62, 0, 62, 0, - 62, 62, 62, 62, 0, 62, 62, 0, 62, 62, - 62, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 0, 62, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 62, 62, 0, 62, 62, 62, 0, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, - 0, 0, 0, 0, 0, 65, 65, 65, 65, 0, - 65, 65, 65, 65, 0, 0, 65, 0, 65, 0, - 65, 65, 65, 65, 0, 65, 65, 0, 65, 65, - 65, 0, 0, 0, 0, 0, 0, 571, 571, 0, - 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 571, 0, 571, 0, - 0, 0, 0, 0, 0, 65, 65, 0, 0, 0, - 0, 0, 66, 0, 0, 66, 0, 0, 0, 0, - 0, 0, 0, 65, 65, 66, 65, 65, 65, 0, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 571, 0, 571, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 739, 739, 0, 739, 0, + 0, 0, 0, 739, 0, 0, 739, 0, 739, 739, + 739, 739, 739, 739, 739, 0, 739, 739, 739, 739, + 0, 739, 739, 0, 0, 739, 739, 739, 739, 0, + 0, 739, 739, 739, 0, 0, 0, 0, 0, 0, + 0, 739, 0, 739, 0, 0, 739, 159, 159, 159, + 0, 739, 0, 0, 0, 0, 0, 739, 739, 739, + 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 739, 0, 739, 739, 739, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, + 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, + 0, 739, 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, + 0, 0, 0, 0, 739, 0, 0, 739, 739, 0, + 0, 0, 0, 740, 0, 0, 159, 0, 0, 0, + 0, 0, 0, 0, 739, 739, 739, 739, 0, 739, + 739, 739, 739, 0, 0, 739, 0, 739, 0, 739, + 739, 739, 0, 0, 739, 739, 740, 739, 739, 739, + 0, 740, 0, 0, 740, 740, 739, 740, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 740, 740, 740, 740, 0, 0, 0, 0, + 0, 0, 0, 0, 739, 739, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 739, 739, 740, 739, 739, 739, 0, 739, + 739, 739, 739, 739, 739, 739, 739, 739, 0, 739, + 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 865, 740, 0, 740, 0, + 866, 867, 0, 868, 869, 870, 871, 872, 873, 0, + 874, 875, 0, 876, 877, 878, 879, 880, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 0, 0, 81, + 81, 81, 81, 81, 0, 81, 81, 81, 81, 0, + 81, 81, 0, 0, 81, 81, 81, 81, 0, 85, + 0, 81, 81, 0, 88, 0, 91, 0, 0, 881, + 81, 882, 81, 94, 0, 0, 883, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, + 97, 0, 884, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 81, 0, 0, 885, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 740, 740, 0, 740, 0, 0, 0, + 0, 740, 0, 0, 740, 0, 740, 740, 740, 740, + 740, 740, 740, 0, 740, 740, 740, 740, 0, 740, + 740, 0, 0, 740, 740, 740, 740, 0, 0, 740, + 740, 740, 0, 0, 0, 0, 0, 0, 0, 740, + 0, 740, 0, 0, 740, 0, 0, 0, 0, 740, + 0, 0, 0, 0, 0, 740, 740, 740, 740, 0, + 0, 0, 0, 0, 0, 0, 886, 0, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 903, 157, 0, 0, 904, 0, + 0, 740, 0, 740, 740, 740, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 740, 740, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 740, 0, 0, 0, 0, 740, + 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, + 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, + 740, 740, 740, 740, 740, 740, 740, 740, 81, 0, + 0, 0, 740, 0, 0, 740, 740, 0, 0, 0, + 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 740, 740, 740, 740, 0, 740, 740, 740, + 740, 0, 0, 740, 0, 740, 0, 740, 740, 740, + 0, 0, 740, 740, 741, 740, 740, 740, 0, 741, + 0, 0, 741, 741, 740, 741, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 741, 741, 741, 741, 0, 0, 0, 0, 0, 0, + 0, 0, 740, 740, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 740, 740, 741, 740, 740, 740, 0, 740, 740, 740, + 740, 740, 740, 740, 740, 740, 0, 740, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 741, 0, 741, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 592, 127, 593, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 401, 97, 0, 0, 0, 0, 99, 145, 100, + 146, 0, 0, 0, 0, 0, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 0, 102, 402, 0, 403, 404, 405, 406, + 407, 0, 0, 0, 0, 408, 0, 0, 103, 0, + 0, 0, 0, 0, 409, 0, 0, 0, 0, 410, + 150, 411, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 412, 413, 414, 415, 416, 417, 418, + 419, 741, 741, 0, 741, 0, 420, 0, 0, 741, + 0, 0, 741, 0, 741, 741, 741, 741, 741, 741, + 741, 0, 741, 741, 741, 741, 0, 741, 741, 0, + 0, 741, 741, 741, 741, 0, 0, 741, 741, 741, + 0, 0, 0, 0, 0, 0, 0, 741, 0, 741, + 0, 0, 741, 0, 0, 0, 0, 741, 0, 0, + 0, 0, 0, 741, 741, 741, 741, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 741, + 0, 741, 741, 741, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 741, 741, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 741, 0, 0, 0, 0, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 155, 0, 0, 0, + 741, 0, 0, 741, 741, 0, 0, 0, 0, 742, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 741, 741, 741, 741, 0, 741, 741, 741, 741, 0, + 0, 741, 0, 741, 0, 741, 741, 741, 0, 0, + 741, 741, 742, 741, 741, 741, 0, 742, 0, 0, + 742, 742, 741, 742, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, + 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, + 741, 741, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 741, 741, + 742, 741, 741, 741, 0, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 0, 741, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 742, 0, 742, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 265, 127, 266, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, + 742, 0, 742, 0, 0, 0, 0, 742, 0, 0, + 742, 0, 742, 742, 742, 742, 742, 742, 742, 0, + 742, 742, 742, 742, 0, 742, 742, 0, 0, 742, + 742, 742, 742, 0, 0, 742, 742, 742, 0, 0, + 0, 0, 0, 0, 0, 742, 0, 742, 0, 0, + 742, 0, 0, 0, 0, 742, 0, 0, 0, 0, + 0, 742, 742, 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 0, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 571, 571, 0, - 571, 66, 66, 66, 66, 0, 66, 66, 66, 66, - 571, 571, 66, 0, 66, 0, 66, 66, 66, 66, - 0, 66, 66, 0, 66, 66, 66, 0, 569, 569, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 569, 571, 569, - 0, 0, 0, 571, 0, 0, 0, 0, 0, 571, - 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 66, 0, 66, 66, 66, 0, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 742, 0, 742, + 742, 742, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 0, 0, 0, 571, 571, 571, 571, 571, - 571, 571, 0, 0, 0, 0, 571, 0, 0, 571, - 571, 0, 0, 570, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 571, 571, 571, 571, - 0, 571, 571, 571, 571, 0, 0, 571, 0, 571, - 0, 571, 571, 571, 0, 0, 571, 571, 0, 571, - 571, 571, 0, 570, 570, 0, 0, 570, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 570, 0, 570, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 571, 571, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 569, 569, 0, 571, 571, 0, 571, 571, 571, - 0, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 570, 0, 570, 569, - 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, - 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 742, 0, 0, 0, 0, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 155, 848, 0, 0, 742, 0, + 0, 742, 742, 0, 0, 0, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, + 742, 742, 0, 742, 742, 742, 742, 0, 0, 742, + 0, 742, 0, 742, 742, 742, 0, 0, 742, 742, + 735, 742, 742, 742, 0, 735, 0, 0, 735, 735, + 742, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 735, 735, 735, 735, + 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 742, 742, 735, 742, + 742, 742, 0, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 33, 0, 0, 569, 569, 569, 569, - 569, 569, 569, 0, 0, 0, 0, 569, 0, 0, - 569, 569, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 569, 569, 569, - 569, 0, 569, 569, 569, 569, 570, 570, 569, 0, - 569, 0, 569, 569, 569, 0, 0, 569, 569, 0, - 569, 569, 569, 0, 0, 0, 0, 33, 0, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 570, 0, 0, 0, 0, 570, - 0, 0, 0, 0, 0, 570, 0, 569, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 569, 569, 0, 569, 569, - 569, 0, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 0, 0, 0, 735, 735, 0, + 735, 0, 0, 0, 0, 735, 0, 0, 735, 0, + 735, 735, 735, 735, 735, 735, 735, 0, 735, 735, + 735, 735, 0, 735, 735, 0, 0, 735, 735, 735, + 735, 0, 0, 735, 735, 735, 0, 0, 0, 0, + 0, 0, 0, 735, 0, 735, 0, 0, 735, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 735, + 735, 735, 735, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 735, 0, 735, 735, 735, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 735, 735, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, + 0, 0, 0, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 922, 0, 0, 0, 735, 0, 0, 735, + 735, 0, 0, 0, 0, 736, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 735, 735, 735, 735, + 0, 735, 735, 735, 735, 0, 0, 735, 0, 735, + 0, 735, 735, 735, 0, 0, 735, 735, 736, 735, + 735, 735, 0, 736, 0, 0, 736, 736, 735, 736, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 736, 736, 736, 0, 0, + 0, 0, 0, 0, 0, 0, 735, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 735, 735, 736, 735, 735, 735, + 0, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 0, 0, - 0, 570, 570, 570, 570, 570, 570, 570, 0, 0, - 0, 34, 570, 0, 33, 570, 570, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 570, 570, 570, 570, 0, 570, 570, 570, - 570, 0, 0, 570, 0, 570, 0, 570, 570, 570, - 0, 0, 570, 570, 0, 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 570, 570, 0, 0, 0, 0, 0, 0, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 570, 570, 0, 570, 570, 570, 0, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 0, 0, 0, 0, - 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, - 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, - 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 33, 0, 33, 33, - 33, 33, 34, 0, 33, 34, 33, 0, 0, 33, - 0, 0, 0, 0, 0, 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 0, 0, 0, 0, 736, 736, 0, 736, 0, + 0, 0, 0, 736, 0, 0, 736, 0, 736, 736, + 736, 736, 736, 736, 736, 0, 736, 736, 736, 736, + 0, 736, 736, 0, 0, 736, 736, 736, 736, 0, + 0, 736, 736, 736, 0, 0, 0, 0, 0, 0, + 0, 736, 0, 736, 0, 0, 736, 0, 0, 0, + 0, 736, 0, 0, 0, 0, 0, 736, 736, 736, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 776, 0, 776, 0, 0, - 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 33, 33, 0, 33, 33, 33, 0, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 736, 0, 736, 736, 736, 0, 0, + 0, 0, 232, 0, 0, 0, 0, 0, 0, 736, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 736, 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, + 232, 0, 0, 0, 736, 0, 0, 736, 736, 0, + 0, 0, 0, 737, 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 736, 736, 736, 0, 736, + 736, 736, 736, 0, 0, 736, 0, 736, 0, 736, + 736, 736, 0, 0, 736, 736, 737, 736, 736, 736, + 0, 737, 0, 0, 737, 737, 736, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 737, 737, 737, 737, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 0, 0, 778, - 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 34, 34, 776, 34, 34, 34, 34, - 0, 0, 34, 0, 34, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 778, 776, 778, 0, 0, 0, 0, - 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 34, 0, 34, 34, 34, 0, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 0, 0, 0, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 0, 0, 0, 782, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 776, 776, 776, 776, 0, 776, 776, 776, 776, - 778, 0, 776, 0, 776, 0, 0, 776, 0, 0, - 0, 0, 0, 778, 776, 776, 776, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 782, 0, 782, 0, 0, 0, 0, - 0, 776, 776, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 778, 0, 0, 0, 0, 0, 0, 776, - 776, 0, 776, 776, 776, 0, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 778, 778, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 778, 778, 0, 0, 0, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 778, 0, 0, 0, 780, 0, 0, - 782, 0, 0, 0, 0, 0, 0, 0, 0, 778, - 778, 778, 778, 782, 778, 778, 778, 778, 0, 0, - 778, 0, 778, 0, 0, 778, 0, 0, 0, 0, - 0, 0, 778, 778, 778, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 780, 782, 780, 0, 0, 0, 0, 0, 778, - 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 778, 778, 0, - 778, 778, 778, 0, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 782, 782, 782, 782, - 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, - 782, 782, 782, 782, 782, 0, 0, 0, 782, 782, - 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, - 782, 782, 782, 782, 0, 0, 0, 784, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, - 782, 782, 782, 0, 782, 782, 782, 782, 780, 0, - 782, 0, 782, 0, 0, 782, 0, 0, 0, 0, - 0, 780, 782, 782, 782, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 784, 0, 784, 0, 0, 0, 0, 0, 782, - 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 780, 0, 0, 0, 0, 0, 0, 782, 782, 0, - 782, 782, 782, 0, 782, 782, 782, 782, 782, 782, - 782, 782, 782, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 780, 780, 780, 780, 780, 780, - 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, - 780, 780, 780, 0, 0, 0, 780, 780, 780, 780, - 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, - 780, 780, 0, 0, 0, 734, 0, 0, 784, 0, - 0, 0, 0, 0, 0, 0, 0, 780, 780, 780, - 780, 784, 780, 780, 780, 780, 0, 0, 780, 0, - 780, 0, 0, 780, 0, 0, 0, 0, 0, 0, - 780, 780, 780, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, - 784, 734, 0, 0, 0, 0, 0, 780, 780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 780, 780, 0, 780, 780, - 780, 0, 780, 780, 780, 780, 780, 780, 780, 780, - 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 0, 736, 736, 737, 736, 736, 736, 0, 736, + 736, 736, 736, 736, 736, 736, 736, 736, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 0, 0, 0, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 0, 0, 0, 736, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, - 784, 0, 784, 784, 784, 784, 734, 0, 784, 734, - 784, 0, 0, 784, 0, 0, 0, 0, 0, 734, - 784, 784, 784, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, - 0, 736, 0, 0, 0, 0, 0, 784, 784, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, - 0, 0, 0, 0, 0, 784, 784, 0, 784, 784, - 784, 0, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 737, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 0, 0, 0, 734, 734, 734, 734, 734, 734, - 734, 0, 0, 0, 0, 734, 0, 400, 734, 734, - 0, 0, 0, 0, 0, 0, 736, 0, 0, 736, - 0, 0, 0, 0, 0, 734, 734, 734, 734, 736, - 734, 734, 734, 734, 0, 0, 734, 0, 734, 0, - 734, 734, 734, 0, 0, 734, 734, 0, 734, 734, - 734, 400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, - 0, 0, 0, 0, 0, 734, 734, 0, 0, 0, + 232, 0, 0, 0, 232, 232, 232, 232, 232, 0, + 232, 232, 232, 232, 0, 232, 232, 0, 0, 232, + 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, + 0, 0, 0, 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 734, 734, 0, 734, 734, 734, 157, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 0, + 0, 0, 232, 232, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 400, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 0, 0, 0, 736, 736, 736, 736, 736, 736, - 736, 442, 0, 0, 0, 736, 0, 0, 736, 736, + 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 737, 737, 0, 737, 0, 0, 0, + 0, 737, 0, 0, 737, 0, 737, 737, 737, 737, + 737, 737, 737, 0, 737, 737, 737, 737, 0, 737, + 737, 0, 0, 737, 737, 737, 737, 0, 0, 737, + 737, 737, 0, 0, 0, 0, 0, 0, 0, 737, + 0, 737, 0, 0, 737, 0, 0, 0, 0, 737, + 0, 0, 0, 0, 0, 737, 737, 737, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 736, 736, 736, 736, 0, - 736, 736, 736, 736, 0, 51, 736, 0, 736, 0, - 736, 736, 736, 0, 0, 736, 736, 0, 736, 736, - 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 736, 736, 400, 0, 0, - 400, 0, 0, 0, 51, 0, 0, 0, 0, 0, - 400, 0, 0, 736, 736, 0, 736, 736, 736, 0, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 0, - 0, 0, 0, 0, 442, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, + 0, 737, 0, 737, 737, 737, 0, 0, 0, 0, + 225, 0, 0, 0, 0, 0, 0, 737, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 790, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 0, 0, 0, 400, 400, 400, 400, 400, - 400, 400, 0, 0, 150, 790, 400, 0, 0, 400, - 400, 442, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 400, 400, 400, 400, - 0, 400, 400, 400, 400, 0, 0, 400, 0, 400, - 0, 0, 400, 0, 0, 0, 0, 0, 0, 400, - 400, 400, 0, 0, 0, 0, 0, 0, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 790, 0, 442, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 400, 0, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 400, 400, 0, 400, 400, 400, - 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 0, 0, 0, 0, 737, 0, 0, 0, 0, 737, + 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, 225, 0, + 0, 0, 737, 0, 0, 737, 737, 0, 0, 0, + 0, 738, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 737, 737, 737, 737, 0, 737, 737, 737, + 737, 0, 0, 737, 0, 737, 0, 737, 737, 737, + 0, 0, 737, 737, 738, 737, 737, 737, 0, 738, + 0, 0, 738, 738, 737, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 738, 738, 738, 738, 0, 0, 0, 0, 0, 0, + 0, 0, 737, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 0, 0, 0, 442, - 442, 442, 442, 442, 442, 442, 0, 0, 0, 0, - 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 51, 51, 51, 51, 51, - 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, - 0, 442, 0, 442, 0, 0, 442, 51, 51, 790, - 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 51, 51, 51, 0, 0, - 0, 51, 51, 0, 0, 0, 0, 51, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 51, 51, 0, - 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 285, 0, 442, 442, - 284, 442, 442, 442, 0, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 0, 0, 0, 0, 283, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 51, 0, 51, 51, 51, 0, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 225, 470, + 737, 737, 738, 737, 737, 737, 0, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 0, 737, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 738, 0, 738, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, 0, 225, 225, 225, - 225, 0, 0, 0, 225, 225, 790, 790, 790, 790, - 790, 0, 0, 225, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 790, 790, + 225, 0, 0, 0, 225, 225, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 790, 790, 790, 790, 0, - 0, 0, 790, 790, 0, 0, 0, 0, 790, 0, - 0, 790, 0, 0, 0, 225, 0, 0, 790, 790, - 0, 157, 0, 0, 0, 0, 285, 0, 0, 0, - 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 790, 790, 0, 790, 790, 790, 470, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 738, 738, 0, 738, 0, 0, 0, 0, 738, + 0, 0, 738, 0, 738, 738, 738, 738, 738, 738, + 738, 0, 738, 738, 738, 738, 0, 738, 738, 0, + 0, 738, 738, 738, 738, 0, 0, 738, 738, 738, + 0, 0, 0, 0, 0, 0, 725, 738, 0, 738, + 0, 0, 738, 0, 0, 0, 0, 738, 0, 0, + 0, 0, 0, 738, 738, 738, 738, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, + 0, 0, 0, 0, 0, 0, 725, 725, 0, 0, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 738, + 0, 738, 738, 738, 0, 725, 0, 725, 725, 0, + 0, 0, 0, 0, 0, 738, 738, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 738, 0, 0, 0, 0, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 0, 0, 0, 725, + 738, 725, 0, 738, 738, 0, 0, 0, 0, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 738, 738, 738, 738, 0, 738, 738, 738, 738, 0, + 0, 738, 0, 738, 0, 738, 738, 738, 0, 0, + 738, 738, 0, 738, 738, 738, 0, 0, 0, 0, + 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 738, 738, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 738, 738, + 0, 738, 738, 738, 0, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 0, 738, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 725, 725, 0, 725, + 0, 0, 0, 0, 725, 0, 0, 725, 0, 725, + 725, 725, 725, 725, 725, 725, 0, 725, 725, 725, + 725, 0, 725, 725, 0, 0, 725, 725, 725, 725, + 0, 0, 725, 725, 725, 0, 0, 0, 52, 0, + 0, 0, 725, 0, 725, 0, 0, 725, 0, 0, + 0, 0, 725, 0, 0, 0, 0, 0, 725, 725, + 725, 725, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 725, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 725, 725, 0, 0, 0, 0, 549, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, + 0, 0, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 52, 0, 52, 0, 725, 317, 0, 725, 725, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 725, 725, 725, 725, 0, + 725, 725, 725, 725, 0, 0, 725, 0, 725, 0, + 725, 725, 725, 0, 0, 725, 725, 0, 725, 725, + 725, 0, 0, 0, 0, 0, 0, 725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 725, 725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 725, 725, 0, 725, 725, 725, 0, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 0, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 0, 52, 52, 52, 0, 52, + 52, 52, 52, 0, 52, 52, 52, 0, 52, 52, + 52, 52, 0, 0, 52, 52, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 0, 54, + 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, + 52, 317, 317, 0, 0, 317, 317, 317, 317, 0, + 0, 0, 317, 317, 0, 0, 0, 52, 0, 0, + 0, 317, 0, 317, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 317, 317, + 317, 0, 52, 52, 0, 0, 0, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 686, 0, 0, 0, 0, 686, - 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 54, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 0, 52, 0, + 52, 0, 52, 52, 52, 52, 0, 52, 52, 0, + 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 686, 0, 0, 0, 0, 150, 0, 278, 279, - 280, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 468, 469, 0, 0, 0, 0, 0, 0, - 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 34, 152, 153, 154, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 157, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 524, 0, + 0, 0, 0, 0, 0, 52, 52, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 0, 0, 54, 0, 0, 0, 0, 0, 0, 317, + 0, 0, 54, 0, 0, 0, 54, 54, 54, 0, + 54, 54, 54, 54, 0, 54, 54, 54, 0, 54, + 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 55, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 54, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 0, 0, 54, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 147, + 148, 149, 0, 54, 54, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 0, 278, 279, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 468, 469, 0, 0, 0, 0, 0, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 55, 0, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, + 0, 54, 0, 54, 54, 54, 54, 0, 54, 54, + 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 686, 686, 0, 686, 0, 0, 0, 0, 686, - 0, 0, 686, 152, 153, 154, 686, 686, 686, 686, - 686, 0, 686, 686, 686, 686, 0, 686, 686, 0, - 0, 686, 686, 686, 686, 0, 0, 686, 686, 686, - 0, 0, 0, 0, 0, 0, 157, 686, 0, 686, - 0, 285, 0, 0, 0, 284, 0, 0, 0, 0, - 0, 0, 0, 0, 686, 686, 686, 0, 0, 0, - 0, 0, 0, 283, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, - 0, 686, 686, 686, 470, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 686, 686, 0, 0, 0, - 0, 0, 0, 0, 127, 515, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 212, 155, 139, 140, 141, 142, 438, 0, 0, - 143, 144, 0, 0, 0, 0, 686, 686, 686, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 439, 0, 440, 441, 442, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 0, 516, 0, 5, 6, 7, 0, 444, - 445, 446, 447, 0, 0, 448, 0, 517, 0, 449, - 450, 451, 518, 0, 0, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 519, 520, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 68, 0, 69, 521, 0, 0, - 0, 126, 0, 0, 127, 686, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 522, 523, 0, 0, 0, 0, 156, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 147, 148, 149, 27, - 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 150, 0, 278, 279, 280, 0, 0, 0, 212, - 0, 0, 0, 212, 212, 212, 212, 212, 0, 212, - 212, 212, 212, 0, 212, 212, 0, 155, 212, 212, - 212, 212, 212, 0, 0, 212, 212, 0, 0, 0, - 0, 0, 0, 0, 212, 0, 212, 0, 0, 0, - 0, 210, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 212, 212, 212, 0, 212, 0, 212, 212, 212, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 212, 0, 0, 0, - 0, 0, 0, 0, 212, 212, 212, 212, 0, 0, - 212, 0, 0, 0, 212, 212, 212, 67, 68, 0, - 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, - 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, - 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 147, 148, 149, 0, 0, 0, 0, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 151, 0, 0, 212, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 212, 147, 148, 149, 0, 917, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 918, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 210, 0, 98, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, - 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 210, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 159, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 546, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 159, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 670, - 33, 146, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 33, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, - 159, 0, 0, 159, 712, 0, 0, 159, 159, 159, - 159, 159, 0, 159, 159, 159, 159, 0, 159, 159, - 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, - 159, 0, 0, 225, 0, 0, 0, 0, 159, 317, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 159, 159, 0, 0, - 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 33, 0, - 159, 0, 33, 33, 33, 33, 33, 317, 33, 33, - 33, 33, 316, 33, 33, 0, 0, 33, 33, 33, - 33, 0, 37, 0, 33, 33, 0, 40, 0, 43, - 0, 316, 316, 33, 0, 33, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 33, 49, 0, 0, 0, 159, 159, 159, - 0, 0, 0, 0, 0, 0, 0, 33, 52, 0, - 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, - 33, 0, 33, 33, 0, 33, 33, 33, 33, 33, - 0, 37, 0, 33, 33, 316, 40, 316, 43, 0, - 155, 0, 33, 0, 33, 46, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 33, 33, 49, 225, 0, 0, 0, 225, 225, 225, - 225, 225, 0, 225, 225, 225, 225, 52, 225, 225, - 0, 0, 225, 225, 225, 225, 0, 0, 0, 225, - 225, 0, 0, 0, 33, 0, 0, 0, 225, 0, - 225, 0, 0, 0, 0, 236, 0, 0, 0, 0, - 0, 566, 0, 0, 0, 225, 225, 225, 0, 0, - 0, 0, 0, 236, 0, 0, 159, 317, 0, 0, - 0, 0, 317, 317, 317, 317, 0, 317, 317, 317, - 317, 0, 317, 317, 0, 0, 317, 317, 317, 317, - 225, 0, 0, 317, 317, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 317, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 0, 316, 0, 0, 0, 317, - 317, 317, 0, 0, 0, 316, 0, 236, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 317, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 54, 0, 54, + 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 55, 0, 0, 0, 55, 55, 55, + 0, 55, 55, 55, 55, 0, 55, 55, 55, 0, + 55, 55, 55, 55, 0, 0, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, + 0, 56, 225, 225, 225, 225, 225, 0, 225, 225, + 225, 225, 55, 225, 225, 0, 0, 225, 225, 225, + 225, 0, 0, 0, 225, 225, 0, 0, 0, 55, + 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 225, 225, 225, 0, 55, 55, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 56, 0, 56, 0, 0, 317, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, + 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, + 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, + 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 0, 0, 236, 0, 316, 236, 0, 0, - 316, 316, 316, 316, 316, 316, 225, 236, 566, 235, - 0, 235, 0, 0, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 316, 316, 316, 316, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, + 0, 56, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 225, 0, 0, 56, 0, 0, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 56, 56, 56, + 0, 56, 56, 56, 56, 0, 0, 56, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, + 0, 0, 53, 0, 317, 317, 317, 317, 0, 317, + 317, 317, 317, 56, 317, 317, 0, 0, 317, 317, + 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, + 56, 0, 0, 0, 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 317, 317, 317, 0, 56, 56, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 316, 316, 316, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 566, 0, 0, 316, 316, - 316, 316, 316, 316, 316, 236, 0, 527, 0, 0, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 0, 0, 235, 0, 236, 235, - 0, 0, 236, 236, 236, 236, 236, 236, 0, 235, - 0, 0, 0, 0, 0, 0, 236, 236, 0, 0, + 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, + 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, + 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 236, 236, 236, 0, 0, 0, - 0, 527, 0, 527, 236, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 317, 0, 0, 53, 0, 0, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, + 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, + 53, 0, 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 236, 236, 236, 236, 236, 236, 235, 0, 34, - 0, 0, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, - 235, 0, 0, 0, 235, 235, 235, 235, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, - 0, 527, 0, 0, 0, 235, 235, 235, 235, 0, - 0, 527, 566, 325, 0, 326, 235, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 0, 62, 0, + 0, 0, 61, 0, 0, 61, 0, 0, 0, 0, + 0, 53, 53, 53, 53, 61, 53, 53, 53, 53, + 0, 0, 53, 0, 53, 0, 53, 53, 53, 53, + 0, 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 53, + 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, + 0, 61, 61, 61, 61, 0, 61, 61, 61, 61, + 0, 0, 61, 0, 61, 0, 61, 61, 61, 61, + 0, 61, 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 325, 0, 748, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 527, 527, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, - 67, 0, 527, 69, 0, 0, 527, 527, 527, 527, - 527, 527, 0, 2, 0, 0, 0, 0, 0, 0, - 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, - 527, 0, 0, 0, 0, 0, 0, 0, 527, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 527, 67, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 325, 0, 932, 0, 0, 0, - 0, 0, 0, 0, 527, 527, 527, 527, 527, 527, - 527, 0, 0, 532, 0, 0, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 0, 0, 0, 0, 7, 0, 0, 0, 315, 316, - 317, 318, 319, 320, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 0, 532, 0, 532, - 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 371, 0, 0, 0, 0, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 323, - 324, 67, 0, 7, 69, 0, 0, 315, 316, 317, - 318, 319, 320, 0, 2, 0, 0, 0, 0, 0, - 0, 8, 9, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 0, 371, 0, 371, 0, 0, 321, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 532, 0, 0, 532, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 532, 323, 324, + 0, 61, 61, 0, 0, 0, 0, 0, 62, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 61, + 61, 62, 61, 61, 61, 0, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 0, 0, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 0, 0, 0, 0, 7, 0, 0, 0, 315, - 316, 317, 318, 319, 320, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 9, 363, 0, 0, 0, 0, - 0, 371, 0, 0, 371, 0, 0, 0, 0, 0, - 10, 11, 12, 13, 371, 0, 0, 0, 0, 0, - 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, - 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, - 532, 532, 532, 532, 0, 0, 0, 0, 532, 363, - 0, 363, 532, 532, 532, 532, 532, 532, 0, 0, - 323, 324, 0, 0, 0, 0, 532, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 532, 532, 532, 532, 27, 28, 29, - 30, 31, 32, 33, 532, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 0, 0, 532, 532, 371, 356, 0, 356, 371, - 371, 371, 371, 371, 371, 0, 0, 0, 0, 0, - 0, 0, 0, 371, 371, 210, 0, 0, 0, 0, - 532, 532, 532, 532, 532, 532, 532, 0, 0, 0, - 371, 371, 371, 371, 0, 0, 363, 0, 0, 363, - 0, 371, 0, 0, 0, 0, 0, 0, 0, 363, - 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, - 371, 371, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, - 371, 371, 371, 371, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 356, 0, 0, 356, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 526, 0, 0, - 0, 0, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 363, 363, 363, 363, 0, 0, 0, 0, - 363, 0, 0, 0, 363, 363, 363, 363, 363, 363, - 0, 0, 0, 0, 0, 0, 0, 0, 363, 363, - 0, 0, 0, 0, 0, 0, 210, 0, 34, 210, - 0, 0, 0, 0, 0, 363, 363, 363, 363, 210, - 0, 526, 0, 526, 0, 0, 363, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 0, 0, 66, 0, 0, 0, 65, 0, + 0, 65, 0, 0, 0, 0, 0, 62, 62, 62, + 62, 65, 62, 62, 62, 62, 0, 0, 62, 0, + 62, 0, 62, 62, 62, 62, 0, 62, 62, 0, + 62, 62, 62, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 62, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 0, 0, 0, 0, 62, 62, 0, 62, 62, + 62, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 0, 0, 0, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 0, 0, 0, 0, 0, 0, 0, 571, + 0, 0, 0, 0, 0, 0, 0, 65, 65, 65, + 65, 0, 65, 65, 65, 65, 0, 0, 65, 0, + 65, 0, 65, 65, 65, 65, 0, 65, 65, 0, + 65, 65, 65, 0, 0, 0, 0, 0, 0, 571, + 571, 0, 0, 571, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, + 571, 0, 0, 0, 0, 0, 0, 65, 65, 0, + 0, 0, 0, 0, 66, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 65, 65, 66, 65, 65, + 65, 0, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 0, 571, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 0, 538, 363, 363, 356, 0, 0, - 0, 356, 356, 356, 356, 356, 356, 0, 0, 0, - 0, 0, 0, 0, 0, 356, 356, 0, 0, 0, - 0, 0, 363, 363, 363, 363, 363, 363, 363, 0, - 0, 0, 356, 356, 356, 356, 0, 0, 0, 34, - 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, - 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 0, 0, 526, 0, - 210, 526, 0, 0, 210, 210, 210, 210, 210, 210, - 0, 526, 356, 356, 0, 0, 0, 0, 210, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 0, 210, 210, 210, 210, 356, - 356, 356, 356, 356, 356, 356, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 210, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1160, 210, 210, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 210, 210, 210, 210, 210, 0, - 0, 0, 0, 0, 526, 526, 526, 526, 526, 526, - 526, 526, 526, 526, 526, 526, 526, 526, 0, 0, - 0, 0, 526, 0, 0, 0, 526, 526, 526, 526, - 526, 526, 0, 0, 0, 0, 0, 187, 0, 0, - 526, 526, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 526, 526, 526, - 526, 0, 0, 0, 0, 0, 0, 0, 526, 3, - 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 2, 0, 0, 14, 15, 526, 526, 0, - 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 526, 526, 526, 526, 526, 526, - 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 5, 6, 7, 187, 20, 21, 0, 22, - 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, - 0, 0, 16, 0, 187, 17, 0, 0, 0, 0, - 0, 0, 18, 19, 0, 0, 0, 0, 855, 516, - 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 517, 0, 0, 0, 0, 518, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 519, 520, 0, 0, 20, 21, 0, - 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 187, 0, 0, 187, 187, 0, 0, 522, 523, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 187, 187, 187, 0, 187, 187, 0, 0, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 814, 0, 0, 0, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 815, 0, 0, 0, - 0, 816, 817, 0, 818, 819, 820, 821, 822, 823, - 814, 824, 825, 0, 826, 827, 828, 829, 830, 0, - 0, 187, 187, 0, 815, 0, 0, 0, 0, 816, - 817, 0, 818, 819, 820, 821, 822, 823, 0, 824, - 825, 0, 826, 827, 828, 829, 830, 0, 187, 187, - 187, 187, 187, 187, 187, 0, 0, 0, 0, 0, - 831, 0, 832, 0, 0, 0, 0, 833, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 834, 0, 0, 0, 0, 831, 0, - 832, 0, 0, 0, 0, 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 834, 0, 0, 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 835, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, + 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 571, + 571, 0, 571, 66, 66, 66, 66, 0, 66, 66, + 66, 66, 571, 571, 66, 0, 66, 0, 66, 66, + 66, 66, 0, 66, 66, 0, 66, 66, 66, 0, + 569, 569, 0, 0, 569, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, + 571, 569, 0, 0, 0, 571, 0, 0, 0, 0, + 0, 571, 0, 66, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 66, 0, 66, 66, 66, 0, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 0, 0, 0, 571, 571, 571, + 571, 571, 571, 571, 0, 0, 0, 0, 571, 0, + 0, 571, 571, 0, 0, 570, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, + 571, 571, 0, 571, 571, 571, 571, 0, 0, 571, + 0, 571, 0, 571, 571, 571, 0, 0, 571, 571, + 0, 571, 571, 571, 0, 570, 570, 0, 0, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 570, 0, 570, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 569, 569, 0, 571, 571, 0, 571, + 571, 571, 0, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, + 570, 569, 0, 0, 0, 0, 569, 0, 0, 0, + 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 836, 0, 837, - 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 851, 852, 853, 0, 0, 0, 854, - 0, 0, 0, 0, 0, 836, 0, 837, 838, 839, - 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 851, 852, 853, 0, 0, 0, 854, -}; -static int yycheck[] = { 4, - 24, 24, 102, 103, 155, 1, 22, 23, 93, 418, - 1, 420, 24, 299, 19, 1, 299, 181, 13, 299, - 1, 941, 27, 28, 29, 30, 1, 965, 64, 24, - 38, 38, 1, 41, 668, 167, 44, 44, 796, 472, - 40, 1109, 46, 46, 59, 43, 742, 682, 91, 193, - 194, 195, 196, 197, 1137, 264, 491, 492, 493, 46, - 123, 46, 46, 24, 36, 37, 123, 167, 41, 46, - 41, 1487, 38, 91, 365, 42, 42, 41, 61, 61, - 33, 1099, 105, 91, 169, 40, 44, 43, 60, 45, - 190, 43, 727, 1211, 60, 125, 262, 319, 123, 46, - 471, 40, 354, 125, 40, 128, 40, 46, 113, 104, - 115, 116, 117, 59, 61, 215, 263, 44, 483, 20, - 21, 145, 288, 41, 148, 91, 40, 46, 151, 40, - 40, 58, 1474, 47, 41, 93, 264, 42, 503, 263, - 40, 93, 41, 104, 168, 38, 60, 42, 233, 42, - 40, 156, 157, 46, 47, 91, 42, 91, 380, 41, - 42, 156, 1504, 199, 65, 38, 40, 60, 123, 42, - 91, 72, 167, 1476, 93, 299, 342, 92, 874, 875, - 91, 91, 187, 41, 76, 208, 41, 60, 41, 44, - 40, 91, 356, 61, 41, 1611, 41, 91, 91, 40, - 205, 206, 334, 1506, 41, 210, 529, 41, 41, 91, - 111, 112, 471, 38, 43, 210, 1477, 42, 91, 915, - 61, 43, 260, 261, 41, 263, 1344, 232, 41, 664, - 46, 203, 61, 123, 239, 60, 260, 267, 264, 339, - 41, 91, 260, 261, 1262, 263, 1507, 123, 311, 123, - 268, 260, 543, 338, 263, 951, 157, 692, 41, 316, - 283, 59, 267, 268, 123, 270, 91, 290, 292, 274, - 59, 93, 277, 188, 526, 264, 281, 93, 296, 262, - 262, 286, 287, 288, 289, 262, 275, 59, 306, 181, - 315, 316, 263, 260, 261, 930, 263, 506, 507, 508, - 264, 38, 338, 299, 300, 42, 288, 260, 299, 300, - 263, 264, 335, 299, 300, 331, 332, 232, 299, 300, - 221, 222, 365, 60, 299, 300, 59, 125, 299, 296, - 299, 300, 40, 318, 318, 262, 125, 359, 294, 334, - 335, 776, 364, 471, 359, 340, 264, 320, 321, 364, - 306, 307, 267, 125, 91, 260, 261, 264, 263, 262, - 274, 357, 358, 359, 360, 264, 265, 268, 324, 264, - 342, 357, 262, 274, 260, 261, 1011, 263, 264, 340, - 40, 282, 357, 358, 359, 360, 267, 391, 262, 275, - 315, 296, 125, 391, 360, 361, 362, 415, 416, 417, - 416, 1484, 123, 1341, 391, 260, 264, 265, 263, 324, - 296, 264, 265, 577, 315, 46, 317, 264, 374, 422, - 321, 123, 337, 40, 588, 40, 861, 264, 329, 330, - 264, 264, 333, 471, 1502, 1518, 459, 329, 46, 38, - 123, 333, 264, 42, 877, 41, 546, 264, 453, 294, - 455, 264, 60, 453, 1212, 356, 301, 91, 303, 304, - 305, 60, 93, 264, 356, 470, 1100, 360, 361, 362, - 385, 44, 467, 46, 91, 470, 91, 482, 123, 40, - 40, 264, 487, 266, 41, 42, 123, 360, 361, 362, - 260, 261, 91, 263, 43, 46, 45, 342, 343, 344, - 543, 273, 41, 286, 287, 44, 473, 512, 409, 410, - 595, 412, 40, 414, 40, 481, 264, 265, 526, 526, - 40, 536, 537, 538, 539, 540, 541, 542, 429, 430, - 91, 91, 123, 425, 91, 360, 361, 362, 543, 544, - 273, 46, 93, 388, 389, 390, 461, 392, 571, 41, - 395, 715, 44, 638, 1492, 640, 264, 265, 266, 564, - 40, 359, 44, 91, 33, 42, 364, 339, 473, 470, - 359, 91, 1268, 1269, 41, 364, 43, 260, 286, 287, - 263, 264, 497, 498, 40, 33, 487, 473, 544, 40, - 536, 537, 538, 539, 540, 541, 542, 512, 570, 40, - 260, 261, 1522, 263, 40, 40, 706, 40, 523, 614, - 59, 91, 712, 649, 91, 620, 639, 41, 519, 520, - 40, 44, 40, 360, 361, 362, 260, 261, 306, 263, - 602, 603, 260, 261, 44, 263, 608, 40, 610, 62, - 91, 542, 61, 38, 545, 931, 670, 47, 931, 564, - 735, 931, 41, 42, 391, 91, 679, 801, 91, 803, - 804, 805, 806, 807, 579, 566, 40, 91, 264, 265, - 266, 91, 573, 91, 566, 391, 125, 682, 391, 702, - 452, 573, 687, 93, 689, 577, 91, 588, 91, 41, - 286, 287, 464, 463, 466, 467, 588, 469, 470, 391, - 705, 1336, 91, 726, 709, 710, 711, 47, 91, 684, - 41, 391, 613, 729, 686, 59, 1125, 91, 1127, 452, - 40, 744, 727, 41, 42, 626, 91, 40, 123, 462, - 320, 321, 465, 1429, 260, 261, 637, 263, 536, 537, - 538, 539, 540, 541, 542, 294, 1442, 536, 537, 538, - 539, 540, 541, 542, 585, 586, 587, 306, 307, 660, - 40, 360, 361, 362, 536, 537, 538, 539, 540, 541, - 542, 91, 44, 91, 779, 324, 781, 862, 91, 283, - 284, 125, 41, 123, 267, 42, 871, 792, 41, 704, - 705, 260, 261, 44, 263, 264, 1431, 698, 699, 260, - 261, 44, 263, 536, 537, 538, 539, 540, 541, 542, - 91, 91, 260, 261, 318, 263, 264, 41, 719, 62, - 721, 93, 723, 715, 273, 374, 1469, 728, 316, 1525, - 40, 732, 1475, 40, 91, 463, 260, 261, 862, 263, - 732, 38, 93, 40, 268, 42, 42, 264, 38, 44, - 751, 46, 42, 393, 394, 260, 261, 40, 263, 751, - 761, 762, 1505, 60, 281, 282, 283, 41, 760, 43, - 60, 1567, 296, 41, 775, 299, 40, 260, 261, 794, - 263, 91, 306, 278, 91, 61, 281, 282, 283, 284, - 339, 286, 287, 288, 91, 260, 261, 798, 263, 93, - 923, 91, 1598, 40, 916, 990, 929, 260, 261, 810, - 263, 812, 43, 374, 375, 920, 41, 1613, 43, 44, - 260, 261, 897, 263, 263, 930, 264, 899, 266, 273, - 41, 260, 261, 1568, 263, 931, 93, 933, 934, 935, - 931, 946, 933, 934, 44, 931, 46, 1032, 286, 287, - 931, 41, 867, 43, 458, 459, 931, 461, 933, 934, - 935, 862, 931, 294, 933, 934, 476, 859, 91, 280, - 301, 872, 303, 304, 305, 1610, 266, 330, 331, 260, - 261, 986, 263, 432, 433, 91, 260, 261, 93, 263, - 93, 415, 416, 417, 1145, 40, 286, 287, 260, 261, - 1085, 263, 264, 452, 279, 280, 1011, 952, 33, 954, - 902, 342, 343, 344, 289, 464, 41, 466, 467, 260, - 469, 470, 263, 264, 925, 940, 927, 942, 40, 1161, - 1162, 1163, 1164, 125, 301, 294, 303, 304, 305, 1171, - 1172, 1173, 301, 91, 303, 304, 305, 260, 261, 295, - 263, 952, 58, 954, 300, 33, 302, 388, 389, 390, - 952, 392, 954, 309, 395, 40, 91, 982, 40, 984, - 260, 261, 40, 263, 40, 976, 260, 261, 979, 263, - 326, 41, 40, 342, 343, 344, 125, 536, 537, 538, - 539, 540, 541, 542, 310, 341, 312, 313, 314, 44, - 374, 375, 41, 1512, 1513, 393, 394, 1123, 452, 43, - 44, 1127, 260, 261, 40, 263, 40, 1141, 462, 1135, - 262, 465, 330, 331, 332, 0, 43, 44, 123, 388, - 389, 390, 262, 392, 44, 40, 395, 260, 261, 41, - 263, 281, 282, 283, 284, 268, 41, 91, 60, 1154, - 274, 1236, 41, 42, 260, 261, 1151, 263, 366, 367, - 368, 464, 268, 360, 361, 362, 1161, 1162, 1163, 1164, - 360, 361, 362, 296, 849, 850, 1171, 1172, 1173, 1080, - 328, 274, 330, 331, 59, 264, 265, 266, 275, 337, - 296, 62, 536, 537, 538, 539, 540, 541, 542, 44, - 1205, 123, 33, 59, 365, 123, 58, 286, 287, 1110, - 1111, 1112, 281, 282, 283, 284, 1117, 1118, 1119, 1120, - 1121, 1122, 123, 1124, 1125, 1126, 1326, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 274, 1136, 123, 1138, 40, 1140, - 40, 1142, 1157, 1158, 40, 40, 271, 41, 468, 317, - 125, 276, 277, 278, 279, 317, 281, 282, 283, 284, - 91, 286, 287, 61, 1280, 290, 291, 292, 293, 125, - 61, 61, 297, 298, 1359, 280, 281, 282, 283, 284, - 38, 306, 471, 308, 281, 282, 283, 284, 1263, 1181, - 1314, 40, 415, 416, 417, 41, 471, 1198, 323, 324, - 325, 44, 1203, 1195, 59, 1197, 93, 41, 41, 415, - 416, 417, 1317, 1214, 41, 295, 260, 261, 41, 263, - 300, 41, 302, 1224, 268, 41, 58, 1228, 1229, 309, - 44, 1336, 41, 358, 294, 61, 44, 44, 1239, 125, - 263, 301, 61, 303, 304, 305, 326, 327, 40, 330, - 331, 332, 296, 40, 125, 299, 41, 41, 40, 1260, - 1261, 341, 306, 274, 269, 123, 274, 272, 93, 93, - 125, 41, 44, 1274, 1275, 1276, 1277, 1278, 1279, 41, - 1281, 44, 342, 343, 344, 366, 367, 368, 41, 44, - 295, 296, 372, 40, 58, 300, 40, 302, 273, 38, - 41, 1376, 294, 41, 309, 40, 40, 498, 41, 1432, - 1495, 41, 41, 260, 261, 40, 263, 273, 41, 62, - 1335, 326, 91, 41, 40, 490, 1431, 502, 388, 389, - 390, 1346, 392, 40, 277, 395, 341, 41, 62, 61, - 271, 0, 125, 123, 275, 276, 277, 278, 279, 91, - 281, 282, 283, 284, 41, 286, 287, 1358, 452, 290, - 291, 292, 293, 391, 1365, 93, 297, 298, 41, 41, - 41, 415, 416, 417, 33, 306, 93, 308, 317, 38, - 317, 40, 41, 42, 41, 44, 1571, 40, 47, 40, - 58, 58, 323, 324, 325, 93, 1520, 1513, 93, 93, - 59, 60, 61, 62, 1604, 93, 40, 44, 355, 356, - 357, 91, 505, 91, 40, 1430, 40, 123, 273, 544, - 278, 41, 41, 281, 282, 283, 284, 358, 286, 287, - 288, 93, 91, 380, 93, 410, 411, 412, 413, 414, - 280, 281, 282, 283, 284, 40, 40, 93, 41, 422, - 1451, 1452, 1453, 41, 93, 511, 274, 432, 433, 44, - 41, 58, 41, 1568, 123, 41, 125, 44, 60, 425, - 426, 427, 428, 1488, 449, 450, 451, 452, 61, 93, - 40, 456, 457, 40, 1607, 38, 40, 462, 40, 464, - 465, 40, 40, 449, 450, 451, 452, 472, 473, 40, - 40, 40, 1503, 40, 40, 1610, 40, 1508, 1509, 1510, - 125, 1512, 62, 1514, 1515, 1516, 41, 41, 260, 261, - 262, 263, 264, 93, 93, 41, 268, 93, 475, 41, - 477, 478, 479, 480, 93, 1536, 1537, 1538, 41, 278, - 41, 283, 281, 282, 283, 284, 93, 286, 287, 288, - 93, 41, 527, 528, 296, 530, 531, 532, 41, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 41, 41, - 123, 93, 93, 428, 41, 430, 431, 41, 320, 321, - 536, 537, 538, 539, 540, 541, 542, 93, 93, 41, - 41, 93, 41, 1608, 449, 450, 451, 452, 1599, 93, - 93, 260, 261, 262, 263, 41, 41, 93, 41, 268, - 41, 263, 271, 544, 273, 274, 275, 276, 277, 278, - 279, 44, 281, 282, 283, 284, 274, 286, 287, 288, - 93, 290, 291, 292, 293, 41, 41, 296, 297, 298, - 299, 41, 40, 93, 40, 93, 93, 306, 40, 308, - 40, 40, 311, 41, 58, 58, 315, 316, 41, 318, - 41, 58, 41, 322, 323, 324, 325, 40, 40, 93, - 41, 41, 41, 415, 416, 417, 93, 41, 93, 41, - 339, 536, 537, 538, 539, 540, 541, 542, 40, 40, - 40, 93, 33, 40, 40, 40, 40, 40, 40, 358, - 359, 360, 361, 362, 40, 364, 365, 260, 40, 40, - 263, 41, 40, 93, 41, 374, 375, 263, 93, 58, - 60, 40, 40, 40, 40, 278, 33, 41, 281, 282, - 283, 284, 391, 286, 287, 288, 91, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 40, 274, 41, 41, 0, - 41, 41, 40, 263, 91, 41, 358, 41, 40, 40, - 449, 450, 451, 452, 41, 454, 455, 456, 457, 511, - 41, 460, 40, 462, 274, 464, 465, 466, 467, 41, - 469, 470, 33, 472, 473, 474, 41, 38, 123, 40, - 41, 42, 481, 44, 125, 41, 47, 269, 123, 123, - 272, 123, 44, 62, 125, 123, 125, 40, 59, 60, - 61, 62, 123, 62, 41, 123, 41, 123, 125, 41, - 509, 510, 511, 295, 296, 41, 41, 41, 300, 125, - 302, 123, 41, 62, 123, 41, 40, 309, 527, 528, - 91, 530, 531, 532, 123, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 326, 544, 40, 123, 41, 263, - 46, 93, 93, 275, 42, 263, 61, 275, 275, 341, - 263, 91, 123, 123, 125, 263, 277, 278, 279, 275, - 281, 282, 283, 284, 275, 286, 287, 288, 275, 290, - 291, 292, 293, 407, 791, 263, 297, 298, 981, 958, - 271, 699, 59, 858, 0, 180, 277, 278, 279, 1447, - 281, 282, 283, 284, 1221, 286, 287, 956, 1085, 290, - 291, 292, 293, 260, 261, 275, 263, 298, 877, 679, - 275, 268, 275, 275, 271, 275, 275, 275, 275, 276, - 277, 278, 279, 275, 281, 282, 283, 284, 275, 286, - 287, 1209, 867, 290, 291, 292, 293, 1222, 467, 296, - 297, 298, 340, 59, 365, 61, 24, 9, 125, 306, - 864, 308, 1149, 260, 261, 114, 263, 262, 521, 24, - 718, 714, 292, 649, 64, 583, 323, 324, 325, 479, - -1, 358, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, 260, - 261, -1, 263, -1, 299, -1, -1, 268, -1, -1, - 271, 358, 273, 274, 275, 276, 277, 278, 279, 125, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, 294, 296, 297, 298, 299, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, 309, - 311, -1, -1, -1, -1, 316, -1, -1, 355, 356, - 357, 322, 323, 324, 325, 325, -1, -1, 415, 416, - 417, -1, -1, -1, 334, -1, -1, -1, -1, -1, - -1, -1, -1, 380, -1, -1, -1, -1, 348, 349, - 350, 351, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - 380, 381, 382, 383, 384, 385, 386, -1, -1, 296, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, 475, -1, - 477, 478, 479, 480, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, 544, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, 322, 40, 41, 42, - 481, 44, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, 410, -1, -1, -1, -1, 509, 510, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, -1, 527, 528, 91, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, 452, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 462, -1, -1, 465, -1, - 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 424, -1, - -1, -1, -1, 429, -1, -1, 432, 433, -1, -1, - 59, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, 474, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, 322, 40, 41, 42, 481, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, 410, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, 452, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 462, -1, -1, 465, -1, 123, -1, - 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, - -1, 429, -1, -1, 432, 433, -1, 59, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, 474, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 33, 0, 0, 569, 569, + 569, 569, 569, 569, 569, 0, 0, 0, 0, 569, + 0, 0, 569, 569, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, + 569, 569, 569, 0, 569, 569, 569, 569, 570, 570, + 569, 0, 569, 0, 569, 569, 569, 0, 0, 569, + 569, 0, 569, 569, 569, 0, 0, 0, 0, 33, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, + 0, 570, 0, 0, 0, 0, 0, 570, 0, 569, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 569, 569, 0, + 569, 569, 569, 0, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 0, 0, 0, 570, 570, 570, 570, 570, 570, 570, + 0, 0, 0, 34, 570, 0, 33, 570, 570, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 0, 0, 570, 570, 570, 570, 0, 570, + 570, 570, 570, 0, 0, 570, 0, 570, 0, 570, + 570, 570, 0, 0, 570, 570, 0, 570, 570, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 33, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 570, 570, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 570, 570, 0, 570, 570, 570, 0, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 0, 0, + 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 0, 0, 0, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 33, 33, 0, + 33, 33, 33, 33, 34, 0, 33, 34, 33, 0, + 0, 33, 0, 0, 0, 0, 0, 34, 33, 33, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 795, 0, 795, + 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 33, 33, 0, 33, 33, 33, 0, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, + 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, + 0, 797, 0, 0, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 795, 34, 34, + 34, 34, 0, 0, 34, 0, 34, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 797, 795, 797, 0, 0, + 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 34, 0, 34, 34, 34, 0, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 0, + 0, 0, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 0, 0, + 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 795, 795, 795, 795, 0, 795, 795, + 795, 795, 797, 0, 795, 0, 795, 0, 0, 795, + 0, 0, 0, 0, 0, 797, 795, 795, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 801, 0, 801, 0, 0, + 0, 0, 0, 795, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, + 0, 795, 795, 0, 795, 795, 795, 0, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 0, 0, 0, + 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 0, 0, 0, 799, + 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, + 0, 797, 797, 797, 797, 801, 797, 797, 797, 797, + 0, 0, 797, 0, 797, 0, 0, 797, 0, 0, + 0, 0, 0, 0, 797, 797, 797, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 799, 801, 799, 0, 0, 0, 0, + 0, 797, 797, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, + 797, 0, 797, 797, 797, 0, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 801, 801, + 801, 801, 801, 801, 801, 801, 801, 801, 801, 801, + 801, 801, 801, 801, 801, 801, 801, 0, 0, 0, + 801, 801, 801, 801, 801, 801, 801, 801, 801, 801, + 801, 801, 801, 801, 801, 801, 0, 0, 0, 803, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 801, 801, 801, 801, 0, 801, 801, 801, 801, + 799, 0, 801, 0, 801, 0, 0, 801, 0, 0, + 0, 0, 0, 799, 801, 801, 801, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 803, 0, 803, 0, 0, 0, 0, + 0, 801, 801, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 799, 0, 0, 0, 0, 0, 0, 801, + 801, 0, 801, 801, 801, 0, 801, 801, 801, 801, + 801, 801, 801, 801, 801, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 0, 0, 0, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 0, 0, 0, 753, 0, 0, + 803, 0, 0, 0, 0, 0, 0, 0, 0, 799, + 799, 799, 799, 803, 799, 799, 799, 799, 0, 0, + 799, 0, 799, 0, 0, 799, 0, 0, 0, 0, + 0, 0, 799, 799, 799, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 753, 803, 753, 0, 0, 0, 0, 0, 799, + 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 799, 799, 0, + 799, 799, 799, 0, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 755, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 803, 803, 803, 803, + 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, + 803, 803, 803, 803, 803, 0, 0, 0, 803, 803, + 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, + 803, 803, 803, 803, 0, 0, 0, 755, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 803, + 803, 803, 803, 0, 803, 803, 803, 803, 753, 0, + 803, 753, 803, 34, 0, 803, 0, 0, 0, 0, + 0, 753, 803, 803, 803, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 755, 0, 755, 0, 0, 0, 0, 0, 803, + 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 753, 0, 0, 0, 0, 0, 0, 803, 803, 568, + 803, 803, 803, 0, 803, 803, 803, 803, 803, 803, + 803, 803, 803, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 753, 753, 753, 753, 753, 753, + 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, + 753, 753, 753, 0, 0, 0, 753, 753, 753, 753, + 753, 753, 753, 0, 0, 0, 0, 753, 0, 400, + 753, 753, 0, 0, 0, 0, 0, 0, 755, 0, + 0, 755, 0, 0, 0, 0, 0, 753, 753, 753, + 753, 755, 753, 753, 753, 753, 0, 0, 753, 0, + 753, 0, 753, 753, 753, 0, 0, 753, 753, 0, + 753, 753, 753, 400, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 755, 0, 0, 0, 0, 0, 0, 753, 753, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 753, 753, 0, 753, 753, + 753, 0, 753, 753, 753, 753, 753, 753, 753, 753, + 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 400, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 755, 755, 755, 755, 755, 755, + 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, + 755, 755, 755, 0, 0, 0, 755, 755, 755, 755, + 755, 755, 755, 442, 0, 0, 0, 755, 0, 0, + 755, 755, 0, 0, 3, 4, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 755, 755, 755, + 755, 0, 755, 755, 755, 755, 8, 9, 755, 0, + 755, 0, 755, 755, 755, 0, 0, 755, 755, 0, + 755, 755, 755, 10, 11, 12, 13, 0, 0, 0, + 14, 15, 442, 0, 0, 0, 16, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 755, 755, 400, + 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 755, 755, 0, 755, 755, + 755, 0, 755, 755, 755, 755, 755, 755, 755, 755, + 755, 0, 0, 0, 0, 0, 442, 0, 442, 0, + 0, 20, 21, 0, 22, 23, 24, 0, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 0, 0, 0, 400, 400, 400, + 400, 400, 400, 400, 0, 0, 0, 0, 400, 0, + 0, 400, 400, 442, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 442, 0, 400, 400, + 400, 400, 0, 400, 400, 400, 400, 0, 0, 400, + 0, 400, 0, 0, 400, 0, 0, 0, 0, 0, + 0, 400, 400, 400, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 299, 442, 0, 0, 298, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, + 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 400, 0, 400, + 400, 400, 0, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 0, 0, 0, 0, 0, 484, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 0, 0, + 0, 442, 442, 442, 442, 442, 442, 442, 34, 0, + 0, 0, 442, 0, 0, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 442, 442, 0, 442, 442, 442, + 442, 0, 157, 442, 0, 442, 0, 299, 442, 0, + 0, 753, 0, 0, 0, 442, 442, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, + 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 0, 0, 0, 0, 0, 0, + 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 442, 0, 442, 442, 442, 0, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 705, 0, 0, 0, 0, 705, 0, 0, + 0, 705, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 0, 0, 2, 0, 150, 0, 292, 293, 294, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 482, 483, 0, 0, 0, 0, 0, 0, 0, 0, + 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 545, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 152, 153, 154, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 157, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, + 0, 5, 6, 7, 0, 34, 0, 150, 0, 292, + 293, 294, 0, 547, 0, 0, 0, 0, 548, 0, + 0, 8, 9, 482, 483, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 549, 550, 0, 0, 0, 212, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 705, 0, 705, 551, 152, 153, 154, 705, 0, 0, + 705, 0, 0, 0, 705, 705, 705, 705, 705, 0, + 705, 705, 705, 705, 0, 705, 705, 0, 0, 705, + 705, 705, 705, 0, 0, 705, 705, 705, 552, 553, + 0, 0, 0, 0, 0, 705, 0, 705, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 705, 705, 705, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 705, 0, 705, + 705, 705, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 705, 705, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 316, 133, 134, 135, 136, 0, + 137, 138, 0, 155, 139, 140, 141, 142, 452, 0, + 0, 143, 144, 316, 316, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 705, 705, 705, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 453, 0, 454, 455, 456, 457, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 0, 0, 0, 316, 0, 316, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 0, + 463, 464, 465, 0, 0, 0, 212, 0, 0, 0, + 212, 212, 212, 212, 212, 0, 212, 212, 212, 212, + 0, 212, 212, 0, 0, 212, 212, 212, 212, 212, + 0, 0, 212, 212, 0, 0, 0, 0, 0, 0, + 0, 212, 0, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 212, 212, + 212, 0, 212, 705, 212, 212, 212, 212, 0, 236, + 0, 0, 0, 0, 0, 566, 3, 4, 5, 6, + 7, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 0, 0, 0, 212, 0, 0, 0, 0, 8, 9, + 0, 212, 212, 212, 212, 466, 0, 212, 0, 0, + 0, 212, 212, 212, 0, 10, 11, 12, 13, 0, + 0, 0, 14, 15, 316, 0, 0, 316, 16, 0, + 0, 17, 0, 0, 0, 0, 0, 316, 18, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 236, 0, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 20, 21, 0, 22, 23, 24, 0, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 0, 0, 0, 0, 316, 212, + 0, 0, 316, 316, 316, 316, 316, 316, 236, 0, + 0, 236, 0, 0, 0, 0, 316, 316, 0, 0, + 0, 236, 566, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 316, 0, 0, 0, + 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 0, 0, 0, 0, + 0, 0, 235, 0, 0, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 0, 0, 0, 0, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 0, 0, + 0, 0, 236, 0, 0, 0, 236, 236, 236, 236, + 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 236, + 236, 0, 0, 0, 0, 566, 0, 0, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, + 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 0, 0, 0, 0, 235, 236, 236, 0, + 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, + 0, 527, 0, 527, 236, 236, 236, 236, 236, 236, + 236, 235, 235, 235, 235, 0, 0, 0, 0, 0, + 34, 0, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 339, 0, 340, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, + 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 527, 566, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 339, 0, 798, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 67, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, + 0, 0, 527, 0, 0, 0, 527, 527, 527, 527, + 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 527, 527, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 69, 0, 0, 0, 0, 527, 527, 527, + 527, 0, 2, 0, 0, 339, 0, 1000, 527, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 0, 0, 0, 0, 7, 0, 0, 0, 329, + 330, 331, 332, 333, 334, 0, 0, 527, 527, 0, + 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 10, 11, 12, 13, 527, 527, 527, 527, 527, 527, + 527, 335, 0, 532, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 545, 0, 0, 0, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, + 337, 338, 67, 7, 0, 69, 0, 329, 330, 331, + 332, 333, 334, 0, 0, 2, 0, 532, 0, 532, + 0, 8, 9, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 371, 0, 10, 11, + 12, 13, 0, 0, 0, 0, 0, 0, 0, 335, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 0, 0, 0, 546, + 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 547, 0, 0, 0, 0, 548, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 337, 338, + 371, 0, 371, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 549, 550, 0, 0, 0, 0, 363, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 551, 0, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 532, 0, 7, 532, 0, 0, + 329, 330, 331, 332, 333, 334, 0, 532, 552, 553, + 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 363, 0, 363, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 27, 28, 29, 30, 31, + 32, 33, 335, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 337, 338, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 0, 0, 0, 0, 532, 0, + 0, 0, 532, 532, 532, 532, 532, 532, 0, 0, + 363, 0, 0, 363, 0, 0, 532, 532, 0, 0, + 0, 0, 0, 363, 0, 356, 0, 356, 0, 0, + 0, 0, 0, 532, 532, 532, 532, 0, 0, 0, + 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, + 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, + 0, 371, 0, 0, 0, 371, 371, 371, 371, 371, + 371, 0, 0, 532, 532, 0, 0, 0, 0, 371, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 0, 371, 371, 371, 371, + 532, 532, 532, 532, 532, 532, 532, 371, 0, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 371, 0, 0, 0, 0, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 0, 0, 356, 0, 363, 356, 0, 0, 363, 363, + 363, 363, 363, 363, 0, 356, 371, 371, 210, 0, + 210, 0, 363, 363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 363, + 363, 363, 363, 371, 371, 371, 371, 371, 371, 371, + 363, 0, 526, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 526, 0, 526, 0, + 0, 0, 0, 0, 0, 0, 363, 363, 363, 363, + 363, 363, 363, 0, 0, 0, 0, 0, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 0, 0, 0, 210, 356, 0, 210, 0, + 356, 356, 356, 356, 356, 356, 0, 0, 210, 0, + 0, 0, 0, 0, 356, 356, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 356, 356, 356, 356, 0, 0, 0, 0, 0, + 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 356, 526, 0, 0, 526, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, + 356, 356, 356, 356, 356, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 0, 0, 0, 0, 210, + 0, 0, 0, 210, 210, 210, 210, 210, 210, 0, + 187, 0, 187, 187, 187, 905, 0, 210, 210, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 187, + 0, 0, 187, 187, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 0, 0, 210, 0, 0, 0, 187, + 187, 187, 187, 0, 187, 187, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, + 526, 526, 526, 0, 210, 210, 0, 526, 0, 0, + 0, 526, 526, 526, 526, 526, 526, 0, 0, 187, + 187, 0, 0, 0, 0, 526, 526, 0, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 210, 0, 0, + 0, 0, 526, 526, 526, 526, 187, 187, 187, 187, + 187, 187, 187, 526, 0, 0, 0, 0, 0, 864, + 0, 0, 0, 0, 0, 0, 0, 526, 0, 0, + 0, 0, 0, 865, 0, 0, 0, 0, 866, 867, + 0, 868, 869, 870, 871, 872, 873, 0, 874, 875, + 0, 876, 877, 878, 879, 880, 0, 0, 0, 0, + 0, 0, 526, 526, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, + 526, 526, 526, 526, 526, 526, 0, 881, 0, 882, + 0, 0, 0, 0, 883, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 885, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 886, 0, 887, 888, 889, 890, + 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 0, 0, 0, 904, +}; +static int yycheck[] = { 4, + 155, 24, 1, 102, 103, 167, 92, 13, 93, 24, + 1009, 313, 20, 21, 19, 313, 313, 181, 24, 1, + 24, 1, 27, 28, 29, 30, 22, 23, 1, 912, + 712, 38, 1033, 1, 698, 846, 64, 44, 40, 1, + 486, 24, 61, 46, 792, 36, 37, 59, 43, 43, + 45, 432, 61, 434, 43, 1203, 40, 65, 46, 46, + 38, 264, 41, 41, 72, 46, 44, 41, 167, 60, + 91, 41, 193, 194, 195, 196, 197, 41, 123, 33, + 41, 1165, 105, 365, 169, 1281, 76, 368, 125, 46, + 40, 190, 1557, 44, 59, 777, 40, 319, 104, 93, + 43, 42, 188, 111, 112, 128, 483, 41, 113, 123, + 115, 116, 117, 91, 40, 38, 215, 262, 61, 42, + 40, 104, 46, 44, 41, 46, 503, 47, 151, 40, + 511, 512, 471, 41, 43, 41, 33, 60, 91, 123, + 60, 145, 93, 288, 148, 41, 232, 41, 233, 157, + 156, 156, 157, 42, 41, 521, 522, 523, 380, 40, + 125, 167, 44, 42, 168, 91, 38, 263, 91, 42, + 42, 199, 41, 123, 46, 47, 924, 925, 40, 123, + 91, 267, 187, 42, 93, 208, 348, 125, 60, 41, + 41, 181, 41, 59, 1544, 44, 263, 342, 1546, 41, + 205, 206, 91, 299, 210, 210, 370, 44, 40, 40, + 91, 93, 203, 221, 222, 44, 1681, 40, 1414, 91, + 264, 58, 40, 44, 1574, 1547, 40, 232, 1576, 38, + 267, 61, 40, 42, 239, 983, 40, 266, 46, 123, + 40, 62, 40, 262, 260, 261, 260, 263, 1332, 263, + 264, 60, 338, 262, 353, 1577, 260, 286, 287, 125, + 91, 543, 267, 40, 93, 351, 311, 352, 91, 288, + 264, 1019, 41, 281, 297, 556, 281, 91, 262, 284, + 288, 304, 91, 288, 61, 264, 291, 91, 296, 263, + 295, 91, 1175, 91, 264, 300, 301, 302, 303, 294, + 264, 265, 306, 506, 507, 508, 260, 59, 273, 263, + 264, 306, 307, 399, 313, 314, 998, 59, 262, 260, + 261, 329, 263, 331, 352, 299, 349, 335, 694, 324, + 264, 313, 314, 313, 314, 343, 344, 318, 262, 347, + 313, 314, 348, 349, 365, 313, 314, 264, 354, 345, + 346, 313, 314, 343, 274, 296, 264, 347, 264, 320, + 321, 318, 370, 260, 261, 356, 263, 264, 264, 265, + 264, 354, 371, 372, 373, 374, 742, 264, 265, 374, + 370, 260, 261, 125, 263, 264, 46, 260, 261, 475, + 263, 371, 372, 373, 374, 264, 275, 1079, 260, 261, + 60, 263, 391, 391, 391, 264, 1554, 273, 91, 371, + 1411, 260, 264, 264, 263, 423, 424, 296, 426, 422, + 428, 359, 264, 296, 266, 262, 364, 471, 260, 261, + 296, 263, 316, 41, 430, 443, 444, 360, 361, 362, + 1588, 527, 528, 607, 286, 287, 264, 265, 266, 439, + 473, 453, 529, 91, 618, 471, 542, 91, 260, 261, + 826, 263, 467, 428, 469, 430, 431, 553, 286, 287, + 40, 1282, 123, 264, 265, 481, 484, 576, 484, 484, + 44, 927, 40, 91, 449, 450, 451, 452, 360, 361, + 362, 496, 40, 264, 502, 264, 265, 266, 62, 507, + 508, 509, 1166, 511, 40, 513, 514, 515, 594, 517, + 260, 261, 517, 263, 510, 91, 512, 286, 287, 526, + 516, 91, 543, 609, 536, 537, 538, 539, 540, 541, + 542, 273, 473, 91, 91, 44, 40, 542, 471, 91, + 625, 549, 550, 91, 410, 911, 123, 40, 526, 544, + 262, 360, 361, 362, 40, 91, 260, 40, 481, 263, + 264, 1562, 264, 40, 572, 40, 267, 575, 573, 574, + 40, 536, 537, 538, 539, 540, 541, 542, 601, 281, + 282, 283, 391, 668, 93, 670, 452, 91, 596, 594, + 1338, 1339, 40, 1592, 473, 603, 462, 91, 91, 465, + 473, 765, 47, 40, 123, 91, 596, 359, 91, 600, + 618, 33, 364, 603, 91, 40, 91, 607, 42, 33, + 123, 91, 260, 261, 123, 263, 260, 261, 618, 263, + 268, 260, 261, 46, 263, 643, 43, 260, 45, 644, + 263, 632, 633, 91, 40, 650, 669, 638, 656, 640, + 123, 679, 260, 261, 91, 263, 123, 756, 296, 667, + 268, 463, 46, 762, 315, 316, 91, 91, 754, 755, + 536, 537, 538, 539, 540, 541, 542, 61, 123, 46, + 93, 123, 690, 264, 260, 261, 709, 263, 296, 1572, + 46, 299, 40, 315, 275, 91, 700, 999, 306, 46, + 785, 999, 999, 260, 261, 46, 263, 712, 260, 261, + 452, 263, 717, 463, 719, 714, 724, 725, 726, 1020, + 462, 1022, 61, 465, 1406, 716, 93, 283, 284, 752, + 851, 727, 853, 854, 855, 856, 857, 93, 38, 44, + 748, 749, 42, 91, 40, 374, 375, 279, 280, 47, + 755, 1499, 93, 776, 759, 760, 761, 289, 844, 40, + 60, 769, 318, 771, 1512, 773, 260, 261, 59, 263, + 778, 794, 777, 41, 782, 765, 44, 415, 416, 417, + 41, 42, 40, 779, 536, 537, 538, 539, 540, 541, + 542, 91, 782, 801, 536, 537, 538, 539, 540, 541, + 542, 41, 42, 811, 812, 320, 321, 415, 416, 417, + 1191, 801, 1193, 393, 394, 260, 261, 825, 263, 1501, + 810, 38, 306, 40, 829, 42, 831, 912, 393, 394, + 91, 917, 59, 41, 125, 43, 921, 842, 260, 261, + 848, 263, 264, 60, 1539, 260, 261, 1595, 263, 391, + 1545, 91, 860, 391, 862, 260, 261, 271, 263, 41, + 33, 275, 276, 277, 278, 279, 391, 281, 282, 283, + 284, 391, 286, 287, 91, 267, 290, 291, 292, 293, + 1575, 295, 41, 297, 298, 44, 300, 294, 302, 1637, + 41, 42, 306, 41, 308, 309, 41, 42, 125, 306, + 307, 41, 458, 459, 912, 461, 43, 44, 912, 323, + 324, 325, 326, 41, 922, 330, 331, 324, 91, 909, + 1668, 316, 1008, 328, 1010, 330, 331, 341, 264, 59, + 266, 42, 337, 38, 44, 1683, 46, 42, 260, 261, + 91, 263, 260, 261, 358, 263, 91, 41, 947, 43, + 286, 287, 330, 331, 332, 60, 1638, 91, 949, 40, + 260, 261, 952, 263, 1050, 40, 1052, 374, 991, 984, + 295, 93, 38, 1058, 997, 300, 42, 302, 615, 616, + 617, 59, 273, 988, 309, 993, 91, 995, 366, 367, + 368, 43, 44, 998, 60, 125, 260, 261, 1680, 263, + 999, 326, 1001, 1002, 1003, 61, 330, 331, 332, 1014, + 260, 261, 1020, 263, 1022, 1100, 341, 999, 44, 999, + 46, 1001, 1002, 1003, 40, 91, 999, 263, 1001, 1002, + 1020, 999, 1022, 1001, 1002, 43, 1044, 999, 41, 1047, + 43, 38, 366, 367, 368, 42, 41, 125, 41, 1054, + 43, 44, 374, 375, 93, 301, 1211, 303, 304, 305, + 360, 361, 362, 60, 41, 42, 899, 900, 1153, 1231, + 1232, 1233, 1234, 310, 1079, 312, 313, 314, 476, 1241, + 1242, 1243, 280, 281, 282, 283, 284, 260, 261, 0, + 263, 280, 93, 93, 91, 268, 125, 41, 271, 264, + 265, 266, 275, 276, 277, 278, 279, 40, 281, 282, + 283, 284, 40, 286, 287, 91, 58, 290, 291, 292, + 293, 286, 287, 296, 297, 298, 260, 261, 33, 263, + 544, 40, 359, 306, 268, 308, 40, 364, 40, 40, + 1148, 1227, 1228, 360, 361, 362, 40, 125, 59, 44, + 323, 324, 325, 41, 327, 280, 281, 282, 283, 284, + 40, 452, 296, 40, 262, 299, 123, 59, 1176, 1177, + 1178, 462, 306, 262, 465, 1183, 1184, 1185, 1186, 1187, + 1188, 44, 1190, 1191, 1192, 358, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1189, 1202, 273, 1204, 1193, 1206, 372, + 1208, 1582, 1583, 1207, 41, 1201, 260, 261, 41, 263, + 264, 60, 274, 464, 125, 1221, 274, 62, 296, 1224, + 275, 1306, 44, 365, 123, 1231, 1232, 1233, 1234, 359, + 123, 58, 123, 125, 364, 1241, 1242, 1243, 281, 282, + 283, 284, 415, 416, 417, 536, 537, 538, 539, 540, + 541, 542, 123, 274, 40, 360, 361, 362, 40, 40, + 1268, 1251, 41, 40, 317, 1273, 281, 282, 283, 284, + 1275, 281, 282, 283, 284, 1265, 1284, 1267, 468, 317, + 40, 415, 416, 417, 471, 61, 1294, 61, 61, 44, + 1298, 1299, 471, 41, 360, 361, 362, 1396, 93, 41, + 41, 1309, 281, 282, 283, 284, 41, 41, 41, 536, + 537, 538, 539, 540, 541, 542, 41, 44, 58, 1405, + 41, 44, 1330, 1331, 44, 125, 263, 40, 40, 61, + 1416, 61, 410, 125, 1333, 41, 1344, 1345, 1346, 1347, + 1348, 1349, 41, 1351, 1429, 41, 41, 41, 41, 41, + 294, 41, 41, 41, 1350, 41, 41, 301, 41, 303, + 304, 305, 273, 360, 361, 362, 41, 41, 41, 40, + 40, 544, 41, 41, 452, 93, 274, 123, 93, 44, + 1384, 273, 1387, 44, 462, 274, 41, 465, 44, 40, + 40, 58, 41, 41, 40, 0, 41, 41, 342, 343, + 344, 1406, 41, 40, 294, 62, 536, 537, 538, 539, + 540, 541, 542, 91, 1500, 41, 41, 40, 498, 91, + 1428, 490, 40, 502, 277, 41, 61, 1435, 33, 62, + 41, 41, 41, 38, 125, 40, 41, 42, 91, 44, + 41, 123, 47, 41, 388, 389, 390, 1446, 392, 41, + 452, 395, 391, 93, 59, 60, 61, 62, 536, 537, + 538, 539, 540, 541, 542, 93, 40, 317, 41, 41, + 317, 41, 1558, 40, 40, 58, 58, 40, 295, 1502, + 1565, 93, 44, 300, 91, 302, 91, 93, 93, 93, + 93, 505, 309, 40, 91, 40, 1501, 93, 41, 410, + 411, 412, 413, 414, 123, 41, 40, 40, 422, 326, + 327, 41, 41, 1521, 1522, 1523, 93, 93, 123, 511, + 125, 432, 433, 44, 341, 274, 41, 58, 38, 41, + 41, 44, 60, 425, 426, 427, 428, 61, 449, 450, + 451, 452, 93, 40, 40, 456, 457, 40, 294, 40, + 40, 462, 40, 464, 465, 372, 1641, 449, 450, 451, + 452, 472, 473, 309, 40, 1573, 40, 40, 40, 40, + 1578, 1579, 1580, 40, 1582, 1674, 1584, 1585, 1586, 325, + 62, 125, 260, 261, 41, 263, 1590, 1583, 334, 93, + 268, 41, 1678, 93, 41, 93, 41, 41, 1606, 1607, + 1608, 93, 348, 349, 350, 351, 93, 260, 261, 41, + 263, 41, 93, 123, 41, 268, 527, 528, 296, 530, + 531, 532, 41, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 93, 1638, 380, 381, 382, 383, 384, 385, + 386, 38, 41, 296, 536, 537, 538, 539, 540, 541, + 542, 93, 41, 306, 1677, 260, 261, 262, 263, 93, + 41, 1669, 93, 268, 41, 93, 271, 41, 273, 274, + 275, 276, 277, 278, 279, 1680, 281, 282, 283, 284, + 93, 286, 287, 288, 41, 290, 291, 292, 293, 93, + 41, 296, 297, 298, 299, 269, 41, 93, 272, 41, + 38, 306, 263, 308, 41, 93, 311, 41, 44, 274, + 315, 316, 41, 318, 41, 40, 40, 322, 323, 324, + 325, 295, 296, 93, 41, 93, 300, 93, 302, 40, + 40, 40, 58, 41, 339, 309, 58, 415, 416, 417, + 58, 41, 41, 41, 40, 40, 93, 41, 41, 93, + 41, 41, 326, 358, 359, 360, 361, 362, 93, 364, + 365, 93, 415, 416, 417, 40, 40, 341, 278, 374, + 375, 281, 282, 283, 284, 40, 286, 287, 288, 40, + 33, 40, 40, 40, 40, 123, 391, 41, 40, 40, + 40, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, 410, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, - 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 462, -1, -1, 465, -1, -1, 123, -1, 125, -1, - 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 432, 433, -1, 59, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, - -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, 59, -1, -1, - -1, 125, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, - 287, 346, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, - 365, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, 273, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 296, -1, 391, -1, -1, -1, -1, 396, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 40, + 40, 93, 60, 0, 38, 41, 58, 263, 91, 41, + 40, 40, 40, 40, 449, 450, 451, 452, 93, 454, + 455, 456, 457, 41, 91, 460, 40, 462, 41, 464, + 465, 466, 467, 41, 469, 470, 33, 472, 473, 474, + 41, 38, 41, 40, 41, 42, 481, 44, 40, 274, + 47, 278, 41, 263, 281, 282, 283, 284, 41, 286, + 287, 288, 59, 60, 61, 62, 40, 40, 511, 358, + 41, 41, 274, 40, 509, 510, 511, 41, 41, 123, + 125, 41, 44, 62, 123, 123, 123, 40, 40, 123, + 125, 40, 527, 528, 91, 530, 531, 532, 123, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 125, 544, + 278, 123, 62, 281, 282, 283, 284, 41, 286, 287, + 288, 123, 41, 41, 41, 125, 123, 123, 125, 41, + 277, 278, 279, 41, 281, 282, 283, 284, 125, 286, + 287, 288, 123, 290, 291, 292, 293, 123, 41, 62, + 297, 298, 41, 41, 123, 123, 59, 263, 0, 40, + 40, 40, 40, 40, 40, 40, 91, 40, 59, 40, + 40, 40, 40, 93, 46, 40, 40, 260, 261, 93, + 263, 40, 40, 421, 263, 268, 42, 61, 271, 263, + 275, 263, 275, 276, 277, 278, 279, 275, 281, 282, + 283, 284, 275, 286, 287, 275, 275, 290, 291, 292, + 293, 275, 275, 296, 297, 298, 275, 59, 365, 61, + 275, 263, 125, 306, 91, 308, 260, 260, 261, 263, + 263, 841, 275, 180, 125, 1049, 1026, 908, 749, 1291, + 323, 324, 325, 1517, 278, 1024, 1153, 281, 282, 283, + 284, 275, 286, 287, 288, 275, 275, 927, 294, 275, + 275, 917, 709, 260, 261, 301, 263, 303, 304, 305, + 1292, 268, 1279, 481, 271, 358, 273, 274, 275, 276, + 277, 278, 279, 125, 281, 282, 283, 284, 354, 286, + 287, 24, 9, 290, 291, 292, 293, 914, 1215, 296, + 297, 298, 299, 114, 551, 24, 342, 343, 344, 306, + 764, 308, 306, 613, 311, 269, 768, 679, 272, 316, + 64, 372, 355, 356, 357, 322, 323, 324, 325, -1, + 493, -1, 415, 416, 417, 260, 261, 262, 263, 264, + -1, 295, 296, 268, -1, -1, 300, 380, 302, -1, + -1, -1, 388, 389, 390, 309, 392, -1, 283, 395, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + 273, 296, 326, -1, -1, -1, -1, 374, 375, -1, + -1, -1, 273, -1, -1, -1, -1, 341, -1, -1, + -1, -1, -1, 296, 391, 320, 321, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, 475, -1, 477, 478, 479, 480, 339, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + 457, 544, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, 410, -1, -1, -1, + 322, 40, 41, 42, 481, 44, -1, -1, 47, -1, + 415, 416, 417, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, 410, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, 452, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, 123, -1, 125, -1, 410, 411, - 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 432, 433, -1, 59, -1, -1, 0, -1, -1, -1, + 537, 538, 539, 540, 541, 542, -1, 544, -1, 452, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 462, + -1, 452, 465, -1, 123, -1, 125, -1, 410, 411, + 412, 413, 414, 464, -1, 466, 467, -1, 469, 470, + -1, -1, 424, -1, -1, -1, -1, 429, -1, -1, + 432, 433, -1, -1, 59, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, + 452, -1, 454, 455, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, 59, 286, 287, 288, 125, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 472, 473, 474, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, 59, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, 509, 510, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 260, 261, 271, 263, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 365, -1, 296, 297, 298, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, 322, 323, 324, 325, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, -1, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, 273, -1, -1, + -1, 360, 361, 362, -1, 355, 356, 357, 273, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 380, 296, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, @@ -3288,26 +3723,26 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, - 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, 410, -1, -1, -1, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, 322, 40, + 41, 42, 481, 44, -1, 475, -1, 477, 478, 479, + 480, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, 410, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, 452, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 462, -1, -1, 465, - -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, + 539, 540, 541, 542, -1, 544, -1, 452, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 462, -1, -1, + 465, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 424, -1, -1, -1, -1, 429, -1, -1, 432, 433, + -1, 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, + 454, 455, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + 474, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, @@ -3316,14 +3751,14 @@ static int yycheck[] = { 4, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, 257, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 276, 277, -1, 279, 280, - 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, - 291, 292, 293, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + 311, 262, -1, -1, -1, 316, -1, -1, -1, 41, + -1, 322, 323, 324, 325, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, -1, -1, -1, 299, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, @@ -3335,30 +3770,30 @@ static int yycheck[] = { 4, 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, 485, 486, -1, 488, 489, 490, - -1, 492, 493, -1, -1, 496, 497, -1, 499, -1, + 541, 542, -1, 544, 452, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, - -1, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, -1, 432, 433, -1, -1, + -1, -1, 294, -1, -1, -1, -1, -1, -1, 301, + -1, 303, 304, 305, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 342, 343, 344, -1, -1, -1, 472, 473, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 388, 389, 390, -1, + 392, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + 293, 41, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, @@ -3383,31 +3818,31 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, 123, -1, - 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, 294, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 544, -1, -1, 294, -1, -1, -1, -1, -1, + -1, 301, -1, 303, 304, 305, -1, -1, 123, -1, + 125, 271, 410, 411, 412, 413, 414, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 432, 433, -1, 297, 298, -1, + 0, -1, 342, 343, 344, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, - -1, -1, -1, -1, 462, 323, -1, 465, -1, 327, - -1, -1, 330, 331, 472, 473, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - -1, -1, -1, -1, -1, 353, -1, -1, 356, 59, - -1, -1, -1, -1, -1, 363, -1, -1, -1, -1, - -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 346, -1, 388, 389, + 390, -1, 392, -1, -1, 395, -1, -1, -1, 59, + -1, -1, 277, 278, 279, 365, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, + 365, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, 257, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, + -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3427,26 +3862,26 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, 123, -1, 125, -1, - 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 432, 433, 294, -1, -1, -1, 0, -1, + 485, 486, -1, 488, 489, 490, -1, 492, 493, -1, + -1, 496, 497, -1, 499, -1, 123, -1, 125, -1, + 410, 411, 412, 413, 414, -1, -1, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, - -1, -1, 462, 323, -1, 465, -1, 327, -1, -1, - 330, 331, 472, 473, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, -1, -1, - -1, -1, -1, 353, -1, -1, 356, 59, -1, -1, - -1, -1, -1, 363, -1, -1, -1, -1, -1, -1, - -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3471,28 +3906,28 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + 432, 433, 294, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, 125, - 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, + 462, 323, -1, 465, -1, 327, -1, -1, 330, 331, + 472, 473, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, -1, -1, -1, -1, -1, + -1, 353, -1, -1, 356, 59, -1, -1, -1, -1, + -1, 363, -1, -1, -1, -1, -1, -1, -1, -1, + 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, 273, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, @@ -3508,157 +3943,927 @@ static int yycheck[] = { 4, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, - 41, 42, 481, 44, -1, -1, 432, 433, -1, -1, + 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, 452, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, 464, -1, - 466, -1, -1, 469, 470, -1, -1, -1, 527, 528, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + 294, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 456, 457, -1, -1, -1, -1, 462, 323, + -1, 465, -1, 327, -1, -1, 330, 331, 472, 473, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, -1, -1, -1, -1, -1, 353, + -1, -1, 356, 59, -1, -1, -1, -1, -1, 363, + -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, 0, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, 59, -1, 61, 62, -1, -1, -1, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 123, 429, 125, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, - 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, + -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, + -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, + -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, + 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, -1, -1, 456, 457, -1, -1, -1, 125, + 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, 339, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, + 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, + 41, 42, 481, 44, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, 452, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, 464, -1, + 466, 467, -1, 469, 470, -1, -1, -1, 527, 528, + 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, + 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, 59, 456, 457, -1, -1, -1, -1, 462, -1, + -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, 374, 375, -1, 42, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + 391, -1, -1, -1, 60, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, -1, 91, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, 452, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 464, -1, 466, -1, + -1, 469, 470, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, 415, + 416, 417, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, -1, 91, -1, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, 359, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, 415, 416, 417, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, 91, -1, -1, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, 544, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, 415, 416, 417, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, -1, 91, + -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, 544, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, 415, 416, 417, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, -1, 91, -1, -1, + 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, + 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, 415, 416, 417, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, -1, 91, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + 544, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, 415, + 416, 417, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, -1, 91, -1, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, 415, 416, 417, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, 544, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, 123, -1, 125, -1, + 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, + 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, + -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, + -1, 297, 298, -1, 300, -1, 302, -1, -1, 335, + 306, 337, 308, 309, -1, -1, 342, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + 326, -1, 358, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, 391, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, 482, -1, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 33, -1, -1, 504, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 544, -1, + -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 294, 295, -1, -1, -1, -1, 300, 306, 302, + 308, -1, -1, -1, -1, -1, 309, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, 326, 327, -1, 329, 330, 331, 332, + 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, + -1, -1, -1, -1, 347, -1, -1, -1, -1, 352, + 358, 354, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, 370, 371, 372, + 373, 260, 261, -1, 263, -1, 379, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 544, -1, -1, -1, + 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, + 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 544, 91, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, + 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 91, -1, -1, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, + 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 91, -1, -1, -1, 429, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, + -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, 0, -1, 294, 295, - 306, -1, 308, -1, 300, 311, 302, -1, -1, -1, - 316, -1, -1, 309, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 326, 327, -1, 329, 330, 331, 332, 333, -1, -1, - -1, -1, 338, -1, -1, 341, -1, -1, -1, -1, - -1, 347, 358, -1, -1, 59, 352, -1, 354, -1, - -1, -1, -1, -1, -1, -1, 33, -1, 374, 375, - 366, 367, 368, 369, 370, 371, 372, 373, -1, -1, - -1, -1, -1, 379, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 123, - -1, 125, -1, 429, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, - -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, -1, 270, 271, 272, -1, 0, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, 322, 286, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, 339, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 359, 323, 324, 325, -1, - 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 91, -1, + -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, + -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, 544, -1, -1, - 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, -1, 270, 271, 272, -1, 0, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, - -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 123, -1, 125, -1, -1, 91, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, - 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, 0, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, 59, -1, 61, 62, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, 123, + 429, 125, -1, 432, 433, -1, -1, -1, -1, -1, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, + -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, 0, -1, + -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + 374, 375, -1, -1, -1, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 123, -1, 125, -1, 429, 91, -1, 432, 433, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, 481, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, 544, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 0, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, @@ -3670,229 +4875,329 @@ static int yycheck[] = { 4, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 123, -1, 125, -1, -1, 91, -1, -1, + 432, 433, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, 544, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, + 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 123, -1, 125, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, + 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, -1, 0, -1, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, + 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, -1, -1, -1, -1, 364, 365, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, 296, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, 527, + 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, -1, -1, 0, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, 449, 450, 451, + 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, + 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, + 472, 473, 474, -1, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, 527, 528, 273, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, 544, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, - 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 273, 274, 460, -1, 462, -1, 464, 465, + 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, + 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 311, 61, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, + 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + -1, 472, 473, 474, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + -1, -1, -1, 273, 274, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - -1, -1, -1, -1, 364, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, 449, - 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, - 470, -1, 472, 473, 474, -1, 296, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, 339, + 410, 411, 412, 413, 414, 59, -1, -1, 418, 419, + 420, 421, 422, 423, 424, -1, -1, -1, -1, 429, + -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, 273, 274, + 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, + 470, -1, 472, 473, 474, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, - 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, 527, 528, 273, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, + -1, -1, -1, 59, 429, -1, 260, 432, 433, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, 0, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, - 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, 260, -1, 460, 263, 462, -1, + -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, 40, 41, -1, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, 527, 528, 273, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, 449, 450, 451, 452, -1, 454, 455, 456, 457, - 273, 274, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, 40, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 311, 61, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, -1, 429, -1, -1, 432, - 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, -1, 472, - 473, 474, -1, 40, 41, -1, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, 274, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 59, -1, -1, 418, 419, 420, 421, - 422, 423, 424, -1, -1, -1, -1, 429, -1, -1, - 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, 273, 274, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, - 472, 473, 474, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, 59, 429, -1, 260, 432, 433, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, + -1, 59, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, 474, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, @@ -3901,7 +5206,7 @@ static int yycheck[] = { 4, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, + 456, 457, 260, -1, 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3940,778 +5245,595 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, 460, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, - 260, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, - 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, -1, -1, -1, 59, -1, -1, 260, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - 322, 125, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, 260, -1, 460, 263, - 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, - 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, -1, -1, -1, -1, 429, -1, 0, 432, 433, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, - 474, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, 33, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 0, -1, -1, -1, 429, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, 0, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, 260, -1, -1, - 263, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 273, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, 0, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, -1, -1, 358, 59, 429, -1, -1, 432, - 433, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, 474, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 125, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, - 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, - 544, -1, -1, -1, -1, 410, 411, 412, 413, 414, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, -1, 465, 432, 433, 273, - -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 527, 528, - 42, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, 60, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, + 260, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 271, 91, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, 410, 411, 412, 413, - 414, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, -1, 358, -1, -1, 472, 473, - -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, 91, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, + 460, 263, 462, 59, -1, 465, -1, -1, -1, -1, + -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, 33, -1, -1, -1, -1, 38, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 527, 528, 125, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, 59, 415, 416, 417, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 33, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, -1, -1, -1, -1, 429, -1, 0, + 432, 433, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, 449, 450, 451, + 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, + 472, 473, 474, 44, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, 415, 416, 417, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, 33, 306, -1, 308, - -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 273, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, 91, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, 271, 322, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 33, 544, 290, 291, 292, 293, 294, -1, -1, - 297, 298, -1, -1, -1, -1, 415, 416, 417, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, 424, 0, -1, -1, -1, 429, -1, -1, + 432, 433, -1, -1, 410, 411, 412, 413, 414, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, 432, 433, 460, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, + 472, 473, 474, 449, 450, 451, 452, -1, -1, -1, + 456, 457, 59, -1, -1, -1, 462, -1, -1, 465, + -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 410, -1, 412, 413, 414, -1, 366, - 367, 368, 369, -1, -1, 372, -1, 424, -1, 376, - 377, 378, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, 474, -1, -1, - -1, 268, -1, -1, 271, 544, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 509, 510, -1, -1, -1, -1, 91, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 481, -1, 323, 324, 325, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, 544, 290, 291, - 292, 293, 294, -1, -1, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, - -1, 91, -1, -1, -1, -1, -1, -1, 415, 416, - 417, 323, 324, 325, -1, 327, -1, 329, 330, 331, - 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, 358, -1, -1, -1, - -1, -1, -1, -1, 366, 367, 368, 369, -1, -1, - 372, -1, -1, -1, 376, 377, 378, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, 544, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 359, -1, -1, 481, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, - -1, -1, 544, 323, 324, 325, -1, 327, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, 372, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, 91, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, 415, 416, 417, -1, -1, - -1, -1, -1, -1, -1, 33, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, 322, -1, -1, 42, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, 91, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - 33, 308, -1, -1, -1, -1, -1, -1, 415, 416, - 417, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 59, -1, + -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, 33, 460, -1, 462, -1, 38, 465, -1, + -1, 42, -1, -1, -1, 472, 473, 474, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 33, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, 415, 416, - 417, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, 358, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, 91, -1, -1, -1, -1, 306, 33, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 544, 271, -1, - 358, -1, 275, 276, 277, 278, 279, 91, 281, 282, - 283, 284, 40, 286, 287, -1, -1, 290, 291, 292, - 293, -1, 295, -1, 297, 298, -1, 300, -1, 302, - -1, 59, 60, 306, -1, 308, 309, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, 326, -1, -1, -1, 415, 416, 417, - -1, -1, -1, -1, -1, -1, -1, 271, 341, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, 358, 290, 291, 292, 293, - -1, 295, -1, 297, 298, 123, 300, 125, 302, -1, - 544, -1, 306, -1, 308, 309, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, 326, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 341, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 358, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, 41, -1, -1, -1, -1, - -1, 47, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, 59, -1, -1, 544, 271, -1, -1, - -1, -1, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - 358, -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, 323, - 324, 325, -1, -1, -1, 273, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, 33, -1, -1, -1, -1, 38, -1, -1, + -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 273, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, 322, 263, -1, -1, -1, -1, 268, -1, -1, + 271, 415, 416, 417, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 33, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 544, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, + -1, 412, 413, 414, -1, 59, -1, 358, -1, 360, + 361, 362, -1, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, -1, -1, -1, 33, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, 474, 415, 416, 417, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 509, 510, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, 271, -1, -1, -1, 275, + 276, 277, 278, 279, 40, 281, 282, 283, 284, -1, + 286, 287, -1, 544, 290, 291, 292, 293, 294, -1, + -1, 297, 298, 59, 60, -1, -1, -1, -1, -1, + 306, -1, 308, -1, 415, 416, 417, -1, -1, 273, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, 123, -1, 125, + 366, 367, 368, 369, -1, -1, 372, -1, -1, -1, + 376, 377, 378, -1, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, 294, + -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, 327, 544, 329, 330, 331, 332, -1, 41, + -1, -1, -1, -1, -1, 47, 410, 411, 412, 413, + 414, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 358, -1, -1, -1, -1, 432, 433, + -1, 366, 367, 368, 369, 481, -1, 372, -1, -1, + -1, 376, 377, 378, -1, 449, 450, 451, 452, -1, + -1, -1, 456, 457, 260, -1, -1, 263, 462, -1, + -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 41, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, - 418, 419, 420, 421, 422, 423, 544, 273, 274, 123, - -1, 125, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, -1, -1, - -1, -1, 460, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, 47, -1, -1, 536, 537, - 538, 539, 540, 541, 542, 391, -1, 59, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, 260, -1, 414, 263, - -1, -1, 418, 419, 420, 421, 422, 423, -1, 273, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, -1, -1, -1, 414, 544, + -1, -1, 418, 419, 420, 421, 422, 423, 260, -1, + -1, 263, -1, -1, -1, -1, 432, 433, -1, -1, + -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 460, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, 391, -1, 59, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, 449, 450, 451, 452, -1, - -1, 273, 274, 123, -1, 125, 460, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, 59, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 509, 510, -1, -1, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, + -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, - 422, 423, -1, 273, 509, 510, -1, -1, -1, -1, + -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, 536, 537, 538, 539, 540, 541, 542, 460, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 452, -1, -1, -1, -1, 47, -1, -1, 460, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, -1, -1, 414, 509, 510, -1, + 418, 419, 420, 421, 422, 423, 260, -1, -1, 263, + -1, -1, -1, -1, 432, 433, -1, -1, -1, 273, + -1, 123, -1, 125, 536, 537, 538, 539, 540, 541, + 542, 449, 450, 451, 452, -1, -1, -1, -1, -1, + 59, -1, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, - 542, -1, -1, 59, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - -1, -1, -1, -1, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, - -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, - 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 509, - 510, 260, -1, 414, 263, -1, -1, 418, 419, 420, - 421, 422, 423, -1, 273, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, -1, 123, -1, 125, -1, -1, 460, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, 59, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, 260, -1, + 414, 263, -1, -1, 418, 419, 420, 421, 422, 423, + -1, 273, 274, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + -1, -1, 123, -1, 125, -1, 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 509, 510, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, + -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, + 432, 433, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 273, -1, -1, 123, -1, 125, 460, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 449, 450, 451, 452, 273, -1, -1, -1, -1, -1, - -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, + 419, 420, 421, 422, 423, -1, -1, 509, 510, -1, + -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, 536, 537, 538, 539, 540, 541, + 542, 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, -1, -1, 414, 123, - -1, 125, 418, 419, 420, 421, 422, 423, -1, -1, - 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 449, 450, 451, 452, 536, 537, 538, - 539, 540, 541, 542, 460, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, 322, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, + 509, 510, 260, 414, -1, 263, -1, 418, 419, 420, + 421, 422, 423, -1, -1, 273, -1, 123, -1, 125, + -1, 432, 433, -1, -1, -1, -1, 536, 537, 538, + 539, 540, 541, 542, -1, -1, 59, -1, 449, 450, + 451, 452, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, -1, -1, 509, 510, 414, 123, -1, 125, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - 449, 450, 451, 452, -1, -1, 260, -1, -1, 263, - -1, 460, -1, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, -1, 410, + -1, 412, 413, 414, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, -1, 509, 510, + 123, -1, 125, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, -1, 474, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, + 418, 419, 420, 421, 422, 423, -1, 273, 509, 510, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, 449, 450, 451, 452, 536, 537, 538, 539, 540, + 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, + 260, -1, -1, 263, -1, -1, 432, 433, -1, -1, + -1, -1, -1, 273, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, + -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, -1, -1, 509, 510, -1, -1, -1, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, 449, 450, 451, 452, + 536, 537, 538, 539, 540, 541, 542, 460, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + -1, -1, 260, -1, 414, 263, -1, -1, 418, 419, + 420, 421, 422, 423, -1, 273, 509, 510, 123, -1, + 125, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, 449, + 450, 451, 452, 536, 537, 538, 539, 540, 541, 542, + 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, 260, -1, 59, 263, - -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, - -1, 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, -1, 125, 509, 510, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, 449, 450, 451, 452, -1, -1, -1, 59, - -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, 260, -1, - 414, 263, -1, -1, 418, 419, 420, 421, 422, 423, - -1, 273, 509, 510, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, 536, - 537, 538, 539, 540, 541, 542, 460, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, -1, 260, 414, -1, 263, -1, + 418, 419, 420, 421, 422, 423, -1, -1, 273, -1, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, -1, -1, -1, -1, + -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, -1, -1, -1, -1, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, + 410, -1, 412, 413, 414, 123, -1, 432, 433, -1, + -1, -1, -1, -1, 424, -1, -1, -1, -1, 429, + -1, -1, 432, 433, 449, 450, 451, 452, -1, -1, + -1, -1, -1, -1, -1, 460, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, 509, 510, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, -1, 509, 510, -1, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, -1, -1, 509, + 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, + -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, 449, 450, 451, 452, 536, 537, 538, 539, + 540, 541, 542, 460, -1, -1, -1, -1, -1, 257, + -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, + -1, -1, -1, 271, -1, -1, -1, -1, 276, 277, + -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, + -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, -1, 125, -1, -1, - 432, 433, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, -1, -1, -1, -1, 460, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, 273, -1, -1, 456, 457, 509, 510, -1, - -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, - -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, + 537, 538, 539, 540, 541, 542, -1, 335, -1, 337, + -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 410, 411, 412, 413, 414, 273, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, - -1, -1, 462, -1, 322, 465, -1, -1, -1, -1, - -1, -1, 472, 473, -1, -1, -1, -1, 123, 410, - -1, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 474, -1, -1, -1, -1, -1, -1, - -1, -1, 410, -1, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, - -1, 429, -1, -1, 432, 433, -1, -1, 509, 510, + 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, -1, -1, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, 257, -1, -1, -1, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, - -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, - 257, 286, 287, -1, 289, 290, 291, 292, 293, -1, - -1, 509, 510, -1, 271, -1, -1, -1, -1, 276, - 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, - 287, -1, 289, 290, 291, 292, 293, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, -1, -1, -1, 335, -1, - 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 482, -1, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, -1, -1, -1, 504, - -1, -1, -1, -1, -1, 482, -1, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, -1, -1, -1, 504, + -1, -1, -1, -1, 482, -1, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, -1, -1, -1, 504, }; static int yyctable[] = { -1, - 239, 561, -1, 428, 776, -1, 278, 706, -1, 279, - 706, -1, 280, 706, -1, 282, 706, -1, 283, 706, - -1, 284, 706, -1, 285, 706, -1, 501, 727, -1, - 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, - 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 743, 317, -1, 811, 778, -1, - 67, 569, -1, 68, 569, -1, 69, 569, -1, 27, - 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, - -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1078, 629, -1, 67, 570, -1, 68, - 570, -1, 69, 570, -1, 1097, 37, -1, 1223, 782, - -1, 1225, 780, -1, 1237, 613, -1, 1443, 784, -1, - 1080, 576, -1, 1081, 576, -1, + 239, 561, -1, 442, 795, -1, 292, 725, -1, 293, + 725, -1, 294, 725, -1, 296, 725, -1, 297, 725, + -1, 298, 725, -1, 299, 725, -1, 501, 728, -1, + 502, 726, -1, 507, 729, -1, 508, 730, -1, 509, + 731, -1, 510, 732, -1, 511, 733, -1, 512, 734, + -1, 513, 739, -1, 514, 740, -1, 515, 741, -1, + 516, 742, -1, 531, 746, -1, 206, 40, -1, 724, + 735, -1, 725, 736, -1, 726, 737, -1, 727, 738, + -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, + 100, 495, -1, 101, 495, -1, 102, 495, -1, 103, + 495, -1, 793, 317, -1, 861, 797, -1, 67, 569, + -1, 68, 569, -1, 69, 569, -1, 27, 78, -1, + 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, + 78, -1, 32, 78, -1, 33, 78, -1, 34, 78, + -1, 1146, 629, -1, 67, 570, -1, 68, 570, -1, + 69, 570, -1, 1163, 37, -1, 1293, 801, -1, 1295, + 799, -1, 1307, 613, -1, 1513, 803, -1, 1148, 576, + -1, 1149, 576, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, 310, 18, 155, 156, 157, 158, 159, 177, 178, 194, 195, 196, 197, 201, 202, 207, 210, 217, 218, 272, 273, 275, 276, 277, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 297, 320, 321, 399, 405, 406, 422, - 423, 425, 426, 428, 429, 430, 431, 432, 433, 434, - 436, 438, 440, 442, 443, 444, 445, 446, 447, 449, - 450, 451, 464, 482, 488, 216, 5, 6, 8, 311, - 312, 299, 326, 64, 125, 484, 179, 180, 181, 182, + 285, 286, 287, 297, 320, 321, 400, 406, 407, 423, + 424, 426, 427, 429, 430, 431, 432, 433, 434, 435, + 437, 439, 441, 443, 444, 445, 446, 447, 448, 450, + 451, 452, 465, 483, 489, 216, 5, 6, 8, 311, + 312, 299, 326, 64, 125, 485, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 398, 398, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 295, 317, 318, 385, 387, 388, 298, - 299, 274, 400, 216, 402, 404, 216, 311, 9, 319, + 193, 399, 399, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 295, 317, 318, 386, 388, 389, 298, + 299, 274, 401, 216, 403, 405, 216, 311, 9, 319, 319, 9, 10, 336, 336, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, 104, 160, 161, 162, 289, 299, 307, 311, 315, 340, - 364, 382, 386, 388, 405, 406, 461, 290, 311, 311, + 365, 383, 387, 389, 406, 407, 462, 290, 311, 311, 311, 311, 7, 12, 343, 344, 343, 343, 290, 290, - 427, 290, 290, 290, 290, 343, 389, 60, 452, 390, + 428, 290, 290, 290, 290, 343, 390, 60, 453, 391, 23, 26, 27, 28, 29, 31, 32, 33, 290, 306, - 483, 486, 487, 319, 403, 294, 319, 391, 312, 299, - 340, 382, 383, 388, 461, 7, 33, 298, 348, 293, - 295, 295, 46, 48, 49, 50, 317, 317, 383, 384, - 386, 340, 298, 295, 319, 319, 208, 311, 402, 100, + 484, 487, 488, 319, 404, 294, 319, 392, 312, 299, + 340, 383, 384, 389, 462, 7, 33, 298, 348, 293, + 295, 295, 46, 48, 49, 50, 317, 317, 384, 385, + 387, 340, 298, 295, 319, 319, 208, 311, 403, 100, 101, 102, 125, 220, 222, 223, 224, 225, 311, 75, - 76, 311, 311, 340, 26, 27, 28, 29, 382, 51, - 382, 24, 25, 34, 15, 17, 340, 307, 364, 218, - 305, 311, 388, 307, 311, 319, 308, 105, 106, 107, - 136, 299, 301, 305, 306, 136, 136, 136, 136, 317, - 387, 382, 448, 348, 296, 12, 296, 296, 424, 310, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 163, 164, 165, 166, 167, 168, - 205, 219, 254, 255, 290, 291, 312, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 429, 432, 443, 444, 445, 447, 466, 467, - 468, 469, 470, 471, 472, 475, 435, 437, 439, 441, - 296, 39, 68, 72, 75, 76, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 98, 101, - 108, 117, 311, 383, 61, 453, 39, 72, 74, 75, - 76, 77, 78, 83, 92, 97, 99, 111, 112, 113, - 114, 115, 116, 117, 118, 124, 317, 305, 295, 299, - 324, 295, 324, 295, 324, 295, 324, 295, 324, 295, - 324, 295, 485, 486, 295, 343, 7, 8, 293, 304, - 73, 75, 76, 82, 311, 311, 300, 39, 72, 74, - 75, 76, 77, 111, 112, 113, 114, 117, 121, 122, - 123, 226, 340, 298, 218, 311, 295, 298, 317, 295, - 290, 295, 292, 8, 319, 319, 296, 119, 120, 299, - 311, 313, 383, 290, 295, 348, 300, 167, 401, 311, - 221, 136, 382, 25, 311, 383, 307, 311, 319, 311, + 76, 311, 311, 340, 26, 27, 28, 29, 383, 51, + 383, 24, 25, 34, 15, 17, 340, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, + 307, 354, 365, 218, 305, 311, 389, 307, 311, 319, + 308, 105, 106, 107, 136, 299, 301, 305, 306, 136, + 136, 136, 136, 317, 388, 383, 449, 348, 296, 12, + 296, 296, 425, 310, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 163, 164, + 165, 166, 167, 168, 205, 219, 254, 255, 290, 291, + 312, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 430, 433, 444, 445, + 446, 448, 467, 468, 469, 470, 471, 472, 473, 476, + 436, 438, 440, 442, 296, 39, 68, 72, 75, 76, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 98, 101, 108, 117, 311, 384, 61, 454, + 39, 72, 74, 75, 76, 77, 78, 83, 92, 97, + 99, 111, 112, 113, 114, 115, 116, 117, 118, 124, + 317, 305, 295, 299, 324, 295, 324, 295, 324, 295, + 324, 295, 324, 295, 324, 295, 486, 487, 295, 343, + 7, 8, 293, 304, 73, 75, 76, 82, 311, 311, + 300, 39, 72, 74, 75, 76, 77, 111, 112, 113, + 114, 117, 121, 122, 123, 226, 340, 298, 218, 311, + 295, 298, 317, 295, 290, 295, 292, 8, 319, 319, + 296, 119, 120, 299, 311, 313, 384, 290, 295, 348, + 300, 167, 402, 311, 221, 136, 383, 25, 311, 384, + 295, 295, 26, 27, 28, 29, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 307, 311, 319, 311, 300, 300, 300, 311, 319, 311, 295, 295, 311, 20, - 300, 319, 341, 342, 340, 366, 367, 311, 311, 311, - 311, 340, 448, 291, 67, 155, 169, 174, 199, 200, - 219, 254, 255, 291, 423, 426, 428, 429, 432, 443, - 444, 445, 447, 455, 456, 458, 460, 291, 319, 319, - 319, 299, 110, 288, 299, 103, 383, 304, 312, 319, + 300, 319, 341, 342, 340, 367, 368, 311, 311, 311, + 311, 340, 449, 291, 67, 155, 169, 174, 199, 200, + 219, 254, 255, 291, 424, 427, 429, 430, 433, 444, + 445, 446, 448, 456, 457, 459, 461, 291, 319, 319, + 319, 299, 110, 288, 299, 103, 384, 304, 312, 319, 319, 336, 11, 31, 32, 295, 335, 336, 312, 319, - 387, 15, 17, 340, 388, 307, 383, 87, 348, 487, - 317, 384, 295, 343, 198, 295, 427, 55, 57, 58, - 59, 473, 474, 476, 478, 479, 480, 481, 312, 319, - 470, 209, 211, 214, 215, 291, 443, 444, 447, 490, - 491, 492, 493, 84, 209, 212, 291, 489, 491, 494, - 495, 41, 155, 207, 210, 291, 444, 447, 496, 207, - 210, 291, 444, 447, 497, 295, 75, 76, 77, 111, - 112, 113, 301, 381, 383, 454, 295, 295, 323, 295, + 388, 15, 17, 340, 389, 307, 384, 87, 348, 488, + 317, 385, 295, 343, 198, 295, 428, 55, 57, 58, + 59, 474, 475, 477, 479, 480, 481, 482, 312, 319, + 471, 209, 211, 214, 215, 291, 444, 445, 448, 491, + 492, 493, 494, 84, 209, 212, 291, 490, 492, 495, + 496, 41, 155, 207, 210, 291, 445, 448, 497, 207, + 210, 291, 445, 448, 498, 295, 75, 76, 77, 111, + 112, 113, 301, 382, 384, 455, 295, 295, 323, 295, 319, 319, 319, 319, 336, 335, 335, 291, 293, 312, 296, 319, 319, 75, 76, 77, 111, 112, 113, 295, - 295, 311, 311, 300, 348, 396, 397, 290, 340, 51, - 375, 376, 383, 7, 293, 296, 296, 385, 301, 334, - 365, 19, 371, 373, 322, 489, 136, 311, 19, 311, - 319, 300, 315, 315, 315, 383, 383, 20, 293, 300, - 302, 293, 305, 110, 393, 394, 319, 319, 403, 110, - 288, 103, 383, 290, 427, 290, 290, 290, 304, 319, + 295, 311, 311, 300, 348, 397, 398, 290, 340, 51, + 376, 377, 384, 7, 293, 296, 296, 386, 301, 334, + 366, 19, 372, 374, 322, 490, 136, 311, 19, 65, + 66, 327, 319, 295, 295, 295, 295, 319, 319, 319, + 336, 319, 335, 335, 336, 319, 319, 319, 336, 311, + 319, 300, 315, 315, 315, 384, 384, 20, 293, 300, + 302, 293, 305, 110, 394, 395, 319, 319, 404, 110, + 288, 103, 384, 290, 428, 290, 290, 290, 304, 319, 299, 311, 299, 311, 319, 317, 19, 295, 295, 311, - 383, 307, 312, 319, 295, 343, 340, 312, 316, 319, - 296, 295, 20, 323, 337, 338, 339, 291, 383, 473, - 56, 470, 477, 477, 477, 477, 312, 319, 470, 62, - 62, 213, 298, 305, 319, 378, 298, 348, 343, 343, + 384, 307, 312, 319, 295, 343, 340, 312, 316, 319, + 296, 295, 20, 323, 337, 338, 339, 291, 384, 474, + 56, 471, 478, 478, 478, 478, 312, 319, 471, 62, + 62, 213, 298, 305, 319, 379, 298, 348, 343, 343, 298, 298, 343, 343, 295, 216, 319, 311, 216, 311, 216, 319, 39, 51, 52, 69, 119, 289, 292, 303, - 328, 329, 380, 293, 319, 348, 395, 299, 340, 348, - 296, 300, 296, 296, 296, 296, 296, 485, 296, 304, + 328, 329, 381, 293, 319, 348, 396, 299, 340, 348, + 296, 300, 296, 296, 296, 296, 296, 486, 296, 304, 8, 293, 319, 2, 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, 136, 227, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 249, 290, 345, 346, 465, 63, 314, - 300, 298, 296, 293, 371, 8, 293, 291, 298, 8, - 298, 299, 366, 295, 295, 311, 313, 291, 22, 23, + 243, 244, 245, 249, 290, 345, 346, 466, 63, 314, + 300, 298, 296, 293, 372, 8, 293, 291, 298, 8, + 298, 299, 367, 295, 295, 311, 313, 291, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, - 38, 42, 43, 110, 352, 353, 374, 447, 487, 28, - 29, 63, 203, 204, 206, 343, 311, 311, 315, 296, - 296, 319, 341, 340, 295, 383, 72, 117, 311, 383, - 72, 117, 317, 311, 299, 311, 299, 311, 317, 19, - 424, 291, 457, 459, 439, 319, 300, 319, 319, 293, - 300, 340, 313, 319, 336, 19, 312, 319, 348, 296, - 295, 293, 296, 293, 337, 340, 296, 293, 312, 319, - 312, 319, 319, 295, 304, 295, 296, 296, 295, 295, - 296, 296, 319, 315, 311, 63, 311, 296, 295, 39, - 330, 331, 329, 295, 311, 370, 302, 383, 296, 136, - 395, 39, 46, 48, 49, 50, 87, 88, 89, 133, - 134, 135, 137, 140, 296, 251, 252, 253, 319, 226, - 350, 296, 324, 324, 324, 324, 324, 324, 319, 319, - 296, 25, 26, 27, 28, 29, 295, 332, 243, 235, - 247, 295, 228, 248, 22, 332, 332, 2, 21, 22, - 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, - 36, 37, 38, 230, 231, 233, 234, 235, 237, 238, - 241, 242, 244, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 305, 325, 299, - 305, 296, 344, 312, 298, 347, 28, 65, 66, 319, - 327, 348, 349, 382, 396, 291, 298, 376, 290, 290, - 295, 348, 319, 302, 337, 337, 334, 365, 295, 299, - 295, 299, 26, 27, 28, 29, 295, 299, 295, 299, + 38, 42, 43, 110, 352, 353, 375, 448, 488, 28, + 29, 63, 203, 204, 206, 343, 311, 311, 296, 296, + 319, 319, 319, 336, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 296, 315, 296, 296, 319, + 341, 340, 295, 384, 72, 117, 311, 384, 72, 117, + 317, 311, 299, 311, 299, 311, 317, 19, 425, 291, + 458, 460, 440, 319, 300, 319, 319, 293, 300, 340, + 313, 319, 336, 19, 312, 319, 348, 296, 295, 293, + 296, 293, 337, 340, 296, 293, 312, 319, 312, 319, + 319, 295, 304, 295, 296, 296, 295, 295, 296, 296, + 319, 315, 311, 63, 311, 296, 295, 39, 330, 331, + 329, 295, 311, 371, 302, 384, 296, 136, 396, 39, + 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, + 137, 140, 296, 251, 252, 253, 319, 226, 350, 296, + 324, 324, 324, 324, 324, 324, 319, 319, 296, 25, + 26, 27, 28, 29, 295, 332, 243, 235, 247, 295, + 228, 248, 22, 332, 332, 2, 21, 22, 24, 25, + 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, + 38, 230, 231, 233, 234, 235, 237, 238, 241, 242, + 244, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 305, 325, 299, 305, 296, + 344, 312, 298, 347, 28, 319, 327, 348, 349, 383, + 397, 291, 298, 377, 290, 290, 295, 348, 319, 302, + 337, 337, 334, 366, 295, 299, 295, 299, 26, 27, + 28, 29, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 104, 109, 377, 447, 343, 312, 296, 337, - 197, 405, 311, 340, 319, 319, 293, 340, 313, 291, - 170, 171, 172, 173, 291, 432, 444, 445, 447, 462, - 173, 175, 176, 291, 432, 444, 445, 447, 463, 291, - 136, 300, 300, 383, 347, 383, 296, 296, 311, 296, - 337, 316, 316, 296, 350, 339, 62, 62, 378, 296, - 319, 319, 295, 331, 383, 368, 369, 383, 293, 379, + 295, 299, 295, 299, 295, 299, 295, 299, 104, 109, + 378, 448, 343, 312, 296, 296, 296, 296, 296, 337, + 197, 406, 311, 340, 319, 319, 293, 340, 313, 291, + 170, 171, 172, 173, 291, 433, 445, 446, 448, 463, + 173, 175, 176, 291, 433, 445, 446, 448, 464, 291, + 136, 300, 300, 384, 347, 384, 296, 296, 311, 296, + 337, 316, 316, 296, 350, 339, 62, 62, 379, 296, + 319, 319, 295, 331, 384, 369, 370, 384, 293, 380, 311, 348, 296, 295, 304, 304, 300, 300, 300, 300, 295, 313, 8, 293, 8, 250, 348, 299, 299, 25, 26, 27, 28, 29, 271, 293, 299, 306, 292, 300, 319, 291, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 44, 348, 351, 353, 295, - 295, 290, 374, 371, 300, 296, 296, 295, 295, 327, + 295, 290, 375, 372, 300, 296, 296, 295, 295, 327, 319, 319, 319, 295, 299, 295, 299, 295, 299, 295, 299, 319, 319, 319, 319, 319, 319, 336, 319, 319, 335, 319, 335, 336, 319, 319, 319, 319, 319, 319, 319, 336, 319, 352, 319, 8, 44, 319, 44, 51, - 382, 319, 42, 91, 110, 364, 372, 296, 401, 296, - 311, 300, 300, 383, 383, 256, 387, 387, 387, 387, - 387, 387, 387, 312, 293, 19, 296, 312, 312, 319, - 304, 296, 319, 311, 296, 293, 380, 379, 395, 319, - 138, 139, 138, 139, 346, 381, 319, 298, 293, 319, + 383, 319, 42, 91, 110, 365, 373, 296, 402, 296, + 311, 300, 300, 384, 384, 256, 388, 388, 388, 388, + 388, 388, 388, 312, 293, 19, 296, 312, 312, 319, + 304, 296, 319, 311, 296, 293, 381, 380, 396, 319, + 138, 139, 138, 139, 346, 382, 319, 298, 293, 319, 319, 348, 300, 319, 292, 300, 26, 27, 28, 29, - 319, 26, 27, 28, 319, 374, 291, 291, 302, 337, + 319, 26, 27, 28, 319, 375, 291, 291, 302, 337, 337, 296, 300, 296, 300, 319, 319, 319, 319, 319, 319, 336, 319, 296, 300, 296, 300, 296, 300, 296, 300, 296, 296, 300, 296, 296, 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, 296, 300, - 296, 8, 296, 300, 51, 382, 299, 311, 295, 293, - 19, 317, 383, 313, 378, 296, 379, 383, 296, 296, + 296, 8, 296, 300, 51, 383, 299, 311, 295, 293, + 19, 317, 384, 313, 379, 296, 380, 384, 296, 296, 296, 295, 8, 319, 348, 300, 300, 300, 319, 296, 304, 304, 304, 296, 291, 296, 296, 295, 295, 296, 300, 296, 300, 296, 300, 296, 300, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, - 295, 8, 300, 298, 337, 383, 313, 340, 301, 333, + 295, 8, 300, 298, 337, 384, 313, 340, 301, 333, 334, 304, 337, 296, 293, 296, 345, 300, 319, 319, - 319, 360, 357, 295, 295, 295, 295, 356, 357, 358, - 359, 354, 355, 356, 357, 358, 359, 363, 361, 362, - 352, 296, 333, 383, 295, 378, 296, 348, 296, 296, - 296, 296, 327, 296, 319, 356, 357, 358, 359, 296, + 319, 361, 358, 295, 295, 295, 295, 357, 358, 359, + 360, 355, 356, 357, 358, 359, 360, 364, 362, 363, + 352, 296, 333, 384, 295, 379, 296, 348, 296, 296, + 296, 296, 327, 296, 319, 357, 358, 359, 360, 296, 319, 296, 296, 319, 296, 336, 296, 319, 335, 296, 335, 336, 296, 296, 296, 296, 296, 352, 8, 44, - 296, 44, 51, 296, 382, 347, 295, 19, 337, 392, + 296, 44, 51, 296, 383, 347, 295, 19, 337, 393, 293, 296, 296, 296, 296, 8, 337, 313, 296, 39, 54, 70, 79, 93, 94, 95, 96, 125, 126, 127, 128, 129, 130, 131, 290, 348, 296, 295, 295, 296, - 256, 337, 319, 103, 296, 296, 317, 340, 383, 19, + 256, 337, 319, 103, 296, 296, 317, 340, 384, 19, 313, 333, 295, 337, 296, }; #endif /* YYDESTRUCT */ @@ -5454,10 +6576,29 @@ static const char *yyrule[] = { "variantType : BLOB_OBJECT_", "variantType : CF_", "variantType : CLSID_", +"constTypeArg : FLOAT32_ '(' float64 ')'", +"constTypeArg : FLOAT64_ '(' float64 ')'", +"constTypeArg : FLOAT32_ '(' int32 ')'", +"constTypeArg : FLOAT64_ '(' int64 ')'", +"constTypeArg : INT64_ '(' int64 ')'", +"constTypeArg : INT32_ '(' int32 ')'", +"constTypeArg : INT16_ '(' int32 ')'", +"constTypeArg : INT8_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT64_ '(' int64 ')'", +"constTypeArg : UNSIGNED_ INT32_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT16_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT8_ '(' int32 ')'", +"constTypeArg : UINT64_ '(' int64 ')'", +"constTypeArg : UINT32_ '(' int32 ')'", +"constTypeArg : UINT16_ '(' int32 ')'", +"constTypeArg : UINT8_ '(' int32 ')'", +"constTypeArg : CHAR_ '(' int32 ')'", +"constTypeArg : BOOL_ '(' truefalse ')'", "type : CLASS_ className", "type : OBJECT_", "type : VALUE_ CLASS_ className", "type : VALUETYPE_ className", +"type : CONST_ constTypeArg", "type : CONST_ simpleType", "type : type '[' ']'", "type : type '[' bounds1 ']'", @@ -5940,11 +7081,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2116 "asmparse.y" +#line 2156 "asmparse.y" #include "grammar_after.cpp" -#line 5948 "asmparse.cpp.tab.c" +#line 7089 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6397,13 +7538,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6401 "asmparse.cpp.tab.c" +#line 7542 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6407 "asmparse.cpp.tab.c" +#line 7548 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6412,31 +7553,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6416 "asmparse.cpp.tab.c" +#line 7557 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6422 "asmparse.cpp.tab.c" +#line 7563 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6428 "asmparse.cpp.tab.c" +#line 7569 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6434 "asmparse.cpp.tab.c" +#line 7575 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6440 "asmparse.cpp.tab.c" +#line 7581 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6451,13 +7592,13 @@ case 19: #pragma warning(pop) #endif } -#line 6455 "asmparse.cpp.tab.c" +#line 7596 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6461 "asmparse.cpp.tab.c" +#line 7602 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6465,7 +7606,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6469 "asmparse.cpp.tab.c" +#line 7610 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6473,44 +7614,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6477 "asmparse.cpp.tab.c" +#line 7618 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6483 "asmparse.cpp.tab.c" +#line 7624 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6489 "asmparse.cpp.tab.c" +#line 7630 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6495 "asmparse.cpp.tab.c" +#line 7636 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6501 "asmparse.cpp.tab.c" +#line 7642 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6507 "asmparse.cpp.tab.c" +#line 7648 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6514 "asmparse.cpp.tab.c" +#line 7655 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6518,121 +7659,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6522 "asmparse.cpp.tab.c" +#line 7663 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6528 "asmparse.cpp.tab.c" +#line 7669 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6534 "asmparse.cpp.tab.c" +#line 7675 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6540 "asmparse.cpp.tab.c" +#line 7681 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6546 "asmparse.cpp.tab.c" +#line 7687 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6552 "asmparse.cpp.tab.c" +#line 7693 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6558 "asmparse.cpp.tab.c" +#line 7699 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6564 "asmparse.cpp.tab.c" +#line 7705 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6570 "asmparse.cpp.tab.c" +#line 7711 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6576 "asmparse.cpp.tab.c" +#line 7717 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6582 "asmparse.cpp.tab.c" +#line 7723 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6588 "asmparse.cpp.tab.c" +#line 7729 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6594 "asmparse.cpp.tab.c" +#line 7735 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6600 "asmparse.cpp.tab.c" +#line 7741 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6606 "asmparse.cpp.tab.c" +#line 7747 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6612 "asmparse.cpp.tab.c" +#line 7753 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6618 "asmparse.cpp.tab.c" +#line 7759 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6624 "asmparse.cpp.tab.c" +#line 7765 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6630 "asmparse.cpp.tab.c" +#line 7771 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6636 "asmparse.cpp.tab.c" +#line 7777 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6640,7 +7781,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6644 "asmparse.cpp.tab.c" +#line 7785 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6648,13 +7789,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6652 "asmparse.cpp.tab.c" +#line 7793 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6658 "asmparse.cpp.tab.c" +#line 7799 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6663,73 +7804,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6667 "asmparse.cpp.tab.c" +#line 7808 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6673 "asmparse.cpp.tab.c" +#line 7814 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6679 "asmparse.cpp.tab.c" +#line 7820 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6685 "asmparse.cpp.tab.c" +#line 7826 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6691 "asmparse.cpp.tab.c" +#line 7832 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6697 "asmparse.cpp.tab.c" +#line 7838 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6703 "asmparse.cpp.tab.c" +#line 7844 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6709 "asmparse.cpp.tab.c" +#line 7850 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6715 "asmparse.cpp.tab.c" +#line 7856 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6721 "asmparse.cpp.tab.c" +#line 7862 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6727 "asmparse.cpp.tab.c" +#line 7868 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6733 "asmparse.cpp.tab.c" +#line 7874 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6737,25 +7878,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6741 "asmparse.cpp.tab.c" +#line 7882 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6747 "asmparse.cpp.tab.c" +#line 7888 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6753 "asmparse.cpp.tab.c" +#line 7894 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6759 "asmparse.cpp.tab.c" +#line 7900 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6764,32 +7905,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6768 "asmparse.cpp.tab.c" +#line 7909 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6774 "asmparse.cpp.tab.c" +#line 7915 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6781 "asmparse.cpp.tab.c" +#line 7922 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6787 "asmparse.cpp.tab.c" +#line 7928 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6793 "asmparse.cpp.tab.c" +#line 7934 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6799,25 +7940,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6803 "asmparse.cpp.tab.c" +#line 7944 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6809 "asmparse.cpp.tab.c" +#line 7950 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6815 "asmparse.cpp.tab.c" +#line 7956 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6821 "asmparse.cpp.tab.c" +#line 7962 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6826,13 +7967,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6830 "asmparse.cpp.tab.c" +#line 7971 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6836 "asmparse.cpp.tab.c" +#line 7977 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6843,57 +7984,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6847 "asmparse.cpp.tab.c" +#line 7988 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6853 "asmparse.cpp.tab.c" +#line 7994 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6859 "asmparse.cpp.tab.c" +#line 8000 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6865 "asmparse.cpp.tab.c" +#line 8006 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6872 "asmparse.cpp.tab.c" +#line 8013 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6879 "asmparse.cpp.tab.c" +#line 8020 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6885 "asmparse.cpp.tab.c" +#line 8026 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6891 "asmparse.cpp.tab.c" +#line 8032 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6897 "asmparse.cpp.tab.c" +#line 8038 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6902,74 +8043,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6906 "asmparse.cpp.tab.c" +#line 8047 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6913 "asmparse.cpp.tab.c" +#line 8054 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6919 "asmparse.cpp.tab.c" +#line 8060 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6925 "asmparse.cpp.tab.c" +#line 8066 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6931 "asmparse.cpp.tab.c" +#line 8072 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6937 "asmparse.cpp.tab.c" +#line 8078 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6943 "asmparse.cpp.tab.c" +#line 8084 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6949 "asmparse.cpp.tab.c" +#line 8090 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6955 "asmparse.cpp.tab.c" +#line 8096 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6961 "asmparse.cpp.tab.c" +#line 8102 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6967 "asmparse.cpp.tab.c" +#line 8108 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6973 "asmparse.cpp.tab.c" +#line 8114 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6979,355 +8120,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6983 "asmparse.cpp.tab.c" +#line 8124 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6989 "asmparse.cpp.tab.c" +#line 8130 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6995 "asmparse.cpp.tab.c" +#line 8136 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 7001 "asmparse.cpp.tab.c" +#line 8142 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 7007 "asmparse.cpp.tab.c" +#line 8148 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 7013 "asmparse.cpp.tab.c" +#line 8154 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 7019 "asmparse.cpp.tab.c" +#line 8160 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 7025 "asmparse.cpp.tab.c" +#line 8166 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 7031 "asmparse.cpp.tab.c" +#line 8172 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 7037 "asmparse.cpp.tab.c" +#line 8178 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 7043 "asmparse.cpp.tab.c" +#line 8184 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 7049 "asmparse.cpp.tab.c" +#line 8190 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 7055 "asmparse.cpp.tab.c" +#line 8196 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 7061 "asmparse.cpp.tab.c" +#line 8202 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 7067 "asmparse.cpp.tab.c" +#line 8208 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 7073 "asmparse.cpp.tab.c" +#line 8214 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 7079 "asmparse.cpp.tab.c" +#line 8220 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 7085 "asmparse.cpp.tab.c" +#line 8226 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 7091 "asmparse.cpp.tab.c" +#line 8232 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 7097 "asmparse.cpp.tab.c" +#line 8238 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 7103 "asmparse.cpp.tab.c" +#line 8244 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 7109 "asmparse.cpp.tab.c" +#line 8250 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 7115 "asmparse.cpp.tab.c" +#line 8256 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 7121 "asmparse.cpp.tab.c" +#line 8262 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 7127 "asmparse.cpp.tab.c" +#line 8268 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 7133 "asmparse.cpp.tab.c" +#line 8274 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 7139 "asmparse.cpp.tab.c" +#line 8280 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 7145 "asmparse.cpp.tab.c" +#line 8286 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 7151 "asmparse.cpp.tab.c" +#line 8292 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 7157 "asmparse.cpp.tab.c" +#line 8298 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7163 "asmparse.cpp.tab.c" +#line 8304 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7169 "asmparse.cpp.tab.c" +#line 8310 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7175 "asmparse.cpp.tab.c" +#line 8316 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7181 "asmparse.cpp.tab.c" +#line 8322 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7187 "asmparse.cpp.tab.c" +#line 8328 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7193 "asmparse.cpp.tab.c" +#line 8334 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7199 "asmparse.cpp.tab.c" +#line 8340 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7205 "asmparse.cpp.tab.c" +#line 8346 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7211 "asmparse.cpp.tab.c" +#line 8352 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7217 "asmparse.cpp.tab.c" +#line 8358 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7223 "asmparse.cpp.tab.c" +#line 8364 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7229 "asmparse.cpp.tab.c" +#line 8370 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7235 "asmparse.cpp.tab.c" +#line 8376 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7241 "asmparse.cpp.tab.c" +#line 8382 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7247 "asmparse.cpp.tab.c" +#line 8388 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7253 "asmparse.cpp.tab.c" +#line 8394 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7259 "asmparse.cpp.tab.c" +#line 8400 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7265 "asmparse.cpp.tab.c" +#line 8406 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7271 "asmparse.cpp.tab.c" +#line 8412 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7277 "asmparse.cpp.tab.c" +#line 8418 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7283 "asmparse.cpp.tab.c" +#line 8424 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7289 "asmparse.cpp.tab.c" +#line 8430 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7295 "asmparse.cpp.tab.c" +#line 8436 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7301 "asmparse.cpp.tab.c" +#line 8442 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7307 "asmparse.cpp.tab.c" +#line 8448 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7313 "asmparse.cpp.tab.c" +#line 8454 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7319 "asmparse.cpp.tab.c" +#line 8460 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7325 "asmparse.cpp.tab.c" +#line 8466 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7331 "asmparse.cpp.tab.c" +#line 8472 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7336,43 +8477,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7340 "asmparse.cpp.tab.c" +#line 8481 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7346 "asmparse.cpp.tab.c" +#line 8487 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7352 "asmparse.cpp.tab.c" +#line 8493 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7358 "asmparse.cpp.tab.c" +#line 8499 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7364 "asmparse.cpp.tab.c" +#line 8505 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7370 "asmparse.cpp.tab.c" +#line 8511 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7376 "asmparse.cpp.tab.c" +#line 8517 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7382,7 +8523,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7386 "asmparse.cpp.tab.c" +#line 8527 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7395,7 +8536,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7399 "asmparse.cpp.tab.c" +#line 8540 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7405,7 +8546,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7409 "asmparse.cpp.tab.c" +#line 8550 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7416,19 +8557,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7420 "asmparse.cpp.tab.c" +#line 8561 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7426 "asmparse.cpp.tab.c" +#line 8567 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7432 "asmparse.cpp.tab.c" +#line 8573 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7437,146 +8578,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7441 "asmparse.cpp.tab.c" +#line 8582 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7448 "asmparse.cpp.tab.c" +#line 8589 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7454 "asmparse.cpp.tab.c" +#line 8595 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7460 "asmparse.cpp.tab.c" +#line 8601 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7466 "asmparse.cpp.tab.c" +#line 8607 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7472 "asmparse.cpp.tab.c" +#line 8613 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7478 "asmparse.cpp.tab.c" +#line 8619 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7484 "asmparse.cpp.tab.c" +#line 8625 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7490 "asmparse.cpp.tab.c" +#line 8631 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7496 "asmparse.cpp.tab.c" +#line 8637 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7502 "asmparse.cpp.tab.c" +#line 8643 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7508 "asmparse.cpp.tab.c" +#line 8649 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7514 "asmparse.cpp.tab.c" +#line 8655 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7520 "asmparse.cpp.tab.c" +#line 8661 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7526 "asmparse.cpp.tab.c" +#line 8667 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7532 "asmparse.cpp.tab.c" +#line 8673 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7538 "asmparse.cpp.tab.c" +#line 8679 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7544 "asmparse.cpp.tab.c" +#line 8685 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7550 "asmparse.cpp.tab.c" +#line 8691 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7556 "asmparse.cpp.tab.c" +#line 8697 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7562 "asmparse.cpp.tab.c" +#line 8703 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7568 "asmparse.cpp.tab.c" +#line 8709 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7574 "asmparse.cpp.tab.c" +#line 8715 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7580 "asmparse.cpp.tab.c" +#line 8721 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7597,7 +8738,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7601 "asmparse.cpp.tab.c" +#line 8742 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7607,7 +8748,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7611 "asmparse.cpp.tab.c" +#line 8752 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7627,7 +8768,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7631 "asmparse.cpp.tab.c" +#line 8772 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7636,103 +8777,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7640 "asmparse.cpp.tab.c" +#line 8781 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7646 "asmparse.cpp.tab.c" +#line 8787 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7652 "asmparse.cpp.tab.c" +#line 8793 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7658 "asmparse.cpp.tab.c" +#line 8799 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7664 "asmparse.cpp.tab.c" +#line 8805 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7670 "asmparse.cpp.tab.c" +#line 8811 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7676 "asmparse.cpp.tab.c" +#line 8817 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7682 "asmparse.cpp.tab.c" +#line 8823 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7688 "asmparse.cpp.tab.c" +#line 8829 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7694 "asmparse.cpp.tab.c" +#line 8835 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7700 "asmparse.cpp.tab.c" +#line 8841 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7706 "asmparse.cpp.tab.c" +#line 8847 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7712 "asmparse.cpp.tab.c" +#line 8853 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7718 "asmparse.cpp.tab.c" +#line 8859 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7724 "asmparse.cpp.tab.c" +#line 8865 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7730 "asmparse.cpp.tab.c" +#line 8871 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7736 "asmparse.cpp.tab.c" +#line 8877 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7742,7 +8883,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7746 "asmparse.cpp.tab.c" +#line 8887 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7750,7 +8891,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7754 "asmparse.cpp.tab.c" +#line 8895 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7758,82 +8899,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7762 "asmparse.cpp.tab.c" +#line 8903 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7769 "asmparse.cpp.tab.c" +#line 8910 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7776 "asmparse.cpp.tab.c" +#line 8917 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7783 "asmparse.cpp.tab.c" +#line 8924 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7789 "asmparse.cpp.tab.c" +#line 8930 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7795 "asmparse.cpp.tab.c" +#line 8936 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7801 "asmparse.cpp.tab.c" +#line 8942 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7807 "asmparse.cpp.tab.c" +#line 8948 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7813 "asmparse.cpp.tab.c" +#line 8954 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7819 "asmparse.cpp.tab.c" +#line 8960 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7825 "asmparse.cpp.tab.c" +#line 8966 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7831 "asmparse.cpp.tab.c" +#line 8972 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7837 "asmparse.cpp.tab.c" +#line 8978 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7841,43 +8982,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7845 "asmparse.cpp.tab.c" +#line 8986 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7851 "asmparse.cpp.tab.c" +#line 8992 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7857 "asmparse.cpp.tab.c" +#line 8998 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7863 "asmparse.cpp.tab.c" +#line 9004 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7869 "asmparse.cpp.tab.c" +#line 9010 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7875 "asmparse.cpp.tab.c" +#line 9016 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7881 "asmparse.cpp.tab.c" +#line 9022 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7886,37 +9027,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7890 "asmparse.cpp.tab.c" +#line 9031 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7896 "asmparse.cpp.tab.c" +#line 9037 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7902 "asmparse.cpp.tab.c" +#line 9043 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7908 "asmparse.cpp.tab.c" +#line 9049 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7914 "asmparse.cpp.tab.c" +#line 9055 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7920 "asmparse.cpp.tab.c" +#line 9061 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7934,420 +9075,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7938 "asmparse.cpp.tab.c" +#line 9079 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7944 "asmparse.cpp.tab.c" +#line 9085 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7950 "asmparse.cpp.tab.c" +#line 9091 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7956 "asmparse.cpp.tab.c" +#line 9097 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7962 "asmparse.cpp.tab.c" +#line 9103 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7968 "asmparse.cpp.tab.c" +#line 9109 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7974 "asmparse.cpp.tab.c" +#line 9115 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7980 "asmparse.cpp.tab.c" +#line 9121 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7986 "asmparse.cpp.tab.c" +#line 9127 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7992 "asmparse.cpp.tab.c" +#line 9133 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7998 "asmparse.cpp.tab.c" +#line 9139 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 8004 "asmparse.cpp.tab.c" +#line 9145 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 8010 "asmparse.cpp.tab.c" +#line 9151 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 8016 "asmparse.cpp.tab.c" +#line 9157 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 8022 "asmparse.cpp.tab.c" +#line 9163 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 8028 "asmparse.cpp.tab.c" +#line 9169 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 8034 "asmparse.cpp.tab.c" +#line 9175 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 8040 "asmparse.cpp.tab.c" +#line 9181 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 8046 "asmparse.cpp.tab.c" +#line 9187 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 8052 "asmparse.cpp.tab.c" +#line 9193 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 8058 "asmparse.cpp.tab.c" +#line 9199 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 8065 "asmparse.cpp.tab.c" +#line 9206 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 8072 "asmparse.cpp.tab.c" +#line 9213 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 8079 "asmparse.cpp.tab.c" +#line 9220 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 8085 "asmparse.cpp.tab.c" +#line 9226 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 8091 "asmparse.cpp.tab.c" +#line 9232 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 8097 "asmparse.cpp.tab.c" +#line 9238 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 8103 "asmparse.cpp.tab.c" +#line 9244 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 8109 "asmparse.cpp.tab.c" +#line 9250 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 8115 "asmparse.cpp.tab.c" +#line 9256 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 8121 "asmparse.cpp.tab.c" +#line 9262 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 8127 "asmparse.cpp.tab.c" +#line 9268 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 8133 "asmparse.cpp.tab.c" +#line 9274 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 8139 "asmparse.cpp.tab.c" +#line 9280 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 8145 "asmparse.cpp.tab.c" +#line 9286 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 8151 "asmparse.cpp.tab.c" +#line 9292 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 8157 "asmparse.cpp.tab.c" +#line 9298 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 8163 "asmparse.cpp.tab.c" +#line 9304 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 8169 "asmparse.cpp.tab.c" +#line 9310 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8175 "asmparse.cpp.tab.c" +#line 9316 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8181 "asmparse.cpp.tab.c" +#line 9322 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8187 "asmparse.cpp.tab.c" +#line 9328 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8193 "asmparse.cpp.tab.c" +#line 9334 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8199 "asmparse.cpp.tab.c" +#line 9340 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8205 "asmparse.cpp.tab.c" +#line 9346 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8211 "asmparse.cpp.tab.c" +#line 9352 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8217 "asmparse.cpp.tab.c" +#line 9358 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8223 "asmparse.cpp.tab.c" +#line 9364 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8229 "asmparse.cpp.tab.c" +#line 9370 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8235 "asmparse.cpp.tab.c" +#line 9376 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8241 "asmparse.cpp.tab.c" +#line 9382 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8247 "asmparse.cpp.tab.c" +#line 9388 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8253 "asmparse.cpp.tab.c" +#line 9394 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8259 "asmparse.cpp.tab.c" +#line 9400 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8265 "asmparse.cpp.tab.c" +#line 9406 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8271 "asmparse.cpp.tab.c" +#line 9412 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8277 "asmparse.cpp.tab.c" +#line 9418 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8283 "asmparse.cpp.tab.c" +#line 9424 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8289 "asmparse.cpp.tab.c" +#line 9430 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8295 "asmparse.cpp.tab.c" +#line 9436 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8301 "asmparse.cpp.tab.c" +#line 9442 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8307 "asmparse.cpp.tab.c" +#line 9448 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8313 "asmparse.cpp.tab.c" +#line 9454 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8319 "asmparse.cpp.tab.c" +#line 9460 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8326 "asmparse.cpp.tab.c" +#line 9467 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8332 "asmparse.cpp.tab.c" +#line 9473 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8338 "asmparse.cpp.tab.c" +#line 9479 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8344 "asmparse.cpp.tab.c" +#line 9485 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8351 "asmparse.cpp.tab.c" +#line 9492 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8355,25 +9496,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8359 "asmparse.cpp.tab.c" +#line 9500 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8365 "asmparse.cpp.tab.c" +#line 9506 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8371 "asmparse.cpp.tab.c" +#line 9512 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8377 "asmparse.cpp.tab.c" +#line 9518 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8388,7 +9529,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8392 "asmparse.cpp.tab.c" +#line 9533 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8403,20 +9544,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8407 "asmparse.cpp.tab.c" +#line 9548 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8414 "asmparse.cpp.tab.c" +#line 9555 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8420 "asmparse.cpp.tab.c" +#line 9561 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8427,7 +9568,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8431 "asmparse.cpp.tab.c" +#line 9572 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8437,7 +9578,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8441 "asmparse.cpp.tab.c" +#line 9582 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8448,19 +9589,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8452 "asmparse.cpp.tab.c" +#line 9593 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8458 "asmparse.cpp.tab.c" +#line 9599 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8464 "asmparse.cpp.tab.c" +#line 9605 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8483,96 +9624,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8487 "asmparse.cpp.tab.c" +#line 9628 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8493 "asmparse.cpp.tab.c" +#line 9634 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8499 "asmparse.cpp.tab.c" +#line 9640 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8505 "asmparse.cpp.tab.c" +#line 9646 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8511 "asmparse.cpp.tab.c" +#line 9652 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8518 "asmparse.cpp.tab.c" +#line 9659 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8525 "asmparse.cpp.tab.c" +#line 9666 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8531 "asmparse.cpp.tab.c" +#line 9672 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8537 "asmparse.cpp.tab.c" +#line 9678 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8543 "asmparse.cpp.tab.c" +#line 9684 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8549 "asmparse.cpp.tab.c" +#line 9690 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8555 "asmparse.cpp.tab.c" +#line 9696 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8562 "asmparse.cpp.tab.c" +#line 9703 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8569 "asmparse.cpp.tab.c" +#line 9710 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8576 "asmparse.cpp.tab.c" +#line 9717 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8580,70 +9721,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8584 "asmparse.cpp.tab.c" +#line 9725 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8591 "asmparse.cpp.tab.c" +#line 9732 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8598 "asmparse.cpp.tab.c" +#line 9739 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8604 "asmparse.cpp.tab.c" +#line 9745 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8610 "asmparse.cpp.tab.c" +#line 9751 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8617 "asmparse.cpp.tab.c" +#line 9758 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8623 "asmparse.cpp.tab.c" +#line 9764 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8629 "asmparse.cpp.tab.c" +#line 9770 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8635 "asmparse.cpp.tab.c" +#line 9776 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8641 "asmparse.cpp.tab.c" +#line 9782 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8647 "asmparse.cpp.tab.c" +#line 9788 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8651,25 +9792,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8655 "asmparse.cpp.tab.c" +#line 9796 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8661 "asmparse.cpp.tab.c" +#line 9802 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8667 "asmparse.cpp.tab.c" +#line 9808 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8673 "asmparse.cpp.tab.c" +#line 9814 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8680,7 +9821,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8684 "asmparse.cpp.tab.c" +#line 9825 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8691,7 +9832,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8695 "asmparse.cpp.tab.c" +#line 9836 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8702,7 +9843,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8706 "asmparse.cpp.tab.c" +#line 9847 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8713,7 +9854,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8717 "asmparse.cpp.tab.c" +#line 9858 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8725,7 +9866,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8729 "asmparse.cpp.tab.c" +#line 9870 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8737,43 +9878,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8741 "asmparse.cpp.tab.c" +#line 9882 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8747 "asmparse.cpp.tab.c" +#line 9888 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8753 "asmparse.cpp.tab.c" +#line 9894 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8759 "asmparse.cpp.tab.c" +#line 9900 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8765 "asmparse.cpp.tab.c" +#line 9906 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8771 "asmparse.cpp.tab.c" +#line 9912 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8777 "asmparse.cpp.tab.c" +#line 9918 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8781,227 +9922,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8785 "asmparse.cpp.tab.c" +#line 9926 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8792 "asmparse.cpp.tab.c" +#line 9933 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8799 "asmparse.cpp.tab.c" +#line 9940 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8806 "asmparse.cpp.tab.c" +#line 9947 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8813 "asmparse.cpp.tab.c" +#line 9954 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8820 "asmparse.cpp.tab.c" +#line 9961 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8827 "asmparse.cpp.tab.c" +#line 9968 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8834 "asmparse.cpp.tab.c" +#line 9975 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8841 "asmparse.cpp.tab.c" +#line 9982 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8848 "asmparse.cpp.tab.c" +#line 9989 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8855 "asmparse.cpp.tab.c" +#line 9996 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8862 "asmparse.cpp.tab.c" +#line 10003 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8869 "asmparse.cpp.tab.c" +#line 10010 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8876 "asmparse.cpp.tab.c" +#line 10017 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8883 "asmparse.cpp.tab.c" +#line 10024 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8890 "asmparse.cpp.tab.c" +#line 10031 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8897 "asmparse.cpp.tab.c" +#line 10038 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8904 "asmparse.cpp.tab.c" +#line 10045 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8911 "asmparse.cpp.tab.c" +#line 10052 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8917 "asmparse.cpp.tab.c" +#line 10058 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8923 "asmparse.cpp.tab.c" +#line 10064 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8929 "asmparse.cpp.tab.c" +#line 10070 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8935 "asmparse.cpp.tab.c" +#line 10076 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8941 "asmparse.cpp.tab.c" +#line 10082 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8947 "asmparse.cpp.tab.c" +#line 10088 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8953 "asmparse.cpp.tab.c" +#line 10094 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8960 "asmparse.cpp.tab.c" +#line 10101 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8966 "asmparse.cpp.tab.c" +#line 10107 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8972 "asmparse.cpp.tab.c" +#line 10113 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8979 "asmparse.cpp.tab.c" +#line 10120 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8986 "asmparse.cpp.tab.c" +#line 10127 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8993 "asmparse.cpp.tab.c" +#line 10134 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8999 "asmparse.cpp.tab.c" +#line 10140 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 9005 "asmparse.cpp.tab.c" +#line 10146 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -9009,7 +10150,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9013 "asmparse.cpp.tab.c" +#line 10154 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -9017,7 +10158,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9021 "asmparse.cpp.tab.c" +#line 10162 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -9025,7 +10166,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9029 "asmparse.cpp.tab.c" +#line 10170 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -9033,7 +10174,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9037 "asmparse.cpp.tab.c" +#line 10178 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -9041,7 +10182,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9045 "asmparse.cpp.tab.c" +#line 10186 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -9049,7 +10190,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9053 "asmparse.cpp.tab.c" +#line 10194 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -9057,7 +10198,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9061 "asmparse.cpp.tab.c" +#line 10202 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -9065,7 +10206,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9069 "asmparse.cpp.tab.c" +#line 10210 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -9073,7 +10214,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9077 "asmparse.cpp.tab.c" +#line 10218 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -9081,7 +10222,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9085 "asmparse.cpp.tab.c" +#line 10226 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -9089,7 +10230,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9093 "asmparse.cpp.tab.c" +#line 10234 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -9097,7 +10238,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9101 "asmparse.cpp.tab.c" +#line 10242 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -9105,7 +10246,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9109 "asmparse.cpp.tab.c" +#line 10250 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -9113,7 +10254,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9117 "asmparse.cpp.tab.c" +#line 10258 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -9121,7 +10262,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9125 "asmparse.cpp.tab.c" +#line 10266 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -9129,7 +10270,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9133 "asmparse.cpp.tab.c" +#line 10274 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -9137,7 +10278,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9141 "asmparse.cpp.tab.c" +#line 10282 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -9145,7 +10286,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9149 "asmparse.cpp.tab.c" +#line 10290 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -9153,166 +10294,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9157 "asmparse.cpp.tab.c" +#line 10298 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9163 "asmparse.cpp.tab.c" +#line 10304 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 9170 "asmparse.cpp.tab.c" +#line 10311 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9177 "asmparse.cpp.tab.c" +#line 10318 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9183 "asmparse.cpp.tab.c" +#line 10324 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9190 "asmparse.cpp.tab.c" +#line 10331 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9197 "asmparse.cpp.tab.c" +#line 10338 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9203 "asmparse.cpp.tab.c" +#line 10344 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9210 "asmparse.cpp.tab.c" +#line 10351 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9216 "asmparse.cpp.tab.c" +#line 10357 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9222 "asmparse.cpp.tab.c" +#line 10363 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9228 "asmparse.cpp.tab.c" +#line 10369 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9234 "asmparse.cpp.tab.c" +#line 10375 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9240 "asmparse.cpp.tab.c" +#line 10381 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9246 "asmparse.cpp.tab.c" +#line 10387 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9252 "asmparse.cpp.tab.c" +#line 10393 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9259 "asmparse.cpp.tab.c" +#line 10400 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9265 "asmparse.cpp.tab.c" +#line 10406 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9271 "asmparse.cpp.tab.c" +#line 10412 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9278 "asmparse.cpp.tab.c" +#line 10419 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9284 "asmparse.cpp.tab.c" +#line 10425 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9290 "asmparse.cpp.tab.c" +#line 10431 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9297 "asmparse.cpp.tab.c" +#line 10438 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9304 "asmparse.cpp.tab.c" +#line 10445 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9310 "asmparse.cpp.tab.c" +#line 10451 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9316 "asmparse.cpp.tab.c" +#line 10457 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9321,49 +10462,49 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9325 "asmparse.cpp.tab.c" +#line 10466 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9331 "asmparse.cpp.tab.c" +#line 10472 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9337 "asmparse.cpp.tab.c" +#line 10478 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9343 "asmparse.cpp.tab.c" +#line 10484 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9349 "asmparse.cpp.tab.c" +#line 10490 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9355 "asmparse.cpp.tab.c" +#line 10496 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9361 "asmparse.cpp.tab.c" +#line 10502 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9367 "asmparse.cpp.tab.c" +#line 10508 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) @@ -9374,115 +10515,115 @@ case 503: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9378 "asmparse.cpp.tab.c" +#line 10519 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9384 "asmparse.cpp.tab.c" +#line 10525 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9390 "asmparse.cpp.tab.c" +#line 10531 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9396 "asmparse.cpp.tab.c" +#line 10537 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9402 "asmparse.cpp.tab.c" +#line 10543 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9408 "asmparse.cpp.tab.c" +#line 10549 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9414 "asmparse.cpp.tab.c" +#line 10555 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1375 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9420 "asmparse.cpp.tab.c" +#line 10561 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9426 "asmparse.cpp.tab.c" +#line 10567 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9432 "asmparse.cpp.tab.c" +#line 10573 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9438 "asmparse.cpp.tab.c" +#line 10579 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) #line 1382 "asmparse.y" { PASM->EmitInstrTypeVar(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].int32); } -#line 9444 "asmparse.cpp.tab.c" +#line 10585 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) #line 1383 "asmparse.y" { PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } -#line 9450 "asmparse.cpp.tab.c" +#line 10591 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) #line 1384 "asmparse.y" { PASM->EmitInstrTypeVar(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].int32); } -#line 9456 "asmparse.cpp.tab.c" +#line 10597 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) #line 1385 "asmparse.y" { PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } -#line 9462 "asmparse.cpp.tab.c" +#line 10603 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) #line 1386 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9468 "asmparse.cpp.tab.c" +#line 10609 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) #line 1387 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9474 "asmparse.cpp.tab.c" +#line 10615 "asmparse.cpp.tab.c" break; case 520: if (!yytrial) #line 1388 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9480 "asmparse.cpp.tab.c" +#line 10621 "asmparse.cpp.tab.c" break; case 521: if (!yytrial) #line 1389 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9486 "asmparse.cpp.tab.c" +#line 10627 "asmparse.cpp.tab.c" break; case 522: if (!yytrial) @@ -9496,19 +10637,19 @@ case 522: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9500 "asmparse.cpp.tab.c" +#line 10641 "asmparse.cpp.tab.c" break; case 523: if (!yytrial) #line 1399 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9506 "asmparse.cpp.tab.c" +#line 10647 "asmparse.cpp.tab.c" break; case 524: if (!yytrial) #line 1400 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9512 "asmparse.cpp.tab.c" +#line 10653 "asmparse.cpp.tab.c" break; case 525: if (!yytrial) @@ -9519,7 +10660,7 @@ case 525: PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9523 "asmparse.cpp.tab.c" +#line 10664 "asmparse.cpp.tab.c" break; case 526: if (!yytrial) @@ -9531,7 +10672,7 @@ case 526: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9535 "asmparse.cpp.tab.c" +#line 10676 "asmparse.cpp.tab.c" break; case 527: if (!yytrial) @@ -9543,7 +10684,7 @@ case 527: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9547 "asmparse.cpp.tab.c" +#line 10688 "asmparse.cpp.tab.c" break; case 528: if (!yytrial) @@ -9554,7 +10695,7 @@ case 528: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9558 "asmparse.cpp.tab.c" +#line 10699 "asmparse.cpp.tab.c" break; case 529: if (!yytrial) @@ -9565,7 +10706,7 @@ case 529: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9569 "asmparse.cpp.tab.c" +#line 10710 "asmparse.cpp.tab.c" break; case 530: if (!yytrial) @@ -9576,7 +10717,7 @@ case 530: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9580 "asmparse.cpp.tab.c" +#line 10721 "asmparse.cpp.tab.c" break; case 531: if (!yytrial) @@ -9585,25 +10726,25 @@ case 531: PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9589 "asmparse.cpp.tab.c" +#line 10730 "asmparse.cpp.tab.c" break; case 532: if (!yytrial) #line 1446 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9595 "asmparse.cpp.tab.c" +#line 10736 "asmparse.cpp.tab.c" break; case 533: if (!yytrial) #line 1448 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9601 "asmparse.cpp.tab.c" +#line 10742 "asmparse.cpp.tab.c" break; case 534: if (!yytrial) #line 1450 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9607 "asmparse.cpp.tab.c" +#line 10748 "asmparse.cpp.tab.c" break; case 535: if (!yytrial) @@ -9611,7 +10752,7 @@ case 535: { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9615 "asmparse.cpp.tab.c" +#line 10756 "asmparse.cpp.tab.c" break; case 536: if (!yytrial) @@ -9621,163 +10762,163 @@ case 536: PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9625 "asmparse.cpp.tab.c" +#line 10766 "asmparse.cpp.tab.c" break; case 537: if (!yytrial) #line 1461 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9631 "asmparse.cpp.tab.c" +#line 10772 "asmparse.cpp.tab.c" break; case 538: if (!yytrial) #line 1464 "asmparse.y" { yyval.labels = 0; } -#line 9637 "asmparse.cpp.tab.c" +#line 10778 "asmparse.cpp.tab.c" break; case 539: if (!yytrial) #line 1465 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9643 "asmparse.cpp.tab.c" +#line 10784 "asmparse.cpp.tab.c" break; case 540: if (!yytrial) #line 1466 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9649 "asmparse.cpp.tab.c" +#line 10790 "asmparse.cpp.tab.c" break; case 541: if (!yytrial) #line 1467 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9655 "asmparse.cpp.tab.c" +#line 10796 "asmparse.cpp.tab.c" break; case 542: if (!yytrial) #line 1468 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9661 "asmparse.cpp.tab.c" +#line 10802 "asmparse.cpp.tab.c" break; case 543: if (!yytrial) #line 1472 "asmparse.y" { yyval.binstr = NULL; } -#line 9667 "asmparse.cpp.tab.c" +#line 10808 "asmparse.cpp.tab.c" break; case 544: if (!yytrial) #line 1473 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9673 "asmparse.cpp.tab.c" +#line 10814 "asmparse.cpp.tab.c" break; case 545: if (!yytrial) #line 1476 "asmparse.y" { yyval.binstr = NULL; } -#line 9679 "asmparse.cpp.tab.c" +#line 10820 "asmparse.cpp.tab.c" break; case 546: if (!yytrial) #line 1477 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9685 "asmparse.cpp.tab.c" +#line 10826 "asmparse.cpp.tab.c" break; case 547: if (!yytrial) #line 1480 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9691 "asmparse.cpp.tab.c" +#line 10832 "asmparse.cpp.tab.c" break; case 548: if (!yytrial) #line 1481 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9697 "asmparse.cpp.tab.c" +#line 10838 "asmparse.cpp.tab.c" break; case 549: if (!yytrial) #line 1485 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9703 "asmparse.cpp.tab.c" +#line 10844 "asmparse.cpp.tab.c" break; case 550: if (!yytrial) #line 1486 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9709 "asmparse.cpp.tab.c" +#line 10850 "asmparse.cpp.tab.c" break; case 551: if (!yytrial) #line 1489 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9715 "asmparse.cpp.tab.c" +#line 10856 "asmparse.cpp.tab.c" break; case 552: if (!yytrial) #line 1490 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9721 "asmparse.cpp.tab.c" +#line 10862 "asmparse.cpp.tab.c" break; case 553: if (!yytrial) #line 1493 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9727 "asmparse.cpp.tab.c" +#line 10868 "asmparse.cpp.tab.c" break; case 554: if (!yytrial) #line 1494 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9733 "asmparse.cpp.tab.c" +#line 10874 "asmparse.cpp.tab.c" break; case 555: if (!yytrial) #line 1495 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9739 "asmparse.cpp.tab.c" +#line 10880 "asmparse.cpp.tab.c" break; case 556: if (!yytrial) #line 1499 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9745 "asmparse.cpp.tab.c" +#line 10886 "asmparse.cpp.tab.c" break; case 557: if (!yytrial) #line 1500 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9751 "asmparse.cpp.tab.c" +#line 10892 "asmparse.cpp.tab.c" break; case 558: if (!yytrial) #line 1501 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9757 "asmparse.cpp.tab.c" +#line 10898 "asmparse.cpp.tab.c" break; case 559: if (!yytrial) #line 1502 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9763 "asmparse.cpp.tab.c" +#line 10904 "asmparse.cpp.tab.c" break; case 560: if (!yytrial) #line 1503 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9769 "asmparse.cpp.tab.c" +#line 10910 "asmparse.cpp.tab.c" break; case 561: if (!yytrial) #line 1504 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9775 "asmparse.cpp.tab.c" +#line 10916 "asmparse.cpp.tab.c" break; case 562: if (!yytrial) #line 1505 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9781 "asmparse.cpp.tab.c" +#line 10922 "asmparse.cpp.tab.c" break; case 563: if (!yytrial) @@ -9785,7 +10926,7 @@ case 563: { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9789 "asmparse.cpp.tab.c" +#line 10930 "asmparse.cpp.tab.c" break; case 564: if (!yytrial) @@ -9796,7 +10937,7 @@ case 564: PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9800 "asmparse.cpp.tab.c" +#line 10941 "asmparse.cpp.tab.c" break; case 565: if (!yytrial) @@ -9806,49 +10947,49 @@ case 565: else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9810 "asmparse.cpp.tab.c" +#line 10951 "asmparse.cpp.tab.c" break; case 566: if (!yytrial) #line 1522 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9816 "asmparse.cpp.tab.c" +#line 10957 "asmparse.cpp.tab.c" break; case 567: if (!yytrial) #line 1523 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9822 "asmparse.cpp.tab.c" +#line 10963 "asmparse.cpp.tab.c" break; case 568: if (!yytrial) #line 1526 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9828 "asmparse.cpp.tab.c" +#line 10969 "asmparse.cpp.tab.c" break; case 569: if (!yytrial) #line 1527 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9834 "asmparse.cpp.tab.c" +#line 10975 "asmparse.cpp.tab.c" break; case 570: if (!yytrial) #line 1528 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9840 "asmparse.cpp.tab.c" +#line 10981 "asmparse.cpp.tab.c" break; case 571: if (!yytrial) #line 1529 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9846 "asmparse.cpp.tab.c" +#line 10987 "asmparse.cpp.tab.c" break; case 572: if (!yytrial) #line 1533 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9852 "asmparse.cpp.tab.c" +#line 10993 "asmparse.cpp.tab.c" break; case 573: if (!yytrial) @@ -9859,7 +11000,7 @@ case 573: corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9863 "asmparse.cpp.tab.c" +#line 11004 "asmparse.cpp.tab.c" break; case 574: if (!yytrial) @@ -9869,158 +11010,158 @@ case 574: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9873 "asmparse.cpp.tab.c" +#line 11014 "asmparse.cpp.tab.c" break; case 575: if (!yytrial) #line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9880 "asmparse.cpp.tab.c" +#line 11021 "asmparse.cpp.tab.c" break; case 576: if (!yytrial) #line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9887 "asmparse.cpp.tab.c" +#line 11028 "asmparse.cpp.tab.c" break; case 577: if (!yytrial) #line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9894 "asmparse.cpp.tab.c" +#line 11035 "asmparse.cpp.tab.c" break; case 578: if (!yytrial) #line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9900 "asmparse.cpp.tab.c" +#line 11041 "asmparse.cpp.tab.c" break; case 579: if (!yytrial) #line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9907 "asmparse.cpp.tab.c" +#line 11048 "asmparse.cpp.tab.c" break; case 580: if (!yytrial) #line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9914 "asmparse.cpp.tab.c" +#line 11055 "asmparse.cpp.tab.c" break; case 581: if (!yytrial) #line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9920 "asmparse.cpp.tab.c" +#line 11061 "asmparse.cpp.tab.c" break; case 582: if (!yytrial) #line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9926 "asmparse.cpp.tab.c" +#line 11067 "asmparse.cpp.tab.c" break; case 583: if (!yytrial) #line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9932 "asmparse.cpp.tab.c" +#line 11073 "asmparse.cpp.tab.c" break; case 584: if (!yytrial) #line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9938 "asmparse.cpp.tab.c" +#line 11079 "asmparse.cpp.tab.c" break; case 585: if (!yytrial) #line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9944 "asmparse.cpp.tab.c" +#line 11085 "asmparse.cpp.tab.c" break; case 586: if (!yytrial) #line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9950 "asmparse.cpp.tab.c" +#line 11091 "asmparse.cpp.tab.c" break; case 587: if (!yytrial) #line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9956 "asmparse.cpp.tab.c" +#line 11097 "asmparse.cpp.tab.c" break; case 588: if (!yytrial) #line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9962 "asmparse.cpp.tab.c" +#line 11103 "asmparse.cpp.tab.c" break; case 589: if (!yytrial) #line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9968 "asmparse.cpp.tab.c" +#line 11109 "asmparse.cpp.tab.c" break; case 590: if (!yytrial) #line 1568 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9974 "asmparse.cpp.tab.c" +#line 11115 "asmparse.cpp.tab.c" break; case 591: if (!yytrial) #line 1569 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9980 "asmparse.cpp.tab.c" +#line 11121 "asmparse.cpp.tab.c" break; case 592: if (!yytrial) #line 1570 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9986 "asmparse.cpp.tab.c" +#line 11127 "asmparse.cpp.tab.c" break; case 593: if (!yytrial) #line 1571 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9992 "asmparse.cpp.tab.c" +#line 11133 "asmparse.cpp.tab.c" break; case 594: if (!yytrial) #line 1572 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9998 "asmparse.cpp.tab.c" +#line 11139 "asmparse.cpp.tab.c" break; case 595: if (!yytrial) #line 1573 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10004 "asmparse.cpp.tab.c" +#line 11145 "asmparse.cpp.tab.c" break; case 596: if (!yytrial) #line 1574 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10010 "asmparse.cpp.tab.c" +#line 11151 "asmparse.cpp.tab.c" break; case 597: if (!yytrial) #line 1575 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 10017 "asmparse.cpp.tab.c" +#line 11158 "asmparse.cpp.tab.c" break; case 598: if (!yytrial) #line 1577 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10024 "asmparse.cpp.tab.c" +#line 11165 "asmparse.cpp.tab.c" break; case 599: if (!yytrial) @@ -10030,7 +11171,7 @@ case 599: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10034 "asmparse.cpp.tab.c" +#line 11175 "asmparse.cpp.tab.c" break; case 600: if (!yytrial) @@ -10040,7 +11181,7 @@ case 600: corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10044 "asmparse.cpp.tab.c" +#line 11185 "asmparse.cpp.tab.c" break; case 601: if (!yytrial) @@ -10048,79 +11189,79 @@ case 601: { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 10052 "asmparse.cpp.tab.c" +#line 11193 "asmparse.cpp.tab.c" break; case 602: if (!yytrial) #line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10059 "asmparse.cpp.tab.c" +#line 11200 "asmparse.cpp.tab.c" break; case 603: if (!yytrial) #line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10066 "asmparse.cpp.tab.c" +#line 11207 "asmparse.cpp.tab.c" break; case 604: if (!yytrial) #line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10072 "asmparse.cpp.tab.c" +#line 11213 "asmparse.cpp.tab.c" break; case 605: if (!yytrial) #line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10078 "asmparse.cpp.tab.c" +#line 11219 "asmparse.cpp.tab.c" break; case 606: if (!yytrial) #line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10084 "asmparse.cpp.tab.c" +#line 11225 "asmparse.cpp.tab.c" break; case 607: if (!yytrial) #line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10090 "asmparse.cpp.tab.c" +#line 11231 "asmparse.cpp.tab.c" break; case 608: if (!yytrial) #line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10097 "asmparse.cpp.tab.c" +#line 11238 "asmparse.cpp.tab.c" break; case 609: if (!yytrial) #line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10104 "asmparse.cpp.tab.c" +#line 11245 "asmparse.cpp.tab.c" break; case 610: if (!yytrial) #line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10111 "asmparse.cpp.tab.c" +#line 11252 "asmparse.cpp.tab.c" break; case 611: if (!yytrial) #line 1606 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 10117 "asmparse.cpp.tab.c" +#line 11258 "asmparse.cpp.tab.c" break; case 612: if (!yytrial) #line 1607 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10124 "asmparse.cpp.tab.c" +#line 11265 "asmparse.cpp.tab.c" break; case 613: if (!yytrial) @@ -10128,7 +11269,7 @@ case 613: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 10132 "asmparse.cpp.tab.c" +#line 11273 "asmparse.cpp.tab.c" break; case 614: if (!yytrial) @@ -10136,480 +11277,613 @@ case 614: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 10140 "asmparse.cpp.tab.c" +#line 11281 "asmparse.cpp.tab.c" break; case 615: if (!yytrial) #line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 10146 "asmparse.cpp.tab.c" +#line 11287 "asmparse.cpp.tab.c" break; case 616: if (!yytrial) #line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10152 "asmparse.cpp.tab.c" +#line 11293 "asmparse.cpp.tab.c" break; case 617: if (!yytrial) #line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10158 "asmparse.cpp.tab.c" +#line 11299 "asmparse.cpp.tab.c" break; case 618: if (!yytrial) #line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 10165 "asmparse.cpp.tab.c" +#line 11306 "asmparse.cpp.tab.c" break; case 619: if (!yytrial) #line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 10171 "asmparse.cpp.tab.c" +#line 11312 "asmparse.cpp.tab.c" break; case 620: if (!yytrial) #line 1622 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 10177 "asmparse.cpp.tab.c" +#line 11318 "asmparse.cpp.tab.c" break; case 621: if (!yytrial) #line 1623 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 10183 "asmparse.cpp.tab.c" +#line 11324 "asmparse.cpp.tab.c" break; case 622: if (!yytrial) #line 1624 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 10189 "asmparse.cpp.tab.c" +#line 11330 "asmparse.cpp.tab.c" break; case 623: if (!yytrial) #line 1625 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 10195 "asmparse.cpp.tab.c" +#line 11336 "asmparse.cpp.tab.c" break; case 624: if (!yytrial) #line 1626 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 10201 "asmparse.cpp.tab.c" +#line 11342 "asmparse.cpp.tab.c" break; case 625: if (!yytrial) #line 1627 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10207 "asmparse.cpp.tab.c" +#line 11348 "asmparse.cpp.tab.c" break; case 626: if (!yytrial) #line 1628 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10213 "asmparse.cpp.tab.c" +#line 11354 "asmparse.cpp.tab.c" break; case 627: if (!yytrial) #line 1631 "asmparse.y" { yyval.int32 = -1; } -#line 10219 "asmparse.cpp.tab.c" +#line 11360 "asmparse.cpp.tab.c" break; case 628: if (!yytrial) #line 1632 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 10225 "asmparse.cpp.tab.c" +#line 11366 "asmparse.cpp.tab.c" break; case 629: if (!yytrial) #line 1635 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 10231 "asmparse.cpp.tab.c" +#line 11372 "asmparse.cpp.tab.c" break; case 630: if (!yytrial) #line 1636 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 10237 "asmparse.cpp.tab.c" +#line 11378 "asmparse.cpp.tab.c" break; case 631: if (!yytrial) #line 1637 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 10243 "asmparse.cpp.tab.c" +#line 11384 "asmparse.cpp.tab.c" break; case 632: if (!yytrial) #line 1638 "asmparse.y" { yyval.int32 = VT_CY; } -#line 10249 "asmparse.cpp.tab.c" +#line 11390 "asmparse.cpp.tab.c" break; case 633: if (!yytrial) #line 1639 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 10255 "asmparse.cpp.tab.c" +#line 11396 "asmparse.cpp.tab.c" break; case 634: if (!yytrial) #line 1640 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 10261 "asmparse.cpp.tab.c" +#line 11402 "asmparse.cpp.tab.c" break; case 635: if (!yytrial) #line 1641 "asmparse.y" { yyval.int32 = VT_I1; } -#line 10267 "asmparse.cpp.tab.c" +#line 11408 "asmparse.cpp.tab.c" break; case 636: if (!yytrial) #line 1642 "asmparse.y" { yyval.int32 = VT_I2; } -#line 10273 "asmparse.cpp.tab.c" +#line 11414 "asmparse.cpp.tab.c" break; case 637: if (!yytrial) #line 1643 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10279 "asmparse.cpp.tab.c" +#line 11420 "asmparse.cpp.tab.c" break; case 638: if (!yytrial) #line 1644 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10285 "asmparse.cpp.tab.c" +#line 11426 "asmparse.cpp.tab.c" break; case 639: if (!yytrial) #line 1645 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10291 "asmparse.cpp.tab.c" +#line 11432 "asmparse.cpp.tab.c" break; case 640: if (!yytrial) #line 1646 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10297 "asmparse.cpp.tab.c" +#line 11438 "asmparse.cpp.tab.c" break; case 641: if (!yytrial) #line 1647 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10303 "asmparse.cpp.tab.c" +#line 11444 "asmparse.cpp.tab.c" break; case 642: if (!yytrial) #line 1648 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10309 "asmparse.cpp.tab.c" +#line 11450 "asmparse.cpp.tab.c" break; case 643: if (!yytrial) #line 1649 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10315 "asmparse.cpp.tab.c" +#line 11456 "asmparse.cpp.tab.c" break; case 644: if (!yytrial) #line 1650 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10321 "asmparse.cpp.tab.c" +#line 11462 "asmparse.cpp.tab.c" break; case 645: if (!yytrial) #line 1651 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10327 "asmparse.cpp.tab.c" +#line 11468 "asmparse.cpp.tab.c" break; case 646: if (!yytrial) #line 1652 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10333 "asmparse.cpp.tab.c" +#line 11474 "asmparse.cpp.tab.c" break; case 647: if (!yytrial) #line 1653 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10339 "asmparse.cpp.tab.c" +#line 11480 "asmparse.cpp.tab.c" break; case 648: if (!yytrial) #line 1654 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10345 "asmparse.cpp.tab.c" +#line 11486 "asmparse.cpp.tab.c" break; case 649: if (!yytrial) #line 1655 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10351 "asmparse.cpp.tab.c" +#line 11492 "asmparse.cpp.tab.c" break; case 650: if (!yytrial) #line 1656 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10357 "asmparse.cpp.tab.c" +#line 11498 "asmparse.cpp.tab.c" break; case 651: if (!yytrial) #line 1657 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10363 "asmparse.cpp.tab.c" +#line 11504 "asmparse.cpp.tab.c" break; case 652: if (!yytrial) #line 1658 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10369 "asmparse.cpp.tab.c" +#line 11510 "asmparse.cpp.tab.c" break; case 653: if (!yytrial) #line 1659 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10375 "asmparse.cpp.tab.c" +#line 11516 "asmparse.cpp.tab.c" break; case 654: if (!yytrial) #line 1660 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10381 "asmparse.cpp.tab.c" +#line 11522 "asmparse.cpp.tab.c" break; case 655: if (!yytrial) #line 1661 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10387 "asmparse.cpp.tab.c" +#line 11528 "asmparse.cpp.tab.c" break; case 656: if (!yytrial) #line 1662 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10393 "asmparse.cpp.tab.c" +#line 11534 "asmparse.cpp.tab.c" break; case 657: if (!yytrial) #line 1663 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10399 "asmparse.cpp.tab.c" +#line 11540 "asmparse.cpp.tab.c" break; case 658: if (!yytrial) #line 1664 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10405 "asmparse.cpp.tab.c" +#line 11546 "asmparse.cpp.tab.c" break; case 659: if (!yytrial) #line 1665 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10411 "asmparse.cpp.tab.c" +#line 11552 "asmparse.cpp.tab.c" break; case 660: if (!yytrial) #line 1666 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10417 "asmparse.cpp.tab.c" +#line 11558 "asmparse.cpp.tab.c" break; case 661: if (!yytrial) #line 1667 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10423 "asmparse.cpp.tab.c" +#line 11564 "asmparse.cpp.tab.c" break; case 662: if (!yytrial) #line 1668 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10429 "asmparse.cpp.tab.c" +#line 11570 "asmparse.cpp.tab.c" break; case 663: if (!yytrial) #line 1669 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10435 "asmparse.cpp.tab.c" +#line 11576 "asmparse.cpp.tab.c" break; case 664: if (!yytrial) #line 1670 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10441 "asmparse.cpp.tab.c" +#line 11582 "asmparse.cpp.tab.c" break; case 665: if (!yytrial) #line 1671 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10447 "asmparse.cpp.tab.c" +#line 11588 "asmparse.cpp.tab.c" +break; +case 666: + if (!yytrial) +#line 1672 "asmparse.y" +{ yyval.int32 = VT_CARRAY; } +#line 11594 "asmparse.cpp.tab.c" +break; +case 667: + if (!yytrial) +#line 1673 "asmparse.y" +{ yyval.int32 = VT_USERDEFINED; } +#line 11600 "asmparse.cpp.tab.c" +break; +case 668: + if (!yytrial) +#line 1674 "asmparse.y" +{ yyval.int32 = VT_RECORD; } +#line 11606 "asmparse.cpp.tab.c" +break; +case 669: + if (!yytrial) +#line 1675 "asmparse.y" +{ yyval.int32 = VT_FILETIME; } +#line 11612 "asmparse.cpp.tab.c" +break; +case 670: + if (!yytrial) +#line 1676 "asmparse.y" +{ yyval.int32 = VT_BLOB; } +#line 11618 "asmparse.cpp.tab.c" +break; +case 671: + if (!yytrial) +#line 1677 "asmparse.y" +{ yyval.int32 = VT_STREAM; } +#line 11624 "asmparse.cpp.tab.c" +break; +case 672: + if (!yytrial) +#line 1678 "asmparse.y" +{ yyval.int32 = VT_STORAGE; } +#line 11630 "asmparse.cpp.tab.c" +break; +case 673: + if (!yytrial) +#line 1679 "asmparse.y" +{ yyval.int32 = VT_STREAMED_OBJECT; } +#line 11636 "asmparse.cpp.tab.c" +break; +case 674: + if (!yytrial) +#line 1680 "asmparse.y" +{ yyval.int32 = VT_STORED_OBJECT; } +#line 11642 "asmparse.cpp.tab.c" +break; +case 675: + if (!yytrial) +#line 1681 "asmparse.y" +{ yyval.int32 = VT_BLOB_OBJECT; } +#line 11648 "asmparse.cpp.tab.c" +break; +case 676: + if (!yytrial) +#line 1682 "asmparse.y" +{ yyval.int32 = VT_CF; } +#line 11654 "asmparse.cpp.tab.c" +break; +case 677: + if (!yytrial) +#line 1683 "asmparse.y" +{ yyval.int32 = VT_CLSID; } +#line 11660 "asmparse.cpp.tab.c" +break; +case 678: + if (!yytrial) +#line 1686 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*yyvsp[-1].float64); + yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } +#line 11668 "asmparse.cpp.tab.c" +break; +case 679: + if (!yytrial) +#line 1689 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } +#line 11675 "asmparse.cpp.tab.c" +break; +case 680: + if (!yytrial) +#line 1691 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 11682 "asmparse.cpp.tab.c" +break; +case 681: + if (!yytrial) +#line 1693 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 11689 "asmparse.cpp.tab.c" +break; +case 682: + if (!yytrial) +#line 1695 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 11696 "asmparse.cpp.tab.c" +break; +case 683: + if (!yytrial) +#line 1697 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 11703 "asmparse.cpp.tab.c" break; -case 666: +case 684: if (!yytrial) -#line 1672 "asmparse.y" -{ yyval.int32 = VT_CARRAY; } -#line 10453 "asmparse.cpp.tab.c" +#line 1699 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 11710 "asmparse.cpp.tab.c" break; -case 667: +case 685: if (!yytrial) -#line 1673 "asmparse.y" -{ yyval.int32 = VT_USERDEFINED; } -#line 10459 "asmparse.cpp.tab.c" +#line 1701 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 11717 "asmparse.cpp.tab.c" break; -case 668: +case 686: if (!yytrial) -#line 1674 "asmparse.y" -{ yyval.int32 = VT_RECORD; } -#line 10465 "asmparse.cpp.tab.c" +#line 1703 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 11724 "asmparse.cpp.tab.c" break; -case 669: +case 687: if (!yytrial) -#line 1675 "asmparse.y" -{ yyval.int32 = VT_FILETIME; } -#line 10471 "asmparse.cpp.tab.c" +#line 1705 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 11731 "asmparse.cpp.tab.c" break; -case 670: +case 688: if (!yytrial) -#line 1676 "asmparse.y" -{ yyval.int32 = VT_BLOB; } -#line 10477 "asmparse.cpp.tab.c" +#line 1707 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 11738 "asmparse.cpp.tab.c" break; -case 671: +case 689: if (!yytrial) -#line 1677 "asmparse.y" -{ yyval.int32 = VT_STREAM; } -#line 10483 "asmparse.cpp.tab.c" +#line 1709 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 11745 "asmparse.cpp.tab.c" break; -case 672: +case 690: if (!yytrial) -#line 1678 "asmparse.y" -{ yyval.int32 = VT_STORAGE; } -#line 10489 "asmparse.cpp.tab.c" +#line 1711 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } +#line 11752 "asmparse.cpp.tab.c" break; -case 673: +case 691: if (!yytrial) -#line 1679 "asmparse.y" -{ yyval.int32 = VT_STREAMED_OBJECT; } -#line 10495 "asmparse.cpp.tab.c" +#line 1713 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yyvsp[-1].int32); } +#line 11759 "asmparse.cpp.tab.c" break; -case 674: +case 692: if (!yytrial) -#line 1680 "asmparse.y" -{ yyval.int32 = VT_STORED_OBJECT; } -#line 10501 "asmparse.cpp.tab.c" +#line 1715 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 11766 "asmparse.cpp.tab.c" break; -case 675: +case 693: if (!yytrial) -#line 1681 "asmparse.y" -{ yyval.int32 = VT_BLOB_OBJECT; } -#line 10507 "asmparse.cpp.tab.c" +#line 1717 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yyvsp[-1].int32); } +#line 11773 "asmparse.cpp.tab.c" break; -case 676: +case 694: if (!yytrial) -#line 1682 "asmparse.y" -{ yyval.int32 = VT_CF; } -#line 10513 "asmparse.cpp.tab.c" +#line 1719 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->appendInt16(yyvsp[-1].int32); } +#line 11780 "asmparse.cpp.tab.c" break; -case 677: +case 695: if (!yytrial) -#line 1683 "asmparse.y" -{ yyval.int32 = VT_CLSID; } -#line 10519 "asmparse.cpp.tab.c" +#line 1721 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yyvsp[-1].int32);} +#line 11787 "asmparse.cpp.tab.c" break; -case 678: +case 696: if (!yytrial) -#line 1687 "asmparse.y" +#line 1726 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10530 "asmparse.cpp.tab.c" +#line 11798 "asmparse.cpp.tab.c" break; -case 679: +case 697: if (!yytrial) -#line 1693 "asmparse.y" +#line 1732 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10536 "asmparse.cpp.tab.c" +#line 11804 "asmparse.cpp.tab.c" break; -case 680: +case 698: if (!yytrial) -#line 1694 "asmparse.y" +#line 1733 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10542 "asmparse.cpp.tab.c" +#line 11810 "asmparse.cpp.tab.c" break; -case 681: +case 699: if (!yytrial) -#line 1695 "asmparse.y" +#line 1734 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10548 "asmparse.cpp.tab.c" +#line 11816 "asmparse.cpp.tab.c" break; -case 682: +case 700: + if (!yytrial) +#line 1735 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } +#line 11822 "asmparse.cpp.tab.c" +break; +case 701: if (!yytrial) -#line 1696 "asmparse.y" +#line 1736 "asmparse.y" { yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } -#line 10554 "asmparse.cpp.tab.c" +#line 11828 "asmparse.cpp.tab.c" break; -case 683: +case 702: if (!yytrial) -#line 1697 "asmparse.y" +#line 1737 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10560 "asmparse.cpp.tab.c" +#line 11834 "asmparse.cpp.tab.c" break; -case 684: +case 703: if (!yytrial) -#line 1698 "asmparse.y" +#line 1738 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10566 "asmparse.cpp.tab.c" +#line 11840 "asmparse.cpp.tab.c" break; -case 685: +case 704: if (!yytrial) -#line 1699 "asmparse.y" +#line 1739 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10572 "asmparse.cpp.tab.c" +#line 11846 "asmparse.cpp.tab.c" break; -case 686: +case 705: if (!yytrial) -#line 1700 "asmparse.y" +#line 1740 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10578 "asmparse.cpp.tab.c" +#line 11852 "asmparse.cpp.tab.c" break; -case 687: +case 706: if (!yytrial) -#line 1701 "asmparse.y" +#line 1741 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10584 "asmparse.cpp.tab.c" +#line 11858 "asmparse.cpp.tab.c" break; -case 688: +case 707: if (!yytrial) -#line 1702 "asmparse.y" +#line 1742 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10591 "asmparse.cpp.tab.c" +#line 11865 "asmparse.cpp.tab.c" break; -case 689: +case 708: if (!yytrial) -#line 1704 "asmparse.y" +#line 1744 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10598 "asmparse.cpp.tab.c" +#line 11872 "asmparse.cpp.tab.c" break; -case 690: +case 709: if (!yytrial) -#line 1707 "asmparse.y" +#line 1747 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10609 "asmparse.cpp.tab.c" +#line 11883 "asmparse.cpp.tab.c" break; -case 691: +case 710: if (!yytrial) -#line 1713 "asmparse.y" +#line 1753 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10617,49 +11891,49 @@ case 691: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10621 "asmparse.cpp.tab.c" +#line 11895 "asmparse.cpp.tab.c" break; -case 692: +case 711: if (!yytrial) -#line 1720 "asmparse.y" +#line 1760 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10629 "asmparse.cpp.tab.c" +#line 11903 "asmparse.cpp.tab.c" break; -case 693: +case 712: if (!yytrial) -#line 1723 "asmparse.y" +#line 1763 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10640 "asmparse.cpp.tab.c" +#line 11914 "asmparse.cpp.tab.c" break; -case 694: +case 713: if (!yytrial) -#line 1729 "asmparse.y" +#line 1769 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10648 "asmparse.cpp.tab.c" +#line 11922 "asmparse.cpp.tab.c" break; -case 695: +case 714: if (!yytrial) -#line 1732 "asmparse.y" +#line 1772 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10659 "asmparse.cpp.tab.c" +#line 11933 "asmparse.cpp.tab.c" break; -case 696: +case 715: if (!yytrial) -#line 1738 "asmparse.y" +#line 1778 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10675,11 +11949,11 @@ case 696: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10679 "asmparse.cpp.tab.c" +#line 11953 "asmparse.cpp.tab.c" break; -case 697: +case 716: if (!yytrial) -#line 1753 "asmparse.y" +#line 1793 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10695,11 +11969,11 @@ case 697: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10699 "asmparse.cpp.tab.c" +#line 11973 "asmparse.cpp.tab.c" break; -case 698: +case 717: if (!yytrial) -#line 1768 "asmparse.y" +#line 1808 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10715,11 +11989,11 @@ case 698: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10719 "asmparse.cpp.tab.c" +#line 11993 "asmparse.cpp.tab.c" break; -case 699: +case 718: if (!yytrial) -#line 1783 "asmparse.y" +#line 1823 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10735,924 +12009,924 @@ case 699: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10739 "asmparse.cpp.tab.c" +#line 12013 "asmparse.cpp.tab.c" break; -case 700: +case 719: if (!yytrial) -#line 1798 "asmparse.y" +#line 1838 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10745 "asmparse.cpp.tab.c" +#line 12019 "asmparse.cpp.tab.c" break; -case 701: +case 720: if (!yytrial) -#line 1799 "asmparse.y" +#line 1839 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10751 "asmparse.cpp.tab.c" +#line 12025 "asmparse.cpp.tab.c" break; -case 702: +case 721: if (!yytrial) -#line 1800 "asmparse.y" +#line 1840 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10757 "asmparse.cpp.tab.c" +#line 12031 "asmparse.cpp.tab.c" break; -case 703: +case 722: if (!yytrial) -#line 1801 "asmparse.y" +#line 1841 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10763 "asmparse.cpp.tab.c" +#line 12037 "asmparse.cpp.tab.c" break; -case 704: +case 723: if (!yytrial) -#line 1802 "asmparse.y" +#line 1842 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10769 "asmparse.cpp.tab.c" +#line 12043 "asmparse.cpp.tab.c" break; -case 705: +case 724: if (!yytrial) -#line 1803 "asmparse.y" +#line 1843 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10775 "asmparse.cpp.tab.c" +#line 12049 "asmparse.cpp.tab.c" break; -case 706: +case 725: if (!yytrial) -#line 1804 "asmparse.y" +#line 1844 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10781 "asmparse.cpp.tab.c" +#line 12055 "asmparse.cpp.tab.c" break; -case 707: +case 726: if (!yytrial) -#line 1807 "asmparse.y" +#line 1847 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10787 "asmparse.cpp.tab.c" +#line 12061 "asmparse.cpp.tab.c" break; -case 708: +case 727: if (!yytrial) -#line 1808 "asmparse.y" +#line 1848 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10793 "asmparse.cpp.tab.c" +#line 12067 "asmparse.cpp.tab.c" break; -case 709: +case 728: if (!yytrial) -#line 1809 "asmparse.y" +#line 1849 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10799 "asmparse.cpp.tab.c" +#line 12073 "asmparse.cpp.tab.c" break; -case 710: +case 729: if (!yytrial) -#line 1810 "asmparse.y" +#line 1850 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10805 "asmparse.cpp.tab.c" +#line 12079 "asmparse.cpp.tab.c" break; -case 711: +case 730: if (!yytrial) -#line 1811 "asmparse.y" +#line 1851 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10811 "asmparse.cpp.tab.c" +#line 12085 "asmparse.cpp.tab.c" break; -case 712: +case 731: if (!yytrial) -#line 1812 "asmparse.y" +#line 1852 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10817 "asmparse.cpp.tab.c" +#line 12091 "asmparse.cpp.tab.c" break; -case 713: +case 732: if (!yytrial) -#line 1813 "asmparse.y" +#line 1853 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10823 "asmparse.cpp.tab.c" +#line 12097 "asmparse.cpp.tab.c" break; -case 714: +case 733: if (!yytrial) -#line 1814 "asmparse.y" +#line 1854 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10829 "asmparse.cpp.tab.c" +#line 12103 "asmparse.cpp.tab.c" break; -case 715: +case 734: if (!yytrial) -#line 1815 "asmparse.y" +#line 1855 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10835 "asmparse.cpp.tab.c" +#line 12109 "asmparse.cpp.tab.c" break; -case 716: +case 735: if (!yytrial) -#line 1816 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10841 "asmparse.cpp.tab.c" +#line 12115 "asmparse.cpp.tab.c" break; -case 717: +case 736: if (!yytrial) -#line 1817 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10847 "asmparse.cpp.tab.c" +#line 12121 "asmparse.cpp.tab.c" break; -case 718: +case 737: if (!yytrial) -#line 1818 "asmparse.y" +#line 1858 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10853 "asmparse.cpp.tab.c" +#line 12127 "asmparse.cpp.tab.c" break; -case 719: +case 738: if (!yytrial) -#line 1819 "asmparse.y" +#line 1859 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10859 "asmparse.cpp.tab.c" +#line 12133 "asmparse.cpp.tab.c" break; -case 720: +case 739: if (!yytrial) -#line 1820 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10865 "asmparse.cpp.tab.c" +#line 12139 "asmparse.cpp.tab.c" break; -case 721: +case 740: if (!yytrial) -#line 1821 "asmparse.y" +#line 1861 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10871 "asmparse.cpp.tab.c" +#line 12145 "asmparse.cpp.tab.c" break; -case 722: +case 741: if (!yytrial) -#line 1822 "asmparse.y" +#line 1862 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10877 "asmparse.cpp.tab.c" +#line 12151 "asmparse.cpp.tab.c" break; -case 723: +case 742: if (!yytrial) -#line 1823 "asmparse.y" +#line 1863 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10883 "asmparse.cpp.tab.c" +#line 12157 "asmparse.cpp.tab.c" break; -case 724: +case 743: if (!yytrial) -#line 1824 "asmparse.y" +#line 1864 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10889 "asmparse.cpp.tab.c" +#line 12163 "asmparse.cpp.tab.c" break; -case 725: +case 744: if (!yytrial) -#line 1827 "asmparse.y" +#line 1867 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10895 "asmparse.cpp.tab.c" +#line 12169 "asmparse.cpp.tab.c" break; -case 726: +case 745: if (!yytrial) -#line 1828 "asmparse.y" +#line 1868 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10901 "asmparse.cpp.tab.c" +#line 12175 "asmparse.cpp.tab.c" break; -case 727: +case 746: if (!yytrial) -#line 1831 "asmparse.y" +#line 1871 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10907 "asmparse.cpp.tab.c" +#line 12181 "asmparse.cpp.tab.c" break; -case 728: +case 747: if (!yytrial) -#line 1832 "asmparse.y" +#line 1872 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10913 "asmparse.cpp.tab.c" +#line 12187 "asmparse.cpp.tab.c" break; -case 729: +case 748: if (!yytrial) -#line 1833 "asmparse.y" +#line 1873 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10919 "asmparse.cpp.tab.c" +#line 12193 "asmparse.cpp.tab.c" break; -case 730: +case 749: if (!yytrial) -#line 1834 "asmparse.y" +#line 1874 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10927 "asmparse.cpp.tab.c" +#line 12201 "asmparse.cpp.tab.c" break; -case 731: +case 750: if (!yytrial) -#line 1837 "asmparse.y" +#line 1877 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10933 "asmparse.cpp.tab.c" +#line 12207 "asmparse.cpp.tab.c" break; -case 732: +case 751: if (!yytrial) -#line 1842 "asmparse.y" +#line 1882 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10939 "asmparse.cpp.tab.c" +#line 12213 "asmparse.cpp.tab.c" break; -case 733: +case 752: if (!yytrial) -#line 1844 "asmparse.y" +#line 1884 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10945 "asmparse.cpp.tab.c" +#line 12219 "asmparse.cpp.tab.c" break; -case 734: +case 753: if (!yytrial) -#line 1845 "asmparse.y" +#line 1885 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10951 "asmparse.cpp.tab.c" +#line 12225 "asmparse.cpp.tab.c" break; -case 735: +case 754: if (!yytrial) -#line 1846 "asmparse.y" +#line 1886 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10957 "asmparse.cpp.tab.c" +#line 12231 "asmparse.cpp.tab.c" break; -case 736: +case 755: if (!yytrial) -#line 1848 "asmparse.y" +#line 1888 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10963 "asmparse.cpp.tab.c" +#line 12237 "asmparse.cpp.tab.c" break; -case 737: +case 756: if (!yytrial) -#line 1850 "asmparse.y" +#line 1890 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10974 "asmparse.cpp.tab.c" +#line 12248 "asmparse.cpp.tab.c" break; -case 738: +case 757: if (!yytrial) -#line 1858 "asmparse.y" +#line 1898 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10980 "asmparse.cpp.tab.c" +#line 12254 "asmparse.cpp.tab.c" break; -case 739: +case 758: if (!yytrial) -#line 1859 "asmparse.y" +#line 1899 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10986 "asmparse.cpp.tab.c" +#line 12260 "asmparse.cpp.tab.c" break; -case 740: +case 759: if (!yytrial) -#line 1860 "asmparse.y" +#line 1900 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10992 "asmparse.cpp.tab.c" +#line 12266 "asmparse.cpp.tab.c" break; -case 741: +case 760: if (!yytrial) -#line 1864 "asmparse.y" +#line 1904 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10999 "asmparse.cpp.tab.c" +#line 12273 "asmparse.cpp.tab.c" break; -case 742: +case 761: if (!yytrial) -#line 1867 "asmparse.y" +#line 1907 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11006 "asmparse.cpp.tab.c" +#line 12280 "asmparse.cpp.tab.c" break; -case 743: +case 762: if (!yytrial) -#line 1871 "asmparse.y" +#line 1911 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11012 "asmparse.cpp.tab.c" +#line 12286 "asmparse.cpp.tab.c" break; -case 744: +case 763: if (!yytrial) -#line 1873 "asmparse.y" +#line 1913 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11018 "asmparse.cpp.tab.c" +#line 12292 "asmparse.cpp.tab.c" break; -case 745: +case 764: if (!yytrial) -#line 1876 "asmparse.y" +#line 1916 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 11024 "asmparse.cpp.tab.c" +#line 12298 "asmparse.cpp.tab.c" break; -case 746: +case 765: if (!yytrial) -#line 1877 "asmparse.y" +#line 1917 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 11030 "asmparse.cpp.tab.c" +#line 12304 "asmparse.cpp.tab.c" break; -case 747: +case 766: if (!yytrial) -#line 1880 "asmparse.y" +#line 1920 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 11036 "asmparse.cpp.tab.c" +#line 12310 "asmparse.cpp.tab.c" break; -case 748: +case 767: if (!yytrial) -#line 1883 "asmparse.y" +#line 1923 "asmparse.y" { yyval.int32 = 1; } -#line 11042 "asmparse.cpp.tab.c" +#line 12316 "asmparse.cpp.tab.c" break; -case 749: +case 768: if (!yytrial) -#line 1884 "asmparse.y" +#line 1924 "asmparse.y" { yyval.int32 = 0; } -#line 11048 "asmparse.cpp.tab.c" +#line 12322 "asmparse.cpp.tab.c" break; -case 750: +case 769: if (!yytrial) -#line 1887 "asmparse.y" +#line 1927 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 11056 "asmparse.cpp.tab.c" +#line 12330 "asmparse.cpp.tab.c" break; -case 751: +case 770: if (!yytrial) -#line 1890 "asmparse.y" +#line 1930 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11064 "asmparse.cpp.tab.c" +#line 12338 "asmparse.cpp.tab.c" break; -case 752: +case 771: if (!yytrial) -#line 1893 "asmparse.y" +#line 1933 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11072 "asmparse.cpp.tab.c" +#line 12346 "asmparse.cpp.tab.c" break; -case 753: +case 772: if (!yytrial) -#line 1896 "asmparse.y" +#line 1936 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 11081 "asmparse.cpp.tab.c" +#line 12355 "asmparse.cpp.tab.c" break; -case 754: +case 773: if (!yytrial) -#line 1900 "asmparse.y" +#line 1940 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11092 "asmparse.cpp.tab.c" +#line 12366 "asmparse.cpp.tab.c" break; -case 755: +case 774: if (!yytrial) -#line 1906 "asmparse.y" +#line 1946 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11103 "asmparse.cpp.tab.c" +#line 12377 "asmparse.cpp.tab.c" break; -case 756: +case 775: if (!yytrial) -#line 1912 "asmparse.y" +#line 1952 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11114 "asmparse.cpp.tab.c" +#line 12388 "asmparse.cpp.tab.c" break; -case 757: +case 776: if (!yytrial) -#line 1918 "asmparse.y" +#line 1958 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11125 "asmparse.cpp.tab.c" +#line 12399 "asmparse.cpp.tab.c" break; -case 758: +case 777: if (!yytrial) -#line 1926 "asmparse.y" +#line 1966 "asmparse.y" { yyval.secAct = dclRequest; } -#line 11131 "asmparse.cpp.tab.c" +#line 12405 "asmparse.cpp.tab.c" break; -case 759: +case 778: if (!yytrial) -#line 1927 "asmparse.y" +#line 1967 "asmparse.y" { yyval.secAct = dclDemand; } -#line 11137 "asmparse.cpp.tab.c" +#line 12411 "asmparse.cpp.tab.c" break; -case 760: +case 779: if (!yytrial) -#line 1928 "asmparse.y" +#line 1968 "asmparse.y" { yyval.secAct = dclAssert; } -#line 11143 "asmparse.cpp.tab.c" +#line 12417 "asmparse.cpp.tab.c" break; -case 761: +case 780: if (!yytrial) -#line 1929 "asmparse.y" +#line 1969 "asmparse.y" { yyval.secAct = dclDeny; } -#line 11149 "asmparse.cpp.tab.c" +#line 12423 "asmparse.cpp.tab.c" break; -case 762: +case 781: if (!yytrial) -#line 1930 "asmparse.y" +#line 1970 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 11155 "asmparse.cpp.tab.c" +#line 12429 "asmparse.cpp.tab.c" break; -case 763: +case 782: if (!yytrial) -#line 1931 "asmparse.y" +#line 1971 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 11161 "asmparse.cpp.tab.c" +#line 12435 "asmparse.cpp.tab.c" break; -case 764: +case 783: if (!yytrial) -#line 1932 "asmparse.y" +#line 1972 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 11167 "asmparse.cpp.tab.c" +#line 12441 "asmparse.cpp.tab.c" break; -case 765: +case 784: if (!yytrial) -#line 1933 "asmparse.y" +#line 1973 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 11173 "asmparse.cpp.tab.c" +#line 12447 "asmparse.cpp.tab.c" break; -case 766: +case 785: if (!yytrial) -#line 1934 "asmparse.y" +#line 1974 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 11179 "asmparse.cpp.tab.c" +#line 12453 "asmparse.cpp.tab.c" break; -case 767: +case 786: if (!yytrial) -#line 1935 "asmparse.y" +#line 1975 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 11185 "asmparse.cpp.tab.c" +#line 12459 "asmparse.cpp.tab.c" break; -case 768: +case 787: if (!yytrial) -#line 1936 "asmparse.y" +#line 1976 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 11191 "asmparse.cpp.tab.c" +#line 12465 "asmparse.cpp.tab.c" break; -case 769: +case 788: if (!yytrial) -#line 1937 "asmparse.y" +#line 1977 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 11197 "asmparse.cpp.tab.c" +#line 12471 "asmparse.cpp.tab.c" break; -case 770: +case 789: if (!yytrial) -#line 1938 "asmparse.y" +#line 1978 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 11203 "asmparse.cpp.tab.c" +#line 12477 "asmparse.cpp.tab.c" break; -case 771: +case 790: if (!yytrial) -#line 1939 "asmparse.y" +#line 1979 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11209 "asmparse.cpp.tab.c" +#line 12483 "asmparse.cpp.tab.c" break; -case 772: +case 791: if (!yytrial) -#line 1940 "asmparse.y" +#line 1980 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11215 "asmparse.cpp.tab.c" +#line 12489 "asmparse.cpp.tab.c" break; -case 773: +case 792: if (!yytrial) -#line 1944 "asmparse.y" +#line 1984 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11221 "asmparse.cpp.tab.c" +#line 12495 "asmparse.cpp.tab.c" break; -case 774: +case 793: if (!yytrial) -#line 1945 "asmparse.y" +#line 1985 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11227 "asmparse.cpp.tab.c" +#line 12501 "asmparse.cpp.tab.c" break; -case 775: +case 794: if (!yytrial) -#line 1948 "asmparse.y" +#line 1988 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11235 "asmparse.cpp.tab.c" +#line 12509 "asmparse.cpp.tab.c" break; -case 776: +case 795: if (!yytrial) -#line 1951 "asmparse.y" +#line 1991 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11242 "asmparse.cpp.tab.c" +#line 12516 "asmparse.cpp.tab.c" break; -case 777: +case 796: if (!yytrial) -#line 1953 "asmparse.y" +#line 1993 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11250 "asmparse.cpp.tab.c" +#line 12524 "asmparse.cpp.tab.c" break; -case 778: +case 797: if (!yytrial) -#line 1956 "asmparse.y" +#line 1996 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11257 "asmparse.cpp.tab.c" +#line 12531 "asmparse.cpp.tab.c" break; -case 779: +case 798: if (!yytrial) -#line 1959 "asmparse.y" +#line 1999 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11265 "asmparse.cpp.tab.c" +#line 12539 "asmparse.cpp.tab.c" break; -case 780: +case 799: if (!yytrial) -#line 1963 "asmparse.y" +#line 2003 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11272 "asmparse.cpp.tab.c" +#line 12546 "asmparse.cpp.tab.c" break; -case 781: +case 800: if (!yytrial) -#line 1966 "asmparse.y" +#line 2006 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11280 "asmparse.cpp.tab.c" +#line 12554 "asmparse.cpp.tab.c" break; -case 782: +case 801: if (!yytrial) -#line 1970 "asmparse.y" +#line 2010 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11287 "asmparse.cpp.tab.c" +#line 12561 "asmparse.cpp.tab.c" break; -case 783: +case 802: if (!yytrial) -#line 1973 "asmparse.y" +#line 2013 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11295 "asmparse.cpp.tab.c" +#line 12569 "asmparse.cpp.tab.c" break; -case 784: +case 803: if (!yytrial) -#line 1977 "asmparse.y" +#line 2017 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11302 "asmparse.cpp.tab.c" +#line 12576 "asmparse.cpp.tab.c" break; -case 785: +case 804: if (!yytrial) -#line 1979 "asmparse.y" +#line 2019 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11310 "asmparse.cpp.tab.c" +#line 12584 "asmparse.cpp.tab.c" break; -case 786: +case 805: if (!yytrial) -#line 1986 "asmparse.y" +#line 2026 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11316 "asmparse.cpp.tab.c" +#line 12590 "asmparse.cpp.tab.c" break; -case 787: +case 806: if (!yytrial) -#line 1987 "asmparse.y" +#line 2027 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11322 "asmparse.cpp.tab.c" +#line 12596 "asmparse.cpp.tab.c" break; -case 788: +case 807: if (!yytrial) -#line 1990 "asmparse.y" +#line 2030 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11328 "asmparse.cpp.tab.c" +#line 12602 "asmparse.cpp.tab.c" break; -case 789: +case 808: if (!yytrial) -#line 1991 "asmparse.y" +#line 2031 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11334 "asmparse.cpp.tab.c" +#line 12608 "asmparse.cpp.tab.c" break; -case 790: +case 809: if (!yytrial) -#line 1994 "asmparse.y" +#line 2034 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11340 "asmparse.cpp.tab.c" +#line 12614 "asmparse.cpp.tab.c" break; -case 791: +case 810: if (!yytrial) -#line 1995 "asmparse.y" +#line 2035 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11346 "asmparse.cpp.tab.c" +#line 12620 "asmparse.cpp.tab.c" break; -case 792: +case 811: if (!yytrial) -#line 1998 "asmparse.y" +#line 2038 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11352 "asmparse.cpp.tab.c" +#line 12626 "asmparse.cpp.tab.c" break; -case 793: +case 812: if (!yytrial) -#line 2001 "asmparse.y" +#line 2041 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11358 "asmparse.cpp.tab.c" +#line 12632 "asmparse.cpp.tab.c" break; -case 794: +case 813: if (!yytrial) -#line 2004 "asmparse.y" +#line 2044 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11364 "asmparse.cpp.tab.c" +#line 12638 "asmparse.cpp.tab.c" break; -case 795: +case 814: if (!yytrial) -#line 2005 "asmparse.y" +#line 2045 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11370 "asmparse.cpp.tab.c" +#line 12644 "asmparse.cpp.tab.c" break; -case 796: +case 815: if (!yytrial) -#line 2006 "asmparse.y" +#line 2046 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11376 "asmparse.cpp.tab.c" +#line 12650 "asmparse.cpp.tab.c" break; -case 797: +case 816: if (!yytrial) -#line 2007 "asmparse.y" +#line 2047 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11382 "asmparse.cpp.tab.c" +#line 12656 "asmparse.cpp.tab.c" break; -case 798: +case 817: if (!yytrial) -#line 2008 "asmparse.y" +#line 2048 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11388 "asmparse.cpp.tab.c" +#line 12662 "asmparse.cpp.tab.c" break; -case 799: +case 818: if (!yytrial) -#line 2009 "asmparse.y" +#line 2049 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11394 "asmparse.cpp.tab.c" +#line 12668 "asmparse.cpp.tab.c" break; -case 800: +case 819: if (!yytrial) -#line 2010 "asmparse.y" +#line 2050 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11400 "asmparse.cpp.tab.c" +#line 12674 "asmparse.cpp.tab.c" break; -case 801: +case 820: if (!yytrial) -#line 2011 "asmparse.y" +#line 2051 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11406 "asmparse.cpp.tab.c" +#line 12680 "asmparse.cpp.tab.c" break; -case 802: +case 821: if (!yytrial) -#line 2012 "asmparse.y" +#line 2052 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11412 "asmparse.cpp.tab.c" +#line 12686 "asmparse.cpp.tab.c" break; -case 803: +case 822: if (!yytrial) -#line 2013 "asmparse.y" +#line 2053 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11418 "asmparse.cpp.tab.c" +#line 12692 "asmparse.cpp.tab.c" break; -case 806: +case 825: if (!yytrial) -#line 2020 "asmparse.y" +#line 2060 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11424 "asmparse.cpp.tab.c" +#line 12698 "asmparse.cpp.tab.c" break; -case 809: +case 828: if (!yytrial) -#line 2025 "asmparse.y" +#line 2065 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11430 "asmparse.cpp.tab.c" +#line 12704 "asmparse.cpp.tab.c" break; -case 810: +case 829: if (!yytrial) -#line 2026 "asmparse.y" +#line 2066 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11436 "asmparse.cpp.tab.c" +#line 12710 "asmparse.cpp.tab.c" break; -case 811: +case 830: if (!yytrial) -#line 2029 "asmparse.y" +#line 2069 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11442 "asmparse.cpp.tab.c" +#line 12716 "asmparse.cpp.tab.c" break; -case 812: +case 831: if (!yytrial) -#line 2031 "asmparse.y" +#line 2071 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11448 "asmparse.cpp.tab.c" +#line 12722 "asmparse.cpp.tab.c" break; -case 813: +case 832: if (!yytrial) -#line 2032 "asmparse.y" +#line 2072 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11454 "asmparse.cpp.tab.c" +#line 12728 "asmparse.cpp.tab.c" break; -case 814: +case 833: if (!yytrial) -#line 2033 "asmparse.y" +#line 2073 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11460 "asmparse.cpp.tab.c" +#line 12734 "asmparse.cpp.tab.c" break; -case 817: +case 836: if (!yytrial) -#line 2038 "asmparse.y" +#line 2078 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11466 "asmparse.cpp.tab.c" +#line 12740 "asmparse.cpp.tab.c" break; -case 818: +case 837: if (!yytrial) -#line 2041 "asmparse.y" +#line 2081 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11472 "asmparse.cpp.tab.c" +#line 12746 "asmparse.cpp.tab.c" break; -case 819: +case 838: if (!yytrial) -#line 2044 "asmparse.y" +#line 2084 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11478 "asmparse.cpp.tab.c" +#line 12752 "asmparse.cpp.tab.c" break; -case 820: +case 839: if (!yytrial) -#line 2048 "asmparse.y" +#line 2088 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11484 "asmparse.cpp.tab.c" +#line 12758 "asmparse.cpp.tab.c" break; -case 821: +case 840: if (!yytrial) -#line 2050 "asmparse.y" +#line 2090 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11490 "asmparse.cpp.tab.c" +#line 12764 "asmparse.cpp.tab.c" break; -case 824: +case 843: if (!yytrial) -#line 2057 "asmparse.y" +#line 2097 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11496 "asmparse.cpp.tab.c" +#line 12770 "asmparse.cpp.tab.c" break; -case 826: +case 845: if (!yytrial) -#line 2059 "asmparse.y" +#line 2099 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11502 "asmparse.cpp.tab.c" +#line 12776 "asmparse.cpp.tab.c" break; -case 827: +case 846: if (!yytrial) -#line 2060 "asmparse.y" +#line 2100 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11508 "asmparse.cpp.tab.c" +#line 12782 "asmparse.cpp.tab.c" break; -case 828: +case 847: if (!yytrial) -#line 2063 "asmparse.y" +#line 2103 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11514 "asmparse.cpp.tab.c" +#line 12788 "asmparse.cpp.tab.c" break; -case 829: +case 848: if (!yytrial) -#line 2066 "asmparse.y" +#line 2106 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11520 "asmparse.cpp.tab.c" +#line 12794 "asmparse.cpp.tab.c" break; -case 830: +case 849: if (!yytrial) -#line 2069 "asmparse.y" +#line 2109 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11526 "asmparse.cpp.tab.c" +#line 12800 "asmparse.cpp.tab.c" break; -case 831: +case 850: if (!yytrial) -#line 2070 "asmparse.y" +#line 2110 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11532 "asmparse.cpp.tab.c" +#line 12806 "asmparse.cpp.tab.c" break; -case 832: +case 851: if (!yytrial) -#line 2071 "asmparse.y" +#line 2111 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11538 "asmparse.cpp.tab.c" +#line 12812 "asmparse.cpp.tab.c" break; -case 833: +case 852: if (!yytrial) -#line 2072 "asmparse.y" +#line 2112 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11544 "asmparse.cpp.tab.c" +#line 12818 "asmparse.cpp.tab.c" break; -case 834: +case 853: if (!yytrial) -#line 2073 "asmparse.y" +#line 2113 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11550 "asmparse.cpp.tab.c" +#line 12824 "asmparse.cpp.tab.c" break; -case 835: +case 854: if (!yytrial) -#line 2074 "asmparse.y" +#line 2114 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11556 "asmparse.cpp.tab.c" +#line 12830 "asmparse.cpp.tab.c" break; -case 836: +case 855: if (!yytrial) -#line 2075 "asmparse.y" +#line 2115 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11562 "asmparse.cpp.tab.c" +#line 12836 "asmparse.cpp.tab.c" break; -case 837: +case 856: if (!yytrial) -#line 2076 "asmparse.y" +#line 2116 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11568 "asmparse.cpp.tab.c" +#line 12842 "asmparse.cpp.tab.c" break; -case 838: +case 857: if (!yytrial) -#line 2077 "asmparse.y" +#line 2117 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11574 "asmparse.cpp.tab.c" +#line 12848 "asmparse.cpp.tab.c" break; -case 839: +case 858: if (!yytrial) -#line 2078 "asmparse.y" +#line 2118 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11580 "asmparse.cpp.tab.c" +#line 12854 "asmparse.cpp.tab.c" break; -case 842: +case 861: if (!yytrial) -#line 2085 "asmparse.y" +#line 2125 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11586 "asmparse.cpp.tab.c" +#line 12860 "asmparse.cpp.tab.c" break; -case 843: +case 862: if (!yytrial) -#line 2086 "asmparse.y" +#line 2126 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11592 "asmparse.cpp.tab.c" +#line 12866 "asmparse.cpp.tab.c" break; -case 844: +case 863: if (!yytrial) -#line 2087 "asmparse.y" +#line 2127 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11598 "asmparse.cpp.tab.c" +#line 12872 "asmparse.cpp.tab.c" break; -case 845: +case 864: if (!yytrial) -#line 2088 "asmparse.y" +#line 2128 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11605 "asmparse.cpp.tab.c" +#line 12879 "asmparse.cpp.tab.c" break; -case 846: +case 865: if (!yytrial) -#line 2090 "asmparse.y" +#line 2130 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11612 "asmparse.cpp.tab.c" +#line 12886 "asmparse.cpp.tab.c" break; -case 849: +case 868: if (!yytrial) -#line 2096 "asmparse.y" +#line 2136 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11618 "asmparse.cpp.tab.c" +#line 12892 "asmparse.cpp.tab.c" break; -case 850: +case 869: if (!yytrial) -#line 2098 "asmparse.y" +#line 2138 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11624 "asmparse.cpp.tab.c" +#line 12898 "asmparse.cpp.tab.c" break; -case 851: +case 870: if (!yytrial) -#line 2101 "asmparse.y" +#line 2141 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11630 "asmparse.cpp.tab.c" +#line 12904 "asmparse.cpp.tab.c" break; -case 852: +case 871: if (!yytrial) -#line 2102 "asmparse.y" +#line 2142 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11636 "asmparse.cpp.tab.c" +#line 12910 "asmparse.cpp.tab.c" break; -case 853: +case 872: if (!yytrial) -#line 2103 "asmparse.y" +#line 2143 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11642 "asmparse.cpp.tab.c" +#line 12916 "asmparse.cpp.tab.c" break; -case 856: +case 875: if (!yytrial) -#line 2110 "asmparse.y" +#line 2150 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11648 "asmparse.cpp.tab.c" +#line 12922 "asmparse.cpp.tab.c" break; -case 857: +case 876: if (!yytrial) -#line 2111 "asmparse.y" +#line 2151 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11654 "asmparse.cpp.tab.c" +#line 12928 "asmparse.cpp.tab.c" break; -#line 11656 "asmparse.cpp.tab.c" +#line 12930 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 05884d78ded86..543f578208ca6 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -1680,6 +1680,9 @@ BYTE* skipType(BYTE* ptr) case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; + case ELEMENT_TYPE_CTARG : + ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type parameter + break; case ELEMENT_TYPE_CMOD_REQD : case ELEMENT_TYPE_CMOD_OPT : diff --git a/src/coreclr/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp index 8bc48e6cb5c43..aa08b1b3dc6f2 100644 --- a/src/coreclr/ildasm/dis.cpp +++ b/src/coreclr/ildasm/dis.cpp @@ -1393,7 +1393,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case ShortInlineI: - case ShortInlineTypeI: case ShortInlineVar: { unsigned char ch= pCode[PC]; @@ -1485,7 +1484,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md else szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s A_%d",pszInstrName, v); } break; - case CEE_LDTARG_S: + case CEE_LDCTARG_S: { CorElementType elemType = (CorElementType)(v & 0xFF); int idx = v >> 8; @@ -1514,14 +1513,13 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineI: - case InlineTypeI: case InlineRVA: case InlineTypeVar: { DWORD v = pCode[PC] + (pCode[PC+1] << 8) + (pCode[PC+2] << 16) + (pCode[PC+3] << 24); switch(instr) { - case CEE_LDTARG: + case CEE_LDCTARG: { CorElementType elemType = (CorElementType)(v & 0xFFFF); int idx = v >> 16; @@ -1546,7 +1544,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineI8: - case InlineTypeI8: { __int64 v = (__int64) pCode[PC] + (((__int64) pCode[PC+1]) << 8) + @@ -1573,7 +1570,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case ShortInlineR: - case ShortInlineTypeR: { __int32 v = (__int32) pCode[PC] + (((__int32) pCode[PC+1]) << 8) + @@ -1608,7 +1604,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineR: - case InlineTypeR: { __int64 v = (__int64) pCode[PC] + (((__int64) pCode[PC+1]) << 8) + diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index d2c68a9f1bc43..1406ad708ae96 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -141,6 +141,14 @@ typedef UNALIGNED void const *UVCP_CONSTANT; #define TARGET_MAIN_CLR_DLL_NAME_W MAKE_TARGET_DLLNAME_W(MAIN_CLR_MODULE_NAME_W) #define TARGET_MAIN_CLR_DLL_NAME_A MAKE_TARGET_DLLNAME_A(MAIN_CLR_MODULE_NAME_A) +#ifdef TARGET_64BIT +#define IN_TARGET_64BIT(x) x +#define IN_TARGET_32BIT(x) +#else +#define IN_TARGET_64BIT(x) +#define IN_TARGET_32BIT(x) x +#endif + //***************************************************************************** //***************************************************************************** // @@ -1807,6 +1815,43 @@ FORCEINLINE ULONG CorSigUncompressData( return CorSigUncompressBigData(pData); } +inline ULONG CorSigUncompressConstTypeArgData(PCCOR_SIGNATURE & pData) +{ + ULONG size = 1; + switch (*pData++) + { + case ELEMENT_TYPE_BOOLEAN : + case ELEMENT_TYPE_CHAR : + case ELEMENT_TYPE_I1 : + case ELEMENT_TYPE_U1 : + break; + case ELEMENT_TYPE_I2 : + case ELEMENT_TYPE_U2 : + size = size << 1; + break; + case ELEMENT_TYPE_I4 : + case ELEMENT_TYPE_U4 : + case ELEMENT_TYPE_R4 : + IN_TARGET_32BIT(case ELEMENT_TYPE_U:) + IN_TARGET_32BIT(case ELEMENT_TYPE_I:) + size = size << 2; + break; + case ELEMENT_TYPE_I8 : + case ELEMENT_TYPE_U8 : + case ELEMENT_TYPE_R8 : + IN_TARGET_64BIT(case ELEMENT_TYPE_U:) + IN_TARGET_64BIT(case ELEMENT_TYPE_I:) + size = size << 3; + break; + default: + // _ASSERTE(!"Unsupported Const Type Argument"); + size = 0; + break; + } + pData += size; + return size; +} + #ifdef HOST_WINDOWS inline HRESULT CorSigUncompressData(// return S_OK or E_BADIMAGEFORMAT if the signature is bad PCCOR_SIGNATURE pData, // [IN] compressed data @@ -1989,9 +2034,9 @@ inline ULONG CorSigUncompressToken( // return number of bytes of that compressed inline HRESULT CorSigUncompressToken( PCCOR_SIGNATURE pData, // [IN] compressed data - uint32_t dwLen, // [IN] Remaining length of sigature + uint32_t dwLen, // [IN] Remaining length of signature mdToken * pToken, // [OUT] the expanded *pData - uint32_t * dwTokenLength) // [OUT] The length of the token in the sigature + uint32_t * dwTokenLength) // [OUT] The length of the token in the signature { mdToken tk; mdToken tkType; @@ -2096,7 +2141,7 @@ inline ULONG CorSigUncompressElementType( // Return number of bytes of that co // // Given an uncompressed unsigned integer (iLen), Store it to pDataOut in a compressed format. // Return value is the number of bytes that the integer occupies in the compressed format. -// It is caller's responsibilityt to ensure *pDataOut has at least 4 bytes to write to. +// It is caller's responsibility to ensure *pDataOut has at least 4 bytes to write to. // // Note that this function returns -1 if iLen is too big to be compressed. We currently can // only represent to 0x1FFFFFFF. diff --git a/src/coreclr/inc/corhdr.h b/src/coreclr/inc/corhdr.h index f76bb30380dfa..32a806c0737e7 100644 --- a/src/coreclr/inc/corhdr.h +++ b/src/coreclr/inc/corhdr.h @@ -915,9 +915,10 @@ typedef enum CorElementType ELEMENT_TYPE_CVAR = 0x22, // a class const type variable CVAR ELEMENT_TYPE_MCVAR = 0x23, // a method const type variable MCVAR - ELEMENT_TYPE_CONSTTYPE = 0x24, // CONSTTYPE + ELEMENT_TYPE_CONSTTYPE = 0x24, // const + ELEMENT_TYPE_CTARG = 0x25, // const // Note that this is the max of base type excluding modifiers - ELEMENT_TYPE_MAX = 0x25, // first invalid element type + ELEMENT_TYPE_MAX = 0x26, // first invalid element type ELEMENT_TYPE_MODIFIER = 0x40, diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index 37ea944b019bd..293d6088c99ba 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -85,6 +85,65 @@ static void appendStrNum(CQuickBytes *out, int num) { appendStr(out, buff); } +static void appendStrBlob(CQuickBytes *out, CorElementType type, PCCOR_SIGNATURE ptr, ULONG len) { + CONTRACTL + { + THROWS; + GC_NOTRIGGER; + } + CONTRACTL_END; + ULONG buffSize = len + 42; + char* buff = new char[buffSize]; + switch (type) + { + case ELEMENT_TYPE_BOOLEAN : + sprintf_s(buff, buffSize, "%s", *(BOOLEAN*)ptr == 1 ? "true" : "false"); + goto APPEND; + case ELEMENT_TYPE_CHAR : + sprintf_s(buff, buffSize, "%c", *(CHAR*)ptr); + goto APPEND; + case ELEMENT_TYPE_I1 : + sprintf_s(buff, buffSize, "%hhd", *(int8_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_U1 : + sprintf_s(buff, buffSize, "%hhu", *(uint8_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_I2 : + sprintf_s(buff, buffSize, "%hd", *(uint16_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_U2 : + sprintf_s(buff, buffSize, "%hu", *(uint16_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_I4 : + IN_TARGET_32BIT(case ELEMENT_TYPE_I:) + sprintf_s(buff, buffSize, "%d", *(uint32_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_U4 : + IN_TARGET_32BIT(case ELEMENT_TYPE_U:) + sprintf_s(buff, buffSize, "%u", *(uint32_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_R4 : + sprintf_s(buff, buffSize, "%f", *(float*)ptr); + goto APPEND; + case ELEMENT_TYPE_I8 : + IN_TARGET_64BIT(case ELEMENT_TYPE_I:) + sprintf_s(buff, buffSize, "%lld", *(int64_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_U8 : + IN_TARGET_64BIT(case ELEMENT_TYPE_U:) + sprintf_s(buff, buffSize, "%llu", *(uint64_t*)ptr); + goto APPEND; + case ELEMENT_TYPE_R8 : + sprintf_s(buff, buffSize, "%lf", *(double*)ptr); + goto APPEND; + APPEND: + appendStr(out, buff); + break; + } + + delete []buff; +} + PCCOR_SIGNATURE PrettyPrintSignature( PCCOR_SIGNATURE typePtr, // type to convert, unsigned typeLen, // the length of 'typePtr' @@ -484,6 +543,7 @@ PCCOR_SIGNATURE PrettyPrintType( CQuickBytes tmp; CQuickBytes Appendix; BOOL Reiterate; + BOOL HasData = FALSE; int n; do { @@ -527,6 +587,15 @@ PCCOR_SIGNATURE PrettyPrintType( str = "typedref"; goto APPEND; APPEND: appendStr(out, KEYWORD((char*)str)); + if (HasData) + { + HasData = FALSE; + appendChar(out, '('); + typePtr--; + ULONG size = CorSigUncompressConstTypeArgData(typePtr); + appendStrBlob(out, (CorElementType)typ, typePtr - size, size); + appendChar(out, ')'); + } break; case ELEMENT_TYPE_VALUETYPE : @@ -536,9 +605,13 @@ PCCOR_SIGNATURE PrettyPrintType( str = "class "; goto DO_CLASS; case ELEMENT_TYPE_CONSTTYPE : - str = "const "; - appendStr(out, KEYWORD((char*)str)); + appendStr(out, KEYWORD("const ")); + Reiterate = TRUE; + break; + case ELEMENT_TYPE_CTARG : + appendStr(out, KEYWORD("const ")); Reiterate = TRUE; + HasData = TRUE; break; DO_CLASS: diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 5a6bc4aaef173..5dd47e7374249 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -200,12 +200,12 @@ OPDEF(CEE_STELEM_REF, "stelem.ref", PopRef+PopI+PopRef, Pu OPDEF(CEE_LDELEM, "ldelem", PopRef+PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0xA3, NEXT) OPDEF(CEE_STELEM, "stelem", PopRef+PopI+Pop1, Push0, InlineType, IObjModel, 1, 0xFF, 0xA4, NEXT) OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, IObjModel, 1, 0xFF, 0xA5, NEXT) -OPDEF(CEE_LDCT_I4_S, "ldtc.i4.s", Pop0, PushI, ShortInlineTypeI, IMacro, 1, 0xFF, 0xA6, NEXT) -OPDEF(CEE_LDCT_I4, "ldtc.i4", Pop0, PushI, InlineTypeI, IPrimitive, 1, 0xFF, 0xA7, NEXT) -OPDEF(CEE_LDCT_I8, "ldtc.i8", Pop0, PushI8, InlineTypeI8, IPrimitive, 1, 0xFF, 0xA8, NEXT) -OPDEF(CEE_LDCT_R4, "ldtc.r4", Pop0, PushR4, ShortInlineTypeR, IPrimitive, 1, 0xFF, 0xA9, NEXT) -OPDEF(CEE_LDCT_R8, "ldtc.r8", Pop0, PushR8, InlineTypeR, IPrimitive, 1, 0xFF, 0xAA, NEXT) -OPDEF(CEE_LDTARG_S, "ldtarg.s", Pop0, Push1, ShortInlineTypeVar, IMacro, 1, 0xFF, 0xAB, NEXT) +OPDEF(CEE_LDCTARG_S, "ldctarg.s", Pop0, Push1, ShortInlineTypeVar, IMacro, 1, 0xFF, 0xA6, NEXT) +OPDEF(CEE_UNUSED06, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) +OPDEF(CEE_UNUSED07, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) +OPDEF(CEE_UNUSED08, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) +OPDEF(CEE_UNUSED09, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAA, NEXT) +OPDEF(CEE_UNUSED10, "unused", Pop0, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) OPDEF(CEE_UNUSED11, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAC, NEXT) OPDEF(CEE_UNUSED12, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAD, NEXT) OPDEF(CEE_UNUSED13, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAE, NEXT) @@ -299,7 +299,7 @@ OPDEF(CEE_CLT, "clt", Pop1+Pop1, Pu OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) -OPDEF(CEE_LDTARG, "ldtarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFF, 0x08, NEXT) +OPDEF(CEE_LDCTARG, "ldctarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFF, 0x08, NEXT) OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) diff --git a/src/coreclr/inc/openum.h b/src/coreclr/inc/openum.h index 63924e7acf320..875f9aaf6efcd 100644 --- a/src/coreclr/inc/openum.h +++ b/src/coreclr/inc/openum.h @@ -31,10 +31,7 @@ typedef enum opcode_format_t InlineTok = 12, // a meta-data token of unknown type (U4) InlineSwitch = 13, // count (U4), pcrel1 (U4) .... pcrelN (U4) InlinePhi = 14, // count (U1), var1 (U2) ... varN (U2) - InlineTypeI = 15, // a signed integer for const type parameter - InlineTypeR = 16, // a real integer for const type parameter - InlineTypeI8 = 17, - InlineTypeVar = 18, + InlineTypeVar = 15, // WATCH OUT we are close to the limit here, if you add // more enumerations you need to change ShortIline definition below @@ -45,8 +42,6 @@ typedef enum opcode_format_t ShortInlineI = (ShortInline + InlineI), ShortInlineR = (ShortInline + InlineR), ShortInlineBrTarget = (ShortInline + InlineBrTarget), - ShortInlineTypeI = (ShortInline + InlineTypeI), - ShortInlineTypeR = (ShortInline + InlineTypeR), ShortInlineTypeVar = (ShortInline + InlineTypeVar), InlineOpcode = (ShortInline + InlineNone), // This is only used internally. It means the 'opcode' is two byte instead of 1 } OPCODE_FORMAT; From 084651c00ca5498b78e1876c1b38c01bfcc19881 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 15:32:49 +0900 Subject: [PATCH 13/80] Remove unused ELEMENT_TYPE_CONSTTYPE --- src/coreclr/ilasm/asmparse.h | 1 - src/coreclr/ilasm/asmparse.y | 1 - src/coreclr/ilasm/assembler.h | 2 +- src/coreclr/ilasm/grammar_after.cpp | 9 - src/coreclr/ilasm/prebuilt/asmparse.cpp | 10154 ++++++++++------------ src/coreclr/ildasm/dasm.cpp | 1 - src/coreclr/inc/corhdr.h | 5 +- src/coreclr/inc/formattype.cpp | 4 - 8 files changed, 4535 insertions(+), 5642 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.h b/src/coreclr/ilasm/asmparse.h index a34f076446799..5300a092b4e27 100644 --- a/src/coreclr/ilasm/asmparse.h +++ b/src/coreclr/ilasm/asmparse.h @@ -297,7 +297,6 @@ class AsmParse : public ErrorReporter BinStr* MakeSig(unsigned callConv, BinStr* retType, BinStr* args, int ntyargs = 0); BinStr* MakeTypeClass(CorElementType kind, mdToken tk); BinStr* MakeTypeArray(CorElementType kind, BinStr* elemType, BinStr* bounds); - BinStr* MakeConstTypeClass(BinStr* type); char* fillBuff(_In_opt_z_ char* curPos); // refill the input buffer HANDLE hstdout; diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 1365f459a28d6..bb0eb7c4aa7f0 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -1733,7 +1733,6 @@ type : CLASS_ className { if($2 == PASM->m | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } | CONST_ constTypeArg { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } - | CONST_ simpleType { $$ = parser->MakeConstTypeClass($2); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } | type '&' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_BYREF); } diff --git a/src/coreclr/ilasm/assembler.h b/src/coreclr/ilasm/assembler.h index 48e1058831221..a4a6c987ae209 100644 --- a/src/coreclr/ilasm/assembler.h +++ b/src/coreclr/ilasm/assembler.h @@ -869,7 +869,7 @@ class Assembler { void SetStdMapping(BOOL val = TRUE) { m_fStdMapping = val; }; //-------------------------------------------------------------------------------- - BOOL isShort(unsigned instr) { return ((OpcodeInfo[instr].Type & 16) != 0); }; + BOOL isShort(unsigned instr) { return ((OpcodeInfo[instr].Type & opcode_format_t::ShortInline) != 0); }; unsigned ShortOf(unsigned opcode); void SetErrorReporter(ErrorReporter* aReport) { report = aReport; if(m_pManifest) m_pManifest->SetErrorReporter(aReport); } diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index f3b08ffec8d24..50c913f5bcb0d 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1365,7 +1365,6 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_CLASS : - case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; case ELEMENT_TYPE_CTARG : @@ -1783,14 +1782,6 @@ BinStr* AsmParse::MakeTypeClass(CorElementType kind, mdToken tk) ret->remove(5 - cnt); return(ret); } -/********************************************************************************/ -BinStr* AsmParse::MakeConstTypeClass(BinStr* type) -{ - BinStr* ret = new BinStr(); - ret->appendInt8(ELEMENT_TYPE_CONSTTYPE); - ret->append(type); - return(ret); -} /**************************************************************************/ void PrintANSILine(FILE* pF, _In_ __nullterminated char* sz) { diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 4639b9093696d..897f21e84a7f6 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -418,22 +418,22 @@ static int yylhs[] = { -1, 44, 44, 44, 44, 44, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, + 30, 30, 30, 30, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, - 134, 134, 134, 134, 134, 134, 67, 67, 67, 66, - 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, - 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, + 55, 55, 32, 32, 31, 31, 31, 31, 31, 134, + 134, 134, 134, 134, 134, 67, 67, 67, 66, 66, + 90, 90, 87, 87, 88, 17, 17, 39, 39, 39, + 39, 39, 39, 39, 39, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 179, 179, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 124, 124, 91, 91, 92, 92, - 180, 125, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 126, 126, 181, 181, 181, 69, 69, 182, - 182, 182, 182, 182, 182, 183, 185, 184, 127, 127, - 128, 128, 186, 186, 186, 186, 129, 151, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 130, 130, - 187, 187, 187, 187, 187, 187, 187, 131, 131, 95, - 95, 95, 132, 132, 188, 188, 188, 188, + 179, 179, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 124, 124, 91, 91, 92, 92, 180, + 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 126, 126, 181, 181, 181, 69, 69, 182, 182, + 182, 182, 182, 182, 183, 185, 184, 127, 127, 128, + 128, 186, 186, 186, 186, 129, 151, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 130, 130, 187, + 187, 187, 187, 187, 187, 187, 131, 131, 95, 95, + 95, 132, 132, 188, 188, 188, 188, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -506,558 +506,558 @@ static int yylen[] = { 2, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 2, 1, 3, 2, 2, - 2, 3, 4, 2, 2, 2, 5, 5, 7, 4, - 4, 3, 3, 2, 4, 3, 3, 2, 1, 1, - 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, - 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, - 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, - 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, - 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, + 3, 4, 2, 2, 2, 5, 5, 7, 4, 4, + 3, 3, 2, 4, 3, 3, 2, 1, 1, 2, + 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 1, 1, 3, 2, 6, + 7, 3, 3, 3, 6, 0, 1, 3, 5, 6, + 4, 4, 1, 3, 3, 1, 1, 1, 1, 4, + 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, - 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, - 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, - 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, - 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, - 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, - 2, 2, 0, 2, 4, 3, 1, 1, + 1, 1, 3, 2, 5, 4, 7, 6, 7, 6, + 9, 8, 3, 8, 4, 0, 2, 0, 1, 3, + 3, 0, 2, 2, 2, 3, 2, 2, 2, 2, + 2, 0, 2, 3, 1, 1, 1, 1, 3, 8, + 2, 3, 1, 1, 3, 3, 3, 4, 6, 0, + 2, 3, 1, 3, 1, 4, 3, 0, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 0, 2, 2, + 3, 3, 4, 2, 1, 1, 3, 5, 0, 2, + 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 792, - 793, 0, 0, 0, 0, 0, 0, 870, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 791, + 792, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 849, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 848, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 813, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 562, 743, 0, 720, 728, - 726, 0, 729, 730, 731, 732, 733, 734, 739, 740, - 741, 742, 697, 727, 0, 719, 0, 0, 0, 495, + 0, 0, 0, 812, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 562, 742, 0, 719, 727, + 725, 0, 728, 729, 730, 731, 732, 733, 738, 739, + 740, 741, 697, 726, 0, 718, 0, 0, 0, 495, 0, 563, 564, 565, 0, 0, 0, 0, 0, 0, - 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 823, 841, 859, 873, 0, 0, 0, 0, 0, + 0, 822, 840, 858, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 561, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 808, 0, 0, 814, - 815, 816, 818, 0, 819, 820, 821, 822, 0, 871, - 872, 0, 0, 0, 735, 736, 737, 738, 696, 0, - 699, 0, 721, 723, 237, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 700, 701, 0, 0, 0, 0, 0, 0, 714, - 0, 706, 0, 0, 0, 0, 0, 705, 704, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 64, 440, - 68, 754, 0, 0, 496, 497, 499, 500, 501, 502, - 503, 504, 498, 505, 506, 507, 508, 509, 0, 375, - 0, 338, 346, 347, 0, 0, 0, 0, 368, 5, - 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 348, 352, 351, 354, - 353, 355, 0, 340, 342, 349, 361, 339, 0, 0, - 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, - 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, - 122, 112, 131, 124, 123, 133, 0, 136, 0, 107, - 0, 281, 276, 277, 278, 279, 280, 284, 282, 292, - 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, - 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, - 413, 0, 411, 0, 412, 436, 0, 0, 0, 0, - 804, 794, 0, 0, 852, 851, 850, 0, 0, 0, - 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, - 204, 198, 205, 206, 197, 0, 0, 391, 0, 0, - 0, 0, 0, 763, 0, 762, 0, 0, 0, 0, - 0, 314, 315, 0, 0, 0, 0, 75, 69, 0, - 96, 810, 0, 0, 817, 0, 698, 722, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, - 0, 0, 0, 0, 712, 0, 0, 0, 0, 747, - 702, 0, 744, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 27, 0, 105, 242, 256, 0, 0, - 849, 0, 0, 3, 0, 339, 174, 175, 177, 176, - 178, 184, 185, 140, 0, 0, 0, 4, 341, 343, - 0, 0, 0, 0, 0, 0, 0, 350, 513, 512, - 518, 519, 44, 0, 0, 510, 520, 521, 524, 523, - 525, 529, 530, 0, 528, 0, 531, 0, 0, 0, - 0, 536, 0, 0, 0, 0, 0, 385, 0, 383, - 386, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 372, 0, 0, 0, 0, 12, 826, 834, 835, 824, - 827, 0, 0, 846, 0, 0, 13, 0, 844, 0, - 842, 0, 0, 0, 0, 14, 866, 867, 860, 0, - 0, 15, 877, 878, 874, 0, 125, 126, 127, 128, - 129, 130, 0, 106, 142, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, - 404, 0, 0, 853, 854, 855, 856, 857, 858, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 767, - 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 711, 0, 0, 0, 0, 0, 0, 0, 0, 703, - 710, 0, 0, 0, 0, 0, 179, 180, 0, 0, - 0, 0, 0, 139, 0, 245, 259, 859, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 514, 0, 0, 0, 0, 0, 0, - 522, 0, 553, 0, 0, 0, 551, 367, 384, 370, - 0, 387, 376, 377, 378, 379, 381, 382, 380, 0, - 0, 0, 0, 829, 828, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 865, 0, 0, 0, - 0, 0, 0, 151, 153, 152, 154, 0, 149, 150, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 401, 0, 0, 0, 0, 0, 398, 403, 0, - 796, 0, 0, 588, 626, 580, 581, 0, 615, 582, - 583, 584, 585, 586, 587, 617, 593, 594, 595, 596, - 0, 0, 0, 623, 0, 0, 0, 0, 578, 579, - 602, 603, 604, 621, 605, 606, 607, 608, 0, 0, - 611, 0, 619, 625, 273, 0, 0, 0, 0, 0, - 0, 0, 751, 0, 0, 0, 0, 756, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 444, 0, 77, 0, 97, - 98, 0, 99, 100, 101, 0, 0, 0, 695, 694, - 0, 0, 0, 0, 685, 684, 683, 682, 680, 678, - 679, 681, 693, 692, 691, 690, 0, 707, 708, 749, - 745, 0, 0, 0, 244, 243, 0, 0, 258, 257, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, - 359, 0, 0, 0, 517, 516, 0, 534, 0, 0, - 537, 0, 0, 0, 344, 0, 0, 0, 373, 374, - 825, 836, 0, 838, 830, 833, 811, 837, 843, 845, - 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, - 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, - 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, - 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, - 410, 409, 408, 407, 405, 406, 0, 0, 207, 616, - 589, 590, 591, 592, 0, 612, 618, 620, 624, 0, - 0, 0, 622, 609, 610, 664, 633, 634, 0, 661, - 635, 636, 637, 638, 639, 640, 663, 645, 646, 647, - 648, 631, 632, 653, 654, 655, 656, 657, 658, 659, - 660, 630, 665, 666, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 649, 0, 0, 597, 200, - 0, 209, 0, 191, 0, 770, 769, 0, 766, 0, - 765, 752, 0, 759, 78, 75, 70, 0, 0, 544, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 81, 82, - 0, 80, 0, 95, 0, 689, 688, 687, 686, 0, - 0, 190, 0, 0, 0, 0, 0, 0, 0, 171, - 0, 0, 0, 0, 172, 251, 252, 253, 254, 246, - 0, 0, 0, 173, 265, 264, 266, 267, 260, 181, - 0, 362, 0, 365, 366, 0, 45, 46, 0, 533, - 0, 539, 540, 345, 0, 552, 0, 0, 0, 864, - 875, 0, 0, 160, 0, 0, 0, 145, 0, 163, - 0, 0, 296, 0, 0, 0, 318, 319, 320, 321, - 0, 0, 800, 0, 798, 0, 0, 0, 0, 662, - 641, 642, 643, 644, 651, 0, 0, 652, 0, 598, - 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 211, 441, 0, - 0, 78, 0, 0, 0, 217, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 87, 86, 0, 435, 805, 709, - 0, 186, 0, 189, 0, 0, 247, 248, 249, 250, - 263, 261, 262, 357, 0, 0, 535, 555, 388, 389, - 0, 155, 0, 0, 166, 0, 165, 162, 0, 0, - 309, 310, 311, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 650, 0, 0, 599, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 760, 67, 169, 0, - 0, 434, 0, 433, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 424, 0, 423, 0, 422, 0, 421, - 0, 419, 417, 0, 418, 420, 0, 432, 0, 431, - 0, 430, 0, 429, 0, 450, 0, 446, 445, 0, - 449, 0, 448, 0, 0, 90, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 158, 161, 146, 295, 313, - 270, 0, 802, 0, 0, 575, 0, 601, 0, 771, - 0, 0, 0, 776, 761, 215, 214, 484, 480, 428, - 0, 427, 0, 426, 0, 425, 0, 482, 480, 478, - 476, 470, 473, 482, 480, 478, 476, 493, 486, 447, - 489, 89, 91, 0, 0, 188, 0, 0, 0, 0, - 168, 0, 0, 628, 0, 574, 0, 600, 0, 0, - 0, 0, 0, 482, 480, 478, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 0, 0, 831, 322, 0, 773, 774, - 775, 466, 485, 465, 481, 0, 0, 0, 0, 456, - 483, 455, 454, 479, 453, 477, 451, 472, 471, 452, - 474, 475, 460, 459, 458, 457, 469, 494, 488, 487, - 467, 490, 0, 468, 492, 255, 0, 0, 0, 0, - 0, 464, 463, 462, 461, 491, 0, 0, 360, 0, - 327, 323, 332, 333, 334, 335, 336, 324, 325, 326, - 328, 329, 330, 331, 274, 0, 0, 0, 0, 573, - 0, 0, 0, 0, 182, 337, 0, 0, 0, 0, - 0, 0, 0, 0, 183, + 73, 0, 0, 103, 0, 21, 807, 0, 0, 813, + 814, 815, 817, 0, 818, 819, 820, 821, 0, 870, + 871, 0, 0, 0, 734, 735, 736, 737, 696, 0, + 699, 0, 720, 722, 237, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 700, 0, 0, 0, 0, 0, 0, 713, 0, + 705, 0, 0, 0, 0, 0, 704, 703, 0, 0, + 0, 0, 0, 234, 0, 0, 0, 64, 440, 68, + 753, 0, 0, 496, 497, 499, 500, 501, 502, 503, + 504, 498, 505, 506, 507, 508, 509, 0, 375, 0, + 338, 346, 347, 0, 0, 0, 0, 368, 5, 0, + 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 348, 352, 351, 354, 353, + 355, 0, 340, 342, 349, 361, 339, 0, 0, 0, + 0, 0, 0, 102, 0, 111, 132, 109, 110, 113, + 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, + 112, 131, 124, 123, 133, 0, 136, 0, 107, 0, + 281, 276, 277, 278, 279, 280, 284, 282, 292, 283, + 285, 286, 287, 288, 289, 290, 291, 0, 293, 317, + 0, 0, 0, 416, 0, 415, 0, 414, 0, 413, + 0, 411, 0, 412, 436, 0, 0, 0, 0, 803, + 793, 0, 0, 851, 850, 849, 0, 0, 0, 213, + 0, 199, 193, 194, 195, 196, 201, 202, 203, 204, + 198, 205, 206, 197, 0, 0, 391, 0, 0, 0, + 0, 0, 762, 0, 761, 0, 0, 0, 0, 0, + 314, 315, 0, 0, 0, 0, 75, 69, 0, 96, + 809, 0, 0, 816, 0, 698, 721, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, + 0, 0, 0, 711, 0, 0, 0, 0, 746, 701, + 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 27, 0, 105, 242, 256, 0, 0, 848, + 0, 0, 3, 0, 339, 174, 175, 177, 176, 178, + 184, 185, 140, 0, 0, 0, 4, 341, 343, 0, + 0, 0, 0, 0, 0, 0, 350, 513, 512, 518, + 519, 44, 0, 0, 510, 520, 521, 524, 523, 525, + 529, 530, 0, 528, 0, 531, 0, 0, 0, 0, + 536, 0, 0, 0, 0, 0, 385, 0, 383, 386, + 369, 0, 0, 0, 0, 0, 0, 0, 0, 372, + 0, 0, 0, 0, 12, 825, 833, 834, 823, 826, + 0, 0, 845, 0, 0, 13, 0, 843, 0, 841, + 0, 0, 0, 0, 14, 865, 866, 859, 0, 0, + 15, 876, 877, 873, 0, 125, 126, 127, 128, 129, + 130, 0, 106, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 396, 0, 0, 404, + 0, 0, 852, 853, 854, 855, 856, 857, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, + 0, 0, 32, 0, 224, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 766, 767, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 710, + 0, 0, 0, 0, 0, 0, 0, 0, 702, 709, + 0, 0, 0, 0, 0, 179, 180, 0, 0, 0, + 0, 0, 139, 0, 245, 259, 858, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 515, 514, 0, 0, 0, 0, 0, 0, 522, + 0, 553, 0, 0, 0, 551, 367, 384, 370, 0, + 387, 376, 377, 378, 379, 381, 382, 380, 0, 0, + 0, 0, 828, 827, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, + 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 401, 0, 0, 0, 0, 0, 398, 403, 0, 795, + 0, 0, 588, 626, 580, 581, 0, 615, 582, 583, + 584, 585, 586, 587, 617, 593, 594, 595, 596, 0, + 0, 0, 623, 0, 0, 0, 0, 578, 579, 602, + 603, 604, 621, 605, 606, 607, 608, 0, 0, 611, + 0, 619, 625, 273, 0, 0, 0, 0, 0, 0, + 0, 750, 0, 0, 0, 0, 755, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 444, 0, 77, 0, 97, 98, + 0, 99, 100, 101, 0, 0, 0, 695, 694, 0, + 0, 0, 0, 685, 684, 683, 682, 680, 678, 679, + 681, 693, 692, 691, 690, 0, 706, 707, 748, 744, + 0, 0, 0, 244, 243, 0, 0, 258, 257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 0, 358, 0, 0, 0, 0, 0, 0, 359, + 0, 0, 0, 517, 516, 0, 534, 0, 0, 537, + 0, 0, 0, 344, 0, 0, 0, 373, 374, 824, + 835, 0, 837, 829, 832, 810, 836, 842, 844, 0, + 0, 0, 0, 0, 134, 0, 0, 0, 0, 157, + 0, 0, 0, 148, 141, 294, 0, 0, 0, 305, + 306, 307, 308, 300, 301, 302, 299, 303, 304, 0, + 0, 297, 0, 0, 0, 0, 0, 0, 402, 410, + 409, 408, 407, 405, 406, 0, 0, 207, 616, 589, + 590, 591, 592, 0, 612, 618, 620, 624, 0, 0, + 0, 622, 609, 610, 664, 633, 634, 0, 661, 635, + 636, 637, 638, 639, 640, 663, 645, 646, 647, 648, + 631, 632, 653, 654, 655, 656, 657, 658, 659, 660, + 630, 665, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 649, 0, 0, 597, 200, 0, + 209, 0, 191, 0, 769, 768, 0, 765, 0, 764, + 751, 0, 758, 78, 75, 70, 0, 0, 544, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, + 80, 0, 95, 0, 689, 688, 687, 686, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 172, 251, 252, 253, 254, 246, 0, + 0, 0, 173, 265, 264, 266, 267, 260, 181, 0, + 362, 0, 365, 366, 0, 45, 46, 0, 533, 0, + 539, 540, 345, 0, 552, 0, 0, 0, 863, 874, + 0, 0, 160, 0, 0, 0, 145, 0, 163, 0, + 0, 296, 0, 0, 0, 318, 319, 320, 321, 0, + 0, 799, 0, 797, 0, 0, 0, 0, 662, 641, + 642, 643, 644, 651, 0, 0, 652, 0, 598, 0, + 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 211, 441, 0, 0, + 78, 0, 0, 0, 217, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88, 0, 87, 86, 0, 435, 804, 708, 0, + 186, 0, 189, 0, 0, 247, 248, 249, 250, 263, + 261, 262, 357, 0, 0, 535, 555, 388, 389, 0, + 155, 0, 0, 166, 0, 165, 162, 0, 0, 309, + 310, 311, 312, 0, 0, 0, 0, 0, 0, 0, + 0, 650, 0, 0, 599, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 759, 67, 169, 0, 0, + 434, 0, 433, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 424, 0, 423, 0, 422, 0, 421, 0, + 419, 417, 0, 418, 420, 0, 432, 0, 431, 0, + 430, 0, 429, 0, 450, 0, 446, 445, 0, 449, + 0, 448, 0, 0, 90, 0, 0, 0, 0, 0, + 0, 364, 0, 0, 158, 161, 146, 295, 313, 270, + 0, 801, 0, 0, 575, 0, 601, 0, 770, 0, + 0, 0, 775, 760, 215, 214, 484, 480, 428, 0, + 427, 0, 426, 0, 425, 0, 482, 480, 478, 476, + 470, 473, 482, 480, 478, 476, 493, 486, 447, 489, + 89, 91, 0, 0, 188, 0, 0, 0, 0, 168, + 0, 0, 628, 0, 574, 0, 600, 0, 0, 0, + 0, 0, 482, 480, 478, 476, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 0, 0, 0, 0, 830, 322, 0, 772, 773, 774, + 466, 485, 465, 481, 0, 0, 0, 0, 456, 483, + 455, 454, 479, 453, 477, 451, 472, 471, 452, 474, + 475, 460, 459, 458, 457, 469, 494, 488, 487, 467, + 490, 0, 468, 492, 255, 0, 0, 0, 0, 0, + 464, 463, 462, 461, 491, 0, 0, 360, 0, 327, + 323, 332, 333, 334, 335, 336, 324, 325, 326, 328, + 329, 330, 331, 274, 0, 0, 0, 0, 573, 0, + 0, 0, 0, 182, 337, 0, 0, 0, 0, 0, + 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 486, 910, 159, 789, 105, 106, 815, 35, - 36, 715, 794, 425, 1147, 73, 722, 841, 842, 1049, - 1050, 1096, 1560, 1561, 587, 1616, 795, 796, 797, 211, - 533, 534, 175, 176, 906, 907, 1154, 695, 1159, 1079, - 1328, 945, 946, 282, 1582, 1583, 1578, 1573, 1580, 1581, - 1572, 1589, 1590, 1588, 161, 711, 536, 537, 1276, 1277, - 1054, 713, 1387, 714, 947, 701, 702, 1211, 816, 1280, - 843, 664, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1640, 755, 756, 847, 696, 697, 92, 37, - 113, 493, 115, 205, 116, 38, 39, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 40, 41, 313, 42, 43, 181, 44, 357, - 46, 47, 358, 49, 50, 371, 51, 372, 52, 373, - 53, 374, 54, 359, 360, 361, 58, 362, 307, 60, - 61, 62, 189, 400, 666, 564, 565, 1001, 566, 1002, - 567, 215, 1240, 1249, 63, 908, 363, 364, 365, 366, - 802, 368, 369, 612, 613, 370, 614, 803, 615, 616, - 617, 618, 64, 201, 76, 437, 438, 949, 65, 638, - 630, 631, 632, 633, 640, 641, 649, 655, + 158, 71, 485, 909, 159, 788, 105, 106, 814, 35, + 36, 714, 793, 424, 1146, 73, 721, 840, 841, 1048, + 1049, 1095, 1559, 1560, 586, 1615, 794, 795, 796, 211, + 532, 533, 175, 176, 905, 906, 1153, 694, 1158, 1078, + 1327, 944, 945, 282, 1581, 1582, 1577, 1572, 1579, 1580, + 1571, 1588, 1589, 1587, 161, 710, 535, 536, 1275, 1276, + 1053, 712, 1386, 713, 946, 700, 701, 1210, 815, 1279, + 842, 663, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1639, 754, 755, 846, 695, 696, 92, 37, + 113, 492, 115, 205, 116, 38, 39, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 40, 41, 312, 42, 43, 181, 44, 356, + 46, 47, 357, 49, 50, 370, 51, 371, 52, 372, + 53, 373, 54, 358, 359, 360, 58, 361, 306, 60, + 61, 62, 189, 399, 665, 563, 564, 1000, 565, 1001, + 566, 215, 1239, 1248, 63, 907, 362, 363, 364, 365, + 801, 367, 368, 611, 612, 369, 613, 802, 614, 615, + 616, 617, 64, 201, 76, 436, 437, 948, 65, 637, + 629, 630, 631, 632, 639, 640, 648, 654, }; static int yysindex[] = { 0, -19397, 0, -338, 683, 0, 48, -221, 2066, 2066, 0, - 0, -66, 1427, 171, 318, -76, 68, 0, -15, 230, - 230, 210, 210, 7863, 424, 0, 683, 683, 683, 683, - 0, 0, 289, 0, 300, 300, 300, 0, 0, 0, - 482, 498, 0, 0, 0, 0, 0, 0, 0, 502, - 528, 534, 559, 0, 0, 0, 0, 0, 0, 300, - 0, 379, 0, 1491, 230, 0, 0, 0, 0, 654, - 0, 230, 0, 0, 0, 378, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1748, -18, 696, 0, 0, 705, 720, 0, 0, - 755, 676, 676, 8301,14177, 0, 662, 0, 0, 743, - 230, 230, 199, 0, 1798, 586, 683, 654, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14177, 0, 0, - 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 0, 517, 363, 469, 0, -11351, 0, 0, 0, 2321, 60, 104, 654, 703, 192, - 0, 459, 463, 0, 476, 481, 1877, 363, 77, 654, - 654, 654, 0, 0, 819, 609, 853, 861, 0, 0, -20252, 0, 0, 0, 0, 873, 4319, 1748, 606,10918, - 890, 75, 90, 120, 170, 178, 187, 920, 1604, 926, - 0, 0, 300, 164, 596, 683, 879,19355, 945, 128, - 896, 0, 224, 0, 676, 0, 985, 51, 993, 765, - 230, 230, 0, 0, 0, 0, 0, 0, 0, 1006, - 0,18957, 17, 0, 962, 0, 0, -2, 1798, 0, - 0, 0, 0, 603, 0, 0, 0, 0, 654, 0, - 0, 13, 654, 0, 0, 0, 0, 0, 0, 363, - 0, 812, 0, 0, 0, 0, 7425, 0, 0, 986, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 579, 0, 0, 683, 1000, 588, 1001, 947, 654, 0, - 683, 0, 1068, 1073, 683, 420,14177, 0, 0, 683, - 683, 683, 683,14177, 0, 363, 972, 993, 0, 0, - 0, 0,19040,18275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, - 230, 0, 0, 0, 230, 1025, -20, 8739, 0, 0, - 1059, 0, 297, 230, 210, 183, 297, 1877,10913, 1096, - 1748, -144, 676, 8301, 1092, 300, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 764, -13, - 7203, 1940, 135, 259, 0, 1097, 0, 0, 0, 0, - 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 341, 0, 1748, 0, - 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, - 0, 1107, 230, 230, 0, 230, 0, 230, 0, 210, - 0, -28, 0, -28, 0, 0, 1023, 1106, 378, 1113, - 0, 0, 230, 230, 0, 0, 0, 677, 654, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1124, 701, 0, 683, 634, - 903, 1044,14177, 0, 9177, 0, 912, 1138, 1164, 1168, - 1877, 0, 0, 122, 654, 1152, 939, 0, 0, 993, - 0, 0, 750, 14, 0, 683, 0, 0, 654, 943, - 486, 230, 0, 0, 0, 0, 230, 230, 230, 210, - 665, 836, 230, 230, 230, 210, 947, 654, 0, 645, - 683, 683, 683, 654, 0, 654, 1748, 1748, 654, 0, - 0, 946, 0, 50, 896, 1156, 1179, 654, 654, 654, - 654,19100, 0, 0, 859, 0, 0, 0, 230, 230, - 0, -281, 9615, 0, 1102, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1108, 1110, 1130, 0, 0, 0, - 1174, 230, 367, 425, 230, 0, 980, 0, 0, 0, - 0, 0, 0, 1215, 1219, 0, 0, 0, 0, 0, - 0, 0, 0, 7425, 0, 47, 0, 1220, 993, 300, -14177, 0, 297, 1222, 1224, 0,20350, 0, 1748, 0, - 0, 0, 764, -44, -44, -44, -44, -13, 948, 963, - 0, 811, 1225, 142, -8, 0, 0, 0, 0, 0, - 0, 300, 300, 0, 1227, 1228, 0, 300, 0, 300, - 0, 1241, -43, 683, 814, 0, 0, 0, 0, 683, - 822, 0, 0, 0, 0, 230, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 1246, 230, 903,11805, 903, - 1253, 1206, 1259, 1260, 1266, 1267, 1268, 0, 1604, 1276, - 0, 1261, 1274, 0, 0, 0, 0, 0, 0, 230, -21433, 20, 660, 0, 58, 1280, 1278, 0, 935, 1323, - 1281, 1201, 1269, 0, 1064, 0, 0, 1271,12242, 1288, - 1289, 372, 1209, 3526, 445, 300, 683, 654, 683, 0, - 0, 1295, 1302, 230, 230, 230, 210, 1305, 1306, 1307, - 1308, 1309, 1311, 1312, 1313, 1315, 1316, 1318, 1326, 654, - 0, 683, 703, 703, 703, 1327, 1328, 230, 420, 0, - 0,14177, 1330, 1748, 828, 1184, 0, 0, 596, 444, - 449, 0, 1103, 0,20503, 0, 0, 0, 230, 1283, - 230, 654, 230, 80, 1286,14177, 372, 230, 210, 654, - 1112, 297, 0, 0, 903, 1332, 784, 1336, 1333, 1340, - 0, 0, 0,11805, 1346, 1345, 0, 0, 0, 0, - 297, 0, 0, 0, 0, 0, 0, 0, 0, 378, - 230, 230, 1331, 0, 0, 1334, 1350, 993, 1352, 1353, - 1351, 1355, 1356, 1357, 230, 683, 0, 654, 683, 44, - 683, 1362, 1364, 0, 0, 0, 0, 1111, 0, 0, - 594, 139, 1344, 1748, 1375, 12, 1057, -202, 78, 793, - 1329, 0, 1329, 1329, 1329, 1329, 1329, 0, 0, 230, - 0, 230, 1376, 0, 0, 0, 0, 803, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1378, 921, 932, 0, 922, 1383, -376, 1148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1378, 1378, - 0, 3646, 0, 0, 0, 112, 1385, 300, 378, 1366, - 0, 1906, 0, 903, 1310, 0, 9177, 0, 1319, 0, - 57, 230, 1368, 0, 0, 654, 1152, 0, 197, 201, - 991, 203, 431, 443, 453, 465, 497, 508, 515, 518, - 524, 526, 531, 553, 0, 0, 249, 0, 300, 0, - 0, 378, 0, 0, 0, 1390, 654, 654, 0, 0, - 1391, 1392, 1400, 1403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 703, 0, 0, 0, - 0, 896, 0, 999, 0, 0, 654, 683, 0, 0, -14177, 654, 230, 654, 230, 891,14177, 372,20420, 0, - 1109, 36, 923, 0, 1062, 1361, 1373, 1748, 1366, 7425, - 0, 1409, 1428, 683, 0, 0, 907, 0, 0, 297, - 0, 297, 1429, 78, 0, 0, 1151, 1154, 0, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 1431, 703, 654, 230, 654, 0, 230, 1434, 1111, 1748, - 0, 1748, 975, 683, 0, 0, 0, 903, 1795, 1435, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1418, 1419, 0, 1389, 1395, 1397, 1398, 1438, 372, 0, - 0, 0, 0, 0, 0, 0, 1439, 0, 0, 0, - 0, 0, 0, 0, 987, 0, 0, 0, 0, 903, - 1394, 1404, 0, 0, 0, 0, 0, 0, 876, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -6, 7, 0, 0, - -36, 0, 2760, 0, 1454, 0, 0, 993, 0, 1456, - 0, 0, 1382, 0, 0, 0, 0, 993, 1405, 0, - 1458, 1465, 1467, 1468, 486, 230, 230, 230, 564, 576, - 605, 653, 230, 230, 230, 230, 230, 230, 210, 230, - 665, 230, 836, 230, 230, 230, 230, 230, 230, 230, - 210, 230, 3526, 230, -95, 230, 867, 230, 0, 0, - 3441, 0, 1471, 0, 1087, 0, 0, 0, 0, 1472, - 1877, 0, 654, 701, 1424, 1425, 1748, 7425, 1009, 0, - 1877, 1877, 1877, 1877, 0, 0, 0, 0, 0, 0, - 1877, 1877, 1877, 0, 0, 0, 0, 0, 0, 0, - 378, 0, 1480, 0, 0, 1252, 0, 0, 654, 0, - 1486, 0, 0, 0, 378, 0, 378, 230, 1470, 0, - 0, 1489, 230, 0, 683, 1490, 1488, 0, 6, 0, - 975, 993, 0, 230, 421, 436, 0, 0, 0, 0, -21433, 1473, 0, 230, 0, 1477, 864, 230, 230, 0, - 0, 0, 0, 0, 0, 903, 1450, 0, 230, 0, - 92, 0, 1504, 1505, 1022, 1508, 1510, 1511, 1513, 1525, - 1527, 1528, 1529, 1530, 1534, 0, 993, 0, 0, 230, - 299, 0, 774, 1457, 1519, 0, 0, 0, 0, 1544, - 1497, 1551, 1501, 230, 230, 230, 230, 230, 230, 210, - 230, 1554, 1503, 1556, 1509, 1557, 1514, 1569, 1520, 1571, - 1574, 1540, 1582, 1602, 1559, 1612, 1567, 1620, 1570, 1624, - 1573, 1627, 1588, 1644, 1597, 1650, 1656, 1605, 1659, 1440, - 1664, 1613, 0, 1348, 0, 0, 507, 0, 0, 0, - 193, 0, 1665, 0, 1436, 676, 0, 0, 0, 0, - 0, 0, 0, 0, 1748, 372, 0, 0, 0, 0, - 142, 0, 1667, 975, 0, 1748, 0, 0, 2989, 1672, - 0, 0, 0, 0, 1674, 1676, 0, 230, 903, 1631, - 1633, 993, 0, 1635, 230, 0, 1677, 1690, 1691, 1692, - 1693, 1675, 1679, 1683, 1701, 871, 0, 0, 0, 1702, - 1703, 0, 1705, 0, 1706, 1707, 1654, 1708, 1657, 1710, - 1666, 1711, 1669, 0, 1726, 0, 1727, 0, 1736, 0, - 1740, 0, 0, 1742, 0, 0, 1743, 0, 1744, 0, - 1745, 0, 1749, 0, 1750, 0, 1751, 0, 0, 1790, - 0, 1747, 0, 1791, 1575, 0, 1739, 617, 0, 1748, - 372,14177, 0, 1773, 1779, 0, 0, 0, 0, 0, - 0, 0, 0, 1799, 1008, 0,10445, 0, 1756, 0, - 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, - 1801, 0, 1802, 0, 1803, 0, 1804, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3526, 1813, 0, 1773, 7425, 1764, 1817, - 0, 142, 1818, 0, 903, 0, 0, 0, 1823, 1830, - 1832, 40, 22, 0, 0, 0, 0, 31, 67, 84, - 37, 159, 232, 93, 95, 107, 105, 1684, 27, 393, - 0, 1366, 1839, 1606, 0, 0, 0, 949, 0, 0, - 0, 0, 0, 0, 0, 132, 149, 150, 114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1621, 0, 0, 0, 0, 372, 1842, 1255, - 903, 0, 0, 0, 0, 0, 1848, 1857, 0, 1858, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 998, 1388, 0, 230, 0, - 1542, 1860, 1861, 676, 0, 0,14177, 7425, 1629, 372, - 1773, 1864, 0, 1867, 0, +15526, 0, -334, 796, 0, 50, -224, 2192, 2192, 0, + 0, -56, 1584, 154, 149, -285, -202, 0, -95, 61, + 61, 288, 288,13017, 240, 0, 796, 796, 796, 796, + 0, 0, 223, 0, 314, 314, 314, 0, 0, 0, + 387, 477, 0, 0, 0, 0, 0, 0, 0, 497, + 510, 518, 535, 0, 0, 0, 0, 0, 0, 314, + 0, 332, 0, 1444, 61, 0, 0, 0, 0, 234, + 0, 61, 0, 0, 0, 480, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2029, 102, 622, 0, 0, 690, 708, 0, 0, + 866, 1682, 1682,13199, 238, 0, 632, 0, 0, 723, + 61, 61, 346, 0, 1234, 421, 796, 234, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, + 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 677, 0, 475, 677, 592, 0, + 7139, 0, 0, 0, 1974, 77, 51, 234, 710, 451, + 0, 412, 431, 0, 468, 482, -77, 677, 47, 234, + 234, 234, 0, 0, 792, 637, 869, 871, 0, 0, +14539, 0, 0, 0, 0, 874, 4162, 2029, 604, 6810, + 881, 78, 86, 93, 99, 103, 133, 887, 968, 890, + 0, 0, 314, 27, 524, 796, 840,12628, 889, 107, + 496, 0, 177, 0, 1682, 0, 895, 58, 909, 692, + 61, 61, 0, 0, 0, 0, 0, 0, 0, 916, + 0,12230, 139, 0, 878, 0, 0, 14, 1234, 0, + 0, 0, 0, 483, 0, 0, 0, 0, 234, 0, + 0, 13, 234, 0, 0, 0, 0, 0, 0, 677, + 0, 687, 0, 0, 0, 0,12795, 936, 954, 876, + 967, 973, 975, 977, 984, 988, 992, 996, 998, 1018, + 243, 0, 796, 979, 64, 990, 917, 234, 0, 796, + 0, 1037, 1059, 796, 209, 238, 0, 0, 796, 796, + 796, 796, 238, 0, 677, 983, 909, 0, 0, 0, + 0,15668,11548, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 0, 61, + 0, 0, 0, 61, 1011, -55,13302, 0, 0, 1058, + 0, 717, 61, 288, 88, 717, -77, 147, 1088, 2029, + -154, 1682,13199, 1091, 314, 0, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 515, 437, 833, + 338, 966, 35, 0, 1100, 0, 0, 0, 0, 0, + 0, 941, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 84, 0, 2029, 0, 1109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1123, 0, 0, + 1124, 61, 61, 0, 61, 0, 61, 0, 288, 0, + 549, 0, 549, 0, 0, 1003, 1121, 480, 1132, 0, + 0, 61, 61, 0, 0, 0, 1031, 234, 0, 0, + 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1148, 1130, 0, 796, 81, 945, + 1085, 238, 0,13403, 0, 955, 1162, 1175, 1177, -77, + 0, 0, 653, 234, 1167, 948, 0, 0, 909, 0, + 0, 764, 17, 0, 796, 0, 0, 234, 963, 382, + 61, 1189, 1198, 1200, 1201, 61, 61, 61, 288, 596, + 824, 61, 61, 61, 288, 917, 234, 0, 129, 796, + 796, 796, 234, 0, 234, 2029, 2029, 234, 0, 0, + 978, 0, 118, 496, 1180, 1213, 234, 234, 234, 234, +12373, 0, 0, 894, 0, 0, 0, 61, 61, 0, + -172,13473, 0, 1137, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1141, 1144, 1145, 0, 0, 0, 1211, + 61, 448, 506, 61, 0, 1000, 0, 0, 0, 0, + 0, 0, 1235, 1239, 0, 0, 0, 0, 0, 0, + 0, 0,12795, 0, 322, 0, 1241, 909, 314, 238, + 0, 717, 1243, 1242, 0,14691, 0, 2029, 0, 0, + 0, 515, -41, -41, -41, -41, 437, 981, 1001, 0, + 827, 1240, 4, 185, 0, 0, 0, 0, 0, 0, + 314, 314, 0, 1259, 1260, 0, 314, 0, 314, 0, + 1283, -215, 796, 829, 0, 0, 0, 0, 796, 853, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 11, 0, 0, 1282, 61, 945, 1129, 945, 1286, + 1244, 1287, 1293, 1299, 1304, 1306, 0, 968, 1307, 0, + 1280, 1315, 0, 0, 0, 0, 0, 0, 61,15954, + 12, 150, 0, 551, 1309, 1334, 0, 686, 1083, 1337, + 1261, 1316, 0, 1122, 0, 0, 1323, 7450, 1347, 1349, + 400, 1270, 3284, 283, 314, 796, 234, 796, 0, 0, + 1355, 1361, 61, 61, 61, 288, 1362, 1368, 1376, 1383, + 1384, 1388, 1389, 1391, 1392, 1393, 1395, 1397, 234, 0, + 796, 710, 710, 710, 1399, 1408, 61, 209, 0, 0, + 238, 1410, 2029,13129, 1901, 0, 0, 524, 630, 658, + 0, 1182, 0,14790, 0, 0, 0, 61, 1358, 61, + 234, 61, 628, 1366, 238, 400, 61, 288, 234, 1194, + 717, 0, 0, 945, 1416, 1250, 1419, 1436, 1434, 0, + 0, 0, 1129, 1442, 1449, 0, 0, 0, 0, 717, + 0, 0, 0, 0, 0, 0, 0, 0, 480, 61, + 61, 1446, 0, 0, 1430, 1461, 909, 1468, 1469, 1471, + 1475, 1476, 1477, 61, 796, 0, 234, 796, 18, 796, + 1484, 1489, 0, 0, 0, 0, 1222, 0, 0, 316, + 191, 1479, 2029, 1496, 9, 888, -207, 98, 552, 1448, + 0, 1448, 1448, 1448, 1448, 1448, 0, 0, 61, 0, + 61, 1502, 0, 0, 0, 0, 1164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, + 1049, 1060, 0, 1047, 1511, -262, 1275, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1505, 1505, 0, + 3489, 0, 0, 0, 184, 1513, 314, 480, 1497, 0, + 1749, 0, 945, 1435, 0,13403, 0, 1439, 0, 170, + 61, 1501, 0, 0, 234, 1167, 0, 151, 160, 1071, + 176, 187, 193, 435, 442, 452, 500, 507, 517, 530, + 543, 573, 598, 0, 0, 328, 0, 314, 0, 0, + 480, 0, 0, 0, 1518, 234, 234, 0, 0, 1523, + 1524, 1527, 1529, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, + 496, 0, 1119, 0, 0, 234, 796, 0, 0, 238, + 234, 61, 234, 61, 672, 238, 400,15719, 0, 614, + 673, 1708, 0, 1181, 1480, 1482, 2029, 1497,12795, 0, + 1545, 1546, 796, 0, 0, 748, 0, 0, 717, 0, + 717, 1547, 98, 0, 0, 1276, 1285, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 1556, + 710, 234, 61, 234, 0, 61, 1560, 1222, 2029, 0, + 2029, 755, 796, 0, 0, 0, 945, 1252, 1565, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1549, + 1550, 0, 1510, 1520, 1526, 1528, 1585, 400, 0, 0, + 0, 0, 0, 0, 0, 1582, 0, 0, 0, 0, + 0, 0, 0, 1127, 0, 0, 0, 0, 945, 1536, + 1538, 0, 0, 0, 0, 0, 0, 1301, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 38, 0, 0, -38, + 0, 2608, 0, 1596, 0, 0, 909, 0, 1603, 0, + 0, 1525, 0, 0, 0, 0, 909, 1553, 0, 1608, + 1609, 1611, 1612, 382, 61, 61, 61, 619, 654, 656, + 679, 61, 61, 61, 61, 61, 61, 288, 61, 596, + 61, 824, 61, 61, 61, 61, 61, 61, 61, 288, + 61, 3284, 61, -167, 61, 635, 61, 0, 0, 2933, + 0, 1615, 0, 1231, 0, 0, 0, 0, 1619, -77, + 0, 234, 1130, 1568, 1569, 2029,12795, 1152, 0, -77, + -77, -77, -77, 0, 0, 0, 0, 0, 0, -77, + -77, -77, 0, 0, 0, 0, 0, 0, 0, 480, + 0, 1620, 0, 0, 1394, 0, 0, 234, 0, 1624, + 0, 0, 0, 480, 0, 480, 61, 1613, 0, 0, + 1628, 61, 0, 796, 1629, 1630, 0, 11, 0, 755, + 909, 0, 61, 591, 688, 0, 0, 0, 0,15954, + 1616, 0, 61, 0, 1617, 899, 61, 61, 0, 0, + 0, 0, 0, 0, 945, 1579, 0, 61, 0, 74, + 0, 1639, 1648, 1084, 1649, 1650, 1651, 1652, 1655, 1659, + 1676, 1680, 1683, 1689, 0, 909, 0, 0, 61, 680, + 0, 459, 1610, 1671, 0, 0, 0, 0, 1693, 1647, + 1700, 1656, 61, 61, 61, 61, 61, 61, 288, 61, + 1701, 1657, 1707, 1658, 1711, 1660, 1713, 1662, 1715, 1717, + 1666, 1719, 1720, 1670, 1728, 1679, 1732, 1686, 1739, 1698, + 1745, 1699, 1752, 1706, 1753, 1760, 1710, 1763, 1548, 1767, + 1716, 0, -2, 0, 0, 709, 0, 0, 0, 159, + 0, 1766, 0, 1543, 1682, 0, 0, 0, 0, 0, + 0, 0, 0, 2029, 400, 0, 0, 0, 0, 4, + 0, 1771, 755, 0, 2029, 0, 0, 1888, 1777, 0, + 0, 0, 0, 1778, 1782, 0, 61, 945, 1730, 1731, + 909, 0, 1734, 61, 0, 1785, 1790, 1791, 1792, 1793, + 1780, 1781, 1794, 1807, 775, 0, 0, 0, 1813, 1814, + 0, 1795, 0, 1822, 1835, 1784, 1837, 1788, 1841, 1796, + 1842, 1797, 0, 1845, 0, 1847, 0, 1848, 0, 1857, + 0, 0, 1867, 0, 0, 1868, 0, 1871, 0, 1872, + 0, 1873, 0, 1877, 0, 1879, 0, 0, 1883, 0, + 1885, 0, 1884, 1664, 0, 1838, 624, 0, 2029, 400, + 238, 0, 1870, 1874, 0, 0, 0, 0, 0, 0, + 0, 0, 1887, 773, 0,16040, 0, 1840, 0, 61, + 61, 61, 0, 0, 0, 0, 0, 0, 0, 1894, + 0, 1895, 0, 1896, 0, 1906, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3284, 1900, 0, 1870,12795, 1856, 1909, 0, + 4, 1916, 0, 945, 0, 0, 0, 1921, 1925, 1930, + 28, 39, 0, 0, 0, 0, 63, 80, 83, 114, + 120, 789, 101, 105, 135, 131, 1183, 25, 1026, 0, + 1497, 1932, 1704, 0, 0, 0, 1043, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 163, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1723, 0, 0, 0, 0, 400, 1938, 2554, 945, + 0, 0, 0, 0, 0, 1939, 1947, 0, 1949, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 805, 1483, 0, 61, 0, 1632, + 1955, 1956, 1682, 0, 0, 238,12795, 1724, 400, 1870, + 1975, 0, 1973, 0, }; static int yyrindex[] = { 0, - 0, 0, 4757, 0, 0,19466, 1797, 0, 0, 0, - 0, 0,14488, 0, 0, 251, 2281, 0, 2865, 0, + 0, 0, 4600, 0, 0,12898, 1743, 0, 0, 0, + 0, 0,11830, 0, 0, 356, 1976, 0, 1166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1977, 1977, 1977, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977, + 0, -68, 0, 0, 0, 0, 0, 0, 0, 1897, + 0, 0, 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1868, 1868, 1868, 0, 0, 0, + 0, 0, 0,10010, 0, 0, 0, 0, 0, 0, + 7761, 8072, 8072, 0, 0, 0, 8526, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1868, - 0, 117, 0, 0, 0, 0, 0, 0, 0, 1787, - 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,16737, 0, 0, 0, 0, 0, 0, -12680,13118,13118, 0, 0, 0,15253, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2115, 2991, 0, + 0, 0, 0, 0, 0, 0,11830, 1903, 7102, 7413, + 7724, 8035, 0, 0, 0, 1978, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1899, 8072, + 0,11773,11773,11773,11773,11773,11773, 0, 0, 0, + 0, 0, 1977,10388, 0, 0, 0, 0, 0, 0, + 9403, 0,11342, 0,11830, 0, 0, 0,11522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1910, 0, + 0, 1911, 3146, 6800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1834, 2710, 0, - 0, 0, 0, 0, 0, 0,14488, 1786,13829,14140, -14451,14762, 0, 0, 0, 1871, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1792,13118, - 0,18500,18500,18500,18500,18500,18500, 0, 0, 0, - 0, 0, 1868,17115, 0, 0, 0, 0, 0, 0, -16130, 0,18069, 0,14488, 0, 0, 0,18249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1793, 0, - 0, 1794, 3741,13527, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6652, 7090, 0, - 7528, 7966, 8404, 8842, 9280, 9718,10156,10594,11032,11470, - 0, 0, 0, 0, 0, 0, 0, 0, 4900, 0, - 0, 0, 0, 0, 0, 1869, 1852, 0, 0, 0, - 0, 0, 0, 0, 0, 1786, 0,15073, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5181, 0, 0, + 0, 0, 0, 0, 1996, 1981, 0, 0, 0, 0, + 0, 0, 0, 0, 1903, 0, 8346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14488, 0, 0, - 0, 0,14488, 0, 0, 1868, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,11830, 0, 0, 0, + 0,11830, 0, 0, 1977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, + 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1806, 1396, + 0, 0, 0, 0, 0, 0, 1919, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1923, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1814, 0, 0,16935, 0, 0, -14488, 0, 0, 1869, 81, 1878, 0, 0, 0,15509, - 0, 0, 4179, 1819, 0, 0, 0, 0,19759, 0, - 0, 0,11908,12346,12784,13222, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5338, 0, 0, - 0, 0, 0, 5776, 0, 2272, 0, 0, 4617, 0, - 0, 119, 0, 0, 180, 0, 1881, 5055, 5493, 5931, - 6369, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1922, 0, 0,10208, 0, 0,11830, + 0, 0, 1996, 32, 2008, 0, 0, 0, 8782, 0, + 0, 3584, 1926, 0, 0, 0, 0,14034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5619, 0, 0, 0, + 0, 0, 6057, 0, 2553, 0, 0, 4022, 0, 0, + 192, 0, 0, 76, 0, 1988, 4460, 4898, 5336, 5774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,20655, 1868, - 0, 0, 1907, 0, 0,13866, 0, 0, 0, 0, - 0, 0,20738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1868, 1868, 0, 0, 0, 0, 1868, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14942, 1977, 0, + 0, 2012, 0, 0,13850, 0, 0, 0, 0, 0, + 0,15025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 0, 0, 1829, 0, 3401, 0, 0, + 1977, 1977, 0, 0, 0, 0, 1977, 0, 1977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,17313, 0, 0, 0, 0, 0, 0, 0, - 740, 1989, 0,16381, 0, 0, 1912, 0, 0, 0, - 1831, 0, 0, 0, 0, 0, 0,15689, 1852, 0, - 0, 0, 0, 63, 0, 1868, 0, 1835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 6214, - 0, 0, 3148, 3586, 4024, 0, 0, 172, 492, 0, - 0, 0,19250, 0, 0,14488, 0, 0, 0, 0, + 0, 217, 0, 0, 1931, 0, 2076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,20821, 0, 0, 0, 0, 0, 0, 0,20169, - 0, 0, 0, 0, 0, 0, 0, 1913, 0, 1914, - 0,13866, 0, 0, 0, 1919, 0, 0, 0, 0, + 0,10586, 0, 0, 0, 0, 0, 0, 0, 798, + 1333, 0, 9654, 0, 0, 2014, 0, 0, 0, 1933, + 0, 0, 0, 0, 0, 0, 8962, 1981, 0, 0, + 0, 0, -72, 0, 1977, 0, 1934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6705, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1928, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10053, 0, 0, - 169, 0, 0, 0, 0, 3401, 0, 0, 679, 0, -18500, 0,18500,18500,18500,18500,18500, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6495, 0, + 0, 3429, 3867, 4305, 0, 0, 455, 611, 0, 0, + 0,12523, 0, 0,11830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +15122, 0, 0, 0, 0, 0, 0, 0,14456, 0, + 0, 0, 0, 0, 0, 0, 2015, 0, 2018, 0, +13850, 0, 0, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 761, 0, 0, 0, 0, 0, 0, 850, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 761, 761, - 0, 23, 0, 0, 0, 1923, 0, 0, 0, 2427, -16566, 0, 0, 0, 0, 129, 1814, 0, 0, 0, - 0, 0, 0,13866,13866,19595, 1878, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 663, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2209, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13574, 0, 0, 217, + 0, 0, 0, 0, 2076, 0, 0, 532, 0,11773, + 0,11773,11773,11773,11773,11773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1844, 0, 1868, 0, - 0, 0, 0, 0, 0, 0, 1850,19853, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 860, + 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 860, 860, 0, + 6, 0, 0, 0, 2020, 0, 0, 0, 2270, 9839, + 0, 0, 0, 0, 944, 1922, 0, 0, 0, 0, + 0, 0,13850,13850,13835, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4462, 0, 0, 0, - 0, 437,13866, 0, 0, 0, 556, 0, 0, 0, - 0, 1855, 0,21141, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,20973, 0, 0, 0,21126, 0, - 0, 0, 0, 0, 0, 0, 0, 0,13866, 1907, - 0, 1907, 0, 152, 0,14799, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1940, 0, 1977, 0, 0, + 0, 0, 0, 0, 0, 1941,14205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2366, 2803, 0, 710, 0, 0, 0,10053, 0, - 0, 1938, 1918, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4743, 0, 0, 0, 0, + 613,13850, 0, 0, 0, 837, 0, 0, 0, 0, + 1943, 0,15854, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,15317, 0, 0, 0,15414, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13850, 2012, 0, + 2012, 0, 206, 0,13905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2646, 3084, 0, 89, 0, 0, 0,13574, 0, 0, + 2022, 2005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,17493,17691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,10766,10964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, - 0, 0, 0, 0, 0, 0, 0,15945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1078, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6807, 0, 0, 0, 0, 0, -14488, 0, 1862, 0, 0, 0, 0, 0, 0, 0, -14488,14488,14488,14488, 0, 0, 0, 0, 0, 0, -14488,14488,14488, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,21224, 0, - 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1942, 0, 169, 0, - 1918, 3401, 0, 0, 0, 0, 0, 0, 0, 0, - 740, 1879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6212, 0, 0, 0, 0, 0,11830, + 0, 1948, 0, 0, 0, 0, 0, 0, 0,11830, +11830,11830,11830, 0, 0, 0, 0, 0, 0,11830, +11830,11830, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,15497, 0, 0, + 0, 0, 0, 742, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2031, 0, 217, 0, 2005, + 2076, 0, 0, 0, 0, 0, 0, 0, 0, 798, + 2071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,18674, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13866,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,11947, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13850,13850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,14488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,17871, 0, 0, 0, - 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,11830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2005, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,11144, 0, 0, 0, 0, + 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,13866, 0, - 0, 0, 0, 1882, 0, 0, 0, 0, 0, 0, - 0,13866, 0, 0, 0, 0, 740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13850, 0, 0, + 0, 0, 2072, 0, 0, 0, 0, 0, 0, 0, +13850, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1882, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2072, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1863, 0, 0,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1990, 0, 0,13850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,13850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13866, 0, 0, - 0, 0, 0,14488, 0, 0, 0, 0, 0, 0, - 1882, 0,13866, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13850, 0, 0, 0, + 0, 0,11830, 0, 0, 0, 0, 0, 0, 2072, + 0,13850, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1076,20 +1076,21 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,20017, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14357, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1950, 1951, 0, - 1952, 1953, 1954, 1955, 1956, 1958, 1960, 1961, 1962, 1963, + 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1103,24 +1104,23 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1966, 1967, 1972, 1973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, + 0, 0, 0, 0,13625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1746, 0, 0, 0, 0, + 0, 0, 0, 0, 1849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1128,18 +1128,18 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1752, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, + 0, 1859, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,10475, 0, 0, 0, 0, 0, 0, 0, 0, +13729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1753, 0, 0, 0, 0, 0, 0, 0, 0, + 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1150,31 +1150,31 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, - 751, 0, 0, 0, 0, 1957, 0, 0, 0, 0, - 0, 0, 0, 1758, 1761, 0, 0, 0, 0, 0, + 2088, 0, 0, 0, 0, 0, 0, 0, 0, 934, + 0, 0, 0, 0, 2074, 0, 0, 0, 0, 0, + 0, 0, 1861, 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1762, 0, 0, 0, 0, 0, 0, 0, + 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1767, 0, - 0, 0, 0, 0, 0, 1768, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1886, 0, 0, + 0, 0, 0, 0, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1757, 1759, 0, 0, + 0, 0, 0, 0, 0, 1882, 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1964, 0, 0, 0, + 0, 0, 0, 0, 0, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1193,7 +1193,7 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1772, 1776, 0, + 0, 0, 0, 0, 0, 0, 1893, 1904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1202,4467 +1202,3384 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1789, 0, 0, 0, + 0, 0, 0, 0, 0, 1908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1788, 0, + 0, 0, 0, 0, 0, 0, 0, 1905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1807, 0, 0, 0, 0, 0, 0, 0, 0, + 1915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, + 0, 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, + 0, 0, 0, 0, 0, 1924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1815, 0, 0, + 0, 0, 0, 0, 0, 0, 1927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1816, 0, 0, + 0, 1945, 0, 0, }; -static int yygindex[] = { 1884, - -4, 11, -681, 0, -365, -300, -98, 0, -7, 0, - 0, 0, 1593, -120, 0, 0, -882, 0, 1221, 0, - 1017, 168,-1464, -445, -380, 5, -747, 0, 1041, -22, - 1320, 0, 10, 1160, 557, 779, -998, -84, 0, 1052, - 0,-1147, 924, 0, 0, 0,-1349, -694,-1347,-1321, - 0, 0, 0, 0, -154, 1161, 1384, 0, 0, 0, - 0, -663, 0, 0,-1083, 0, 1175, 0,-1000,-1195, - 824, 809, -3, -85, 1765, 1623, 2098, -161, -5, 0, - 0, 0, 0, 0, 0, -810, 1214, 0, 2114, 0, - 0, 914, 2020, 1584, 0, -14, 2112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -301, 1377, 0, -297, -280, -296, 19, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 1379, - 0, 0, 0, 39, 21, 33, 0, 2, 1837, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, - -163, 0, 0, 1531, 0, 0, 0, 364, 0, 0, - 0, 0, 0, 0, 0, 1469, 2087, -27, 0, 1668, - 0, 1780, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1983, + -4, -3, -690, 0, -420, -122, -99, 0, 337, 0, + 0, 0, 1758, -119, 0, 0, -883, 0, 1329, 0, + 1133, 214,-1468, -445, -396, -13, -773, 0, 1147, -22, + 1437, 0, 5, 1277, 667, 904, -989, -79, 0, 1174, + 0,-1141, 1046, 0, 0, 0,-1313,-1439,-1080, -941, + 0, 0, 0, 0, 1012, 1274, 1515, 0, 0, 0, + 0, -664, 0, 0,-1097, 0, 1308, 0,-1012,-1210, + 947, 935, -23, -85, 1876, 1754, 2211, -162, 3, 0, + 0, 0, 0, 0, 0, -807, 1320, 0, 2232, 0, + 0, 1029, 2140, 1709, 0, -18, 2238, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -300, 1500, 0, -299, -316, -281, 16, + 0, 0, 29, 0, 0, 0, 0, 0, 0, 1504, + 0, 0, 0, 7, 21, 33, 0, 10, 1964, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, + -149, 0, 0, 1663, 0, 0, 0, 429, 0, 0, + 0, 0, 0, 0, 0, 1594, 2210, -35, 0, 1787, + 0, 1913, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 21937 +#define YYTABLESIZE 16544 static int yytable[] = { 70, - 283, 160, 59, 227, 228, 305, 213, 109, 219, 165, - 1255, 555, 120, 121, 118, 556, 557, 367, 164, 45, - 162, 56, 169, 170, 171, 172, 124, 125, 48, 1157, - 927, 1308, 1269, 57, 915, 1059, 203, 1306, 606, 55, - 710, 167, 218, 206, 1023, 177, 178, 139, 839, 1309, - 840, 676, 817, 677, 477, 1374, 489, 204, 206, 206, - 629, 119, 1604, 629, 207, 206, 629, 1631, 304, 186, - 575, 1610, 427, 429, 431, 433, 435, 1615, 339, 782, - 1602, 1333, 232, 760, 308, 1418, 209, 607, 1312, 206, - 476, 421, 1593, 749, 34, 1011, 1167, 74, 164, 1310, - 477, 285, 398, 235, 236, 254, 1101, 1612, 238, 339, - 249, 252, 253, 629, 423, 299, 473, 216, 912, 298, - 316, 167, 206, 1008, 1613, 206, 1102, 566, 267, 426, - 733, 734, 66, 1623, 1435, 1624, 288, 297, 72, 488, - 316, 259, 750, 198, 261, 1626, 487, 1625, 490, 290, - 287, 286, 289, 1149, 1645, 743, 744, 745, 75, 428, - 1244, 109, 748, 285, 306, 424, 37, 1376, 296, 285, - 37, 203, 1642, 475, 37, 37, 1171, 1172, 1052, 1166, - 424, 500, 397, 814, 1436, 467, 591, 78, 37, 1643, - 1644, 341, 269, 34, 1584, 269, 94, 598, 1586, 1617, - 449, 450, 1148, 1377, 287, 470, 621, 443, 156, 430, - 424, 748, 440, 479, 480, 750, 1682, 432, 1507, 37, - 119, 444, 586, 547, 1606, 1587, 434, 485, 1608, 299, - 310, 110, 1499, 298, 494, 1220, 1175, 583, 206, 135, - 1177, 547, 1183, 216, 67, 68, 67, 69, 1446, 69, - 119, 297, 577, 216, 601, 1609, 497, 584, 585, 646, - 424, 761, 499, 471, 750, 597, 801, 599, 424, 217, - 119, 1261, 1620, 519, 535, 765, 518, 424, 216, 520, - 525, 542, 296, 524, 472, 119, 526, 1176, 532, 1629, - 529, 1178, 1340, 1184, 119, 538, 539, 540, 541, 833, - 122, 123, 306, 1074, 1075, 1076, 67, 34, 2, 69, - 119, 834, 835, 665, 563, 59, 1229, 34, 216, 67, - 68, 569, 69, 570, 600, 1630, 594, 571, 744, 836, - 119, 558, 45, 561, 56, 580, 581, 909, 216, 590, - 559, 48, 109, 595, 573, 562, 57, 119, 164, 582, - 588, 560, 55, 579, 566, 98, 119, 589, 119, 720, - 721, 1044, 620, 67, 68, 604, 69, 119, 122, 123, - 119, 167, 629, 629, 648, 654, 977, 122, 123, 837, - 619, 67, 68, 652, 69, 119, 206, 67, 68, 703, - 69, 628, 628, 647, 653, 119, 530, 1292, 67, 68, - 663, 69, 1058, 496, 717, 119, 1591, 2, 111, 627, - 1505, 269, 119, 119, 269, 671, 672, 98, 673, 492, - 674, 78, 119, 98, 583, 441, 78, 826, 156, 156, - 642, 156, 135, 1634, 675, 682, 683, 292, 293, 294, - 1628, 746, 747, 367, 584, 585, 122, 123, 583, 680, - 699, 605, 112, 156, 809, 117, 487, 771, 67, 68, - 1042, 69, 692, 1241, 693, 1242, 1243, 763, 584, 585, - 1185, 1419, 147, 122, 123, 109, 532, 776, 287, 470, - 548, 1173, 1187, 156, 10, 11, 12, 13, 37, 37, - 37, 718, 1189, 119, 723, 122, 123, 583, 548, 728, - 729, 730, 1334, 732, 1191, 736, 737, 738, 781, 741, - 807, 807, 740, 807, 731, 773, 735, 584, 585, 1305, - 739, 1186, 574, 799, 118, 121, 124, 127, 130, 133, - 136, 2, 284, 1188, 993, 746, 1193, 485, 114, 995, - 818, 757, 758, 1190, 643, 977, 168, 1195, 629, 838, - 173, 292, 293, 294, 1197, 1192, 67, 1199, 1078, 69, - 119, 1596, 119, 1201, 770, 1203, 174, 775, 772, 774, - 1205, 27, 28, 29, 30, 31, 32, 33, 787, 1442, - 1443, 1444, 295, 846, 746, 850, 13, 1194, 784, 780, - 1450, 1451, 1207, 1636, 469, 790, 644, 1497, 1196, 645, - 469, 367, 566, 1344, 179, 1198, 783, 1209, 1200, 786, - 808, 517, 1210, 788, 1202, 1346, 1204, 341, 172, 81, - 180, 1206, 67, 68, 182, 69, 67, 68, 807, 69, - 126, 67, 68, 206, 69, 827, 839, 67, 840, 828, - 69, 819, 820, 1208, 1348, 830, 849, 823, 832, 824, - 183, 203, 67, 68, 1345, 69, 184, 991, 98, 845, - 126, 237, 206, 997, 147, 147, 1347, 169, 984, 988, - 27, 28, 29, 30, 31, 32, 33, 1554, 241, 206, - 522, 185, 863, 119, 67, 68, 535, 69, 98, 1603, - 206, 1632, 1350, 188, 530, 1349, 259, 555, 1633, 206, - 1017, 556, 557, 67, 68, 206, 69, 926, 67, 68, - 13, 69, 957, 807, 958, 948, 961, 962, 963, 1262, - 650, 1263, 233, 651, 1504, 956, 694, 950, 951, 982, - 1081, 964, 1082, 1083, 1084, 1085, 1086, 742, 299, 220, - 980, 532, 298, 1351, 221, 482, 483, 262, 263, 291, - 987, 1555, 911, 1010, 992, 994, 996, 264, 1056, 222, - 297, 1004, 952, 1006, 1563, 1007, 67, 68, 876, 69, - 1012, 1024, 926, 772, 1016, 341, 772, 152, 153, 154, - 572, 572, 234, 1013, 27, 28, 29, 30, 31, 32, - 33, 296, 1015, 1028, 27, 28, 29, 30, 31, 32, - 33, 627, 627, 1030, 1031, 720, 721, 152, 153, 154, - 1361, 1027, 1363, 1421, 1422, 566, 566, 1041, 566, 1557, - 1029, 299, 260, 1019, 1043, 298, 1045, 1158, 1423, 1424, - 572, 703, 34, 1080, 876, 477, 1168, 1053, 67, 68, - 1077, 69, 119, 297, 1579, 67, 68, 1639, 69, 300, - 1585, 627, 1087, 301, 1088, 67, 68, 81, 69, 309, - 157, 81, 81, 81, 81, 81, 302, 81, 81, 81, - 81, 303, 81, 81, 296, 310, 81, 81, 81, 81, - 1607, 85, 554, 81, 81, 554, 88, 833, 91, 1647, - 577, 577, 81, 311, 81, 94, 614, 614, 1447, 834, - 835, 312, 953, 954, 1156, 955, 477, 1429, 1160, 81, - 81, 81, 97, 375, 1169, 250, 251, 836, 210, 1152, - 1672, 399, 1254, 445, 1256, 446, 447, 100, 119, 34, - 583, 422, 448, 299, 1227, 1684, 206, 298, 269, 269, - 577, 269, 67, 68, 81, 69, 614, 1260, 1212, 477, - 584, 585, 657, 658, 659, 297, 1648, 156, 1213, 436, - 67, 68, 1214, 69, 1275, 439, 1278, 837, 1224, 1222, - 97, 451, 299, 1282, 1228, 99, 753, 100, 804, 805, - 806, 34, 876, 1223, 101, 1225, 296, 1226, 660, 661, - 662, 477, 1641, 926, 297, 1525, 109, 112, 1681, 115, - 563, 102, 1239, 1248, 648, 468, 684, 685, 686, 1259, - 145, 148, 790, 151, 790, 1297, 103, 558, 1279, 561, - 206, 1237, 1246, 647, 474, 296, 559, 478, 1236, 1245, - 788, 562, 788, 1238, 1247, 477, 1271, 560, 1670, 1272, - 477, 25, 687, 688, 689, 22, 481, 1250, 1566, 1281, - 477, 1565, 269, 269, 491, 223, 1386, 224, 225, 226, - 292, 293, 294, 19, 613, 613, 1104, 1105, 1327, 1397, - 1398, 1399, 1400, 608, 926, 609, 610, 611, 495, 1401, - 1402, 1403, 1090, 1091, 1092, 1093, 1094, 67, 68, 809, - 69, 498, 521, 523, 16, 126, 544, 1073, 127, 122, - 123, 583, 128, 129, 130, 131, 132, 527, 133, 134, - 135, 136, 528, 137, 138, 572, 578, 139, 140, 141, - 142, 584, 585, 98, 143, 144, 67, 68, 596, 69, - 81, 603, 1209, 145, 126, 146, 656, 1210, 667, 668, - 1311, 1394, 1395, 292, 293, 294, 670, 678, 809, 679, - 147, 148, 149, 681, 985, 1300, 1301, 1302, 1303, 1304, - 690, 876, 98, 691, 216, 1379, 698, 34, 1341, 1342, - 1343, 876, 1380, 704, 876, 1352, 1353, 1354, 1355, 1356, - 1357, 705, 1359, 1360, 1362, 150, 1365, 1366, 1367, 1368, - 1369, 1370, 1371, 1358, 1373, 2, 1375, 1364, 1378, 986, - 1382, 1619, 1621, 1381, 706, 1372, 67, 68, 707, 69, - 119, 709, 712, 635, 809, 109, 719, 751, 642, 1391, - 748, 1432, 752, 754, 764, 109, 109, 109, 109, 1209, - 766, 769, 767, 1235, 1210, 109, 109, 109, 255, 256, - 257, 258, 152, 153, 154, 876, 876, 876, 876, 876, - 876, 876, 768, 777, 778, 292, 293, 294, 779, 785, - 1410, 1404, 791, 792, 810, 1413, 503, 504, 505, 506, - 1414, 1179, 1180, 1181, 1182, 1408, 1420, 1409, 812, 811, - 825, 152, 153, 154, 829, 813, 1427, 821, 822, 844, - 1430, 1431, 831, 851, 292, 293, 294, 1502, 852, 853, - 854, 1434, 1437, 1438, 1439, 1440, 855, 856, 857, 27, - 28, 29, 30, 31, 32, 33, 859, 862, 860, 1503, - 913, 914, 1441, 1445, 917, 918, 920, 924, 925, 919, - 1508, 921, 643, 928, 1212, 959, 1456, 1457, 1458, 1459, - 1460, 1461, 960, 1463, 1515, 965, 966, 967, 968, 969, - 1060, 970, 971, 972, 1462, 973, 974, 1061, 975, 1062, - 1063, 1064, 809, 7, 10, 13, 976, 978, 979, 983, - 1032, 155, 1018, 1021, 13, 1005, 998, 1665, 1009, 1020, - 1496, 2, 1498, 1022, 644, 1014, 1025, 645, 1026, 1034, - 1037, 1033, 1035, 1036, 1038, 40, 1039, 1040, 1065, 1066, - 1067, 926, 1046, 1047, 1048, 1055, 27, 28, 29, 30, - 31, 32, 33, 156, 1556, 1057, 1089, 1095, 1097, 424, - 1514, 1098, 1100, 1099, 1103, 1150, 1153, 1519, 40, 1170, - 1215, 1216, 1217, 40, 1162, 40, 40, 40, 156, 40, - 1218, 1165, 40, 1219, 1068, 1069, 1070, 1212, 1071, 1257, - 1221, 1072, 1251, 1252, 40, 40, 40, 40, 27, 28, - 29, 30, 31, 32, 33, 1253, 104, 1267, 1258, 1264, - 1268, 1270, 1594, 1273, 1284, 1285, 1286, 1291, 97, 1558, - 1598, 1287, 1294, 99, 1298, 100, 40, 1288, 40, 1289, - 1290, 1296, 101, 1330, 1299, 1331, 926, 1335, 1336, 809, - 809, 809, 809, 809, 1332, 1337, 1338, 1339, 492, 102, - 989, 1388, 1390, 1569, 1570, 1571, 1392, 1393, 40, 1396, - 40, 809, 809, 1405, 103, 1406, 1407, 1411, 200, 1412, - 1415, 1416, 663, 1231, 1232, 1233, 1234, 1428, 809, 809, - 809, 809, 1433, 1175, 1177, 809, 809, 1183, 1650, 1185, - 1187, 809, 1189, 809, 809, 990, 1666, 10, 11, 12, - 13, 809, 809, 1651, 1191, 1605, 1193, 1195, 1197, 1199, - 1611, 1605, 1614, 1201, 1618, 1677, 1611, 1605, 1614, 1652, - 1449, 1448, 67, 68, 1452, 916, 1635, 1622, 1653, 1453, - 126, 1454, 1679, 1455, 1464, 1465, 1466, 1468, 1611, 1605, - 1614, 1467, 1654, 1655, 1656, 1657, 1469, 67, 68, 1470, - 69, 1472, 1471, 199, 1473, 126, 809, 809, 98, 809, - 809, 809, 1475, 809, 809, 809, 809, 809, 809, 809, - 809, 809, 1474, 926, 1658, 1659, 1660, 1661, 1662, 1663, - 1664, 200, 1476, 98, 27, 28, 29, 30, 31, 32, - 33, 1477, 1478, 1495, 1678, 40, 40, 40, 40, 1479, - 1480, 1673, 1481, 40, 1482, 1483, 40, 1484, 40, 40, - 40, 40, 40, 40, 40, 926, 40, 40, 40, 40, - 1485, 40, 40, 40, 1486, 40, 40, 40, 40, 1487, - 1488, 40, 40, 40, 40, 95, 1489, 1490, 96, 1491, - 392, 40, 1492, 40, 1493, 1494, 40, 1506, 1500, 1501, - 40, 40, 1510, 40, 1511, 1512, 1344, 40, 40, 40, - 40, 97, 98, 1516, 1627, 1517, 99, 1518, 100, 1346, - 1348, 1350, 1521, 1520, 40, 101, 1522, 152, 153, 154, - 1523, 1524, 1526, 1527, 1528, 1529, 1531, 1530, 1532, 1533, - 1534, 1536, 102, 40, 40, 40, 40, 40, 1535, 40, - 40, 1537, 152, 153, 154, 1538, 1539, 103, 191, 40, - 40, 192, 193, 194, 195, 1540, 196, 197, 198, 1541, - 157, 1542, 1543, 1544, 1545, 392, 40, 1550, 1546, 1547, - 1548, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 162, 160, 227, 228, 304, 165, 213, 55, 124, 125, + 59, 554, 555, 219, 118, 109, 45, 1022, 1254, 1268, + 926, 56, 169, 170, 171, 172, 164, 1156, 203, 48, + 556, 366, 914, 57, 675, 574, 676, 1058, 1307, 709, + 177, 178, 167, 629, 1305, 813, 629, 605, 119, 629, + 606, 476, 78, 838, 135, 839, 119, 206, 206, 206, + 1373, 147, 206, 206, 186, 1630, 1332, 303, 1601, 1417, + 442, 316, 209, 426, 428, 430, 432, 434, 566, 1603, + 1308, 338, 232, 287, 443, 1010, 1311, 1592, 156, 307, + 420, 316, 206, 34, 74, 1375, 629, 475, 1578, 742, + 743, 744, 397, 1609, 1584, 254, 164, 216, 238, 206, + 249, 252, 253, 732, 733, 472, 1434, 422, 284, 547, + 1611, 259, 167, 1612, 261, 425, 206, 585, 267, 206, + 1309, 1376, 427, 198, 1606, 298, 66, 547, 429, 297, + 72, 1622, 431, 662, 305, 1623, 486, 875, 284, 1170, + 1171, 285, 288, 489, 1614, 75, 521, 296, 286, 651, + 1616, 748, 218, 203, 67, 68, 1435, 69, 423, 109, + 91, 1625, 433, 693, 206, 1624, 423, 340, 488, 157, + 474, 499, 396, 423, 590, 466, 1644, 597, 295, 423, + 1174, 95, 759, 423, 96, 206, 1641, 1642, 1498, 1176, + 448, 449, 1506, 1643, 206, 469, 94, 439, 1219, 1166, + 749, 1681, 286, 875, 110, 1182, 470, 97, 98, 620, + 1100, 741, 99, 423, 100, 1148, 1184, 484, 309, 1583, + 1051, 101, 1186, 1445, 493, 747, 496, 471, 764, 111, + 1101, 1175, 910, 112, 1260, 816, 269, 135, 102, 269, + 1177, 576, 600, 147, 147, 825, 156, 67, 68, 1605, + 69, 487, 498, 103, 596, 126, 1183, 119, 114, 800, + 157, 598, 743, 534, 1147, 516, 517, 1185, 519, 206, + 541, 305, 523, 1187, 747, 525, 78, 1628, 440, 528, + 1339, 78, 1165, 98, 537, 538, 539, 540, 1073, 1074, + 1075, 119, 119, 1494, 832, 566, 1228, 2, 216, 572, + 67, 68, 664, 69, 119, 599, 833, 834, 559, 55, + 976, 562, 59, 1629, 119, 593, 119, 557, 45, 908, + 581, 587, 560, 56, 835, 1043, 67, 68, 578, 69, + 558, 48, 588, 119, 561, 57, 119, 719, 720, 109, + 594, 122, 123, 582, 781, 164, 120, 121, 838, 603, + 839, 875, 168, 216, 119, 618, 67, 68, 119, 69, + 760, 167, 98, 583, 584, 117, 626, 122, 123, 628, + 628, 647, 653, 119, 836, 582, 34, 1291, 702, 217, + 627, 627, 646, 652, 122, 123, 34, 1504, 119, 1057, + 216, 204, 98, 495, 1041, 583, 584, 716, 207, 122, + 123, 1590, 152, 153, 154, 674, 591, 127, 592, 119, + 119, 128, 129, 130, 131, 132, 119, 133, 134, 135, + 136, 216, 137, 138, 679, 491, 139, 140, 141, 142, + 745, 746, 98, 143, 144, 1627, 216, 235, 236, 698, + 67, 68, 145, 69, 146, 486, 366, 291, 292, 293, + 604, 691, 636, 692, 1585, 269, 762, 808, 269, 147, + 148, 149, 119, 1418, 1188, 775, 156, 156, 469, 156, + 1172, 1190, 109, 529, 173, 286, 13, 573, 298, 976, + 717, 1192, 297, 289, 1607, 730, 649, 734, 749, 650, + 1333, 738, 67, 68, 150, 69, 119, 780, 127, 179, + 296, 739, 128, 129, 130, 131, 132, 34, 133, 134, + 135, 136, 798, 137, 138, 1189, 1304, 139, 140, 141, + 142, 629, 1191, 298, 143, 144, 484, 297, 770, 1194, + 875, 295, 1193, 145, 817, 146, 1196, 749, 1595, 283, + 875, 122, 123, 875, 837, 296, 1198, 478, 479, 338, + 147, 148, 149, 1449, 1450, 949, 950, 771, 773, 1200, + 27, 28, 29, 30, 31, 32, 33, 786, 1077, 468, + 174, 67, 1202, 1446, 69, 119, 295, 845, 779, 849, + 1195, 782, 1079, 476, 476, 150, 772, 1197, 787, 180, + 951, 1635, 340, 785, 1586, 67, 68, 1199, 69, 832, + 2, 911, 1204, 806, 366, 806, 806, 518, 806, 182, + 1201, 833, 834, 524, 875, 875, 875, 875, 875, 875, + 875, 531, 183, 1203, 1608, 818, 819, 1206, 827, 835, + 184, 822, 203, 823, 829, 848, 188, 70, 73, 76, + 79, 82, 85, 88, 745, 990, 548, 185, 1343, 67, + 68, 996, 69, 1205, 568, 220, 569, 983, 987, 206, + 570, 1007, 34, 206, 548, 259, 633, 124, 579, 580, + 67, 68, 589, 69, 1553, 534, 1208, 1602, 1207, 836, + 155, 1209, 233, 1345, 284, 1347, 67, 554, 555, 69, + 119, 719, 720, 745, 1016, 619, 925, 67, 68, 1344, + 69, 956, 963, 957, 1503, 1226, 556, 206, 1349, 955, + 992, 831, 947, 298, 1554, 156, 121, 752, 981, 221, + 1080, 34, 1081, 1082, 1083, 1084, 1085, 1562, 1234, 67, + 952, 953, 69, 954, 1346, 296, 1348, 222, 994, 986, + 250, 251, 1009, 991, 993, 995, 290, 1055, 670, 671, + 340, 672, 234, 673, 1012, 67, 68, 156, 69, 1350, + 1023, 925, 771, 481, 482, 771, 295, 1014, 681, 682, + 260, 155, 554, 67, 68, 554, 69, 831, 1259, 13, + 476, 269, 269, 1360, 269, 1362, 1026, 1243, 1278, 1496, + 206, 634, 299, 622, 635, 1028, 623, 624, 237, 1556, + 291, 292, 293, 1565, 582, 476, 1564, 1208, 806, 531, + 1638, 300, 1209, 1042, 607, 1044, 608, 609, 610, 1619, + 702, 1157, 308, 34, 583, 584, 1052, 722, 572, 572, + 1167, 294, 727, 728, 729, 1669, 731, 476, 735, 736, + 737, 444, 740, 445, 446, 291, 292, 293, 301, 119, + 447, 582, 1646, 27, 28, 29, 30, 31, 32, 33, + 262, 263, 302, 27, 28, 29, 30, 31, 32, 33, + 264, 583, 584, 566, 756, 757, 2, 1159, 572, 67, + 68, 34, 69, 1671, 67, 68, 1261, 69, 1262, 1524, + 627, 627, 126, 309, 1151, 269, 269, 769, 1683, 310, + 774, 311, 67, 68, 374, 69, 119, 67, 68, 398, + 69, 1253, 421, 1255, 577, 577, 435, 529, 1072, 438, + 98, 783, 450, 1378, 473, 831, 67, 68, 789, 69, + 1379, 476, 1428, 119, 126, 2, 1647, 1213, 98, 467, + 627, 476, 1212, 807, 477, 1211, 480, 625, 494, 241, + 1441, 1442, 1443, 1274, 1221, 1277, 497, 1223, 67, 68, + 490, 69, 98, 1227, 577, 500, 67, 1281, 826, 69, + 119, 37, 1222, 1420, 1421, 37, 614, 614, 1680, 37, + 37, 831, 925, 501, 27, 28, 29, 30, 31, 32, + 33, 831, 844, 37, 559, 200, 506, 562, 1258, 1238, + 1247, 647, 507, 557, 508, 787, 509, 787, 560, 1296, + 1236, 1245, 646, 510, 34, 862, 558, 511, 1235, 1244, + 561, 512, 1237, 1246, 37, 513, 614, 514, 1230, 1231, + 1232, 1233, 803, 804, 805, 291, 292, 293, 1280, 152, + 153, 154, 122, 123, 582, 67, 68, 515, 69, 960, + 961, 962, 10, 11, 12, 13, 1633, 1396, 1397, 1398, + 1399, 520, 1326, 925, 583, 584, 526, 1400, 1401, 1402, + 1422, 1423, 522, 979, 531, 476, 1640, 122, 123, 582, + 645, 152, 153, 154, 831, 831, 566, 566, 527, 566, + 1240, 571, 1241, 1242, 1003, 2, 1005, 543, 1006, 583, + 584, 1103, 1104, 1011, 831, 577, 156, 1015, 613, 613, + 595, 10, 11, 12, 13, 468, 831, 677, 831, 831, + 602, 831, 831, 1208, 61, 64, 1027, 67, 1209, 655, + 1393, 1394, 255, 256, 257, 258, 1029, 1030, 666, 27, + 28, 29, 30, 31, 32, 33, 502, 503, 504, 505, + 1040, 157, 667, 669, 678, 92, 223, 298, 224, 225, + 226, 297, 680, 156, 1357, 689, 67, 68, 1363, 69, + 119, 1059, 1380, 1076, 1618, 1620, 1371, 690, 1060, 296, + 1061, 1062, 1063, 97, 100, 1086, 103, 1087, 831, 831, + 831, 831, 831, 831, 831, 704, 216, 697, 27, 28, + 29, 30, 31, 32, 33, 705, 703, 706, 1390, 847, + 295, 711, 109, 1626, 92, 1431, 708, 634, 723, 1064, + 1065, 1066, 109, 109, 109, 109, 718, 724, 2, 725, + 726, 750, 109, 109, 109, 191, 1403, 1155, 192, 193, + 194, 195, 747, 196, 197, 198, 751, 1168, 753, 763, + 1407, 641, 1408, 765, 8, 9, 766, 767, 768, 1413, + 656, 657, 658, 776, 777, 1067, 1068, 1069, 778, 1070, + 784, 791, 1071, 790, 13, 67, 68, 298, 69, 1018, + 92, 297, 1282, 126, 811, 1501, 621, 809, 622, 828, + 812, 623, 624, 37, 37, 37, 659, 660, 661, 296, + 27, 28, 29, 30, 31, 32, 33, 810, 1502, 820, + 821, 98, 824, 830, 1631, 843, 850, 852, 1224, 1507, + 1225, 1632, 208, 853, 25, 1461, 851, 859, 22, 854, + 295, 1211, 67, 68, 855, 915, 856, 858, 1514, 912, + 126, 1178, 1179, 1180, 1181, 789, 19, 789, 861, 1495, + 683, 684, 685, 808, 1436, 1437, 1438, 1439, 27, 28, + 29, 30, 31, 32, 33, 642, 918, 913, 98, 1270, + 916, 1497, 1271, 920, 919, 917, 923, 16, 924, 67, + 68, 208, 69, 208, 927, 958, 686, 687, 688, 127, + 925, 959, 964, 128, 129, 130, 131, 132, 965, 133, + 134, 135, 136, 1555, 137, 138, 966, 13, 139, 140, + 141, 142, 808, 967, 968, 143, 144, 643, 969, 970, + 644, 971, 972, 973, 145, 974, 146, 975, 92, 977, + 152, 153, 154, 1089, 1090, 1091, 1092, 1093, 978, 982, + 1004, 147, 148, 149, 1211, 997, 1017, 208, 1008, 928, + 929, 930, 1019, 931, 932, 933, 934, 1013, 935, 936, + 198, 1593, 937, 938, 939, 940, 1020, 1021, 1557, 941, + 942, 200, 1024, 1310, 1597, 1031, 150, 1032, 808, 291, + 292, 293, 1025, 67, 68, 925, 69, 152, 153, 154, + 1033, 27, 28, 29, 30, 31, 32, 33, 1034, 1035, + 1036, 1340, 1341, 1342, 1037, 1047, 1038, 1039, 1351, 1352, + 1353, 1354, 1355, 1356, 1045, 1358, 1359, 1361, 1046, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1056, 1372, 423, 1374, + 1054, 1377, 1088, 1381, 1094, 1059, 1096, 943, 1098, 1097, + 1099, 1102, 1060, 1149, 1061, 1062, 1063, 1152, 1214, 1161, + 1665, 1164, 1169, 1215, 1216, 1634, 199, 1217, 1621, 1218, + 1220, 1250, 1251, 1676, 1252, 92, 92, 92, 92, 92, + 1299, 1300, 1301, 1302, 1303, 1256, 1257, 1263, 240, 241, + 242, 1678, 1266, 1064, 1065, 1066, 1269, 92, 92, 1272, + 392, 1267, 1286, 1409, 1283, 208, 1284, 1285, 1412, 291, + 292, 293, 1287, 243, 92, 92, 92, 92, 1288, 1419, + 1289, 92, 92, 104, 1290, 1293, 1297, 92, 1298, 1426, + 92, 1295, 925, 1429, 1430, 1329, 808, 92, 92, 1067, + 1068, 1069, 1330, 1070, 1433, 1334, 1071, 1331, 1335, 1336, + 1337, 1338, 491, 1677, 208, 1387, 7, 10, 13, 1389, + 1391, 1392, 1395, 1404, 1406, 1440, 1444, 1405, 1411, 1414, + 1410, 1432, 155, 1415, 925, 662, 40, 1427, 1174, 1455, + 1456, 1457, 1458, 1459, 1460, 392, 1462, 1176, 1182, 1184, + 1186, 1188, 92, 92, 1190, 92, 92, 92, 1192, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 244, 40, + 245, 246, 247, 248, 40, 1194, 40, 40, 40, 1196, + 40, 191, 1198, 40, 192, 193, 194, 195, 1200, 196, + 197, 198, 1448, 1451, 1447, 40, 40, 40, 40, 1452, + 1453, 1463, 208, 208, 208, 208, 208, 1465, 1454, 1464, + 1466, 1467, 1468, 1469, 1470, 1471, 208, 1472, 1473, 1474, + 1475, 208, 1476, 1513, 208, 208, 34, 40, 1477, 40, + 1518, 1478, 1479, 808, 808, 808, 808, 808, 1480, 1481, + 393, 208, 208, 208, 208, 1483, 208, 208, 208, 208, + 1482, 1484, 1485, 1487, 208, 808, 808, 208, 1486, 40, + 1488, 40, 1489, 1490, 208, 208, 208, 1492, 1493, 1499, + 1491, 1505, 808, 808, 808, 808, 1500, 1509, 1510, 808, + 808, 1511, 1515, 1516, 1343, 808, 1517, 808, 808, 1345, + 1347, 1349, 1249, 1519, 1527, 808, 808, 1520, 1521, 156, + 392, 208, 208, 392, 392, 392, 392, 1523, 392, 392, + 392, 1522, 95, 1525, 1526, 96, 1568, 1569, 1570, 208, + 208, 1528, 208, 208, 208, 393, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 1529, 1530, 1531, 97, 98, + 1532, 1533, 1535, 99, 1537, 100, 1538, 1539, 1534, 1536, + 808, 808, 101, 808, 808, 808, 1540, 808, 808, 808, + 808, 808, 808, 808, 808, 808, 1541, 1542, 1604, 102, + 1543, 1544, 1545, 1610, 1604, 1613, 1546, 1617, 1547, 1610, + 1604, 1613, 1548, 1550, 103, 1549, 1551, 1563, 1508, 1558, + 1552, 1561, 1567, 1573, 1574, 1575, 40, 40, 40, 40, + 1591, 1610, 1604, 1613, 40, 1576, 921, 40, 1594, 40, + 40, 40, 40, 40, 40, 40, 1596, 40, 40, 40, + 40, 1598, 40, 40, 40, 1599, 40, 40, 40, 40, + 1600, 1636, 40, 40, 40, 40, 97, 1637, 1648, 1666, + 2, 99, 40, 100, 40, 1645, 1667, 40, 1668, 1673, + 101, 40, 40, 1670, 40, 1674, 1675, 1679, 40, 40, + 40, 40, 393, 641, 1672, 393, 281, 102, 67, 68, + 216, 69, 119, 1684, 1682, 40, 126, 437, 438, 104, + 393, 137, 103, 393, 393, 393, 393, 29, 393, 393, + 393, 1154, 811, 867, 40, 40, 40, 40, 40, 745, + 40, 40, 545, 399, 98, 846, 756, 543, 838, 546, + 40, 40, 538, 138, 763, 541, 868, 757, 542, 550, + 271, 157, 143, 839, 74, 847, 164, 40, 719, 720, + 240, 144, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 1549, - 1551, 1553, 1559, 566, 393, 1283, 1562, 1552, 210, 1564, - 1574, 1575, 1576, 1577, 40, 40, 40, 40, 1568, 40, - 40, 40, 40, 1592, 922, 40, 1595, 40, 1597, 40, - 40, 40, 40, 1599, 40, 40, 566, 40, 40, 40, - 1600, 566, 1601, 566, 566, 566, 40, 566, 1637, 1638, - 566, 191, 1649, 1646, 192, 193, 194, 195, 1667, 196, - 197, 198, 566, 566, 566, 566, 1668, 1669, 1671, 1674, - 1675, 1676, 1680, 1683, 40, 40, 40, 1685, 437, 104, - 29, 438, 746, 545, 137, 812, 868, 543, 147, 393, - 399, 167, 40, 40, 566, 40, 40, 40, 847, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 757, 40, - 392, 839, 546, 392, 392, 392, 392, 538, 392, 392, - 392, 138, 764, 541, 542, 758, 566, 869, 566, 550, - 929, 930, 931, 271, 932, 933, 934, 935, 74, 936, - 937, 198, 840, 938, 939, 940, 941, 848, 143, 164, - 942, 943, 144, 576, 240, 210, 861, 4, 208, 28, - 31, 34, 37, 40, 43, 46, 156, 49, 34, 52, - 55, 58, 61, 64, 67, 70, 73, 67, 68, 64, - 69, 76, 79, 669, 106, 126, 142, 154, 127, 157, - 103, 160, 128, 129, 130, 131, 132, 103, 133, 134, - 135, 136, 103, 137, 138, 103, 103, 139, 140, 141, - 142, 103, 103, 98, 143, 144, 103, 208, 944, 208, - 103, 166, 861, 145, 163, 146, 393, 67, 68, 393, - 69, 1051, 103, 314, 637, 1274, 1266, 1151, 981, 1425, - 147, 148, 149, 1567, 393, 1265, 1329, 393, 393, 393, - 393, 103, 393, 393, 393, 103, 103, 1174, 1060, 103, - 103, 1164, 923, 566, 566, 1061, 566, 1062, 1063, 1064, - 1426, 566, 1417, 708, 566, 150, 566, 566, 566, 566, - 566, 566, 566, 208, 566, 566, 566, 566, 602, 566, - 566, 163, 93, 566, 566, 566, 566, 1161, 1389, 566, - 566, 566, 566, 239, 759, 166, 1065, 1066, 1067, 566, - 999, 566, 543, 800, 566, 95, 1003, 858, 96, 566, - 202, 639, 240, 241, 242, 566, 566, 566, 566, 0, - 716, 0, 152, 153, 154, 67, 68, 216, 69, 119, - 0, 97, 98, 126, 0, 0, 99, 243, 100, 0, - 0, 0, 1068, 1069, 1070, 101, 1071, 0, 1155, 1072, - 0, 566, 0, 566, 566, 566, 0, 0, 0, 0, - 861, 98, 102, 0, 0, 0, 0, 566, 566, 0, - 0, 0, 2, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 861, 566, 720, 721, 0, 0, 566, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 147, 167, 210, 576, 566, 4, 298, 642, 28, 210, + 31, 58, 28, 55, 55, 40, 40, 40, 40, 94, + 40, 40, 40, 40, 106, 55, 40, 55, 40, 55, + 40, 40, 40, 40, 109, 40, 40, 566, 40, 40, + 40, 112, 566, 115, 566, 566, 566, 40, 566, 13, + 55, 566, 313, 152, 153, 154, 55, 55, 1050, 643, + 118, 1265, 644, 566, 566, 566, 566, 668, 55, 55, + 1273, 1059, 1566, 1150, 980, 40, 40, 40, 1060, 55, + 1061, 1062, 1063, 1424, 55, 97, 1264, 1328, 55, 1173, + 99, 55, 100, 40, 40, 566, 40, 40, 40, 101, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 55, + 40, 1385, 922, 1163, 1416, 1425, 102, 988, 601, 1064, + 1065, 1066, 1160, 707, 163, 812, 812, 566, 812, 566, + 93, 103, 1388, 27, 28, 29, 30, 31, 32, 33, + 268, 269, 270, 239, 271, 272, 273, 274, 758, 275, + 276, 166, 998, 277, 278, 279, 280, 860, 542, 210, + 1002, 857, 989, 202, 799, 1067, 1068, 1069, 715, 1070, + 0, 0, 1071, 638, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 210, 0, + 812, 812, 812, 860, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 812, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, + 0, 0, 0, 0, 566, 566, 298, 566, 298, 298, + 298, 0, 566, 0, 0, 566, 150, 566, 566, 566, + 566, 566, 566, 566, 210, 566, 566, 566, 566, 0, + 566, 566, 0, 0, 566, 566, 566, 566, 0, 0, + 566, 566, 566, 566, 0, 0, 0, 298, 298, 298, + 566, 0, 566, 0, 0, 566, 0, 0, 0, 0, + 566, 0, 0, 0, 0, 0, 566, 566, 566, 566, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 812, 0, 812, 812, 812, 812, 0, 0, 0, 0, + 0, 0, 0, 298, 298, 298, 0, 298, 0, 0, + 298, 0, 566, 0, 566, 566, 566, 0, 0, 0, + 0, 860, 0, 0, 0, 0, 0, 0, 566, 566, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 860, 566, 0, 0, 0, 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 0, 0, - 0, 208, 566, 0, 0, 566, 566, 0, 0, 0, - 0, 567, 244, 0, 245, 246, 247, 248, 634, 0, - 0, 0, 566, 566, 566, 566, 0, 566, 566, 566, - 566, 155, 0, 566, 0, 566, 0, 566, 566, 566, - 0, 0, 566, 566, 567, 566, 566, 566, 0, 567, - 208, 567, 567, 567, 566, 567, 0, 0, 567, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 567, 567, 567, 567, 0, 0, 0, 861, 0, 0, - 0, 0, 566, 566, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, - 566, 566, 567, 566, 566, 566, 0, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 0, 566, 0, 861, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 861, - 0, 13, 861, 0, 567, 0, 567, 0, 208, 208, - 208, 208, 208, 635, 0, 623, 636, 0, 624, 625, - 0, 0, 208, 0, 0, 0, 0, 208, 0, 0, - 208, 208, 0, 0, 862, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 208, 208, - 208, 0, 208, 208, 208, 208, 0, 0, 0, 0, - 208, 0, 0, 208, 0, 0, 0, 0, 0, 0, - 208, 208, 208, 861, 861, 861, 861, 861, 861, 861, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 210, 0, 0, 0, 0, - 862, 0, 0, 0, 0, 0, 0, 208, 208, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 0, 208, 208, 0, 208, 208, - 208, 0, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 567, 567, 0, 567, 0, 0, 0, 0, 567, - 813, 813, 567, 813, 567, 567, 567, 567, 567, 567, - 567, 210, 567, 567, 567, 567, 0, 567, 567, 0, - 0, 567, 567, 567, 567, 0, 0, 567, 567, 567, - 567, 0, 0, 0, 0, 0, 0, 567, 0, 567, - 0, 0, 567, 0, 0, 0, 0, 567, 0, 0, - 0, 127, 0, 567, 567, 567, 567, 268, 269, 270, - 0, 271, 272, 273, 274, 0, 275, 276, 0, 0, - 277, 278, 279, 280, 0, 0, 0, 0, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, - 0, 567, 567, 567, 0, 813, 813, 813, 862, 0, - 0, 0, 0, 0, 0, 567, 567, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 813, 862, 567, 0, 0, 0, 0, 567, 567, 567, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, + 0, 0, 210, 566, 0, 0, 566, 566, 0, 0, + 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 566, 566, 566, 0, 566, 566, + 566, 566, 155, 0, 566, 0, 566, 0, 566, 566, + 566, 0, 0, 566, 566, 567, 566, 566, 566, 0, + 567, 210, 567, 567, 567, 566, 567, 0, 0, 567, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 567, 567, 567, 567, 0, 0, 0, 860, 0, + 0, 0, 0, 566, 566, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 0, 566, 566, 567, 566, 566, 566, 0, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 0, 566, 0, + 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 860, 0, 0, 860, 0, 567, 1664, 567, 0, 210, + 210, 210, 210, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 210, 0, + 0, 210, 210, 0, 861, 0, 0, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, + 210, 210, 0, 210, 210, 210, 210, 0, 0, 0, + 0, 210, 0, 0, 210, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 860, 860, 860, 860, 860, 860, + 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 861, 0, 0, 0, 0, 0, 0, 0, 210, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 210, 0, 210, + 210, 210, 0, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 567, 567, 0, 567, 0, 0, 0, 0, + 567, 0, 0, 567, 0, 567, 567, 567, 567, 567, + 567, 567, 93, 567, 567, 567, 567, 0, 567, 567, + 0, 0, 567, 567, 567, 567, 0, 1649, 567, 567, + 567, 567, 0, 0, 0, 0, 0, 0, 567, 0, + 567, 0, 1650, 567, 0, 0, 0, 0, 567, 216, + 0, 0, 0, 0, 567, 567, 567, 567, 1651, 0, + 0, 0, 0, 0, 1312, 1313, 1314, 1652, 1315, 1316, + 1317, 1318, 0, 1319, 1320, 198, 0, 1321, 1322, 1323, + 1324, 1653, 1654, 1655, 1656, 0, 1325, 0, 0, 0, + 567, 0, 567, 567, 567, 0, 0, 0, 861, 0, + 0, 0, 0, 0, 0, 0, 567, 567, 0, 0, + 0, 0, 0, 1657, 1658, 1659, 1660, 1661, 1662, 1663, + 0, 861, 0, 567, 0, 0, 0, 0, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 0, 0, 0, 210, - 567, 0, 0, 567, 567, 0, 0, 0, 0, 560, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 567, 567, 567, 567, 0, 567, 567, 567, 567, 0, - 0, 567, 0, 567, 0, 567, 567, 567, 0, 0, - 567, 567, 560, 567, 567, 567, 0, 560, 210, 560, - 560, 560, 567, 560, 0, 813, 0, 813, 813, 813, - 813, 0, 0, 0, 0, 0, 0, 0, 560, 560, - 560, 560, 0, 0, 0, 862, 0, 0, 0, 0, - 567, 567, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 567, 567, - 560, 567, 567, 567, 0, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 0, 567, 0, 862, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, - 862, 0, 560, 0, 560, 0, 210, 210, 210, 210, - 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 210, 0, 0, 0, 0, 210, 0, 0, 210, 210, - 0, 863, 0, 0, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 210, 210, 0, - 210, 210, 210, 210, 0, 0, 0, 0, 210, 0, - 0, 210, 0, 0, 0, 0, 0, 0, 210, 210, - 210, 862, 862, 862, 862, 862, 862, 862, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 0, 0, 863, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 210, 0, 210, 210, 210, 0, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 560, - 560, 0, 560, 0, 0, 0, 0, 560, 0, 0, - 560, 0, 560, 560, 560, 560, 560, 560, 560, 92, - 560, 560, 560, 560, 0, 560, 560, 0, 0, 560, - 560, 560, 560, 0, 0, 560, 560, 560, 560, 0, - 0, 0, 0, 0, 0, 560, 0, 560, 0, 0, - 560, 216, 0, 0, 0, 560, 0, 0, 0, 1509, - 0, 560, 560, 560, 560, 0, 1313, 1314, 1315, 0, - 1316, 1317, 1318, 1319, 0, 1320, 1321, 198, 0, 1322, - 1323, 1324, 1325, 0, 0, 0, 0, 0, 1326, 0, - 0, 0, 0, 0, 0, 0, 0, 560, 0, 560, - 560, 560, 0, 0, 0, 863, 0, 0, 0, 0, - 0, 0, 0, 560, 560, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 863, 0, - 560, 0, 0, 0, 0, 560, 560, 560, 560, 560, + 567, 567, 567, 567, 567, 567, 567, 0, 0, 0, + 93, 567, 0, 0, 567, 567, 0, 0, 0, 0, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 567, 567, 567, 567, 0, 567, 567, 567, 567, + 0, 0, 567, 0, 567, 0, 567, 567, 567, 0, + 0, 567, 567, 560, 567, 567, 567, 0, 560, 0, + 560, 560, 560, 567, 560, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, + 560, 560, 560, 0, 0, 861, 0, 0, 0, 0, + 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, + 567, 560, 567, 567, 567, 0, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 0, 567, 861, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 861, 0, 0, + 861, 0, 0, 560, 0, 560, 0, 93, 93, 93, + 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 93, 0, 862, 0, 0, 94, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, + 0, 0, 0, 93, 93, 0, 0, 0, 0, 93, + 0, 0, 93, 0, 0, 0, 0, 0, 0, 93, + 93, 861, 861, 861, 861, 861, 861, 861, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 127, 94, 0, 0, 0, 862, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 1382, + 144, 0, 0, 0, 93, 93, 0, 93, 93, 93, + 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 560, 560, 0, 560, 0, 0, 0, 0, 560, 0, + 0, 560, 0, 560, 560, 560, 560, 560, 560, 560, + 94, 560, 560, 560, 560, 0, 560, 560, 1383, 0, + 560, 560, 560, 560, 0, 0, 560, 560, 560, 560, + 0, 0, 0, 0, 0, 0, 560, 1384, 560, 0, + 0, 560, 0, 0, 0, 0, 560, 0, 0, 0, + 0, 0, 560, 560, 560, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 560, 560, 560, 0, 0, 0, 862, 0, 0, 0, + 0, 0, 0, 0, 560, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, + 0, 560, 0, 0, 0, 0, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 560, 560, 0, 0, 0, 92, 560, 0, - 0, 560, 560, 0, 0, 0, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 560, - 560, 560, 0, 560, 560, 560, 560, 0, 0, 560, - 0, 560, 0, 560, 560, 560, 0, 0, 560, 560, - 558, 560, 560, 560, 0, 558, 0, 558, 558, 558, - 560, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, - 0, 0, 863, 0, 0, 0, 0, 0, 560, 560, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 560, 560, 558, 560, - 560, 560, 0, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 0, 560, 863, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 863, 0, 0, 863, 0, 0, - 558, 0, 558, 0, 92, 92, 92, 92, 92, 0, - 0, 0, 1060, 0, 0, 0, 0, 0, 0, 1061, - 0, 1062, 1063, 1064, 0, 0, 92, 92, 0, 0, - 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 92, 92, 92, 0, 0, 0, - 92, 92, 0, 0, 0, 0, 92, 0, 0, 92, - 1065, 1066, 1067, 0, 0, 0, 92, 92, 863, 863, - 863, 863, 863, 863, 863, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1068, 1069, 1070, 0, - 1071, 0, 0, 1072, 0, 0, 0, 0, 0, 0, - 0, 92, 92, 0, 92, 92, 92, 0, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 558, 558, 0, - 558, 0, 0, 0, 0, 558, 0, 0, 558, 0, - 558, 558, 558, 558, 558, 558, 558, 93, 558, 558, - 558, 558, 0, 558, 558, 0, 0, 558, 558, 558, - 558, 298, 0, 558, 558, 558, 558, 0, 0, 0, - 0, 0, 0, 558, 0, 558, 0, 0, 558, 0, - 0, 0, 0, 558, 0, 0, 0, 0, 0, 558, - 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 558, 0, 558, 558, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, - 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, + 560, 560, 560, 560, 560, 0, 0, 0, 94, 560, + 0, 0, 560, 560, 0, 0, 0, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, + 560, 560, 560, 0, 560, 560, 560, 560, 0, 0, + 560, 0, 560, 0, 560, 560, 560, 0, 0, 560, + 560, 558, 560, 560, 560, 0, 558, 0, 558, 558, + 558, 560, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, + 558, 0, 0, 862, 0, 0, 0, 0, 0, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 560, 558, + 560, 560, 560, 0, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 0, 560, 862, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 862, 0, 0, 862, 0, + 0, 558, 0, 558, 0, 94, 94, 94, 94, 94, + 928, 929, 930, 0, 931, 932, 933, 934, 0, 935, + 936, 198, 0, 937, 938, 939, 940, 94, 94, 0, + 941, 942, 0, 805, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 94, 94, 0, 0, + 0, 94, 94, 0, 0, 0, 0, 94, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 94, 94, 862, + 862, 862, 862, 862, 862, 862, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 805, 0, 0, 0, 0, 0, 943, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 94, 0, 94, 94, 94, 0, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 558, 558, + 0, 558, 0, 0, 0, 0, 558, 0, 0, 558, + 0, 558, 558, 558, 558, 558, 558, 558, 805, 558, + 558, 558, 558, 0, 558, 558, 0, 0, 558, 558, + 558, 558, 0, 0, 558, 558, 558, 558, 0, 0, + 0, 0, 0, 0, 558, 0, 558, 0, 0, 558, + 0, 0, 0, 0, 558, 1105, 0, 0, 0, 0, + 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1106, 1107, 0, 1108, 1109, 1110, + 1111, 1112, 1113, 0, 1114, 1115, 0, 1116, 1117, 1118, + 1119, 1120, 0, 0, 0, 0, 558, 0, 558, 558, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 558, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, + 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 0, 0, 0, 93, 558, 0, 0, 558, - 558, 0, 0, 0, 0, 556, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, - 0, 558, 558, 558, 558, 0, 0, 558, 0, 558, - 0, 558, 558, 558, 0, 0, 558, 558, 556, 558, - 558, 558, 0, 556, 0, 556, 556, 556, 558, 556, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 556, 556, 556, 0, 0, - 0, 0, 0, 0, 0, 0, 558, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 558, 558, 556, 558, 558, 558, - 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 0, 558, 0, 0, 298, 0, 0, 0, 0, 0, - 0, 298, 0, 298, 298, 298, 0, 0, 556, 0, - 556, 127, 93, 93, 93, 93, 93, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 93, 93, 0, 1383, 144, 0, - 94, 0, 298, 298, 298, 0, 0, 0, 0, 0, - 0, 93, 93, 93, 93, 0, 0, 0, 93, 93, - 0, 0, 0, 0, 93, 0, 0, 93, 0, 0, - 0, 0, 0, 0, 93, 93, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1384, 0, 298, 298, - 298, 0, 298, 0, 0, 298, 0, 0, 0, 94, - 0, 0, 929, 930, 931, 1385, 932, 933, 934, 935, - 0, 936, 937, 198, 0, 938, 939, 940, 941, 0, - 0, 0, 942, 943, 0, 0, 0, 0, 0, 93, - 93, 0, 93, 93, 93, 0, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 556, 556, 0, 556, 0, - 0, 0, 0, 556, 0, 0, 556, 0, 556, 556, - 556, 556, 556, 556, 556, 94, 556, 556, 556, 556, - 0, 556, 556, 0, 0, 556, 556, 556, 556, 0, - 0, 556, 556, 556, 556, 0, 0, 0, 0, 0, - 944, 556, 0, 556, 0, 0, 556, 0, 0, 0, - 0, 556, 1106, 0, 0, 0, 0, 556, 556, 556, - 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1107, 1108, 0, 1109, 1110, 1111, 1112, 1113, 1114, - 0, 1115, 1116, 0, 1117, 1118, 1119, 1120, 1121, 0, - 0, 0, 0, 556, 0, 556, 556, 556, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 558, 558, 558, 0, 0, 0, 805, 558, 0, 0, + 558, 558, 0, 0, 0, 0, 556, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, + 558, 0, 558, 558, 558, 558, 0, 0, 558, 0, + 558, 0, 558, 558, 558, 0, 0, 558, 558, 556, + 558, 558, 558, 0, 556, 0, 556, 556, 556, 558, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, - 0, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 0, 0, 0, 94, 556, 0, 0, 556, 556, 0, - 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 556, 556, 556, 0, 556, - 556, 556, 556, 0, 0, 556, 0, 556, 0, 556, - 556, 556, 0, 0, 556, 556, 557, 556, 556, 556, - 0, 557, 0, 557, 557, 557, 556, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 557, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 556, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 556, 556, 557, 556, 556, 556, 0, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 0, 556, - 1122, 1123, 0, 1124, 1125, 1126, 0, 1127, 1128, 0, - 0, 1129, 1130, 0, 1131, 0, 557, 0, 557, 0, - 94, 94, 94, 94, 94, 0, 0, 1132, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 0, 94, 94, 0, 0, 0, 0, 806, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 94, 94, 94, 0, 0, 0, 94, 94, 0, 0, - 0, 0, 94, 0, 0, 94, 0, 0, 0, 0, - 0, 0, 94, 94, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 806, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, - 94, 94, 94, 0, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 557, 557, 0, 557, 0, 0, 0, - 0, 557, 0, 0, 557, 0, 557, 557, 557, 557, - 557, 557, 557, 806, 557, 557, 557, 557, 0, 557, - 557, 0, 0, 557, 557, 557, 557, 0, 0, 557, - 557, 557, 557, 0, 0, 0, 0, 0, 0, 557, - 0, 557, 0, 0, 557, 0, 0, 0, 0, 557, - 0, 0, 0, 0, 0, 557, 557, 557, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 557, 0, 557, 557, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 557, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 557, 0, 0, 0, 0, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 0, 0, - 0, 806, 557, 0, 0, 557, 557, 0, 0, 0, - 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 557, 557, 0, 557, 557, 557, - 557, 0, 0, 557, 0, 557, 0, 557, 557, 557, - 0, 0, 557, 557, 559, 557, 557, 557, 0, 559, - 0, 559, 559, 559, 557, 559, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 559, 559, 559, 559, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 557, 557, 559, 557, 557, 557, 0, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 559, 0, 559, 0, 806, 806, - 806, 806, 806, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 806, 806, 376, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 806, 806, 806, - 806, 0, 0, 0, 806, 806, 0, 0, 0, 0, - 806, 377, 0, 806, 0, 378, 0, 0, 379, 380, - 806, 806, 0, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 0, 0, 0, 0, 0, - 0, 393, 0, 0, 394, 47, 0, 0, 0, 0, - 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, - 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 806, 806, 0, 806, 806, - 806, 0, 806, 806, 806, 806, 806, 806, 806, 806, - 806, 559, 559, 0, 559, 0, 0, 0, 0, 559, - 0, 0, 559, 0, 559, 559, 559, 559, 559, 559, - 559, 47, 559, 559, 559, 559, 0, 559, 559, 0, - 0, 559, 559, 559, 559, 0, 0, 559, 559, 559, - 559, 0, 0, 0, 0, 0, 0, 559, 0, 559, - 0, 0, 559, 0, 0, 0, 0, 559, 0, 0, - 0, 0, 0, 559, 559, 559, 559, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 556, 556, 556, 556, 0, + 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 558, 558, 556, 558, 558, + 558, 0, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 0, 558, 1121, 1122, 0, 1123, 1124, 1125, 0, + 1126, 1127, 0, 0, 1128, 1129, 0, 1130, 0, 556, + 0, 556, 0, 805, 805, 805, 805, 805, 0, 0, + 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 0, 805, 805, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 805, 805, 805, 805, 0, 0, 0, 805, + 805, 0, 0, 0, 0, 805, 0, 0, 805, 0, + 0, 0, 0, 0, 0, 805, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 559, - 0, 559, 559, 559, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 559, 0, 0, 0, 0, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 0, 0, 0, 47, - 559, 0, 0, 559, 559, 0, 0, 0, 0, 718, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 559, 559, 559, 559, 0, 559, 559, 559, 559, 0, - 0, 559, 0, 559, 0, 559, 559, 559, 0, 0, - 559, 559, 718, 559, 559, 559, 0, 718, 0, 718, - 718, 718, 559, 718, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, - 718, 718, 0, 0, 0, 0, 0, 0, 0, 0, - 559, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 559, 559, - 718, 559, 559, 559, 0, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 0, 559, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 105, 105, 0, 105, - 0, 0, 718, 0, 718, 0, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, - 105, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 47, 47, 47, 0, - 0, 0, 47, 47, 0, 0, 0, 0, 47, 105, - 0, 47, 0, 105, 0, 0, 105, 105, 47, 47, - 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 0, 0, 0, 0, 0, 0, 105, - 0, 0, 105, 48, 0, 0, 0, 0, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 47, 0, 47, 47, 47, 0, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 718, - 718, 0, 718, 0, 0, 0, 0, 718, 0, 0, - 718, 0, 718, 718, 718, 718, 718, 718, 718, 48, - 718, 718, 718, 718, 0, 718, 718, 0, 0, 718, - 718, 718, 718, 0, 0, 718, 718, 718, 0, 0, - 0, 0, 0, 0, 0, 718, 0, 718, 0, 0, - 718, 0, 0, 0, 0, 718, 0, 0, 0, 0, - 0, 718, 718, 718, 718, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 718, 0, 718, - 718, 718, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 718, 718, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 718, 0, 0, 0, 0, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 0, 0, 0, 48, 718, 0, - 0, 718, 718, 0, 0, 0, 0, 717, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, - 718, 718, 0, 718, 718, 718, 718, 0, 0, 718, - 0, 718, 0, 718, 718, 718, 0, 0, 718, 718, - 717, 718, 718, 718, 0, 717, 0, 717, 717, 717, - 718, 717, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 717, 717, 717, 717, - 0, 0, 0, 0, 0, 0, 0, 0, 718, 718, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 718, 718, 717, 718, - 718, 718, 0, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 0, 718, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 717, 0, 717, 0, 48, 48, 48, 48, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 0, 0, 0, - 48, 48, 0, 0, 0, 0, 48, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 48, 48, 48, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 717, 717, 0, - 717, 0, 0, 0, 0, 717, 0, 0, 717, 0, - 717, 717, 717, 717, 717, 717, 717, 49, 717, 717, - 717, 717, 0, 717, 717, 0, 0, 717, 717, 717, - 717, 0, 0, 717, 717, 717, 0, 0, 0, 0, - 0, 0, 0, 717, 0, 717, 0, 0, 717, 0, - 0, 0, 0, 717, 0, 0, 0, 0, 0, 717, - 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 717, 0, 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 717, 717, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 717, 0, - 0, 0, 0, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 0, 0, 0, 49, 717, 0, 0, 717, - 717, 0, 0, 0, 0, 716, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 717, 717, 717, 717, - 0, 717, 717, 717, 717, 0, 0, 717, 0, 717, - 0, 717, 717, 717, 0, 0, 717, 717, 716, 717, - 717, 717, 0, 716, 0, 716, 716, 716, 717, 716, + 805, 805, 0, 805, 805, 805, 0, 805, 805, 805, + 805, 805, 805, 805, 805, 805, 556, 556, 0, 556, + 0, 0, 0, 0, 556, 0, 0, 556, 0, 556, + 556, 556, 556, 556, 556, 556, 47, 556, 556, 556, + 556, 0, 556, 556, 0, 0, 556, 556, 556, 556, + 0, 0, 556, 556, 556, 556, 0, 0, 0, 0, + 0, 0, 556, 0, 556, 0, 0, 556, 0, 0, + 0, 0, 556, 0, 0, 0, 0, 0, 556, 556, + 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 716, 716, 716, 716, 0, 0, - 0, 0, 0, 0, 0, 0, 717, 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 717, 717, 716, 717, 717, 717, - 0, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 0, 717, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 716, 0, - 716, 0, 49, 49, 49, 49, 49, 0, 0, 0, + 0, 0, 0, 0, 556, 0, 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 49, 49, 49, 0, 0, 0, 49, 49, - 0, 0, 0, 0, 49, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, + 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, + 0, 0, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 0, 0, 0, 47, 556, 0, 0, 556, 556, + 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 556, 556, 556, 556, 0, + 556, 556, 556, 556, 0, 0, 556, 0, 556, 0, + 556, 556, 556, 0, 0, 556, 556, 557, 556, 556, + 556, 0, 557, 0, 557, 557, 557, 556, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 557, 557, 557, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 556, 556, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 556, 556, 557, 556, 556, 556, 0, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 0, + 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 557, 0, 557, + 0, 47, 47, 47, 47, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 47, 375, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 47, 47, 0, 0, 0, 47, 47, 0, + 0, 0, 0, 47, 376, 0, 47, 0, 377, 0, + 0, 378, 379, 47, 47, 0, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 0, 0, + 0, 0, 0, 0, 392, 0, 0, 393, 48, 0, + 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, + 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, + 0, 47, 47, 47, 0, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 557, 557, 0, 557, 0, 0, + 0, 0, 557, 0, 0, 557, 0, 557, 557, 557, + 557, 557, 557, 557, 48, 557, 557, 557, 557, 0, + 557, 557, 0, 0, 557, 557, 557, 557, 0, 0, + 557, 557, 557, 557, 0, 0, 0, 0, 0, 0, + 557, 0, 557, 0, 0, 557, 0, 0, 0, 0, + 557, 0, 0, 0, 0, 0, 557, 557, 557, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 49, 0, 49, 49, 49, 0, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 716, 716, 0, 716, 0, - 0, 0, 0, 716, 0, 0, 716, 0, 716, 716, - 716, 716, 716, 716, 716, 50, 716, 716, 716, 716, - 0, 716, 716, 0, 0, 716, 716, 716, 716, 0, - 0, 716, 716, 716, 0, 0, 0, 0, 0, 0, - 0, 716, 0, 716, 0, 0, 716, 0, 0, 0, - 0, 716, 0, 0, 0, 0, 0, 716, 716, 716, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 557, 0, 557, 557, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 0, + 0, 0, 48, 557, 0, 0, 557, 557, 0, 0, + 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 557, 557, 557, 557, 0, 557, 557, + 557, 557, 0, 0, 557, 0, 557, 0, 557, 557, + 557, 0, 0, 557, 557, 559, 557, 557, 557, 0, + 559, 0, 559, 559, 559, 557, 559, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 559, 559, 559, 559, 0, 0, 0, 0, 0, + 0, 0, 0, 557, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 557, 557, 559, 557, 557, 557, 0, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 105, 0, 105, 0, 0, 559, 0, 559, 0, 48, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 105, 0, 0, 0, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 0, 0, 0, 48, 48, 0, 0, 0, + 0, 48, 105, 0, 48, 0, 105, 0, 0, 105, + 105, 48, 48, 0, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, + 0, 0, 105, 0, 0, 105, 49, 0, 0, 0, + 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, + 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 559, 559, 0, 559, 0, 0, 0, 0, + 559, 0, 0, 559, 0, 559, 559, 559, 559, 559, + 559, 559, 49, 559, 559, 559, 559, 0, 559, 559, + 0, 0, 559, 559, 559, 559, 0, 0, 559, 559, + 559, 559, 0, 0, 0, 0, 0, 0, 559, 0, + 559, 0, 0, 559, 0, 0, 0, 0, 559, 0, + 0, 0, 0, 0, 559, 559, 559, 559, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 559, 0, 559, 559, 559, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 559, 559, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 559, 0, 0, 0, 0, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 0, 0, 0, + 49, 559, 0, 0, 559, 559, 0, 0, 0, 0, + 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 559, 559, 559, 559, 0, 559, 559, 559, 559, + 0, 0, 559, 0, 559, 0, 559, 559, 559, 0, + 0, 559, 559, 717, 559, 559, 559, 0, 717, 0, + 717, 717, 717, 559, 717, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, + 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, + 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 559, + 559, 717, 559, 559, 559, 0, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 716, 0, 716, 716, 716, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 716, 0, 0, 0, - 0, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 0, 0, 0, 50, 716, 0, 0, 716, 716, 0, - 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 716, 716, 716, 716, 0, 716, - 716, 716, 716, 0, 0, 716, 0, 716, 0, 716, - 716, 716, 0, 0, 716, 716, 715, 716, 716, 716, - 0, 715, 0, 715, 715, 715, 716, 715, 0, 0, + 0, 0, 0, 717, 0, 717, 0, 49, 49, 49, + 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 49, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, + 0, 0, 0, 49, 49, 0, 0, 0, 0, 49, + 0, 0, 49, 0, 0, 0, 0, 0, 0, 49, + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 715, 715, 715, 715, 0, 0, 0, 0, - 0, 0, 0, 0, 716, 716, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 716, 716, 715, 716, 716, 716, 0, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 0, 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 715, 0, 715, 0, - 50, 50, 50, 50, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 49, 0, 49, 49, 49, + 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 717, 717, 0, 717, 0, 0, 0, 0, 717, 0, + 0, 717, 0, 717, 717, 717, 717, 717, 717, 717, + 50, 717, 717, 717, 717, 0, 717, 717, 0, 0, + 717, 717, 717, 717, 0, 0, 717, 717, 717, 0, + 0, 0, 0, 0, 0, 0, 717, 0, 717, 0, + 0, 717, 0, 0, 0, 0, 717, 0, 0, 0, + 0, 0, 717, 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 50, 50, 50, 0, 0, 0, 50, 50, 0, 0, - 0, 0, 50, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 717, 0, + 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 717, 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 717, 0, 0, 0, 0, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 0, 0, 0, 50, 717, + 0, 0, 717, 717, 0, 0, 0, 0, 716, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, + 717, 717, 717, 0, 717, 717, 717, 717, 0, 0, + 717, 0, 717, 0, 717, 717, 717, 0, 0, 717, + 717, 716, 717, 717, 717, 0, 716, 0, 716, 716, + 716, 717, 716, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 716, 716, 716, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 717, + 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 717, 717, 716, + 717, 717, 717, 0, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 0, 717, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 716, 0, 716, 0, 50, 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, - 50, 50, 50, 0, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 715, 715, 0, 715, 0, 0, 0, - 0, 715, 0, 0, 715, 0, 715, 715, 715, 715, - 715, 715, 715, 51, 715, 715, 715, 715, 0, 715, - 715, 0, 0, 715, 715, 715, 715, 0, 0, 715, - 715, 715, 0, 0, 0, 0, 0, 0, 0, 715, - 0, 715, 0, 0, 715, 0, 0, 0, 0, 715, - 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, + 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, + 0, 50, 50, 0, 0, 0, 0, 50, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 715, 0, 715, 715, 715, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 715, 0, 0, 0, 0, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 0, 0, - 0, 51, 715, 0, 0, 715, 715, 0, 0, 0, - 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 715, 715, 715, 715, 0, 715, 715, 715, - 715, 0, 0, 715, 0, 715, 0, 715, 715, 715, - 0, 0, 715, 715, 728, 715, 715, 715, 0, 728, - 0, 0, 728, 728, 715, 728, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 728, 728, 728, 728, 0, 0, 0, 0, 0, 0, - 0, 0, 715, 715, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 715, 715, 728, 715, 715, 715, 0, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 0, 715, 0, 0, - 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 728, 0, 728, 0, 51, 51, - 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 809, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, - 51, 0, 0, 0, 51, 51, 0, 0, 0, 832, - 51, 0, 0, 51, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 809, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 51, 0, 51, 51, - 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 728, 728, 0, 728, 0, 0, 0, 0, 728, - 0, 0, 728, 0, 728, 728, 728, 728, 728, 728, - 728, 809, 728, 728, 728, 728, 0, 728, 728, 0, - 0, 728, 728, 728, 728, 0, 0, 728, 728, 728, - 0, 0, 0, 0, 0, 0, 0, 728, 0, 728, - 0, 0, 728, 0, 0, 0, 0, 728, 0, 0, - 0, 0, 0, 728, 728, 728, 728, 832, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, - 0, 728, 728, 728, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 728, 728, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 728, 832, 0, 0, 0, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 0, 0, 0, 809, - 728, 0, 0, 728, 728, 0, 0, 0, 0, 726, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 728, 728, 728, 728, 0, 728, 728, 728, 728, 0, - 0, 728, 0, 728, 0, 728, 728, 728, 0, 0, - 728, 728, 726, 728, 728, 728, 0, 726, 0, 0, - 726, 726, 728, 726, 0, 0, 832, 832, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, - 726, 726, 0, 0, 0, 0, 832, 0, 0, 0, - 728, 728, 0, 0, 0, 0, 0, 0, 832, 0, - 832, 832, 0, 832, 832, 0, 0, 0, 728, 728, - 726, 728, 728, 728, 0, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 0, 728, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 726, 0, 726, 0, 809, 809, 809, 809, - 809, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 809, 809, - 832, 832, 832, 832, 832, 832, 832, 0, 0, 0, - 0, 0, 0, 0, 0, 809, 809, 809, 809, 0, - 0, 34, 809, 809, 0, 0, 0, 0, 809, 0, - 0, 809, 0, 0, 0, 0, 0, 0, 809, 809, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, - 0, 0, 0, 809, 809, 0, 809, 809, 809, 0, - 809, 809, 809, 809, 809, 809, 809, 809, 809, 726, - 726, 0, 726, 0, 0, 0, 0, 726, 0, 0, - 726, 0, 726, 726, 726, 726, 726, 726, 726, 0, - 726, 726, 726, 726, 0, 726, 726, 0, 0, 726, - 726, 726, 726, 0, 0, 726, 726, 726, 0, 0, - 0, 0, 0, 0, 0, 726, 0, 726, 0, 0, - 726, 0, 0, 0, 0, 726, 0, 0, 0, 0, - 0, 726, 726, 726, 726, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 726, 0, 726, - 726, 726, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 299, 726, 726, 0, 298, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 726, 0, 0, 0, 297, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 0, 484, 0, 0, 726, 0, - 0, 726, 726, 0, 0, 0, 0, 729, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, - 726, 726, 0, 726, 726, 726, 726, 0, 0, 726, - 0, 726, 0, 726, 726, 726, 0, 0, 726, 726, - 729, 726, 726, 726, 0, 729, 0, 0, 729, 729, - 726, 729, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 729, 729, 729, 729, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 726, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 726, 726, 729, 726, - 726, 726, 0, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 0, 726, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 729, 0, 729, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 622, 0, 623, 0, - 0, 624, 625, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 147, 148, 149, + 0, 0, 50, 50, 0, 50, 50, 50, 0, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 716, 716, + 0, 716, 0, 0, 0, 0, 716, 0, 0, 716, + 0, 716, 716, 716, 716, 716, 716, 716, 51, 716, + 716, 716, 716, 0, 716, 716, 0, 0, 716, 716, + 716, 716, 0, 0, 716, 716, 716, 0, 0, 0, + 0, 0, 0, 0, 716, 0, 716, 0, 0, 716, + 0, 0, 0, 0, 716, 0, 0, 0, 0, 0, + 716, 716, 716, 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 716, 0, 716, 716, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 716, 716, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, + 0, 0, 0, 0, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 0, 0, 0, 51, 716, 0, 0, + 716, 716, 0, 0, 0, 0, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 716, 716, 716, + 716, 0, 716, 716, 716, 716, 0, 0, 716, 0, + 716, 0, 716, 716, 716, 0, 0, 716, 716, 715, + 716, 716, 716, 0, 715, 0, 715, 715, 715, 716, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, + 0, 0, 0, 0, 0, 0, 0, 716, 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 292, 293, 294, 729, 729, 0, - 729, 0, 0, 0, 0, 729, 0, 0, 729, 0, - 729, 729, 729, 729, 729, 729, 729, 0, 729, 729, - 729, 729, 0, 729, 729, 0, 0, 729, 729, 729, - 729, 0, 0, 729, 729, 729, 0, 0, 0, 0, - 0, 0, 0, 729, 0, 729, 0, 0, 729, 152, - 153, 154, 0, 729, 0, 0, 0, 0, 0, 729, - 729, 729, 729, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 716, 716, 715, 716, 716, + 716, 0, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 0, 716, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, + 0, 715, 0, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 51, 0, 0, 0, + 0, 808, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 51, 51, 51, 0, 0, 0, 51, + 51, 0, 0, 0, 0, 51, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 729, 0, 729, 729, 729, - 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 729, 729, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, - 0, 0, 0, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 0, 156, 0, 0, 729, 0, 0, 729, - 729, 0, 0, 0, 0, 730, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 729, 729, 729, 729, - 0, 729, 729, 729, 729, 0, 0, 729, 0, 729, - 0, 729, 729, 729, 0, 0, 729, 729, 730, 729, - 729, 729, 0, 730, 0, 0, 730, 730, 729, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 730, 730, 730, 730, 0, 0, - 0, 0, 0, 0, 0, 0, 729, 729, 0, 0, + 808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 729, 729, 730, 729, 729, 729, - 0, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 0, 729, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, - 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 0, 51, 51, 51, 0, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 715, 715, 0, 715, + 0, 0, 0, 0, 715, 0, 0, 715, 0, 715, + 715, 715, 715, 715, 715, 715, 808, 715, 715, 715, + 715, 0, 715, 715, 0, 0, 715, 715, 715, 715, + 0, 0, 715, 715, 715, 0, 0, 0, 0, 0, + 0, 0, 715, 0, 715, 0, 0, 715, 0, 0, + 0, 0, 715, 0, 0, 0, 0, 0, 715, 715, + 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 715, 0, 715, 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, + 0, 0, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 0, 0, 0, 808, 715, 0, 0, 715, 715, + 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, + 715, 715, 715, 715, 0, 0, 715, 0, 715, 0, + 715, 715, 715, 0, 0, 715, 715, 714, 715, 715, + 715, 0, 714, 0, 714, 714, 714, 715, 714, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 714, 714, 714, 714, 0, 0, 0, + 0, 0, 0, 0, 0, 715, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 715, 715, 714, 715, 715, 715, 0, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 0, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 714, 0, 714, + 0, 808, 808, 808, 808, 808, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 808, 808, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 808, 808, 808, 808, 0, 0, 0, 808, 808, 0, + 0, 0, 0, 808, 0, 0, 808, 0, 0, 0, + 0, 0, 0, 808, 808, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 808, 808, + 0, 808, 808, 808, 0, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 714, 714, 0, 714, 0, 0, + 0, 0, 714, 0, 0, 714, 0, 714, 714, 714, + 714, 714, 714, 714, 0, 714, 714, 714, 714, 0, + 714, 714, 0, 0, 714, 714, 714, 714, 0, 0, + 714, 714, 714, 0, 0, 0, 0, 0, 0, 724, + 714, 0, 714, 0, 0, 714, 0, 0, 0, 0, + 714, 0, 0, 0, 0, 0, 714, 714, 714, 714, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 724, 0, 0, 0, 0, 0, 0, 724, + 724, 0, 0, 724, 0, 0, 0, 0, 0, 0, + 0, 0, 714, 0, 714, 714, 714, 0, 724, 0, + 724, 724, 0, 0, 0, 0, 0, 0, 714, 714, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, + 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, + 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, + 714, 714, 714, 714, 714, 714, 714, 714, 714, 0, + 0, 0, 724, 714, 724, 0, 714, 714, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 714, 714, 714, 714, 0, 714, 714, + 714, 714, 0, 0, 714, 0, 714, 0, 714, 714, + 714, 0, 0, 714, 714, 0, 714, 714, 714, 0, + 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 714, 714, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 714, 714, 0, 714, 714, 714, 0, 714, 714, + 714, 714, 714, 714, 714, 714, 714, 0, 714, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, + 724, 0, 724, 0, 0, 0, 0, 724, 0, 0, + 724, 0, 724, 724, 724, 724, 724, 724, 724, 0, + 724, 724, 724, 724, 0, 724, 724, 0, 0, 724, + 724, 724, 724, 0, 0, 724, 724, 724, 0, 0, + 0, 52, 0, 400, 97, 724, 0, 724, 0, 99, + 724, 100, 0, 0, 0, 724, 0, 0, 101, 0, + 0, 724, 724, 724, 724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 102, 401, 0, 402, 403, + 404, 405, 406, 0, 0, 0, 0, 407, 0, 0, + 103, 0, 0, 0, 0, 0, 408, 724, 0, 0, + 52, 409, 0, 410, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 724, 724, 411, 412, 413, 414, 415, + 416, 417, 418, 0, 0, 0, 0, 0, 419, 0, + 724, 0, 0, 0, 0, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 52, 0, 52, 0, 724, 0, + 0, 724, 724, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 724, 724, + 724, 724, 0, 724, 724, 724, 724, 0, 0, 724, + 0, 724, 0, 724, 724, 724, 0, 0, 724, 724, + 0, 724, 724, 724, 0, 0, 0, 0, 0, 0, + 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 151, 0, 0, 0, 730, 730, 0, 730, 0, - 0, 0, 0, 730, 0, 0, 730, 0, 730, 730, - 730, 730, 730, 730, 730, 0, 730, 730, 730, 730, - 0, 730, 730, 0, 0, 730, 730, 730, 730, 0, - 0, 730, 730, 730, 0, 0, 0, 0, 0, 0, - 0, 730, 0, 730, 0, 0, 730, 152, 153, 154, - 0, 730, 0, 0, 0, 0, 0, 730, 730, 730, - 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 724, 724, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 724, 724, 0, 724, + 724, 724, 0, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 0, 724, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 52, 52, 52, + 0, 52, 52, 52, 52, 0, 0, 52, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 127, + 266, 0, 54, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 52, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 147, 148, 149, 0, 52, 52, 0, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, + 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, + 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, + 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 54, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 54, 0, 0, 0, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 54, 54, + 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 0, 55, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 55, 0, 55, 0, + 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, + 0, 0, 54, 0, 54, 0, 54, 54, 54, 54, + 0, 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 730, 0, 730, 730, 730, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 730, - 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, - 0, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 0, 210, 0, 0, 730, 0, 0, 730, 730, 0, - 0, 0, 0, 731, 0, 0, 155, 0, 0, 0, - 0, 0, 0, 0, 730, 730, 730, 730, 0, 730, - 730, 730, 730, 0, 0, 730, 0, 730, 0, 730, - 730, 730, 0, 0, 730, 730, 731, 730, 730, 730, - 0, 731, 0, 0, 731, 731, 730, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 731, 731, 731, 731, 0, 0, 0, 0, - 0, 0, 0, 0, 730, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 730, 730, 731, 730, 730, 730, 0, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 0, 730, + 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 54, 0, 54, 54, 54, 0, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 55, 0, 0, 0, + 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, + 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 232, 0, 0, 56, 232, 232, 232, 232, 232, + 0, 232, 232, 232, 232, 55, 232, 232, 0, 0, + 232, 232, 232, 232, 0, 0, 0, 232, 232, 0, + 0, 0, 55, 0, 0, 0, 232, 0, 232, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 232, 232, 232, 0, 55, 55, 0, + 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 232, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, + 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 56, 0, 56, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, + 55, 0, 0, 55, 0, 55, 0, 55, 55, 55, + 55, 0, 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 731, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 232, 0, 0, 56, 0, 0, + 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, + 56, 56, 56, 0, 56, 56, 56, 56, 0, 0, + 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 0, 0, 53, 225, 225, 225, 225, + 225, 0, 225, 225, 225, 225, 56, 225, 225, 0, + 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, + 0, 0, 0, 56, 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, - 0, 0, 0, 731, 731, 0, 731, 0, 0, 0, - 0, 731, 0, 0, 731, 0, 731, 731, 731, 731, - 731, 731, 731, 0, 731, 731, 731, 731, 0, 731, - 731, 0, 0, 731, 731, 731, 731, 0, 0, 731, - 731, 731, 0, 0, 0, 0, 0, 0, 0, 731, - 0, 731, 0, 0, 731, 152, 153, 154, 0, 731, - 0, 0, 0, 0, 0, 731, 731, 731, 731, 0, + 0, 0, 0, 56, 225, 225, 225, 0, 56, 56, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, + 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 53, 0, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 56, 56, 56, 0, 56, 56, + 56, 56, 0, 0, 56, 0, 56, 0, 56, 56, + 56, 56, 0, 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 731, 0, 731, 731, 731, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 731, 731, 0, + 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 731, 0, 0, 0, 0, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 0, 210, - 0, 0, 731, 0, 0, 731, 731, 0, 0, 0, - 0, 732, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 731, 731, 731, 731, 0, 731, 731, 731, - 731, 0, 0, 731, 0, 731, 0, 731, 731, 731, - 0, 0, 731, 731, 732, 731, 731, 731, 0, 732, - 0, 0, 732, 732, 731, 732, 0, 0, 0, 0, + 0, 56, 56, 0, 56, 56, 56, 0, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 732, 732, 732, 732, 0, 0, 0, 0, 0, 0, - 0, 0, 731, 731, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 225, 0, 0, 53, 0, + 0, 0, 53, 53, 53, 0, 53, 53, 53, 53, + 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, + 0, 53, 53, 53, 0, 0, 0, 0, 61, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 731, 731, 732, 731, 731, 731, 0, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 0, 731, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 732, 0, 732, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 53, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, + 0, 62, 0, 0, 0, 61, 0, 0, 61, 0, + 0, 0, 0, 0, 53, 53, 53, 53, 61, 53, + 53, 53, 53, 0, 0, 53, 0, 53, 0, 53, + 53, 53, 53, 0, 53, 53, 0, 53, 53, 53, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 53, 53, 0, 53, 53, 53, 0, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 61, 61, 61, 0, 61, + 61, 61, 61, 0, 0, 61, 0, 61, 0, 61, + 61, 61, 61, 0, 61, 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, - 0, 732, 732, 0, 732, 0, 0, 0, 0, 732, - 0, 0, 732, 0, 732, 732, 732, 732, 732, 732, - 732, 0, 732, 732, 732, 732, 0, 732, 732, 0, - 0, 732, 732, 732, 732, 0, 0, 732, 732, 732, - 0, 0, 0, 0, 0, 0, 0, 732, 0, 732, - 0, 0, 732, 152, 153, 154, 0, 732, 0, 0, - 0, 0, 0, 732, 732, 732, 732, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, - 0, 732, 732, 732, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 0, 732, 732, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 732, 0, 0, 0, 0, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 0, 210, 0, 0, - 732, 0, 0, 732, 732, 0, 0, 0, 0, 733, - 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, - 732, 732, 732, 732, 0, 732, 732, 732, 732, 0, - 0, 732, 0, 732, 0, 732, 732, 732, 0, 0, - 732, 732, 733, 732, 732, 732, 0, 733, 0, 0, - 733, 733, 732, 733, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 733, 733, - 733, 733, 0, 0, 0, 0, 0, 0, 0, 0, - 732, 732, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 732, 732, - 733, 732, 732, 732, 0, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 0, 732, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 733, 0, 733, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 700, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 61, 0, 0, 0, 0, + 0, 62, 0, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 61, 61, 62, 61, 61, 61, 0, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 0, 0, 0, 0, 733, - 733, 0, 733, 0, 0, 0, 0, 733, 0, 0, - 733, 0, 733, 733, 733, 733, 733, 733, 733, 0, - 733, 733, 733, 733, 0, 733, 733, 0, 0, 733, - 733, 733, 733, 0, 0, 733, 733, 733, 0, 0, - 0, 0, 0, 0, 0, 733, 0, 733, 0, 0, - 733, 152, 153, 154, 0, 733, 0, 0, 0, 0, - 0, 733, 733, 733, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 733, 0, 733, - 733, 733, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 733, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 733, 0, 0, 0, 0, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 0, 210, 0, 0, 733, 0, - 0, 733, 733, 0, 0, 0, 0, 734, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 733, 733, - 733, 733, 0, 733, 733, 733, 733, 0, 0, 733, - 0, 733, 0, 733, 733, 733, 0, 0, 733, 733, - 734, 733, 733, 733, 0, 734, 0, 0, 734, 734, - 733, 734, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 734, 734, 734, - 0, 0, 0, 0, 0, 0, 0, 0, 733, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 733, 733, 734, 733, - 733, 733, 0, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 0, 0, 0, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 0, 0, 66, 0, 0, + 0, 65, 0, 0, 65, 0, 0, 0, 0, 0, + 62, 62, 62, 62, 65, 62, 62, 62, 62, 0, + 0, 62, 0, 62, 0, 62, 62, 62, 62, 0, + 62, 62, 0, 62, 62, 62, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 62, 62, + 0, 62, 62, 62, 0, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 0, 0, 0, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 0, 0, 0, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, + 65, 65, 65, 65, 0, 65, 65, 65, 65, 0, + 0, 65, 0, 65, 0, 65, 65, 65, 65, 0, + 65, 65, 0, 65, 65, 65, 0, 0, 0, 0, + 0, 0, 571, 571, 0, 0, 571, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 571, 0, 571, 0, 0, 0, 0, 0, 0, + 65, 65, 0, 0, 0, 0, 0, 66, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 65, 65, + 66, 65, 65, 65, 0, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 571, 0, 571, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 0, 0, 0, 0, 734, 734, 0, - 734, 0, 0, 0, 0, 734, 0, 0, 734, 0, - 734, 734, 734, 734, 734, 734, 734, 0, 734, 734, - 734, 734, 0, 734, 734, 0, 0, 734, 734, 734, - 734, 0, 0, 734, 734, 734, 0, 0, 0, 0, - 0, 0, 0, 734, 0, 734, 0, 0, 734, 152, - 153, 154, 0, 734, 0, 0, 0, 0, 0, 734, - 734, 734, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 734, 0, 734, 734, 734, - 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, - 0, 734, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, - 0, 0, 0, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 0, 159, 0, 0, 734, 0, 0, 734, - 734, 0, 0, 0, 0, 739, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 734, 734, 734, 734, - 0, 734, 734, 734, 734, 0, 0, 734, 0, 734, - 0, 734, 734, 734, 0, 0, 734, 734, 739, 734, - 734, 734, 0, 739, 0, 0, 739, 739, 734, 739, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 739, 739, 739, 739, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 734, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 734, 734, 739, 734, 734, 734, - 0, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, - 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, - 159, 0, 0, 159, 0, 0, 0, 159, 159, 159, - 159, 159, 0, 159, 159, 159, 159, 0, 159, 159, - 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, - 159, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 159, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 739, 739, 0, 739, 0, - 0, 0, 0, 739, 0, 0, 739, 0, 739, 739, - 739, 739, 739, 739, 739, 0, 739, 739, 739, 739, - 0, 739, 739, 0, 0, 739, 739, 739, 739, 0, - 0, 739, 739, 739, 0, 0, 0, 0, 0, 0, - 0, 739, 0, 739, 0, 0, 739, 159, 159, 159, - 0, 739, 0, 0, 0, 0, 0, 739, 739, 739, - 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, - 0, 0, 0, 739, 0, 739, 739, 739, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, - 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, - 0, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 0, 0, 0, 0, 739, 0, 0, 739, 739, 0, - 0, 0, 0, 740, 0, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 739, 739, 739, 739, 0, 739, - 739, 739, 739, 0, 0, 739, 0, 739, 0, 739, - 739, 739, 0, 0, 739, 739, 740, 739, 739, 739, - 0, 740, 0, 0, 740, 740, 739, 740, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 740, 740, 740, 740, 0, 0, 0, 0, - 0, 0, 0, 0, 739, 739, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 739, 739, 740, 739, 739, 739, 0, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 0, 739, - 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 865, 740, 0, 740, 0, - 866, 867, 0, 868, 869, 870, 871, 872, 873, 0, - 874, 875, 0, 876, 877, 878, 879, 880, 0, 0, - 0, 0, 0, 0, 0, 81, 0, 0, 0, 81, - 81, 81, 81, 81, 0, 81, 81, 81, 81, 0, - 81, 81, 0, 0, 81, 81, 81, 81, 0, 85, - 0, 81, 81, 0, 88, 0, 91, 0, 0, 881, - 81, 882, 81, 94, 0, 0, 883, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, - 97, 0, 884, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 0, 0, 885, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 740, 740, 0, 740, 0, 0, 0, - 0, 740, 0, 0, 740, 0, 740, 740, 740, 740, - 740, 740, 740, 0, 740, 740, 740, 740, 0, 740, - 740, 0, 0, 740, 740, 740, 740, 0, 0, 740, - 740, 740, 0, 0, 0, 0, 0, 0, 0, 740, - 0, 740, 0, 0, 740, 0, 0, 0, 0, 740, - 0, 0, 0, 0, 0, 740, 740, 740, 740, 0, - 0, 0, 0, 0, 0, 0, 886, 0, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 903, 157, 0, 0, 904, 0, - 0, 740, 0, 740, 740, 740, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 740, 740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 740, 0, 0, 0, 0, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 81, 0, - 0, 0, 740, 0, 0, 740, 740, 0, 0, 0, - 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 740, 740, 740, 740, 0, 740, 740, 740, - 740, 0, 0, 740, 0, 740, 0, 740, 740, 740, - 0, 0, 740, 740, 741, 740, 740, 740, 0, 741, - 0, 0, 741, 741, 740, 741, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 0, 0, 569, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 571, 0, 571, 66, 66, 66, 66, + 0, 66, 66, 66, 66, 571, 571, 66, 0, 66, + 0, 66, 66, 66, 66, 0, 66, 66, 0, 66, + 66, 66, 0, 569, 569, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 741, 741, 741, 741, 0, 0, 0, 0, 0, 0, - 0, 0, 740, 740, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 571, 569, 0, 0, 0, 571, 0, + 0, 0, 0, 0, 571, 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 740, 740, 741, 740, 740, 740, 0, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 0, 740, 0, 0, + 0, 0, 0, 0, 66, 66, 0, 66, 66, 66, + 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 741, 0, 741, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 0, 0, 0, + 571, 571, 571, 571, 571, 571, 571, 0, 0, 0, + 0, 571, 0, 0, 571, 571, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 592, 127, 593, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 401, 97, 0, 0, 0, 0, 99, 145, 100, - 146, 0, 0, 0, 0, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 0, 102, 402, 0, 403, 404, 405, 406, - 407, 0, 0, 0, 0, 408, 0, 0, 103, 0, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 410, - 150, 411, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 412, 413, 414, 415, 416, 417, 418, - 419, 741, 741, 0, 741, 0, 420, 0, 0, 741, - 0, 0, 741, 0, 741, 741, 741, 741, 741, 741, - 741, 0, 741, 741, 741, 741, 0, 741, 741, 0, - 0, 741, 741, 741, 741, 0, 0, 741, 741, 741, - 0, 0, 0, 0, 0, 0, 0, 741, 0, 741, - 0, 0, 741, 0, 0, 0, 0, 741, 0, 0, - 0, 0, 0, 741, 741, 741, 741, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 741, - 0, 741, 741, 741, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 741, 741, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 741, 0, 0, 0, 0, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 155, 0, 0, 0, - 741, 0, 0, 741, 741, 0, 0, 0, 0, 742, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 741, 741, 741, 741, 0, 741, 741, 741, 741, 0, - 0, 741, 0, 741, 0, 741, 741, 741, 0, 0, - 741, 741, 742, 741, 741, 741, 0, 742, 0, 0, - 742, 742, 741, 742, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, - 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, - 741, 741, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 741, 741, - 742, 741, 741, 741, 0, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 0, 741, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 742, 0, 742, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 127, 266, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, - 742, 0, 742, 0, 0, 0, 0, 742, 0, 0, - 742, 0, 742, 742, 742, 742, 742, 742, 742, 0, - 742, 742, 742, 742, 0, 742, 742, 0, 0, 742, - 742, 742, 742, 0, 0, 742, 742, 742, 0, 0, - 0, 0, 0, 0, 0, 742, 0, 742, 0, 0, - 742, 0, 0, 0, 0, 742, 0, 0, 0, 0, - 0, 742, 742, 742, 742, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 742, 0, 742, - 742, 742, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 742, 742, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 742, 0, 0, 0, 0, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 155, 848, 0, 0, 742, 0, - 0, 742, 742, 0, 0, 0, 0, 735, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, - 742, 742, 0, 742, 742, 742, 742, 0, 0, 742, - 0, 742, 0, 742, 742, 742, 0, 0, 742, 742, - 735, 742, 742, 742, 0, 735, 0, 0, 735, 735, - 742, 735, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 735, 735, 735, 735, - 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 742, 742, 735, 742, - 742, 742, 0, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 0, 742, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 571, 571, 571, 571, 0, 571, 571, 571, 571, + 0, 0, 571, 0, 571, 0, 571, 571, 571, 0, + 0, 571, 571, 0, 571, 571, 571, 0, 570, 570, + 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 570, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 571, 571, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 569, 569, 0, 571, + 571, 0, 571, 571, 571, 0, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 570, 0, 570, 569, 0, 0, 0, 0, 569, + 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 0, 0, 735, 735, 0, - 735, 0, 0, 0, 0, 735, 0, 0, 735, 0, - 735, 735, 735, 735, 735, 735, 735, 0, 735, 735, - 735, 735, 0, 735, 735, 0, 0, 735, 735, 735, - 735, 0, 0, 735, 735, 735, 0, 0, 0, 0, - 0, 0, 0, 735, 0, 735, 0, 0, 735, 0, - 0, 0, 0, 735, 0, 0, 0, 0, 0, 735, - 735, 735, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 735, 0, 735, 735, 735, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 735, 735, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, - 0, 0, 0, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 922, 0, 0, 0, 735, 0, 0, 735, - 735, 0, 0, 0, 0, 736, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 735, 735, 735, 735, - 0, 735, 735, 735, 735, 0, 0, 735, 0, 735, - 0, 735, 735, 735, 0, 0, 735, 735, 736, 735, - 735, 735, 0, 736, 0, 0, 736, 736, 735, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 736, 736, 736, 736, 0, 0, - 0, 0, 0, 0, 0, 0, 735, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 735, 735, 736, 735, 735, 735, - 0, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, - 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 33, 0, + 0, 569, 569, 569, 569, 569, 569, 569, 0, 0, + 0, 0, 569, 0, 0, 569, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 569, 569, 569, 0, 569, 569, 569, + 569, 570, 570, 569, 0, 569, 0, 569, 569, 569, + 0, 0, 569, 569, 0, 569, 569, 569, 0, 0, + 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, + 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, + 570, 0, 569, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 569, 569, 0, 569, 569, 569, 0, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 0, 0, 0, 570, 570, 570, 570, + 570, 570, 570, 0, 0, 0, 34, 570, 0, 33, + 570, 570, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 570, 570, 570, + 570, 0, 570, 570, 570, 570, 0, 0, 570, 0, + 570, 0, 570, 570, 570, 0, 0, 570, 570, 0, + 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 33, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 570, 570, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 570, 570, 0, 570, 570, + 570, 0, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 0, 0, 0, 0, 0, 0, 794, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 0, 0, 0, 794, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 33, 33, 0, 33, 33, 33, 33, 34, 0, 33, + 34, 33, 0, 0, 33, 0, 0, 0, 0, 0, + 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 0, 0, 0, 0, 736, 736, 0, 736, 0, - 0, 0, 0, 736, 0, 0, 736, 0, 736, 736, - 736, 736, 736, 736, 736, 0, 736, 736, 736, 736, - 0, 736, 736, 0, 0, 736, 736, 736, 736, 0, - 0, 736, 736, 736, 0, 0, 0, 0, 0, 0, - 0, 736, 0, 736, 0, 0, 736, 0, 0, 0, - 0, 736, 0, 0, 0, 0, 0, 736, 736, 736, - 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 794, 0, 794, 0, 0, 0, 0, 0, 33, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 33, 33, 0, 33, + 33, 33, 0, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 736, 0, 736, 736, 736, 0, 0, - 0, 0, 232, 0, 0, 0, 0, 0, 0, 736, - 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, - 0, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 232, 0, 0, 0, 736, 0, 0, 736, 736, 0, - 0, 0, 0, 737, 0, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 736, 736, 736, 736, 0, 736, - 736, 736, 736, 0, 0, 736, 0, 736, 0, 736, - 736, 736, 0, 0, 736, 736, 737, 736, 736, 736, - 0, 737, 0, 0, 737, 737, 736, 737, 0, 0, + 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 737, 737, 737, 737, 0, 0, 0, 0, - 0, 0, 0, 0, 736, 736, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 0, 0, 0, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 0, 0, 796, 0, 0, 794, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, + 794, 34, 34, 34, 34, 0, 0, 34, 0, 34, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 34, + 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 736, 736, 737, 736, 736, 736, 0, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 0, 736, + 0, 0, 0, 0, 0, 0, 0, 0, 796, 794, + 796, 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 737, 0, 737, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 0, 0, 0, 232, 232, 232, 232, 232, 0, - 232, 232, 232, 232, 0, 232, 232, 0, 0, 232, - 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, - 0, 0, 0, 0, 0, 232, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 232, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 34, 0, 34, 34, 34, + 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, - 0, 0, 0, 737, 737, 0, 737, 0, 0, 0, - 0, 737, 0, 0, 737, 0, 737, 737, 737, 737, - 737, 737, 737, 0, 737, 737, 737, 737, 0, 737, - 737, 0, 0, 737, 737, 737, 737, 0, 0, 737, - 737, 737, 0, 0, 0, 0, 0, 0, 0, 737, - 0, 737, 0, 0, 737, 0, 0, 0, 0, 737, - 0, 0, 0, 0, 0, 737, 737, 737, 737, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 737, 0, 737, 737, 737, 0, 0, 0, 0, - 225, 0, 0, 0, 0, 0, 0, 737, 737, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 737, 0, 0, 0, 0, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 225, 0, - 0, 0, 737, 0, 0, 737, 737, 0, 0, 0, - 0, 738, 0, 232, 0, 0, 0, 0, 0, 0, - 0, 0, 737, 737, 737, 737, 0, 737, 737, 737, - 737, 0, 0, 737, 0, 737, 0, 737, 737, 737, - 0, 0, 737, 737, 738, 737, 737, 737, 0, 738, - 0, 0, 738, 738, 737, 738, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 738, 738, 738, 738, 0, 0, 0, 0, 0, 0, - 0, 0, 737, 737, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 737, 737, 738, 737, 737, 737, 0, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 0, 737, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 738, 0, 738, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 0, 0, 225, 225, 225, 225, 225, 0, 225, 225, - 225, 225, 0, 225, 225, 0, 0, 225, 225, 225, - 225, 0, 0, 0, 225, 225, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 738, 738, 0, 738, 0, 0, 0, 0, 738, - 0, 0, 738, 0, 738, 738, 738, 738, 738, 738, - 738, 0, 738, 738, 738, 738, 0, 738, 738, 0, - 0, 738, 738, 738, 738, 0, 0, 738, 738, 738, - 0, 0, 0, 0, 0, 0, 725, 738, 0, 738, - 0, 0, 738, 0, 0, 0, 0, 738, 0, 0, - 0, 0, 0, 738, 738, 738, 738, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, - 0, 0, 0, 0, 0, 0, 725, 725, 0, 0, - 725, 0, 0, 0, 0, 0, 0, 0, 0, 738, - 0, 738, 738, 738, 0, 725, 0, 725, 725, 0, - 0, 0, 0, 0, 0, 738, 738, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 738, 0, 0, 0, 0, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 0, 0, 0, 725, - 738, 725, 0, 738, 738, 0, 0, 0, 0, 0, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 738, 738, 738, 738, 0, 738, 738, 738, 738, 0, - 0, 738, 0, 738, 0, 738, 738, 738, 0, 0, - 738, 738, 0, 738, 738, 738, 0, 0, 0, 0, - 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 738, 738, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 738, 738, - 0, 738, 738, 738, 0, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 0, 738, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 725, 725, 0, 725, - 0, 0, 0, 0, 725, 0, 0, 725, 0, 725, - 725, 725, 725, 725, 725, 725, 0, 725, 725, 725, - 725, 0, 725, 725, 0, 0, 725, 725, 725, 725, - 0, 0, 725, 725, 725, 0, 0, 0, 52, 0, - 0, 0, 725, 0, 725, 0, 0, 725, 0, 0, - 0, 0, 725, 0, 0, 0, 0, 0, 725, 725, - 725, 725, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 725, 0, 0, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 725, 725, 0, 0, 0, 0, 549, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, - 0, 0, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 52, 0, 52, 0, 725, 317, 0, 725, 725, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 725, 725, 725, 725, 0, - 725, 725, 725, 725, 0, 0, 725, 0, 725, 0, - 725, 725, 725, 0, 0, 725, 725, 0, 725, 725, - 725, 0, 0, 0, 0, 0, 0, 725, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 725, 725, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 725, 725, 0, 725, 725, 725, 0, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 0, - 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 52, 52, 52, 0, 52, - 52, 52, 52, 0, 52, 52, 52, 0, 52, 52, - 52, 52, 0, 0, 52, 52, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 54, - 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, - 52, 317, 317, 0, 0, 317, 317, 317, 317, 0, - 0, 0, 317, 317, 0, 0, 0, 52, 0, 0, - 0, 317, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 317, 317, - 317, 0, 52, 52, 0, 0, 0, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 0, 0, 0, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 794, 0, 0, 0, 800, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 794, 794, 794, 794, + 0, 794, 794, 794, 794, 796, 0, 794, 0, 794, + 0, 0, 794, 0, 0, 0, 0, 0, 796, 794, + 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 54, 0, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 0, 52, 0, - 52, 0, 52, 52, 52, 52, 0, 52, 52, 0, - 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, + 800, 0, 0, 0, 0, 0, 794, 794, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, + 0, 0, 0, 0, 794, 794, 0, 794, 794, 794, + 0, 794, 794, 794, 794, 794, 794, 794, 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 54, 0, 0, 0, 54, 54, 54, 0, - 54, 54, 54, 54, 0, 54, 54, 54, 0, 54, - 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, - 55, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 54, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 0, 0, 54, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 147, - 148, 149, 0, 54, 54, 0, 0, 0, 0, 55, + 0, 796, 796, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, + 0, 0, 0, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 796, 796, 796, 796, 796, 796, 0, + 0, 0, 798, 0, 0, 800, 0, 0, 0, 0, + 0, 0, 0, 0, 796, 796, 796, 796, 800, 796, + 796, 796, 796, 0, 0, 796, 0, 796, 0, 0, + 796, 0, 0, 0, 0, 0, 0, 796, 796, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 55, 0, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, - 0, 54, 0, 54, 54, 54, 54, 0, 54, 54, - 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 54, 0, 54, - 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 55, 0, 0, 0, 55, 55, 55, - 0, 55, 55, 55, 55, 0, 55, 55, 55, 0, - 55, 55, 55, 55, 0, 0, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 0, 56, 225, 225, 225, 225, 225, 0, 225, 225, - 225, 225, 55, 225, 225, 0, 0, 225, 225, 225, - 225, 0, 0, 0, 225, 225, 0, 0, 0, 55, - 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 225, 225, 225, 0, 55, 55, 0, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 56, 0, 56, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, - 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, - 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, - 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 56, 0, 0, 0, 0, 0, - 0, 225, 0, 0, 56, 0, 0, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 56, 56, 56, - 0, 56, 56, 56, 56, 0, 0, 56, 56, 56, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 53, 0, 317, 317, 317, 317, 0, 317, - 317, 317, 317, 56, 317, 317, 0, 0, 317, 317, - 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, - 56, 0, 0, 0, 317, 0, 317, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 317, 317, 317, 0, 56, 56, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, - 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, - 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 798, 800, 798, 0, + 0, 0, 0, 0, 796, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 796, 796, 0, 796, 796, 796, 0, 796, + 796, 796, 796, 796, 796, 796, 796, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 317, 0, 0, 53, 0, 0, 0, 53, - 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, - 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, - 53, 0, 0, 0, 0, 61, 0, 61, 0, 0, + 0, 800, 800, 800, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, + 0, 0, 0, 800, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 800, 0, + 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 800, 800, 800, 800, 0, 800, + 800, 800, 800, 798, 0, 800, 0, 800, 0, 0, + 800, 0, 0, 0, 0, 0, 798, 800, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 802, 0, 802, 0, + 0, 0, 0, 0, 800, 800, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, + 0, 0, 800, 800, 0, 800, 800, 800, 0, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 0, 0, 62, 0, - 0, 0, 61, 0, 0, 61, 0, 0, 0, 0, - 0, 53, 53, 53, 53, 61, 53, 53, 53, 53, - 0, 0, 53, 0, 53, 0, 53, 53, 53, 53, - 0, 53, 53, 0, 53, 53, 53, 0, 61, 0, + 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, + 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, + 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, + 752, 0, 0, 802, 0, 0, 0, 0, 0, 0, + 0, 0, 798, 798, 798, 798, 802, 798, 798, 798, + 798, 0, 0, 798, 0, 798, 0, 0, 798, 0, + 0, 0, 0, 0, 0, 798, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 53, - 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 0, 0, 65, 0, + 0, 0, 0, 0, 752, 802, 752, 0, 0, 0, + 0, 0, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 61, 61, 61, 0, 61, 61, 61, 61, - 0, 0, 61, 0, 61, 0, 61, 61, 61, 61, - 0, 61, 61, 0, 61, 61, 61, 0, 0, 0, + 798, 798, 0, 798, 798, 798, 0, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, + 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 802, 802, 802, 802, 802, 802, 0, 0, + 0, 802, 802, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 802, 802, 802, 802, 802, 0, 0, 0, + 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 802, 802, 802, 802, 0, 802, 802, 802, + 802, 752, 0, 802, 752, 802, 34, 0, 802, 0, + 0, 0, 0, 0, 752, 802, 802, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 61, 0, 0, 0, 0, 0, 62, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 61, - 61, 62, 61, 61, 61, 0, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, - 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 0, 754, 0, 754, 0, 0, 0, + 0, 0, 802, 802, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, + 802, 802, 567, 802, 802, 802, 0, 802, 802, 802, + 802, 802, 802, 802, 802, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 0, 0, 66, 0, 0, 0, 65, 0, - 0, 65, 0, 0, 0, 0, 0, 62, 62, 62, - 62, 65, 62, 62, 62, 62, 0, 0, 62, 0, - 62, 0, 62, 62, 62, 62, 0, 62, 62, 0, - 62, 62, 62, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 752, 752, 752, + 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, + 752, 752, 752, 752, 752, 752, 0, 0, 0, 752, + 752, 752, 752, 752, 752, 752, 0, 0, 0, 0, + 752, 0, 400, 752, 752, 0, 0, 0, 0, 0, + 0, 754, 0, 0, 754, 0, 0, 0, 0, 0, + 752, 752, 752, 752, 754, 752, 752, 752, 752, 0, + 0, 752, 0, 752, 0, 752, 752, 752, 0, 0, + 752, 752, 0, 752, 752, 752, 400, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, + 752, 752, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 0, 0, 0, 0, 0, 752, 752, + 0, 752, 752, 752, 0, 752, 752, 752, 752, 752, + 752, 752, 752, 752, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 400, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 0, 0, 0, 754, + 754, 754, 754, 754, 754, 754, 442, 0, 0, 0, + 754, 0, 0, 754, 754, 0, 0, 3, 4, 5, + 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 754, 754, 754, 754, 0, 754, 754, 754, 754, 8, + 9, 754, 0, 754, 0, 754, 754, 754, 0, 0, + 754, 754, 0, 754, 754, 754, 10, 11, 12, 13, + 0, 0, 0, 14, 15, 442, 0, 0, 0, 16, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 754, 754, 400, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 754, 754, + 0, 754, 754, 754, 0, 754, 754, 754, 754, 754, + 754, 754, 754, 754, 0, 0, 0, 0, 0, 442, + 0, 442, 0, 0, 20, 21, 0, 22, 23, 24, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, + 225, 0, 0, 0, 225, 225, 225, 225, 225, 0, + 225, 225, 225, 225, 0, 225, 225, 0, 0, 225, + 225, 225, 225, 0, 0, 0, 225, 225, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 225, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 225, 0, 0, + 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, + 0, 400, 0, 0, 400, 400, 442, 0, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 400, 400, 400, 400, 0, 400, 400, 400, 400, + 0, 0, 400, 0, 400, 0, 0, 400, 0, 0, + 0, 0, 0, 0, 400, 400, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 298, 442, 0, + 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 400, 400, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, + 400, 0, 400, 400, 400, 0, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, + 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 0, 0, 0, 442, 442, 442, 442, 442, 442, + 442, 0, 0, 225, 0, 442, 0, 0, 442, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 442, 442, 442, 0, + 442, 442, 442, 442, 0, 157, 442, 0, 442, 0, + 298, 442, 0, 0, 752, 0, 0, 0, 442, 442, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 442, 0, 0, 0, + 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 442, 0, 442, 442, 442, 0, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 62, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 0, 0, 0, 62, 62, 0, 62, 62, - 62, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 0, 0, 0, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 0, 0, 0, 0, 0, 0, 0, 571, - 0, 0, 0, 0, 0, 0, 0, 65, 65, 65, - 65, 0, 65, 65, 65, 65, 0, 0, 65, 0, - 65, 0, 65, 65, 65, 65, 0, 65, 65, 0, - 65, 65, 65, 0, 0, 0, 0, 0, 0, 571, - 571, 0, 0, 571, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, - 571, 0, 0, 0, 0, 0, 0, 65, 65, 0, - 0, 0, 0, 0, 66, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 65, 65, 66, 65, 65, - 65, 0, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 571, 0, 571, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 147, 148, 149, 704, 0, 0, 0, 0, + 704, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 0, 0, 0, 0, 150, 0, 291, + 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 481, 482, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 0, 127, 152, 153, 154, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 157, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, - 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, - 569, 0, 0, 0, 0, 0, 0, 0, 0, 571, - 571, 0, 571, 66, 66, 66, 66, 0, 66, 66, - 66, 66, 571, 571, 66, 0, 66, 0, 66, 66, - 66, 66, 0, 66, 66, 0, 66, 66, 66, 0, - 569, 569, 0, 0, 569, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, - 571, 569, 0, 0, 0, 571, 0, 0, 0, 0, - 0, 571, 0, 66, 66, 0, 0, 0, 0, 0, + 150, 0, 291, 292, 293, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 481, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 66, 0, 66, 66, 66, 0, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 569, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 704, 0, 704, 0, 152, 153, 154, + 704, 0, 0, 704, 0, 0, 0, 704, 704, 704, + 704, 704, 0, 704, 704, 704, 704, 0, 704, 704, + 0, 0, 704, 704, 704, 704, 0, 0, 704, 704, + 704, 0, 0, 0, 0, 0, 0, 157, 704, 0, + 704, 0, 298, 0, 0, 0, 297, 0, 0, 0, + 0, 0, 0, 0, 0, 704, 704, 704, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 0, 0, 0, 571, 571, 571, - 571, 571, 571, 571, 0, 0, 0, 0, 571, 0, - 0, 571, 571, 0, 0, 570, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, - 571, 571, 0, 571, 571, 571, 571, 0, 0, 571, - 0, 571, 0, 571, 571, 571, 0, 0, 571, 571, - 0, 571, 571, 571, 0, 570, 570, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 570, 0, 570, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, + 704, 0, 704, 704, 704, 483, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 704, 704, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 155, 139, 140, 141, + 142, 451, 0, 0, 143, 144, 0, 0, 0, 0, + 212, 0, 0, 145, 0, 146, 0, 704, 704, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 569, 569, 0, 571, 571, 0, 571, - 571, 571, 0, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, - 570, 569, 0, 0, 0, 0, 569, 0, 0, 0, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, + 147, 148, 149, 0, 452, 0, 453, 454, 455, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, + 0, 0, 0, 457, 458, 459, 460, 0, 0, 461, + 0, 0, 0, 462, 463, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 33, 0, 0, 569, 569, - 569, 569, 569, 569, 569, 0, 0, 0, 0, 569, - 0, 0, 569, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, - 569, 569, 569, 0, 569, 569, 569, 569, 570, 570, - 569, 0, 569, 0, 569, 569, 569, 0, 0, 569, - 569, 0, 569, 569, 569, 0, 0, 0, 0, 33, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, - 0, 570, 0, 0, 0, 0, 0, 570, 0, 569, - 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 569, 569, 0, - 569, 569, 569, 0, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 0, 0, 0, 570, 570, 570, 570, 570, 570, 570, - 0, 0, 0, 34, 570, 0, 33, 570, 570, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 570, 570, 570, 570, 0, 570, - 570, 570, 570, 0, 0, 570, 0, 570, 0, 570, - 570, 570, 0, 0, 570, 570, 0, 570, 570, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 704, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 156, 465, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 570, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 570, 570, 0, 570, 570, 570, 0, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 0, 0, - 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 291, 292, 293, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 212, 0, + 0, 155, 212, 212, 212, 212, 212, 0, 212, 212, + 212, 212, 0, 212, 212, 0, 0, 212, 212, 212, + 212, 212, 0, 0, 212, 212, 0, 0, 0, 0, + 0, 0, 0, 212, 0, 212, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 210, + 212, 212, 212, 0, 212, 0, 212, 212, 212, 212, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 0, 0, 0, 795, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 33, 33, 0, - 33, 33, 33, 33, 34, 0, 33, 34, 33, 0, - 0, 33, 0, 0, 0, 0, 0, 34, 33, 33, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, + 0, 0, 0, 212, 212, 212, 212, 0, 0, 212, + 0, 0, 0, 212, 212, 212, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 210, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 155, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 795, 0, 795, - 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 33, 33, 0, 33, 33, 33, 0, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 151, 0, 0, 212, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 210, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 152, 153, 154, 145, 157, 146, 0, 0, 0, + 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 984, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 13, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 150, 0, 139, 140, + 141, 142, 0, 210, 98, 143, 144, 0, 0, 0, + 985, 0, 0, 0, 145, 157, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, + 155, 67, 68, 210, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 159, 145, 0, 146, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, - 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, - 0, 797, 0, 0, 795, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 34, 34, 34, 795, 34, 34, - 34, 34, 0, 0, 34, 0, 34, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 797, 795, 797, 0, 0, - 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 0, 34, 34, 34, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 575, + 0, 0, 67, 68, 159, 69, 0, 0, 0, 0, + 126, 0, 155, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 699, 0, + 146, 0, 0, 0, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 155, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 150, 33, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 0, - 0, 0, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 0, 0, - 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 795, 795, 795, 795, 0, 795, 795, - 795, 795, 797, 0, 795, 0, 795, 0, 0, 795, - 0, 0, 0, 0, 0, 797, 795, 795, 795, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 801, 0, 801, 0, 0, - 0, 0, 0, 795, 795, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, - 0, 795, 795, 0, 795, 795, 795, 0, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 0, 0, 0, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 0, 0, 0, 799, - 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, - 0, 797, 797, 797, 797, 801, 797, 797, 797, 797, - 0, 0, 797, 0, 797, 0, 0, 797, 0, 0, - 0, 0, 0, 0, 797, 797, 797, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 799, 801, 799, 0, 0, 0, 0, - 0, 797, 797, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, - 797, 0, 797, 797, 797, 0, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 801, 801, - 801, 801, 801, 801, 801, 801, 801, 801, 801, 801, - 801, 801, 801, 801, 801, 801, 801, 0, 0, 0, - 801, 801, 801, 801, 801, 801, 801, 801, 801, 801, - 801, 801, 801, 801, 801, 801, 0, 0, 0, 803, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 801, 801, 801, 801, 0, 801, 801, 801, 801, - 799, 0, 801, 0, 801, 0, 0, 801, 0, 0, - 0, 0, 0, 799, 801, 801, 801, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 803, 0, 803, 0, 0, 0, 0, - 0, 801, 801, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 799, 0, 0, 0, 0, 0, 0, 801, - 801, 0, 801, 801, 801, 0, 801, 801, 801, 801, - 801, 801, 801, 801, 801, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 799, 799, 799, 799, - 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 799, 0, 0, 0, 799, 799, - 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 0, 0, 0, 753, 0, 0, - 803, 0, 0, 0, 0, 0, 0, 0, 0, 799, - 799, 799, 799, 803, 799, 799, 799, 799, 0, 0, - 799, 0, 799, 0, 0, 799, 0, 0, 0, 0, - 0, 0, 799, 799, 799, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 753, 803, 753, 0, 0, 0, 0, 0, 799, - 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 799, 799, 0, - 799, 799, 799, 0, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 755, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 803, 803, 803, 803, - 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, - 803, 803, 803, 803, 803, 0, 0, 0, 803, 803, - 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, - 803, 803, 803, 803, 0, 0, 0, 755, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 803, - 803, 803, 803, 0, 803, 803, 803, 803, 753, 0, - 803, 753, 803, 34, 0, 803, 0, 0, 0, 0, - 0, 753, 803, 803, 803, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 755, 0, 755, 0, 0, 0, 0, 0, 803, - 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 753, 0, 0, 0, 0, 0, 0, 803, 803, 568, - 803, 803, 803, 0, 803, 803, 803, 803, 803, 803, - 803, 803, 803, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 753, 753, 753, 753, 753, 753, - 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 753, 753, 0, 0, 0, 753, 753, 753, 753, - 753, 753, 753, 0, 0, 0, 0, 753, 0, 400, - 753, 753, 0, 0, 0, 0, 0, 0, 755, 0, - 0, 755, 0, 0, 0, 0, 0, 753, 753, 753, - 753, 755, 753, 753, 753, 753, 0, 0, 753, 0, - 753, 0, 753, 753, 753, 0, 0, 753, 753, 0, - 753, 753, 753, 400, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 755, 0, 0, 0, 0, 0, 0, 753, 753, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 753, 753, 0, 753, 753, - 753, 0, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 400, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 0, 0, 0, 755, 755, 755, 755, - 755, 755, 755, 442, 0, 0, 0, 755, 0, 0, - 755, 755, 0, 0, 3, 4, 5, 6, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 755, 755, 755, - 755, 0, 755, 755, 755, 755, 8, 9, 755, 0, - 755, 0, 755, 755, 755, 0, 0, 755, 755, 0, - 755, 755, 755, 10, 11, 12, 13, 0, 0, 0, - 14, 15, 442, 0, 0, 0, 16, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 755, 755, 400, - 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 755, 755, 0, 755, 755, - 755, 0, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 0, 0, 0, 0, 0, 442, 0, 442, 0, - 0, 20, 21, 0, 22, 23, 24, 0, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 761, 0, 0, 159, 159, 0, 159, 0, 0, 0, + 0, 159, 0, 0, 159, 155, 0, 0, 159, 159, + 159, 159, 159, 0, 159, 159, 159, 159, 0, 159, + 159, 0, 0, 159, 159, 159, 159, 0, 0, 159, + 159, 159, 0, 0, 316, 0, 0, 0, 0, 159, + 0, 159, 317, 0, 0, 0, 0, 152, 153, 154, + 549, 0, 0, 316, 316, 33, 159, 159, 159, 33, + 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, + 33, 33, 0, 0, 33, 33, 33, 33, 0, 37, + 0, 33, 33, 0, 40, 0, 43, 0, 0, 0, + 33, 159, 33, 46, 0, 0, 0, 317, 0, 0, + 317, 0, 0, 0, 0, 0, 155, 33, 33, 33, + 49, 0, 0, 0, 0, 0, 0, 316, 0, 316, + 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 159, 159, + 159, 0, 0, 0, 0, 317, 0, 0, 0, 33, + 0, 0, 0, 33, 33, 33, 33, 33, 0, 33, + 33, 33, 33, 0, 33, 33, 155, 0, 33, 33, + 33, 33, 0, 37, 0, 33, 33, 0, 40, 0, + 43, 0, 0, 0, 33, 0, 33, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 33, 33, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, + 566, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 236, 0, 316, 0, 0, 316, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 317, 0, 0, 0, 0, 317, 317, 317, 317, 0, + 317, 317, 317, 317, 0, 317, 317, 0, 0, 317, + 317, 317, 317, 0, 0, 0, 317, 317, 0, 0, + 0, 0, 0, 0, 0, 317, 236, 317, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 317, 317, 317, 317, 0, 0, 0, 0, + 317, 317, 317, 317, 0, 317, 317, 317, 317, 0, + 317, 317, 0, 0, 317, 317, 317, 317, 0, 0, + 0, 317, 317, 0, 0, 0, 0, 317, 0, 0, + 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 0, 235, 0, 0, 316, 0, + 0, 0, 316, 316, 316, 316, 316, 316, 0, 0, + 0, 0, 317, 235, 0, 0, 316, 316, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 316, 0, 0, 0, + 0, 0, 0, 236, 316, 0, 236, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 236, 566, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 0, 0, 0, 400, 400, 400, - 400, 400, 400, 400, 0, 0, 0, 0, 400, 0, - 0, 400, 400, 442, 0, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 442, 0, 400, 400, - 400, 400, 0, 400, 400, 400, 400, 0, 0, 400, - 0, 400, 0, 0, 400, 0, 0, 0, 0, 0, - 0, 400, 400, 400, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 299, 442, 0, 0, 298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, - 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 400, 0, 400, - 400, 400, 0, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 0, 0, - 0, 442, 442, 442, 442, 442, 442, 442, 34, 0, - 0, 0, 442, 0, 0, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 442, 442, 0, 442, 442, 442, - 442, 0, 157, 442, 0, 442, 0, 299, 442, 0, - 0, 753, 0, 0, 0, 442, 442, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 0, 0, 0, 0, 0, 0, - 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 442, 0, 442, 442, 442, 0, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 705, 0, 0, 0, 0, 705, 0, 0, - 0, 705, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, - 0, 0, 2, 0, 150, 0, 292, 293, 294, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 482, 483, 0, 0, 0, 0, 0, 0, 0, 0, - 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 545, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 152, 153, 154, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 157, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 0, 0, 0, 0, 236, 317, 0, + 0, 236, 236, 236, 236, 236, 236, 0, 0, 0, + 0, 0, 0, 0, 235, 236, 236, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 236, 236, 236, 236, 0, 0, 0, 0, + 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 566, 0, 0, 0, 0, 236, 0, 0, + 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, - 0, 5, 6, 7, 0, 34, 0, 150, 0, 292, - 293, 294, 0, 547, 0, 0, 0, 0, 548, 0, - 0, 8, 9, 482, 483, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 549, 550, 0, 0, 0, 212, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 705, - 705, 0, 705, 551, 152, 153, 154, 705, 0, 0, - 705, 0, 0, 0, 705, 705, 705, 705, 705, 0, - 705, 705, 705, 705, 0, 705, 705, 0, 0, 705, - 705, 705, 705, 0, 0, 705, 705, 705, 552, 553, - 0, 0, 0, 0, 0, 705, 0, 705, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 705, 705, 705, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 705, 0, 705, - 705, 705, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 705, 705, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 316, 133, 134, 135, 136, 0, - 137, 138, 0, 155, 139, 140, 141, 142, 452, 0, - 0, 143, 144, 316, 316, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 705, 705, 705, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 453, 0, 454, 455, 456, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 0, 0, 316, 0, 316, - 458, 459, 460, 461, 0, 0, 462, 0, 0, 0, - 463, 464, 465, 0, 0, 0, 212, 0, 0, 0, - 212, 212, 212, 212, 212, 0, 212, 212, 212, 212, - 0, 212, 212, 0, 0, 212, 212, 212, 212, 212, - 0, 0, 212, 212, 0, 0, 0, 0, 0, 0, - 0, 212, 0, 212, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 212, 212, - 212, 0, 212, 705, 212, 212, 212, 212, 0, 236, - 0, 0, 0, 0, 0, 566, 3, 4, 5, 6, - 7, 0, 0, 0, 0, 0, 0, 236, 0, 0, - 0, 0, 0, 212, 0, 0, 0, 0, 8, 9, - 0, 212, 212, 212, 212, 466, 0, 212, 0, 0, - 0, 212, 212, 212, 0, 10, 11, 12, 13, 0, - 0, 0, 14, 15, 316, 0, 0, 316, 16, 0, - 0, 17, 0, 0, 0, 0, 0, 316, 18, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 236, 236, 236, 236, 236, 236, 0, 0, 527, 0, + 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 34, 0, 0, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 0, 0, 0, 0, 235, 0, + 0, 0, 235, 235, 235, 235, 235, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 236, 0, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 235, 235, 235, 235, 0, 0, 0, + 0, 338, 0, 339, 235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 21, 0, 22, 23, 24, 0, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 235, 0, 0, + 0, 0, 0, 235, 235, 527, 0, 0, 527, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 527, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 0, 0, 0, 0, 316, 212, - 0, 0, 316, 316, 316, 316, 316, 316, 236, 0, - 0, 236, 0, 0, 0, 0, 316, 316, 0, 0, - 0, 236, 566, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 316, 0, 0, 0, - 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 235, 235, 235, 235, 235, 235, 235, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 0, 0, 0, 0, - 0, 0, 235, 0, 0, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 0, 0, 0, 0, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 0, 0, - 0, 0, 236, 0, 0, 0, 236, 236, 236, 236, - 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 236, 236, - 236, 0, 0, 0, 0, 566, 0, 0, 236, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, - 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 0, 0, 0, 0, 235, 236, 236, 0, - 235, 235, 235, 235, 235, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, - 0, 527, 0, 527, 236, 236, 236, 236, 236, 236, - 236, 235, 235, 235, 235, 0, 0, 0, 0, 0, - 34, 0, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 338, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 0, 340, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 235, 235, 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 527, 527, 527, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 0, 0, 0, 0, 527, + 0, 0, 0, 527, 527, 527, 527, 527, 527, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 527, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 527, 527, 527, 527, 0, 0, + 0, 0, 338, 0, 999, 527, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, + 0, 0, 0, 0, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 0, 0, + 67, 0, 7, 69, 0, 0, 328, 329, 330, 331, + 332, 333, 0, 2, 527, 527, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, + 13, 527, 527, 527, 527, 527, 527, 527, 334, 0, + 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 336, 337, 67, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 532, 0, 532, 0, 0, 0, + 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 371, 0, 0, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 0, 0, 0, 0, 7, 0, 0, 0, 328, 329, + 330, 331, 332, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 0, 371, 0, 371, + 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, - 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 527, 566, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 339, 0, 798, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 363, 0, 0, 0, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 336, + 337, 532, 0, 7, 532, 0, 0, 328, 329, 330, + 331, 332, 333, 0, 532, 0, 0, 0, 0, 0, + 0, 8, 9, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 0, 363, 0, 363, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 67, 0, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 371, 0, 0, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 336, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 527, 527, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, - 0, 0, 527, 0, 0, 0, 527, 527, 527, 527, - 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 527, 527, 0, 0, 0, 0, 0, 0, 0, 67, - 0, 0, 69, 0, 0, 0, 0, 527, 527, 527, - 527, 0, 2, 0, 0, 339, 0, 1000, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 7, 0, 0, 0, 329, - 330, 331, 332, 333, 334, 0, 0, 527, 527, 0, - 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 12, 13, 527, 527, 527, 527, 527, 527, - 527, 335, 0, 532, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 545, 0, 0, 0, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 337, 338, 67, 7, 0, 69, 0, 329, 330, 331, - 332, 333, 334, 0, 0, 2, 0, 532, 0, 532, - 0, 8, 9, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 371, 0, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 0, 0, 335, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 0, 0, 0, 546, - 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 547, 0, 0, 0, 0, 548, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 337, 338, - 371, 0, 371, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 549, 550, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 551, 0, 0, 0, 0, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 532, 0, 7, 532, 0, 0, - 329, 330, 331, 332, 333, 334, 0, 532, 552, 553, - 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 363, 0, 363, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 27, 28, 29, 30, 31, - 32, 33, 335, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 371, 337, 338, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 32, 33, 0, 0, 0, 0, 0, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, - 532, 532, 532, 532, 0, 0, 0, 0, 532, 0, - 0, 0, 532, 532, 532, 532, 532, 532, 0, 0, - 363, 0, 0, 363, 0, 0, 532, 532, 0, 0, - 0, 0, 0, 363, 0, 356, 0, 356, 0, 0, - 0, 0, 0, 532, 532, 532, 532, 0, 0, 0, - 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, - 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, - 0, 371, 0, 0, 0, 371, 371, 371, 371, 371, - 371, 0, 0, 532, 532, 0, 0, 0, 0, 371, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 0, 371, 371, 371, 371, - 532, 532, 532, 532, 532, 532, 532, 371, 0, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 371, 0, 0, 0, 0, 363, 363, 363, 363, + 532, 0, 0, 0, 0, 532, 0, 0, 0, 532, + 532, 532, 532, 532, 532, 0, 0, 0, 0, 0, + 0, 0, 0, 532, 532, 356, 0, 0, 0, 0, + 0, 363, 0, 0, 363, 0, 0, 0, 0, 0, + 532, 532, 532, 532, 363, 0, 0, 0, 0, 0, + 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 0, 0, 0, 0, 371, 356, + 0, 356, 371, 371, 371, 371, 371, 371, 0, 0, + 532, 532, 0, 0, 0, 0, 371, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 371, 371, 371, 371, 532, 532, 532, + 532, 532, 532, 532, 371, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 371, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 0, 0, 356, 0, 363, 356, 0, 0, 363, 363, - 363, 363, 363, 363, 0, 356, 371, 371, 210, 0, - 210, 0, 363, 363, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 363, - 363, 363, 363, 371, 371, 371, 371, 371, 371, 371, - 363, 0, 526, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, - 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 526, 0, 526, 0, - 0, 0, 0, 0, 0, 0, 363, 363, 363, 363, - 363, 363, 363, 0, 0, 0, 0, 0, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 0, 0, 0, 210, 356, 0, 210, 0, - 356, 356, 356, 356, 356, 356, 0, 0, 210, 0, - 0, 0, 0, 0, 356, 356, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, - 0, 356, 356, 356, 356, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 356, 526, 0, 0, 526, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, - 356, 356, 356, 356, 356, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 0, 0, 0, 0, 210, - 0, 0, 0, 210, 210, 210, 210, 210, 210, 0, - 187, 0, 187, 187, 187, 905, 0, 210, 210, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 187, - 0, 0, 187, 187, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 187, - 187, 187, 187, 0, 187, 187, 0, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 526, - 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, - 526, 526, 526, 0, 210, 210, 0, 526, 0, 0, - 0, 526, 526, 526, 526, 526, 526, 0, 0, 187, - 187, 0, 0, 0, 0, 526, 526, 0, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 210, 0, 0, - 0, 0, 526, 526, 526, 526, 187, 187, 187, 187, - 187, 187, 187, 526, 0, 0, 0, 0, 0, 864, - 0, 0, 0, 0, 0, 0, 0, 526, 0, 0, - 0, 0, 0, 865, 0, 0, 0, 0, 866, 867, - 0, 868, 869, 870, 871, 872, 873, 0, 874, 875, - 0, 876, 877, 878, 879, 880, 0, 0, 0, 0, - 0, 0, 526, 526, 0, 0, 0, 0, 0, 0, + 363, 0, 0, 371, 371, 363, 210, 0, 210, 363, + 363, 363, 363, 363, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 363, 363, 526, 0, 0, 0, 0, + 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, + 363, 363, 363, 363, 0, 0, 356, 0, 0, 356, + 0, 363, 0, 0, 34, 0, 0, 0, 0, 356, + 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, - 526, 526, 526, 526, 526, 526, 0, 881, 0, 882, - 0, 0, 0, 0, 883, 0, 0, 0, 0, 0, + 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, + 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 363, 363, + 363, 363, 363, 363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 885, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 34, 0, 0, 0, + 356, 0, 0, 0, 356, 356, 356, 356, 356, 356, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, + 0, 0, 0, 0, 0, 0, 526, 0, 0, 526, + 0, 0, 0, 0, 0, 356, 356, 356, 356, 526, + 0, 0, 0, 0, 0, 0, 356, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 0, 553, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 0, 0, 356, 356, 210, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, + 0, 0, 0, 1229, 0, 210, 210, 0, 0, 0, + 0, 0, 356, 356, 356, 356, 356, 356, 356, 0, + 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 526, 526, 526, 526, 526, 526, 526, 526, + 526, 526, 526, 526, 526, 526, 0, 0, 0, 0, + 526, 0, 187, 0, 526, 526, 526, 526, 526, 526, + 0, 0, 210, 210, 0, 0, 0, 0, 526, 526, + 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, + 2, 0, 0, 0, 0, 526, 526, 526, 526, 210, + 210, 210, 210, 210, 210, 210, 526, 8, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 526, 0, 0, 0, 10, 11, 12, 13, 187, 0, + 0, 14, 15, 0, 0, 0, 0, 16, 0, 544, + 17, 2, 0, 0, 0, 0, 0, 18, 19, 0, + 0, 0, 0, 0, 0, 526, 526, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 526, 526, 526, 526, 526, 526, 526, 0, + 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 22, 23, 24, 0, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 904, 545, 0, 5, + 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 546, 0, 0, 0, 0, 547, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 0, 548, 549, 0, 0, 0, 187, 0, 545, 0, + 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 550, 546, 0, 0, 0, 0, 547, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, + 13, 0, 548, 549, 0, 187, 551, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 550, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 864, 0, 0, 551, 552, 865, + 866, 0, 867, 868, 869, 870, 871, 872, 0, 873, + 874, 0, 875, 876, 877, 878, 879, 0, 0, 0, + 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 187, 0, 187, 187, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 187, 0, 0, 187, 187, 0, 880, 0, + 881, 0, 0, 0, 0, 882, 863, 0, 0, 0, + 0, 0, 187, 187, 187, 187, 0, 187, 187, 0, + 864, 883, 0, 0, 0, 865, 866, 0, 867, 868, + 869, 870, 871, 872, 0, 873, 874, 187, 875, 876, + 877, 878, 879, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 880, 0, 881, 0, 0, 0, + 0, 882, 0, 0, 0, 0, 0, 0, 0, 187, + 187, 187, 187, 187, 187, 187, 0, 883, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 884, 0, 0, 0, 0, 885, 0, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 0, 0, 0, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 886, 0, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 903, 0, 0, 0, 904, + 0, 885, 0, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, + 0, 0, 0, 903, }; static int yycheck[] = { 4, - 155, 24, 1, 102, 103, 167, 92, 13, 93, 24, - 1009, 313, 20, 21, 19, 313, 313, 181, 24, 1, - 24, 1, 27, 28, 29, 30, 22, 23, 1, 912, - 712, 38, 1033, 1, 698, 846, 64, 44, 40, 1, - 486, 24, 61, 46, 792, 36, 37, 59, 43, 43, - 45, 432, 61, 434, 43, 1203, 40, 65, 46, 46, - 38, 264, 41, 41, 72, 46, 44, 41, 167, 60, - 91, 41, 193, 194, 195, 196, 197, 41, 123, 33, - 41, 1165, 105, 365, 169, 1281, 76, 368, 125, 46, - 40, 190, 1557, 44, 59, 777, 40, 319, 104, 93, - 43, 42, 188, 111, 112, 128, 483, 41, 113, 123, - 115, 116, 117, 91, 40, 38, 215, 262, 61, 42, - 40, 104, 46, 44, 41, 46, 503, 47, 151, 40, - 511, 512, 471, 41, 43, 41, 33, 60, 91, 123, - 60, 145, 93, 288, 148, 41, 232, 41, 233, 157, - 156, 156, 157, 42, 41, 521, 522, 523, 380, 40, - 125, 167, 44, 42, 168, 91, 38, 263, 91, 42, - 42, 199, 41, 123, 46, 47, 924, 925, 40, 123, - 91, 267, 187, 42, 93, 208, 348, 125, 60, 41, - 41, 181, 41, 59, 1544, 44, 263, 342, 1546, 41, - 205, 206, 91, 299, 210, 210, 370, 44, 40, 40, - 91, 93, 203, 221, 222, 44, 1681, 40, 1414, 91, - 264, 58, 40, 44, 1574, 1547, 40, 232, 1576, 38, - 267, 61, 40, 42, 239, 983, 40, 266, 46, 123, - 40, 62, 40, 262, 260, 261, 260, 263, 1332, 263, - 264, 60, 338, 262, 353, 1577, 260, 286, 287, 125, - 91, 543, 267, 40, 93, 351, 311, 352, 91, 288, - 264, 1019, 41, 281, 297, 556, 281, 91, 262, 284, - 288, 304, 91, 288, 61, 264, 291, 91, 296, 263, - 295, 91, 1175, 91, 264, 300, 301, 302, 303, 294, - 264, 265, 306, 506, 507, 508, 260, 59, 273, 263, - 264, 306, 307, 399, 313, 314, 998, 59, 262, 260, - 261, 329, 263, 331, 352, 299, 349, 335, 694, 324, - 264, 313, 314, 313, 314, 343, 344, 318, 262, 347, - 313, 314, 348, 349, 365, 313, 314, 264, 354, 345, - 346, 313, 314, 343, 274, 296, 264, 347, 264, 320, - 321, 318, 370, 260, 261, 356, 263, 264, 264, 265, - 264, 354, 371, 372, 373, 374, 742, 264, 265, 374, - 370, 260, 261, 125, 263, 264, 46, 260, 261, 475, - 263, 371, 372, 373, 374, 264, 275, 1079, 260, 261, - 60, 263, 391, 391, 391, 264, 1554, 273, 91, 371, - 1411, 260, 264, 264, 263, 423, 424, 296, 426, 422, - 428, 359, 264, 296, 266, 262, 364, 471, 260, 261, - 296, 263, 316, 41, 430, 443, 444, 360, 361, 362, - 1588, 527, 528, 607, 286, 287, 264, 265, 266, 439, - 473, 453, 529, 91, 618, 471, 542, 91, 260, 261, - 826, 263, 467, 428, 469, 430, 431, 553, 286, 287, - 40, 1282, 123, 264, 265, 481, 484, 576, 484, 484, - 44, 927, 40, 91, 449, 450, 451, 452, 360, 361, - 362, 496, 40, 264, 502, 264, 265, 266, 62, 507, - 508, 509, 1166, 511, 40, 513, 514, 515, 594, 517, - 260, 261, 517, 263, 510, 91, 512, 286, 287, 526, - 516, 91, 543, 609, 536, 537, 538, 539, 540, 541, - 542, 273, 473, 91, 91, 44, 40, 542, 471, 91, - 625, 549, 550, 91, 410, 911, 123, 40, 526, 544, - 262, 360, 361, 362, 40, 91, 260, 40, 481, 263, - 264, 1562, 264, 40, 572, 40, 267, 575, 573, 574, - 40, 536, 537, 538, 539, 540, 541, 542, 601, 281, - 282, 283, 391, 668, 93, 670, 452, 91, 596, 594, - 1338, 1339, 40, 1592, 473, 603, 462, 91, 91, 465, - 473, 765, 47, 40, 123, 91, 596, 359, 91, 600, - 618, 33, 364, 603, 91, 40, 91, 607, 42, 33, - 123, 91, 260, 261, 123, 263, 260, 261, 618, 263, - 268, 260, 261, 46, 263, 643, 43, 260, 45, 644, - 263, 632, 633, 91, 40, 650, 669, 638, 656, 640, - 123, 679, 260, 261, 91, 263, 123, 756, 296, 667, - 268, 463, 46, 762, 315, 316, 91, 91, 754, 755, - 536, 537, 538, 539, 540, 541, 542, 61, 123, 46, - 93, 123, 690, 264, 260, 261, 709, 263, 296, 1572, - 46, 299, 40, 315, 275, 91, 700, 999, 306, 46, - 785, 999, 999, 260, 261, 46, 263, 712, 260, 261, - 452, 263, 717, 463, 719, 714, 724, 725, 726, 1020, - 462, 1022, 61, 465, 1406, 716, 93, 283, 284, 752, - 851, 727, 853, 854, 855, 856, 857, 93, 38, 44, - 748, 749, 42, 91, 40, 374, 375, 279, 280, 47, - 755, 1499, 93, 776, 759, 760, 761, 289, 844, 40, - 60, 769, 318, 771, 1512, 773, 260, 261, 59, 263, - 778, 794, 777, 41, 782, 765, 44, 415, 416, 417, - 41, 42, 40, 779, 536, 537, 538, 539, 540, 541, - 542, 91, 782, 801, 536, 537, 538, 539, 540, 541, - 542, 41, 42, 811, 812, 320, 321, 415, 416, 417, - 1191, 801, 1193, 393, 394, 260, 261, 825, 263, 1501, - 810, 38, 306, 40, 829, 42, 831, 912, 393, 394, - 91, 917, 59, 41, 125, 43, 921, 842, 260, 261, - 848, 263, 264, 60, 1539, 260, 261, 1595, 263, 391, - 1545, 91, 860, 391, 862, 260, 261, 271, 263, 41, - 33, 275, 276, 277, 278, 279, 391, 281, 282, 283, - 284, 391, 286, 287, 91, 267, 290, 291, 292, 293, - 1575, 295, 41, 297, 298, 44, 300, 294, 302, 1637, - 41, 42, 306, 41, 308, 309, 41, 42, 125, 306, - 307, 41, 458, 459, 912, 461, 43, 44, 912, 323, - 324, 325, 326, 41, 922, 330, 331, 324, 91, 909, - 1668, 316, 1008, 328, 1010, 330, 331, 341, 264, 59, - 266, 42, 337, 38, 44, 1683, 46, 42, 260, 261, - 91, 263, 260, 261, 358, 263, 91, 41, 947, 43, - 286, 287, 330, 331, 332, 60, 1638, 91, 949, 40, - 260, 261, 952, 263, 1050, 40, 1052, 374, 991, 984, - 295, 93, 38, 1058, 997, 300, 42, 302, 615, 616, - 617, 59, 273, 988, 309, 993, 91, 995, 366, 367, - 368, 43, 44, 998, 60, 125, 260, 261, 1680, 263, - 999, 326, 1001, 1002, 1003, 61, 330, 331, 332, 1014, - 260, 261, 1020, 263, 1022, 1100, 341, 999, 44, 999, - 46, 1001, 1002, 1003, 40, 91, 999, 263, 1001, 1002, - 1020, 999, 1022, 1001, 1002, 43, 1044, 999, 41, 1047, - 43, 38, 366, 367, 368, 42, 41, 125, 41, 1054, - 43, 44, 374, 375, 93, 301, 1211, 303, 304, 305, - 360, 361, 362, 60, 41, 42, 899, 900, 1153, 1231, - 1232, 1233, 1234, 310, 1079, 312, 313, 314, 476, 1241, - 1242, 1243, 280, 281, 282, 283, 284, 260, 261, 0, - 263, 280, 93, 93, 91, 268, 125, 41, 271, 264, - 265, 266, 275, 276, 277, 278, 279, 40, 281, 282, - 283, 284, 40, 286, 287, 91, 58, 290, 291, 292, - 293, 286, 287, 296, 297, 298, 260, 261, 33, 263, - 544, 40, 359, 306, 268, 308, 40, 364, 40, 40, - 1148, 1227, 1228, 360, 361, 362, 40, 125, 59, 44, - 323, 324, 325, 41, 327, 280, 281, 282, 283, 284, - 40, 452, 296, 40, 262, 299, 123, 59, 1176, 1177, - 1178, 462, 306, 262, 465, 1183, 1184, 1185, 1186, 1187, - 1188, 44, 1190, 1191, 1192, 358, 1194, 1195, 1196, 1197, - 1198, 1199, 1200, 1189, 1202, 273, 1204, 1193, 1206, 372, - 1208, 1582, 1583, 1207, 41, 1201, 260, 261, 41, 263, - 264, 60, 274, 464, 125, 1221, 274, 62, 296, 1224, - 275, 1306, 44, 365, 123, 1231, 1232, 1233, 1234, 359, - 123, 58, 123, 125, 364, 1241, 1242, 1243, 281, 282, - 283, 284, 415, 416, 417, 536, 537, 538, 539, 540, - 541, 542, 123, 274, 40, 360, 361, 362, 40, 40, - 1268, 1251, 41, 40, 317, 1273, 281, 282, 283, 284, - 1275, 281, 282, 283, 284, 1265, 1284, 1267, 468, 317, - 40, 415, 416, 417, 471, 61, 1294, 61, 61, 44, - 1298, 1299, 471, 41, 360, 361, 362, 1396, 93, 41, - 41, 1309, 281, 282, 283, 284, 41, 41, 41, 536, - 537, 538, 539, 540, 541, 542, 41, 44, 58, 1405, - 41, 44, 1330, 1331, 44, 125, 263, 40, 40, 61, - 1416, 61, 410, 125, 1333, 41, 1344, 1345, 1346, 1347, - 1348, 1349, 41, 1351, 1429, 41, 41, 41, 41, 41, - 294, 41, 41, 41, 1350, 41, 41, 301, 41, 303, - 304, 305, 273, 360, 361, 362, 41, 41, 41, 40, - 40, 544, 41, 41, 452, 93, 274, 123, 93, 44, - 1384, 273, 1387, 44, 462, 274, 41, 465, 44, 40, - 40, 58, 41, 41, 40, 0, 41, 41, 342, 343, - 344, 1406, 41, 40, 294, 62, 536, 537, 538, 539, - 540, 541, 542, 91, 1500, 41, 41, 40, 498, 91, - 1428, 490, 40, 502, 277, 41, 61, 1435, 33, 62, - 41, 41, 41, 38, 125, 40, 41, 42, 91, 44, - 41, 123, 47, 41, 388, 389, 390, 1446, 392, 41, - 452, 395, 391, 93, 59, 60, 61, 62, 536, 537, - 538, 539, 540, 541, 542, 93, 40, 317, 41, 41, - 317, 41, 1558, 40, 40, 58, 58, 40, 295, 1502, - 1565, 93, 44, 300, 91, 302, 91, 93, 93, 93, - 93, 505, 309, 40, 91, 40, 1501, 93, 41, 410, - 411, 412, 413, 414, 123, 41, 40, 40, 422, 326, - 327, 41, 41, 1521, 1522, 1523, 93, 93, 123, 511, - 125, 432, 433, 44, 341, 274, 41, 58, 38, 41, - 41, 44, 60, 425, 426, 427, 428, 61, 449, 450, - 451, 452, 93, 40, 40, 456, 457, 40, 294, 40, - 40, 462, 40, 464, 465, 372, 1641, 449, 450, 451, - 452, 472, 473, 309, 40, 1573, 40, 40, 40, 40, - 1578, 1579, 1580, 40, 1582, 1674, 1584, 1585, 1586, 325, - 62, 125, 260, 261, 41, 263, 1590, 1583, 334, 93, - 268, 41, 1678, 93, 41, 93, 41, 41, 1606, 1607, - 1608, 93, 348, 349, 350, 351, 93, 260, 261, 41, - 263, 41, 93, 123, 41, 268, 527, 528, 296, 530, - 531, 532, 41, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 93, 1638, 380, 381, 382, 383, 384, 385, - 386, 38, 41, 296, 536, 537, 538, 539, 540, 541, - 542, 93, 41, 306, 1677, 260, 261, 262, 263, 93, - 41, 1669, 93, 268, 41, 93, 271, 41, 273, 274, - 275, 276, 277, 278, 279, 1680, 281, 282, 283, 284, - 93, 286, 287, 288, 41, 290, 291, 292, 293, 93, - 41, 296, 297, 298, 299, 269, 41, 93, 272, 41, - 38, 306, 263, 308, 41, 93, 311, 41, 44, 274, - 315, 316, 41, 318, 41, 40, 40, 322, 323, 324, - 325, 295, 296, 93, 41, 93, 300, 93, 302, 40, - 40, 40, 58, 41, 339, 309, 58, 415, 416, 417, - 58, 41, 41, 41, 40, 40, 93, 41, 41, 93, - 41, 41, 326, 358, 359, 360, 361, 362, 93, 364, - 365, 93, 415, 416, 417, 40, 40, 341, 278, 374, - 375, 281, 282, 283, 284, 40, 286, 287, 288, 40, - 33, 40, 40, 40, 40, 123, 391, 41, 40, 40, - 40, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 40, - 40, 93, 60, 0, 38, 41, 58, 263, 91, 41, - 40, 40, 40, 40, 449, 450, 451, 452, 93, 454, - 455, 456, 457, 41, 91, 460, 40, 462, 41, 464, - 465, 466, 467, 41, 469, 470, 33, 472, 473, 474, - 41, 38, 41, 40, 41, 42, 481, 44, 40, 274, - 47, 278, 41, 263, 281, 282, 283, 284, 41, 286, - 287, 288, 59, 60, 61, 62, 40, 40, 511, 358, - 41, 41, 274, 40, 509, 510, 511, 41, 41, 123, - 125, 41, 44, 62, 123, 123, 123, 40, 40, 123, - 125, 40, 527, 528, 91, 530, 531, 532, 123, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 125, 544, - 278, 123, 62, 281, 282, 283, 284, 41, 286, 287, - 288, 123, 41, 41, 41, 125, 123, 123, 125, 41, - 277, 278, 279, 41, 281, 282, 283, 284, 125, 286, - 287, 288, 123, 290, 291, 292, 293, 123, 41, 62, - 297, 298, 41, 41, 123, 123, 59, 263, 0, 40, - 40, 40, 40, 40, 40, 40, 91, 40, 59, 40, - 40, 40, 40, 93, 46, 40, 40, 260, 261, 93, - 263, 40, 40, 421, 263, 268, 42, 61, 271, 263, - 275, 263, 275, 276, 277, 278, 279, 275, 281, 282, - 283, 284, 275, 286, 287, 275, 275, 290, 291, 292, - 293, 275, 275, 296, 297, 298, 275, 59, 365, 61, - 275, 263, 125, 306, 91, 308, 260, 260, 261, 263, - 263, 841, 275, 180, 125, 1049, 1026, 908, 749, 1291, - 323, 324, 325, 1517, 278, 1024, 1153, 281, 282, 283, - 284, 275, 286, 287, 288, 275, 275, 927, 294, 275, - 275, 917, 709, 260, 261, 301, 263, 303, 304, 305, - 1292, 268, 1279, 481, 271, 358, 273, 274, 275, 276, - 277, 278, 279, 125, 281, 282, 283, 284, 354, 286, - 287, 24, 9, 290, 291, 292, 293, 914, 1215, 296, - 297, 298, 299, 114, 551, 24, 342, 343, 344, 306, - 764, 308, 306, 613, 311, 269, 768, 679, 272, 316, - 64, 372, 355, 356, 357, 322, 323, 324, 325, -1, - 493, -1, 415, 416, 417, 260, 261, 262, 263, 264, - -1, 295, 296, 268, -1, -1, 300, 380, 302, -1, - -1, -1, 388, 389, 390, 309, 392, -1, 283, 395, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - 273, 296, 326, -1, -1, -1, -1, 374, 375, -1, - -1, -1, 273, -1, -1, -1, -1, 341, -1, -1, - -1, -1, -1, 296, 391, 320, 321, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, 475, -1, 477, 478, 479, 480, 339, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, 544, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - 322, 40, 41, 42, 481, 44, -1, -1, 47, -1, - 415, 416, 417, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, 410, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, 452, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 462, - -1, 452, 465, -1, 123, -1, 125, -1, 410, 411, - 412, 413, 414, 464, -1, 466, 467, -1, 469, 470, - -1, -1, 424, -1, -1, -1, -1, 429, -1, -1, - 432, 433, -1, -1, 59, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, -1, -1, - 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, 474, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, 59, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 509, 510, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, - 260, 261, 271, 263, 273, 274, 275, 276, 277, 278, - 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, 271, -1, 322, 323, 324, 325, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, -1, 298, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, 355, 356, 357, 273, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 380, 296, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, - 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, 322, 40, - 41, 42, 481, 44, -1, 475, -1, 477, 478, 479, - 480, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, 410, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, 452, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 462, -1, -1, - 465, -1, 123, -1, 125, -1, 410, 411, 412, 413, - 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 424, -1, -1, -1, -1, 429, -1, -1, 432, 433, - -1, 59, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, - 474, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, 262, -1, -1, -1, 316, -1, -1, -1, 41, - -1, 322, 323, 324, 325, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, -1, -1, -1, 299, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, 410, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, 452, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, - -1, -1, 294, -1, -1, -1, -1, -1, -1, 301, - -1, 303, 304, 305, -1, -1, 432, 433, -1, -1, + 24, 24, 102, 103, 167, 24, 92, 1, 22, 23, + 1, 312, 312, 93, 19, 13, 1, 791, 1008, 1032, + 711, 1, 27, 28, 29, 30, 24, 911, 64, 1, + 312, 181, 697, 1, 431, 91, 433, 845, 38, 485, + 36, 37, 24, 38, 44, 42, 41, 40, 264, 44, + 367, 43, 125, 43, 123, 45, 264, 46, 46, 46, + 1202, 123, 46, 46, 60, 41, 1164, 167, 41, 1280, + 44, 40, 76, 193, 194, 195, 196, 197, 47, 41, + 43, 123, 105, 33, 58, 776, 125, 1556, 91, 169, + 190, 60, 46, 59, 319, 263, 91, 40, 1538, 520, + 521, 522, 188, 41, 1544, 128, 104, 262, 113, 46, + 115, 116, 117, 510, 511, 215, 43, 40, 42, 44, + 41, 145, 104, 41, 148, 40, 46, 40, 151, 46, + 93, 299, 40, 288, 1574, 38, 471, 62, 40, 42, + 91, 41, 40, 60, 168, 41, 232, 59, 42, 923, + 924, 156, 157, 233, 41, 380, 93, 60, 156, 125, + 41, 44, 61, 199, 260, 261, 93, 263, 91, 167, + 59, 41, 40, 93, 46, 41, 91, 181, 40, 33, + 123, 267, 187, 91, 347, 208, 41, 342, 91, 91, + 40, 269, 365, 91, 272, 46, 41, 41, 40, 40, + 205, 206, 1413, 41, 46, 210, 263, 203, 982, 40, + 93, 1680, 210, 125, 61, 40, 40, 295, 296, 369, + 483, 93, 300, 91, 302, 42, 40, 232, 267, 1543, + 40, 309, 40, 1331, 239, 44, 260, 61, 555, 91, + 503, 91, 93, 529, 1018, 61, 41, 316, 326, 44, + 91, 337, 352, 315, 316, 471, 40, 260, 261, 1573, + 263, 123, 267, 341, 350, 268, 91, 264, 471, 311, + 33, 351, 693, 296, 91, 33, 281, 91, 283, 46, + 303, 305, 287, 91, 93, 290, 359, 263, 262, 294, + 1174, 364, 123, 296, 299, 300, 301, 302, 506, 507, + 508, 264, 264, 306, 294, 274, 997, 273, 262, 365, + 260, 261, 398, 263, 264, 351, 306, 307, 312, 313, + 741, 312, 313, 299, 264, 348, 264, 312, 313, 318, + 344, 345, 312, 313, 324, 318, 260, 261, 342, 263, + 312, 313, 346, 264, 312, 313, 264, 320, 321, 347, + 348, 264, 265, 266, 33, 353, 20, 21, 43, 355, + 45, 273, 123, 262, 264, 369, 260, 261, 264, 263, + 543, 353, 296, 286, 287, 471, 370, 264, 265, 370, + 371, 372, 373, 264, 374, 266, 59, 1078, 474, 288, + 370, 371, 372, 373, 264, 265, 59, 1410, 264, 391, + 262, 65, 296, 391, 825, 286, 287, 391, 72, 264, + 265, 1553, 415, 416, 417, 429, 270, 271, 272, 264, + 264, 275, 276, 277, 278, 279, 264, 281, 282, 283, + 284, 262, 286, 287, 438, 422, 290, 291, 292, 293, + 526, 527, 296, 297, 298, 1587, 262, 111, 112, 472, + 260, 261, 306, 263, 308, 541, 606, 360, 361, 362, + 453, 466, 125, 468, 1545, 260, 552, 617, 263, 323, + 324, 325, 264, 1281, 40, 575, 260, 261, 483, 263, + 926, 40, 480, 275, 262, 483, 452, 543, 38, 910, + 495, 40, 42, 157, 1575, 509, 462, 511, 44, 465, + 1165, 515, 260, 261, 358, 263, 264, 593, 271, 123, + 60, 516, 275, 276, 277, 278, 279, 59, 281, 282, + 283, 284, 608, 286, 287, 91, 526, 290, 291, 292, + 293, 526, 91, 38, 297, 298, 541, 42, 91, 40, + 452, 91, 91, 306, 624, 308, 40, 93, 1561, 473, + 462, 264, 265, 465, 544, 60, 40, 221, 222, 123, + 323, 324, 325, 1337, 1338, 283, 284, 572, 573, 40, + 536, 537, 538, 539, 540, 541, 542, 600, 481, 473, + 267, 260, 40, 125, 263, 264, 91, 667, 593, 669, + 91, 595, 41, 43, 43, 358, 91, 91, 602, 123, + 318, 1591, 606, 599, 1546, 260, 261, 91, 263, 294, + 273, 61, 40, 617, 764, 260, 261, 281, 263, 123, + 91, 306, 307, 287, 536, 537, 538, 539, 540, 541, + 542, 295, 123, 91, 1576, 631, 632, 40, 643, 324, + 123, 637, 678, 639, 649, 668, 315, 536, 537, 538, + 539, 540, 541, 542, 44, 755, 44, 123, 40, 260, + 261, 761, 263, 91, 328, 44, 330, 753, 754, 46, + 334, 44, 59, 46, 62, 699, 339, 42, 342, 343, + 260, 261, 346, 263, 61, 708, 359, 1571, 91, 374, + 544, 364, 61, 40, 42, 40, 260, 998, 998, 263, + 264, 320, 321, 93, 784, 369, 711, 260, 261, 91, + 263, 716, 726, 718, 1405, 44, 998, 46, 40, 715, + 91, 59, 713, 38, 1498, 91, 91, 42, 751, 40, + 850, 59, 852, 853, 854, 855, 856, 1511, 125, 260, + 458, 459, 263, 461, 91, 60, 91, 40, 91, 754, + 330, 331, 775, 758, 759, 760, 47, 843, 422, 423, + 764, 425, 40, 427, 778, 260, 261, 91, 263, 91, + 793, 776, 41, 374, 375, 44, 91, 781, 442, 443, + 306, 544, 41, 260, 261, 44, 263, 125, 41, 452, + 43, 260, 261, 1190, 263, 1192, 800, 125, 44, 91, + 46, 464, 391, 466, 467, 809, 469, 470, 463, 1500, + 360, 361, 362, 41, 266, 43, 44, 359, 463, 483, + 1594, 391, 364, 828, 310, 830, 312, 313, 314, 41, + 916, 911, 41, 59, 286, 287, 841, 501, 41, 42, + 920, 391, 506, 507, 508, 41, 510, 43, 512, 513, + 514, 328, 516, 330, 331, 360, 361, 362, 391, 264, + 337, 266, 1636, 536, 537, 538, 539, 540, 541, 542, + 279, 280, 391, 536, 537, 538, 539, 540, 541, 542, + 289, 286, 287, 47, 548, 549, 273, 911, 91, 260, + 261, 59, 263, 1667, 260, 261, 1019, 263, 1021, 125, + 41, 42, 268, 267, 908, 374, 375, 571, 1682, 41, + 574, 41, 260, 261, 41, 263, 264, 260, 261, 316, + 263, 1007, 42, 1009, 41, 42, 40, 275, 41, 40, + 296, 595, 93, 299, 40, 273, 260, 261, 602, 263, + 306, 43, 44, 264, 268, 273, 1637, 951, 296, 61, + 91, 43, 948, 617, 263, 946, 41, 125, 476, 123, + 281, 282, 283, 1049, 983, 1051, 280, 990, 260, 261, + 93, 263, 296, 996, 91, 40, 260, 1057, 642, 263, + 264, 38, 987, 393, 394, 42, 41, 42, 1679, 46, + 47, 655, 997, 40, 536, 537, 538, 539, 540, 541, + 542, 339, 666, 60, 998, 38, 40, 998, 1013, 1000, + 1001, 1002, 40, 998, 40, 1019, 40, 1021, 998, 1099, + 1000, 1001, 1002, 40, 59, 689, 998, 40, 1000, 1001, + 998, 40, 1000, 1001, 91, 40, 91, 40, 425, 426, + 427, 428, 614, 615, 616, 360, 361, 362, 1053, 415, + 416, 417, 264, 265, 266, 260, 261, 40, 263, 723, + 724, 725, 449, 450, 451, 452, 41, 1230, 1231, 1232, + 1233, 93, 1152, 1078, 286, 287, 40, 1240, 1241, 1242, + 393, 394, 93, 747, 748, 43, 44, 264, 265, 266, + 125, 415, 416, 417, 432, 433, 260, 261, 40, 263, + 428, 91, 430, 431, 768, 273, 770, 125, 772, 286, + 287, 898, 899, 777, 452, 58, 91, 781, 41, 42, + 33, 449, 450, 451, 452, 473, 464, 125, 466, 467, + 40, 469, 470, 359, 260, 261, 800, 263, 364, 40, + 1226, 1227, 281, 282, 283, 284, 810, 811, 40, 536, + 537, 538, 539, 540, 541, 542, 281, 282, 283, 284, + 824, 33, 40, 40, 44, 0, 301, 38, 303, 304, + 305, 42, 41, 91, 1188, 40, 260, 261, 1192, 263, + 264, 294, 1206, 847, 1581, 1582, 1200, 40, 301, 60, + 303, 304, 305, 260, 261, 859, 263, 861, 536, 537, + 538, 539, 540, 541, 542, 44, 262, 123, 536, 537, + 538, 539, 540, 541, 542, 41, 262, 41, 1223, 91, + 91, 274, 1220, 41, 59, 1305, 60, 464, 40, 342, + 343, 344, 1230, 1231, 1232, 1233, 274, 40, 273, 40, + 40, 62, 1240, 1241, 1242, 278, 1250, 911, 281, 282, + 283, 284, 275, 286, 287, 288, 44, 921, 365, 123, + 1264, 296, 1266, 123, 432, 433, 123, 123, 58, 1274, + 330, 331, 332, 274, 40, 388, 389, 390, 40, 392, + 40, 40, 395, 41, 452, 260, 261, 38, 263, 40, + 125, 42, 41, 268, 468, 1395, 464, 317, 466, 471, + 61, 469, 470, 360, 361, 362, 366, 367, 368, 60, + 536, 537, 538, 539, 540, 541, 542, 317, 1404, 61, + 61, 296, 40, 471, 299, 44, 41, 41, 992, 1415, + 994, 306, 0, 41, 38, 1349, 93, 58, 42, 41, + 91, 1332, 260, 261, 41, 263, 41, 41, 1428, 41, + 268, 281, 282, 283, 284, 1019, 60, 1021, 44, 1383, + 330, 331, 332, 0, 281, 282, 283, 284, 536, 537, + 538, 539, 540, 541, 542, 410, 61, 44, 296, 1043, + 44, 1386, 1046, 61, 263, 125, 40, 91, 40, 260, + 261, 59, 263, 61, 125, 41, 366, 367, 368, 271, + 1405, 41, 41, 275, 276, 277, 278, 279, 41, 281, + 282, 283, 284, 1499, 286, 287, 41, 452, 290, 291, + 292, 293, 59, 41, 41, 297, 298, 462, 41, 41, + 465, 41, 41, 41, 306, 41, 308, 41, 273, 41, + 415, 416, 417, 280, 281, 282, 283, 284, 41, 40, + 93, 323, 324, 325, 1445, 274, 41, 125, 93, 277, + 278, 279, 44, 281, 282, 283, 284, 274, 286, 287, + 288, 1557, 290, 291, 292, 293, 41, 44, 1501, 297, + 298, 38, 41, 1147, 1564, 40, 358, 58, 125, 360, + 361, 362, 44, 260, 261, 1500, 263, 415, 416, 417, + 40, 536, 537, 538, 539, 540, 541, 542, 41, 41, + 40, 1175, 1176, 1177, 40, 294, 41, 41, 1182, 1183, + 1184, 1185, 1186, 1187, 41, 1189, 1190, 1191, 40, 1193, + 1194, 1195, 1196, 1197, 1198, 1199, 41, 1201, 91, 1203, + 62, 1205, 41, 1207, 40, 294, 498, 365, 502, 490, + 40, 277, 301, 41, 303, 304, 305, 61, 41, 125, + 1640, 123, 62, 41, 41, 1589, 123, 41, 1582, 41, + 452, 391, 93, 1673, 93, 410, 411, 412, 413, 414, + 280, 281, 282, 283, 284, 41, 41, 41, 355, 356, + 357, 1677, 317, 342, 343, 344, 41, 432, 433, 40, + 38, 317, 93, 1267, 40, 273, 58, 58, 1272, 360, + 361, 362, 93, 380, 449, 450, 451, 452, 93, 1283, + 93, 456, 457, 40, 40, 44, 91, 462, 91, 1293, + 465, 505, 1637, 1297, 1298, 40, 273, 472, 473, 388, + 389, 390, 40, 392, 1308, 93, 395, 123, 41, 41, + 40, 40, 422, 1676, 322, 41, 360, 361, 362, 41, + 93, 93, 511, 44, 41, 1329, 1330, 274, 41, 41, + 58, 93, 544, 44, 1679, 60, 0, 61, 40, 1343, + 1344, 1345, 1346, 1347, 1348, 123, 1350, 40, 40, 40, + 40, 40, 527, 528, 40, 530, 531, 532, 40, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 475, 33, + 477, 478, 479, 480, 38, 40, 40, 41, 42, 40, + 44, 278, 40, 47, 281, 282, 283, 284, 40, 286, + 287, 288, 62, 41, 125, 59, 60, 61, 62, 93, + 41, 41, 410, 411, 412, 413, 414, 41, 93, 93, + 93, 41, 93, 41, 93, 41, 424, 41, 93, 41, + 41, 429, 93, 1427, 432, 433, 59, 91, 41, 93, + 1434, 93, 41, 410, 411, 412, 413, 414, 93, 41, + 38, 449, 450, 451, 452, 41, 454, 455, 456, 457, + 93, 93, 41, 41, 462, 432, 433, 465, 93, 123, + 41, 125, 93, 41, 472, 473, 474, 41, 93, 44, + 263, 41, 449, 450, 451, 452, 274, 41, 41, 456, + 457, 40, 93, 93, 40, 462, 93, 464, 465, 40, + 40, 40, 125, 41, 40, 472, 473, 58, 58, 91, + 278, 509, 510, 281, 282, 283, 284, 41, 286, 287, + 288, 58, 269, 41, 41, 272, 1520, 1521, 1522, 527, + 528, 40, 530, 531, 532, 123, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 41, 93, 41, 295, 296, + 93, 41, 41, 300, 40, 302, 40, 40, 93, 93, + 527, 528, 309, 530, 531, 532, 40, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 40, 40, 1572, 326, + 40, 40, 40, 1577, 1578, 1579, 40, 1581, 40, 1583, + 1584, 1585, 40, 40, 341, 41, 263, 41, 41, 60, + 93, 58, 93, 40, 40, 40, 260, 261, 262, 263, + 41, 1605, 1606, 1607, 268, 40, 91, 271, 40, 273, + 274, 275, 276, 277, 278, 279, 41, 281, 282, 283, + 284, 41, 286, 287, 288, 41, 290, 291, 292, 293, + 41, 40, 296, 297, 298, 299, 295, 274, 41, 41, + 273, 300, 306, 302, 308, 263, 40, 311, 40, 358, + 309, 315, 316, 511, 318, 41, 41, 274, 322, 323, + 324, 325, 260, 296, 1668, 263, 33, 326, 260, 261, + 262, 263, 264, 41, 40, 339, 268, 41, 41, 123, + 278, 123, 341, 281, 282, 283, 284, 125, 286, 287, + 288, 283, 123, 123, 358, 359, 360, 361, 362, 44, + 364, 365, 62, 125, 296, 123, 125, 40, 123, 62, + 374, 375, 41, 123, 41, 41, 123, 125, 41, 41, + 41, 33, 41, 123, 125, 123, 62, 391, 320, 321, + 123, 41, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 40, 40, 123, 41, 0, 263, 41, 410, 93, 91, + 46, 263, 93, 275, 275, 449, 450, 451, 452, 42, + 454, 455, 456, 457, 61, 275, 460, 275, 462, 275, + 464, 465, 466, 467, 263, 469, 470, 33, 472, 473, + 474, 263, 38, 91, 40, 41, 42, 481, 44, 452, + 275, 47, 180, 415, 416, 417, 275, 275, 840, 462, + 263, 1025, 465, 59, 60, 61, 62, 420, 275, 275, + 1048, 294, 1516, 907, 748, 509, 510, 511, 301, 275, + 303, 304, 305, 1290, 275, 295, 1023, 1152, 275, 926, + 300, 275, 302, 527, 528, 91, 530, 531, 532, 309, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 275, + 544, 1210, 708, 916, 1278, 1291, 326, 327, 353, 342, + 343, 344, 913, 480, 24, 260, 261, 123, 263, 125, + 9, 341, 1214, 536, 537, 538, 539, 540, 541, 542, + 277, 278, 279, 114, 281, 282, 283, 284, 550, 286, + 287, 24, 763, 290, 291, 292, 293, 59, 305, 0, + 767, 678, 372, 64, 612, 388, 389, 390, 492, 392, + -1, -1, 395, 371, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, 59, -1, + 355, 356, 357, 125, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, 380, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, 260, 261, 301, 263, 303, 304, + 305, -1, 268, -1, -1, 271, 358, 273, 274, 275, + 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, 342, 343, 344, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, + 475, -1, 477, 478, 479, 480, -1, -1, -1, -1, + -1, -1, -1, 388, 389, 390, -1, 392, -1, -1, + 395, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, + -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, - 342, 343, 344, -1, -1, -1, 472, 473, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 388, 389, 390, -1, - 392, -1, -1, 395, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, 41, -1, 296, 297, 298, 299, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, 294, -1, -1, -1, -1, -1, - -1, 301, -1, 303, 304, 305, -1, -1, 123, -1, - 125, 271, 410, 411, 412, 413, 414, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 432, 433, -1, 297, 298, -1, - 0, -1, 342, 343, 344, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 346, -1, 388, 389, - 390, -1, 392, -1, -1, 395, -1, -1, -1, 59, - -1, -1, 277, 278, 279, 365, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, - 365, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, 257, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, - -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, - 485, 486, -1, 488, 489, 490, -1, 492, 493, -1, - -1, 496, 497, -1, 499, -1, 123, -1, 125, -1, - 410, 411, 412, 413, 414, -1, -1, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, -1, 432, 433, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, - -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, 123, -1, 125, -1, 410, 411, - 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 432, 433, 294, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, - 462, 323, -1, 465, -1, 327, -1, -1, 330, 331, - 472, 473, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, -1, -1, -1, -1, - -1, 353, -1, -1, 356, 59, -1, -1, -1, -1, - -1, 363, -1, -1, -1, -1, -1, -1, -1, -1, - 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, - 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, -1, 40, - 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, - 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - 294, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, -1, -1, -1, -1, 462, 323, - -1, 465, -1, 327, -1, -1, 330, 331, 472, 473, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, -1, -1, -1, -1, -1, -1, 353, - -1, -1, 356, 59, -1, -1, -1, -1, -1, 363, - -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 544, -1, 460, -1, 462, -1, 464, 465, + 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, + 38, 322, 40, 41, 42, 481, 44, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 60, 61, 62, -1, -1, -1, 410, -1, + -1, -1, -1, 509, 510, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, + 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 462, -1, -1, 465, -1, 123, 123, 125, -1, 410, + 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, + -1, 432, 433, -1, 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, 40, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + 451, 452, -1, 454, 455, 456, 457, -1, -1, -1, + -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, + -1, 472, 473, 474, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, + 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, 294, 296, 297, + 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, 309, 311, -1, -1, -1, -1, 316, 262, + -1, -1, -1, -1, 322, 323, 324, 325, 325, -1, + -1, -1, -1, -1, 277, 278, 279, 334, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, 348, 349, 350, 351, -1, 299, -1, -1, -1, + 358, -1, 360, 361, 362, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, 380, 381, 382, 383, 384, 385, 386, + -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, - -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, + 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 60, 61, 62, -1, -1, 410, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, 544, 452, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 462, -1, -1, + 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, + 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, -1, 59, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, + 473, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, -1, -1, 271, 59, -1, -1, -1, 125, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + 125, 281, 282, 283, 284, -1, 286, 287, 346, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, -1, -1, 306, 365, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, - -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, + 470, 33, 472, 473, 474, -1, 38, -1, 40, 41, + 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, + 62, -1, -1, 410, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, + 540, 541, 542, -1, 544, 452, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 462, -1, -1, 465, -1, + -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 288, -1, 290, 291, 292, 293, 432, 433, -1, + 297, 298, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, + -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, - 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, 257, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, + 282, 283, 284, -1, 286, 287, -1, 289, 290, 291, + 292, 293, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, 125, - 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, + 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, 339, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, - 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, + 542, -1, 544, 485, 486, -1, 488, 489, 490, -1, + 492, 493, -1, -1, 496, 497, -1, 499, -1, 123, + -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, + 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, + -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, - 41, 42, 481, 44, -1, -1, 432, 433, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, 452, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, 464, -1, - 466, 467, -1, 469, 470, -1, -1, -1, 527, 528, - 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, - 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, 59, 456, 457, -1, -1, -1, -1, 462, -1, - -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, 374, 375, -1, 42, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - 391, -1, -1, -1, 60, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, 91, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, + 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, 432, 433, -1, -1, -1, -1, + -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, 452, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 464, -1, 466, -1, - -1, 469, 470, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, 123, -1, 125, + -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 294, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, + -1, -1, -1, 462, 323, -1, 465, -1, 327, -1, + -1, 330, 331, 472, 473, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, -1, + -1, -1, -1, -1, 353, -1, -1, 356, 59, -1, + -1, -1, -1, -1, 363, -1, -1, -1, -1, -1, + -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, 323, 324, 325, + 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, 415, - 416, 417, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, 91, -1, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, + -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, + -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, + 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, + 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 60, 61, 62, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, 123, -1, 125, -1, 410, + 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, 432, 433, 294, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, + -1, 462, 323, -1, 465, -1, 327, -1, -1, 330, + 331, 472, 473, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, -1, -1, -1, -1, + -1, -1, 353, -1, -1, 356, 59, -1, -1, -1, + -1, -1, 363, -1, -1, -1, -1, -1, -1, -1, + -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, 359, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, 415, 416, 417, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, 91, -1, -1, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, -1, 544, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, + 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, 123, -1, 125, -1, 410, 411, 412, + 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, 415, 416, 417, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, 374, 375, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, + -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, + 470, 33, 472, 473, 474, -1, 38, -1, 40, 41, + 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, -1, 91, - -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, 544, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, + -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, + -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, 415, 416, 417, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, + 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, + 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, + 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, + -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, -1, 91, -1, -1, - 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, - -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, - 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, 415, 416, 417, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, -1, 91, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, - 544, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, 415, - 416, 417, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, -1, 91, -1, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, 415, 416, 417, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, -1, 544, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, - -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, 123, -1, 125, -1, - 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, - 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, - -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, - -1, 297, 298, -1, 300, -1, 302, -1, -1, 335, - 306, 337, 308, 309, -1, -1, 342, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - 326, -1, 358, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, 391, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, 482, -1, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 33, -1, -1, 504, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 544, -1, - -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, + 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, + -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 270, 271, 272, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 294, 295, -1, -1, -1, -1, 300, 306, 302, - 308, -1, -1, -1, -1, -1, 309, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, 326, 327, -1, 329, 330, 331, 332, - 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, - -1, -1, -1, -1, 347, -1, -1, -1, -1, 352, - 358, 354, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 366, 367, 368, 369, 370, 371, 372, - 373, 260, 261, -1, 263, -1, 379, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, + -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, + -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 544, -1, -1, -1, - 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, 33, 472, 473, 474, -1, 38, -1, -1, - 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, 0, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, -1, 59, -1, + 61, 62, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, + -1, -1, 123, 429, 125, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 270, 271, 272, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, + 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, + -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 0, -1, 294, 295, 306, -1, 308, -1, 300, + 311, 302, -1, -1, -1, 316, -1, -1, 309, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 326, 327, -1, 329, 330, + 331, 332, 333, -1, -1, -1, -1, 338, -1, -1, + 341, -1, -1, -1, -1, -1, 347, 358, -1, -1, + 59, 352, -1, 354, -1, -1, -1, -1, -1, -1, + -1, 33, -1, 374, 375, 366, 367, 368, 369, 370, + 371, 372, 373, -1, -1, -1, -1, -1, 379, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 544, 91, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, + 421, 422, 423, 424, 123, -1, 125, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - 33, 472, 473, 474, -1, 38, -1, -1, 41, 42, - 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 91, -1, -1, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, 544, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, 33, 472, - 473, 474, -1, 38, -1, -1, 41, 42, 481, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 91, -1, -1, -1, 429, -1, -1, 432, 433, -1, - -1, -1, -1, 0, -1, 544, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, 33, 472, 473, 474, - -1, 38, -1, -1, 41, 42, 481, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, -1, 0, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, + 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, 0, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, -1, 0, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 91, -1, - -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, 544, -1, -1, -1, -1, -1, -1, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, 33, 472, 473, 474, -1, 38, - -1, -1, 41, 42, 481, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, + 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, 0, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, 59, -1, 61, 62, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, 123, - 429, 125, -1, 432, 433, -1, -1, -1, -1, -1, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, - -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, 0, -1, - -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, - 374, 375, -1, -1, -1, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 123, -1, 125, -1, 429, 91, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, 481, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, + -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, 0, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 359, 323, 324, 325, -1, 364, 365, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, + 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, + 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, -1, -1, 0, - -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, - 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 359, 323, 324, - 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, - 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, 544, -1, -1, 273, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, 544, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, - 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, + -1, -1, -1, -1, 359, -1, -1, -1, -1, 364, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, + -1, 0, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, + -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + 59, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, - -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 123, -1, 125, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, - 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, 527, 528, 273, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, - -1, -1, 0, -1, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 123, -1, 125, -1, -1, + 429, 430, 431, 432, 433, -1, -1, 0, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, + 469, 470, -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, + -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, 527, 528, + 273, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, -1, -1, -1, -1, 364, 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, 449, 450, 451, 452, + -1, 454, 455, 456, 457, 273, 274, 460, -1, 462, + -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, + 473, 474, -1, 40, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 311, 61, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, 296, -1, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + -1, 429, -1, -1, 432, 433, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, -1, 472, 473, 474, -1, 40, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, -1, -1, -1, 527, + -1, -1, -1, -1, -1, -1, 273, 274, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, + -1, 123, -1, 125, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, 527, - 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 59, -1, + -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, + -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, 273, 274, 460, -1, 462, -1, 464, 465, 466, + -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, -1, -1, 0, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, 449, 450, 451, - 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, - 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 422, 423, 424, -1, -1, -1, 59, 429, -1, 260, + 432, 433, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, - 472, 473, 474, -1, -1, -1, -1, -1, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, 527, 528, 273, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 273, 274, 460, -1, 462, -1, 464, 465, - 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, - 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 311, 61, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, + 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, + 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + 123, 322, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, -1, -1, 0, -1, -1, -1, -1, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - -1, 472, 473, 474, -1, 40, 41, -1, -1, 44, + 451, 452, -1, 454, 455, 456, 457, 260, -1, 460, + 263, 462, -1, -1, 465, -1, -1, -1, -1, -1, + 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 274, -1, 527, 528, -1, 530, + 123, -1, 125, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, -1, -1, -1, 59, -1, -1, 260, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + 273, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 322, + 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, 260, -1, 460, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, + 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 59, -1, -1, 418, 419, - 420, 421, 422, 423, 424, -1, -1, -1, -1, 429, - -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, 273, 274, - 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, -1, 472, 473, 474, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - -1, -1, -1, 59, 429, -1, 260, 432, 433, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, -1, -1, 469, 470, -1, 472, 473, 474, + 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, + -1, -1, 59, -1, -1, 260, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, + 455, 456, 457, -1, -1, 460, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, 260, -1, 460, 263, 462, -1, - -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, 260, -1, 460, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, - -1, 59, -1, -1, 260, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, + 59, -1, -1, 260, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, -1, 465, -1, + -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, 322, 125, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, 123, 322, 125, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 260, -1, 460, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, 260, -1, 460, 263, 462, 59, -1, 465, -1, + -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 527, 528, 125, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, - -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, + 429, -1, 0, 432, 433, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, + -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, -1, 472, 473, 474, 44, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, 322, 125, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 419, 420, 421, 422, 423, 424, 0, -1, -1, -1, + 429, -1, -1, 432, 433, -1, -1, 410, 411, 412, + 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, 432, + 433, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, -1, 472, 473, 474, 449, 450, 451, 452, + -1, -1, -1, 456, 457, 59, -1, -1, -1, 462, + -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 408, 409, 410, 411, 412, 413, 414, 358, -1, -1, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + -1, 429, -1, -1, 432, 433, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - 260, -1, 460, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 460, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, 527, + -1, -1, 33, -1, -1, -1, -1, 38, 322, -1, + -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, -1, -1, 544, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, - 260, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, 260, -1, - 460, 263, 462, 59, -1, 465, -1, -1, -1, -1, - -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, 527, 528, 125, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, 33, 460, -1, 462, -1, + 38, 465, -1, -1, 42, -1, -1, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, 33, -1, -1, -1, -1, + 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, -1, -1, -1, -1, 429, -1, 0, - 432, 433, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, 449, 450, 451, - 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, - 472, 473, 474, 44, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, 60, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, 415, 416, 417, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 33, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, 0, -1, -1, -1, 429, -1, -1, - 432, 433, -1, -1, 410, 411, 412, 413, 414, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, 432, 433, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, - 472, 473, 474, 449, 450, 451, 452, -1, -1, -1, - 456, 457, 59, -1, -1, -1, 462, -1, -1, 465, - -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, 415, 416, 417, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, 33, 306, -1, + 308, -1, 38, -1, -1, -1, 42, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 374, 375, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, 544, 290, 291, 292, + 293, 294, -1, -1, 297, 298, -1, -1, -1, -1, + 33, -1, -1, 306, -1, 308, -1, 415, 416, 417, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, + -1, -1, -1, 376, 377, 378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, 322, -1, -1, 42, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, 544, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, 91, 481, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 59, -1, - -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, 33, 460, -1, 462, -1, 38, 465, -1, - -1, 42, -1, -1, -1, 472, 473, 474, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, 271, -1, + -1, 544, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, 294, -1, -1, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, 415, + 416, 417, -1, -1, -1, -1, -1, -1, -1, 91, + 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, + -1, -1, -1, 376, 377, 378, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 91, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, 33, -1, -1, -1, -1, 38, -1, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 273, -1, 358, -1, 360, 361, 362, -1, + -1, -1, -1, -1, 33, -1, -1, -1, 544, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, 322, 263, -1, -1, -1, -1, 268, -1, -1, - 271, 415, 416, 417, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 33, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 359, -1, -1, 481, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, 91, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, 415, 416, 417, 306, 33, 308, -1, -1, -1, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, 327, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, 452, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 358, -1, 290, 291, + 292, 293, -1, 91, 296, 297, 298, -1, -1, -1, + 372, -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, - -1, 412, 413, 414, -1, 59, -1, 358, -1, 360, - 361, 362, -1, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, -1, -1, -1, 33, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, 474, 415, 416, 417, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 509, 510, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 359, -1, -1, + 544, 260, 261, 91, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, 33, 306, -1, 308, + -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, 271, -1, -1, -1, 275, - 276, 277, 278, 279, 40, 281, 282, 283, 284, -1, - 286, 287, -1, 544, 290, 291, 292, 293, 294, -1, - -1, 297, 298, 59, 60, -1, -1, -1, -1, -1, - 306, -1, 308, -1, 415, 416, 417, -1, -1, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, 358, + -1, -1, 260, 261, 91, 263, -1, -1, -1, -1, + 268, -1, 544, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, 415, 416, 417, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, 544, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 358, 33, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 415, 416, 417, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, 544, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, 40, -1, -1, -1, -1, 306, + -1, 308, 33, -1, -1, -1, -1, 415, 416, 417, + 41, -1, -1, 59, 60, 271, 323, 324, 325, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, + -1, 297, 298, -1, 300, -1, 302, -1, -1, -1, + 306, 358, 308, 309, -1, -1, -1, 33, -1, -1, + 91, -1, -1, -1, -1, -1, 544, 323, 324, 325, + 326, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, -1, 415, 416, + 417, -1, -1, -1, -1, 91, -1, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 544, -1, 290, 291, + 292, 293, -1, 295, -1, 297, 298, -1, 300, -1, + 302, -1, -1, -1, 306, -1, 308, 309, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, 326, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, + -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, + 47, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, -1, 59, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, + 271, -1, -1, -1, -1, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, 123, 308, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, + -1, -1, 323, 324, 325, 271, -1, -1, -1, -1, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, 358, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, 123, -1, 125, - 366, 367, 368, 369, -1, -1, 372, -1, -1, -1, - 376, 377, 378, -1, -1, -1, 271, -1, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, 294, - -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, 327, 544, 329, 330, 331, 332, -1, 41, - -1, -1, -1, -1, -1, 47, 410, 411, 412, 413, - 414, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 358, -1, -1, -1, -1, 432, 433, - -1, 366, 367, 368, 369, 481, -1, 372, -1, -1, - -1, 376, 377, 378, -1, 449, 450, 451, 452, -1, - -1, -1, 456, 457, 260, -1, -1, 263, 462, -1, - -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, -1, -1, -1, 544, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, 41, -1, -1, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, 358, 59, -1, -1, 432, 433, -1, -1, + -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, + -1, -1, -1, 260, 460, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, 274, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 544, -1, -1, -1, 41, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, -1, -1, -1, -1, 414, 544, -1, + -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, -1, -1, -1, 260, 432, 433, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, 123, + -1, 125, 449, 450, 451, 452, -1, -1, -1, -1, + -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, + -1, -1, 47, -1, -1, -1, -1, 474, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, + 537, 538, 539, 540, 541, 542, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, -1, -1, 414, 544, - -1, -1, 418, 419, 420, 421, 422, 423, 260, -1, - -1, 263, -1, -1, -1, -1, 432, 433, -1, -1, - -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, + 406, 407, 408, 409, -1, -1, 260, -1, 414, 263, + -1, -1, 418, 419, 420, 421, 422, 423, -1, 273, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, -1, -1, -1, 460, -1, -1, 41, -1, -1, + -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, 391, -1, 59, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, 449, 450, 451, 452, -1, + -1, 273, -1, 123, -1, 125, 460, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 509, 510, -1, -1, 414, + -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, + -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, + 422, 423, -1, 273, 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, -1, 47, -1, -1, 460, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + 452, 536, 537, 538, 539, 540, 541, 542, 460, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, -1, -1, 414, 509, 510, -1, - 418, 419, 420, 421, 422, 423, 260, -1, -1, 263, - -1, -1, -1, -1, 432, 433, -1, -1, -1, 273, - -1, 123, -1, 125, 536, 537, 538, 539, 540, 541, - 542, 449, 450, 451, 452, -1, -1, -1, -1, -1, - 59, -1, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, 59, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, 260, -1, - 414, 263, -1, -1, 418, 419, 420, 421, 422, 423, - -1, 273, 274, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, + 542, -1, -1, 59, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + -1, -1, -1, -1, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, + -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, + 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - -1, -1, 123, -1, 125, -1, 460, -1, 59, -1, + 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 509, + 510, 260, -1, 414, 263, -1, -1, 418, 419, 420, + 421, 422, 423, -1, 273, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, -1, 123, -1, 125, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, 509, 510, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, - 432, 433, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 273, -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, 396, 397, 398, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, -1, -1, 509, 510, -1, - -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, 536, 537, 538, 539, 540, 541, - 542, 460, -1, 59, -1, -1, -1, -1, -1, -1, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 449, 450, 451, 452, 273, -1, -1, -1, -1, -1, + -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, - 509, 510, 260, 414, -1, 263, -1, 418, 419, 420, - 421, 422, 423, -1, -1, 273, -1, 123, -1, 125, - -1, 432, 433, -1, -1, -1, -1, 536, 537, 538, - 539, 540, 541, 542, -1, -1, 59, -1, 449, 450, - 451, 452, -1, -1, -1, -1, -1, -1, -1, 460, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 474, -1, -1, -1, -1, -1, 410, - -1, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, -1, 509, 510, - 123, -1, 125, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, 474, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, 260, -1, 414, 263, -1, -1, - 418, 419, 420, 421, 422, 423, -1, 273, 509, 510, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 536, 537, 538, 539, 540, - 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, -1, -1, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, - 260, -1, -1, 263, -1, -1, 432, 433, -1, -1, - -1, -1, -1, 273, -1, 123, -1, 125, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, + 406, 407, 408, 409, -1, -1, -1, -1, 414, 123, + -1, 125, 418, 419, 420, 421, 422, 423, -1, -1, + 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 449, 450, 451, 452, 536, 537, 538, + 539, 540, 541, 542, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, - -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, -1, -1, 509, 510, -1, -1, -1, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, 449, 450, 451, 452, - 536, 537, 538, 539, 540, 541, 542, 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 474, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - -1, -1, 260, -1, 414, 263, -1, -1, 418, 419, - 420, 421, 422, 423, -1, 273, 509, 510, 123, -1, - 125, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, 449, - 450, 451, 452, 536, 537, 538, 539, 540, 541, 542, - 460, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, -1, -1, 509, 510, 414, 123, -1, 125, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + 449, 450, 451, 452, -1, -1, 260, -1, -1, 263, + -1, 460, -1, -1, 59, -1, -1, -1, -1, 273, + -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, -1, 260, 414, -1, 263, -1, - 418, 419, 420, 421, 422, 423, -1, -1, 273, -1, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, -1, -1, -1, -1, - -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, -1, -1, -1, -1, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, - 410, -1, 412, 413, 414, 123, -1, 432, 433, -1, - -1, -1, -1, -1, 424, -1, -1, -1, -1, 429, - -1, -1, 432, 433, 449, 450, 451, 452, -1, -1, - -1, -1, -1, -1, -1, 460, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, -1, -1, -1, 474, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 59, -1, -1, -1, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, + -1, -1, -1, -1, -1, -1, 460, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, -1, -1, -1, 396, + 474, -1, 125, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, -1, 509, 510, -1, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, -1, -1, 509, - 510, -1, -1, -1, -1, 432, 433, -1, -1, -1, - -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, 449, 450, 451, 452, 536, 537, 538, 539, - 540, 541, 542, 460, -1, -1, -1, -1, -1, 257, + 407, 408, 409, -1, -1, 509, 510, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, -1, -1, 125, -1, 432, 433, -1, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, 449, 450, 451, 452, -1, -1, -1, -1, + -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, - -1, -1, -1, 271, -1, -1, -1, -1, 276, 277, - -1, 279, 280, 281, 282, 283, 284, -1, 286, 287, - -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, + 414, -1, 59, -1, 418, 419, 420, 421, 422, 423, + -1, -1, 509, 510, -1, -1, -1, -1, 432, 433, + -1, -1, -1, -1, -1, 410, 411, 412, 413, 414, + 273, -1, -1, -1, -1, 449, 450, 451, 452, 536, + 537, 538, 539, 540, 541, 542, 460, 432, 433, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 474, -1, -1, -1, 449, 450, 451, 452, 125, -1, + -1, 456, 457, -1, -1, -1, -1, 462, -1, 322, + 465, 273, -1, -1, -1, -1, -1, 472, 473, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, - 537, 538, 539, 540, 541, 542, -1, 335, -1, 337, - -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, + 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 410, -1, 412, + 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 424, -1, -1, -1, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, -1, -1, -1, 273, -1, 410, -1, + 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, + -1, 474, 424, -1, -1, -1, -1, 429, -1, -1, + 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, 454, 455, -1, 322, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 271, -1, -1, 509, 510, 276, + 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, + 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, + -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, + 542, -1, -1, 410, -1, 412, 413, 414, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 424, -1, -1, + -1, -1, 429, -1, -1, 432, 433, -1, 335, -1, + 337, -1, -1, -1, -1, 342, 257, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, -1, + 271, 358, -1, -1, -1, 276, 277, -1, 279, 280, + 281, 282, 283, 284, -1, 286, 287, 474, 289, 290, + 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, + -1, 342, -1, -1, -1, -1, -1, -1, -1, 536, + 537, 538, 539, 540, 541, 542, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 482, -1, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 482, -1, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, -1, -1, -1, 504, + -1, 482, -1, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + -1, -1, -1, 504, }; static int yyctable[] = { -1, - 239, 561, -1, 442, 795, -1, 292, 725, -1, 293, - 725, -1, 294, 725, -1, 296, 725, -1, 297, 725, - -1, 298, 725, -1, 299, 725, -1, 501, 728, -1, - 502, 726, -1, 507, 729, -1, 508, 730, -1, 509, - 731, -1, 510, 732, -1, 511, 733, -1, 512, 734, - -1, 513, 739, -1, 514, 740, -1, 515, 741, -1, - 516, 742, -1, 531, 746, -1, 206, 40, -1, 724, - 735, -1, 725, 736, -1, 726, 737, -1, 727, 738, - -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, - 100, 495, -1, 101, 495, -1, 102, 495, -1, 103, - 495, -1, 793, 317, -1, 861, 797, -1, 67, 569, - -1, 68, 569, -1, 69, 569, -1, 27, 78, -1, - 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, - 78, -1, 32, 78, -1, 33, 78, -1, 34, 78, - -1, 1146, 629, -1, 67, 570, -1, 68, 570, -1, - 69, 570, -1, 1163, 37, -1, 1293, 801, -1, 1295, - 799, -1, 1307, 613, -1, 1513, 803, -1, 1148, 576, - -1, 1149, 576, -1, + 239, 561, -1, 441, 794, -1, 291, 724, -1, 292, + 724, -1, 293, 724, -1, 295, 724, -1, 296, 724, + -1, 297, 724, -1, 298, 724, -1, 530, 745, -1, + 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, + 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, + -1, 103, 495, -1, 792, 317, -1, 860, 796, -1, + 67, 569, -1, 68, 569, -1, 69, 569, -1, 27, + 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, + -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, + 34, 78, -1, 1145, 629, -1, 67, 570, -1, 68, + 570, -1, 69, 570, -1, 1162, 37, -1, 1292, 800, + -1, 1294, 798, -1, 1306, 613, -1, 1512, 802, -1, + 1147, 576, -1, 1148, 576, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, @@ -5694,147 +4611,147 @@ static int yyastable[] = { 0, 76, 311, 311, 340, 26, 27, 28, 29, 383, 51, 383, 24, 25, 34, 15, 17, 340, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 307, 354, 365, 218, 305, 311, 389, 307, 311, 319, - 308, 105, 106, 107, 136, 299, 301, 305, 306, 136, - 136, 136, 136, 317, 388, 383, 449, 348, 296, 12, - 296, 296, 425, 310, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 163, 164, - 165, 166, 167, 168, 205, 219, 254, 255, 290, 291, - 312, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 430, 433, 444, 445, - 446, 448, 467, 468, 469, 470, 471, 472, 473, 476, - 436, 438, 440, 442, 296, 39, 68, 72, 75, 76, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 98, 101, 108, 117, 311, 384, 61, 454, - 39, 72, 74, 75, 76, 77, 78, 83, 92, 97, - 99, 111, 112, 113, 114, 115, 116, 117, 118, 124, - 317, 305, 295, 299, 324, 295, 324, 295, 324, 295, - 324, 295, 324, 295, 324, 295, 486, 487, 295, 343, - 7, 8, 293, 304, 73, 75, 76, 82, 311, 311, - 300, 39, 72, 74, 75, 76, 77, 111, 112, 113, - 114, 117, 121, 122, 123, 226, 340, 298, 218, 311, - 295, 298, 317, 295, 290, 295, 292, 8, 319, 319, - 296, 119, 120, 299, 311, 313, 384, 290, 295, 348, - 300, 167, 402, 311, 221, 136, 383, 25, 311, 384, - 295, 295, 26, 27, 28, 29, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 307, 311, 319, 311, - 300, 300, 300, 311, 319, 311, 295, 295, 311, 20, - 300, 319, 341, 342, 340, 367, 368, 311, 311, 311, - 311, 340, 449, 291, 67, 155, 169, 174, 199, 200, - 219, 254, 255, 291, 424, 427, 429, 430, 433, 444, - 445, 446, 448, 456, 457, 459, 461, 291, 319, 319, - 319, 299, 110, 288, 299, 103, 384, 304, 312, 319, - 319, 336, 11, 31, 32, 295, 335, 336, 312, 319, - 388, 15, 17, 340, 389, 307, 384, 87, 348, 488, - 317, 385, 295, 343, 198, 295, 428, 55, 57, 58, - 59, 474, 475, 477, 479, 480, 481, 482, 312, 319, - 471, 209, 211, 214, 215, 291, 444, 445, 448, 491, - 492, 493, 494, 84, 209, 212, 291, 490, 492, 495, - 496, 41, 155, 207, 210, 291, 445, 448, 497, 207, - 210, 291, 445, 448, 498, 295, 75, 76, 77, 111, - 112, 113, 301, 382, 384, 455, 295, 295, 323, 295, - 319, 319, 319, 319, 336, 335, 335, 291, 293, 312, - 296, 319, 319, 75, 76, 77, 111, 112, 113, 295, - 295, 311, 311, 300, 348, 397, 398, 290, 340, 51, - 376, 377, 384, 7, 293, 296, 296, 386, 301, 334, - 366, 19, 372, 374, 322, 490, 136, 311, 19, 65, - 66, 327, 319, 295, 295, 295, 295, 319, 319, 319, - 336, 319, 335, 335, 336, 319, 319, 319, 336, 311, - 319, 300, 315, 315, 315, 384, 384, 20, 293, 300, - 302, 293, 305, 110, 394, 395, 319, 319, 404, 110, - 288, 103, 384, 290, 428, 290, 290, 290, 304, 319, - 299, 311, 299, 311, 319, 317, 19, 295, 295, 311, - 384, 307, 312, 319, 295, 343, 340, 312, 316, 319, - 296, 295, 20, 323, 337, 338, 339, 291, 384, 474, - 56, 471, 478, 478, 478, 478, 312, 319, 471, 62, - 62, 213, 298, 305, 319, 379, 298, 348, 343, 343, - 298, 298, 343, 343, 295, 216, 319, 311, 216, 311, - 216, 319, 39, 51, 52, 69, 119, 289, 292, 303, - 328, 329, 381, 293, 319, 348, 396, 299, 340, 348, - 296, 300, 296, 296, 296, 296, 296, 486, 296, 304, - 8, 293, 319, 2, 16, 21, 22, 24, 25, 26, + 307, 354, 218, 305, 311, 389, 307, 311, 319, 308, + 105, 106, 107, 136, 299, 301, 305, 306, 136, 136, + 136, 136, 317, 388, 383, 449, 348, 296, 12, 296, + 296, 425, 310, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 163, 164, 165, + 166, 167, 168, 205, 219, 254, 255, 290, 291, 312, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 430, 433, 444, 445, 446, + 448, 467, 468, 469, 470, 471, 472, 473, 476, 436, + 438, 440, 442, 296, 39, 68, 72, 75, 76, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 98, 101, 108, 117, 311, 384, 61, 454, 39, + 72, 74, 75, 76, 77, 78, 83, 92, 97, 99, + 111, 112, 113, 114, 115, 116, 117, 118, 124, 317, + 305, 295, 299, 324, 295, 324, 295, 324, 295, 324, + 295, 324, 295, 324, 295, 486, 487, 295, 343, 7, + 8, 293, 304, 73, 75, 76, 82, 311, 311, 300, + 39, 72, 74, 75, 76, 77, 111, 112, 113, 114, + 117, 121, 122, 123, 226, 340, 298, 218, 311, 295, + 298, 317, 295, 290, 295, 292, 8, 319, 319, 296, + 119, 120, 299, 311, 313, 384, 290, 295, 348, 300, + 167, 402, 311, 221, 136, 383, 25, 311, 384, 295, + 295, 26, 27, 28, 29, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 307, 311, 319, 311, 300, + 300, 300, 311, 319, 311, 295, 295, 311, 20, 300, + 319, 341, 342, 340, 367, 368, 311, 311, 311, 311, + 340, 449, 291, 67, 155, 169, 174, 199, 200, 219, + 254, 255, 291, 424, 427, 429, 430, 433, 444, 445, + 446, 448, 456, 457, 459, 461, 291, 319, 319, 319, + 299, 110, 288, 299, 103, 384, 304, 312, 319, 319, + 336, 11, 31, 32, 295, 335, 336, 312, 319, 388, + 15, 17, 340, 389, 307, 384, 87, 348, 488, 317, + 385, 295, 343, 198, 295, 428, 55, 57, 58, 59, + 474, 475, 477, 479, 480, 481, 482, 312, 319, 471, + 209, 211, 214, 215, 291, 444, 445, 448, 491, 492, + 493, 494, 84, 209, 212, 291, 490, 492, 495, 496, + 41, 155, 207, 210, 291, 445, 448, 497, 207, 210, + 291, 445, 448, 498, 295, 75, 76, 77, 111, 112, + 113, 301, 382, 384, 455, 295, 295, 323, 295, 319, + 319, 319, 319, 336, 335, 335, 291, 293, 312, 296, + 319, 319, 75, 76, 77, 111, 112, 113, 295, 295, + 311, 311, 300, 348, 397, 398, 290, 340, 51, 376, + 377, 384, 7, 293, 296, 296, 386, 301, 334, 366, + 19, 372, 374, 322, 490, 136, 311, 19, 65, 66, + 327, 319, 295, 295, 295, 295, 319, 319, 319, 336, + 319, 335, 335, 336, 319, 319, 319, 336, 311, 319, + 300, 315, 315, 315, 384, 384, 20, 293, 300, 302, + 293, 305, 110, 394, 395, 319, 319, 404, 110, 288, + 103, 384, 290, 428, 290, 290, 290, 304, 319, 299, + 311, 299, 311, 319, 317, 19, 295, 295, 311, 384, + 307, 312, 319, 295, 343, 340, 312, 316, 319, 296, + 295, 20, 323, 337, 338, 339, 291, 384, 474, 56, + 471, 478, 478, 478, 478, 312, 319, 471, 62, 62, + 213, 298, 305, 319, 379, 298, 348, 343, 343, 298, + 298, 343, 343, 295, 216, 319, 311, 216, 311, 216, + 319, 39, 51, 52, 69, 119, 289, 292, 303, 328, + 329, 381, 293, 319, 348, 396, 299, 340, 348, 296, + 300, 296, 296, 296, 296, 296, 486, 296, 304, 8, + 293, 319, 2, 16, 21, 22, 24, 25, 26, 27, + 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, + 82, 87, 103, 136, 227, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 249, 290, 345, 346, 466, 63, 314, 300, + 298, 296, 293, 372, 8, 293, 291, 298, 8, 298, + 299, 367, 295, 295, 311, 313, 291, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, + 42, 43, 110, 352, 353, 375, 448, 488, 28, 29, + 63, 203, 204, 206, 343, 311, 311, 296, 296, 319, + 319, 319, 336, 296, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 315, 296, 296, 319, 341, + 340, 295, 384, 72, 117, 311, 384, 72, 117, 317, + 311, 299, 311, 299, 311, 317, 19, 425, 291, 458, + 460, 440, 319, 300, 319, 319, 293, 300, 340, 313, + 319, 336, 19, 312, 319, 348, 296, 295, 293, 296, + 293, 337, 340, 296, 293, 312, 319, 312, 319, 319, + 295, 304, 295, 296, 296, 295, 295, 296, 296, 319, + 315, 311, 63, 311, 296, 295, 39, 330, 331, 329, + 295, 311, 371, 302, 384, 296, 136, 396, 39, 46, + 48, 49, 50, 87, 88, 89, 133, 134, 135, 137, + 140, 296, 251, 252, 253, 319, 226, 350, 296, 324, + 324, 324, 324, 324, 324, 319, 319, 296, 25, 26, + 27, 28, 29, 295, 332, 243, 235, 247, 295, 228, + 248, 22, 332, 332, 2, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, - 80, 82, 87, 103, 136, 227, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 249, 290, 345, 346, 466, 63, 314, - 300, 298, 296, 293, 372, 8, 293, 291, 298, 8, - 298, 299, 367, 295, 295, 311, 313, 291, 22, 23, - 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, - 38, 42, 43, 110, 352, 353, 375, 448, 488, 28, - 29, 63, 203, 204, 206, 343, 311, 311, 296, 296, - 319, 319, 319, 336, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 315, 296, 296, 319, - 341, 340, 295, 384, 72, 117, 311, 384, 72, 117, - 317, 311, 299, 311, 299, 311, 317, 19, 425, 291, - 458, 460, 440, 319, 300, 319, 319, 293, 300, 340, - 313, 319, 336, 19, 312, 319, 348, 296, 295, 293, - 296, 293, 337, 340, 296, 293, 312, 319, 312, 319, - 319, 295, 304, 295, 296, 296, 295, 295, 296, 296, - 319, 315, 311, 63, 311, 296, 295, 39, 330, 331, - 329, 295, 311, 371, 302, 384, 296, 136, 396, 39, - 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, - 137, 140, 296, 251, 252, 253, 319, 226, 350, 296, - 324, 324, 324, 324, 324, 324, 319, 319, 296, 25, - 26, 27, 28, 29, 295, 332, 243, 235, 247, 295, - 228, 248, 22, 332, 332, 2, 21, 22, 24, 25, - 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, - 38, 230, 231, 233, 234, 235, 237, 238, 241, 242, - 244, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 305, 325, 299, 305, 296, - 344, 312, 298, 347, 28, 319, 327, 348, 349, 383, - 397, 291, 298, 377, 290, 290, 295, 348, 319, 302, - 337, 337, 334, 366, 295, 299, 295, 299, 26, 27, - 28, 29, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 104, 109, - 378, 448, 343, 312, 296, 296, 296, 296, 296, 337, - 197, 406, 311, 340, 319, 319, 293, 340, 313, 291, - 170, 171, 172, 173, 291, 433, 445, 446, 448, 463, - 173, 175, 176, 291, 433, 445, 446, 448, 464, 291, - 136, 300, 300, 384, 347, 384, 296, 296, 311, 296, - 337, 316, 316, 296, 350, 339, 62, 62, 379, 296, - 319, 319, 295, 331, 384, 369, 370, 384, 293, 380, - 311, 348, 296, 295, 304, 304, 300, 300, 300, 300, - 295, 313, 8, 293, 8, 250, 348, 299, 299, 25, - 26, 27, 28, 29, 271, 293, 299, 306, 292, 300, - 319, 291, 22, 23, 24, 26, 27, 28, 29, 31, - 32, 35, 36, 37, 38, 44, 348, 351, 353, 295, - 295, 290, 375, 372, 300, 296, 296, 295, 295, 327, - 319, 319, 319, 295, 299, 295, 299, 295, 299, 295, - 299, 319, 319, 319, 319, 319, 319, 336, 319, 319, - 335, 319, 335, 336, 319, 319, 319, 319, 319, 319, - 319, 336, 319, 352, 319, 8, 44, 319, 44, 51, - 383, 319, 42, 91, 110, 365, 373, 296, 402, 296, - 311, 300, 300, 384, 384, 256, 388, 388, 388, 388, - 388, 388, 388, 312, 293, 19, 296, 312, 312, 319, - 304, 296, 319, 311, 296, 293, 381, 380, 396, 319, - 138, 139, 138, 139, 346, 382, 319, 298, 293, 319, - 319, 348, 300, 319, 292, 300, 26, 27, 28, 29, - 319, 26, 27, 28, 319, 375, 291, 291, 302, 337, - 337, 296, 300, 296, 300, 319, 319, 319, 319, 319, - 319, 336, 319, 296, 300, 296, 300, 296, 300, 296, - 300, 296, 296, 300, 296, 296, 300, 296, 300, 296, - 300, 296, 300, 296, 300, 296, 300, 296, 296, 300, - 296, 8, 296, 300, 51, 383, 299, 311, 295, 293, - 19, 317, 384, 313, 379, 296, 380, 384, 296, 296, - 296, 295, 8, 319, 348, 300, 300, 300, 319, 296, - 304, 304, 304, 296, 291, 296, 296, 295, 295, 296, - 300, 296, 300, 296, 300, 296, 300, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, - 295, 8, 300, 298, 337, 384, 313, 340, 301, 333, - 334, 304, 337, 296, 293, 296, 345, 300, 319, 319, - 319, 361, 358, 295, 295, 295, 295, 357, 358, 359, - 360, 355, 356, 357, 358, 359, 360, 364, 362, 363, - 352, 296, 333, 384, 295, 379, 296, 348, 296, 296, - 296, 296, 327, 296, 319, 357, 358, 359, 360, 296, - 319, 296, 296, 319, 296, 336, 296, 319, 335, 296, - 335, 336, 296, 296, 296, 296, 296, 352, 8, 44, - 296, 44, 51, 296, 383, 347, 295, 19, 337, 393, - 293, 296, 296, 296, 296, 8, 337, 313, 296, 39, - 54, 70, 79, 93, 94, 95, 96, 125, 126, 127, - 128, 129, 130, 131, 290, 348, 296, 295, 295, 296, - 256, 337, 319, 103, 296, 296, 317, 340, 384, 19, - 313, 333, 295, 337, 296, + 230, 231, 233, 234, 235, 237, 238, 241, 242, 244, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 305, 325, 299, 305, 296, 344, + 312, 298, 347, 28, 319, 327, 348, 349, 383, 397, + 291, 298, 377, 290, 290, 295, 348, 319, 302, 337, + 337, 334, 366, 295, 299, 295, 299, 26, 27, 28, + 29, 295, 299, 295, 299, 295, 299, 295, 299, 295, + 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, + 299, 295, 299, 295, 299, 295, 299, 104, 109, 378, + 448, 343, 312, 296, 296, 296, 296, 296, 337, 197, + 406, 311, 340, 319, 319, 293, 340, 313, 291, 170, + 171, 172, 173, 291, 433, 445, 446, 448, 463, 173, + 175, 176, 291, 433, 445, 446, 448, 464, 291, 136, + 300, 300, 384, 347, 384, 296, 296, 311, 296, 337, + 316, 316, 296, 350, 339, 62, 62, 379, 296, 319, + 319, 295, 331, 384, 369, 370, 384, 293, 380, 311, + 348, 296, 295, 304, 304, 300, 300, 300, 300, 295, + 313, 8, 293, 8, 250, 348, 299, 299, 25, 26, + 27, 28, 29, 271, 293, 299, 306, 292, 300, 319, + 291, 22, 23, 24, 26, 27, 28, 29, 31, 32, + 35, 36, 37, 38, 44, 348, 351, 353, 295, 295, + 290, 375, 372, 300, 296, 296, 295, 295, 327, 319, + 319, 319, 295, 299, 295, 299, 295, 299, 295, 299, + 319, 319, 319, 319, 319, 319, 336, 319, 319, 335, + 319, 335, 336, 319, 319, 319, 319, 319, 319, 319, + 336, 319, 352, 319, 8, 44, 319, 44, 51, 383, + 319, 42, 91, 110, 365, 373, 296, 402, 296, 311, + 300, 300, 384, 384, 256, 388, 388, 388, 388, 388, + 388, 388, 312, 293, 19, 296, 312, 312, 319, 304, + 296, 319, 311, 296, 293, 381, 380, 396, 319, 138, + 139, 138, 139, 346, 382, 319, 298, 293, 319, 319, + 348, 300, 319, 292, 300, 26, 27, 28, 29, 319, + 26, 27, 28, 319, 375, 291, 291, 302, 337, 337, + 296, 300, 296, 300, 319, 319, 319, 319, 319, 319, + 336, 319, 296, 300, 296, 300, 296, 300, 296, 300, + 296, 296, 300, 296, 296, 300, 296, 300, 296, 300, + 296, 300, 296, 300, 296, 300, 296, 296, 300, 296, + 8, 296, 300, 51, 383, 299, 311, 295, 293, 19, + 317, 384, 313, 379, 296, 380, 384, 296, 296, 296, + 295, 8, 319, 348, 300, 300, 300, 319, 296, 304, + 304, 304, 296, 291, 296, 296, 295, 295, 296, 300, + 296, 300, 296, 300, 296, 300, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 296, 295, + 8, 300, 298, 337, 384, 313, 340, 301, 333, 334, + 304, 337, 296, 293, 296, 345, 300, 319, 319, 319, + 361, 358, 295, 295, 295, 295, 357, 358, 359, 360, + 355, 356, 357, 358, 359, 360, 364, 362, 363, 352, + 296, 333, 384, 295, 379, 296, 348, 296, 296, 296, + 296, 327, 296, 319, 357, 358, 359, 360, 296, 319, + 296, 296, 319, 296, 336, 296, 319, 335, 296, 335, + 336, 296, 296, 296, 296, 296, 352, 8, 44, 296, + 44, 51, 296, 383, 347, 295, 19, 337, 393, 293, + 296, 296, 296, 296, 8, 337, 313, 296, 39, 54, + 70, 79, 93, 94, 95, 96, 125, 126, 127, 128, + 129, 130, 131, 290, 348, 296, 295, 295, 296, 256, + 337, 319, 103, 296, 296, 317, 340, 384, 19, 313, + 333, 295, 337, 296, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -6599,7 +5516,6 @@ static const char *yyrule[] = { "type : VALUE_ CLASS_ className", "type : VALUETYPE_ className", "type : CONST_ constTypeArg", -"type : CONST_ simpleType", "type : type '[' ']'", "type : type '[' bounds1 ']'", "type : type '&'", @@ -7081,11 +5997,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2156 "asmparse.y" +#line 2155 "asmparse.y" #include "grammar_after.cpp" -#line 7089 "asmparse.cpp.tab.c" +#line 6005 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -7538,13 +6454,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 7542 "asmparse.cpp.tab.c" +#line 6458 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 7548 "asmparse.cpp.tab.c" +#line 6464 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -7553,31 +6469,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7557 "asmparse.cpp.tab.c" +#line 6473 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 7563 "asmparse.cpp.tab.c" +#line 6479 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 7569 "asmparse.cpp.tab.c" +#line 6485 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 7575 "asmparse.cpp.tab.c" +#line 6491 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 7581 "asmparse.cpp.tab.c" +#line 6497 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -7592,13 +6508,13 @@ case 19: #pragma warning(pop) #endif } -#line 7596 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 7602 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -7606,7 +6522,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 7610 "asmparse.cpp.tab.c" +#line 6526 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -7614,44 +6530,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 7618 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 7624 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 7630 "asmparse.cpp.tab.c" +#line 6546 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7636 "asmparse.cpp.tab.c" +#line 6552 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 7642 "asmparse.cpp.tab.c" +#line 6558 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 7648 "asmparse.cpp.tab.c" +#line 6564 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 7655 "asmparse.cpp.tab.c" +#line 6571 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -7659,121 +6575,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 7663 "asmparse.cpp.tab.c" +#line 6579 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7669 "asmparse.cpp.tab.c" +#line 6585 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7675 "asmparse.cpp.tab.c" +#line 6591 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7681 "asmparse.cpp.tab.c" +#line 6597 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7687 "asmparse.cpp.tab.c" +#line 6603 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 7693 "asmparse.cpp.tab.c" +#line 6609 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7699 "asmparse.cpp.tab.c" +#line 6615 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 7705 "asmparse.cpp.tab.c" +#line 6621 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 7711 "asmparse.cpp.tab.c" +#line 6627 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 7717 "asmparse.cpp.tab.c" +#line 6633 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 7723 "asmparse.cpp.tab.c" +#line 6639 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 7729 "asmparse.cpp.tab.c" +#line 6645 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 7735 "asmparse.cpp.tab.c" +#line 6651 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 7741 "asmparse.cpp.tab.c" +#line 6657 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 7747 "asmparse.cpp.tab.c" +#line 6663 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 7753 "asmparse.cpp.tab.c" +#line 6669 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 7759 "asmparse.cpp.tab.c" +#line 6675 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 7765 "asmparse.cpp.tab.c" +#line 6681 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 7771 "asmparse.cpp.tab.c" +#line 6687 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 7777 "asmparse.cpp.tab.c" +#line 6693 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -7781,7 +6697,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 7785 "asmparse.cpp.tab.c" +#line 6701 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -7789,13 +6705,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 7793 "asmparse.cpp.tab.c" +#line 6709 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 7799 "asmparse.cpp.tab.c" +#line 6715 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -7804,73 +6720,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 7808 "asmparse.cpp.tab.c" +#line 6724 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 7814 "asmparse.cpp.tab.c" +#line 6730 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 7820 "asmparse.cpp.tab.c" +#line 6736 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 7826 "asmparse.cpp.tab.c" +#line 6742 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 7832 "asmparse.cpp.tab.c" +#line 6748 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 7838 "asmparse.cpp.tab.c" +#line 6754 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 7844 "asmparse.cpp.tab.c" +#line 6760 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 7850 "asmparse.cpp.tab.c" +#line 6766 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 7856 "asmparse.cpp.tab.c" +#line 6772 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 7862 "asmparse.cpp.tab.c" +#line 6778 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 7868 "asmparse.cpp.tab.c" +#line 6784 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 7874 "asmparse.cpp.tab.c" +#line 6790 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -7878,25 +6794,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 7882 "asmparse.cpp.tab.c" +#line 6798 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7888 "asmparse.cpp.tab.c" +#line 6804 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7894 "asmparse.cpp.tab.c" +#line 6810 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7900 "asmparse.cpp.tab.c" +#line 6816 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -7905,32 +6821,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 7909 "asmparse.cpp.tab.c" +#line 6825 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 7915 "asmparse.cpp.tab.c" +#line 6831 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 7922 "asmparse.cpp.tab.c" +#line 6838 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7928 "asmparse.cpp.tab.c" +#line 6844 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7934 "asmparse.cpp.tab.c" +#line 6850 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -7940,25 +6856,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 7944 "asmparse.cpp.tab.c" +#line 6860 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7950 "asmparse.cpp.tab.c" +#line 6866 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 7956 "asmparse.cpp.tab.c" +#line 6872 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 7962 "asmparse.cpp.tab.c" +#line 6878 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -7967,13 +6883,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7971 "asmparse.cpp.tab.c" +#line 6887 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 7977 "asmparse.cpp.tab.c" +#line 6893 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -7984,57 +6900,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 7988 "asmparse.cpp.tab.c" +#line 6904 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7994 "asmparse.cpp.tab.c" +#line 6910 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 8000 "asmparse.cpp.tab.c" +#line 6916 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 8006 "asmparse.cpp.tab.c" +#line 6922 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 8013 "asmparse.cpp.tab.c" +#line 6929 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 8020 "asmparse.cpp.tab.c" +#line 6936 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8026 "asmparse.cpp.tab.c" +#line 6942 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 8032 "asmparse.cpp.tab.c" +#line 6948 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 8038 "asmparse.cpp.tab.c" +#line 6954 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -8043,74 +6959,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 8047 "asmparse.cpp.tab.c" +#line 6963 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 8054 "asmparse.cpp.tab.c" +#line 6970 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 8060 "asmparse.cpp.tab.c" +#line 6976 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 8066 "asmparse.cpp.tab.c" +#line 6982 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 8072 "asmparse.cpp.tab.c" +#line 6988 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 8078 "asmparse.cpp.tab.c" +#line 6994 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 8084 "asmparse.cpp.tab.c" +#line 7000 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 8090 "asmparse.cpp.tab.c" +#line 7006 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 8096 "asmparse.cpp.tab.c" +#line 7012 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8102 "asmparse.cpp.tab.c" +#line 7018 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 8108 "asmparse.cpp.tab.c" +#line 7024 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 8114 "asmparse.cpp.tab.c" +#line 7030 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -8120,355 +7036,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 8124 "asmparse.cpp.tab.c" +#line 7040 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 8130 "asmparse.cpp.tab.c" +#line 7046 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 8136 "asmparse.cpp.tab.c" +#line 7052 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 8142 "asmparse.cpp.tab.c" +#line 7058 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 8148 "asmparse.cpp.tab.c" +#line 7064 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 8154 "asmparse.cpp.tab.c" +#line 7070 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 8160 "asmparse.cpp.tab.c" +#line 7076 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 8166 "asmparse.cpp.tab.c" +#line 7082 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 8172 "asmparse.cpp.tab.c" +#line 7088 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 8178 "asmparse.cpp.tab.c" +#line 7094 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 8184 "asmparse.cpp.tab.c" +#line 7100 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 8190 "asmparse.cpp.tab.c" +#line 7106 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 8196 "asmparse.cpp.tab.c" +#line 7112 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 8202 "asmparse.cpp.tab.c" +#line 7118 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 8208 "asmparse.cpp.tab.c" +#line 7124 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 8214 "asmparse.cpp.tab.c" +#line 7130 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 8220 "asmparse.cpp.tab.c" +#line 7136 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 8226 "asmparse.cpp.tab.c" +#line 7142 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 8232 "asmparse.cpp.tab.c" +#line 7148 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 8238 "asmparse.cpp.tab.c" +#line 7154 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 8244 "asmparse.cpp.tab.c" +#line 7160 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 8250 "asmparse.cpp.tab.c" +#line 7166 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 8256 "asmparse.cpp.tab.c" +#line 7172 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 8262 "asmparse.cpp.tab.c" +#line 7178 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 8268 "asmparse.cpp.tab.c" +#line 7184 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 8274 "asmparse.cpp.tab.c" +#line 7190 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 8280 "asmparse.cpp.tab.c" +#line 7196 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 8286 "asmparse.cpp.tab.c" +#line 7202 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 8292 "asmparse.cpp.tab.c" +#line 7208 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 8298 "asmparse.cpp.tab.c" +#line 7214 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 8304 "asmparse.cpp.tab.c" +#line 7220 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 8310 "asmparse.cpp.tab.c" +#line 7226 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8316 "asmparse.cpp.tab.c" +#line 7232 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8322 "asmparse.cpp.tab.c" +#line 7238 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 8328 "asmparse.cpp.tab.c" +#line 7244 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 8334 "asmparse.cpp.tab.c" +#line 7250 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 8340 "asmparse.cpp.tab.c" +#line 7256 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 8346 "asmparse.cpp.tab.c" +#line 7262 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 8352 "asmparse.cpp.tab.c" +#line 7268 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 8358 "asmparse.cpp.tab.c" +#line 7274 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 8364 "asmparse.cpp.tab.c" +#line 7280 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 8370 "asmparse.cpp.tab.c" +#line 7286 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 8376 "asmparse.cpp.tab.c" +#line 7292 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 8382 "asmparse.cpp.tab.c" +#line 7298 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 8388 "asmparse.cpp.tab.c" +#line 7304 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 8394 "asmparse.cpp.tab.c" +#line 7310 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 8400 "asmparse.cpp.tab.c" +#line 7316 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 8406 "asmparse.cpp.tab.c" +#line 7322 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 8412 "asmparse.cpp.tab.c" +#line 7328 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 8418 "asmparse.cpp.tab.c" +#line 7334 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 8424 "asmparse.cpp.tab.c" +#line 7340 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 8430 "asmparse.cpp.tab.c" +#line 7346 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 8436 "asmparse.cpp.tab.c" +#line 7352 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 8442 "asmparse.cpp.tab.c" +#line 7358 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 8448 "asmparse.cpp.tab.c" +#line 7364 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 8454 "asmparse.cpp.tab.c" +#line 7370 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 8460 "asmparse.cpp.tab.c" +#line 7376 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 8466 "asmparse.cpp.tab.c" +#line 7382 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 8472 "asmparse.cpp.tab.c" +#line 7388 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -8477,43 +7393,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 8481 "asmparse.cpp.tab.c" +#line 7397 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 8487 "asmparse.cpp.tab.c" +#line 7403 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 8493 "asmparse.cpp.tab.c" +#line 7409 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 8499 "asmparse.cpp.tab.c" +#line 7415 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 8505 "asmparse.cpp.tab.c" +#line 7421 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 8511 "asmparse.cpp.tab.c" +#line 7427 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 8517 "asmparse.cpp.tab.c" +#line 7433 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -8523,7 +7439,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 8527 "asmparse.cpp.tab.c" +#line 7443 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -8536,7 +7452,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 8540 "asmparse.cpp.tab.c" +#line 7456 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -8546,7 +7462,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 8550 "asmparse.cpp.tab.c" +#line 7466 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -8557,19 +7473,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8561 "asmparse.cpp.tab.c" +#line 7477 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8567 "asmparse.cpp.tab.c" +#line 7483 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8573 "asmparse.cpp.tab.c" +#line 7489 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -8578,146 +7494,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 8582 "asmparse.cpp.tab.c" +#line 7498 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 8589 "asmparse.cpp.tab.c" +#line 7505 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 8595 "asmparse.cpp.tab.c" +#line 7511 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 8601 "asmparse.cpp.tab.c" +#line 7517 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 8607 "asmparse.cpp.tab.c" +#line 7523 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 8613 "asmparse.cpp.tab.c" +#line 7529 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 8619 "asmparse.cpp.tab.c" +#line 7535 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 8625 "asmparse.cpp.tab.c" +#line 7541 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 8631 "asmparse.cpp.tab.c" +#line 7547 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 8637 "asmparse.cpp.tab.c" +#line 7553 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 8643 "asmparse.cpp.tab.c" +#line 7559 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 8649 "asmparse.cpp.tab.c" +#line 7565 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 8655 "asmparse.cpp.tab.c" +#line 7571 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 8661 "asmparse.cpp.tab.c" +#line 7577 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 8667 "asmparse.cpp.tab.c" +#line 7583 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 8673 "asmparse.cpp.tab.c" +#line 7589 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 8679 "asmparse.cpp.tab.c" +#line 7595 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 8685 "asmparse.cpp.tab.c" +#line 7601 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 8691 "asmparse.cpp.tab.c" +#line 7607 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8697 "asmparse.cpp.tab.c" +#line 7613 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 8703 "asmparse.cpp.tab.c" +#line 7619 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8709 "asmparse.cpp.tab.c" +#line 7625 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 8715 "asmparse.cpp.tab.c" +#line 7631 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 8721 "asmparse.cpp.tab.c" +#line 7637 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -8738,7 +7654,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 8742 "asmparse.cpp.tab.c" +#line 7658 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -8748,7 +7664,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 8752 "asmparse.cpp.tab.c" +#line 7668 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -8768,7 +7684,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 8772 "asmparse.cpp.tab.c" +#line 7688 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -8777,103 +7693,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 8781 "asmparse.cpp.tab.c" +#line 7697 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 8787 "asmparse.cpp.tab.c" +#line 7703 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 8793 "asmparse.cpp.tab.c" +#line 7709 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 8799 "asmparse.cpp.tab.c" +#line 7715 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 8805 "asmparse.cpp.tab.c" +#line 7721 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 8811 "asmparse.cpp.tab.c" +#line 7727 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 8817 "asmparse.cpp.tab.c" +#line 7733 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 8823 "asmparse.cpp.tab.c" +#line 7739 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8829 "asmparse.cpp.tab.c" +#line 7745 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8835 "asmparse.cpp.tab.c" +#line 7751 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 8841 "asmparse.cpp.tab.c" +#line 7757 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 8847 "asmparse.cpp.tab.c" +#line 7763 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 8853 "asmparse.cpp.tab.c" +#line 7769 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 8859 "asmparse.cpp.tab.c" +#line 7775 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 8865 "asmparse.cpp.tab.c" +#line 7781 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 8871 "asmparse.cpp.tab.c" +#line 7787 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 8877 "asmparse.cpp.tab.c" +#line 7793 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -8883,7 +7799,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 8887 "asmparse.cpp.tab.c" +#line 7803 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -8891,7 +7807,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8895 "asmparse.cpp.tab.c" +#line 7811 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -8899,82 +7815,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8903 "asmparse.cpp.tab.c" +#line 7819 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8910 "asmparse.cpp.tab.c" +#line 7826 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8917 "asmparse.cpp.tab.c" +#line 7833 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8924 "asmparse.cpp.tab.c" +#line 7840 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 8930 "asmparse.cpp.tab.c" +#line 7846 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 8936 "asmparse.cpp.tab.c" +#line 7852 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 8942 "asmparse.cpp.tab.c" +#line 7858 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 8948 "asmparse.cpp.tab.c" +#line 7864 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 8954 "asmparse.cpp.tab.c" +#line 7870 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 8960 "asmparse.cpp.tab.c" +#line 7876 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 8966 "asmparse.cpp.tab.c" +#line 7882 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 8972 "asmparse.cpp.tab.c" +#line 7888 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 8978 "asmparse.cpp.tab.c" +#line 7894 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -8982,43 +7898,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 8986 "asmparse.cpp.tab.c" +#line 7902 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 8992 "asmparse.cpp.tab.c" +#line 7908 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 8998 "asmparse.cpp.tab.c" +#line 7914 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 9004 "asmparse.cpp.tab.c" +#line 7920 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 9010 "asmparse.cpp.tab.c" +#line 7926 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 9016 "asmparse.cpp.tab.c" +#line 7932 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 9022 "asmparse.cpp.tab.c" +#line 7938 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -9027,37 +7943,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 9031 "asmparse.cpp.tab.c" +#line 7947 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 9037 "asmparse.cpp.tab.c" +#line 7953 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9043 "asmparse.cpp.tab.c" +#line 7959 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9049 "asmparse.cpp.tab.c" +#line 7965 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9055 "asmparse.cpp.tab.c" +#line 7971 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 9061 "asmparse.cpp.tab.c" +#line 7977 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -9075,420 +7991,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 9079 "asmparse.cpp.tab.c" +#line 7995 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 9085 "asmparse.cpp.tab.c" +#line 8001 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 9091 "asmparse.cpp.tab.c" +#line 8007 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 9097 "asmparse.cpp.tab.c" +#line 8013 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 9103 "asmparse.cpp.tab.c" +#line 8019 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 9109 "asmparse.cpp.tab.c" +#line 8025 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 9115 "asmparse.cpp.tab.c" +#line 8031 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 9121 "asmparse.cpp.tab.c" +#line 8037 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 9127 "asmparse.cpp.tab.c" +#line 8043 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 9133 "asmparse.cpp.tab.c" +#line 8049 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 9139 "asmparse.cpp.tab.c" +#line 8055 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 9145 "asmparse.cpp.tab.c" +#line 8061 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 9151 "asmparse.cpp.tab.c" +#line 8067 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 9157 "asmparse.cpp.tab.c" +#line 8073 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 9163 "asmparse.cpp.tab.c" +#line 8079 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 9169 "asmparse.cpp.tab.c" +#line 8085 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 9175 "asmparse.cpp.tab.c" +#line 8091 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 9181 "asmparse.cpp.tab.c" +#line 8097 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 9187 "asmparse.cpp.tab.c" +#line 8103 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 9193 "asmparse.cpp.tab.c" +#line 8109 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 9199 "asmparse.cpp.tab.c" +#line 8115 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 9206 "asmparse.cpp.tab.c" +#line 8122 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 9213 "asmparse.cpp.tab.c" +#line 8129 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 9220 "asmparse.cpp.tab.c" +#line 8136 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 9226 "asmparse.cpp.tab.c" +#line 8142 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 9232 "asmparse.cpp.tab.c" +#line 8148 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 9238 "asmparse.cpp.tab.c" +#line 8154 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 9244 "asmparse.cpp.tab.c" +#line 8160 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 9250 "asmparse.cpp.tab.c" +#line 8166 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 9256 "asmparse.cpp.tab.c" +#line 8172 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 9262 "asmparse.cpp.tab.c" +#line 8178 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 9268 "asmparse.cpp.tab.c" +#line 8184 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 9274 "asmparse.cpp.tab.c" +#line 8190 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 9280 "asmparse.cpp.tab.c" +#line 8196 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 9286 "asmparse.cpp.tab.c" +#line 8202 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 9292 "asmparse.cpp.tab.c" +#line 8208 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 9298 "asmparse.cpp.tab.c" +#line 8214 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 9304 "asmparse.cpp.tab.c" +#line 8220 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 9310 "asmparse.cpp.tab.c" +#line 8226 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 9316 "asmparse.cpp.tab.c" +#line 8232 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 9322 "asmparse.cpp.tab.c" +#line 8238 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 9328 "asmparse.cpp.tab.c" +#line 8244 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9334 "asmparse.cpp.tab.c" +#line 8250 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 9340 "asmparse.cpp.tab.c" +#line 8256 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 9346 "asmparse.cpp.tab.c" +#line 8262 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 9352 "asmparse.cpp.tab.c" +#line 8268 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 9358 "asmparse.cpp.tab.c" +#line 8274 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 9364 "asmparse.cpp.tab.c" +#line 8280 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 9370 "asmparse.cpp.tab.c" +#line 8286 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 9376 "asmparse.cpp.tab.c" +#line 8292 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 9382 "asmparse.cpp.tab.c" +#line 8298 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 9388 "asmparse.cpp.tab.c" +#line 8304 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 9394 "asmparse.cpp.tab.c" +#line 8310 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 9400 "asmparse.cpp.tab.c" +#line 8316 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 9406 "asmparse.cpp.tab.c" +#line 8322 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 9412 "asmparse.cpp.tab.c" +#line 8328 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 9418 "asmparse.cpp.tab.c" +#line 8334 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 9424 "asmparse.cpp.tab.c" +#line 8340 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 9430 "asmparse.cpp.tab.c" +#line 8346 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 9436 "asmparse.cpp.tab.c" +#line 8352 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 9442 "asmparse.cpp.tab.c" +#line 8358 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 9448 "asmparse.cpp.tab.c" +#line 8364 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 9454 "asmparse.cpp.tab.c" +#line 8370 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 9460 "asmparse.cpp.tab.c" +#line 8376 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 9467 "asmparse.cpp.tab.c" +#line 8383 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 9473 "asmparse.cpp.tab.c" +#line 8389 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 9479 "asmparse.cpp.tab.c" +#line 8395 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 9485 "asmparse.cpp.tab.c" +#line 8401 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 9492 "asmparse.cpp.tab.c" +#line 8408 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -9496,25 +8412,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 9500 "asmparse.cpp.tab.c" +#line 8416 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 9506 "asmparse.cpp.tab.c" +#line 8422 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 9512 "asmparse.cpp.tab.c" +#line 8428 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 9518 "asmparse.cpp.tab.c" +#line 8434 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -9529,7 +8445,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9533 "asmparse.cpp.tab.c" +#line 8449 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -9544,20 +8460,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9548 "asmparse.cpp.tab.c" +#line 8464 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 9555 "asmparse.cpp.tab.c" +#line 8471 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 9561 "asmparse.cpp.tab.c" +#line 8477 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -9568,7 +8484,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 9572 "asmparse.cpp.tab.c" +#line 8488 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -9578,7 +8494,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 9582 "asmparse.cpp.tab.c" +#line 8498 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -9589,19 +8505,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 9593 "asmparse.cpp.tab.c" +#line 8509 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 9599 "asmparse.cpp.tab.c" +#line 8515 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 9605 "asmparse.cpp.tab.c" +#line 8521 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -9624,96 +8540,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 9628 "asmparse.cpp.tab.c" +#line 8544 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 9634 "asmparse.cpp.tab.c" +#line 8550 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 9640 "asmparse.cpp.tab.c" +#line 8556 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 9646 "asmparse.cpp.tab.c" +#line 8562 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 9652 "asmparse.cpp.tab.c" +#line 8568 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 9659 "asmparse.cpp.tab.c" +#line 8575 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 9666 "asmparse.cpp.tab.c" +#line 8582 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 9672 "asmparse.cpp.tab.c" +#line 8588 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 9678 "asmparse.cpp.tab.c" +#line 8594 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 9684 "asmparse.cpp.tab.c" +#line 8600 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 9690 "asmparse.cpp.tab.c" +#line 8606 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9696 "asmparse.cpp.tab.c" +#line 8612 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9703 "asmparse.cpp.tab.c" +#line 8619 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9710 "asmparse.cpp.tab.c" +#line 8626 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 9717 "asmparse.cpp.tab.c" +#line 8633 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -9721,70 +8637,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9725 "asmparse.cpp.tab.c" +#line 8641 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9732 "asmparse.cpp.tab.c" +#line 8648 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9739 "asmparse.cpp.tab.c" +#line 8655 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 9745 "asmparse.cpp.tab.c" +#line 8661 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 9751 "asmparse.cpp.tab.c" +#line 8667 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 9758 "asmparse.cpp.tab.c" +#line 8674 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 9764 "asmparse.cpp.tab.c" +#line 8680 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 9770 "asmparse.cpp.tab.c" +#line 8686 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 9776 "asmparse.cpp.tab.c" +#line 8692 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 9782 "asmparse.cpp.tab.c" +#line 8698 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 9788 "asmparse.cpp.tab.c" +#line 8704 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -9792,25 +8708,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 9796 "asmparse.cpp.tab.c" +#line 8712 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 9802 "asmparse.cpp.tab.c" +#line 8718 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 9808 "asmparse.cpp.tab.c" +#line 8724 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 9814 "asmparse.cpp.tab.c" +#line 8730 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -9821,7 +8737,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 9825 "asmparse.cpp.tab.c" +#line 8741 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -9832,7 +8748,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 9836 "asmparse.cpp.tab.c" +#line 8752 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -9843,7 +8759,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 9847 "asmparse.cpp.tab.c" +#line 8763 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -9854,7 +8770,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 9858 "asmparse.cpp.tab.c" +#line 8774 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -9866,7 +8782,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 9870 "asmparse.cpp.tab.c" +#line 8786 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -9878,43 +8794,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 9882 "asmparse.cpp.tab.c" +#line 8798 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 9888 "asmparse.cpp.tab.c" +#line 8804 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 9894 "asmparse.cpp.tab.c" +#line 8810 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 9900 "asmparse.cpp.tab.c" +#line 8816 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 9906 "asmparse.cpp.tab.c" +#line 8822 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 9912 "asmparse.cpp.tab.c" +#line 8828 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 9918 "asmparse.cpp.tab.c" +#line 8834 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -9922,227 +8838,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 9926 "asmparse.cpp.tab.c" +#line 8842 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 9933 "asmparse.cpp.tab.c" +#line 8849 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 9940 "asmparse.cpp.tab.c" +#line 8856 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 9947 "asmparse.cpp.tab.c" +#line 8863 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 9954 "asmparse.cpp.tab.c" +#line 8870 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 9961 "asmparse.cpp.tab.c" +#line 8877 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 9968 "asmparse.cpp.tab.c" +#line 8884 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 9975 "asmparse.cpp.tab.c" +#line 8891 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 9982 "asmparse.cpp.tab.c" +#line 8898 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 9989 "asmparse.cpp.tab.c" +#line 8905 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 9996 "asmparse.cpp.tab.c" +#line 8912 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10003 "asmparse.cpp.tab.c" +#line 8919 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10010 "asmparse.cpp.tab.c" +#line 8926 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10017 "asmparse.cpp.tab.c" +#line 8933 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10024 "asmparse.cpp.tab.c" +#line 8940 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10031 "asmparse.cpp.tab.c" +#line 8947 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10038 "asmparse.cpp.tab.c" +#line 8954 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 10045 "asmparse.cpp.tab.c" +#line 8961 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 10052 "asmparse.cpp.tab.c" +#line 8968 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 10058 "asmparse.cpp.tab.c" +#line 8974 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10064 "asmparse.cpp.tab.c" +#line 8980 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10070 "asmparse.cpp.tab.c" +#line 8986 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 10076 "asmparse.cpp.tab.c" +#line 8992 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 10082 "asmparse.cpp.tab.c" +#line 8998 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10088 "asmparse.cpp.tab.c" +#line 9004 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 10094 "asmparse.cpp.tab.c" +#line 9010 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 10101 "asmparse.cpp.tab.c" +#line 9017 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10107 "asmparse.cpp.tab.c" +#line 9023 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 10113 "asmparse.cpp.tab.c" +#line 9029 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 10120 "asmparse.cpp.tab.c" +#line 9036 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 10127 "asmparse.cpp.tab.c" +#line 9043 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 10134 "asmparse.cpp.tab.c" +#line 9050 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 10140 "asmparse.cpp.tab.c" +#line 9056 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 10146 "asmparse.cpp.tab.c" +#line 9062 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -10150,7 +9066,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10154 "asmparse.cpp.tab.c" +#line 9070 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -10158,7 +9074,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10162 "asmparse.cpp.tab.c" +#line 9078 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -10166,7 +9082,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10170 "asmparse.cpp.tab.c" +#line 9086 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -10174,7 +9090,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10178 "asmparse.cpp.tab.c" +#line 9094 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -10182,7 +9098,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10186 "asmparse.cpp.tab.c" +#line 9102 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -10190,7 +9106,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10194 "asmparse.cpp.tab.c" +#line 9110 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -10198,7 +9114,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10202 "asmparse.cpp.tab.c" +#line 9118 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -10206,7 +9122,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10210 "asmparse.cpp.tab.c" +#line 9126 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -10214,7 +9130,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10218 "asmparse.cpp.tab.c" +#line 9134 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -10222,7 +9138,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10226 "asmparse.cpp.tab.c" +#line 9142 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -10230,7 +9146,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10234 "asmparse.cpp.tab.c" +#line 9150 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -10238,7 +9154,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10242 "asmparse.cpp.tab.c" +#line 9158 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -10246,7 +9162,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10250 "asmparse.cpp.tab.c" +#line 9166 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -10254,7 +9170,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10258 "asmparse.cpp.tab.c" +#line 9174 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -10262,7 +9178,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10266 "asmparse.cpp.tab.c" +#line 9182 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -10270,7 +9186,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10274 "asmparse.cpp.tab.c" +#line 9190 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -10278,7 +9194,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10282 "asmparse.cpp.tab.c" +#line 9198 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -10286,7 +9202,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10290 "asmparse.cpp.tab.c" +#line 9206 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -10294,166 +9210,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10298 "asmparse.cpp.tab.c" +#line 9214 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10304 "asmparse.cpp.tab.c" +#line 9220 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 10311 "asmparse.cpp.tab.c" +#line 9227 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10318 "asmparse.cpp.tab.c" +#line 9234 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10324 "asmparse.cpp.tab.c" +#line 9240 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 10331 "asmparse.cpp.tab.c" +#line 9247 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 10338 "asmparse.cpp.tab.c" +#line 9254 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10344 "asmparse.cpp.tab.c" +#line 9260 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 10351 "asmparse.cpp.tab.c" +#line 9267 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10357 "asmparse.cpp.tab.c" +#line 9273 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 10363 "asmparse.cpp.tab.c" +#line 9279 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10369 "asmparse.cpp.tab.c" +#line 9285 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 10375 "asmparse.cpp.tab.c" +#line 9291 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10381 "asmparse.cpp.tab.c" +#line 9297 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10387 "asmparse.cpp.tab.c" +#line 9303 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10393 "asmparse.cpp.tab.c" +#line 9309 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 10400 "asmparse.cpp.tab.c" +#line 9316 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10406 "asmparse.cpp.tab.c" +#line 9322 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10412 "asmparse.cpp.tab.c" +#line 9328 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 10419 "asmparse.cpp.tab.c" +#line 9335 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10425 "asmparse.cpp.tab.c" +#line 9341 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10431 "asmparse.cpp.tab.c" +#line 9347 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 10438 "asmparse.cpp.tab.c" +#line 9354 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 10445 "asmparse.cpp.tab.c" +#line 9361 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10451 "asmparse.cpp.tab.c" +#line 9367 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10457 "asmparse.cpp.tab.c" +#line 9373 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -10462,49 +9378,49 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 10466 "asmparse.cpp.tab.c" +#line 9382 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10472 "asmparse.cpp.tab.c" +#line 9388 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10478 "asmparse.cpp.tab.c" +#line 9394 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10484 "asmparse.cpp.tab.c" +#line 9400 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10490 "asmparse.cpp.tab.c" +#line 9406 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10496 "asmparse.cpp.tab.c" +#line 9412 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10502 "asmparse.cpp.tab.c" +#line 9418 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10508 "asmparse.cpp.tab.c" +#line 9424 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) @@ -10515,115 +9431,115 @@ case 503: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 10519 "asmparse.cpp.tab.c" +#line 9435 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10525 "asmparse.cpp.tab.c" +#line 9441 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10531 "asmparse.cpp.tab.c" +#line 9447 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10537 "asmparse.cpp.tab.c" +#line 9453 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10543 "asmparse.cpp.tab.c" +#line 9459 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 10549 "asmparse.cpp.tab.c" +#line 9465 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 10555 "asmparse.cpp.tab.c" +#line 9471 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1375 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 10561 "asmparse.cpp.tab.c" +#line 9477 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 10567 "asmparse.cpp.tab.c" +#line 9483 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 10573 "asmparse.cpp.tab.c" +#line 9489 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 10579 "asmparse.cpp.tab.c" +#line 9495 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) #line 1382 "asmparse.y" { PASM->EmitInstrTypeVar(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].int32); } -#line 10585 "asmparse.cpp.tab.c" +#line 9501 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) #line 1383 "asmparse.y" { PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } -#line 10591 "asmparse.cpp.tab.c" +#line 9507 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) #line 1384 "asmparse.y" { PASM->EmitInstrTypeVar(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].int32); } -#line 10597 "asmparse.cpp.tab.c" +#line 9513 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) #line 1385 "asmparse.y" { PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } -#line 10603 "asmparse.cpp.tab.c" +#line 9519 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) #line 1386 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 10609 "asmparse.cpp.tab.c" +#line 9525 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) #line 1387 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 10615 "asmparse.cpp.tab.c" +#line 9531 "asmparse.cpp.tab.c" break; case 520: if (!yytrial) #line 1388 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 10621 "asmparse.cpp.tab.c" +#line 9537 "asmparse.cpp.tab.c" break; case 521: if (!yytrial) #line 1389 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 10627 "asmparse.cpp.tab.c" +#line 9543 "asmparse.cpp.tab.c" break; case 522: if (!yytrial) @@ -10637,19 +9553,19 @@ case 522: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 10641 "asmparse.cpp.tab.c" +#line 9557 "asmparse.cpp.tab.c" break; case 523: if (!yytrial) #line 1399 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 10647 "asmparse.cpp.tab.c" +#line 9563 "asmparse.cpp.tab.c" break; case 524: if (!yytrial) #line 1400 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 10653 "asmparse.cpp.tab.c" +#line 9569 "asmparse.cpp.tab.c" break; case 525: if (!yytrial) @@ -10660,7 +9576,7 @@ case 525: PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 10664 "asmparse.cpp.tab.c" +#line 9580 "asmparse.cpp.tab.c" break; case 526: if (!yytrial) @@ -10672,7 +9588,7 @@ case 526: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10676 "asmparse.cpp.tab.c" +#line 9592 "asmparse.cpp.tab.c" break; case 527: if (!yytrial) @@ -10684,7 +9600,7 @@ case 527: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10688 "asmparse.cpp.tab.c" +#line 9604 "asmparse.cpp.tab.c" break; case 528: if (!yytrial) @@ -10695,7 +9611,7 @@ case 528: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10699 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp.tab.c" break; case 529: if (!yytrial) @@ -10706,7 +9622,7 @@ case 529: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10710 "asmparse.cpp.tab.c" +#line 9626 "asmparse.cpp.tab.c" break; case 530: if (!yytrial) @@ -10717,7 +9633,7 @@ case 530: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10721 "asmparse.cpp.tab.c" +#line 9637 "asmparse.cpp.tab.c" break; case 531: if (!yytrial) @@ -10726,25 +9642,25 @@ case 531: PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 10730 "asmparse.cpp.tab.c" +#line 9646 "asmparse.cpp.tab.c" break; case 532: if (!yytrial) #line 1446 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 10736 "asmparse.cpp.tab.c" +#line 9652 "asmparse.cpp.tab.c" break; case 533: if (!yytrial) #line 1448 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 10742 "asmparse.cpp.tab.c" +#line 9658 "asmparse.cpp.tab.c" break; case 534: if (!yytrial) #line 1450 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 10748 "asmparse.cpp.tab.c" +#line 9664 "asmparse.cpp.tab.c" break; case 535: if (!yytrial) @@ -10752,7 +9668,7 @@ case 535: { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 10756 "asmparse.cpp.tab.c" +#line 9672 "asmparse.cpp.tab.c" break; case 536: if (!yytrial) @@ -10762,163 +9678,163 @@ case 536: PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 10766 "asmparse.cpp.tab.c" +#line 9682 "asmparse.cpp.tab.c" break; case 537: if (!yytrial) #line 1461 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 10772 "asmparse.cpp.tab.c" +#line 9688 "asmparse.cpp.tab.c" break; case 538: if (!yytrial) #line 1464 "asmparse.y" { yyval.labels = 0; } -#line 10778 "asmparse.cpp.tab.c" +#line 9694 "asmparse.cpp.tab.c" break; case 539: if (!yytrial) #line 1465 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 10784 "asmparse.cpp.tab.c" +#line 9700 "asmparse.cpp.tab.c" break; case 540: if (!yytrial) #line 1466 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 10790 "asmparse.cpp.tab.c" +#line 9706 "asmparse.cpp.tab.c" break; case 541: if (!yytrial) #line 1467 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 10796 "asmparse.cpp.tab.c" +#line 9712 "asmparse.cpp.tab.c" break; case 542: if (!yytrial) #line 1468 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 10802 "asmparse.cpp.tab.c" +#line 9718 "asmparse.cpp.tab.c" break; case 543: if (!yytrial) #line 1472 "asmparse.y" { yyval.binstr = NULL; } -#line 10808 "asmparse.cpp.tab.c" +#line 9724 "asmparse.cpp.tab.c" break; case 544: if (!yytrial) #line 1473 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 10814 "asmparse.cpp.tab.c" +#line 9730 "asmparse.cpp.tab.c" break; case 545: if (!yytrial) #line 1476 "asmparse.y" { yyval.binstr = NULL; } -#line 10820 "asmparse.cpp.tab.c" +#line 9736 "asmparse.cpp.tab.c" break; case 546: if (!yytrial) #line 1477 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10826 "asmparse.cpp.tab.c" +#line 9742 "asmparse.cpp.tab.c" break; case 547: if (!yytrial) #line 1480 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10832 "asmparse.cpp.tab.c" +#line 9748 "asmparse.cpp.tab.c" break; case 548: if (!yytrial) #line 1481 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10838 "asmparse.cpp.tab.c" +#line 9754 "asmparse.cpp.tab.c" break; case 549: if (!yytrial) #line 1485 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10844 "asmparse.cpp.tab.c" +#line 9760 "asmparse.cpp.tab.c" break; case 550: if (!yytrial) #line 1486 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 10850 "asmparse.cpp.tab.c" +#line 9766 "asmparse.cpp.tab.c" break; case 551: if (!yytrial) #line 1489 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10856 "asmparse.cpp.tab.c" +#line 9772 "asmparse.cpp.tab.c" break; case 552: if (!yytrial) #line 1490 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10862 "asmparse.cpp.tab.c" +#line 9778 "asmparse.cpp.tab.c" break; case 553: if (!yytrial) #line 1493 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 10868 "asmparse.cpp.tab.c" +#line 9784 "asmparse.cpp.tab.c" break; case 554: if (!yytrial) #line 1494 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 10874 "asmparse.cpp.tab.c" +#line 9790 "asmparse.cpp.tab.c" break; case 555: if (!yytrial) #line 1495 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 10880 "asmparse.cpp.tab.c" +#line 9796 "asmparse.cpp.tab.c" break; case 556: if (!yytrial) #line 1499 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 10886 "asmparse.cpp.tab.c" +#line 9802 "asmparse.cpp.tab.c" break; case 557: if (!yytrial) #line 1500 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 10892 "asmparse.cpp.tab.c" +#line 9808 "asmparse.cpp.tab.c" break; case 558: if (!yytrial) #line 1501 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 10898 "asmparse.cpp.tab.c" +#line 9814 "asmparse.cpp.tab.c" break; case 559: if (!yytrial) #line 1502 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 10904 "asmparse.cpp.tab.c" +#line 9820 "asmparse.cpp.tab.c" break; case 560: if (!yytrial) #line 1503 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 10910 "asmparse.cpp.tab.c" +#line 9826 "asmparse.cpp.tab.c" break; case 561: if (!yytrial) #line 1504 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 10916 "asmparse.cpp.tab.c" +#line 9832 "asmparse.cpp.tab.c" break; case 562: if (!yytrial) #line 1505 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 10922 "asmparse.cpp.tab.c" +#line 9838 "asmparse.cpp.tab.c" break; case 563: if (!yytrial) @@ -10926,7 +9842,7 @@ case 563: { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 10930 "asmparse.cpp.tab.c" +#line 9846 "asmparse.cpp.tab.c" break; case 564: if (!yytrial) @@ -10937,7 +9853,7 @@ case 564: PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 10941 "asmparse.cpp.tab.c" +#line 9857 "asmparse.cpp.tab.c" break; case 565: if (!yytrial) @@ -10947,49 +9863,49 @@ case 565: else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 10951 "asmparse.cpp.tab.c" +#line 9867 "asmparse.cpp.tab.c" break; case 566: if (!yytrial) #line 1522 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 10957 "asmparse.cpp.tab.c" +#line 9873 "asmparse.cpp.tab.c" break; case 567: if (!yytrial) #line 1523 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 10963 "asmparse.cpp.tab.c" +#line 9879 "asmparse.cpp.tab.c" break; case 568: if (!yytrial) #line 1526 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 10969 "asmparse.cpp.tab.c" +#line 9885 "asmparse.cpp.tab.c" break; case 569: if (!yytrial) #line 1527 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 10975 "asmparse.cpp.tab.c" +#line 9891 "asmparse.cpp.tab.c" break; case 570: if (!yytrial) #line 1528 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 10981 "asmparse.cpp.tab.c" +#line 9897 "asmparse.cpp.tab.c" break; case 571: if (!yytrial) #line 1529 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 10987 "asmparse.cpp.tab.c" +#line 9903 "asmparse.cpp.tab.c" break; case 572: if (!yytrial) #line 1533 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10993 "asmparse.cpp.tab.c" +#line 9909 "asmparse.cpp.tab.c" break; case 573: if (!yytrial) @@ -11000,7 +9916,7 @@ case 573: corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 11004 "asmparse.cpp.tab.c" +#line 9920 "asmparse.cpp.tab.c" break; case 574: if (!yytrial) @@ -11010,158 +9926,158 @@ case 574: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 11014 "asmparse.cpp.tab.c" +#line 9930 "asmparse.cpp.tab.c" break; case 575: if (!yytrial) #line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 11021 "asmparse.cpp.tab.c" +#line 9937 "asmparse.cpp.tab.c" break; case 576: if (!yytrial) #line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 11028 "asmparse.cpp.tab.c" +#line 9944 "asmparse.cpp.tab.c" break; case 577: if (!yytrial) #line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 11035 "asmparse.cpp.tab.c" +#line 9951 "asmparse.cpp.tab.c" break; case 578: if (!yytrial) #line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 11041 "asmparse.cpp.tab.c" +#line 9957 "asmparse.cpp.tab.c" break; case 579: if (!yytrial) #line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 11048 "asmparse.cpp.tab.c" +#line 9964 "asmparse.cpp.tab.c" break; case 580: if (!yytrial) #line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 11055 "asmparse.cpp.tab.c" +#line 9971 "asmparse.cpp.tab.c" break; case 581: if (!yytrial) #line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 11061 "asmparse.cpp.tab.c" +#line 9977 "asmparse.cpp.tab.c" break; case 582: if (!yytrial) #line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 11067 "asmparse.cpp.tab.c" +#line 9983 "asmparse.cpp.tab.c" break; case 583: if (!yytrial) #line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 11073 "asmparse.cpp.tab.c" +#line 9989 "asmparse.cpp.tab.c" break; case 584: if (!yytrial) #line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 11079 "asmparse.cpp.tab.c" +#line 9995 "asmparse.cpp.tab.c" break; case 585: if (!yytrial) #line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 11085 "asmparse.cpp.tab.c" +#line 10001 "asmparse.cpp.tab.c" break; case 586: if (!yytrial) #line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 11091 "asmparse.cpp.tab.c" +#line 10007 "asmparse.cpp.tab.c" break; case 587: if (!yytrial) #line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 11097 "asmparse.cpp.tab.c" +#line 10013 "asmparse.cpp.tab.c" break; case 588: if (!yytrial) #line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 11103 "asmparse.cpp.tab.c" +#line 10019 "asmparse.cpp.tab.c" break; case 589: if (!yytrial) #line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 11109 "asmparse.cpp.tab.c" +#line 10025 "asmparse.cpp.tab.c" break; case 590: if (!yytrial) #line 1568 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 11115 "asmparse.cpp.tab.c" +#line 10031 "asmparse.cpp.tab.c" break; case 591: if (!yytrial) #line 1569 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 11121 "asmparse.cpp.tab.c" +#line 10037 "asmparse.cpp.tab.c" break; case 592: if (!yytrial) #line 1570 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 11127 "asmparse.cpp.tab.c" +#line 10043 "asmparse.cpp.tab.c" break; case 593: if (!yytrial) #line 1571 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 11133 "asmparse.cpp.tab.c" +#line 10049 "asmparse.cpp.tab.c" break; case 594: if (!yytrial) #line 1572 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 11139 "asmparse.cpp.tab.c" +#line 10055 "asmparse.cpp.tab.c" break; case 595: if (!yytrial) #line 1573 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 11145 "asmparse.cpp.tab.c" +#line 10061 "asmparse.cpp.tab.c" break; case 596: if (!yytrial) #line 1574 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 11151 "asmparse.cpp.tab.c" +#line 10067 "asmparse.cpp.tab.c" break; case 597: if (!yytrial) #line 1575 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 11158 "asmparse.cpp.tab.c" +#line 10074 "asmparse.cpp.tab.c" break; case 598: if (!yytrial) #line 1577 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 11165 "asmparse.cpp.tab.c" +#line 10081 "asmparse.cpp.tab.c" break; case 599: if (!yytrial) @@ -11171,7 +10087,7 @@ case 599: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 11175 "asmparse.cpp.tab.c" +#line 10091 "asmparse.cpp.tab.c" break; case 600: if (!yytrial) @@ -11181,7 +10097,7 @@ case 600: corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 11185 "asmparse.cpp.tab.c" +#line 10101 "asmparse.cpp.tab.c" break; case 601: if (!yytrial) @@ -11189,79 +10105,79 @@ case 601: { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 11193 "asmparse.cpp.tab.c" +#line 10109 "asmparse.cpp.tab.c" break; case 602: if (!yytrial) #line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 11200 "asmparse.cpp.tab.c" +#line 10116 "asmparse.cpp.tab.c" break; case 603: if (!yytrial) #line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 11207 "asmparse.cpp.tab.c" +#line 10123 "asmparse.cpp.tab.c" break; case 604: if (!yytrial) #line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 11213 "asmparse.cpp.tab.c" +#line 10129 "asmparse.cpp.tab.c" break; case 605: if (!yytrial) #line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 11219 "asmparse.cpp.tab.c" +#line 10135 "asmparse.cpp.tab.c" break; case 606: if (!yytrial) #line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 11225 "asmparse.cpp.tab.c" +#line 10141 "asmparse.cpp.tab.c" break; case 607: if (!yytrial) #line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 11231 "asmparse.cpp.tab.c" +#line 10147 "asmparse.cpp.tab.c" break; case 608: if (!yytrial) #line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 11238 "asmparse.cpp.tab.c" +#line 10154 "asmparse.cpp.tab.c" break; case 609: if (!yytrial) #line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 11245 "asmparse.cpp.tab.c" +#line 10161 "asmparse.cpp.tab.c" break; case 610: if (!yytrial) #line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 11252 "asmparse.cpp.tab.c" +#line 10168 "asmparse.cpp.tab.c" break; case 611: if (!yytrial) #line 1606 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 11258 "asmparse.cpp.tab.c" +#line 10174 "asmparse.cpp.tab.c" break; case 612: if (!yytrial) #line 1607 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 11265 "asmparse.cpp.tab.c" +#line 10181 "asmparse.cpp.tab.c" break; case 613: if (!yytrial) @@ -11269,7 +10185,7 @@ case 613: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 11273 "asmparse.cpp.tab.c" +#line 10189 "asmparse.cpp.tab.c" break; case 614: if (!yytrial) @@ -11277,386 +10193,386 @@ case 614: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 11281 "asmparse.cpp.tab.c" +#line 10197 "asmparse.cpp.tab.c" break; case 615: if (!yytrial) #line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 11287 "asmparse.cpp.tab.c" +#line 10203 "asmparse.cpp.tab.c" break; case 616: if (!yytrial) #line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11293 "asmparse.cpp.tab.c" +#line 10209 "asmparse.cpp.tab.c" break; case 617: if (!yytrial) #line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11299 "asmparse.cpp.tab.c" +#line 10215 "asmparse.cpp.tab.c" break; case 618: if (!yytrial) #line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 11306 "asmparse.cpp.tab.c" +#line 10222 "asmparse.cpp.tab.c" break; case 619: if (!yytrial) #line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 11312 "asmparse.cpp.tab.c" +#line 10228 "asmparse.cpp.tab.c" break; case 620: if (!yytrial) #line 1622 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 11318 "asmparse.cpp.tab.c" +#line 10234 "asmparse.cpp.tab.c" break; case 621: if (!yytrial) #line 1623 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 11324 "asmparse.cpp.tab.c" +#line 10240 "asmparse.cpp.tab.c" break; case 622: if (!yytrial) #line 1624 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 11330 "asmparse.cpp.tab.c" +#line 10246 "asmparse.cpp.tab.c" break; case 623: if (!yytrial) #line 1625 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 11336 "asmparse.cpp.tab.c" +#line 10252 "asmparse.cpp.tab.c" break; case 624: if (!yytrial) #line 1626 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 11342 "asmparse.cpp.tab.c" +#line 10258 "asmparse.cpp.tab.c" break; case 625: if (!yytrial) #line 1627 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 11348 "asmparse.cpp.tab.c" +#line 10264 "asmparse.cpp.tab.c" break; case 626: if (!yytrial) #line 1628 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 11354 "asmparse.cpp.tab.c" +#line 10270 "asmparse.cpp.tab.c" break; case 627: if (!yytrial) #line 1631 "asmparse.y" { yyval.int32 = -1; } -#line 11360 "asmparse.cpp.tab.c" +#line 10276 "asmparse.cpp.tab.c" break; case 628: if (!yytrial) #line 1632 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 11366 "asmparse.cpp.tab.c" +#line 10282 "asmparse.cpp.tab.c" break; case 629: if (!yytrial) #line 1635 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 11372 "asmparse.cpp.tab.c" +#line 10288 "asmparse.cpp.tab.c" break; case 630: if (!yytrial) #line 1636 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 11378 "asmparse.cpp.tab.c" +#line 10294 "asmparse.cpp.tab.c" break; case 631: if (!yytrial) #line 1637 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 11384 "asmparse.cpp.tab.c" +#line 10300 "asmparse.cpp.tab.c" break; case 632: if (!yytrial) #line 1638 "asmparse.y" { yyval.int32 = VT_CY; } -#line 11390 "asmparse.cpp.tab.c" +#line 10306 "asmparse.cpp.tab.c" break; case 633: if (!yytrial) #line 1639 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 11396 "asmparse.cpp.tab.c" +#line 10312 "asmparse.cpp.tab.c" break; case 634: if (!yytrial) #line 1640 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 11402 "asmparse.cpp.tab.c" +#line 10318 "asmparse.cpp.tab.c" break; case 635: if (!yytrial) #line 1641 "asmparse.y" { yyval.int32 = VT_I1; } -#line 11408 "asmparse.cpp.tab.c" +#line 10324 "asmparse.cpp.tab.c" break; case 636: if (!yytrial) #line 1642 "asmparse.y" { yyval.int32 = VT_I2; } -#line 11414 "asmparse.cpp.tab.c" +#line 10330 "asmparse.cpp.tab.c" break; case 637: if (!yytrial) #line 1643 "asmparse.y" { yyval.int32 = VT_I4; } -#line 11420 "asmparse.cpp.tab.c" +#line 10336 "asmparse.cpp.tab.c" break; case 638: if (!yytrial) #line 1644 "asmparse.y" { yyval.int32 = VT_I8; } -#line 11426 "asmparse.cpp.tab.c" +#line 10342 "asmparse.cpp.tab.c" break; case 639: if (!yytrial) #line 1645 "asmparse.y" { yyval.int32 = VT_R4; } -#line 11432 "asmparse.cpp.tab.c" +#line 10348 "asmparse.cpp.tab.c" break; case 640: if (!yytrial) #line 1646 "asmparse.y" { yyval.int32 = VT_R8; } -#line 11438 "asmparse.cpp.tab.c" +#line 10354 "asmparse.cpp.tab.c" break; case 641: if (!yytrial) #line 1647 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 11444 "asmparse.cpp.tab.c" +#line 10360 "asmparse.cpp.tab.c" break; case 642: if (!yytrial) #line 1648 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 11450 "asmparse.cpp.tab.c" +#line 10366 "asmparse.cpp.tab.c" break; case 643: if (!yytrial) #line 1649 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 11456 "asmparse.cpp.tab.c" +#line 10372 "asmparse.cpp.tab.c" break; case 644: if (!yytrial) #line 1650 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 11462 "asmparse.cpp.tab.c" +#line 10378 "asmparse.cpp.tab.c" break; case 645: if (!yytrial) #line 1651 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 11468 "asmparse.cpp.tab.c" +#line 10384 "asmparse.cpp.tab.c" break; case 646: if (!yytrial) #line 1652 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 11474 "asmparse.cpp.tab.c" +#line 10390 "asmparse.cpp.tab.c" break; case 647: if (!yytrial) #line 1653 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 11480 "asmparse.cpp.tab.c" +#line 10396 "asmparse.cpp.tab.c" break; case 648: if (!yytrial) #line 1654 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 11486 "asmparse.cpp.tab.c" +#line 10402 "asmparse.cpp.tab.c" break; case 649: if (!yytrial) #line 1655 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 11492 "asmparse.cpp.tab.c" +#line 10408 "asmparse.cpp.tab.c" break; case 650: if (!yytrial) #line 1656 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 11498 "asmparse.cpp.tab.c" +#line 10414 "asmparse.cpp.tab.c" break; case 651: if (!yytrial) #line 1657 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 11504 "asmparse.cpp.tab.c" +#line 10420 "asmparse.cpp.tab.c" break; case 652: if (!yytrial) #line 1658 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 11510 "asmparse.cpp.tab.c" +#line 10426 "asmparse.cpp.tab.c" break; case 653: if (!yytrial) #line 1659 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 11516 "asmparse.cpp.tab.c" +#line 10432 "asmparse.cpp.tab.c" break; case 654: if (!yytrial) #line 1660 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 11522 "asmparse.cpp.tab.c" +#line 10438 "asmparse.cpp.tab.c" break; case 655: if (!yytrial) #line 1661 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 11528 "asmparse.cpp.tab.c" +#line 10444 "asmparse.cpp.tab.c" break; case 656: if (!yytrial) #line 1662 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 11534 "asmparse.cpp.tab.c" +#line 10450 "asmparse.cpp.tab.c" break; case 657: if (!yytrial) #line 1663 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 11540 "asmparse.cpp.tab.c" +#line 10456 "asmparse.cpp.tab.c" break; case 658: if (!yytrial) #line 1664 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 11546 "asmparse.cpp.tab.c" +#line 10462 "asmparse.cpp.tab.c" break; case 659: if (!yytrial) #line 1665 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 11552 "asmparse.cpp.tab.c" +#line 10468 "asmparse.cpp.tab.c" break; case 660: if (!yytrial) #line 1666 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 11558 "asmparse.cpp.tab.c" +#line 10474 "asmparse.cpp.tab.c" break; case 661: if (!yytrial) #line 1667 "asmparse.y" { yyval.int32 = VT_INT; } -#line 11564 "asmparse.cpp.tab.c" +#line 10480 "asmparse.cpp.tab.c" break; case 662: if (!yytrial) #line 1668 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 11570 "asmparse.cpp.tab.c" +#line 10486 "asmparse.cpp.tab.c" break; case 663: if (!yytrial) #line 1669 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 11576 "asmparse.cpp.tab.c" +#line 10492 "asmparse.cpp.tab.c" break; case 664: if (!yytrial) #line 1670 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 11582 "asmparse.cpp.tab.c" +#line 10498 "asmparse.cpp.tab.c" break; case 665: if (!yytrial) #line 1671 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 11588 "asmparse.cpp.tab.c" +#line 10504 "asmparse.cpp.tab.c" break; case 666: if (!yytrial) #line 1672 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 11594 "asmparse.cpp.tab.c" +#line 10510 "asmparse.cpp.tab.c" break; case 667: if (!yytrial) #line 1673 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 11600 "asmparse.cpp.tab.c" +#line 10516 "asmparse.cpp.tab.c" break; case 668: if (!yytrial) #line 1674 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 11606 "asmparse.cpp.tab.c" +#line 10522 "asmparse.cpp.tab.c" break; case 669: if (!yytrial) #line 1675 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 11612 "asmparse.cpp.tab.c" +#line 10528 "asmparse.cpp.tab.c" break; case 670: if (!yytrial) #line 1676 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 11618 "asmparse.cpp.tab.c" +#line 10534 "asmparse.cpp.tab.c" break; case 671: if (!yytrial) #line 1677 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 11624 "asmparse.cpp.tab.c" +#line 10540 "asmparse.cpp.tab.c" break; case 672: if (!yytrial) #line 1678 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 11630 "asmparse.cpp.tab.c" +#line 10546 "asmparse.cpp.tab.c" break; case 673: if (!yytrial) #line 1679 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 11636 "asmparse.cpp.tab.c" +#line 10552 "asmparse.cpp.tab.c" break; case 674: if (!yytrial) #line 1680 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 11642 "asmparse.cpp.tab.c" +#line 10558 "asmparse.cpp.tab.c" break; case 675: if (!yytrial) #line 1681 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 11648 "asmparse.cpp.tab.c" +#line 10564 "asmparse.cpp.tab.c" break; case 676: if (!yytrial) #line 1682 "asmparse.y" { yyval.int32 = VT_CF; } -#line 11654 "asmparse.cpp.tab.c" +#line 10570 "asmparse.cpp.tab.c" break; case 677: if (!yytrial) #line 1683 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 11660 "asmparse.cpp.tab.c" +#line 10576 "asmparse.cpp.tab.c" break; case 678: if (!yytrial) @@ -11664,126 +10580,126 @@ case 678: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 11668 "asmparse.cpp.tab.c" +#line 10584 "asmparse.cpp.tab.c" break; case 679: if (!yytrial) #line 1689 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 11675 "asmparse.cpp.tab.c" +#line 10591 "asmparse.cpp.tab.c" break; case 680: if (!yytrial) #line 1691 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11682 "asmparse.cpp.tab.c" +#line 10598 "asmparse.cpp.tab.c" break; case 681: if (!yytrial) #line 1693 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 11689 "asmparse.cpp.tab.c" +#line 10605 "asmparse.cpp.tab.c" break; case 682: if (!yytrial) #line 1695 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 11696 "asmparse.cpp.tab.c" +#line 10612 "asmparse.cpp.tab.c" break; case 683: if (!yytrial) #line 1697 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11703 "asmparse.cpp.tab.c" +#line 10619 "asmparse.cpp.tab.c" break; case 684: if (!yytrial) #line 1699 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 11710 "asmparse.cpp.tab.c" +#line 10626 "asmparse.cpp.tab.c" break; case 685: if (!yytrial) #line 1701 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 11717 "asmparse.cpp.tab.c" +#line 10633 "asmparse.cpp.tab.c" break; case 686: if (!yytrial) #line 1703 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 11724 "asmparse.cpp.tab.c" +#line 10640 "asmparse.cpp.tab.c" break; case 687: if (!yytrial) #line 1705 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11731 "asmparse.cpp.tab.c" +#line 10647 "asmparse.cpp.tab.c" break; case 688: if (!yytrial) #line 1707 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 11738 "asmparse.cpp.tab.c" +#line 10654 "asmparse.cpp.tab.c" break; case 689: if (!yytrial) #line 1709 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 11745 "asmparse.cpp.tab.c" +#line 10661 "asmparse.cpp.tab.c" break; case 690: if (!yytrial) #line 1711 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 11752 "asmparse.cpp.tab.c" +#line 10668 "asmparse.cpp.tab.c" break; case 691: if (!yytrial) #line 1713 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11759 "asmparse.cpp.tab.c" +#line 10675 "asmparse.cpp.tab.c" break; case 692: if (!yytrial) #line 1715 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 11766 "asmparse.cpp.tab.c" +#line 10682 "asmparse.cpp.tab.c" break; case 693: if (!yytrial) #line 1717 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 11773 "asmparse.cpp.tab.c" +#line 10689 "asmparse.cpp.tab.c" break; case 694: if (!yytrial) #line 1719 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 11780 "asmparse.cpp.tab.c" +#line 10696 "asmparse.cpp.tab.c" break; case 695: if (!yytrial) #line 1721 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 11787 "asmparse.cpp.tab.c" +#line 10703 "asmparse.cpp.tab.c" break; case 696: if (!yytrial) @@ -11794,96 +10710,90 @@ case 696: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 11798 "asmparse.cpp.tab.c" +#line 10714 "asmparse.cpp.tab.c" break; case 697: if (!yytrial) #line 1732 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 11804 "asmparse.cpp.tab.c" +#line 10720 "asmparse.cpp.tab.c" break; case 698: if (!yytrial) #line 1733 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 11810 "asmparse.cpp.tab.c" +#line 10726 "asmparse.cpp.tab.c" break; case 699: if (!yytrial) #line 1734 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 11816 "asmparse.cpp.tab.c" +#line 10732 "asmparse.cpp.tab.c" break; case 700: if (!yytrial) #line 1735 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 11822 "asmparse.cpp.tab.c" +#line 10738 "asmparse.cpp.tab.c" break; case 701: if (!yytrial) #line 1736 "asmparse.y" -{ yyval.binstr = parser->MakeConstTypeClass(yyvsp[0].binstr); } -#line 11828 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10744 "asmparse.cpp.tab.c" break; case 702: if (!yytrial) #line 1737 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 11834 "asmparse.cpp.tab.c" +{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } +#line 10750 "asmparse.cpp.tab.c" break; case 703: if (!yytrial) #line 1738 "asmparse.y" -{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 11840 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 10756 "asmparse.cpp.tab.c" break; case 704: if (!yytrial) #line 1739 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 11846 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 10762 "asmparse.cpp.tab.c" break; case 705: if (!yytrial) #line 1740 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 11852 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 10768 "asmparse.cpp.tab.c" break; case 706: if (!yytrial) #line 1741 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 11858 "asmparse.cpp.tab.c" -break; -case 707: - if (!yytrial) -#line 1742 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 11865 "asmparse.cpp.tab.c" +#line 10775 "asmparse.cpp.tab.c" break; -case 708: +case 707: if (!yytrial) -#line 1744 "asmparse.y" +#line 1743 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 11872 "asmparse.cpp.tab.c" +#line 10782 "asmparse.cpp.tab.c" break; -case 709: +case 708: if (!yytrial) -#line 1747 "asmparse.y" +#line 1746 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 11883 "asmparse.cpp.tab.c" +#line 10793 "asmparse.cpp.tab.c" break; -case 710: +case 709: if (!yytrial) -#line 1753 "asmparse.y" +#line 1752 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -11891,49 +10801,49 @@ case 710: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 11895 "asmparse.cpp.tab.c" +#line 10805 "asmparse.cpp.tab.c" break; -case 711: +case 710: if (!yytrial) -#line 1760 "asmparse.y" +#line 1759 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 11903 "asmparse.cpp.tab.c" +#line 10813 "asmparse.cpp.tab.c" break; -case 712: +case 711: if (!yytrial) -#line 1763 "asmparse.y" +#line 1762 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 11914 "asmparse.cpp.tab.c" +#line 10824 "asmparse.cpp.tab.c" break; -case 713: +case 712: if (!yytrial) -#line 1769 "asmparse.y" +#line 1768 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 11922 "asmparse.cpp.tab.c" +#line 10832 "asmparse.cpp.tab.c" break; -case 714: +case 713: if (!yytrial) -#line 1772 "asmparse.y" +#line 1771 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 11933 "asmparse.cpp.tab.c" +#line 10843 "asmparse.cpp.tab.c" break; -case 715: +case 714: if (!yytrial) -#line 1778 "asmparse.y" +#line 1777 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -11949,11 +10859,11 @@ case 715: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11953 "asmparse.cpp.tab.c" +#line 10863 "asmparse.cpp.tab.c" break; -case 716: +case 715: if (!yytrial) -#line 1793 "asmparse.y" +#line 1792 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -11969,11 +10879,11 @@ case 716: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11973 "asmparse.cpp.tab.c" +#line 10883 "asmparse.cpp.tab.c" break; -case 717: +case 716: if (!yytrial) -#line 1808 "asmparse.y" +#line 1807 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -11989,11 +10899,11 @@ case 717: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11993 "asmparse.cpp.tab.c" +#line 10903 "asmparse.cpp.tab.c" break; -case 718: +case 717: if (!yytrial) -#line 1823 "asmparse.y" +#line 1822 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -12009,924 +10919,924 @@ case 718: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 12013 "asmparse.cpp.tab.c" +#line 10923 "asmparse.cpp.tab.c" +break; +case 718: + if (!yytrial) +#line 1837 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 10929 "asmparse.cpp.tab.c" break; case 719: if (!yytrial) #line 1838 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 12019 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } +#line 10935 "asmparse.cpp.tab.c" break; case 720: if (!yytrial) #line 1839 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 12025 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } +#line 10941 "asmparse.cpp.tab.c" break; case 721: if (!yytrial) #line 1840 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 12031 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 10947 "asmparse.cpp.tab.c" break; case 722: if (!yytrial) #line 1841 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 12037 "asmparse.cpp.tab.c" +#line 10953 "asmparse.cpp.tab.c" break; case 723: if (!yytrial) #line 1842 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 12043 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[0].binstr; } +#line 10959 "asmparse.cpp.tab.c" break; case 724: if (!yytrial) #line 1843 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 12049 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 10965 "asmparse.cpp.tab.c" break; case 725: if (!yytrial) -#line 1844 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 12055 "asmparse.cpp.tab.c" +#line 1846 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } +#line 10971 "asmparse.cpp.tab.c" break; case 726: if (!yytrial) #line 1847 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 12061 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } +#line 10977 "asmparse.cpp.tab.c" break; case 727: if (!yytrial) #line 1848 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 12067 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 10983 "asmparse.cpp.tab.c" break; case 728: if (!yytrial) #line 1849 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 12073 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } +#line 10989 "asmparse.cpp.tab.c" break; case 729: if (!yytrial) #line 1850 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 12079 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } +#line 10995 "asmparse.cpp.tab.c" break; case 730: if (!yytrial) #line 1851 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 12085 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } +#line 11001 "asmparse.cpp.tab.c" break; case 731: if (!yytrial) #line 1852 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 12091 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } +#line 11007 "asmparse.cpp.tab.c" break; case 732: if (!yytrial) #line 1853 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 12097 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } +#line 11013 "asmparse.cpp.tab.c" break; case 733: if (!yytrial) #line 1854 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 12103 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } +#line 11019 "asmparse.cpp.tab.c" break; case 734: if (!yytrial) #line 1855 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 12109 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11025 "asmparse.cpp.tab.c" break; case 735: if (!yytrial) #line 1856 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 12115 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11031 "asmparse.cpp.tab.c" break; case 736: if (!yytrial) #line 1857 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 12121 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11037 "asmparse.cpp.tab.c" break; case 737: if (!yytrial) #line 1858 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 12127 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11043 "asmparse.cpp.tab.c" break; case 738: if (!yytrial) #line 1859 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 12133 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11049 "asmparse.cpp.tab.c" break; case 739: if (!yytrial) #line 1860 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 12139 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11055 "asmparse.cpp.tab.c" break; case 740: if (!yytrial) #line 1861 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 12145 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11061 "asmparse.cpp.tab.c" break; case 741: if (!yytrial) #line 1862 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 12151 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11067 "asmparse.cpp.tab.c" break; case 742: if (!yytrial) #line 1863 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 12157 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } +#line 11073 "asmparse.cpp.tab.c" break; case 743: if (!yytrial) -#line 1864 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 12163 "asmparse.cpp.tab.c" +#line 1866 "asmparse.y" +{ yyval.binstr = yyvsp[0].binstr; } +#line 11079 "asmparse.cpp.tab.c" break; case 744: if (!yytrial) #line 1867 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 12169 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } +#line 11085 "asmparse.cpp.tab.c" break; case 745: if (!yytrial) -#line 1868 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 12175 "asmparse.cpp.tab.c" +#line 1870 "asmparse.y" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11091 "asmparse.cpp.tab.c" break; case 746: if (!yytrial) #line 1871 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 12181 "asmparse.cpp.tab.c" +#line 11097 "asmparse.cpp.tab.c" break; case 747: if (!yytrial) #line 1872 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 12187 "asmparse.cpp.tab.c" +{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } +#line 11103 "asmparse.cpp.tab.c" break; case 748: if (!yytrial) #line 1873 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 12193 "asmparse.cpp.tab.c" -break; -case 749: - if (!yytrial) -#line 1874 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 12201 "asmparse.cpp.tab.c" +#line 11111 "asmparse.cpp.tab.c" break; -case 750: +case 749: if (!yytrial) -#line 1877 "asmparse.y" +#line 1876 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 12207 "asmparse.cpp.tab.c" +#line 11117 "asmparse.cpp.tab.c" break; -case 751: +case 750: if (!yytrial) -#line 1882 "asmparse.y" +#line 1881 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 12213 "asmparse.cpp.tab.c" +#line 11123 "asmparse.cpp.tab.c" break; -case 752: +case 751: if (!yytrial) -#line 1884 "asmparse.y" +#line 1883 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 12219 "asmparse.cpp.tab.c" +#line 11129 "asmparse.cpp.tab.c" break; -case 753: +case 752: if (!yytrial) -#line 1885 "asmparse.y" +#line 1884 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 12225 "asmparse.cpp.tab.c" +#line 11135 "asmparse.cpp.tab.c" break; -case 754: +case 753: if (!yytrial) -#line 1886 "asmparse.y" +#line 1885 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 12231 "asmparse.cpp.tab.c" +#line 11141 "asmparse.cpp.tab.c" break; -case 755: +case 754: if (!yytrial) -#line 1888 "asmparse.y" +#line 1887 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 12237 "asmparse.cpp.tab.c" +#line 11147 "asmparse.cpp.tab.c" break; -case 756: +case 755: if (!yytrial) -#line 1890 "asmparse.y" +#line 1889 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 12248 "asmparse.cpp.tab.c" +#line 11158 "asmparse.cpp.tab.c" +break; +case 756: + if (!yytrial) +#line 1897 "asmparse.y" +{ yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} +#line 11164 "asmparse.cpp.tab.c" break; case 757: if (!yytrial) #line 1898 "asmparse.y" -{ yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 12254 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } +#line 11170 "asmparse.cpp.tab.c" break; case 758: if (!yytrial) #line 1899 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 12260 "asmparse.cpp.tab.c" +{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } +#line 11176 "asmparse.cpp.tab.c" break; case 759: if (!yytrial) -#line 1900 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 12266 "asmparse.cpp.tab.c" +#line 1903 "asmparse.y" +{ yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 11183 "asmparse.cpp.tab.c" break; case 760: if (!yytrial) -#line 1904 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); +#line 1906 "asmparse.y" +{ yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 12273 "asmparse.cpp.tab.c" +#line 11190 "asmparse.cpp.tab.c" break; case 761: if (!yytrial) -#line 1907 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } -#line 12280 "asmparse.cpp.tab.c" +#line 1910 "asmparse.y" +{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } +#line 11196 "asmparse.cpp.tab.c" break; case 762: if (!yytrial) -#line 1911 "asmparse.y" +#line 1912 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 12286 "asmparse.cpp.tab.c" +#line 11202 "asmparse.cpp.tab.c" break; case 763: if (!yytrial) -#line 1913 "asmparse.y" -{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 12292 "asmparse.cpp.tab.c" +#line 1915 "asmparse.y" +{ yyval.pair = yyvsp[0].pair; } +#line 11208 "asmparse.cpp.tab.c" break; case 764: if (!yytrial) #line 1916 "asmparse.y" -{ yyval.pair = yyvsp[0].pair; } -#line 12298 "asmparse.cpp.tab.c" +{ yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } +#line 11214 "asmparse.cpp.tab.c" break; case 765: if (!yytrial) -#line 1917 "asmparse.y" -{ yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 12304 "asmparse.cpp.tab.c" +#line 1919 "asmparse.y" +{ yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } +#line 11220 "asmparse.cpp.tab.c" break; case 766: if (!yytrial) -#line 1920 "asmparse.y" -{ yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 12310 "asmparse.cpp.tab.c" +#line 1922 "asmparse.y" +{ yyval.int32 = 1; } +#line 11226 "asmparse.cpp.tab.c" break; case 767: if (!yytrial) #line 1923 "asmparse.y" -{ yyval.int32 = 1; } -#line 12316 "asmparse.cpp.tab.c" -break; -case 768: - if (!yytrial) -#line 1924 "asmparse.y" { yyval.int32 = 0; } -#line 12322 "asmparse.cpp.tab.c" +#line 11232 "asmparse.cpp.tab.c" break; -case 769: +case 768: if (!yytrial) -#line 1927 "asmparse.y" +#line 1926 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 12330 "asmparse.cpp.tab.c" +#line 11240 "asmparse.cpp.tab.c" break; -case 770: +case 769: if (!yytrial) -#line 1930 "asmparse.y" +#line 1929 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 12338 "asmparse.cpp.tab.c" +#line 11248 "asmparse.cpp.tab.c" break; -case 771: +case 770: if (!yytrial) -#line 1933 "asmparse.y" +#line 1932 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 12346 "asmparse.cpp.tab.c" +#line 11256 "asmparse.cpp.tab.c" break; -case 772: +case 771: if (!yytrial) -#line 1936 "asmparse.y" +#line 1935 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 12355 "asmparse.cpp.tab.c" +#line 11265 "asmparse.cpp.tab.c" break; -case 773: +case 772: if (!yytrial) -#line 1940 "asmparse.y" +#line 1939 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 12366 "asmparse.cpp.tab.c" +#line 11276 "asmparse.cpp.tab.c" break; -case 774: +case 773: if (!yytrial) -#line 1946 "asmparse.y" +#line 1945 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 12377 "asmparse.cpp.tab.c" +#line 11287 "asmparse.cpp.tab.c" break; -case 775: +case 774: if (!yytrial) -#line 1952 "asmparse.y" +#line 1951 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 12388 "asmparse.cpp.tab.c" +#line 11298 "asmparse.cpp.tab.c" break; -case 776: +case 775: if (!yytrial) -#line 1958 "asmparse.y" +#line 1957 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 12399 "asmparse.cpp.tab.c" +#line 11309 "asmparse.cpp.tab.c" +break; +case 776: + if (!yytrial) +#line 1965 "asmparse.y" +{ yyval.secAct = dclRequest; } +#line 11315 "asmparse.cpp.tab.c" break; case 777: if (!yytrial) #line 1966 "asmparse.y" -{ yyval.secAct = dclRequest; } -#line 12405 "asmparse.cpp.tab.c" +{ yyval.secAct = dclDemand; } +#line 11321 "asmparse.cpp.tab.c" break; case 778: if (!yytrial) #line 1967 "asmparse.y" -{ yyval.secAct = dclDemand; } -#line 12411 "asmparse.cpp.tab.c" +{ yyval.secAct = dclAssert; } +#line 11327 "asmparse.cpp.tab.c" break; case 779: if (!yytrial) #line 1968 "asmparse.y" -{ yyval.secAct = dclAssert; } -#line 12417 "asmparse.cpp.tab.c" +{ yyval.secAct = dclDeny; } +#line 11333 "asmparse.cpp.tab.c" break; case 780: if (!yytrial) #line 1969 "asmparse.y" -{ yyval.secAct = dclDeny; } -#line 12423 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPermitOnly; } +#line 11339 "asmparse.cpp.tab.c" break; case 781: if (!yytrial) #line 1970 "asmparse.y" -{ yyval.secAct = dclPermitOnly; } -#line 12429 "asmparse.cpp.tab.c" +{ yyval.secAct = dclLinktimeCheck; } +#line 11345 "asmparse.cpp.tab.c" break; case 782: if (!yytrial) #line 1971 "asmparse.y" -{ yyval.secAct = dclLinktimeCheck; } -#line 12435 "asmparse.cpp.tab.c" +{ yyval.secAct = dclInheritanceCheck; } +#line 11351 "asmparse.cpp.tab.c" break; case 783: if (!yytrial) #line 1972 "asmparse.y" -{ yyval.secAct = dclInheritanceCheck; } -#line 12441 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestMinimum; } +#line 11357 "asmparse.cpp.tab.c" break; case 784: if (!yytrial) #line 1973 "asmparse.y" -{ yyval.secAct = dclRequestMinimum; } -#line 12447 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestOptional; } +#line 11363 "asmparse.cpp.tab.c" break; case 785: if (!yytrial) #line 1974 "asmparse.y" -{ yyval.secAct = dclRequestOptional; } -#line 12453 "asmparse.cpp.tab.c" +{ yyval.secAct = dclRequestRefuse; } +#line 11369 "asmparse.cpp.tab.c" break; case 786: if (!yytrial) #line 1975 "asmparse.y" -{ yyval.secAct = dclRequestRefuse; } -#line 12459 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPrejitGrant; } +#line 11375 "asmparse.cpp.tab.c" break; case 787: if (!yytrial) #line 1976 "asmparse.y" -{ yyval.secAct = dclPrejitGrant; } -#line 12465 "asmparse.cpp.tab.c" +{ yyval.secAct = dclPrejitDenied; } +#line 11381 "asmparse.cpp.tab.c" break; case 788: if (!yytrial) #line 1977 "asmparse.y" -{ yyval.secAct = dclPrejitDenied; } -#line 12471 "asmparse.cpp.tab.c" +{ yyval.secAct = dclNonCasDemand; } +#line 11387 "asmparse.cpp.tab.c" break; case 789: if (!yytrial) #line 1978 "asmparse.y" -{ yyval.secAct = dclNonCasDemand; } -#line 12477 "asmparse.cpp.tab.c" +{ yyval.secAct = dclNonCasLinkDemand; } +#line 11393 "asmparse.cpp.tab.c" break; case 790: if (!yytrial) #line 1979 "asmparse.y" -{ yyval.secAct = dclNonCasLinkDemand; } -#line 12483 "asmparse.cpp.tab.c" +{ yyval.secAct = dclNonCasInheritance; } +#line 11399 "asmparse.cpp.tab.c" break; case 791: if (!yytrial) -#line 1980 "asmparse.y" -{ yyval.secAct = dclNonCasInheritance; } -#line 12489 "asmparse.cpp.tab.c" +#line 1983 "asmparse.y" +{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 11405 "asmparse.cpp.tab.c" break; case 792: if (!yytrial) #line 1984 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 12495 "asmparse.cpp.tab.c" -break; -case 793: - if (!yytrial) -#line 1985 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 12501 "asmparse.cpp.tab.c" +#line 11411 "asmparse.cpp.tab.c" break; -case 794: +case 793: if (!yytrial) -#line 1988 "asmparse.y" +#line 1987 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 12509 "asmparse.cpp.tab.c" +#line 11419 "asmparse.cpp.tab.c" break; -case 795: +case 794: if (!yytrial) -#line 1991 "asmparse.y" +#line 1990 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 12516 "asmparse.cpp.tab.c" +#line 11426 "asmparse.cpp.tab.c" break; -case 796: +case 795: if (!yytrial) -#line 1993 "asmparse.y" +#line 1992 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 12524 "asmparse.cpp.tab.c" +#line 11434 "asmparse.cpp.tab.c" break; -case 797: +case 796: if (!yytrial) -#line 1996 "asmparse.y" +#line 1995 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 12531 "asmparse.cpp.tab.c" +#line 11441 "asmparse.cpp.tab.c" break; -case 798: +case 797: if (!yytrial) -#line 1999 "asmparse.y" +#line 1998 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 12539 "asmparse.cpp.tab.c" +#line 11449 "asmparse.cpp.tab.c" break; -case 799: +case 798: if (!yytrial) -#line 2003 "asmparse.y" +#line 2002 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 12546 "asmparse.cpp.tab.c" +#line 11456 "asmparse.cpp.tab.c" break; -case 800: +case 799: if (!yytrial) -#line 2006 "asmparse.y" +#line 2005 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 12554 "asmparse.cpp.tab.c" +#line 11464 "asmparse.cpp.tab.c" break; -case 801: +case 800: if (!yytrial) -#line 2010 "asmparse.y" +#line 2009 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 12561 "asmparse.cpp.tab.c" +#line 11471 "asmparse.cpp.tab.c" break; -case 802: +case 801: if (!yytrial) -#line 2013 "asmparse.y" +#line 2012 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 12569 "asmparse.cpp.tab.c" +#line 11479 "asmparse.cpp.tab.c" break; -case 803: +case 802: if (!yytrial) -#line 2017 "asmparse.y" +#line 2016 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 12576 "asmparse.cpp.tab.c" +#line 11486 "asmparse.cpp.tab.c" break; -case 804: +case 803: if (!yytrial) -#line 2019 "asmparse.y" +#line 2018 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 12584 "asmparse.cpp.tab.c" +#line 11494 "asmparse.cpp.tab.c" +break; +case 804: + if (!yytrial) +#line 2025 "asmparse.y" +{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } +#line 11500 "asmparse.cpp.tab.c" break; case 805: if (!yytrial) #line 2026 "asmparse.y" -{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 12590 "asmparse.cpp.tab.c" +{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } +#line 11506 "asmparse.cpp.tab.c" break; case 806: if (!yytrial) -#line 2027 "asmparse.y" -{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 12596 "asmparse.cpp.tab.c" +#line 2029 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0; } +#line 11512 "asmparse.cpp.tab.c" break; case 807: if (!yytrial) #line 2030 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } -#line 12602 "asmparse.cpp.tab.c" +{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } +#line 11518 "asmparse.cpp.tab.c" break; case 808: if (!yytrial) -#line 2031 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 12608 "asmparse.cpp.tab.c" +#line 2033 "asmparse.y" +{ yyval.fileAttr = (CorFileFlags) 0; } +#line 11524 "asmparse.cpp.tab.c" break; case 809: if (!yytrial) #line 2034 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } -#line 12614 "asmparse.cpp.tab.c" +{ yyval.fileAttr = (CorFileFlags) 0x80000000; } +#line 11530 "asmparse.cpp.tab.c" break; case 810: if (!yytrial) -#line 2035 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 12620 "asmparse.cpp.tab.c" +#line 2037 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 11536 "asmparse.cpp.tab.c" break; case 811: if (!yytrial) -#line 2038 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 12626 "asmparse.cpp.tab.c" +#line 2040 "asmparse.y" +{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } +#line 11542 "asmparse.cpp.tab.c" break; case 812: if (!yytrial) -#line 2041 "asmparse.y" -{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 12632 "asmparse.cpp.tab.c" +#line 2043 "asmparse.y" +{ yyval.asmAttr = (CorAssemblyFlags) 0; } +#line 11548 "asmparse.cpp.tab.c" break; case 813: if (!yytrial) #line 2044 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 12638 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } +#line 11554 "asmparse.cpp.tab.c" break; case 814: if (!yytrial) #line 2045 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 12644 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } +#line 11560 "asmparse.cpp.tab.c" break; case 815: if (!yytrial) #line 2046 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 12650 "asmparse.cpp.tab.c" +{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } +#line 11566 "asmparse.cpp.tab.c" break; case 816: if (!yytrial) #line 2047 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 12656 "asmparse.cpp.tab.c" +{ yyval.asmAttr = yyvsp[-2].asmAttr; } +#line 11572 "asmparse.cpp.tab.c" break; case 817: if (!yytrial) #line 2048 "asmparse.y" -{ yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 12662 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } +#line 11578 "asmparse.cpp.tab.c" break; case 818: if (!yytrial) #line 2049 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 12668 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } +#line 11584 "asmparse.cpp.tab.c" break; case 819: if (!yytrial) #line 2050 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 12674 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } +#line 11590 "asmparse.cpp.tab.c" break; case 820: if (!yytrial) #line 2051 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 12680 "asmparse.cpp.tab.c" +{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } +#line 11596 "asmparse.cpp.tab.c" break; case 821: if (!yytrial) #line 2052 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 12686 "asmparse.cpp.tab.c" -break; -case 822: - if (!yytrial) -#line 2053 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 12692 "asmparse.cpp.tab.c" +#line 11602 "asmparse.cpp.tab.c" break; -case 825: +case 824: if (!yytrial) -#line 2060 "asmparse.y" +#line 2059 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 12698 "asmparse.cpp.tab.c" +#line 11608 "asmparse.cpp.tab.c" +break; +case 827: + if (!yytrial) +#line 2064 "asmparse.y" +{ yyval.int32 = yyvsp[0].int32; } +#line 11614 "asmparse.cpp.tab.c" break; case 828: if (!yytrial) #line 2065 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 12704 "asmparse.cpp.tab.c" +{ yyval.int32 = 0xFFFF; } +#line 11620 "asmparse.cpp.tab.c" break; case 829: if (!yytrial) -#line 2066 "asmparse.y" -{ yyval.int32 = 0xFFFF; } -#line 12710 "asmparse.cpp.tab.c" +#line 2068 "asmparse.y" +{ PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } +#line 11626 "asmparse.cpp.tab.c" break; case 830: if (!yytrial) -#line 2069 "asmparse.y" -{ PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 12716 "asmparse.cpp.tab.c" +#line 2070 "asmparse.y" +{ PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } +#line 11632 "asmparse.cpp.tab.c" break; case 831: if (!yytrial) #line 2071 "asmparse.y" -{ PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 12722 "asmparse.cpp.tab.c" +{ yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } +#line 11638 "asmparse.cpp.tab.c" break; case 832: if (!yytrial) #line 2072 "asmparse.y" -{ yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 12728 "asmparse.cpp.tab.c" +{ PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } +#line 11644 "asmparse.cpp.tab.c" break; -case 833: +case 835: if (!yytrial) -#line 2073 "asmparse.y" -{ PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 12734 "asmparse.cpp.tab.c" +#line 2077 "asmparse.y" +{ bParsingByteArray = TRUE; } +#line 11650 "asmparse.cpp.tab.c" break; case 836: if (!yytrial) -#line 2078 "asmparse.y" +#line 2080 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12740 "asmparse.cpp.tab.c" +#line 11656 "asmparse.cpp.tab.c" break; case 837: if (!yytrial) -#line 2081 "asmparse.y" +#line 2083 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12746 "asmparse.cpp.tab.c" +#line 11662 "asmparse.cpp.tab.c" break; case 838: if (!yytrial) -#line 2084 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 12752 "asmparse.cpp.tab.c" -break; -case 839: - if (!yytrial) -#line 2088 "asmparse.y" +#line 2087 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 12758 "asmparse.cpp.tab.c" +#line 11668 "asmparse.cpp.tab.c" break; -case 840: +case 839: if (!yytrial) -#line 2090 "asmparse.y" +#line 2089 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 12764 "asmparse.cpp.tab.c" +#line 11674 "asmparse.cpp.tab.c" break; -case 843: +case 842: if (!yytrial) -#line 2097 "asmparse.y" +#line 2096 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 12770 "asmparse.cpp.tab.c" +#line 11680 "asmparse.cpp.tab.c" +break; +case 844: + if (!yytrial) +#line 2098 "asmparse.y" +{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } +#line 11686 "asmparse.cpp.tab.c" break; case 845: if (!yytrial) #line 2099 "asmparse.y" -{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 12776 "asmparse.cpp.tab.c" +{ PASMM->SetAssemblyAutodetect(); } +#line 11692 "asmparse.cpp.tab.c" break; case 846: if (!yytrial) -#line 2100 "asmparse.y" -{ PASMM->SetAssemblyAutodetect(); } -#line 12782 "asmparse.cpp.tab.c" +#line 2102 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} +#line 11698 "asmparse.cpp.tab.c" break; case 847: if (!yytrial) -#line 2103 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 12788 "asmparse.cpp.tab.c" +#line 2105 "asmparse.y" +{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } +#line 11704 "asmparse.cpp.tab.c" break; case 848: if (!yytrial) -#line 2106 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 12794 "asmparse.cpp.tab.c" +#line 2108 "asmparse.y" +{ yyval.exptAttr = (CorTypeAttr) 0; } +#line 11710 "asmparse.cpp.tab.c" break; case 849: if (!yytrial) #line 2109 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) 0; } -#line 12800 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } +#line 11716 "asmparse.cpp.tab.c" break; case 850: if (!yytrial) #line 2110 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 12806 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } +#line 11722 "asmparse.cpp.tab.c" break; case 851: if (!yytrial) #line 2111 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 12812 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } +#line 11728 "asmparse.cpp.tab.c" break; case 852: if (!yytrial) #line 2112 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 12818 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } +#line 11734 "asmparse.cpp.tab.c" break; case 853: if (!yytrial) #line 2113 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 12824 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } +#line 11740 "asmparse.cpp.tab.c" break; case 854: if (!yytrial) #line 2114 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 12830 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } +#line 11746 "asmparse.cpp.tab.c" break; case 855: if (!yytrial) #line 2115 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 12836 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } +#line 11752 "asmparse.cpp.tab.c" break; case 856: if (!yytrial) #line 2116 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 12842 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } +#line 11758 "asmparse.cpp.tab.c" break; case 857: if (!yytrial) #line 2117 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 12848 "asmparse.cpp.tab.c" +{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } +#line 11764 "asmparse.cpp.tab.c" break; -case 858: +case 860: if (!yytrial) -#line 2118 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 12854 "asmparse.cpp.tab.c" +#line 2124 "asmparse.y" +{ PASMM->SetComTypeFile(yyvsp[0].string); } +#line 11770 "asmparse.cpp.tab.c" break; case 861: if (!yytrial) #line 2125 "asmparse.y" -{ PASMM->SetComTypeFile(yyvsp[0].string); } -#line 12860 "asmparse.cpp.tab.c" +{ PASMM->SetComTypeComType(yyvsp[0].string); } +#line 11776 "asmparse.cpp.tab.c" break; case 862: if (!yytrial) #line 2126 "asmparse.y" -{ PASMM->SetComTypeComType(yyvsp[0].string); } -#line 12866 "asmparse.cpp.tab.c" +{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } +#line 11782 "asmparse.cpp.tab.c" break; case 863: if (!yytrial) #line 2127 "asmparse.y" -{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 12872 "asmparse.cpp.tab.c" -break; -case 864: - if (!yytrial) -#line 2128 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 12879 "asmparse.cpp.tab.c" +#line 11789 "asmparse.cpp.tab.c" break; -case 865: +case 864: if (!yytrial) -#line 2130 "asmparse.y" +#line 2129 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 12886 "asmparse.cpp.tab.c" +#line 11796 "asmparse.cpp.tab.c" break; -case 868: +case 867: if (!yytrial) -#line 2136 "asmparse.y" +#line 2135 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 12892 "asmparse.cpp.tab.c" +#line 11802 "asmparse.cpp.tab.c" break; -case 869: +case 868: if (!yytrial) -#line 2138 "asmparse.y" +#line 2137 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 12898 "asmparse.cpp.tab.c" +#line 11808 "asmparse.cpp.tab.c" break; -case 870: +case 869: if (!yytrial) -#line 2141 "asmparse.y" +#line 2140 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 12904 "asmparse.cpp.tab.c" +#line 11814 "asmparse.cpp.tab.c" break; -case 871: +case 870: if (!yytrial) -#line 2142 "asmparse.y" +#line 2141 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 12910 "asmparse.cpp.tab.c" +#line 11820 "asmparse.cpp.tab.c" break; -case 872: +case 871: if (!yytrial) -#line 2143 "asmparse.y" +#line 2142 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 12916 "asmparse.cpp.tab.c" +#line 11826 "asmparse.cpp.tab.c" break; -case 875: +case 874: if (!yytrial) -#line 2150 "asmparse.y" +#line 2149 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 12922 "asmparse.cpp.tab.c" +#line 11832 "asmparse.cpp.tab.c" break; -case 876: +case 875: if (!yytrial) -#line 2151 "asmparse.y" +#line 2150 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 12928 "asmparse.cpp.tab.c" +#line 11838 "asmparse.cpp.tab.c" break; -#line 12930 "asmparse.cpp.tab.c" +#line 11840 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 543f578208ca6..e5b891cc2e806 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -1677,7 +1677,6 @@ BYTE* skipType(BYTE* ptr) case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_CLASS : - case ELEMENT_TYPE_CONSTTYPE : ptr += CorSigUncompressToken(ptr, &tk); break; case ELEMENT_TYPE_CTARG : diff --git a/src/coreclr/inc/corhdr.h b/src/coreclr/inc/corhdr.h index 32a806c0737e7..01c4bdda75c1b 100644 --- a/src/coreclr/inc/corhdr.h +++ b/src/coreclr/inc/corhdr.h @@ -915,10 +915,9 @@ typedef enum CorElementType ELEMENT_TYPE_CVAR = 0x22, // a class const type variable CVAR ELEMENT_TYPE_MCVAR = 0x23, // a method const type variable MCVAR - ELEMENT_TYPE_CONSTTYPE = 0x24, // const - ELEMENT_TYPE_CTARG = 0x25, // const + ELEMENT_TYPE_CTARG = 0x24, // const // Note that this is the max of base type excluding modifiers - ELEMENT_TYPE_MAX = 0x26, // first invalid element type + ELEMENT_TYPE_MAX = 0x25, // first invalid element type ELEMENT_TYPE_MODIFIER = 0x40, diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index 293d6088c99ba..c3adcc37bc957 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -604,10 +604,6 @@ PCCOR_SIGNATURE PrettyPrintType( case ELEMENT_TYPE_CLASS : str = "class "; goto DO_CLASS; - case ELEMENT_TYPE_CONSTTYPE : - appendStr(out, KEYWORD("const ")); - Reiterate = TRUE; - break; case ELEMENT_TYPE_CTARG : appendStr(out, KEYWORD("const ")); Reiterate = TRUE; From 8ebd325f09b52507dcaf05b5a0a453a439100b1f Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 16:00:42 +0900 Subject: [PATCH 14/80] Fix a bug where CorSigUncompressConstTypeArgData shifts dataPtr by mistake --- src/coreclr/ilasm/grammar_after.cpp | 2 +- src/coreclr/inc/cor.h | 5 +++-- src/coreclr/inc/formattype.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 50c913f5bcb0d..3f6f8e1bda433 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1406,7 +1406,7 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) // ptr = skipType(ptr, fFixupType); // break goto AGAIN; - + case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: case ELEMENT_TYPE_CVAR: diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index 1406ad708ae96..d43ece2c1173f 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -1815,7 +1815,8 @@ FORCEINLINE ULONG CorSigUncompressData( return CorSigUncompressBigData(pData); } -inline ULONG CorSigUncompressConstTypeArgData(PCCOR_SIGNATURE & pData) +inline ULONG CorSigUncompressConstTypeArgData( + PCCOR_SIGNATURE & pData) // [IN,OUT] compressed const type argument data { ULONG size = 1; switch (*pData++) @@ -1848,7 +1849,7 @@ inline ULONG CorSigUncompressConstTypeArgData(PCCOR_SIGNATURE & pData) size = 0; break; } - pData += size; + return size; } diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index c3adcc37bc957..e23abb8675ed0 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -592,8 +592,8 @@ PCCOR_SIGNATURE PrettyPrintType( HasData = FALSE; appendChar(out, '('); typePtr--; - ULONG size = CorSigUncompressConstTypeArgData(typePtr); - appendStrBlob(out, (CorElementType)typ, typePtr - size, size); + ULONG len = CorSigUncompressConstTypeArgData(typePtr); + appendStrBlob(out, (CorElementType)typ, typePtr, len); appendChar(out, ')'); } break; From 15d0a2cfa569480d69e3b4d312f295eaa0608bde Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 16:11:52 +0900 Subject: [PATCH 15/80] Fix ldctarg def --- src/coreclr/inc/opcode.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 5dd47e7374249..e5d9684504546 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -299,7 +299,7 @@ OPDEF(CEE_CLT, "clt", Pop1+Pop1, Pu OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) -OPDEF(CEE_LDCTARG, "ldctarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFF, 0x08, NEXT) +OPDEF(CEE_LDCTARG, "ldctarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFE, 0x08, NEXT) OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) From a34f4bfd73edd9c875dc336f9e44f9cac4cd40fb Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 16:30:50 +0900 Subject: [PATCH 16/80] Fix the missing data len addition to typePtr --- src/coreclr/inc/formattype.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index e23abb8675ed0..7c19500373c69 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -595,6 +595,7 @@ PCCOR_SIGNATURE PrettyPrintType( ULONG len = CorSigUncompressConstTypeArgData(typePtr); appendStrBlob(out, (CorElementType)typ, typePtr, len); appendChar(out, ')'); + typePtr += len; } break; From c51378dd41ca772ea26a5b0c43fbbdea8d13d485 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 19:45:00 +0900 Subject: [PATCH 17/80] Bump metamodel version to v3.0 and add fallback schema for v2.0 --- src/coreclr/inc/metamodelpub.h | 44 ++++++++++++++++++++ src/coreclr/jit/utils.cpp | 4 ++ src/coreclr/md/inc/metamodel.h | 15 +++---- src/coreclr/md/runtime/metamodel.cpp | 18 +++++++- src/coreclr/md/runtime/metamodelcolumndefs.h | 13 +++++- src/coreclr/vm/stubgen.cpp | 4 ++ 6 files changed, 89 insertions(+), 9 deletions(-) diff --git a/src/coreclr/inc/metamodelpub.h b/src/coreclr/inc/metamodelpub.h index 206369d3d9d1d..6f4894bc13d81 100644 --- a/src/coreclr/inc/metamodelpub.h +++ b/src/coreclr/inc/metamodelpub.h @@ -1446,6 +1446,50 @@ class GenericParamRec } }; +// this definition is for reading the old GenericParamRec from a v2.0 assembly. +class GenericParamV2_0Rec +{ +METADATA_FIELDS_PROTECTION: + USHORT m_Number; // index; zero = first var + USHORT m_Flags; // index; zero = first var +public: + enum { + + COL_Number, // index; zero = first var + COL_Flags, // flags, for future use + COL_Owner, // typeDef/methodDef + COL_Name, // Purely descriptive, not used for binding purposes + COL_COUNT, + COL_KEY = COL_Owner + }; + + USHORT GetNumber() + { + LIMITED_METHOD_CONTRACT; + + return GET_UNALIGNED_VAL16(&m_Number); + } + void SetNumber(USHORT Number) + { + LIMITED_METHOD_CONTRACT; + + m_Number = VAL16(Number); + } + + USHORT GetFlags() + { + LIMITED_METHOD_CONTRACT; + + return GET_UNALIGNED_VAL16(&m_Flags); + } + void SetFlags(USHORT Flags) + { + LIMITED_METHOD_CONTRACT; + + m_Flags = VAL16(Flags); + } +}; + // @todo: this definition is for reading the old (and wrong) GenericParamRec from a // Beta1 assembly. class GenericParamV1_1Rec diff --git a/src/coreclr/jit/utils.cpp b/src/coreclr/jit/utils.cpp index df5b9710aea6b..b28a98cf19b0b 100644 --- a/src/coreclr/jit/utils.cpp +++ b/src/coreclr/jit/utils.cpp @@ -33,7 +33,9 @@ const signed char opcodeSizes[] = { #define InlineNone_size 0 #define ShortInlineVar_size 1 + #define ShortInlineTypeVar_size 2 #define InlineVar_size 2 + #define InlineTypeVar_size 4 #define ShortInlineI_size 1 #define InlineI_size 4 #define InlineI8_size 8 @@ -58,7 +60,9 @@ const signed char opcodeSizes[] = #undef InlineNone_size #undef ShortInlineVar_size + #undef ShortInlineTypeVar_size #undef InlineVar_size + #undef InlineTypeVar_size #undef ShortInlineI_size #undef InlineI_size #undef InlineI8_size diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index 043e24d60c351..78ed57dfbf839 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -37,11 +37,11 @@ #define METAMODEL_MAJOR_VER_V2_0 2 // Major version for v2.0 #define METAMODEL_MINOR_VER_V2_0 0 // Minor version for v2.0 -#define METAMODEL_MAJOR_VER_V2_1 2 // Major version for v2.1 -#define METAMODEL_MINOR_VER_V2_1 1 // Minor version for v2.1 +#define METAMODEL_MAJOR_VER_V3_0 3 // Major version for v3.0 +#define METAMODEL_MINOR_VER_V3_0 0 // Minor version for v3.0 -#define METAMODEL_MAJOR_VER 2 -#define METAMODEL_MINOR_VER 1 +#define METAMODEL_MAJOR_VER 3 +#define METAMODEL_MINOR_VER 0 // Metadata version number up through Whidbey Beta2 #define METAMODEL_MAJOR_VER_B1 1 @@ -52,9 +52,10 @@ typedef enum MetadataVersion { MDVersion1 = 0x00000001, MDVersion2 = 0x00000002, + MDVersion3 = 0x00000003, // @TODO - this value should be updated when we increase the version number - MDDefaultVersion = 0x00000002 + MDDefaultVersion = 0x00000003 } MetadataVersion; @@ -2022,8 +2023,8 @@ template class CMiniMdTemplate : public CMiniMdBase BOOL SupportsConstGenerics() { // Only 2.1 of the metadata support const generics - return (m_Schema.m_major > METAMODEL_MAJOR_VER_V2_1 || - (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_1 && m_Schema.m_minor >= METAMODEL_MINOR_VER_V2_1)); + return (m_Schema.m_major >= METAMODEL_MAJOR_VER_V3_0 || + (m_Schema.m_major == METAMODEL_MAJOR_VER_V3_0 && m_Schema.m_minor >= METAMODEL_MINOR_VER_V3_0)); }// SupportsConstGenerics protected: diff --git a/src/coreclr/md/runtime/metamodel.cpp b/src/coreclr/md/runtime/metamodel.cpp index 3cbc82b6a50a7..a294f1f457bde 100644 --- a/src/coreclr/md/runtime/metamodel.cpp +++ b/src/coreclr/md/runtime/metamodel.cpp @@ -108,7 +108,7 @@ const CMiniTableDefEx g_Tables[TBL_COUNT] = { // Define a table descriptor for the obsolete v1.0 GenericParam table definition. const CMiniTableDefEx g_Table_GenericParamV1_1 = { { rGenericParamV1_1Cols, ARRAY_SIZE(rGenericParamV1_1Cols), GenericParamV1_1Rec::COL_KEY, 0 }, rGenericParamV1_1ColNames, "GenericParamV1_"}; - +const CMiniTableDefEx g_Table_GenericParamV2_0 = { { rGenericParamV2_0Cols, ARRAY_SIZE(rGenericParamV2_0Cols), GenericParamV2_0Rec::COL_KEY, 0 }, rGenericParamV2_0ColNames, "GenericParamV2_0"}; // Define the array of Ptr Tables. This is initialized to TBL_COUNT here. @@ -144,6 +144,11 @@ CMiniMdSchema::InitNew( m_major = METAMODEL_MAJOR_VER; m_minor = METAMODEL_MINOR_VER; } + else if (mdVersion == MDVersion3) + { + m_major = METAMODEL_MAJOR_VER; + m_minor = METAMODEL_MINOR_VER; + } else { return E_INVALIDARG; @@ -562,6 +567,13 @@ CMiniMdBase::SchemaPopulate( m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV1_1.m_Def; m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); } + else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && + (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0)) + { + // 2.0 had a different type of GenericParam table + m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV2_0.m_Def; + m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); + } else { // We don't support this version of the metadata Debug_ReportError("Unsupported version of MetaData."); @@ -696,6 +708,10 @@ CMiniMdBase::GetTableDefTemplate( { pTemplate = &g_Table_GenericParamV1_1.m_Def; } + else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0) && (ixTbl == TBL_GenericParam)) + { + pTemplate = &g_Table_GenericParamV2_0.m_Def; + } else { pTemplate = &g_Tables[ixTbl].m_Def; diff --git a/src/coreclr/md/runtime/metamodelcolumndefs.h b/src/coreclr/md/runtime/metamodelcolumndefs.h index 05ca7c82bcde6..b494c11335fbc 100644 --- a/src/coreclr/md/runtime/metamodelcolumndefs.h +++ b/src/coreclr/md/runtime/metamodelcolumndefs.h @@ -7,9 +7,11 @@ // //***************************************************************************** +#if METAMODEL_MAJOR_VER != 3 #if METAMODEL_MAJOR_VER != 2 #if METAMODEL_MAJOR_VER != 1 -#error "METAMODEL_MAJOR_VER other than 1 or 2 is not implemented" +#error "METAMODEL_MAJOR_VER other than 1, 2 or 3 is not implemented" +#endif #endif #endif // @@ -370,6 +372,15 @@ SCHEMA_ITEM_STRING(GenericParam, Name) SCHEMA_ITEM_CDTKN(GenericParam, Type, TypeDefOrRef) SCHEMA_TABLE_END(GenericParam) + + //------------------------------------------------------------------------- + // Transitional table for Metadata v2.0 for GenericParam + SCHEMA_TABLE_START(GenericParamV2_0) + SCHEMA_ITEM(GenericParam, USHORT, Number) + SCHEMA_ITEM(GenericParam, USHORT, Flags) + SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) + SCHEMA_ITEM_STRING(GenericParam, Name) + SCHEMA_TABLE_END(GenericParam) //------------------------------------------------------------------------- // Transitional table for Metadata v1.1 for GenericParam diff --git a/src/coreclr/vm/stubgen.cpp b/src/coreclr/vm/stubgen.cpp index 78e7fb621c90d..876a667b7b7d4 100644 --- a/src/coreclr/vm/stubgen.cpp +++ b/src/coreclr/vm/stubgen.cpp @@ -213,6 +213,7 @@ static const BYTE s_rgbOpcodeSizes[] = ((l) + (oprType)), #define InlineNone 0 +#define ShortInlineTypeVar 2 #define ShortInlineVar 1 #define ShortInlineI 1 #define InlineI 4 @@ -228,12 +229,14 @@ static const BYTE s_rgbOpcodeSizes[] = #define InlineString 4 #define InlineField 4 #define InlineTok 4 +#define InlineTypeVar 4 #define InlineVar 2 #include "opcode.def" #undef OPDEF #undef InlineNone +#undef ShortInlineTypeVar #undef ShortInlineVar #undef ShortInlineI #undef InlineI @@ -249,6 +252,7 @@ static const BYTE s_rgbOpcodeSizes[] = #undef InlineString #undef InlineField #undef InlineTok +#undef InlineTypeVar #undef InlineVar }; From e247c0edab0a68cb71596e753490d81e16b9a404 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 23 Jul 2023 21:40:48 +0900 Subject: [PATCH 18/80] Load assembly in VM --- src/coreclr/inc/corinfo.h | 2 ++ src/coreclr/inc/cortypeinfo.h | 4 ++++ src/coreclr/vm/jitinterface.cpp | 4 ++++ src/coreclr/vm/siginfo.cpp | 4 ++++ 4 files changed, 14 insertions(+) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 25634caea84e1..e799ef8448b43 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -718,6 +718,8 @@ enum CorInfoType // the JIT in "import only" mode. CORINFO_TYPE_VAR = 0x16, + CORINFO_TYPE_CVAR = 0x17, + CORINFO_TYPE_CTARG = 0x18, CORINFO_TYPE_COUNT, // number of jit types }; diff --git a/src/coreclr/inc/cortypeinfo.h b/src/coreclr/inc/cortypeinfo.h index 87d960301b64b..e3f1756599484 100644 --- a/src/coreclr/inc/cortypeinfo.h +++ b/src/coreclr/inc/cortypeinfo.h @@ -54,3 +54,7 @@ TYPEINFO(ELEMENT_TYPE_MVAR, NULL, NULL, TARGET_POINTER_SI TYPEINFO(ELEMENT_TYPE_CMOD_REQD, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false) // 0x1f TYPEINFO(ELEMENT_TYPE_CMOD_OPT, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false) // 0x20 TYPEINFO(ELEMENT_TYPE_INTERNAL, NULL, NULL, 0, TYPE_GC_OTHER, false, false, false, false, false) // 0x21 + +TYPEINFO(ELEMENT_TYPE_CVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x22 +TYPEINFO(ELEMENT_TYPE_MCVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x23 +TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x24 diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index b7dcf9eacd88e..b80953bcc7233 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -416,6 +416,10 @@ CorInfoType CEEInfo::asCorInfoType(CorElementType eeType, CORINFO_TYPE_UNDEF, // CMOD_REQD CORINFO_TYPE_UNDEF, // CMOD_OPT CORINFO_TYPE_UNDEF, // INTERNAL + + CORINFO_TYPE_CVAR, // CVAR + CORINFO_TYPE_CVAR, // MCVAR + CORINFO_TYPE_CTARG // CTARG }; _ASSERTE(sizeof(map) == ELEMENT_TYPE_MAX); diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 0d1e161c559e6..c2c9e32a59f61 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -126,6 +126,10 @@ DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_MVAR, -1, TYPE_GC DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CMOD_REQD, -1, TYPE_GC_NONE, 1) DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CMOD_OPT, -1, TYPE_GC_NONE, 1) DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_INTERNAL, -1, TYPE_GC_NONE, 0) + +DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CVAR, -1, TYPE_GC_OTHER, 1) +DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_MCVAR, -1, TYPE_GC_OTHER, 1) +DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CTARG, -1, TYPE_GC_OTHER, 0) }; unsigned GetSizeForCorElementType(CorElementType etyp) From 14de598eb9625d8f3d2fc3e672fd389378e9e3b4 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 24 Jul 2023 16:12:48 +0900 Subject: [PATCH 19/80] Back-compat fixes and add some helpers for const generics --- src/coreclr/inc/cortypeinfo.h | 2 +- src/coreclr/inc/metadata.h | 2 +- src/coreclr/inc/sigparser.h | 19 ++++++++ src/coreclr/md/compiler/import.cpp | 2 +- src/coreclr/md/enc/mdinternalrw.cpp | 4 +- src/coreclr/md/inc/mdinternalrw.h | 2 +- src/coreclr/md/runtime/mdinternalro.cpp | 6 ++- src/coreclr/md/runtime/mdinternalro.h | 2 +- src/coreclr/vm/typedesc.cpp | 6 +++ src/coreclr/vm/typedesc.h | 3 ++ src/coreclr/vm/typehandle.cpp | 6 +++ src/coreclr/vm/typehandle.h | 3 ++ src/coreclr/vm/typestring.cpp | 60 ++++++++++++++++++++++++- 13 files changed, 107 insertions(+), 10 deletions(-) diff --git a/src/coreclr/inc/cortypeinfo.h b/src/coreclr/inc/cortypeinfo.h index e3f1756599484..d06a146ec94e9 100644 --- a/src/coreclr/inc/cortypeinfo.h +++ b/src/coreclr/inc/cortypeinfo.h @@ -57,4 +57,4 @@ TYPEINFO(ELEMENT_TYPE_INTERNAL, NULL, NULL, 0, TYPEINFO(ELEMENT_TYPE_CVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x22 TYPEINFO(ELEMENT_TYPE_MCVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x23 -TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x24 +TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, false) // 0x24 diff --git a/src/coreclr/inc/metadata.h b/src/coreclr/inc/metadata.h index 766893bea17b8..5721272882ad4 100644 --- a/src/coreclr/inc/metadata.h +++ b/src/coreclr/inc/metadata.h @@ -1023,7 +1023,7 @@ DECLARE_INTERFACE_(IMDInternalImport, IUnknown) ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) + mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) LPCSTR *szName) PURE; // [OUT] The name __checkReturn diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 4446a37e372b5..5dab4ca26e156 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -888,7 +888,26 @@ class CorTypeInfo return GetTypeInfo_NoThrow(type).isGenVar; } + FORCEINLINE static BOOL IsConstGenericVariable(CorElementType type) + { + WRAPPER_NO_CONTRACT; + + return GetTypeInfo(type).isGenVar && + (type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); + } + FORCEINLINE static BOOL IsConstGenericVariable_NoThrow(CorElementType type) + { + WRAPPER_NO_CONTRACT; + return GetTypeInfo_NoThrow(type).isGenVar && + (type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); + } + FORCEINLINE static BOOL IsConstGenericTypeArgument_NoThrow(CorElementType type) + { + WRAPPER_NO_CONTRACT; + + return type == CorElementType::ELEMENT_TYPE_CTARG; + } FORCEINLINE static BOOL IsArray(CorElementType type) { WRAPPER_NO_CONTRACT; diff --git a/src/coreclr/md/compiler/import.cpp b/src/coreclr/md/compiler/import.cpp index 06456df28bc9d..92ebc19e7c05a 100644 --- a/src/coreclr/md/compiler/import.cpp +++ b/src/coreclr/md/compiler/import.cpp @@ -2847,7 +2847,7 @@ HRESULT RegMeta::GetGenericParamProps( // S_OK or error. if (ptOwner) *ptOwner = pMiniMd->getOwnerOfGenericParam(pGenericParamRec); if (ptType) - *ptType = pMiniMd->getTypeOfGenericParam(pGenericParamRec); + *ptType = pMiniMd->SupportsConstGenerics() ? pMiniMd->getTypeOfGenericParam(pGenericParamRec) : NULL; // This call has to be last to set 'hr', so CLDB_S_TRUNCATION is not rewritten with S_OK if (pchName || szName) IfFailGo(pMiniMd->getNameOfGenericParam(pGenericParamRec, szName, cchName, pchName)); diff --git a/src/coreclr/md/enc/mdinternalrw.cpp b/src/coreclr/md/enc/mdinternalrw.cpp index 487d256f8de0f..05812c037090f 100644 --- a/src/coreclr/md/enc/mdinternalrw.cpp +++ b/src/coreclr/md/enc/mdinternalrw.cpp @@ -3238,7 +3238,7 @@ HRESULT MDInternalRW::GetGenericParamProps( // S_OK or error. ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) + mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) LPCSTR *szName) // [OUT] The name { HRESULT hr = NOERROR; @@ -3260,6 +3260,8 @@ HRESULT MDInternalRW::GetGenericParamProps( // S_OK or error. *pdwAttr = m_pStgdb->m_MiniMd.getFlagsOfGenericParam(pGenericParamRec); if (ptOwner) *ptOwner = m_pStgdb->m_MiniMd.getOwnerOfGenericParam(pGenericParamRec); + if (ptType) + *ptType = m_pStgdb->m_MiniMd.SupportsConstGenerics() ? m_pStgdb->m_MiniMd.getTypeOfGenericParam(pGenericParamRec) : NULL; if (szName != NULL) { IfFailGo(m_pStgdb->m_MiniMd.getNameOfGenericParam(pGenericParamRec, szName)); diff --git a/src/coreclr/md/inc/mdinternalrw.h b/src/coreclr/md/inc/mdinternalrw.h index 144d63b118995..4324e7129cf9f 100644 --- a/src/coreclr/md/inc/mdinternalrw.h +++ b/src/coreclr/md/inc/mdinternalrw.h @@ -547,7 +547,7 @@ class MDInternalRW : public IMDInternalImportENC, public IMDCommon ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) + mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) LPCSTR *szName); // [OUT] The name __checkReturn diff --git a/src/coreclr/md/runtime/mdinternalro.cpp b/src/coreclr/md/runtime/mdinternalro.cpp index 96d7255848552..ff02a6620cc14 100644 --- a/src/coreclr/md/runtime/mdinternalro.cpp +++ b/src/coreclr/md/runtime/mdinternalro.cpp @@ -2464,8 +2464,8 @@ HRESULT MDInternalRO::GetGenericParamProps( // S_OK or error. ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) - LPCSTR *szName) // [OUT] The name + mdToken *ptType, // [OUT] Type (const generic parameter) + LPCSTR *szName) // [OUT] The name { HRESULT hr = NOERROR; GenericParamRec * pGenericParamRec = NULL; @@ -2488,6 +2488,8 @@ HRESULT MDInternalRO::GetGenericParamProps( // S_OK or error. *pdwAttr = m_LiteWeightStgdb.m_MiniMd.getFlagsOfGenericParam(pGenericParamRec); if (ptOwner) *ptOwner = m_LiteWeightStgdb.m_MiniMd.getOwnerOfGenericParam(pGenericParamRec); + if (ptType) + *ptType = m_LiteWeightStgdb.m_MiniMd.SupportsConstGenerics() ? m_LiteWeightStgdb.m_MiniMd.getTypeOfGenericParam(pGenericParamRec) : NULL; if (szName != NULL) { IfFailGo(m_LiteWeightStgdb.m_MiniMd.getNameOfGenericParam(pGenericParamRec, szName)); diff --git a/src/coreclr/md/runtime/mdinternalro.h b/src/coreclr/md/runtime/mdinternalro.h index b76c2f4067226..7ffab56175ce3 100644 --- a/src/coreclr/md/runtime/mdinternalro.h +++ b/src/coreclr/md/runtime/mdinternalro.h @@ -534,7 +534,7 @@ class MDInternalRO : public IMDInternalImport, IMDCommon ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - DWORD *reserved, // [OUT] The kind (TypeDef/Ref/Spec, for future use) + mdToken *ptType, // [OUT] The Type (TypeDef/Ref, for const generics) LPCSTR *szName); // [OUT] The name __checkReturn diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index fdb35b574051b..8c486a4326aa5 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -279,6 +279,12 @@ BOOL TypeDesc::IsGenericVariable() return CorTypeInfo::IsGenericVariable_NoThrow(GetInternalCorElementType()); } +BOOL TypeDesc::IsConstGenericVariable() +{ + LIMITED_METHOD_DAC_CONTRACT; + return CorTypeInfo::IsConstGenericVariable_NoThrow(GetInternalCorElementType()); +} + BOOL TypeDesc::IsFnPtr() { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index a306930342aee..50e4499794a3c 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -103,6 +103,9 @@ class TypeDesc // VAR, MVAR BOOL IsGenericVariable(); + // CVAR, MCVAR + BOOL IsConstGenericVariable(); + // ELEMENT_TYPE_FNPTR BOOL IsFnPtr(); diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index 647e14eeaa6f6..c9a951cc4c96f 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -93,6 +93,12 @@ BOOL TypeHandle::IsGenericVariable() const { return(IsTypeDesc() && CorTypeInfo::IsGenericVariable_NoThrow(AsTypeDesc()->GetInternalCorElementType())); } +BOOL TypeHandle::IsConstGenericVariable() const { + LIMITED_METHOD_DAC_CONTRACT; + + return(IsTypeDesc() && CorTypeInfo::IsConstGenericVariable_NoThrow(AsTypeDesc()->GetInternalCorElementType())); +} + BOOL TypeHandle::HasTypeParam() const { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index 037bc10205e17..b28a6d56f280f 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -476,6 +476,9 @@ class TypeHandle // VAR or MVAR BOOL IsGenericVariable() const; + + // CVAR, MCVAR + BOOL IsConstGenericVariable() const; // BYREF BOOL IsByRef() const; diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 88550d898378a..f1c4d72f6efca 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -767,11 +767,67 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t LPCSTR szName = NULL; mdToken mdOwner; + mdToken mdType; - IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, NULL, &szName)); + IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, &mdType, &szName)); _ASSERTE(TypeFromToken(mdOwner) == mdtTypeDef || TypeFromToken(mdOwner) == mdtMethodDef); + if (RidFromToken(mdType)) + { + _ASSERTE(TypeFromToken(mdType) == mdtTypeSpec); + tnb.Append(W("const ")); + ULONG cb; + PCCOR_SIGNATURE sig; + IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &sig, &cb)); + _ASSERTE(cb == 1); + LPCWSTR cnsTypeName; + switch (*sig) + { + case ELEMENT_TYPE_BOOLEAN: + cnsTypeName = W("bool"); + break; + case ELEMENT_TYPE_CHAR: + cnsTypeName = W("char"); + break; + case ELEMENT_TYPE_I1: + cnsTypeName = W("sbyte"); + break; + case ELEMENT_TYPE_U1: + cnsTypeName = W("byte"); + break; + case ELEMENT_TYPE_I2: + cnsTypeName = W("short"); + break; + case ELEMENT_TYPE_U2: + cnsTypeName = W("ushort"); + break; + case ELEMENT_TYPE_I4: + cnsTypeName = W("int"); + break; + case ELEMENT_TYPE_U4: + cnsTypeName = W("uint"); + break; + case ELEMENT_TYPE_I8: + cnsTypeName = W("long"); + break; + case ELEMENT_TYPE_U8: + cnsTypeName = W("ulong"); + break; + case ELEMENT_TYPE_R4: + cnsTypeName = W("float"); + break; + case ELEMENT_TYPE_R8: + cnsTypeName = W("double"); + break; + default: + cnsTypeName = W("/* UNKNOWN TYPE */"); + break; + } + tnb.Append(cnsTypeName); + tnb.Append(W(" ")); + } + LPCSTR szPrefix; if (!(format & FormatGenericParam)) szPrefix = ""; @@ -781,9 +837,9 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t szPrefix = "!!"; SmallStackSString pName(SString::Utf8, szPrefix); + pName.AppendUTF8(szPrefix); pName.AppendUTF8(szName); tnb.AddName(pName.GetUnicode()); - format &= ~FormatAssembly; } From c5dd61464cd9354d9807eb81da37607f235a0a34 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 24 Jul 2023 21:53:28 +0900 Subject: [PATCH 20/80] WIP: ConstValueEEType and MethodTable changes --- src/coreclr/inc/sigparser.h | 30 ++++++++++++++-- src/coreclr/vm/class.cpp | 4 +-- src/coreclr/vm/class.h | 32 +++++++++++++++++ src/coreclr/vm/method.hpp | 1 + src/coreclr/vm/methodtable.h | 37 ++++++++++++++++++-- src/coreclr/vm/methodtable.inl | 46 +++++++++++++++++++++++++ src/coreclr/vm/siginfo.cpp | 63 ++++++++++++++++++++++++++++++++++ src/coreclr/vm/typedesc.h | 18 +++++++++- src/coreclr/vm/typehandle.cpp | 7 ++++ src/coreclr/vm/typehandle.h | 2 ++ src/coreclr/vm/vars.hpp | 1 + 11 files changed, 234 insertions(+), 7 deletions(-) diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 5dab4ca26e156..4a591fd660858 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -241,6 +241,26 @@ class SigParser return META_E_BAD_SIGNATURE; } + + __checkReturn + FORCEINLINE HRESULT GetConstTypeArg(CorElementType * etype, uint32_t* pcb, PCCOR_SIGNATURE *ppsig) + { + uint32_t cb; + if (SUCCEEDED(PeekElemTypeSize(&cb))) + { + if (SUCCEEDED(GetElemType(etype))) + { + *pcb = cb; + *ppsig = m_ptr; + SkipBytes(cb); + + return S_OK; + } + } + + *etype = ELEMENT_TYPE_END; + return META_E_BAD_SIGNATURE; + } // Inlined version __checkReturn @@ -253,7 +273,10 @@ class SigParser { CorElementType typ = (CorElementType) * m_ptr; - if (typ < ELEMENT_TYPE_CMOD_REQD) // fast path with no modifiers: single byte + if (typ < ELEMENT_TYPE_CMOD_REQD + || typ == ELEMENT_TYPE_CVAR + || typ == ELEMENT_TYPE_MCVAR + || typ == ELEMENT_TYPE_CTARG) // fast path with no modifiers: single byte { if (etype != NULL) { @@ -360,7 +383,10 @@ class SigParser { CorElementType typ = (CorElementType) * m_ptr; - if (typ < ELEMENT_TYPE_CMOD_REQD) // fast path with no modifiers: single byte + if (typ < ELEMENT_TYPE_CMOD_REQD + || typ == ELEMENT_TYPE_CVAR + || typ == ELEMENT_TYPE_MCVAR + || typ == ELEMENT_TYPE_CTARG) // fast path with no modifiers: single byte { if ((typ == ELEMENT_TYPE_STRING) || (typ == ELEMENT_TYPE_OBJECT)) { diff --git a/src/coreclr/vm/class.cpp b/src/coreclr/vm/class.cpp index 9c4d864fb6ec3..df8ec748faa36 100644 --- a/src/coreclr/vm/class.cpp +++ b/src/coreclr/vm/class.cpp @@ -925,9 +925,9 @@ EEClass::CheckVarianceInSig( uint32_t ntypars; IfFailThrow(psig.GetData(&ntypars)); - // If this is a value type, or position == gpNonVariant, then + // If this is a value type or a const argument, or position == gpNonVariant, then // we're disallowing covariant and contravariant completely - if (typ == ELEMENT_TYPE_VALUETYPE || position == gpNonVariant) + if (typ == ELEMENT_TYPE_VALUETYPE || typ == ELEMENT_TYPE_CTARG || position == gpNonVariant) { for (unsigned i = 0; i < ntypars; i++) { diff --git a/src/coreclr/vm/class.h b/src/coreclr/vm/class.h index fe2990b64d5ad..af6543bee0d8f 100644 --- a/src/coreclr/vm/class.h +++ b/src/coreclr/vm/class.h @@ -66,6 +66,7 @@ class ArrayClass; class ArrayMethodDesc; class Assembly; class ClassLoader; +class ConstValueClass; class DictionaryLayout; class FCallMethodDesc; class EEClass; @@ -2025,6 +2026,37 @@ class DelegateEEClass : public EEClass }; +typedef DPTR(ConstValueClass) PTR_ConstValueClass; + +class ConstValueClass : public EEClass +{ + struct const_value_t { + unsigned char m_byte[8]; + }; +private: + DAC_ALIGNAS(EEClass) // Align the first member to the alignment of the base class + const_value_t m_value; + CorElementType m_type; + +public: + CorElementType GetValueType() { + LIMITED_METHOD_CONTRACT; + return m_type; + } + + template + void SetValue(CorElementType type, T value) { + LIMITED_METHOD_CONTRACT; + m_value = *(const_value_t*)(void*)&value; + m_type = type; + } + + template + T GetValue() { + LIMITED_METHOD_CONTRACT; + return *(T*)(void*)&m_value; + } +}; typedef DPTR(ArrayClass) PTR_ArrayClass; diff --git a/src/coreclr/vm/method.hpp b/src/coreclr/vm/method.hpp index a315ca2d6fcf7..81e02380b49be 100644 --- a/src/coreclr/vm/method.hpp +++ b/src/coreclr/vm/method.hpp @@ -192,6 +192,7 @@ class MethodDesc friend class EEClass; friend class MethodTableBuilder; friend class ArrayClass; + friend class ConstValueClass; friend class NDirect; friend class MethodDescChunk; friend class InstantiatedMethodDesc; diff --git a/src/coreclr/vm/methodtable.h b/src/coreclr/vm/methodtable.h index a1e74ca7dda99..4d28f210fb8cf 100644 --- a/src/coreclr/vm/methodtable.h +++ b/src/coreclr/vm/methodtable.h @@ -34,6 +34,7 @@ class AppDomain; class ArrayClass; class ArrayMethodDesc; class ClassLoader; +class ConstValueClass; class FCallMethodDesc; class EEClass; class EnCFieldDesc; @@ -440,6 +441,10 @@ SystemVClassificationType CorInfoType2UnixAmd64Classification(CorElementType eeT SystemVClassificationTypeUnknown, // ELEMENT_TYPE_CMOD_REQD SystemVClassificationTypeUnknown, // ELEMENT_TYPE_CMOD_OPT SystemVClassificationTypeUnknown, // ELEMENT_TYPE_INTERNAL + + SystemVClassificationTypeIntegerReference, // ELEMENT_TYPE_CVAR + SystemVClassificationTypeIntegerReference, // ELEMENT_TYPE_MCVAR + SystemVClassificationTypeStruct, // ELEMENT_TYPE_CTARG }; _ASSERTE(sizeof(toSystemVAmd64ClassificationTypeMap) == ELEMENT_TYPE_MAX); @@ -1013,11 +1018,39 @@ class MethodTable void DoFullyLoad(Generics::RecursionGraph * const pVisited, const ClassLoadLevel level, DFLPendingList * const pPending, BOOL * const pfBailed, const InstantiationContext * const pInstContext); + + //------------------------------------------------------------------- + // METHOD TABLES AS CONST VALUES + // + // A MethodTable can represent a const value such as an integer + // or a floating-point + // + + inline BOOL IsConstValue() + { + LIMITED_METHOD_DAC_CONTRACT; + return GetFlag(enum_flag_Category_Mask) == enum_flag_Category_ConstValue; + } + + inline void SetIsConstValue() + { + LIMITED_METHOD_DAC_CONTRACT; + _ASSERTE(GetFlag(enum_flag_Category_Mask) == 0); + SetFlag(enum_flag_Category_ConstValue); + } + + inline CorElementType GetConstValueType(); + template + inline T GetConstValue(); + + template + inline void SetConstValue(CorElementType type, T value); + //------------------------------------------------------------------- // METHOD TABLES AS TYPE DESCRIPTORS // - // A MethodTable can represeent a type such as "String" or an + // A MethodTable can represent a type such as "String" or an // instantiated type such as "List". // @@ -3415,7 +3448,7 @@ public : enum_flag_Category_IfArrayThenSzArray = 0x00020000, // sub-category of Array enum_flag_Category_Interface = 0x000C0000, - enum_flag_Category_Unused_4 = 0x000D0000, + enum_flag_Category_ConstValue = 0x000D0000, enum_flag_Category_Unused_5 = 0x000E0000, enum_flag_Category_Unused_6 = 0x000F0000, diff --git a/src/coreclr/vm/methodtable.inl b/src/coreclr/vm/methodtable.inl index 3a11158e097d0..9ff47a347953a 100644 --- a/src/coreclr/vm/methodtable.inl +++ b/src/coreclr/vm/methodtable.inl @@ -302,6 +302,52 @@ inline BOOL MethodTable::IsValueType() return GetFlag(enum_flag_Category_ValueType_Mask) == enum_flag_Category_ValueType; } +/////========================================================================================== +//// Is the type a const value (for const type argument)? +//inline BOOL MethodTable::IsConstValue() +//{ +// LIMITED_METHOD_DAC_CONTRACT; +// return GetFlag(enum_flag_Category_Mask) == enum_flag_Category_ConstValue; +//} +// +/////========================================================================================== +//// Only used by const type argument +//inline void MethodTable::SetIsConstValue() +//{ +// LIMITED_METHOD_DAC_CONTRACT; +// _ASSERTE(GetFlag(enum_flag_Category_Mask) == 0); +// SetFlag(enum_flag_Category_ConstValue); +//} +// +///========================================================================================== +// Only used by const type argument +inline CorElementType MethodTable::GetConstValueType() +{ + LIMITED_METHOD_DAC_CONTRACT; + _ASSERTE (IsConstValue()); + return dac_cast(GetClass())->GetValueType(); +} + +///========================================================================================== +// Only used by const type argument +template +inline T MethodTable::GetConstValue() +{ + LIMITED_METHOD_DAC_CONTRACT; + _ASSERTE (IsConstValue()); + return dac_cast(GetClass())->GetValue(); +} + +///========================================================================================== +// Only used by const type argument +template +inline void MethodTable::SetConstValue(CorElementType type, T value) +{ + LIMITED_METHOD_DAC_CONTRACT; + _ASSERTE (IsConstValue()); + dac_cast(GetClass())->SetValue(type, value); +} + //========================================================================================== inline CorElementType MethodTable::GetArrayElementType() { diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index c2c9e32a59f61..1c8df855d24f3 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1326,6 +1326,69 @@ TypeHandle SigPointer::GetTypeHandleThrowing( ClassLoader::EnsureLoaded(thRet, level); break; } + + case ELEMENT_TYPE_CVAR: + { + break; + } + + case ELEMENT_TYPE_MCVAR: + { + break; + } + + case ELEMENT_TYPE_CTARG: + { + CorElementType elemType; + uint32_t cb; + PCCOR_SIGNATURE elem; + IfFailThrowBF(psig.GetConstTypeArg(&elemType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); + + // TODO: we need to make a MethodTable here. + // and changes to MethodTableBuilder are required as well. + _ASSERTE(!"NYI"); + + TypeHandle th = TypeHandle(); + th.AsMethodTable()->SetIsConstValue(); + + switch (elemType) + { + case ELEMENT_TYPE_BOOLEAN : + case ELEMENT_TYPE_CHAR : + case ELEMENT_TYPE_I1 : + case ELEMENT_TYPE_U1 : + th.AsMethodTable()->SetConstValue(elemType, *(uint8_t*)elem); + break; + case ELEMENT_TYPE_I2 : + case ELEMENT_TYPE_U2 : + th.AsMethodTable()->SetConstValue(elemType, *(uint16_t*)elem); + break; + case ELEMENT_TYPE_I4 : + case ELEMENT_TYPE_U4 : + IN_TARGET_32BIT(case ELEMENT_TYPE_I :) + IN_TARGET_32BIT(case ELEMENT_TYPE_U :) + th.AsMethodTable()->SetConstValue(elemType, *(uint32_t*)elem); + break; + case ELEMENT_TYPE_I8 : + case ELEMENT_TYPE_U8 : + IN_TARGET_64BIT(case ELEMENT_TYPE_I :) + IN_TARGET_64BIT(case ELEMENT_TYPE_U :) + th.AsMethodTable()->SetConstValue(elemType, *(uint64_t*)elem); + break; + case ELEMENT_TYPE_R4 : + th.AsMethodTable()->SetConstValue(elemType, *(float*)elem); + break; + case ELEMENT_TYPE_R8 : + th.AsMethodTable()->SetConstValue(elemType, *(double*)elem); + break; + default: + _ASSERTE(!"UNKNOWN CONST TYPE ARG TYPE"); + break; + } + + thRet = th; + break; + } case ELEMENT_TYPE_GENERICINST: { diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 50e4499794a3c..09083794923bd 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -325,7 +325,7 @@ class TypeVarTypeDesc : public TypeDesc #ifndef DACCESS_COMPILE TypeVarTypeDesc(PTR_Module pModule, mdToken typeOrMethodDef, unsigned int index, mdGenericParam token) : - TypeDesc(TypeFromToken(typeOrMethodDef) == mdtTypeDef ? ELEMENT_TYPE_VAR : ELEMENT_TYPE_MVAR) + TypeDesc(GetTypeVarTokenType(pModule, typeOrMethodDef, token)) { CONTRACTL { @@ -346,6 +346,22 @@ class TypeVarTypeDesc : public TypeDesc m_constraints = NULL; m_numConstraints = (DWORD)-1; } + + CorElementType GetTypeVarTokenType(PTR_Module pModule, mdToken typeOrMethodDef, mdGenericParam token) + { + mdToken tkType; + pModule->GetMDImport()->GetGenericParamProps(token, NULL, NULL, NULL, &tkType, NULL); + BOOL isTypeDef = TypeFromToken(typeOrMethodDef) == mdtTypeDef; + if (RidFromToken(tkType)) + { + return isTypeDef ? ELEMENT_TYPE_CVAR : ELEMENT_TYPE_MCVAR; + } + else + { + return isTypeDef ? ELEMENT_TYPE_VAR : ELEMENT_TYPE_MVAR; + } + } + #endif // #ifndef DACCESS_COMPILE // placement new operator diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index c9a951cc4c96f..2402e6a76e21a 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1036,6 +1036,13 @@ BOOL TypeHandle::IsFnPtrType() const (GetSignatureCorElementType() == ELEMENT_TYPE_FNPTR)); } +BOOL TypeHandle::IsConstValue() const +{ + LIMITED_METHOD_DAC_CONTRACT; + + return (!IsTypeDesc() && AsMethodTable()->IsConstValue()); +} + BOOL TypeHandle::IsRestored_NoLogging() const { LIMITED_METHOD_CONTRACT; diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index b28a6d56f280f..79677ec5dc2ca 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -203,6 +203,8 @@ class TypeHandle BOOL IsFnPtrType() const; + BOOL IsConstValue() const; + inline PTR_MethodTable AsMethodTable() const; inline PTR_TypeDesc AsTypeDesc() const; diff --git a/src/coreclr/vm/vars.hpp b/src/coreclr/vm/vars.hpp index dd92ee7b12fde..bf37a22d6fdf4 100644 --- a/src/coreclr/vm/vars.hpp +++ b/src/coreclr/vm/vars.hpp @@ -74,6 +74,7 @@ class IGCHeap; class Object; class StringObject; class ArrayClass; +class ConstValueClass; class MethodTable; class MethodDesc; class SyncBlockCache; From 3d58e01d0a6c74ec8d7aaf9edd1248a736cd4abd Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 24 Jul 2023 22:22:11 +0900 Subject: [PATCH 21/80] Remove redundant szPrefix --- src/coreclr/vm/typestring.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index f1c4d72f6efca..4a95d039ec4be 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -837,7 +837,6 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t szPrefix = "!!"; SmallStackSString pName(SString::Utf8, szPrefix); - pName.AppendUTF8(szPrefix); pName.AppendUTF8(szName); tnb.AddName(pName.GetUnicode()); format &= ~FormatAssembly; From f3cb8aba2e2cc8f1099c4e642d06e4776c898b7a Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 25 Jul 2023 14:03:58 +0900 Subject: [PATCH 22/80] Add the missing `const` in ildasm --- src/coreclr/ildasm/dasm.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index e5b891cc2e806..1bdc0b3071370 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -3125,7 +3125,7 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok if (RidFromToken(tkType)) { CQuickBytes out; - szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"%s ",PrettyPrintClass(&out, tkType, g_pImport)); + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"const %s ",PrettyPrintClass(&out, tkType, g_pImport)); } if (chName) { From 97a7b06393c334652f9093353c6f2c9b3915267a Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 25 Jul 2023 15:49:05 +0900 Subject: [PATCH 23/80] Add isConst to CorTypeInfo --- src/coreclr/inc/cortypeinfo.h | 90 +++++++++++++++++------------------ src/coreclr/inc/sigparser.h | 24 ++++++---- src/coreclr/vm/binder.h | 2 +- src/coreclr/vm/corelib.cpp | 2 +- src/coreclr/vm/siginfo.cpp | 4 +- 5 files changed, 65 insertions(+), 57 deletions(-) diff --git a/src/coreclr/inc/cortypeinfo.h b/src/coreclr/inc/cortypeinfo.h index d06a146ec94e9..ede6fa0d7c3ee 100644 --- a/src/coreclr/inc/cortypeinfo.h +++ b/src/coreclr/inc/cortypeinfo.h @@ -13,48 +13,48 @@ #define NO_SIZE ((BYTE)-1) -// TYPEINFO(type (CorElementType), namespace, class, size, gcType, isArray,isPrim, isFloat,isModifier,isGenVariable) - -TYPEINFO(ELEMENT_TYPE_END, NULL, NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false) // 0x00 -TYPEINFO(ELEMENT_TYPE_VOID, "System", "Void", 0, TYPE_GC_NONE, false, true, false, false, false) // 0x01 -TYPEINFO(ELEMENT_TYPE_BOOLEAN, "System", "Boolean", 1, TYPE_GC_NONE, false, true, false, false, false) // 0x02 -TYPEINFO(ELEMENT_TYPE_CHAR, "System", "Char", 2, TYPE_GC_NONE, false, true, false, false, false) // 0x03 -TYPEINFO(ELEMENT_TYPE_I1, "System", "SByte", 1, TYPE_GC_NONE, false, true, false, false, false) // 0x04 -TYPEINFO(ELEMENT_TYPE_U1, "System", "Byte", 1, TYPE_GC_NONE, false, true, false, false, false) // 0x05 -TYPEINFO(ELEMENT_TYPE_I2, "System", "Int16", 2, TYPE_GC_NONE, false, true, false, false, false) // 0x06 -TYPEINFO(ELEMENT_TYPE_U2, "System", "UInt16", 2, TYPE_GC_NONE, false, true, false, false, false) // 0x07 -TYPEINFO(ELEMENT_TYPE_I4, "System", "Int32", 4, TYPE_GC_NONE, false, true, false, false, false) // 0x08 -TYPEINFO(ELEMENT_TYPE_U4, "System", "UInt32", 4, TYPE_GC_NONE, false, true, false, false, false) // 0x09 -TYPEINFO(ELEMENT_TYPE_I8, "System", "Int64", 8, TYPE_GC_NONE, false, true, false, false, false) // 0x0a -TYPEINFO(ELEMENT_TYPE_U8, "System", "UInt64", 8, TYPE_GC_NONE, false, true, false, false, false) // 0x0b - -TYPEINFO(ELEMENT_TYPE_R4, "System", "Single", 4, TYPE_GC_NONE, false, true, true, false, false) // 0x0c -TYPEINFO(ELEMENT_TYPE_R8, "System", "Double", 8, TYPE_GC_NONE, false, true, true, false, false) // 0x0d - -TYPEINFO(ELEMENT_TYPE_STRING, "System", "String", TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false) // 0x0e -TYPEINFO(ELEMENT_TYPE_PTR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_NONE, false, false, false, true, false) // 0x0f -TYPEINFO(ELEMENT_TYPE_BYREF, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_BYREF, false, false, false, true, false) // 0x10 -TYPEINFO(ELEMENT_TYPE_VALUETYPE, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, false) // 0x11 -TYPEINFO(ELEMENT_TYPE_CLASS, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false) // 0x12 -TYPEINFO(ELEMENT_TYPE_VAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x13 -TYPEINFO(ELEMENT_TYPE_ARRAY, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, true, false, false, true, false) // 0x14 - -TYPEINFO(ELEMENT_TYPE_GENERICINST, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, false) // 0x15 -TYPEINFO(ELEMENT_TYPE_TYPEDBYREF, "System", "TypedReference",2*TARGET_POINTER_SIZE,TYPE_GC_BYREF, false, false, false, false, false) // 0x16 -TYPEINFO(ELEMENT_TYPE_VALUEARRAY_UNSUPPORTED, NULL,NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false) // 0x17 (unsupported, not in the ECMA spec) - -TYPEINFO(ELEMENT_TYPE_I, "System", "IntPtr", TARGET_POINTER_SIZE, TYPE_GC_NONE, false, true, false, false, false) // 0x18 -TYPEINFO(ELEMENT_TYPE_U, "System", "UIntPtr", TARGET_POINTER_SIZE, TYPE_GC_NONE, false, true, false, false, false) // 0x19 -TYPEINFO(ELEMENT_TYPE_R_UNSUPPORTED,NULL, NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false) // 0x1a (unsupported, not in the ECMA spec) - -TYPEINFO(ELEMENT_TYPE_FNPTR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_NONE, false, false, false, false, false) // 0x1b -TYPEINFO(ELEMENT_TYPE_OBJECT, "System", "Object", TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false) // 0x1c -TYPEINFO(ELEMENT_TYPE_SZARRAY, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, true, false, false, true, false) // 0x1d -TYPEINFO(ELEMENT_TYPE_MVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // x01e -TYPEINFO(ELEMENT_TYPE_CMOD_REQD, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false) // 0x1f -TYPEINFO(ELEMENT_TYPE_CMOD_OPT, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false) // 0x20 -TYPEINFO(ELEMENT_TYPE_INTERNAL, NULL, NULL, 0, TYPE_GC_OTHER, false, false, false, false, false) // 0x21 - -TYPEINFO(ELEMENT_TYPE_CVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x22 -TYPEINFO(ELEMENT_TYPE_MCVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true) // 0x23 -TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, false) // 0x24 +// TYPEINFO(type (CorElementType), namespace, class, size, gcType, isArray,isPrim, isFloat,isModifier,isGenVariable,isConst) + +TYPEINFO(ELEMENT_TYPE_END, NULL, NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false, false) // 0x00 +TYPEINFO(ELEMENT_TYPE_VOID, "System", "Void", 0, TYPE_GC_NONE, false, true, false, false, false, false) // 0x01 +TYPEINFO(ELEMENT_TYPE_BOOLEAN, "System", "Boolean", 1, TYPE_GC_NONE, false, true, false, false, false, false) // 0x02 +TYPEINFO(ELEMENT_TYPE_CHAR, "System", "Char", 2, TYPE_GC_NONE, false, true, false, false, false, false) // 0x03 +TYPEINFO(ELEMENT_TYPE_I1, "System", "SByte", 1, TYPE_GC_NONE, false, true, false, false, false, false) // 0x04 +TYPEINFO(ELEMENT_TYPE_U1, "System", "Byte", 1, TYPE_GC_NONE, false, true, false, false, false, false) // 0x05 +TYPEINFO(ELEMENT_TYPE_I2, "System", "Int16", 2, TYPE_GC_NONE, false, true, false, false, false, false) // 0x06 +TYPEINFO(ELEMENT_TYPE_U2, "System", "UInt16", 2, TYPE_GC_NONE, false, true, false, false, false, false) // 0x07 +TYPEINFO(ELEMENT_TYPE_I4, "System", "Int32", 4, TYPE_GC_NONE, false, true, false, false, false, false) // 0x08 +TYPEINFO(ELEMENT_TYPE_U4, "System", "UInt32", 4, TYPE_GC_NONE, false, true, false, false, false, false) // 0x09 +TYPEINFO(ELEMENT_TYPE_I8, "System", "Int64", 8, TYPE_GC_NONE, false, true, false, false, false, false) // 0x0a +TYPEINFO(ELEMENT_TYPE_U8, "System", "UInt64", 8, TYPE_GC_NONE, false, true, false, false, false, false) // 0x0b + +TYPEINFO(ELEMENT_TYPE_R4, "System", "Single", 4, TYPE_GC_NONE, false, true, true, false, false, false) // 0x0c +TYPEINFO(ELEMENT_TYPE_R8, "System", "Double", 8, TYPE_GC_NONE, false, true, true, false, false, false) // 0x0d + +TYPEINFO(ELEMENT_TYPE_STRING, "System", "String", TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false, false) // 0x0e +TYPEINFO(ELEMENT_TYPE_PTR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_NONE, false, false, false, true, false, false) // 0x0f +TYPEINFO(ELEMENT_TYPE_BYREF, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_BYREF, false, false, false, true, false, false) // 0x10 +TYPEINFO(ELEMENT_TYPE_VALUETYPE, NULL, NULL, NO_SIZE, TYPE_GC_OTHER, false, false, false, false, false, false) // 0x11 +TYPEINFO(ELEMENT_TYPE_CLASS, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false, false) // 0x12 +TYPEINFO(ELEMENT_TYPE_VAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, false) // 0x13 +TYPEINFO(ELEMENT_TYPE_ARRAY, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, true, false, false, true, false, false) // 0x14 + +TYPEINFO(ELEMENT_TYPE_GENERICINST, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, false, false) // 0x15 +TYPEINFO(ELEMENT_TYPE_TYPEDBYREF, "System", "TypedReference",2*TARGET_POINTER_SIZE,TYPE_GC_BYREF, false, false, false, false, false, false) // 0x16 +TYPEINFO(ELEMENT_TYPE_VALUEARRAY_UNSUPPORTED, NULL,NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false, false) // 0x17 (unsupported, not in the ECMA spec) + +TYPEINFO(ELEMENT_TYPE_I, "System", "IntPtr", TARGET_POINTER_SIZE, TYPE_GC_NONE, false, true, false, false, false, false) // 0x18 +TYPEINFO(ELEMENT_TYPE_U, "System", "UIntPtr", TARGET_POINTER_SIZE, TYPE_GC_NONE, false, true, false, false, false, false) // 0x19 +TYPEINFO(ELEMENT_TYPE_R_UNSUPPORTED,NULL, NULL, NO_SIZE, TYPE_GC_NONE, false, false, false, false, false, false) // 0x1a (unsupported, not in the ECMA spec) + +TYPEINFO(ELEMENT_TYPE_FNPTR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_NONE, false, false, false, false, false, false) // 0x1b +TYPEINFO(ELEMENT_TYPE_OBJECT, "System", "Object", TARGET_POINTER_SIZE, TYPE_GC_REF, false, false, false, false, false, false) // 0x1c +TYPEINFO(ELEMENT_TYPE_SZARRAY, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_REF, true, false, false, true, false, false) // 0x1d +TYPEINFO(ELEMENT_TYPE_MVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, false) // x01e +TYPEINFO(ELEMENT_TYPE_CMOD_REQD, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false, false) // 0x1f +TYPEINFO(ELEMENT_TYPE_CMOD_OPT, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false, false) // 0x20 +TYPEINFO(ELEMENT_TYPE_INTERNAL, NULL, NULL, 0, TYPE_GC_OTHER, false, false, false, false, false, false) // 0x21 + +TYPEINFO(ELEMENT_TYPE_CVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, true) // 0x22 +TYPEINFO(ELEMENT_TYPE_MCVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, true) // 0x23 +TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, 8, TYPE_GC_OTHER, false, false, false, false, false, true) // 0x24 diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 4a591fd660858..290a16a0ab00a 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -799,7 +799,7 @@ class CorTypeInfo unsigned isFloat : 1; unsigned isModifier : 1; unsigned isGenVar : 1; - // 1 more byte here to use for 32-bit + unsigned isConst : 1; }; protected: @@ -918,21 +918,29 @@ class CorTypeInfo { WRAPPER_NO_CONTRACT; - return GetTypeInfo(type).isGenVar && - (type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); + CorTypeInfoEntry info = GetTypeInfo(type); + return info.isGenVar && info.isConst; } FORCEINLINE static BOOL IsConstGenericVariable_NoThrow(CorElementType type) { WRAPPER_NO_CONTRACT; - - return GetTypeInfo_NoThrow(type).isGenVar && - (type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); + + CorTypeInfoEntry info = GetTypeInfo_NoThrow(type); + return info.isGenVar && info.isConst; } - FORCEINLINE static BOOL IsConstGenericTypeArgument_NoThrow(CorElementType type) + FORCEINLINE static BOOL IsConstValue(CorElementType type) { WRAPPER_NO_CONTRACT; - return type == CorElementType::ELEMENT_TYPE_CTARG; + CorTypeInfoEntry info = GetTypeInfo(type); + return !info.isGenVar && info.isConst; + } + FORCEINLINE static BOOL IsConstValue_NoThrow(CorElementType type) + { + WRAPPER_NO_CONTRACT; + + CorTypeInfoEntry info = GetTypeInfo_NoThrow(type); + return !info.isGenVar && info.isConst; } FORCEINLINE static BOOL IsArray(CorElementType type) { diff --git a/src/coreclr/vm/binder.h b/src/coreclr/vm/binder.h index 8e9369cc85a1b..9ee71322b7615 100644 --- a/src/coreclr/vm/binder.h +++ b/src/coreclr/vm/binder.h @@ -40,7 +40,7 @@ struct HardCodedMetaSig enum BinderClassID { -#define TYPEINFO(e,ns,c,s,g,ia,ip,if,im,gv) CLASS__ ## e, +#define TYPEINFO(e,ns,c,s,g,ia,ip,if,im,gv,ic) CLASS__ ## e, #include "cortypeinfo.h" #undef TYPEINFO diff --git a/src/coreclr/vm/corelib.cpp b/src/coreclr/vm/corelib.cpp index b6ae49b2a1d1c..443e26151e8e3 100644 --- a/src/coreclr/vm/corelib.cpp +++ b/src/coreclr/vm/corelib.cpp @@ -225,7 +225,7 @@ extern const USHORT c_nCoreLibFieldDescriptions; const CoreLibClassDescription c_rgCoreLibClassDescriptions[] = { - #define TYPEINFO(e,ns,c,s,g,ia,ip,if,im,gv) { ns, c }, + #define TYPEINFO(e,ns,c,s,g,ia,ip,if,im,gv,ic) { ns, c }, #include "cortypeinfo.h" #undef TYPEINFO diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 1c8df855d24f3..6dd0cd6c8bf11 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -28,8 +28,8 @@ /*******************************************************************/ const CorTypeInfo::CorTypeInfoEntry CorTypeInfo::info[ELEMENT_TYPE_MAX] = { -#define TYPEINFO(enumName,nameSpace,className,size,gcType,isArray,isPrim,isFloat,isModifier,isGenVar) \ - { nameSpace, className, enumName, size, gcType, isArray, isPrim, isFloat, isModifier, isGenVar }, +#define TYPEINFO(enumName,nameSpace,className,size,gcType,isArray,isPrim,isFloat,isModifier,isGenVar,isConstValue) \ + { nameSpace, className, enumName, size, gcType, isArray, isPrim, isFloat, isModifier, isGenVar, isConstValue }, #include "cortypeinfo.h" # undef TYPEINFO }; From 6eee6700f26a7c3708d3177bbc80fbdc203fdebc Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 25 Jul 2023 16:16:07 +0900 Subject: [PATCH 24/80] Minor fixes --- src/coreclr/ildasm/dasm.cpp | 2 +- src/coreclr/vm/siginfo.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 1bdc0b3071370..e48fa77f0708d 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -1680,7 +1680,7 @@ BYTE* skipType(BYTE* ptr) ptr += CorSigUncompressToken(ptr, &tk); break; case ELEMENT_TYPE_CTARG : - ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type parameter + ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type argument break; case ELEMENT_TYPE_CMOD_REQD : diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 6dd0cd6c8bf11..f4237a0d2b7a0 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -129,7 +129,7 @@ DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_INTERNAL, -1, TYPE_GC DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CVAR, -1, TYPE_GC_OTHER, 1) DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_MCVAR, -1, TYPE_GC_OTHER, 1) -DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CTARG, -1, TYPE_GC_OTHER, 0) +DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CTARG, 8, TYPE_GC_OTHER, 0) }; unsigned GetSizeForCorElementType(CorElementType etyp) From 5835cf82c9f76e5612472b30732f1fea30bc8cc6 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 26 Jul 2023 15:42:09 +0900 Subject: [PATCH 25/80] WIP: MethodTableBuilder and ClassLoader support for ConstValueType --- src/coreclr/ilasm/grammar_after.cpp | 2 +- src/coreclr/inc/sigparser.h | 10 +++-- src/coreclr/vm/class.h | 11 ++--- src/coreclr/vm/classcompat.h | 3 ++ src/coreclr/vm/clsload.cpp | 36 ++++++++++++++++ src/coreclr/vm/clsload.hpp | 6 +++ src/coreclr/vm/genmeth.cpp | 4 +- src/coreclr/vm/methodtablebuilder.cpp | 13 +++++- src/coreclr/vm/methodtablebuilder.h | 1 + src/coreclr/vm/siginfo.cpp | 51 +++------------------- src/coreclr/vm/typectxt.h | 2 +- src/coreclr/vm/typedesc.cpp | 6 +++ src/coreclr/vm/typedesc.h | 62 ++++++++++++++++++++++++--- src/coreclr/vm/typehandle.cpp | 15 +++++++ src/coreclr/vm/typehandle.h | 24 +++++++---- src/coreclr/vm/typekey.h | 40 +++++++++++++++++ src/coreclr/vm/typestring.cpp | 9 +++- 17 files changed, 221 insertions(+), 74 deletions(-) diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 3f6f8e1bda433..f4f986798e358 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1368,7 +1368,7 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) ptr += CorSigUncompressToken(ptr, &tk); break; case ELEMENT_TYPE_CTARG : - ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type parameter + ptr += CorSigUncompressConstTypeArgData((PCCOR_SIGNATURE&) ptr); // const type argument break; case ELEMENT_TYPE_CMOD_REQD : case ELEMENT_TYPE_CMOD_OPT : diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 290a16a0ab00a..c79b3c5aaa53f 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -431,8 +431,9 @@ class SigParser } *pSize = 0; - + BYTE bElementType = 0; + CHECK_SIZE: hr = sigTemp.GetByte(&bElementType); if (FAILED(hr)) @@ -490,7 +491,11 @@ class SigParser case ELEMENT_TYPE_VOID: break; - + + case ELEMENT_TYPE_CTARG: + // We need to check the next CorElementType + goto CHECK_SIZE; + break; case ELEMENT_TYPE_END: case ELEMENT_TYPE_CMOD_REQD: case ELEMENT_TYPE_CMOD_OPT: @@ -500,7 +505,6 @@ class SigParser case ELEMENT_TYPE_VALUETYPE: _ASSERTE(!"Asked for the size of an element that doesn't have a size!"); return E_INVALIDARG; - default: _ASSERTE( !"CorSigGetElementTypeSize given invalid signature to size!" ); diff --git a/src/coreclr/vm/class.h b/src/coreclr/vm/class.h index af6543bee0d8f..d08e9ec38665c 100644 --- a/src/coreclr/vm/class.h +++ b/src/coreclr/vm/class.h @@ -2030,15 +2030,16 @@ typedef DPTR(ConstValueClass) PTR_ConstValueClass; class ConstValueClass : public EEClass { - struct const_value_t { - unsigned char m_byte[8]; - }; private: DAC_ALIGNAS(EEClass) // Align the first member to the alignment of the base class - const_value_t m_value; + ULONG m_value; CorElementType m_type; public: +#ifndef DACCESS_COMPILE + ConstValueClass() : EEClass(sizeof(ConstValueClass)) { LIMITED_METHOD_CONTRACT; } +#endif // !DACCESS_COMPILE + CorElementType GetValueType() { LIMITED_METHOD_CONTRACT; return m_type; @@ -2047,7 +2048,7 @@ class ConstValueClass : public EEClass template void SetValue(CorElementType type, T value) { LIMITED_METHOD_CONTRACT; - m_value = *(const_value_t*)(void*)&value; + m_value = *(ULONG*)(void*)&value; m_type = type; } diff --git a/src/coreclr/vm/classcompat.h b/src/coreclr/vm/classcompat.h index 2320318c954fb..952a33874318a 100644 --- a/src/coreclr/vm/classcompat.h +++ b/src/coreclr/vm/classcompat.h @@ -261,6 +261,7 @@ class MethodTableBuilder BOOL IsAbstract() { LIMITED_METHOD_CONTRACT; return IsTdAbstract(bmtType->dwAttr); } BOOL HasLayout() { LIMITED_METHOD_CONTRACT; return bmtProp->fHasLayout; } BOOL IsDelegate() { LIMITED_METHOD_CONTRACT; return bmtProp->fIsDelegate; } + BOOL IsConstValue() { LIMITED_METHOD_CONTRACT; return bmtProp->fIsConstValue; } Module *GetModule() { LIMITED_METHOD_CONTRACT; return bmtType->pModule; } Assembly *GetAssembly() { WRAPPER_NO_CONTRACT; return GetModule()->GetAssembly(); } ClassLoader *GetClassLoader() { WRAPPER_NO_CONTRACT; return GetModule()->GetClassLoader(); } @@ -280,6 +281,7 @@ class MethodTableBuilder // we create that object. void SetIsValueClass() { LIMITED_METHOD_CONTRACT; bmtProp->fIsValueClass = TRUE; } void SetEnum() { LIMITED_METHOD_CONTRACT; bmtProp->fIsEnum = TRUE; } + void SetIsConstValue() { LIMITED_METHOD_CONTRACT; bmtProp->fIsConstValue = TRUE; } void SetHasLayout() { LIMITED_METHOD_CONTRACT; bmtProp->fHasLayout = TRUE; } void SetIsDelegate() { LIMITED_METHOD_CONTRACT; bmtProp->fIsDelegate = TRUE; } #ifdef _DEBUG @@ -320,6 +322,7 @@ class MethodTableBuilder BOOL fIsComClassInterface; BOOL fHasLayout; BOOL fIsDelegate; + BOOL fIsConstValue; LPUTF8 szDebugClassName; diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index 06775e004629d..e5ffb9a7ecc3b 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -1650,6 +1650,42 @@ TypeHandle ClassLoader::LoadFnptrTypeThrowing(BYTE callConv, RETURN(LoadConstructedTypeThrowing(&key, fLoadTypes, level)); } +TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, + ULONG value, + CorElementType typ /* ELEMENT_TYPE_CTARG */, + LoadTypesFlag fLoadTypes /* LoadTypes */, + ClassLoadLevel level /* CLASS_LOADED */) +{ + CONTRACT(TypeHandle) + { + if (FORBIDGC_LOADER_USE_ENABLED()) NOTHROW; else THROWS; + if (FORBIDGC_LOADER_USE_ENABLED()) GC_NOTRIGGER; else GC_TRIGGERS; + if (FORBIDGC_LOADER_USE_ENABLED()) FORBID_FAULT; else { INJECT_FAULT(COMPlusThrowOM()); } + if (FORBIDGC_LOADER_USE_ENABLED() || fLoadTypes != LoadTypes) { LOADS_TYPE(CLASS_LOAD_BEGIN); } else { LOADS_TYPE(level); } + PRECONDITION(level > CLASS_LOAD_BEGIN && level <= CLASS_LOADED); + PRECONDITION(valueType <= ELEMENT_TYPE_R8 && valueType != ELEMENT_TYPE_VOID); + POSTCONDITION(CheckPointer(RETVAL, ((fLoadTypes == LoadTypes) ? NULL_NOT_OK : NULL_OK))); + MODE_ANY; + SUPPORTS_DAC; + } + CONTRACT_END + + TypeHandle th = TypeHandle(CoreLibBinder::GetElementType(valueType)); + TypeKey key(th, value); + TypeHandle typeHnd = TypeHandle(); + _ASSERTE(!"NYI: Load const value TypeHandle."); +#ifndef DACCESS_COMPILE + // If we got here, we now have to allocate a new const value type. + // By definition, forbidgc-users aren't allowed to reach this point. + CONSISTENCY_CHECK(!FORBIDGC_LOADER_USE_ENABLED()); + + RETURN(typeHnd); +#else + DacNotImpl(); + RETURN(typeHnd); +#endif +} + // Find an instantiation of a generic type if it has already been created. // If typeDef is not a generic type or is already instantiated then throw an exception. // If its arity does not match ntypars then throw an exception. diff --git a/src/coreclr/vm/clsload.hpp b/src/coreclr/vm/clsload.hpp index fd2aabe3801ed..a776089e73466 100644 --- a/src/coreclr/vm/clsload.hpp +++ b/src/coreclr/vm/clsload.hpp @@ -699,6 +699,12 @@ class ClassLoader LoadTypesFlag fLoadTypes = LoadTypes, ClassLoadLevel level = CLASS_LOADED); + static TypeHandle LoadConstValueTypeThrowing(CorElementType valueType, + ULONG value, + CorElementType typ = ELEMENT_TYPE_CTARG, + LoadTypesFlag fLoadTypes = LoadTypes, + ClassLoadLevel level = CLASS_LOADED); + // External class loader entry point // Load types by name - doesn't support nested types. // See overload using NameHandle. diff --git a/src/coreclr/vm/genmeth.cpp b/src/coreclr/vm/genmeth.cpp index a1d7af7c038bc..afe28b319be24 100644 --- a/src/coreclr/vm/genmeth.cpp +++ b/src/coreclr/vm/genmeth.cpp @@ -1422,9 +1422,11 @@ void InstantiatedMethodDesc::SetupGenericMethodDefinition(IMDInternalImport* pIM TypeVarTypeDesc* pTypeVarTypeDesc = pModule->LookupGenericParam(tkTyPar); if (pTypeVarTypeDesc == NULL) { + mdToken tkType; + IfFailThrow(pIMDII->GetGenericParamProps(tkTyPar, NULL, NULL, NULL, &tkType, NULL)); // Do NOT use pamTracker for this memory as we need it stay allocated even if the load fails. void* mem = (void*)pAllocator->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(sizeof(TypeVarTypeDesc))); - pTypeVarTypeDesc = new (mem) TypeVarTypeDesc(pModule, tok, i, tkTyPar); + pTypeVarTypeDesc = new (mem) TypeVarTypeDesc(pModule, tok, tkType, i, tkTyPar); pModule->StoreGenericParamThrowing(tkTyPar, pTypeVarTypeDesc); } diff --git a/src/coreclr/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp index 1c6eadbe5bdc4..1f16bca6ec096 100644 --- a/src/coreclr/vm/methodtablebuilder.cpp +++ b/src/coreclr/vm/methodtablebuilder.cpp @@ -72,6 +72,7 @@ MethodTableBuilder::CreateClass( Module *pModule, BOOL fHasLayout, BOOL fDelegate, BOOL fIsEnum, + BOOL fIsConstValue, const MethodTableBuilder::bmtGenericsInfo *bmtGenericsInfo, LoaderAllocator * pAllocator, AllocMemTracker *pamTracker) @@ -114,6 +115,10 @@ MethodTableBuilder::CreateClass( Module *pModule, { pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) DelegateEEClass(); } + else if (fIsConstValue) + { + pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) ConstValueClass(); + } else { pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) EEClass(sizeof(EEClass)); @@ -12104,7 +12109,8 @@ MethodTableBuilder::GatherGenericsInfo( { pInternalImport->EnumNext(&hEnumGenericPars, &tkTyPar); DWORD flags; - if (FAILED(pInternalImport->GetGenericParamProps(tkTyPar, NULL, &flags, NULL, NULL, NULL))) + mdToken tkTyParType; + if (FAILED(pInternalImport->GetGenericParamProps(tkTyPar, NULL, &flags, NULL, &tkTyParType, NULL))) { pModule->GetAssembly()->ThrowTypeLoadException(pInternalImport, cl, IDS_CLASSLOAD_BADFORMAT); } @@ -12119,7 +12125,7 @@ MethodTableBuilder::GatherGenericsInfo( { // Do NOT use the alloc tracker for this memory as we need it stay allocated even if the load fails. void* mem = (void*)pModule->GetLoaderAllocator()->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(sizeof(TypeVarTypeDesc))); - pTypeVarTypeDesc = new (mem) TypeVarTypeDesc(pModule, cl, i, tkTyPar); + pTypeVarTypeDesc = new (mem) TypeVarTypeDesc(pModule, cl, tkTyParType, i, tkTyPar); pModule->StoreGenericParamThrowing(tkTyPar, pTypeVarTypeDesc); } @@ -12370,6 +12376,8 @@ ClassLoader::CreateTypeHandleForTypeDefThrowing( // This is a delegate class if it derives from MulticastDelegate (we do not allow single cast delegates) BOOL fIsDelegate = pParentMethodTable && pParentMethodTable == g_pMulticastDelegateClass; + BOOL fIsConstValue = false; + // Create a EEClass entry for it, filling out a few fields, such as the parent class token // (and the generic type should we be creating an instantiation) EEClass * pClass = MethodTableBuilder::CreateClass( @@ -12378,6 +12386,7 @@ ClassLoader::CreateTypeHandleForTypeDefThrowing( fHasLayout, fIsDelegate, fIsEnum, + fIsConstValue, &genericsInfo, pAllocator, pamTracker); diff --git a/src/coreclr/vm/methodtablebuilder.h b/src/coreclr/vm/methodtablebuilder.h index 29889045b4479..4462767ba7b99 100644 --- a/src/coreclr/vm/methodtablebuilder.h +++ b/src/coreclr/vm/methodtablebuilder.h @@ -84,6 +84,7 @@ class MethodTableBuilder BOOL fHasLayout, BOOL fDelegate, BOOL fIsEnum, + BOOL fIsConstValue, const bmtGenericsInfo *bmtGenericsInfo, LoaderAllocator *pAllocator, AllocMemTracker *pamTracker); diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index f4237a0d2b7a0..bc83c439c1ffc 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1339,54 +1339,17 @@ TypeHandle SigPointer::GetTypeHandleThrowing( case ELEMENT_TYPE_CTARG: { +#ifndef DACCESS_COMPILE CorElementType elemType; uint32_t cb; PCCOR_SIGNATURE elem; IfFailThrowBF(psig.GetConstTypeArg(&elemType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); - - // TODO: we need to make a MethodTable here. - // and changes to MethodTableBuilder are required as well. - _ASSERTE(!"NYI"); - - TypeHandle th = TypeHandle(); - th.AsMethodTable()->SetIsConstValue(); - - switch (elemType) - { - case ELEMENT_TYPE_BOOLEAN : - case ELEMENT_TYPE_CHAR : - case ELEMENT_TYPE_I1 : - case ELEMENT_TYPE_U1 : - th.AsMethodTable()->SetConstValue(elemType, *(uint8_t*)elem); - break; - case ELEMENT_TYPE_I2 : - case ELEMENT_TYPE_U2 : - th.AsMethodTable()->SetConstValue(elemType, *(uint16_t*)elem); - break; - case ELEMENT_TYPE_I4 : - case ELEMENT_TYPE_U4 : - IN_TARGET_32BIT(case ELEMENT_TYPE_I :) - IN_TARGET_32BIT(case ELEMENT_TYPE_U :) - th.AsMethodTable()->SetConstValue(elemType, *(uint32_t*)elem); - break; - case ELEMENT_TYPE_I8 : - case ELEMENT_TYPE_U8 : - IN_TARGET_64BIT(case ELEMENT_TYPE_I :) - IN_TARGET_64BIT(case ELEMENT_TYPE_U :) - th.AsMethodTable()->SetConstValue(elemType, *(uint64_t*)elem); - break; - case ELEMENT_TYPE_R4 : - th.AsMethodTable()->SetConstValue(elemType, *(float*)elem); - break; - case ELEMENT_TYPE_R8 : - th.AsMethodTable()->SetConstValue(elemType, *(double*)elem); - break; - default: - _ASSERTE(!"UNKNOWN CONST TYPE ARG TYPE"); - break; - } - - thRet = th; + ULONG value = *(ULONG*)elem; + thRet = ClassLoader::LoadConstValueTypeThrowing(elemType, value); +#else + DacNotImpl(); + thRet = TypeHandle(); +#endif break; } diff --git a/src/coreclr/vm/typectxt.h b/src/coreclr/vm/typectxt.h index 01bae5a42142d..d0fd0f699a0a9 100644 --- a/src/coreclr/vm/typectxt.h +++ b/src/coreclr/vm/typectxt.h @@ -11,7 +11,7 @@ //------------------------------------------------------------------------ // A signature type context gives the information necessary to interpret -// the ELEMENT_TYPE_VAR and ELEMENT_TYPE_MVAR elements of a regular +// the ELEMENT_TYPE_(C)VAR and ELEMENT_TYPE_M(C)VAR elements of a regular // metadata signature. These are usually stack allocated at appropriate // points where the SigPointer objects are created, or are allocated // inside a MetaSig (which are themselves normally stack allocated) diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index 8c486a4326aa5..e03098efbc48a 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -285,6 +285,12 @@ BOOL TypeDesc::IsConstGenericVariable() return CorTypeInfo::IsConstGenericVariable_NoThrow(GetInternalCorElementType()); } +BOOL TypeDesc::IsConstValue() +{ + LIMITED_METHOD_DAC_CONTRACT; + return CorTypeInfo::IsConstValue_NoThrow(GetInternalCorElementType()); +} + BOOL TypeDesc::IsFnPtr() { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 09083794923bd..e468a4ed17f18 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -106,6 +106,9 @@ class TypeDesc // CVAR, MCVAR BOOL IsConstGenericVariable(); + // CTARG + BOOL IsConstValue(); + // ELEMENT_TYPE_FNPTR BOOL IsFnPtr(); @@ -312,6 +315,42 @@ class ParamTypeDesc : public TypeDesc { RUNTIMETYPEHANDLE m_hExposedClassObject; }; +typedef DPTR(class ConstValueTypeDesc) PTR_ConstValueTypeDesc; + +class ConstValueTypeDesc : public TypeDesc +{ +public: +#ifndef DACCESS_COMPILE + + ConstValueTypeDesc(CorElementType type) : + TypeDesc(CorElementType::ELEMENT_TYPE_CTARG), m_type(type) + { + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + } + CONTRACTL_END; + + } + +#endif // #ifndef DACCESS_COMPILE + + // placement new operator + void* operator new(size_t size, void* spot) { LIMITED_METHOD_CONTRACT; return (spot); } + + CorElementType GetConstValueType() + { + LIMITED_METHOD_CONTRACT; + SUPPORTS_DAC; + + return m_type; + } + +private: + CorElementType m_type; +}; + /*************************************************************************/ // These are for verification of generic code and reflection over generic code. // Each TypeVarTypeDesc represents a class or method type variable, as specified by a GenericParam entry. @@ -324,8 +363,8 @@ class TypeVarTypeDesc : public TypeDesc #ifndef DACCESS_COMPILE - TypeVarTypeDesc(PTR_Module pModule, mdToken typeOrMethodDef, unsigned int index, mdGenericParam token) : - TypeDesc(GetTypeVarTokenType(pModule, typeOrMethodDef, token)) + TypeVarTypeDesc(PTR_Module pModule, mdToken typeOrMethodDef, mdToken type, unsigned int index, mdGenericParam token) : + TypeDesc(GetTypeVarTokenType(pModule, typeOrMethodDef, type, token)) { CONTRACTL { @@ -340,6 +379,7 @@ class TypeVarTypeDesc : public TypeDesc m_pModule = pModule; m_typeOrMethodDef = typeOrMethodDef; + m_type = type; m_token = token; m_index = index; m_hExposedClassObject = 0; @@ -347,12 +387,12 @@ class TypeVarTypeDesc : public TypeDesc m_numConstraints = (DWORD)-1; } - CorElementType GetTypeVarTokenType(PTR_Module pModule, mdToken typeOrMethodDef, mdGenericParam token) + CorElementType GetTypeVarTokenType(PTR_Module pModule, mdToken typeOrMethodDef, mdToken type, mdGenericParam token) { - mdToken tkType; - pModule->GetMDImport()->GetGenericParamProps(token, NULL, NULL, NULL, &tkType, NULL); + LIMITED_METHOD_CONTRACT; + BOOL isTypeDef = TypeFromToken(typeOrMethodDef) == mdtTypeDef; - if (RidFromToken(tkType)) + if (RidFromToken(type)) { return isTypeDef ? ELEMENT_TYPE_CVAR : ELEMENT_TYPE_MCVAR; } @@ -382,6 +422,13 @@ class TypeVarTypeDesc : public TypeDesc return m_index; } + mdToken GetType() + { + LIMITED_METHOD_CONTRACT; + SUPPORTS_DAC; + return m_type; + } + mdGenericParam GetToken() { LIMITED_METHOD_CONTRACT; @@ -475,6 +522,9 @@ class TypeVarTypeDesc : public TypeDesc // Declaring type or method mdToken m_typeOrMethodDef; + // the type of const type parameter if it is + mdToken m_type; + // Constraints, determined on first call to GetConstraints Volatile m_numConstraints; // -1 until number has been determined PTR_TypeHandle m_constraints; diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index 2402e6a76e21a..c24ee62690de1 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1043,6 +1043,21 @@ BOOL TypeHandle::IsConstValue() const return (!IsTypeDesc() && AsMethodTable()->IsConstValue()); } +template +T TypeHandle::GetConstValue() const +{ + LIMITED_METHOD_DAC_CONTRACT; + + return AsMethodTable()->GetConstValue(); +} + +CorElementType TypeHandle::GetConstValueType() const +{ + LIMITED_METHOD_DAC_CONTRACT; + + return AsMethodTable()->GetConstValueType(); +} + BOOL TypeHandle::IsRestored_NoLogging() const { LIMITED_METHOD_CONTRACT; diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index 79677ec5dc2ca..9b3c98a74d2d5 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -22,6 +22,7 @@ class TypeHandle; class Instantiation; class FnPtrTypeDesc; class ParamTypeDesc; +class ConstValueTypeDesc; class TypeVarTypeDesc; class MethodTable; class EEClass; @@ -39,6 +40,7 @@ struct CORINFO_CLASS_STRUCT_; typedef DPTR(class TypeVarTypeDesc) PTR_TypeVarTypeDesc; typedef SPTR(class FnPtrTypeDesc) PTR_FnPtrTypeDesc; typedef DPTR(class ParamTypeDesc) PTR_ParamTypeDesc; +typedef DPTR(class ConstValueTypeDesc) PTR_ConstValueTypeDesc; typedef DPTR(class TypeDesc) PTR_TypeDesc; typedef DPTR(class TypeHandle) PTR_TypeHandle; @@ -203,8 +205,6 @@ class TypeHandle BOOL IsFnPtrType() const; - BOOL IsConstValue() const; - inline PTR_MethodTable AsMethodTable() const; inline PTR_TypeDesc AsTypeDesc() const; @@ -482,6 +482,11 @@ class TypeHandle // CVAR, MCVAR BOOL IsConstGenericVariable() const; + // CTARG + BOOL IsConstValue() const; + template T GetConstValue() const; + CorElementType GetConstValueType() const; + // BYREF BOOL IsByRef() const; @@ -561,14 +566,15 @@ class TypeHandle union { - TADDR m_asTAddr; // we look at the low order bits + TADDR m_asTAddr; // we look at the low order bits #ifndef DACCESS_COMPILE - void * m_asPtr; - PTR_MethodTable m_asMT; - PTR_TypeDesc m_asTypeDesc; - PTR_ParamTypeDesc m_asParamTypeDesc; - PTR_TypeVarTypeDesc m_asTypeVarTypeDesc; - PTR_FnPtrTypeDesc m_asFnPtrTypeDesc; + void * m_asPtr; + PTR_MethodTable m_asMT; + PTR_TypeDesc m_asTypeDesc; + PTR_ParamTypeDesc m_asParamTypeDesc; + PTR_TypeVarTypeDesc m_asTypeVarTypeDesc; + PTR_FnPtrTypeDesc m_asFnPtrTypeDesc; + PTR_ConstValueTypeDesc m_asConstValueTypeDesc; #endif }; }; diff --git a/src/coreclr/vm/typekey.h b/src/coreclr/vm/typekey.h index 57044cc5f7aaa..347d012863e6d 100644 --- a/src/coreclr/vm/typekey.h +++ b/src/coreclr/vm/typekey.h @@ -57,6 +57,19 @@ class TypeKey DWORD m_numArgs; TypeHandle* m_pRetAndArgTypes; } asFnPtr; + + struct + { + TADDR m_valueType; + union { + uint8_t asUint8; + uint16_t asUint16; + uint32_t asUint32; + uint64_t asUint64; + float asFloat; + double asDouble; + } m_value; + } asConstValue; } u; public: @@ -99,6 +112,17 @@ class TypeKey u.asFnPtr.m_numArgs = numArgs; u.asFnPtr.m_pRetAndArgTypes = retAndArgTypes; } + + // Constructor for const value type + TypeKey(TypeHandle valueType, uint64_t value) + { + WRAPPER_NO_CONTRACT; + SUPPORTS_DAC; + PRECONDITION(CheckPointer(valueType)); + m_kind = ELEMENT_TYPE_CTARG; + u.asConstValue.m_value.asUint64 = value; + u.asConstValue.m_valueType = valueType.AsTAddr(); + } CorElementType GetKind() const { @@ -124,6 +148,22 @@ class TypeKey return TypeHandle::FromTAddr(u.asParamType.m_paramType); } + TypeHandle GetConstValueType() const + { + WRAPPER_NO_CONTRACT; + SUPPORTS_DAC; + PRECONDITION(m_kind == ELEMENT_TYPE_CTARG); + return TypeHandle::FromTAddr(u.asConstValue.m_valueType); + } + + uint64_t GetConstValue() const + { + WRAPPER_NO_CONTRACT; + SUPPORTS_DAC; + PRECONDITION(m_kind == ELEMENT_TYPE_CTARG); + return u.asConstValue.m_value.asUint64; + } + BOOL IsConstructed() const { LIMITED_METHOD_CONTRACT; diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 4a95d039ec4be..3e238df9ebb25 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -773,9 +773,9 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t _ASSERTE(TypeFromToken(mdOwner) == mdtTypeDef || TypeFromToken(mdOwner) == mdtMethodDef); - if (RidFromToken(mdType)) + if (ty.IsConstGenericVariable()) { - _ASSERTE(TypeFromToken(mdType) == mdtTypeSpec); + _ASSERTE(TypeFromToken(mdType) == mdtTypeSpec && RidFromToken(mdType)); tnb.Append(W("const ")); ULONG cb; PCCOR_SIGNATURE sig; @@ -888,6 +888,11 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t tnb.AddNameNoEscaping(W("")); } } + // or a const value + else if (ty.IsConstValue()) + { + + } // ...otherwise it's just a plain type def or an instantiated type else From 6d3c1f3a39742510d04b12d7c504828f3ff3d5db Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 26 Jul 2023 17:17:47 +0900 Subject: [PATCH 26/80] WIP: TypeLoader for const value --- src/coreclr/vm/clsload.cpp | 16 +++++++++++++--- src/coreclr/vm/typedesc.h | 24 +++++++++++++++++++++--- src/coreclr/vm/typehandle.cpp | 23 +++++++++++++++++++---- src/coreclr/vm/typehandle.h | 2 ++ src/coreclr/vm/typehandle.inl | 11 +++++++++++ src/coreclr/vm/typehash.cpp | 20 +++++++++++++++++++- src/coreclr/vm/typekey.h | 23 +++++++++++++++++++++++ 7 files changed, 108 insertions(+), 11 deletions(-) diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index e5ffb9a7ecc3b..3168aed06acd8 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -235,6 +235,8 @@ Module *ClassLoader::ComputeLoaderModule(TypeKey *typeKey) Instantiation()); else if (typeKey->GetKind() == ELEMENT_TYPE_FNPTR) return ComputeLoaderModuleForFunctionPointer(typeKey->GetRetAndArgTypes(), typeKey->GetNumArgs() + 1); + else if (typeKey->GetKind() == ELEMENT_TYPE_CTARG) + return typeKey->GetConstValueType().GetLoaderModule(); else return ComputeLoaderModuleForParamType(typeKey->GetElementType()); } @@ -1673,13 +1675,13 @@ TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, TypeHandle th = TypeHandle(CoreLibBinder::GetElementType(valueType)); TypeKey key(th, value); TypeHandle typeHnd = TypeHandle(); - _ASSERTE(!"NYI: Load const value TypeHandle."); + #ifndef DACCESS_COMPILE // If we got here, we now have to allocate a new const value type. // By definition, forbidgc-users aren't allowed to reach this point. CONSISTENCY_CHECK(!FORBIDGC_LOADER_USE_ENABLED()); - - RETURN(typeHnd); + Module *pLoaderModule = ComputeLoaderModule(&key); + RETURN(pLoaderModule->GetClassLoader()->LoadTypeHandleForTypeKey(&key, typeHnd, level)); #else DacNotImpl(); RETURN(typeHnd); @@ -3004,6 +3006,14 @@ TypeHandle ClassLoader::CreateTypeHandleForTypeKey(TypeKey* pKey, AllocMemTracke typeHnd = TypeHandle(new(mem) FnPtrTypeDesc(pKey->GetCallConv(), numArgs, pKey->GetRetAndArgTypes())); } + else if (pKey->GetKind() == ELEMENT_TYPE_CTARG) + { + Module *pLoaderModule = ComputeLoaderModule(pKey); + PREFIX_ASSUME(pLoaderModule != NULL); + BYTE* mem = (BYTE*) pamTracker->Track(pLoaderModule->GetAssembly()->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(sizeof(ConstValueTypeDesc)) + S_SIZE_T(sizeof(TypeHandle)))); + typeHnd = TypeHandle(new(mem) ConstValueTypeDesc(pKey->GetConstValueType(), pKey->GetConstValue())); + _ASSERTE(!"NYI: Build MethodTable for Const Value"); + } else { Module *pLoaderModule = ComputeLoaderModule(pKey); diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index e468a4ed17f18..4486197956b32 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -322,7 +322,7 @@ class ConstValueTypeDesc : public TypeDesc public: #ifndef DACCESS_COMPILE - ConstValueTypeDesc(CorElementType type) : + ConstValueTypeDesc(TypeHandle type, uint64_t value) : TypeDesc(CorElementType::ELEMENT_TYPE_CTARG), m_type(type) { CONTRACTL @@ -332,6 +332,7 @@ class ConstValueTypeDesc : public TypeDesc } CONTRACTL_END; + m_value.asUint64 = value; } #endif // #ifndef DACCESS_COMPILE @@ -339,16 +340,33 @@ class ConstValueTypeDesc : public TypeDesc // placement new operator void* operator new(size_t size, void* spot) { LIMITED_METHOD_CONTRACT; return (spot); } - CorElementType GetConstValueType() + TypeHandle GetConstValueType() { LIMITED_METHOD_CONTRACT; SUPPORTS_DAC; return m_type; } + + template + T GetConstValue() + { + LIMITED_METHOD_CONTRACT; + SUPPORTS_DAC; + + return *(T*)&m_value; + } private: - CorElementType m_type; + TypeHandle m_type; + union { + uint8_t asUint8; + uint16_t asUint16; + uint32_t asUint32; + uint64_t asUint64; + float asFloat; + double asDouble; + } m_value; }; /*************************************************************************/ diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index c24ee62690de1..6c71ed78441ca 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1040,7 +1040,8 @@ BOOL TypeHandle::IsConstValue() const { LIMITED_METHOD_DAC_CONTRACT; - return (!IsTypeDesc() && AsMethodTable()->IsConstValue()); + return (IsTypeDesc() && + (GetSignatureCorElementType() == ELEMENT_TYPE_CTARG)); } template @@ -1048,14 +1049,28 @@ T TypeHandle::GetConstValue() const { LIMITED_METHOD_DAC_CONTRACT; - return AsMethodTable()->GetConstValue(); + if (!IsTypeDesc()) + { + return AsMethodTable()->GetConstValue(); + } + else + { + return AsConstValue()->GetConstValue(); + } } CorElementType TypeHandle::GetConstValueType() const { LIMITED_METHOD_DAC_CONTRACT; - - return AsMethodTable()->GetConstValueType(); + + if (!IsTypeDesc()) + { + return AsMethodTable()->GetConstValueType(); + } + else + { + return AsConstValue()->GetConstValueType().GetInternalCorElementType(); + } } BOOL TypeHandle::IsRestored_NoLogging() const diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index 9b3c98a74d2d5..bc457bd36603a 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -519,6 +519,8 @@ class TypeHandle inline BOOL HasTypeEquivalence() const; FnPtrTypeDesc* AsFnPtrType() const; + + ConstValueTypeDesc* AsConstValue() const; TypeVarTypeDesc* AsGenericVariable() const; diff --git a/src/coreclr/vm/typehandle.inl b/src/coreclr/vm/typehandle.inl index dca823aff6d16..97a851030cbb5 100644 --- a/src/coreclr/vm/typehandle.inl +++ b/src/coreclr/vm/typehandle.inl @@ -98,6 +98,17 @@ inline FnPtrTypeDesc* TypeHandle::AsFnPtrType() const return result; } +inline ConstValueTypeDesc* TypeHandle::AsConstValue() const +{ + LIMITED_METHOD_DAC_CONTRACT; + + _ASSERTE(IsConstValue()); + + ConstValueTypeDesc* result = PTR_ConstValueTypeDesc(m_asTAddr - 2); + PREFIX_ASSUME(result != NULL); + return result; +} + inline TypeVarTypeDesc* TypeHandle::AsGenericVariable() const { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index dfc355c3fafba..ba539eda7d698 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -197,6 +197,15 @@ static DWORD HashParamType(CorElementType kind, TypeHandle typeParam) return (DWORD)dwHash; } +static DWORD HashConstValueType(TypeHandle valueType, uint64_t value) +{ + WRAPPER_NO_CONTRACT; + INT_PTR dwHash = 5381; + dwHash = ((dwHash << 5) + dwHash) ^ valueType.AsTAddr(); + dwHash = ((dwHash << 5) + dwHash) ^ value; + return (DWORD)dwHash; +} + // Calculate hash value from type handle static DWORD HashTypeHandle(TypeHandle t) { @@ -225,6 +234,11 @@ static DWORD HashTypeHandle(TypeHandle t) FnPtrTypeDesc* pTD = t.AsFnPtrType(); retVal = HashFnPtrType(pTD->GetCallConv(), pTD->GetNumArgs(), pTD->GetRetAndArgTypesPointer()); } + else if (t.IsConstValue()) + { + ConstValueTypeDesc* pTD = t.AsConstValue(); + retVal = HashConstValueType(pTD->GetConstValueType(), pTD->GetConstValue()); + } else if (t.IsGenericVariable()) { _ASSERTE(!"Generic variables are unexpected here."); @@ -259,6 +273,10 @@ DWORD HashTypeKey(TypeKey* pKey) { return HashFnPtrType(pKey->GetCallConv(), pKey->GetNumArgs(), pKey->GetRetAndArgTypes()); } + else if (pKey->GetKind() == ELEMENT_TYPE_CTARG) + { + return HashConstValueType(pKey->GetConstValueType(), pKey->GetConstValue()); + } else { return HashParamType(pKey->GetKind(), pKey->GetElementType()); @@ -528,7 +546,7 @@ VOID EETypeHashTable::InsertValue(TypeHandle data) PRECONDITION(IsUnsealed()); // If we are sealed then we should not be adding to this hashtable PRECONDITION(CheckPointer(data)); PRECONDITION(!data.IsGenericTypeDefinition()); // Generic type defs live in typedef table (availableClasses) - PRECONDITION(data.HasInstantiation() || data.HasTypeParam() || data.IsFnPtrType()); // It's an instantiated type or an array/ptr/byref type + PRECONDITION(data.HasInstantiation() || data.HasTypeParam() || data.IsFnPtrType() || data.IsConstValue()); // It's an instantiated type or an array/ptr/byref/const type PRECONDITION(m_pModule == NULL || GetModule()->IsTenured()); // Destruct won't destruct m_pAvailableParamTypes for non-tenured modules - so make sure no one tries to insert one before the Module has been tenured } CONTRACTL_END diff --git a/src/coreclr/vm/typekey.h b/src/coreclr/vm/typekey.h index 347d012863e6d..0a2f1705575b3 100644 --- a/src/coreclr/vm/typekey.h +++ b/src/coreclr/vm/typekey.h @@ -280,6 +280,29 @@ class TypeKey return pKey1->u.asParamType.m_paramType == pKey2->u.asParamType.m_paramType && pKey1->u.asParamType.m_rank == pKey2->u.asParamType.m_rank; } + else if (pKey1->m_kind == ELEMENT_TYPE_CTARG) + { + if (pKey1->u.asConstValue.m_valueType != pKey2->u.asConstValue.m_valueType) + { + return FALSE; + } + CorElementType valueType = TypeHandle::FromTAddr(pKey1->u.asConstValue.m_valueType).GetInternalCorElementType(); + _ASSERTE(valueType > ELEMENT_TYPE_VOID); + if (valueType <= ELEMENT_TYPE_U1) + return pKey1->u.asConstValue.m_value.asUint8 == pKey2->u.asConstValue.m_value.asUint8; + if (valueType <= ELEMENT_TYPE_U2) + return pKey1->u.asConstValue.m_value.asUint16 == pKey2->u.asConstValue.m_value.asUint16; + if (valueType <= ELEMENT_TYPE_U4) + return pKey1->u.asConstValue.m_value.asUint32 == pKey2->u.asConstValue.m_value.asUint32; + if (valueType <= ELEMENT_TYPE_U8) + return pKey1->u.asConstValue.m_value.asUint64 == pKey2->u.asConstValue.m_value.asUint64; + if (valueType == ELEMENT_TYPE_R4) + return pKey1->u.asConstValue.m_value.asFloat == pKey2->u.asConstValue.m_value.asFloat; + if (valueType == ELEMENT_TYPE_R8) + return pKey1->u.asConstValue.m_value.asDouble == pKey2->u.asConstValue.m_value.asDouble; + _ASSERTE(!"INVALID CONST TYPE ARG TYPE"); + return FALSE; + } else { _ASSERTE(pKey1->m_kind == ELEMENT_TYPE_FNPTR); From 87d80068cb240264e218c59e8ca02d6b3ffd8e77 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 26 Jul 2023 19:39:09 +0900 Subject: [PATCH 27/80] Complete class loader implementation --- src/coreclr/inc/cor.h | 12 ----- src/coreclr/inc/sigparser.h | 19 +++++++ src/coreclr/utilcode/sigparser.cpp | 5 ++ src/coreclr/vm/class.h | 34 ------------ src/coreclr/vm/clsload.cpp | 3 +- src/coreclr/vm/clsload.hpp | 1 + src/coreclr/vm/clsload.inl | 14 +++++ src/coreclr/vm/method.hpp | 1 - src/coreclr/vm/methodtable.h | 31 +---------- src/coreclr/vm/methodtable.inl | 46 ---------------- src/coreclr/vm/methodtablebuilder.cpp | 4 -- src/coreclr/vm/typedesc.cpp | 7 ++- src/coreclr/vm/typehandle.cpp | 20 ++----- src/coreclr/vm/typestring.cpp | 78 ++++++++++++++++++++++++++- src/coreclr/vm/typestring.h | 1 + src/coreclr/vm/vars.hpp | 1 - 16 files changed, 129 insertions(+), 148 deletions(-) diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index d43ece2c1173f..6d9b8c5bc9f31 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -141,14 +141,6 @@ typedef UNALIGNED void const *UVCP_CONSTANT; #define TARGET_MAIN_CLR_DLL_NAME_W MAKE_TARGET_DLLNAME_W(MAIN_CLR_MODULE_NAME_W) #define TARGET_MAIN_CLR_DLL_NAME_A MAKE_TARGET_DLLNAME_A(MAIN_CLR_MODULE_NAME_A) -#ifdef TARGET_64BIT -#define IN_TARGET_64BIT(x) x -#define IN_TARGET_32BIT(x) -#else -#define IN_TARGET_64BIT(x) -#define IN_TARGET_32BIT(x) x -#endif - //***************************************************************************** //***************************************************************************** // @@ -1833,15 +1825,11 @@ inline ULONG CorSigUncompressConstTypeArgData( case ELEMENT_TYPE_I4 : case ELEMENT_TYPE_U4 : case ELEMENT_TYPE_R4 : - IN_TARGET_32BIT(case ELEMENT_TYPE_U:) - IN_TARGET_32BIT(case ELEMENT_TYPE_I:) size = size << 2; break; case ELEMENT_TYPE_I8 : case ELEMENT_TYPE_U8 : case ELEMENT_TYPE_R8 : - IN_TARGET_64BIT(case ELEMENT_TYPE_U:) - IN_TARGET_64BIT(case ELEMENT_TYPE_I:) size = size << 3; break; default: diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index c79b3c5aaa53f..1b0f687765602 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -160,6 +160,25 @@ class SigParser return hr; } + //------------------------------------------------------------------------ + // Remove one compressed const type argument value (using CorSigUncompressConstArgData) + // from the head of the stream and return it. + //------------------------------------------------------------------------ + __checkReturn + FORCEINLINE HRESULT GetConstArgData(PCCOR_SIGNATURE* pData, uint32_t* pCb) + { + WRAPPER_NO_CONTRACT; + SUPPORTS_DAC; + + uint32_t sizeOfData = 0; + + sizeOfData = CorSigUncompressConstTypeArgData(m_ptr); + SkipBytes(sizeOfData); + if (pCb) *pCb = sizeOfData; + if (pData) *pData = m_ptr; + + return S_OK; + } //------------------------------------------------------------------------- // Remove one byte and return it. diff --git a/src/coreclr/utilcode/sigparser.cpp b/src/coreclr/utilcode/sigparser.cpp index 272b97ae68b88..06a7b04508d61 100644 --- a/src/coreclr/utilcode/sigparser.cpp +++ b/src/coreclr/utilcode/sigparser.cpp @@ -38,8 +38,13 @@ HRESULT SigParser::SkipExactlyOne() break; case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: IfFailRet(GetData(NULL)); // Skip variable number break; + case ELEMENT_TYPE_CTARG: + IfFailRet(GetConstArgData(NULL, NULL)); + break; case ELEMENT_TYPE_VAR_ZAPSIG: IfFailRet(GetData(NULL)); // Skip RID break; diff --git a/src/coreclr/vm/class.h b/src/coreclr/vm/class.h index d08e9ec38665c..3201d756109a2 100644 --- a/src/coreclr/vm/class.h +++ b/src/coreclr/vm/class.h @@ -66,7 +66,6 @@ class ArrayClass; class ArrayMethodDesc; class Assembly; class ClassLoader; -class ConstValueClass; class DictionaryLayout; class FCallMethodDesc; class EEClass; @@ -2026,39 +2025,6 @@ class DelegateEEClass : public EEClass }; -typedef DPTR(ConstValueClass) PTR_ConstValueClass; - -class ConstValueClass : public EEClass -{ -private: - DAC_ALIGNAS(EEClass) // Align the first member to the alignment of the base class - ULONG m_value; - CorElementType m_type; - -public: -#ifndef DACCESS_COMPILE - ConstValueClass() : EEClass(sizeof(ConstValueClass)) { LIMITED_METHOD_CONTRACT; } -#endif // !DACCESS_COMPILE - - CorElementType GetValueType() { - LIMITED_METHOD_CONTRACT; - return m_type; - } - - template - void SetValue(CorElementType type, T value) { - LIMITED_METHOD_CONTRACT; - m_value = *(ULONG*)(void*)&value; - m_type = type; - } - - template - T GetValue() { - LIMITED_METHOD_CONTRACT; - return *(T*)(void*)&m_value; - } -}; - typedef DPTR(ArrayClass) PTR_ArrayClass; diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index 3168aed06acd8..6abdba0f6dc76 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -236,7 +236,7 @@ Module *ClassLoader::ComputeLoaderModule(TypeKey *typeKey) else if (typeKey->GetKind() == ELEMENT_TYPE_FNPTR) return ComputeLoaderModuleForFunctionPointer(typeKey->GetRetAndArgTypes(), typeKey->GetNumArgs() + 1); else if (typeKey->GetKind() == ELEMENT_TYPE_CTARG) - return typeKey->GetConstValueType().GetLoaderModule(); + return ComputeLoaderModuleForConstValue(typeKey->GetConstValueType()); else return ComputeLoaderModuleForParamType(typeKey->GetElementType()); } @@ -3012,7 +3012,6 @@ TypeHandle ClassLoader::CreateTypeHandleForTypeKey(TypeKey* pKey, AllocMemTracke PREFIX_ASSUME(pLoaderModule != NULL); BYTE* mem = (BYTE*) pamTracker->Track(pLoaderModule->GetAssembly()->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(sizeof(ConstValueTypeDesc)) + S_SIZE_T(sizeof(TypeHandle)))); typeHnd = TypeHandle(new(mem) ConstValueTypeDesc(pKey->GetConstValueType(), pKey->GetConstValue())); - _ASSERTE(!"NYI: Build MethodTable for Const Value"); } else { diff --git a/src/coreclr/vm/clsload.hpp b/src/coreclr/vm/clsload.hpp index a776089e73466..891c5b2da3136 100644 --- a/src/coreclr/vm/clsload.hpp +++ b/src/coreclr/vm/clsload.hpp @@ -566,6 +566,7 @@ class ClassLoader static Module * ComputeLoaderModule(TypeKey * typeKey); inline static PTR_Module ComputeLoaderModuleForFunctionPointer(TypeHandle * pRetAndArgTypes, DWORD NumArgsPlusRetType); inline static PTR_Module ComputeLoaderModuleForParamType(TypeHandle paramType); + inline static PTR_Module ComputeLoaderModuleForConstValue(TypeHandle valueType); private: static PTR_Module ComputeLoaderModuleWorker(Module *pDefinitionModule, // the module that declares the generic type or method diff --git a/src/coreclr/vm/clsload.inl b/src/coreclr/vm/clsload.inl index d12b81f162a93..3bfd7c391770f 100644 --- a/src/coreclr/vm/clsload.inl +++ b/src/coreclr/vm/clsload.inl @@ -56,6 +56,20 @@ inline PTR_Module ClassLoader::ComputeLoaderModuleForParamType(TypeHandle paramT return paramType.GetLoaderModule(); } +inline PTR_Module ClassLoader::ComputeLoaderModuleForConstValue(TypeHandle type) +{ + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + MODE_ANY; + SUPPORTS_DAC; + } + CONTRACTL_END; + + return type.GetLoaderModule(); +} + //****************************************************************************** inline void AccessCheckOptions::Initialize( diff --git a/src/coreclr/vm/method.hpp b/src/coreclr/vm/method.hpp index 81e02380b49be..a315ca2d6fcf7 100644 --- a/src/coreclr/vm/method.hpp +++ b/src/coreclr/vm/method.hpp @@ -192,7 +192,6 @@ class MethodDesc friend class EEClass; friend class MethodTableBuilder; friend class ArrayClass; - friend class ConstValueClass; friend class NDirect; friend class MethodDescChunk; friend class InstantiatedMethodDesc; diff --git a/src/coreclr/vm/methodtable.h b/src/coreclr/vm/methodtable.h index 4d28f210fb8cf..fb29231714d7a 100644 --- a/src/coreclr/vm/methodtable.h +++ b/src/coreclr/vm/methodtable.h @@ -34,7 +34,6 @@ class AppDomain; class ArrayClass; class ArrayMethodDesc; class ClassLoader; -class ConstValueClass; class FCallMethodDesc; class EEClass; class EnCFieldDesc; @@ -1019,34 +1018,6 @@ class MethodTable void DoFullyLoad(Generics::RecursionGraph * const pVisited, const ClassLoadLevel level, DFLPendingList * const pPending, BOOL * const pfBailed, const InstantiationContext * const pInstContext); - //------------------------------------------------------------------- - // METHOD TABLES AS CONST VALUES - // - // A MethodTable can represent a const value such as an integer - // or a floating-point - // - - inline BOOL IsConstValue() - { - LIMITED_METHOD_DAC_CONTRACT; - return GetFlag(enum_flag_Category_Mask) == enum_flag_Category_ConstValue; - } - - inline void SetIsConstValue() - { - LIMITED_METHOD_DAC_CONTRACT; - _ASSERTE(GetFlag(enum_flag_Category_Mask) == 0); - SetFlag(enum_flag_Category_ConstValue); - } - - inline CorElementType GetConstValueType(); - - template - inline T GetConstValue(); - - template - inline void SetConstValue(CorElementType type, T value); - //------------------------------------------------------------------- // METHOD TABLES AS TYPE DESCRIPTORS // @@ -3448,7 +3419,7 @@ public : enum_flag_Category_IfArrayThenSzArray = 0x00020000, // sub-category of Array enum_flag_Category_Interface = 0x000C0000, - enum_flag_Category_ConstValue = 0x000D0000, + enum_flag_Category_Unused_4 = 0x000D0000, enum_flag_Category_Unused_5 = 0x000E0000, enum_flag_Category_Unused_6 = 0x000F0000, diff --git a/src/coreclr/vm/methodtable.inl b/src/coreclr/vm/methodtable.inl index 9ff47a347953a..3a11158e097d0 100644 --- a/src/coreclr/vm/methodtable.inl +++ b/src/coreclr/vm/methodtable.inl @@ -302,52 +302,6 @@ inline BOOL MethodTable::IsValueType() return GetFlag(enum_flag_Category_ValueType_Mask) == enum_flag_Category_ValueType; } -/////========================================================================================== -//// Is the type a const value (for const type argument)? -//inline BOOL MethodTable::IsConstValue() -//{ -// LIMITED_METHOD_DAC_CONTRACT; -// return GetFlag(enum_flag_Category_Mask) == enum_flag_Category_ConstValue; -//} -// -/////========================================================================================== -//// Only used by const type argument -//inline void MethodTable::SetIsConstValue() -//{ -// LIMITED_METHOD_DAC_CONTRACT; -// _ASSERTE(GetFlag(enum_flag_Category_Mask) == 0); -// SetFlag(enum_flag_Category_ConstValue); -//} -// -///========================================================================================== -// Only used by const type argument -inline CorElementType MethodTable::GetConstValueType() -{ - LIMITED_METHOD_DAC_CONTRACT; - _ASSERTE (IsConstValue()); - return dac_cast(GetClass())->GetValueType(); -} - -///========================================================================================== -// Only used by const type argument -template -inline T MethodTable::GetConstValue() -{ - LIMITED_METHOD_DAC_CONTRACT; - _ASSERTE (IsConstValue()); - return dac_cast(GetClass())->GetValue(); -} - -///========================================================================================== -// Only used by const type argument -template -inline void MethodTable::SetConstValue(CorElementType type, T value) -{ - LIMITED_METHOD_DAC_CONTRACT; - _ASSERTE (IsConstValue()); - dac_cast(GetClass())->SetValue(type, value); -} - //========================================================================================== inline CorElementType MethodTable::GetArrayElementType() { diff --git a/src/coreclr/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp index 1f16bca6ec096..bc587325829d8 100644 --- a/src/coreclr/vm/methodtablebuilder.cpp +++ b/src/coreclr/vm/methodtablebuilder.cpp @@ -115,10 +115,6 @@ MethodTableBuilder::CreateClass( Module *pModule, { pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) DelegateEEClass(); } - else if (fIsConstValue) - { - pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) ConstValueClass(); - } else { pEEClass = new (pAllocator->GetLowFrequencyHeap(), pamTracker) EEClass(sizeof(EEClass)); diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index e03098efbc48a..d684fbe0dcba2 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -72,6 +72,11 @@ PTR_Module TypeDesc::GetLoaderModule() { return dac_cast(this)->GetModule(); } + else if (IsConstValue()) + { + PTR_ConstValueTypeDesc asConstValue = dac_cast(this); + return ClassLoader::ComputeLoaderModuleForConstValue(asConstValue->GetConstValueType()); + } else { PTR_Module retVal = NULL; @@ -144,7 +149,7 @@ PTR_Module TypeDesc::GetModule() { return asVar->GetModule(); } - _ASSERTE(GetInternalCorElementType() == ELEMENT_TYPE_FNPTR); + _ASSERTE(GetInternalCorElementType() == ELEMENT_TYPE_FNPTR || GetInternalCorElementType() == ELEMENT_TYPE_CTARG); return GetLoaderModule(); } diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index 6c71ed78441ca..9f6f2207232bc 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1049,28 +1049,16 @@ T TypeHandle::GetConstValue() const { LIMITED_METHOD_DAC_CONTRACT; - if (!IsTypeDesc()) - { - return AsMethodTable()->GetConstValue(); - } - else - { - return AsConstValue()->GetConstValue(); - } + _ASSERTE(IsTypeDesc()); + return AsConstValue()->GetConstValue(); } CorElementType TypeHandle::GetConstValueType() const { LIMITED_METHOD_DAC_CONTRACT; - if (!IsTypeDesc()) - { - return AsMethodTable()->GetConstValueType(); - } - else - { - return AsConstValue()->GetConstValueType().GetInternalCorElementType(); - } + _ASSERTE(IsTypeDesc()); + return AsConstValue()->GetConstValueType().GetInternalCorElementType(); } BOOL TypeHandle::IsRestored_NoLogging() const diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 3e238df9ebb25..616c902a0a064 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -891,7 +891,11 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t // or a const value else if (ty.IsConstValue()) { - + tnb.Append(W("const ")); + AppendType(tnb, ty.AsConstValue()->GetConstValueType(), Instantiation(), format); + tnb.Append(W("(")); + AppendConstValue(tnb, ty.AsConstValue()->GetConstValueType().GetInternalCorElementType(), ty.AsConstValue()->GetConstValue()); + tnb.Append(W(")")); } // ...otherwise it's just a plain type def or an instantiated type @@ -1226,6 +1230,15 @@ void TypeString::AppendTypeKey(TypeNameBuilder& tnb, TypeKey *pTypeKey, DWORD fo { RETURN; } + else if (kind == ELEMENT_TYPE_CTARG) + { + tnb.Append(W("const ")); + TypeHandle valueType = pTypeKey->GetConstValueType(); + AppendType(tnb, valueType, Instantiation(), format); + tnb.Append(W("(")); + AppendConstValue(tnb, valueType.GetInternalCorElementType(), pTypeKey->GetConstValue()); + tnb.Append(W(")")); + } // ...otherwise it's just a plain type def or an instantiated type else @@ -1286,6 +1299,69 @@ void TypeString::AppendTypeKey(SString& ss, TypeKey *pTypeKey, DWORD format) RETURN; } +void TypeString::AppendConstValue(TypeNameBuilder& tnb, CorElementType valueType, uint64_t value) +{ + CONTRACT_VOID + { + MODE_ANY; + GC_NOTRIGGER; + THROWS; + } + CONTRACT_END + + WCHAR buffer[64]{}; + SString pValueString = SString(buffer, 64); + switch (valueType) + { + case ELEMENT_TYPE_BOOLEAN: + if (*(uint8_t*)&value == 0) + pValueString.Printf("false"); + else + pValueString.Printf("true"); + break; + case ELEMENT_TYPE_CHAR: + pValueString.Printf("%c", *(char*)&value); + break; + case ELEMENT_TYPE_I1: + pValueString.Printf("%hhd", *(uint8_t*)&value); + break; + case ELEMENT_TYPE_U1: + pValueString.Printf("%hhu", *(int8_t*)&value); + break; + case ELEMENT_TYPE_I2: + pValueString.Printf("%hd", *(uint16_t*)&value); + break; + case ELEMENT_TYPE_U2: + pValueString.Printf("%hu", *(int16_t*)&value); + break; + case ELEMENT_TYPE_I4: + pValueString.Printf("%d", *(uint32_t*)&value); + break; + case ELEMENT_TYPE_U4: + pValueString.Printf("%u", *(int32_t*)&value); + break; + case ELEMENT_TYPE_I8: + pValueString.Printf("%lld", *(uint64_t*)&value); + break; + case ELEMENT_TYPE_U8: + pValueString.Printf("%llu", *(int64_t*)&value); + break; + case ELEMENT_TYPE_R4: + pValueString.Printf("%f", *(float*)&value); + break; + case ELEMENT_TYPE_R8: + pValueString.Printf("%lf", *(double*)&value); + break; + default: + _ASSERTE(!"UNKONWN CONST VALUE TYPE"); + pValueString.Printf("/* UNKNOWN CONST VALUE*/"); + break; + } + tnb.Append(pValueString.GetUnicode()); + + RETURN; +} + /*static*/ void TypeString::EscapeSimpleTypeName(SString* ssTypeName, SString* ssEscapedTypeName) { diff --git a/src/coreclr/vm/typestring.h b/src/coreclr/vm/typestring.h index 8f00e7ebbd3f8..a88ffc22c60cb 100644 --- a/src/coreclr/vm/typestring.h +++ b/src/coreclr/vm/typestring.h @@ -204,6 +204,7 @@ class TypeString static void AppendInst(TypeNameBuilder& tnb, Instantiation inst, DWORD format = FormatNamespace); static void AppendType(TypeNameBuilder& tnb, TypeHandle t, Instantiation typeInstantiation, DWORD format = FormatNamespace); // ???? static void AppendTypeKey(TypeNameBuilder& tnb, TypeKey *pTypeKey, DWORD format = FormatNamespace); + static void AppendConstValue(TypeNameBuilder& tnb, CorElementType valueType, uint64_t value); static void AppendParamTypeQualifier(TypeNameBuilder& tnb, CorElementType kind, DWORD rank); static void EscapeSimpleTypeName(SString* ssTypeName, SString* ssEscapedTypeName); static bool ContainsReservedChar(LPCWSTR pTypeName); diff --git a/src/coreclr/vm/vars.hpp b/src/coreclr/vm/vars.hpp index bf37a22d6fdf4..dd92ee7b12fde 100644 --- a/src/coreclr/vm/vars.hpp +++ b/src/coreclr/vm/vars.hpp @@ -74,7 +74,6 @@ class IGCHeap; class Object; class StringObject; class ArrayClass; -class ConstValueClass; class MethodTable; class MethodDesc; class SyncBlockCache; From 5dbda0ae787dbe728a7bf24d447db178a65b9e71 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 26 Jul 2023 21:57:59 +0900 Subject: [PATCH 28/80] Use AppendTypeDef for const generic variable typestring --- src/coreclr/vm/typehandle.h | 4 +-- src/coreclr/vm/typestring.cpp | 50 +++-------------------------------- 2 files changed, 6 insertions(+), 48 deletions(-) diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index bc457bd36603a..c68b5d46d770e 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -476,10 +476,10 @@ class TypeHandle // ARRAY or SZARRAY BOOL IsArray() const; - // VAR or MVAR + // VAR or MVAR or CVAR or MCVAR BOOL IsGenericVariable() const; - // CVAR, MCVAR + // CVAR or MCVAR BOOL IsConstGenericVariable() const; // CTARG diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 616c902a0a064..d4b55153d58f3 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -781,50 +781,8 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t PCCOR_SIGNATURE sig; IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &sig, &cb)); _ASSERTE(cb == 1); - LPCWSTR cnsTypeName; - switch (*sig) - { - case ELEMENT_TYPE_BOOLEAN: - cnsTypeName = W("bool"); - break; - case ELEMENT_TYPE_CHAR: - cnsTypeName = W("char"); - break; - case ELEMENT_TYPE_I1: - cnsTypeName = W("sbyte"); - break; - case ELEMENT_TYPE_U1: - cnsTypeName = W("byte"); - break; - case ELEMENT_TYPE_I2: - cnsTypeName = W("short"); - break; - case ELEMENT_TYPE_U2: - cnsTypeName = W("ushort"); - break; - case ELEMENT_TYPE_I4: - cnsTypeName = W("int"); - break; - case ELEMENT_TYPE_U4: - cnsTypeName = W("uint"); - break; - case ELEMENT_TYPE_I8: - cnsTypeName = W("long"); - break; - case ELEMENT_TYPE_U8: - cnsTypeName = W("ulong"); - break; - case ELEMENT_TYPE_R4: - cnsTypeName = W("float"); - break; - case ELEMENT_TYPE_R8: - cnsTypeName = W("double"); - break; - default: - cnsTypeName = W("/* UNKNOWN TYPE */"); - break; - } - tnb.Append(cnsTypeName); + PTR_MethodTable mtType = CoreLibBinder::GetElementType((CorElementType)*sig); + AppendTypeDef(tnb, mtType->GetModule()->GetMDImport(), mtType->GetCl(), format); tnb.Append(W(" ")); } @@ -892,7 +850,7 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t else if (ty.IsConstValue()) { tnb.Append(W("const ")); - AppendType(tnb, ty.AsConstValue()->GetConstValueType(), Instantiation(), format); + AppendType(tnb, ty.AsConstValue()->GetConstValueType(), Instantiation(), format & ~FormatAssembly); tnb.Append(W("(")); AppendConstValue(tnb, ty.AsConstValue()->GetConstValueType().GetInternalCorElementType(), ty.AsConstValue()->GetConstValue()); tnb.Append(W(")")); @@ -1234,7 +1192,7 @@ void TypeString::AppendTypeKey(TypeNameBuilder& tnb, TypeKey *pTypeKey, DWORD fo { tnb.Append(W("const ")); TypeHandle valueType = pTypeKey->GetConstValueType(); - AppendType(tnb, valueType, Instantiation(), format); + AppendType(tnb, valueType, Instantiation(), format & ~FormatAssembly); tnb.Append(W("(")); AppendConstValue(tnb, valueType.GetInternalCorElementType(), pTypeKey->GetConstValue()); tnb.Append(W(")")); From bb9a907a0ec0e66376a91c1e33eb4ade648725c3 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 26 Jul 2023 22:47:56 +0900 Subject: [PATCH 29/80] Handle CVAR and MCVAR in GetTypeHandleThrowing --- src/coreclr/vm/siginfo.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index bc83c439c1ffc..b83d31f8dfa16 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1286,6 +1286,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_VAR: + case ELEMENT_TYPE_CVAR: { if ((pSubst != NULL) && !pSubst->GetInst().IsNull()) { @@ -1320,6 +1321,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_MCVAR: { thRet = (psig.GetTypeVariableThrowing(pModule, typ, fLoadTypes, pTypeContext)); if (fLoadTypes == ClassLoader::LoadTypes) @@ -1327,16 +1329,6 @@ TypeHandle SigPointer::GetTypeHandleThrowing( break; } - case ELEMENT_TYPE_CVAR: - { - break; - } - - case ELEMENT_TYPE_MCVAR: - { - break; - } - case ELEMENT_TYPE_CTARG: { #ifndef DACCESS_COMPILE From 5c5ad115bbafe46da1ce2282c33726f2d9a6a984 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 01:07:28 +0900 Subject: [PATCH 30/80] Updates to JIT-EE interfaces --- src/coreclr/inc/corinfo.h | 15 ++ src/coreclr/inc/icorjitinfoimpl_generated.h | 9 + src/coreclr/inc/jiteeversionguid.h | 10 +- src/coreclr/jit/ICorJitInfo_names_generated.h | 3 + .../jit/ICorJitInfo_wrapper_generated.hpp | 27 +++ src/coreclr/jit/compiler.h | 1 + src/coreclr/jit/eeinterface.cpp | 75 ++++++ .../JitInterface/CorInfoImpl_generated.cs | 216 +++++++++++------- .../ThunkGenerator/ThunkInput.txt | 4 + .../aot/jitinterface/jitinterface_generated.h | 30 +++ .../icorjitinfo_generated.cpp | 21 ++ .../icorjitinfo_generated.cpp | 18 ++ src/coreclr/vm/jitinterface.cpp | 74 +++++- src/coreclr/vm/typedesc.h | 5 +- src/coreclr/vm/typehandle.cpp | 5 +- src/coreclr/vm/typehandle.h | 2 +- src/coreclr/vm/typehash.cpp | 2 +- src/coreclr/vm/typestring.cpp | 2 +- 18 files changed, 418 insertions(+), 101 deletions(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index e799ef8448b43..c87f6a63b1cc1 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -2735,6 +2735,21 @@ class ICorStaticInfo CORINFO_HELPER_DESC * pAccessHelper /* If canAccessMethod returns something other than ALLOWED, then this is filled in. */ ) = 0; + + // Check if this is a const value + virtual bool isConstValue( + CORINFO_CLASS_HANDLE cls + ) = 0; + + // Return the const value if this is a const value type + virtual uint64_t getConstValue( + CORINFO_CLASS_HANDLE cls + ) = 0; + + // Return the type of the const value if this is a const value type + virtual CorInfoType getConstValueType( + CORINFO_CLASS_HANDLE cls + ) = 0; /**********************************************************************************/ // diff --git a/src/coreclr/inc/icorjitinfoimpl_generated.h b/src/coreclr/inc/icorjitinfoimpl_generated.h index 20ee55464b3c4..c035d2b89a491 100644 --- a/src/coreclr/inc/icorjitinfoimpl_generated.h +++ b/src/coreclr/inc/icorjitinfoimpl_generated.h @@ -360,6 +360,15 @@ void* getArrayInitializationData( CORINFO_FIELD_HANDLE field, uint32_t size) override; +bool isConstValue( + CORINFO_CLASS_HANDLE cls) override; + +uint64_t getConstValue( + CORINFO_CLASS_HANDLE cls) override; + +CorInfoType getConstValueType( + CORINFO_CLASS_HANDLE cls) override; + CorInfoIsAccessAllowedResult canAccessClass( CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index bcd85a573d69b..62a3fb0a2444d 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* cef79bc8-29bf-4f7b-9d05-9fc06832098c */ - 0xcef79bc8, - 0x29bf, - 0x4f7b, - {0x9d, 0x05, 0x9f, 0xc0, 0x68, 0x32, 0x09, 0x8c} +constexpr GUID JITEEVersionIdentifier = { /* 02935181-629f-418b-911f-04befa2e8e22 */ + 0x02935181, + 0x629f, + 0x418b, + {0x91, 0x1f, 0x04, 0xbe, 0xfa, 0x2e, 0x8e, 0x22} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/jit/ICorJitInfo_names_generated.h b/src/coreclr/jit/ICorJitInfo_names_generated.h index 79ca7d43da06e..3dc9b8f26e75b 100644 --- a/src/coreclr/jit/ICorJitInfo_names_generated.h +++ b/src/coreclr/jit/ICorJitInfo_names_generated.h @@ -90,6 +90,9 @@ DEF_CLR_API(isSDArray) DEF_CLR_API(getArrayRank) DEF_CLR_API(getArrayIntrinsicID) DEF_CLR_API(getArrayInitializationData) +DEF_CLR_API(isConstValue) +DEF_CLR_API(getConstValue) +DEF_CLR_API(getConstValueType) DEF_CLR_API(canAccessClass) DEF_CLR_API(printFieldName) DEF_CLR_API(getFieldClass) diff --git a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp index ae0b25b0a63cc..830ac0a05bd08 100644 --- a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp +++ b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp @@ -850,6 +850,33 @@ void* WrapICorJitInfo::getArrayInitializationData( return temp; } +bool WrapICorJitInfo::isConstValue( + CORINFO_CLASS_HANDLE cls) +{ + API_ENTER(isConstValue); + bool temp = wrapHnd->isConstValue(cls); + API_LEAVE(isConstValue); + return temp; +} + +uint64_t WrapICorJitInfo::getConstValue( + CORINFO_CLASS_HANDLE cls) +{ + API_ENTER(getConstValue); + uint64_t temp = wrapHnd->getConstValue(cls); + API_LEAVE(getConstValue); + return temp; +} + +CorInfoType WrapICorJitInfo::getConstValueType( + CORINFO_CLASS_HANDLE cls) +{ + API_ENTER(getConstValueType); + CorInfoType temp = wrapHnd->getConstValueType(cls); + API_LEAVE(getConstValueType); + return temp; +} + CorInfoIsAccessAllowedResult WrapICorJitInfo::canAccessClass( CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index c228810d4ee18..c27d411262377 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -7888,6 +7888,7 @@ class Compiler // functions exposed on top that have SPMI handling and additional buffer // handling. Note that the strings returned are never truncated here. void eePrintJitType(class StringPrinter* printer, var_types jitType); + void eePrintConstValue(class StringPrinter* printer, CorInfoType valueType, uint64_t value); void eePrintType(class StringPrinter* printer, CORINFO_CLASS_HANDLE clsHnd, bool includeInstantiation); void eePrintTypeOrJitAlias(class StringPrinter* printer, CORINFO_CLASS_HANDLE clsHnd, bool includeInstantiation); void eePrintMethod(class StringPrinter* printer, diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index d9852afb9e537..244c567060f3a 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -93,6 +93,77 @@ void Compiler::eePrintJitType(StringPrinter* printer, var_types jitType) printer->Append(varTypeName(jitType)); } +//------------------------------------------------------------------------ +// eePrintConstValue: +// Print a const value. +// +// Arguments: +// printer - the printer +// valueType - the value type +// value - the value +// +void Compiler::eePrintConstValue(StringPrinter* printer, CorInfoType valueType, uint64_t value) +{ + printer->Append("const "); + printer->Append(varTypeName(JitType2PreciseVarType(valueType))); + printer->Append("("); + char buffer[64]; + switch (valueType) + { + case CORINFO_TYPE_BOOL: + printer->Append(*(uint8_t*)&value == 0 ? "true" : "false"); + break; + case CORINFO_TYPE_CHAR: + sprintf_s(buffer, 64, "%c", *(char*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_BYTE: + sprintf_s(buffer, 64, "%hhd", *(int8_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_UBYTE: + sprintf_s(buffer, 64, "%hhu", *(uint8_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_SHORT: + sprintf_s(buffer, 64, "%hd", *(int16_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_USHORT: + sprintf_s(buffer, 64, "%hu", *(uint16_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_INT: + sprintf_s(buffer, 64, "%d", *(int32_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_UINT: + sprintf_s(buffer, 64, "%u", *(uint32_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_LONG: + sprintf_s(buffer, 64, "%lld", *(int64_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_ULONG: + sprintf_s(buffer, 64, "%llu", *(uint64_t*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_FLOAT: + sprintf_s(buffer, 64, "%f", *(float*)&value); + printer->Append(buffer); + break; + case CORINFO_TYPE_DOUBLE: + sprintf_s(buffer, 64, "%lf", *(double*)&value); + printer->Append(buffer); + break; + default: + _ASSERTE(!"UNKNOWN VALUE TYPE"); + break; + } + printer->Append(")"); +} + //------------------------------------------------------------------------ // eeAppendPrint: // Append the output of one of the JIT-EE 'print' functions to a StringPrinter. @@ -203,6 +274,10 @@ void Compiler::eePrintTypeOrJitAlias(StringPrinter* printer, CORINFO_CLASS_HANDL { eePrintType(printer, clsHnd, includeInstantiation); } + else if (typ == CORINFO_TYPE_CTARG) + { + eePrintConstValue(printer, info.compCompHnd->getConstValueType(clsHnd), info.compCompHnd->getConstValue(clsHnd)); + } else { eePrintJitType(printer, JitType2PreciseVarType(typ)); diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index 51d3f1ba7fb65..505d3b5498446 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -1285,6 +1285,51 @@ private static CorInfoArrayIntrinsic _getArrayIntrinsicID(IntPtr thisHandle, Int } } + [UnmanagedCallersOnly] + private static byte _isConstValue(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + { + var _this = GetThis(thisHandle); + try + { + return _this.isConstValue(cls) ? (byte)1 : (byte)0; + } + catch (Exception ex) + { + *ppException = _this.AllocException(ex); + return default; + } + } + + [UnmanagedCallersOnly] + private static unsigned long long _getConstValue(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + { + var _this = GetThis(thisHandle); + try + { + return _this.getConstValue(cls); + } + catch (Exception ex) + { + *ppException = _this.AllocException(ex); + return default; + } + } + + [UnmanagedCallersOnly] + private static CorInfoType _getConstValueType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + { + var _this = GetThis(thisHandle); + try + { + return _this.getConstValueType(cls); + } + catch (Exception ex) + { + *ppException = _this.AllocException(ex); + return default; + } + } + [UnmanagedCallersOnly] private static CorInfoIsAccessAllowedResult _canAccessClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_HELPER_DESC* pAccessHelper) { @@ -2507,7 +2552,7 @@ private static uint _getJitFlags(IntPtr thisHandle, IntPtr* ppException, CORJIT_ private static IntPtr GetUnmanagedCallbacks() { - void** callbacks = (void**)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 169); + void** callbacks = (void**)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 172); callbacks[0] = (delegate* unmanaged)&_isIntrinsic; callbacks[1] = (delegate* unmanaged)&_getMethodAttribs; @@ -2595,89 +2640,92 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[83] = (delegate* unmanaged)&_getArrayRank; callbacks[84] = (delegate* unmanaged)&_getArrayIntrinsicID; callbacks[85] = (delegate* unmanaged)&_getArrayInitializationData; - callbacks[86] = (delegate* unmanaged)&_canAccessClass; - callbacks[87] = (delegate* unmanaged)&_printFieldName; - callbacks[88] = (delegate* unmanaged)&_getFieldClass; - callbacks[89] = (delegate* unmanaged)&_getFieldType; - callbacks[90] = (delegate* unmanaged)&_getFieldOffset; - callbacks[91] = (delegate* unmanaged)&_getFieldInfo; - callbacks[92] = (delegate* unmanaged)&_getThreadLocalFieldInfo; - callbacks[93] = (delegate* unmanaged)&_getThreadLocalStaticBlocksInfo; - callbacks[94] = (delegate* unmanaged)&_isFieldStatic; - callbacks[95] = (delegate* unmanaged)&_getArrayOrStringLength; - callbacks[96] = (delegate* unmanaged)&_getBoundaries; - callbacks[97] = (delegate* unmanaged)&_setBoundaries; - callbacks[98] = (delegate* unmanaged)&_getVars; - callbacks[99] = (delegate* unmanaged)&_setVars; - callbacks[100] = (delegate* unmanaged)&_reportRichMappings; - callbacks[101] = (delegate* unmanaged)&_allocateArray; - callbacks[102] = (delegate* unmanaged)&_freeArray; - callbacks[103] = (delegate* unmanaged)&_getArgNext; - callbacks[104] = (delegate* unmanaged)&_getArgType; - callbacks[105] = (delegate* unmanaged)&_getExactClasses; - callbacks[106] = (delegate* unmanaged)&_getArgClass; - callbacks[107] = (delegate* unmanaged)&_getHFAType; - callbacks[108] = (delegate* unmanaged)&_runWithErrorTrap; - callbacks[109] = (delegate* unmanaged)&_runWithSPMIErrorTrap; - callbacks[110] = (delegate* unmanaged)&_getEEInfo; - callbacks[111] = (delegate* unmanaged)&_getJitTimeLogFilename; - callbacks[112] = (delegate* unmanaged)&_getMethodDefFromMethod; - callbacks[113] = (delegate* unmanaged)&_printMethodName; - callbacks[114] = (delegate* unmanaged)&_getMethodNameFromMetadata; - callbacks[115] = (delegate* unmanaged)&_getMethodHash; - callbacks[116] = (delegate* unmanaged)&_getSystemVAmd64PassStructInRegisterDescriptor; - callbacks[117] = (delegate* unmanaged)&_getLoongArch64PassStructInRegisterFlags; - callbacks[118] = (delegate* unmanaged)&_getRISCV64PassStructInRegisterFlags; - callbacks[119] = (delegate* unmanaged)&_getThreadTLSIndex; - callbacks[120] = (delegate* unmanaged)&_getAddrOfCaptureThreadGlobal; - callbacks[121] = (delegate* unmanaged)&_getHelperFtn; - callbacks[122] = (delegate* unmanaged)&_getFunctionEntryPoint; - callbacks[123] = (delegate* unmanaged)&_getFunctionFixedEntryPoint; - callbacks[124] = (delegate* unmanaged)&_getMethodSync; - callbacks[125] = (delegate* unmanaged)&_getLazyStringLiteralHelper; - callbacks[126] = (delegate* unmanaged)&_embedModuleHandle; - callbacks[127] = (delegate* unmanaged)&_embedClassHandle; - callbacks[128] = (delegate* unmanaged)&_embedMethodHandle; - callbacks[129] = (delegate* unmanaged)&_embedFieldHandle; - callbacks[130] = (delegate* unmanaged)&_embedGenericHandle; - callbacks[131] = (delegate* unmanaged)&_getLocationOfThisType; - callbacks[132] = (delegate* unmanaged)&_getAddressOfPInvokeTarget; - callbacks[133] = (delegate* unmanaged)&_GetCookieForPInvokeCalliSig; - callbacks[134] = (delegate* unmanaged)&_canGetCookieForPInvokeCalliSig; - callbacks[135] = (delegate* unmanaged)&_getJustMyCodeHandle; - callbacks[136] = (delegate* unmanaged)&_GetProfilingHandle; - callbacks[137] = (delegate* unmanaged)&_getCallInfo; - callbacks[138] = (delegate* unmanaged)&_getClassDomainID; - callbacks[139] = (delegate* unmanaged)&_getStaticFieldContent; - callbacks[140] = (delegate* unmanaged)&_getObjectContent; - callbacks[141] = (delegate* unmanaged)&_getStaticFieldCurrentClass; - callbacks[142] = (delegate* unmanaged)&_getVarArgsHandle; - callbacks[143] = (delegate* unmanaged)&_canGetVarArgsHandle; - callbacks[144] = (delegate* unmanaged)&_constructStringLiteral; - callbacks[145] = (delegate* unmanaged)&_emptyStringLiteral; - callbacks[146] = (delegate* unmanaged)&_getFieldThreadLocalStoreID; - callbacks[147] = (delegate* unmanaged)&_GetDelegateCtor; - callbacks[148] = (delegate* unmanaged)&_MethodCompileComplete; - callbacks[149] = (delegate* unmanaged)&_getTailCallHelpers; - callbacks[150] = (delegate* unmanaged)&_convertPInvokeCalliToCall; - callbacks[151] = (delegate* unmanaged)&_notifyInstructionSetUsage; - callbacks[152] = (delegate* unmanaged)&_updateEntryPointForTailCall; - callbacks[153] = (delegate* unmanaged)&_allocMem; - callbacks[154] = (delegate* unmanaged)&_reserveUnwindInfo; - callbacks[155] = (delegate* unmanaged)&_allocUnwindInfo; - callbacks[156] = (delegate* unmanaged)&_allocGCInfo; - callbacks[157] = (delegate* unmanaged)&_setEHcount; - callbacks[158] = (delegate* unmanaged)&_setEHinfo; - callbacks[159] = (delegate* unmanaged)&_logMsg; - callbacks[160] = (delegate* unmanaged)&_doAssert; - callbacks[161] = (delegate* unmanaged)&_reportFatalError; - callbacks[162] = (delegate* unmanaged)&_getPgoInstrumentationResults; - callbacks[163] = (delegate* unmanaged)&_allocPgoInstrumentationBySchema; - callbacks[164] = (delegate* unmanaged)&_recordCallSite; - callbacks[165] = (delegate* unmanaged)&_recordRelocation; - callbacks[166] = (delegate* unmanaged)&_getRelocTypeHint; - callbacks[167] = (delegate* unmanaged)&_getExpectedTargetArchitecture; - callbacks[168] = (delegate* unmanaged)&_getJitFlags; + callbacks[86] = (delegate* unmanaged)&_isConstValue; + callbacks[87] = (delegate* unmanaged)&_getConstValue; + callbacks[88] = (delegate* unmanaged)&_getConstValueType; + callbacks[89] = (delegate* unmanaged)&_canAccessClass; + callbacks[90] = (delegate* unmanaged)&_printFieldName; + callbacks[91] = (delegate* unmanaged)&_getFieldClass; + callbacks[92] = (delegate* unmanaged)&_getFieldType; + callbacks[93] = (delegate* unmanaged)&_getFieldOffset; + callbacks[94] = (delegate* unmanaged)&_getFieldInfo; + callbacks[95] = (delegate* unmanaged)&_getThreadLocalFieldInfo; + callbacks[96] = (delegate* unmanaged)&_getThreadLocalStaticBlocksInfo; + callbacks[97] = (delegate* unmanaged)&_isFieldStatic; + callbacks[98] = (delegate* unmanaged)&_getArrayOrStringLength; + callbacks[99] = (delegate* unmanaged)&_getBoundaries; + callbacks[100] = (delegate* unmanaged)&_setBoundaries; + callbacks[101] = (delegate* unmanaged)&_getVars; + callbacks[102] = (delegate* unmanaged)&_setVars; + callbacks[103] = (delegate* unmanaged)&_reportRichMappings; + callbacks[104] = (delegate* unmanaged)&_allocateArray; + callbacks[105] = (delegate* unmanaged)&_freeArray; + callbacks[106] = (delegate* unmanaged)&_getArgNext; + callbacks[107] = (delegate* unmanaged)&_getArgType; + callbacks[108] = (delegate* unmanaged)&_getExactClasses; + callbacks[109] = (delegate* unmanaged)&_getArgClass; + callbacks[110] = (delegate* unmanaged)&_getHFAType; + callbacks[111] = (delegate* unmanaged)&_runWithErrorTrap; + callbacks[112] = (delegate* unmanaged)&_runWithSPMIErrorTrap; + callbacks[113] = (delegate* unmanaged)&_getEEInfo; + callbacks[114] = (delegate* unmanaged)&_getJitTimeLogFilename; + callbacks[115] = (delegate* unmanaged)&_getMethodDefFromMethod; + callbacks[116] = (delegate* unmanaged)&_printMethodName; + callbacks[117] = (delegate* unmanaged)&_getMethodNameFromMetadata; + callbacks[118] = (delegate* unmanaged)&_getMethodHash; + callbacks[119] = (delegate* unmanaged)&_getSystemVAmd64PassStructInRegisterDescriptor; + callbacks[120] = (delegate* unmanaged)&_getLoongArch64PassStructInRegisterFlags; + callbacks[121] = (delegate* unmanaged)&_getRISCV64PassStructInRegisterFlags; + callbacks[122] = (delegate* unmanaged)&_getThreadTLSIndex; + callbacks[123] = (delegate* unmanaged)&_getAddrOfCaptureThreadGlobal; + callbacks[124] = (delegate* unmanaged)&_getHelperFtn; + callbacks[125] = (delegate* unmanaged)&_getFunctionEntryPoint; + callbacks[126] = (delegate* unmanaged)&_getFunctionFixedEntryPoint; + callbacks[127] = (delegate* unmanaged)&_getMethodSync; + callbacks[128] = (delegate* unmanaged)&_getLazyStringLiteralHelper; + callbacks[129] = (delegate* unmanaged)&_embedModuleHandle; + callbacks[130] = (delegate* unmanaged)&_embedClassHandle; + callbacks[131] = (delegate* unmanaged)&_embedMethodHandle; + callbacks[132] = (delegate* unmanaged)&_embedFieldHandle; + callbacks[133] = (delegate* unmanaged)&_embedGenericHandle; + callbacks[134] = (delegate* unmanaged)&_getLocationOfThisType; + callbacks[135] = (delegate* unmanaged)&_getAddressOfPInvokeTarget; + callbacks[136] = (delegate* unmanaged)&_GetCookieForPInvokeCalliSig; + callbacks[137] = (delegate* unmanaged)&_canGetCookieForPInvokeCalliSig; + callbacks[138] = (delegate* unmanaged)&_getJustMyCodeHandle; + callbacks[139] = (delegate* unmanaged)&_GetProfilingHandle; + callbacks[140] = (delegate* unmanaged)&_getCallInfo; + callbacks[141] = (delegate* unmanaged)&_getClassDomainID; + callbacks[142] = (delegate* unmanaged)&_getStaticFieldContent; + callbacks[143] = (delegate* unmanaged)&_getObjectContent; + callbacks[144] = (delegate* unmanaged)&_getStaticFieldCurrentClass; + callbacks[145] = (delegate* unmanaged)&_getVarArgsHandle; + callbacks[146] = (delegate* unmanaged)&_canGetVarArgsHandle; + callbacks[147] = (delegate* unmanaged)&_constructStringLiteral; + callbacks[148] = (delegate* unmanaged)&_emptyStringLiteral; + callbacks[149] = (delegate* unmanaged)&_getFieldThreadLocalStoreID; + callbacks[150] = (delegate* unmanaged)&_GetDelegateCtor; + callbacks[151] = (delegate* unmanaged)&_MethodCompileComplete; + callbacks[152] = (delegate* unmanaged)&_getTailCallHelpers; + callbacks[153] = (delegate* unmanaged)&_convertPInvokeCalliToCall; + callbacks[154] = (delegate* unmanaged)&_notifyInstructionSetUsage; + callbacks[155] = (delegate* unmanaged)&_updateEntryPointForTailCall; + callbacks[156] = (delegate* unmanaged)&_allocMem; + callbacks[157] = (delegate* unmanaged)&_reserveUnwindInfo; + callbacks[158] = (delegate* unmanaged)&_allocUnwindInfo; + callbacks[159] = (delegate* unmanaged)&_allocGCInfo; + callbacks[160] = (delegate* unmanaged)&_setEHcount; + callbacks[161] = (delegate* unmanaged)&_setEHinfo; + callbacks[162] = (delegate* unmanaged)&_logMsg; + callbacks[163] = (delegate* unmanaged)&_doAssert; + callbacks[164] = (delegate* unmanaged)&_reportFatalError; + callbacks[165] = (delegate* unmanaged)&_getPgoInstrumentationResults; + callbacks[166] = (delegate* unmanaged)&_allocPgoInstrumentationBySchema; + callbacks[167] = (delegate* unmanaged)&_recordCallSite; + callbacks[168] = (delegate* unmanaged)&_recordRelocation; + callbacks[169] = (delegate* unmanaged)&_getRelocTypeHint; + callbacks[170] = (delegate* unmanaged)&_getExpectedTargetArchitecture; + callbacks[171] = (delegate* unmanaged)&_getJitFlags; return (IntPtr)callbacks; } diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index e6892816cf410..67f350772542e 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -54,6 +54,7 @@ uint8_t*,byte* uint8_t**,byte** GSCookie*,IntPtr* GSCookie**,IntPtr** +uint64_t,unsigned long long bool*,ref bool BoolStar,byte*,bool*,bool* @@ -247,6 +248,9 @@ FUNCTIONS unsigned getArrayRank(CORINFO_CLASS_HANDLE cls) CorInfoArrayIntrinsic getArrayIntrinsicID(CORINFO_METHOD_HANDLE ftn) void* getArrayInitializationData(CORINFO_FIELD_HANDLE field, uint32_t size) + bool isConstValue(CORINFO_CLASS_HANDLE cls) + uint64_t getConstValue(CORINFO_CLASS_HANDLE cls) + CorInfoType getConstValueType(CORINFO_CLASS_HANDLE cls) CorInfoIsAccessAllowedResult canAccessClass(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_HELPER_DESC* pAccessHelper) size_t printFieldName(CORINFO_FIELD_HANDLE field, char* buffer, size_t bufferSize, size_t* pRequiredBufferSize) CORINFO_CLASS_HANDLE getFieldClass(CORINFO_FIELD_HANDLE field) diff --git a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h index 1fb8df9f2e0eb..aa101ace3bb45 100644 --- a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h +++ b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h @@ -97,6 +97,9 @@ struct JitInterfaceCallbacks unsigned (* getArrayRank)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); CorInfoArrayIntrinsic (* getArrayIntrinsicID)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_METHOD_HANDLE ftn); void* (* getArrayInitializationData)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field, uint32_t size); + bool (* isConstValue)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); + uint64_t (* getConstValue)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); + CorInfoType (* getConstValueType)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); CorInfoIsAccessAllowedResult (* canAccessClass)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_HELPER_DESC* pAccessHelper); size_t (* printFieldName)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field, char* buffer, size_t bufferSize, size_t* pRequiredBufferSize); CORINFO_CLASS_HANDLE (* getFieldClass)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field); @@ -1033,6 +1036,33 @@ class JitInterfaceWrapper : public ICorJitInfo return temp; } + virtual bool isConstValue( + CORINFO_CLASS_HANDLE cls) +{ + CorInfoExceptionClass* pException = nullptr; + bool temp = _callbacks->isConstValue(_thisHandle, &pException, cls); + if (pException != nullptr) throw pException; + return temp; +} + + virtual uint64_t getConstValue( + CORINFO_CLASS_HANDLE cls) +{ + CorInfoExceptionClass* pException = nullptr; + uint64_t temp = _callbacks->getConstValue(_thisHandle, &pException, cls); + if (pException != nullptr) throw pException; + return temp; +} + + virtual CorInfoType getConstValueType( + CORINFO_CLASS_HANDLE cls) +{ + CorInfoExceptionClass* pException = nullptr; + CorInfoType temp = _callbacks->getConstValueType(_thisHandle, &pException, cls); + if (pException != nullptr) throw pException; + return temp; +} + virtual CorInfoIsAccessAllowedResult canAccessClass( CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, diff --git a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp index bc95548b696a5..55e862be11ebe 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp @@ -695,6 +695,27 @@ void* interceptor_ICJI::getArrayInitializationData( return original_ICorJitInfo->getArrayInitializationData(field, size); } +bool interceptor_ICJI::isConstValue( + CORINFO_CLASS_HANDLE cls) +{ + mcs->AddCall("isConstValue"); + return original_ICorJitInfo->isConstValue(cls); +} + +uint64_t interceptor_ICJI::getConstValue( + CORINFO_CLASS_HANDLE cls) +{ + mcs->AddCall("getConstValue"); + return original_ICorJitInfo->getConstValue(cls); +} + +CorInfoType interceptor_ICJI::getConstValueType( + CORINFO_CLASS_HANDLE cls) +{ + mcs->AddCall("getConstValueType"); + return original_ICorJitInfo->getConstValueType(cls); +} + CorInfoIsAccessAllowedResult interceptor_ICJI::canAccessClass( CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, diff --git a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp index 1ec24e309490b..c3f472bc7bac4 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp @@ -609,6 +609,24 @@ void* interceptor_ICJI::getArrayInitializationData( return original_ICorJitInfo->getArrayInitializationData(field, size); } +bool interceptor_ICJI::isConstValue( + CORINFO_CLASS_HANDLE cls) +{ + return original_ICorJitInfo->isConstValue(cls); +} + +uint64_t interceptor_ICJI::getConstValue( + CORINFO_CLASS_HANDLE cls) +{ + return original_ICorJitInfo->getConstValue(cls); +} + +CorInfoType interceptor_ICJI::getConstValueType( + CORINFO_CLASS_HANDLE cls) +{ + return original_ICorJitInfo->getConstValueType(cls); +} + CorInfoIsAccessAllowedResult interceptor_ICJI::canAccessClass( CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index b80953bcc7233..c670ce6b35201 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -3041,11 +3041,13 @@ static bool IsSignatureForTypicalInstantiation(SigPointer sigptr, CorElementType { STANDARD_VM_CONTRACT; + CorElementType alternativeVarType = varType == ELEMENT_TYPE_VAR ? ELEMENT_TYPE_CVAR : ELEMENT_TYPE_MCVAR; + for (uint32_t i = 0; i < ntypars; i++) { CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type != varType) + if (type != varType || type != alternativeVarType) return false; uint32_t data; @@ -3162,7 +3164,7 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type == ELEMENT_TYPE_MVAR) + if (type == ELEMENT_TYPE_MVAR || type == ELEMENT_TYPE_MCVAR) { pResult->indirections = 2; pResult->testForNull = 0; @@ -3237,7 +3239,7 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type == ELEMENT_TYPE_VAR) + if (type == ELEMENT_TYPE_VAR || type == ELEMENT_TYPE_CVAR) { pResult->indirections = 3; pResult->testForNull = 0; @@ -4968,6 +4970,67 @@ CorInfoIsAccessAllowedResult CEEInfo::canAccessClass( return isAccessAllowed; } + +// Check if this is a const value +bool CEEInfo::isConstValue(CORINFO_CLASS_HANDLE cls) +{ + CONTRACTL { + THROWS; + GC_TRIGGERS; + MODE_PREEMPTIVE; + } CONTRACTL_END; + + bool result = false; + + JIT_TO_EE_TRANSITION(); + + result = ((TypeHandle)cls).IsConstValue(); + + EE_TO_JIT_TRANSITION(); + + return result; +} + +// Return the const value if this is a const value type +uint64_t CEEInfo::getConstValue(CORINFO_CLASS_HANDLE cls) +{ + CONTRACTL { + THROWS; + GC_TRIGGERS; + MODE_PREEMPTIVE; + } CONTRACTL_END; + + uint64_t result = 0; + + JIT_TO_EE_TRANSITION(); + + result = ((TypeHandle)cls).GetConstValue(); + + EE_TO_JIT_TRANSITION(); + + return result; +} + +// Return the type of the const value if this is a const value type +CorInfoType CEEInfo::getConstValueType(CORINFO_CLASS_HANDLE cls) +{ + CONTRACTL { + THROWS; + GC_TRIGGERS; + MODE_PREEMPTIVE; + } CONTRACTL_END; + + CorInfoType result = CorInfoType::CORINFO_TYPE_COUNT; + + JIT_TO_EE_TRANSITION(); + + result = CEEInfo::asCorInfoType(((TypeHandle)cls).GetConstValueType()); + + EE_TO_JIT_TRANSITION(); + + return result; +} + //--------------------------------------------------------------------------------------- // Given a method descriptor ftnHnd, extract signature information into sigInfo // Obtain (representative) instantiation information from ftnHnd's owner class @@ -6760,6 +6823,7 @@ mdToken FindGenericMethodArgTypeSpec(IMDInternalImport* pInternalImport) mdToken token; static const BYTE signature[] = { ELEMENT_TYPE_MVAR, 0 }; + static const BYTE cSignature[] = { ELEMENT_TYPE_MVAR, 0 }; hEnumTypeSpecs.EnumAllInit(mdtTypeSpec); while (hEnumTypeSpecs.EnumNext(&token)) @@ -6769,6 +6833,8 @@ mdToken FindGenericMethodArgTypeSpec(IMDInternalImport* pInternalImport) IfFailThrow(pInternalImport->GetTypeSpecFromToken(token, &pSig, &cbSig)); if (cbSig == sizeof(signature) && memcmp(pSig, signature, cbSig) == 0) return token; + if (cbSig == sizeof(cSignature) && memcmp(pSig, cSignature, cbSig) == 0) + return token; } COMPlusThrowHR(COR_E_BADIMAGEFORMAT); @@ -9490,6 +9556,8 @@ CorInfoTypeWithMod CEEInfo::getArgType ( switch (type) { case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : + case ELEMENT_TYPE_CVAR : + case ELEMENT_TYPE_MCVAR : case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_TYPEDBYREF : case ELEMENT_TYPE_INTERNAL : diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 4486197956b32..45813a9b704f2 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -348,13 +348,12 @@ class ConstValueTypeDesc : public TypeDesc return m_type; } - template - T GetConstValue() + uint64_t GetConstValue() { LIMITED_METHOD_CONTRACT; SUPPORTS_DAC; - return *(T*)&m_value; + return m_value.asUint64; } private: diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index 9f6f2207232bc..8a0754cb96025 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1044,13 +1044,12 @@ BOOL TypeHandle::IsConstValue() const (GetSignatureCorElementType() == ELEMENT_TYPE_CTARG)); } -template -T TypeHandle::GetConstValue() const +uint64_t TypeHandle::GetConstValue() const { LIMITED_METHOD_DAC_CONTRACT; _ASSERTE(IsTypeDesc()); - return AsConstValue()->GetConstValue(); + return AsConstValue()->GetConstValue(); } CorElementType TypeHandle::GetConstValueType() const diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index c68b5d46d770e..4fd6a2857985f 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -484,7 +484,7 @@ class TypeHandle // CTARG BOOL IsConstValue() const; - template T GetConstValue() const; + uint64_t GetConstValue() const; CorElementType GetConstValueType() const; // BYREF diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index ba539eda7d698..7965e26cbb9d7 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -237,7 +237,7 @@ static DWORD HashTypeHandle(TypeHandle t) else if (t.IsConstValue()) { ConstValueTypeDesc* pTD = t.AsConstValue(); - retVal = HashConstValueType(pTD->GetConstValueType(), pTD->GetConstValue()); + retVal = HashConstValueType(pTD->GetConstValueType(), pTD->GetConstValue()); } else if (t.IsGenericVariable()) { diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index d4b55153d58f3..22c956730f0ec 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -852,7 +852,7 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t tnb.Append(W("const ")); AppendType(tnb, ty.AsConstValue()->GetConstValueType(), Instantiation(), format & ~FormatAssembly); tnb.Append(W("(")); - AppendConstValue(tnb, ty.AsConstValue()->GetConstValueType().GetInternalCorElementType(), ty.AsConstValue()->GetConstValue()); + AppendConstValue(tnb, ty.AsConstValue()->GetConstValueType().GetInternalCorElementType(), ty.AsConstValue()->GetConstValue()); tnb.Append(W(")")); } From ccdd3a8aeab52b1a823b671f9c7055899f7e7401 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 17:16:24 +0900 Subject: [PATCH 31/80] Implement type lookup for ELEMENT_TYPE_CTARG --- src/coreclr/vm/typehandle.cpp | 4 +-- src/coreclr/vm/typehash.cpp | 59 ++++++++++++++++++++++++++++++++++- src/coreclr/vm/typekey.h | 1 + 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index 8a0754cb96025..ca4f44175a4f9 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1039,7 +1039,7 @@ BOOL TypeHandle::IsFnPtrType() const BOOL TypeHandle::IsConstValue() const { LIMITED_METHOD_DAC_CONTRACT; - + return (IsTypeDesc() && (GetSignatureCorElementType() == ELEMENT_TYPE_CTARG)); } @@ -1047,7 +1047,7 @@ BOOL TypeHandle::IsConstValue() const uint64_t TypeHandle::GetConstValue() const { LIMITED_METHOD_DAC_CONTRACT; - + _ASSERTE(IsTypeDesc()); return AsConstValue()->GetConstValue(); } diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index 7965e26cbb9d7..e45513c61dad7 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -345,6 +345,63 @@ EETypeHashEntry_t *EETypeHashTable::FindItem(TypeKey* pKey) pSearch = BaseFindNextEntryByHash(&sContext); } } + else if (kind == ELEMENT_TYPE_CTARG) + { + for (pSearch = BaseFindFirstEntryByHash(dwHash, &sContext); + pSearch != NULL; + pSearch = BaseFindNextEntryByHash(&sContext)) + { + if (!pSearch->GetTypeHandle().IsConstValue()) + continue; + + CorElementType valueType = pKey->GetConstValueType().GetInternalCorElementType(); + if ((pSearch->GetTypeHandle().GetConstValueType() != valueType)) + continue; + + uint64_t sourceValue = pSearch->GetTypeHandle().GetConstValue(); + uint64_t targetValue = pKey->GetConstValue(); + + switch (valueType) + { + case ELEMENT_TYPE_BOOLEAN: + case ELEMENT_TYPE_CHAR: + case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: + if (*(uint8_t*)&sourceValue != *(uint8_t*)&targetValue) + continue; + break; + case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_U2: + if (*(uint16_t*)&sourceValue != *(uint16_t*)&targetValue) + continue; + break; + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + if (*(uint32_t*)&sourceValue != *(uint32_t*)&targetValue) + continue; + break; + case ELEMENT_TYPE_I8: + case ELEMENT_TYPE_U8: + if (*(uint64_t*)&sourceValue != *(uint64_t*)&targetValue) + continue; + break; + case ELEMENT_TYPE_R4: + if (*(float*)&sourceValue != *(float*)&targetValue) + continue; + break; + case ELEMENT_TYPE_R8: + if (*(double*)&sourceValue != *(double*)&targetValue) + continue; + break; + default: + _ASSERTE(!"UNKNOWN CONST VALUE TYPE"); + break; + } + + result = pSearch; + break; + } + } else { // Type parameters for array and pointer types are necessarily in the same loader module @@ -377,7 +434,7 @@ EETypeHashEntry_t *EETypeHashTable::FindItem(TypeKey* pKey) if (pSearch->GetTypeHandle().GetSignatureCorElementType() != kind) continue; - + if (pSearch->GetTypeHandle().GetTypeParam() != pKey->GetElementType()) continue; diff --git a/src/coreclr/vm/typekey.h b/src/coreclr/vm/typekey.h index 0a2f1705575b3..8c48525f8c565 100644 --- a/src/coreclr/vm/typekey.h +++ b/src/coreclr/vm/typekey.h @@ -27,6 +27,7 @@ class TypeKey // ELEMENT_TYPE_PTR and ELEMENT_TYPE_BYREF for pointer types // ELEMENT_TYPE_FNPTR for function pointer types // ELEMENT_TYPE_VALUETYPE for native value types (used in IL stubs) + // ELEMENT_TYPE_CTARG for const value types (used in const generic instantiations) CorElementType m_kind; union From d663329b6def04fea2a8dbe27ebaeab94a89f044 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 17:27:10 +0900 Subject: [PATCH 32/80] Add support for hashing const value type --- src/coreclr/vm/typedesc.h | 6 +++++- src/coreclr/vm/typedesc.inl | 19 +++++++++++++++++++ src/coreclr/vm/typehashingalgorithms.h | 7 +++++++ src/coreclr/vm/versionresilienthashcode.cpp | 5 +++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 45813a9b704f2..4b5a4e24561fe 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -171,6 +171,9 @@ class TypeDesc Instantiation GetClassOrArrayInstantiation(); // only meaningful for ParamTypeDesc; see above TypeHandle GetRootTypeParam(); // only allowed for ParamTypeDesc, helper method used to avoid recursion + TypeHandle GetConstValueType(); // only meaningful for ConstValueTypeDesc + uint64_t GetConstValue(); // only meaningful for ConstValueTypeDesc + // Note that if the TypeDesc, e.g. a function pointer type, involves parts that may // come from either a SharedDomain or an AppDomain then special rules apply to GetDomain. // It returns the SharedDomain if all the @@ -319,6 +322,7 @@ typedef DPTR(class ConstValueTypeDesc) PTR_ConstValueTypeDesc; class ConstValueTypeDesc : public TypeDesc { + friend class TypeDesc; public: #ifndef DACCESS_COMPILE @@ -356,7 +360,7 @@ class ConstValueTypeDesc : public TypeDesc return m_value.asUint64; } -private: +protected: TypeHandle m_type; union { uint8_t asUint8; diff --git a/src/coreclr/vm/typedesc.inl b/src/coreclr/vm/typedesc.inl index 9cdd6b4911f31..1257c1ede6bb6 100644 --- a/src/coreclr/vm/typedesc.inl +++ b/src/coreclr/vm/typedesc.inl @@ -49,6 +49,25 @@ inline TypeHandle ParamTypeDesc::GetTypeParam() { return(this->m_Arg); } +inline TypeHandle TypeDesc::GetConstValueType() { + LIMITED_METHOD_DAC_CONTRACT; + + if (IsConstGenericVariable()) + return TypeHandle(); + + _ASSERTE(IsConstValue()); + ConstValueTypeDesc* asConstValue = dac_cast(this); + return(asConstValue->m_type); +} + +inline uint64_t TypeDesc::GetConstValue() { + LIMITED_METHOD_DAC_CONTRACT; + + _ASSERTE(IsConstValue()); + ConstValueTypeDesc* asConstValue = dac_cast(this); + return(asConstValue->m_value.asUint64); +} + inline Instantiation TypeDesc::GetClassOrArrayInstantiation() { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typehashingalgorithms.h b/src/coreclr/vm/typehashingalgorithms.h index fc428c1ef3de6..e7074b7eaa91e 100644 --- a/src/coreclr/vm/typehashingalgorithms.h +++ b/src/coreclr/vm/typehashingalgorithms.h @@ -76,6 +76,13 @@ inline static int ComputeByrefTypeHashCode(int parameterTypeHashcode) return (parameterTypeHashcode + _rotl(parameterTypeHashcode, 7)) ^ 0x4C85; } +inline static int ComputeConstValueTypeHashCode(int constValueTypeHashcode, uint64_t constValue) +{ + LIMITED_METHOD_CONTRACT; + + return (constValueTypeHashcode + _rotl(constValueTypeHashcode, 11)) ^ (int)(constValue & 0xFFFFFFFF) ^ (int)((constValue & 0xFFFFFFFF00000000) >> 32); +} + inline static int ComputeNestedTypeHashCode(int enclosingTypeHashcode, int nestedTypeNameHash) { LIMITED_METHOD_CONTRACT; diff --git a/src/coreclr/vm/versionresilienthashcode.cpp b/src/coreclr/vm/versionresilienthashcode.cpp index b3ba764baac59..84d94d002e373 100644 --- a/src/coreclr/vm/versionresilienthashcode.cpp +++ b/src/coreclr/vm/versionresilienthashcode.cpp @@ -153,6 +153,11 @@ int GetVersionResilientTypeHashCode(TypeHandle type) { return ComputeByrefTypeHashCode(GetVersionResilientTypeHashCode(type.AsTypeDesc()->GetTypeParam())); } + else + if (type.IsConstValue()) + { + return ComputeConstValueTypeHashCode(GetVersionResilientTypeHashCode(type.AsTypeDesc()->GetConstValueType()), type.AsTypeDesc()->GetConstValue()); + } assert(false); return 0; From 4225bf1064a6e2e8e9de32ca72644fd71192db5e Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 19:44:42 +0900 Subject: [PATCH 33/80] Change the way of encoding ldctarg, and remove ldctarg.s --- .../dlls/mscorpe/ceefilegenwritertokens.cpp | 2 - src/coreclr/ilasm/asmparse.y | 10 +- src/coreclr/ilasm/assembler.cpp | 26 - src/coreclr/ilasm/assembler.h | 1 - src/coreclr/ilasm/grammar_after.cpp | 4 - src/coreclr/ilasm/prebuilt/asmparse.cpp | 9322 ++++++++--------- src/coreclr/ildasm/dis.cpp | 36 +- src/coreclr/inc/corinfo.h | 3 + src/coreclr/inc/corpriv.h | 6 +- src/coreclr/inc/opcode.def | 6 +- src/coreclr/inc/openum.h | 4 +- src/coreclr/inc/sigparser.h | 1 + src/coreclr/utilcode/sigparser.cpp | 1 + src/coreclr/vm/siginfo.cpp | 1 + src/coreclr/vm/stubgen.cpp | 4 - src/coreclr/vm/zapsig.cpp | 13 +- 16 files changed, 4675 insertions(+), 4765 deletions(-) diff --git a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp index dc07469afa875..dae8b0c515fa3 100644 --- a/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp +++ b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp @@ -166,7 +166,6 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( break; case InlineVar: - case ShortInlineTypeVar: PC += 2; break; @@ -174,7 +173,6 @@ HRESULT CeeFileGenWriter::MapTokensForMethod( case ShortInlineR: case InlineBrTarget: case InlineRVA: - case InlineTypeVar: PC += 4; break; diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index bb0eb7c4aa7f0..cf27c96fd3510 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -1379,10 +1379,12 @@ instr_r_head : instr_r '(' { $$ = $1; bParsing instr : instr_none { PASM->EmitOpcode($1); } | instr_var int32 { PASM->EmitInstrVar($1, $2); } | instr_var id { PASM->EmitInstrVarByName($1, $2); } - | instr_tvar '!' int32 { PASM->EmitInstrTypeVar($1, ELEMENT_TYPE_CVAR, $3); } - | instr_tvar '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_CVAR, $3); } - | instr_tvar '!' '!' int32 { PASM->EmitInstrTypeVar($1, ELEMENT_TYPE_MCVAR, $4); } - | instr_tvar '!' '!' id { PASM->EmitInstrTypeVarByName($1, ELEMENT_TYPE_MCVAR, $4); } + | instr_tvar ownerType /* ownerType ::= memberRef | typeSpec */ + { PASM->EmitInstrI($1,$2); + PASM->m_tkCurrentCVOwner = $2; + PASM->m_pCustomDescrList = NULL; + iOpcodeLen = 0; + } | instr_i int32 { PASM->EmitInstrI($1, $2); } | instr_i8 int64 { PASM->EmitInstrI8($1, $2); } | instr_r float64 { PASM->EmitInstrR($1, $2); delete ($2);} diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index bfd4d9c838509..a04c8d1ba327c 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -1491,8 +1491,6 @@ unsigned Assembler::ShortOf(unsigned opcode) case CEE_LDARGA: retcode=CEE_LDARGA_S; break; case CEE_STARG: retcode=CEE_STARG_S; break; - case CEE_LDCTARG: retcode=CEE_LDCTARG_S; break; - case CEE_LDLOC: retcode=CEE_LDLOC_S; break; case CEE_LDLOCA: retcode=CEE_LDLOCA_S; break; case CEE_STLOC: retcode=CEE_STLOC_S; break; @@ -1641,30 +1639,6 @@ void Assembler::EmitInstrTypeVar(Instr* instr, CorElementType type, int var) } } -/**************************************************************************/ -void Assembler::EmitInstrTypeVarByName(Instr* instr, CorElementType type, _In_ __nullterminated char* label) -{ - int idx = -1; - switch(instr->opcode) - { - case CEE_LDCTARG: - case CEE_LDCTARG_S: - if(m_pCurMethod) - { - _ASSERTE(type == CorElementType::ELEMENT_TYPE_CVAR || type == CorElementType::ELEMENT_TYPE_MCVAR); - idx = type == CorElementType::ELEMENT_TYPE_MCVAR ? m_pCurMethod->FindTyPar(label) : m_pCurClass->FindTyPar(label); - if(idx >= 0 && m_pCurMethod->m_TyPars[idx].Type() != 0) EmitInstrTypeVar(instr, type, idx); - else report->error("Undeclared const type parameter %s\n",label); - } - else - report->error("Instructions can be used only when in a method scope\n"); - break; - default: - report->error("Named argument illegal for this instruction\n"); - } - instr->opcode = -1; // in case we got here with error -} - /**************************************************************************/ void Assembler::EmitInstrI(Instr* instr, int val) { diff --git a/src/coreclr/ilasm/assembler.h b/src/coreclr/ilasm/assembler.h index a4a6c987ae209..95b57ace26402 100644 --- a/src/coreclr/ilasm/assembler.h +++ b/src/coreclr/ilasm/assembler.h @@ -901,7 +901,6 @@ class Assembler { void EmitInstrVar(Instr* instr, int var); void EmitInstrVarByName(Instr* instr, _In_ __nullterminated char* label); void EmitInstrTypeVar(Instr* instr, CorElementType type, int var); - void EmitInstrTypeVarByName(Instr* instr, CorElementType type, _In_ __nullterminated char* label); void EmitInstrI(Instr* instr, int val); void EmitInstrI8(Instr* instr, __int64* val); void EmitInstrR(Instr* instr, double* val); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index f4f986798e358..52bfa25ba81c5 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -36,8 +36,6 @@ static Keywords keywords[] = { #undef InlineTok #undef InlineSwitch #undef InlineVarTok -#undef InlineTypeVar -#undef ShortInlineTypeVar #define InlineNone INSTR_NONE @@ -57,8 +55,6 @@ static Keywords keywords[] = { #define InlineSig INSTR_SIG #define InlineTok INSTR_TOK #define InlineSwitch INSTR_SWITCH -#define InlineTypeVar INSTR_TVAR -#define ShortInlineTypeVar INSTR_TVAR #define InlineVarTok 0 #define NEW_INLINE_NAMES diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 897f21e84a7f6..171f03afe1c27 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -399,41 +399,41 @@ static int yylhs[] = { -1, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 6, 6, 6, - 6, 6, 56, 56, 57, 57, 58, 58, 27, 27, - 28, 28, 29, 29, 29, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 5, 5, 74, 74, 74, - 74, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 160, 160, 160, 160, 6, 6, 6, 6, 6, 56, + 56, 57, 57, 58, 58, 27, 27, 28, 28, 29, + 29, 29, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 5, 5, 74, 74, 74, 74, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 22, 22, 15, 15, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 44, 44, 44, + 15, 15, 15, 15, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 30, 30, 30, 30, 30, + 44, 44, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 32, 32, 31, 31, 31, 31, 31, 134, - 134, 134, 134, 134, 134, 67, 67, 67, 66, 66, - 90, 90, 87, 87, 88, 17, 17, 39, 39, 39, - 39, 39, 39, 39, 39, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 179, 179, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 124, 124, 91, 91, 92, 92, 180, - 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 126, 126, 181, 181, 181, 69, 69, 182, 182, - 182, 182, 182, 182, 183, 185, 184, 127, 127, 128, - 128, 186, 186, 186, 186, 129, 151, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 130, 130, 187, - 187, 187, 187, 187, 187, 187, 131, 131, 95, 95, - 95, 132, 132, 188, 188, 188, 188, + 30, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 32, + 32, 31, 31, 31, 31, 31, 134, 134, 134, 134, + 134, 134, 67, 67, 67, 66, 66, 90, 90, 87, + 87, 88, 17, 17, 39, 39, 39, 39, 39, 39, + 39, 39, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 179, 179, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 124, 124, 91, 91, 92, 92, 180, 125, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 126, 126, + 181, 181, 181, 69, 69, 182, 182, 182, 182, 182, + 182, 183, 185, 184, 127, 127, 128, 128, 186, 186, + 186, 186, 129, 151, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 130, 130, 187, 187, 187, 187, + 187, 187, 187, 131, 131, 95, 95, 95, 132, 132, + 188, 188, 188, 188, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -487,77 +487,77 @@ static int yylen[] = { 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 2, 2, 3, 3, 4, 4, 2, 2, 2, - 2, 3, 2, 2, 2, 5, 3, 2, 2, 2, - 2, 2, 5, 4, 6, 2, 4, 0, 3, 3, - 1, 1, 0, 3, 0, 1, 1, 3, 0, 1, - 1, 3, 1, 3, 4, 4, 4, 4, 5, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 3, 4, - 1, 0, 10, 6, 5, 6, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 1, 1, 1, 1, 2, 3, 4, 6, - 5, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 2, 2, 4, 1, 2, 1, 2, 1, 2, - 1, 2, 1, 2, 1, 1, 0, 5, 0, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 5, 3, 2, 2, 2, 2, 2, 5, + 4, 6, 2, 4, 0, 3, 3, 1, 1, 0, + 3, 0, 1, 1, 3, 0, 1, 1, 3, 1, + 3, 4, 4, 4, 4, 5, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 3, 4, 1, 0, 10, + 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 2, 3, 4, 6, 5, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, + 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 1, 0, 5, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, - 4, 4, 4, 4, 4, 5, 5, 5, 5, 4, - 4, 4, 4, 4, 4, 2, 1, 3, 2, 2, - 3, 4, 2, 2, 2, 5, 5, 7, 4, 4, - 3, 3, 2, 4, 3, 3, 2, 1, 1, 2, - 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 1, 3, 0, 1, 1, 3, 2, 6, - 7, 3, 3, 3, 6, 0, 1, 3, 5, 6, - 4, 4, 1, 3, 3, 1, 1, 1, 1, 4, - 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 5, 4, 7, 6, 7, 6, - 9, 8, 3, 8, 4, 0, 2, 0, 1, 3, - 3, 0, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 0, 2, 3, 1, 1, 1, 1, 3, 8, - 2, 3, 1, 1, 3, 3, 3, 4, 6, 0, - 2, 3, 1, 3, 1, 4, 3, 0, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 0, 2, 2, - 3, 3, 4, 2, 1, 1, 3, 5, 0, 2, - 2, 0, 2, 4, 3, 1, 1, + 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, + 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, + 4, 4, 2, 1, 3, 2, 2, 3, 4, 2, + 2, 2, 5, 5, 7, 4, 4, 3, 3, 2, + 4, 3, 3, 2, 1, 1, 2, 3, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 1, 1, 3, 2, 6, 7, 3, 3, + 3, 6, 0, 1, 3, 5, 6, 4, 4, 1, + 3, 3, 1, 1, 1, 1, 4, 1, 6, 6, + 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 5, 4, 7, 6, 7, 6, 9, 8, 3, + 8, 4, 0, 2, 0, 1, 3, 3, 0, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 0, 2, + 3, 1, 1, 1, 1, 3, 8, 2, 3, 1, + 1, 3, 3, 3, 4, 6, 0, 2, 3, 1, + 3, 1, 4, 3, 0, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 0, 2, 2, 3, 3, 4, + 2, 1, 1, 3, 5, 0, 2, 2, 0, 2, + 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 791, - 792, 0, 0, 0, 0, 0, 0, 869, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 788, + 789, 0, 0, 0, 0, 0, 0, 866, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 848, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 776, 777, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 845, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 773, 774, 775, 776, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 812, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 562, 742, 0, 719, 727, - 725, 0, 728, 729, 730, 731, 732, 733, 738, 739, - 740, 741, 697, 726, 0, 718, 0, 0, 0, 495, - 0, 563, 564, 565, 0, 0, 0, 0, 0, 0, - 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 809, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 559, 739, 0, 716, 724, + 722, 0, 725, 726, 727, 728, 729, 730, 735, 736, + 737, 738, 694, 723, 0, 715, 0, 0, 0, 495, + 0, 560, 561, 562, 0, 0, 0, 0, 0, 0, + 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 822, 840, 858, 872, 0, 0, 0, 0, 0, + 0, 819, 837, 855, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 568, 0, 561, 0, 31, 0, 0, 0, 0, + 0, 565, 0, 558, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 807, 0, 0, 813, - 814, 815, 817, 0, 818, 819, 820, 821, 0, 870, - 871, 0, 0, 0, 734, 735, 736, 737, 696, 0, - 699, 0, 720, 722, 237, 238, 0, 0, 0, 0, + 73, 0, 0, 103, 0, 21, 804, 0, 0, 810, + 811, 812, 814, 0, 815, 816, 817, 818, 0, 867, + 868, 0, 0, 0, 731, 732, 733, 734, 693, 0, + 696, 0, 717, 719, 237, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 700, 0, 0, 0, 0, 0, 0, 713, 0, - 705, 0, 0, 0, 0, 0, 704, 703, 0, 0, + 0, 697, 0, 0, 0, 0, 0, 0, 710, 0, + 702, 0, 0, 0, 0, 0, 701, 700, 0, 0, 0, 0, 0, 234, 0, 0, 0, 64, 440, 68, - 753, 0, 0, 496, 497, 499, 500, 501, 502, 503, + 750, 0, 0, 496, 497, 499, 500, 501, 502, 503, 504, 498, 505, 506, 507, 508, 509, 0, 375, 0, 338, 346, 347, 0, 0, 0, 0, 368, 5, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -569,495 +569,492 @@ static int yydefred[] = { 1, 281, 276, 277, 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, 413, - 0, 411, 0, 412, 436, 0, 0, 0, 0, 803, - 793, 0, 0, 851, 850, 849, 0, 0, 0, 213, + 0, 411, 0, 412, 436, 0, 0, 0, 0, 800, + 790, 0, 0, 848, 847, 846, 0, 0, 0, 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, 197, 0, 0, 391, 0, 0, 0, - 0, 0, 762, 0, 761, 0, 0, 0, 0, 0, + 0, 0, 759, 0, 758, 0, 0, 0, 0, 0, 314, 315, 0, 0, 0, 0, 75, 69, 0, 96, - 809, 0, 0, 816, 0, 698, 721, 0, 0, 0, + 806, 0, 0, 813, 0, 695, 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, - 0, 0, 0, 711, 0, 0, 0, 0, 746, 701, - 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 27, 0, 105, 242, 256, 0, 0, 848, + 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, + 0, 0, 0, 708, 0, 0, 0, 0, 743, 698, + 0, 740, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 27, 0, 105, 242, 256, 0, 0, 845, 0, 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, 4, 341, 343, 0, - 0, 0, 0, 0, 0, 0, 350, 513, 512, 518, - 519, 44, 0, 0, 510, 520, 521, 524, 523, 525, - 529, 530, 0, 528, 0, 531, 0, 0, 0, 0, - 536, 0, 0, 0, 0, 0, 385, 0, 383, 386, + 0, 0, 0, 0, 0, 0, 350, 513, 512, 515, + 516, 44, 0, 0, 510, 517, 518, 521, 520, 522, + 526, 527, 0, 525, 514, 528, 0, 0, 0, 0, + 533, 0, 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, 0, 0, 372, - 0, 0, 0, 0, 12, 825, 833, 834, 823, 826, - 0, 0, 845, 0, 0, 13, 0, 843, 0, 841, - 0, 0, 0, 0, 14, 865, 866, 859, 0, 0, - 15, 876, 877, 873, 0, 125, 126, 127, 128, 129, + 0, 0, 0, 0, 12, 822, 830, 831, 820, 823, + 0, 0, 842, 0, 0, 13, 0, 840, 0, 838, + 0, 0, 0, 0, 14, 862, 863, 856, 0, 0, + 15, 873, 874, 870, 0, 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 404, - 0, 0, 852, 853, 854, 855, 856, 857, 0, 0, + 0, 0, 849, 850, 851, 852, 853, 854, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 766, 767, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 710, - 0, 0, 0, 0, 0, 0, 0, 0, 702, 709, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 707, + 0, 0, 0, 0, 0, 0, 0, 0, 699, 706, 0, 0, 0, 0, 0, 179, 180, 0, 0, 0, - 0, 0, 139, 0, 245, 259, 858, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 514, 0, 0, 0, 0, 0, 0, 522, - 0, 553, 0, 0, 0, 551, 367, 384, 370, 0, - 387, 376, 377, 378, 379, 381, 382, 380, 0, 0, - 0, 0, 828, 827, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, - 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 401, 0, 0, 0, 0, 0, 398, 403, 0, 795, - 0, 0, 588, 626, 580, 581, 0, 615, 582, 583, - 584, 585, 586, 587, 617, 593, 594, 595, 596, 0, - 0, 0, 623, 0, 0, 0, 0, 578, 579, 602, - 603, 604, 621, 605, 606, 607, 608, 0, 0, 611, - 0, 619, 625, 273, 0, 0, 0, 0, 0, 0, - 0, 750, 0, 0, 0, 0, 755, 0, 35, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 444, 0, 77, 0, 97, 98, - 0, 99, 100, 101, 0, 0, 0, 695, 694, 0, - 0, 0, 0, 685, 684, 683, 682, 680, 678, 679, - 681, 693, 692, 691, 690, 0, 706, 707, 748, 744, - 0, 0, 0, 244, 243, 0, 0, 258, 257, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, - 0, 0, 358, 0, 0, 0, 0, 0, 0, 359, - 0, 0, 0, 517, 516, 0, 534, 0, 0, 537, - 0, 0, 0, 344, 0, 0, 0, 373, 374, 824, - 835, 0, 837, 829, 832, 810, 836, 842, 844, 0, - 0, 0, 0, 0, 134, 0, 0, 0, 0, 157, - 0, 0, 0, 148, 141, 294, 0, 0, 0, 305, - 306, 307, 308, 300, 301, 302, 299, 303, 304, 0, - 0, 297, 0, 0, 0, 0, 0, 0, 402, 410, - 409, 408, 407, 405, 406, 0, 0, 207, 616, 589, - 590, 591, 592, 0, 612, 618, 620, 624, 0, 0, - 0, 622, 609, 610, 664, 633, 634, 0, 661, 635, - 636, 637, 638, 639, 640, 663, 645, 646, 647, 648, - 631, 632, 653, 654, 655, 656, 657, 658, 659, 660, - 630, 665, 666, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 649, 0, 0, 597, 200, 0, - 209, 0, 191, 0, 769, 768, 0, 765, 0, 764, - 751, 0, 758, 78, 75, 70, 0, 0, 544, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, - 80, 0, 95, 0, 689, 688, 687, 686, 0, 0, - 190, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 0, 0, 0, 172, 251, 252, 253, 254, 246, 0, - 0, 0, 173, 265, 264, 266, 267, 260, 181, 0, - 362, 0, 365, 366, 0, 45, 46, 0, 533, 0, - 539, 540, 345, 0, 552, 0, 0, 0, 863, 874, - 0, 0, 160, 0, 0, 0, 145, 0, 163, 0, - 0, 296, 0, 0, 0, 318, 319, 320, 321, 0, - 0, 799, 0, 797, 0, 0, 0, 0, 662, 641, - 642, 643, 644, 651, 0, 0, 652, 0, 598, 0, - 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 211, 441, 0, 0, - 78, 0, 0, 0, 217, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 88, 0, 87, 86, 0, 435, 804, 708, 0, - 186, 0, 189, 0, 0, 247, 248, 249, 250, 263, - 261, 262, 357, 0, 0, 535, 555, 388, 389, 0, - 155, 0, 0, 166, 0, 165, 162, 0, 0, 309, - 310, 311, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 650, 0, 0, 599, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 759, 67, 169, 0, 0, - 434, 0, 433, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 424, 0, 423, 0, 422, 0, 421, 0, - 419, 417, 0, 418, 420, 0, 432, 0, 431, 0, - 430, 0, 429, 0, 450, 0, 446, 445, 0, 449, - 0, 448, 0, 0, 90, 0, 0, 0, 0, 0, - 0, 364, 0, 0, 158, 161, 146, 295, 313, 270, - 0, 801, 0, 0, 575, 0, 601, 0, 770, 0, - 0, 0, 775, 760, 215, 214, 484, 480, 428, 0, - 427, 0, 426, 0, 425, 0, 482, 480, 478, 476, - 470, 473, 482, 480, 478, 476, 493, 486, 447, 489, - 89, 91, 0, 0, 188, 0, 0, 0, 0, 168, - 0, 0, 628, 0, 574, 0, 600, 0, 0, 0, - 0, 0, 482, 480, 478, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 0, 0, 0, 830, 322, 0, 772, 773, 774, - 466, 485, 465, 481, 0, 0, 0, 0, 456, 483, - 455, 454, 479, 453, 477, 451, 472, 471, 452, 474, - 475, 460, 459, 458, 457, 469, 494, 488, 487, 467, - 490, 0, 468, 492, 255, 0, 0, 0, 0, 0, - 464, 463, 462, 461, 491, 0, 0, 360, 0, 327, - 323, 332, 333, 334, 335, 336, 324, 325, 326, 328, - 329, 330, 331, 274, 0, 0, 0, 0, 573, 0, - 0, 0, 0, 182, 337, 0, 0, 0, 0, 0, - 0, 0, 0, 183, + 0, 0, 139, 0, 245, 259, 855, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 519, 0, 550, 0, + 0, 0, 548, 367, 384, 370, 0, 387, 376, 377, + 378, 379, 381, 382, 380, 0, 0, 0, 0, 825, + 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 861, 0, 0, 0, 0, 0, 0, 151, + 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, + 0, 0, 0, 398, 403, 0, 792, 0, 0, 585, + 623, 577, 578, 0, 612, 579, 580, 581, 582, 583, + 584, 614, 590, 591, 592, 593, 0, 0, 0, 620, + 0, 0, 0, 0, 575, 576, 599, 600, 601, 618, + 602, 603, 604, 605, 0, 0, 608, 0, 616, 622, + 273, 0, 0, 0, 0, 0, 0, 0, 747, 0, + 0, 0, 0, 752, 0, 35, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 444, 0, 77, 0, 97, 98, 0, 99, 100, + 101, 0, 0, 0, 692, 691, 0, 0, 0, 0, + 682, 681, 680, 679, 677, 675, 676, 678, 690, 689, + 688, 687, 0, 703, 704, 745, 741, 0, 0, 0, + 244, 243, 0, 0, 258, 257, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 358, + 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, + 0, 531, 0, 0, 534, 0, 0, 0, 344, 0, + 0, 0, 373, 374, 821, 832, 0, 834, 826, 829, + 807, 833, 839, 841, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 0, 157, 0, 0, 0, 148, 141, + 294, 0, 0, 0, 305, 306, 307, 308, 300, 301, + 302, 299, 303, 304, 0, 0, 297, 0, 0, 0, + 0, 0, 0, 402, 410, 409, 408, 407, 405, 406, + 0, 0, 207, 613, 586, 587, 588, 589, 0, 609, + 615, 617, 621, 0, 0, 0, 619, 606, 607, 661, + 630, 631, 0, 658, 632, 633, 634, 635, 636, 637, + 660, 642, 643, 644, 645, 628, 629, 650, 651, 652, + 653, 654, 655, 656, 657, 627, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 646, + 0, 0, 594, 200, 0, 209, 0, 191, 0, 766, + 765, 0, 762, 0, 761, 748, 0, 755, 78, 75, + 70, 0, 0, 541, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 81, 82, 0, 80, 0, 95, 0, 686, + 685, 684, 683, 0, 0, 190, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 172, 251, + 252, 253, 254, 246, 0, 0, 0, 173, 265, 264, + 266, 267, 260, 181, 0, 362, 0, 365, 366, 0, + 45, 46, 0, 530, 0, 536, 537, 345, 0, 549, + 0, 0, 0, 860, 871, 0, 0, 160, 0, 0, + 0, 145, 0, 163, 0, 0, 296, 0, 0, 0, + 318, 319, 320, 321, 0, 0, 796, 0, 794, 0, + 0, 0, 0, 659, 638, 639, 640, 641, 648, 0, + 0, 649, 0, 595, 0, 272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 211, 441, 0, 0, 78, 0, 0, 0, 217, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 0, 87, 86, + 0, 435, 801, 705, 0, 186, 0, 189, 0, 0, + 247, 248, 249, 250, 263, 261, 262, 357, 0, 0, + 532, 552, 388, 389, 0, 155, 0, 0, 166, 0, + 165, 162, 0, 0, 309, 310, 311, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 647, 0, 0, 596, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 756, 67, 169, 0, 0, 434, 0, 433, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 424, 0, 423, + 0, 422, 0, 421, 0, 419, 417, 0, 418, 420, + 0, 432, 0, 431, 0, 430, 0, 429, 0, 450, + 0, 446, 445, 0, 449, 0, 448, 0, 0, 90, + 0, 0, 0, 0, 0, 0, 364, 0, 0, 158, + 161, 146, 295, 313, 270, 0, 798, 0, 0, 572, + 0, 598, 0, 767, 0, 0, 0, 772, 757, 215, + 214, 484, 480, 428, 0, 427, 0, 426, 0, 425, + 0, 482, 480, 478, 476, 470, 473, 482, 480, 478, + 476, 493, 486, 447, 489, 89, 91, 0, 0, 188, + 0, 0, 0, 0, 168, 0, 0, 625, 0, 571, + 0, 597, 0, 0, 0, 0, 0, 482, 480, 478, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 0, 0, 0, 0, 827, + 322, 0, 769, 770, 771, 466, 485, 465, 481, 0, + 0, 0, 0, 456, 483, 455, 454, 479, 453, 477, + 451, 472, 471, 452, 474, 475, 460, 459, 458, 457, + 469, 494, 488, 487, 467, 490, 0, 468, 492, 255, + 0, 0, 0, 0, 0, 464, 463, 462, 461, 491, + 0, 0, 360, 0, 327, 323, 332, 333, 334, 335, + 336, 324, 325, 326, 328, 329, 330, 331, 274, 0, + 0, 0, 0, 570, 0, 0, 0, 0, 182, 337, + 0, 0, 0, 0, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 485, 909, 159, 788, 105, 106, 814, 35, - 36, 714, 793, 424, 1146, 73, 721, 840, 841, 1048, - 1049, 1095, 1559, 1560, 586, 1615, 794, 795, 796, 211, - 532, 533, 175, 176, 905, 906, 1153, 694, 1158, 1078, - 1327, 944, 945, 282, 1581, 1582, 1577, 1572, 1579, 1580, - 1571, 1588, 1589, 1587, 161, 710, 535, 536, 1275, 1276, - 1053, 712, 1386, 713, 946, 700, 701, 1210, 815, 1279, - 842, 663, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1639, 754, 755, 846, 695, 696, 92, 37, + 158, 71, 485, 906, 159, 785, 105, 106, 811, 35, + 36, 714, 790, 424, 1141, 73, 721, 837, 838, 1043, + 1044, 1090, 1554, 1555, 586, 1610, 791, 792, 793, 211, + 532, 533, 175, 176, 902, 903, 1148, 694, 1153, 1073, + 1322, 941, 942, 282, 1576, 1577, 1572, 1567, 1574, 1575, + 1566, 1583, 1584, 1582, 161, 710, 535, 536, 1270, 1271, + 1048, 712, 1381, 713, 943, 700, 701, 1205, 812, 1274, + 839, 663, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1634, 754, 755, 843, 695, 696, 92, 37, 113, 492, 115, 205, 116, 38, 39, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 40, 41, 312, 42, 43, 181, 44, 356, 46, 47, 357, 49, 50, 370, 51, 371, 52, 372, 53, 373, 54, 358, 359, 360, 58, 361, 306, 60, - 61, 62, 189, 399, 665, 563, 564, 1000, 565, 1001, - 566, 215, 1239, 1248, 63, 907, 362, 363, 364, 365, - 801, 367, 368, 611, 612, 369, 613, 802, 614, 615, - 616, 617, 64, 201, 76, 436, 437, 948, 65, 637, + 61, 62, 189, 399, 665, 563, 564, 997, 565, 998, + 566, 215, 1234, 1243, 63, 904, 362, 363, 364, 365, + 798, 367, 368, 611, 612, 369, 613, 799, 614, 615, + 616, 617, 64, 201, 76, 436, 437, 945, 65, 637, 629, 630, 631, 632, 639, 640, 648, 654, }; static int yysindex[] = { 0, -15526, 0, -334, 796, 0, 50, -224, 2192, 2192, 0, - 0, -56, 1584, 154, 149, -285, -202, 0, -95, 61, - 61, 288, 288,13017, 240, 0, 796, 796, 796, 796, - 0, 0, 223, 0, 314, 314, 314, 0, 0, 0, - 387, 477, 0, 0, 0, 0, 0, 0, 0, 497, - 510, 518, 535, 0, 0, 0, 0, 0, 0, 314, - 0, 332, 0, 1444, 61, 0, 0, 0, 0, 234, - 0, 61, 0, 0, 0, 480, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2029, 102, 622, 0, 0, 690, 708, 0, 0, - 866, 1682, 1682,13199, 238, 0, 632, 0, 0, 723, - 61, 61, 346, 0, 1234, 421, 796, 234, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 677, 0, 475, 677, 592, 0, - 7139, 0, 0, 0, 1974, 77, 51, 234, 710, 451, - 0, 412, 431, 0, 468, 482, -77, 677, 47, 234, - 234, 234, 0, 0, 792, 637, 869, 871, 0, 0, -14539, 0, 0, 0, 0, 874, 4162, 2029, 604, 6810, - 881, 78, 86, 93, 99, 103, 133, 887, 968, 890, - 0, 0, 314, 27, 524, 796, 840,12628, 889, 107, - 496, 0, 177, 0, 1682, 0, 895, 58, 909, 692, - 61, 61, 0, 0, 0, 0, 0, 0, 0, 916, - 0,12230, 139, 0, 878, 0, 0, 14, 1234, 0, - 0, 0, 0, 483, 0, 0, 0, 0, 234, 0, - 0, 13, 234, 0, 0, 0, 0, 0, 0, 677, - 0, 687, 0, 0, 0, 0,12795, 936, 954, 876, - 967, 973, 975, 977, 984, 988, 992, 996, 998, 1018, - 243, 0, 796, 979, 64, 990, 917, 234, 0, 796, - 0, 1037, 1059, 796, 209, 238, 0, 0, 796, 796, - 796, 796, 238, 0, 677, 983, 909, 0, 0, 0, - 0,15668,11548, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 61, - 0, 0, 0, 61, 1011, -55,13302, 0, 0, 1058, - 0, 717, 61, 288, 88, 717, -77, 147, 1088, 2029, - -154, 1682,13199, 1091, 314, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 0, 515, 437, 833, - 338, 966, 35, 0, 1100, 0, 0, 0, 0, 0, - 0, 941, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 2029, 0, 1109, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1123, 0, 0, - 1124, 61, 61, 0, 61, 0, 61, 0, 288, 0, - 549, 0, 549, 0, 0, 1003, 1121, 480, 1132, 0, - 0, 61, 61, 0, 0, 0, 1031, 234, 0, 0, - 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1148, 1130, 0, 796, 81, 945, - 1085, 238, 0,13403, 0, 955, 1162, 1175, 1177, -77, - 0, 0, 653, 234, 1167, 948, 0, 0, 909, 0, - 0, 764, 17, 0, 796, 0, 0, 234, 963, 382, - 61, 1189, 1198, 1200, 1201, 61, 61, 61, 288, 596, - 824, 61, 61, 61, 288, 917, 234, 0, 129, 796, - 796, 796, 234, 0, 234, 2029, 2029, 234, 0, 0, - 978, 0, 118, 496, 1180, 1213, 234, 234, 234, 234, -12373, 0, 0, 894, 0, 0, 0, 61, 61, 0, - -172,13473, 0, 1137, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1141, 1144, 1145, 0, 0, 0, 1211, - 61, 448, 506, 61, 0, 1000, 0, 0, 0, 0, - 0, 0, 1235, 1239, 0, 0, 0, 0, 0, 0, - 0, 0,12795, 0, 322, 0, 1241, 909, 314, 238, - 0, 717, 1243, 1242, 0,14691, 0, 2029, 0, 0, - 0, 515, -41, -41, -41, -41, 437, 981, 1001, 0, - 827, 1240, 4, 185, 0, 0, 0, 0, 0, 0, - 314, 314, 0, 1259, 1260, 0, 314, 0, 314, 0, - 1283, -215, 796, 829, 0, 0, 0, 0, 796, 853, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 11, 0, 0, 1282, 61, 945, 1129, 945, 1286, - 1244, 1287, 1293, 1299, 1304, 1306, 0, 968, 1307, 0, - 1280, 1315, 0, 0, 0, 0, 0, 0, 61,15954, - 12, 150, 0, 551, 1309, 1334, 0, 686, 1083, 1337, - 1261, 1316, 0, 1122, 0, 0, 1323, 7450, 1347, 1349, - 400, 1270, 3284, 283, 314, 796, 234, 796, 0, 0, - 1355, 1361, 61, 61, 61, 288, 1362, 1368, 1376, 1383, - 1384, 1388, 1389, 1391, 1392, 1393, 1395, 1397, 234, 0, - 796, 710, 710, 710, 1399, 1408, 61, 209, 0, 0, - 238, 1410, 2029,13129, 1901, 0, 0, 524, 630, 658, - 0, 1182, 0,14790, 0, 0, 0, 61, 1358, 61, - 234, 61, 628, 1366, 238, 400, 61, 288, 234, 1194, - 717, 0, 0, 945, 1416, 1250, 1419, 1436, 1434, 0, - 0, 0, 1129, 1442, 1449, 0, 0, 0, 0, 717, - 0, 0, 0, 0, 0, 0, 0, 0, 480, 61, - 61, 1446, 0, 0, 1430, 1461, 909, 1468, 1469, 1471, - 1475, 1476, 1477, 61, 796, 0, 234, 796, 18, 796, - 1484, 1489, 0, 0, 0, 0, 1222, 0, 0, 316, - 191, 1479, 2029, 1496, 9, 888, -207, 98, 552, 1448, - 0, 1448, 1448, 1448, 1448, 1448, 0, 0, 61, 0, - 61, 1502, 0, 0, 0, 0, 1164, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, - 1049, 1060, 0, 1047, 1511, -262, 1275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1505, 1505, 0, - 3489, 0, 0, 0, 184, 1513, 314, 480, 1497, 0, - 1749, 0, 945, 1435, 0,13403, 0, 1439, 0, 170, - 61, 1501, 0, 0, 234, 1167, 0, 151, 160, 1071, - 176, 187, 193, 435, 442, 452, 500, 507, 517, 530, - 543, 573, 598, 0, 0, 328, 0, 314, 0, 0, - 480, 0, 0, 0, 1518, 234, 234, 0, 0, 1523, - 1524, 1527, 1529, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, - 496, 0, 1119, 0, 0, 234, 796, 0, 0, 238, - 234, 61, 234, 61, 672, 238, 400,15719, 0, 614, - 673, 1708, 0, 1181, 1480, 1482, 2029, 1497,12795, 0, - 1545, 1546, 796, 0, 0, 748, 0, 0, 717, 0, - 717, 1547, 98, 0, 0, 1276, 1285, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 1556, - 710, 234, 61, 234, 0, 61, 1560, 1222, 2029, 0, - 2029, 755, 796, 0, 0, 0, 945, 1252, 1565, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1549, - 1550, 0, 1510, 1520, 1526, 1528, 1585, 400, 0, 0, - 0, 0, 0, 0, 0, 1582, 0, 0, 0, 0, - 0, 0, 0, 1127, 0, 0, 0, 0, 945, 1536, - 1538, 0, 0, 0, 0, 0, 0, 1301, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 38, 0, 0, -38, - 0, 2608, 0, 1596, 0, 0, 909, 0, 1603, 0, - 0, 1525, 0, 0, 0, 0, 909, 1553, 0, 1608, - 1609, 1611, 1612, 382, 61, 61, 61, 619, 654, 656, - 679, 61, 61, 61, 61, 61, 61, 288, 61, 596, - 61, 824, 61, 61, 61, 61, 61, 61, 61, 288, - 61, 3284, 61, -167, 61, 635, 61, 0, 0, 2933, - 0, 1615, 0, 1231, 0, 0, 0, 0, 1619, -77, - 0, 234, 1130, 1568, 1569, 2029,12795, 1152, 0, -77, - -77, -77, -77, 0, 0, 0, 0, 0, 0, -77, - -77, -77, 0, 0, 0, 0, 0, 0, 0, 480, - 0, 1620, 0, 0, 1394, 0, 0, 234, 0, 1624, - 0, 0, 0, 480, 0, 480, 61, 1613, 0, 0, - 1628, 61, 0, 796, 1629, 1630, 0, 11, 0, 755, - 909, 0, 61, 591, 688, 0, 0, 0, 0,15954, - 1616, 0, 61, 0, 1617, 899, 61, 61, 0, 0, - 0, 0, 0, 0, 945, 1579, 0, 61, 0, 74, - 0, 1639, 1648, 1084, 1649, 1650, 1651, 1652, 1655, 1659, - 1676, 1680, 1683, 1689, 0, 909, 0, 0, 61, 680, - 0, 459, 1610, 1671, 0, 0, 0, 0, 1693, 1647, - 1700, 1656, 61, 61, 61, 61, 61, 61, 288, 61, - 1701, 1657, 1707, 1658, 1711, 1660, 1713, 1662, 1715, 1717, - 1666, 1719, 1720, 1670, 1728, 1679, 1732, 1686, 1739, 1698, - 1745, 1699, 1752, 1706, 1753, 1760, 1710, 1763, 1548, 1767, - 1716, 0, -2, 0, 0, 709, 0, 0, 0, 159, - 0, 1766, 0, 1543, 1682, 0, 0, 0, 0, 0, - 0, 0, 0, 2029, 400, 0, 0, 0, 0, 4, - 0, 1771, 755, 0, 2029, 0, 0, 1888, 1777, 0, - 0, 0, 0, 1778, 1782, 0, 61, 945, 1730, 1731, - 909, 0, 1734, 61, 0, 1785, 1790, 1791, 1792, 1793, - 1780, 1781, 1794, 1807, 775, 0, 0, 0, 1813, 1814, - 0, 1795, 0, 1822, 1835, 1784, 1837, 1788, 1841, 1796, - 1842, 1797, 0, 1845, 0, 1847, 0, 1848, 0, 1857, - 0, 0, 1867, 0, 0, 1868, 0, 1871, 0, 1872, - 0, 1873, 0, 1877, 0, 1879, 0, 0, 1883, 0, - 1885, 0, 1884, 1664, 0, 1838, 624, 0, 2029, 400, - 238, 0, 1870, 1874, 0, 0, 0, 0, 0, 0, - 0, 0, 1887, 773, 0,16040, 0, 1840, 0, 61, - 61, 61, 0, 0, 0, 0, 0, 0, 0, 1894, - 0, 1895, 0, 1896, 0, 1906, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3284, 1900, 0, 1870,12795, 1856, 1909, 0, - 4, 1916, 0, 945, 0, 0, 0, 1921, 1925, 1930, - 28, 39, 0, 0, 0, 0, 63, 80, 83, 114, - 120, 789, 101, 105, 135, 131, 1183, 25, 1026, 0, - 1497, 1932, 1704, 0, 0, 0, 1043, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 163, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1723, 0, 0, 0, 0, 400, 1938, 2554, 945, - 0, 0, 0, 0, 0, 1939, 1947, 0, 1949, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 805, 1483, 0, 61, 0, 1632, - 1955, 1956, 1682, 0, 0, 238,12795, 1724, 400, 1870, - 1975, 0, 1973, 0, +15539, 0, -395, 477, 0, 65, -185, 2448, 2448, 0, + 0, -178, 1145, 66, 82, -379, -284, 0, -19, -53, + -53, 373, 373,12942, 252, 0, 477, 477, 477, 477, + 0, 0, -8, 0, 176, 176, 176, 0, 0, 0, + 304, 334, 0, 0, 0, 0, 0, 0, 0, 366, + 408, 420, 463, 0, 0, 0, 0, 0, 0, 176, + 0, 26, 0, 856, -53, 0, 0, 0, 0, 453, + 0, -53, 0, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1847, -13, 555, 0, 0, 612, 643, 0, 0, + 744, 1123, 1123,13145,11660, 0, 633, 0, 0, 677, + -53, -53, -158, 0, 1801, -85, 477, 453, 0, 0, + 0, 0, 0, 0, 0, 0, 0,11660, 0, 0, + 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -45, 0, 436, -45, 704, 0, + 7268, 0, 0, 0, 1554, 50, 346, 453, 699, 210, + 0, 427, 431, 0, 439, 467, 2150, -45, 163, 453, + 453, 453, 0, 0, 758, 610, 851, 860, 0, 0, +14557, 0, 0, 0, 0, 885, 4418, 1847, 588, 6628, + 887, 80, 93, 105, 196, 215, 423, 918, 1372, 933, + 0, 0, 176, 147, 973, 477, 894,12568, 917, 73, + 710, 0, 558, 0, 1123, 0, 977, 37, 980, 775, + -53, -53, 0, 0, 0, 0, 0, 0, 0, 1005, + 0,12163, 191, 0, 974, 0, 0, -1, 1801, 0, + 0, 0, 0, 605, 0, 0, 0, 0, 453, 0, + 0, 15, 453, 0, 0, 0, 0, 0, 0, -45, + 0, 815, 0, 0, 0, 0,12728, 1062, 1067, 928, + 1070, 1089, 1101, 1110, 1112, 1116, 1124, 1132, 1133, 1137, + 524, 0, 477, 1072, 86, 1086, 816, 453, 0, 477, + 0, 1142, 1146, 477, 110,11660, 0, 0, 477, 477, + 477, 477,11660, 0, -45, 1068, 980, 0, 0, 0, + 0,12518,15513, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -53, 0, -53, + 0, 0, 0, -53, 1103, -61,13248, 0, 0, 1147, + 0, 722, -53, 373, 97, 722, 2150, 6957,13145, 1847, + -123, 1123,13145, 1155, 176, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 857, -60, 1182, + 1532, 331, 375, 0, 1163, 0, 0, 0, 0, 0, + 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 218, 0, 1847, 0, 1164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1167, 0, 0, + 1173, -53, -53, 0, -53, 0, -53, 0, 373, 0, + 255, 0, 255, 0, 0, 1090, 1172, 400, 1176, 0, + 0, -53, -53, 0, 0, 0, 593, 453, 0, 0, + 1186, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1195, 587, 0, 477, 441, 975, + 1127,11660, 0,13348, 0, 984, 1203, 1207, 1210, 2150, + 0, 0, -2, 453, 1199, 987, 0, 0, 980, 0, + 0, 798, 21, 0, 477, 0, 0, 453, 990, 515, + -53, 1226, 1227, 1229, 1231, -53, -53, -53, 373, 623, + 755, -53, -53, -53, 373, 816, 453, 0, 634, 477, + 477, 477, 453, 0, 453, 1847, 1847, 453, 0, 0, + 997, 0, 99, 710, 1216, 1235, 453, 453, 453, 453, +12313, 0, 0, 919, 0, 0, 0, -53, -53, 0, + -293,13451, 0, 1159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1166, 1169, 1170, 0, 0, 0, 1228, + -53, 381, 497, -53, 0, 1013, 0, 0, 0, 0, + 0, 0, 1250, 1254, 0, 0, 0, 0, 0, 0, + 0, 0,12728, 0, 0, 0, 1257, 980, 176,11660, + 0, 722, 1258, 1265, 0,14655, 0, 1847, 0, 0, + 0, 857, -64, -64, -64, -64, -60, 981, 989, 0, + 840, 1248, 48, -5, 0, 0, 0, 0, 0, 0, + 176, 176, 0, 1256, 1260, 0, 176, 0, 176, 0, + 1271, -211, 477, 847, 0, 0, 0, 0, 477, 852, + 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, + 0, 36, 0, 0, 1278, -53, 975, 7579, 975, 1283, + 1236, 1292, 1293, 1302, 1306, 1314, 0, 1372, 1322, 0, + 1309, 1320, 0, 0, 0, 0, 0, 0, -53,15879, + 14, 740, 0, 74, 1327, 1325, 0, 729, 217, 1326, + 1246, 1312, 0, 1111, 0, 0, 1317, 7890, 1335, 1342, + -167, 1259, 3176, 533, 176, 477, 453, 477, 0, 0, + 1345, 1346, -53, -53, -53, 373, 1347, 1348, 1351, 1365, + 1366, 1367, 1368, 1370, 1371, 1374, 1379, 1380, 453, 0, + 477, 699, 699, 699, 1383, 1390, -53, 110, 0, 0, +11660, 1343, 1847,13045, 1719, 0, 0, 973, 537, 568, + 0, 1139, 0,14752, 0, 0, 0, -53, 1341, -53, + 453, -53, 875, 1349,11660, -167, -53, 373, 453, 1177, + 975, 1402, 106, 1400, 1405, 1406, 0, 0, 0, 7579, + 1415, 1413, 0, 0, 0, 0, 722, 0, 0, 0, + 0, 0, 0, 0, 0, 400, -53, -53, 1418, 0, + 0, 1401, 1421, 980, 1424, 1429, 1422, 1433, 1437, 1438, + -53, 477, 0, 453, 477, 29, 477, 1439, 1441, 0, + 0, 0, 0, 1188, 0, 0, 124, 275, 1425, 1847, + 1442, 8, 1125, -215, 98, 921, 1397, 0, 1397, 1397, + 1397, 1397, 1397, 0, 0, -53, 0, -53, 1448, 0, + 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1450, 994, 1003, 0, + 992, 1456, -342, 1220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1450, 1450, 0, 3745, 0, 0, + 0, 135, 1463, 176, 400, 1445, 0, 635, 0, 975, + 1382, 0,13348, 0, 1386, 0, 358, -53, 1449, 0, + 0, 453, 1199, 0, 434, 456, 939, 461, 465, 486, + 490, 493, 499, 520, 573, 574, 613, 614, 637, 641, + 0, 0, 55, 0, 176, 0, 0, 400, 0, 0, + 0, 1469, 453, 453, 0, 0, 1471, 1475, 1478, 1480, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 699, 0, 0, 0, 0, 710, 0, 1071, + 0, 0, 453, 477, 0, 0,11660, 453, -53, 453, + -53, 959,11660, -167,13972, 0, 272, 546, 1143, 0, + 1135, 1431, 1434, 1847, 1445,12728, 0, 1488, 1489, 477, + 985, 0, 0, 722, 0, 722, 1490, 98, 0, 0, + 1215, 1217, 0, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 1497, 699, 453, -53, 453, 0, + -53, 1501, 1188, 1847, 0, 1847, 1048, 477, 0, 0, + 0, 975, 1706, 1507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1494, 1500, 0, 1466, 1467, 1468, + 1470, 1522, -167, 0, 0, 0, 0, 0, 0, 0, + 1520, 0, 0, 0, 0, 0, 0, 0, 1060, 0, + 0, 0, 0, 975, 1477, 1484, 0, 0, 0, 0, + 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -6, 95, 0, 0, -55, 0, 2859, 0, 1526, 0, + 0, 980, 0, 1536, 0, 0, 1454, 0, 0, 0, + 0, 980, 1485, 0, 1538, 1539, 1541, 1543, 515, -53, + -53, -53, 656, 673, 703, 733, -53, -53, -53, -53, + -53, -53, 373, -53, 623, -53, 755, -53, -53, -53, + -53, -53, -53, -53, 373, -53, 3176, -53, 352, -53, + 964, -53, 0, 0, 3605, 0, 1544, 0, 1174, 0, + 0, 0, 0, 1553, 2150, 0, 453, 587, 1504, 1505, + 1847,12728, 1088, 0, 2150, 2150, 2150, 2150, 0, 0, + 0, 0, 0, 0, 2150, 2150, 2150, 0, 0, 0, + 0, 0, 0, 0, 400, 0, 1556, 0, 0, 1328, + 0, 0, 453, 0, 1560, 0, 0, 0, 400, 0, + 400, -53, 1545, 0, 0, 1563, -53, 0, 477, 1565, + 1569, 0, 36, 0, 1048, 980, 0, -53, 552, 606, + 0, 0, 0, 0,15879, 1547, 0, -53, 0, 1558, + 965, -53, -53, 0, 0, 0, 0, 0, 0, 975, + 1528, 0, -53, 0, 56, 0, 1583, 1584, 961, 1586, + 1587, 1589, 1590, 1591, 1595, 1596, 1597, 1599, 1600, 0, + 980, 0, 0, -53, 578, 0, 151, 1516, 1580, 0, + 0, 0, 0, 1602, 1551, 1604, 1568, -53, -53, -53, + -53, -53, -53, 373, -53, 1606, 1570, 1621, 1571, 1624, + 1573, 1626, 1575, 1628, 1630, 1579, 1632, 1633, 1585, 1645, + 1610, 1648, 1611, 1652, 1612, 1666, 1615, 1672, 1635, 1676, + 1684, 1636, 1685, 1472, 1689, 1638, 0, 1020, 0, 0, + 615, 0, 0, 0, 629, 0, 1693, 0, 1474, 1123, + 0, 0, 0, 0, 0, 0, 0, 0, 1847, -167, + 0, 0, 0, 0, 48, 0, 1700, 1048, 0, 1847, + 0, 0, 1894, 1701, 0, 0, 0, 0, 1702, 1704, + 0, -53, 975, 1653, 1656, 980, 0, 1657, -53, 0, + 1705, 1711, 1712, 1713, 1718, 1696, 1707, 1709, 1723, 402, + 0, 0, 0, 1734, 1739, 0, 1744, 0, 1749, 1754, + 1697, 1755, 1714, 1756, 1715, 1757, 1716, 0, 1759, 0, + 1760, 0, 1762, 0, 1764, 0, 0, 1772, 0, 0, + 1774, 0, 1775, 0, 1776, 0, 1781, 0, 1782, 0, + 1784, 0, 0, 1785, 0, 1786, 0, 1788, 1566, 0, + 1733, 562, 0, 1847, -167,11660, 0, 1770, 1790, 0, + 0, 0, 0, 0, 0, 0, 0, 1798, 821, 0, +15907, 0, 1750, 0, -53, -53, -53, 0, 0, 0, + 0, 0, 0, 0, 1802, 0, 1809, 0, 1810, 0, + 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3176, 1817, 0, + 1770,12728, 1761, 1821, 0, 48, 1822, 0, 975, 0, + 0, 0, 1823, 1824, 1825, 28, 45, 0, 0, 0, + 0, 54, 59, 63, 57, 149, 158, 89, 101, 114, + 152, 3540, 39, 133, 0, 1445, 1827, 1588, 0, 0, + 0, 1010, 0, 0, 0, 0, 0, 0, 0, 116, + 127, 131, 173, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1605, 0, 0, 0, + 0, -167, 1831, 2372, 975, 0, 0, 0, 0, 0, + 1832, 1834, 0, 1835, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075, + 1373, 0, -53, 0, 1518, 1836, 1837, 1123, 0, 0, +11660,12728, 1607, -167, 1770, 1839, 0, 1841, 0, }; static int yyrindex[] = { 0, - 0, 0, 4600, 0, 0,12898, 1743, 0, 0, 0, - 0, 0,11830, 0, 0, 356, 1976, 0, 1166, 0, + 0, 0, 4856, 0, 0,12823, 1262, 0, 0, 0, + 0, 0,13809, 0, 0, 248, 2223, 0, 1160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1842, 1842, 1842, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1842, + 0, -49, 0, 0, 0, 0, 0, 0, 0, 1765, + 0, 0, 0, 0, 0, 1428, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9828, 0, 0, 0, 0, 0, 0, +12104,13691,13691, 0, 0, 0, 8344, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1977, 1977, 1977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977, - 0, -68, 0, 0, 0, 0, 0, 0, 0, 1897, - 0, 0, 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,10010, 0, 0, 0, 0, 0, 0, - 7761, 8072, 8072, 0, 0, 0, 8526, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2708, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1933, 2809, 0, + 0, 0, 0, 0, 0, 0,13809, 1804, 6920, 7231, + 7542, 7853, 0, 0, 0, 1844, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1766,13691, + 0,11591,11591,11591,11591,11591,11591, 0, 0, 0, + 0, 0, 1842,10206, 0, 0, 0, 0, 0, 0, + 9221, 0,11160, 0,13809, 0, 0, 0,11340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 863, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1767, 0, + 0, 1807, 3402, 6618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2115, 2991, 0, - 0, 0, 0, 0, 0, 0,11830, 1903, 7102, 7413, - 7724, 8035, 0, 0, 0, 1978, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1899, 8072, - 0,11773,11773,11773,11773,11773,11773, 0, 0, 0, - 0, 0, 1977,10388, 0, 0, 0, 0, 0, 0, - 9403, 0,11342, 0,11830, 0, 0, 0,11522, 0, + 0, 0, 0, 0, 0, 0, 0, 4999, 0, 0, + 0, 0, 0, 0, 1843, 1869, 0, 0, 0, 0, + 0, 0, 0, 0, 1804, 0, 8164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1910, 0, - 0, 1911, 3146, 6800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5181, 0, 0, - 0, 0, 0, 0, 1996, 1981, 0, 0, 0, 0, - 0, 0, 0, 0, 1903, 0, 8346, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13809, 0, 0, 0, + 0,13809, 0, 0, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,11830, 0, 0, 0, - 0,11830, 0, 0, 1977, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1813, 1495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1814, 0, 0,10026, 0, 0,13809, + 0, 0, 1843, 61, 1892, 0, 0, 0, 8600, 0, + 0, 3840, 1818, 0, 0, 0, 0,14071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1919, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1923, 1677, 0, + 0, 0, 0, 0, 0, 0, 5437, 0, 0, 0, + 0, 0, 5875, 0, 2371, 0, 0, 4278, 0, 0, + 376, 0, 0, 596, 0, 1872, 4716, 5154, 5592, 6030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1922, 0, 0,10208, 0, 0,11830, - 0, 0, 1996, 32, 2008, 0, 0, 0, 8782, 0, - 0, 3584, 1926, 0, 0, 0, 0,14034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5619, 0, 0, 0, - 0, 0, 6057, 0, 2553, 0, 0, 4022, 0, 0, - 192, 0, 0, 76, 0, 1988, 4460, 4898, 5336, 5774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14849, 1842, 0, + 0, 1899, 0, 0,13746, 0, 0, 0, 0, 0, + 0,15013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1842, 1842, 0, 0, 0, 0, 1842, 0, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14942, 1977, 0, - 0, 2012, 0, 0,13850, 0, 0, 0, 0, 0, - 0,15025, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 455, 0, 0, 1819, 0, 3088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1977, 1977, 0, 0, 0, 0, 1977, 0, 1977, 0, + 0,10404, 0, 0, 0, 0, 0, 0, 0, 594, + 2088, 0, 9472, 0, 0, 1902, 0, 0, 0, 1828, + 0, 0, 0, 0, 0, 0, 8780, 1869, 0, 0, + 0, 0, 69, 0, 1842, 0, 1833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6313, 0, + 0, 3247, 3685, 4123, 0, 0, 460, 666, 0, 0, + 0,12456, 0, 0,13809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 217, 0, 0, 1931, 0, 2076, 0, 0, 0, +15110, 0, 0, 0, 0, 0, 0, 0,14460, 0, + 0, 0, 0, 1907, 0, 1913, 0,13746, 0, 0, + 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,10586, 0, 0, 0, 0, 0, 0, 0, 798, - 1333, 0, 9654, 0, 0, 2014, 0, 0, 0, 1933, - 0, 0, 0, 0, 0, 0, 8962, 1981, 0, 0, - 0, 0, -72, 0, 1977, 0, 1934, 0, 0, 0, + 0, 0, 0, 5928, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, + 0, 0, 0,13537, 0, 0, 455, 0, 0, 0, + 0, 3088, 0, 0, 256, 0,11591, 0,11591,11591, +11591,11591,11591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6495, 0, - 0, 3429, 3867, 4305, 0, 0, 455, 611, 0, 0, - 0,12523, 0, 0,11830, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, + 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 763, 763, 0, 6, 0, 0, + 0, 1922, 0, 0, 0, 2526, 9657, 0, 0, 0, + 0, 1115, 1814, 0, 0, 0, 0, 0, 0,13746, +13746,13878, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15122, 0, 0, 0, 0, 0, 0, 0,14456, 0, - 0, 0, 0, 0, 0, 0, 2015, 0, 2018, 0, -13850, 0, 0, 0, 2019, 0, 0, 0, 0, 0, + 0, 0, 1845, 0, 1842, 0, 0, 0, 0, 0, + 0, 0, 1849,14168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 663, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2209, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13574, 0, 0, 217, - 0, 0, 0, 0, 2076, 0, 0, 532, 0,11773, - 0,11773,11773,11773,11773,11773, 0, 0, 0, 0, + 0, 0, 4561, 0, 0, 0, 0, 707,13746, 0, + 0, 0, 361, 0, 0, 0, 0, 1855, 0,15693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 860, - 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 860, 860, 0, - 6, 0, 0, 0, 2020, 0, 0, 0, 2270, 9839, - 0, 0, 0, 0, 944, 1922, 0, 0, 0, 0, - 0, 0,13850,13850,13835, 2008, 0, 0, 0, 0, +15207, 0, 0, 0,15305, 0, 0, 0, 0, 0, + 0, 0,13746, 1899, 0, 1899, 0, 186, 0,13894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1940, 0, 1977, 0, 0, - 0, 0, 0, 0, 0, 1941,14205, 0, 0, 0, + 0, 0, 0, 0, 0, 2465, 2902, 0, 716, 0, + 0, 0,13537, 0, 0, 1938, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4743, 0, 0, 0, 0, - 613,13850, 0, 0, 0, 837, 0, 0, 0, 0, - 1943, 0,15854, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,15317, 0, 0, 0,15414, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13850, 2012, 0, - 2012, 0, 206, 0,13905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2646, 3084, 0, 89, 0, 0, 0,13574, 0, 0, - 2022, 2005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10584,10782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,10766,10964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1078, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11799, 0, + 0, 0, 0, 0,13809, 0, 1859, 0, 0, 0, + 0, 0, 0, 0,13809,13809,13809,13809, 0, 0, + 0, 0, 0, 0,13809,13809,13809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,15402, 0, 0, 0, 0, 0, 849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6212, 0, 0, 0, 0, 0,11830, - 0, 1948, 0, 0, 0, 0, 0, 0, 0,11830, -11830,11830,11830, 0, 0, 0, 0, 0, 0,11830, -11830,11830, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,15497, 0, 0, - 0, 0, 0, 742, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2031, 0, 217, 0, 2005, - 2076, 0, 0, 0, 0, 0, 0, 0, 0, 798, - 2071, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1942, 0, 455, 0, 1919, 3088, 0, 0, 0, 0, + 0, 0, 0, 0, 594, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,11947, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13850,13850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11765, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13746,13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,11830, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,13809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2005, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,11144, 0, 0, 0, 0, - 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10962, 0, 0, 0, 0, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13850, 0, 0, - 0, 0, 2072, 0, 0, 0, 0, 0, 0, 0, -13850, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,13746, 0, 0, 0, 0, 1946, 0, 0, + 0, 0, 0, 0, 0,13746, 0, 0, 0, 0, + 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2072, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1990, 0, 0,13850, 0, 0, 0, 0, 0, 0, + 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1864, 0, 0,13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13850, 0, 0, 0, - 0, 0,11830, 0, 0, 0, 0, 0, 0, 2072, - 0,13850, 0, 0, +13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13746, 0, 0, 0, 0, 0,13809, 0, 0, + 0, 0, 0, 0, 1946, 0,13746, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1076,20 +1073,20 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14357, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1853, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1104,11 +1101,11 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2075, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1117,10 +1114,10 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,13625, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1849, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1128,18 +1125,18 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1859, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 875, 0, 0, 0, 0, 0, 0, 0, + 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13729, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1149,32 +1146,32 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1971, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, + 0, 1954, 0, 0, 0, 0, 0, 0, 0, 1741, + 1742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2088, 0, 0, 0, 0, 0, 0, 0, 0, 934, - 0, 0, 0, 0, 2074, 0, 0, 0, 0, 0, - 0, 0, 1861, 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1763, 0, 0, 0, 0, 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1886, 0, 0, - 0, 0, 0, 0, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1882, 1889, 0, 0, 0, + 1777, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2063, 0, 0, 0, 0, + 1929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1193,7 +1190,7 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1893, 1904, 0, 0, + 0, 1769, 1779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1202,2053 +1199,1977 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1908, 0, 0, 0, 0, + 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1905, 0, 0, + 0, 0, 1780, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 636, 0, 0, 0, 0, + 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1924, 0, 0, 0, 0, + 1800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1927, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1945, 0, 0, + 0, 1803, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1805, 0, 0, }; -static int yygindex[] = { 1983, - -4, -3, -690, 0, -420, -122, -99, 0, 337, 0, - 0, 0, 1758, -119, 0, 0, -883, 0, 1329, 0, - 1133, 214,-1468, -445, -396, -13, -773, 0, 1147, -22, - 1437, 0, 5, 1277, 667, 904, -989, -79, 0, 1174, - 0,-1141, 1046, 0, 0, 0,-1313,-1439,-1080, -941, - 0, 0, 0, 0, 1012, 1274, 1515, 0, 0, 0, - 0, -664, 0, 0,-1097, 0, 1308, 0,-1012,-1210, - 947, 935, -23, -85, 1876, 1754, 2211, -162, 3, 0, - 0, 0, 0, 0, 0, -807, 1320, 0, 2232, 0, - 0, 1029, 2140, 1709, 0, -18, 2238, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -300, 1500, 0, -299, -316, -281, 16, - 0, 0, 29, 0, 0, 0, 0, 0, 0, 1504, - 0, 0, 0, 7, 21, 33, 0, 10, 1964, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, - -149, 0, 0, 1663, 0, 0, 0, 429, 0, 0, - 0, 0, 0, 0, 0, 1594, 2210, -35, 0, 1787, - 0, 1913, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1862, + -4, -62, -705, 0, -456, 107, -99, 0, 160, 0, + 0, 0, 1627, -71, 0, 0, -887, 0, 1214, 0, + 1014, 166,-1441, -448, -422, 13, -757, 0, 1033, -22, + 1311, 0, 18, 1161, 565, 778, -986, -51, 0, 1059, + 0,-1156, 932, 0, 0, 0,-1300, -633,-1301,-1204, + 0, 0, 0, 0, 876, 1162, 1375, 0, 0, 0, + 0, -663, 0, 0,-1097, 0, 1171, 0,-1005,-1188, + 809, 801, -17, -34, 205, 1609, 2066, -162, 3, 0, + 0, 0, 0, 0, 0, -803, 1183, 0, 2083, 0, + 0, 888, 1985, 1550, 0, -14, 2078, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -311, 1340, 0, -294, -315, -292, 12, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 1337, + 0, 0, 0, 7, 16, 42, 0, 32, 1806, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, + -152, 0, 0, 1493, 0, 0, 0, 319, 0, 0, + 0, 0, 0, 0, 0, 1435, 2042, -52, 0, 1617, + 0, 1746, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 16544 +#define YYTABLESIZE 16411 static int yytable[] = { 70, - 162, 160, 227, 228, 304, 165, 213, 55, 124, 125, - 59, 554, 555, 219, 118, 109, 45, 1022, 1254, 1268, - 926, 56, 169, 170, 171, 172, 164, 1156, 203, 48, - 556, 366, 914, 57, 675, 574, 676, 1058, 1307, 709, - 177, 178, 167, 629, 1305, 813, 629, 605, 119, 629, - 606, 476, 78, 838, 135, 839, 119, 206, 206, 206, - 1373, 147, 206, 206, 186, 1630, 1332, 303, 1601, 1417, - 442, 316, 209, 426, 428, 430, 432, 434, 566, 1603, - 1308, 338, 232, 287, 443, 1010, 1311, 1592, 156, 307, - 420, 316, 206, 34, 74, 1375, 629, 475, 1578, 742, - 743, 744, 397, 1609, 1584, 254, 164, 216, 238, 206, - 249, 252, 253, 732, 733, 472, 1434, 422, 284, 547, - 1611, 259, 167, 1612, 261, 425, 206, 585, 267, 206, - 1309, 1376, 427, 198, 1606, 298, 66, 547, 429, 297, - 72, 1622, 431, 662, 305, 1623, 486, 875, 284, 1170, - 1171, 285, 288, 489, 1614, 75, 521, 296, 286, 651, - 1616, 748, 218, 203, 67, 68, 1435, 69, 423, 109, - 91, 1625, 433, 693, 206, 1624, 423, 340, 488, 157, - 474, 499, 396, 423, 590, 466, 1644, 597, 295, 423, - 1174, 95, 759, 423, 96, 206, 1641, 1642, 1498, 1176, - 448, 449, 1506, 1643, 206, 469, 94, 439, 1219, 1166, - 749, 1681, 286, 875, 110, 1182, 470, 97, 98, 620, - 1100, 741, 99, 423, 100, 1148, 1184, 484, 309, 1583, - 1051, 101, 1186, 1445, 493, 747, 496, 471, 764, 111, - 1101, 1175, 910, 112, 1260, 816, 269, 135, 102, 269, - 1177, 576, 600, 147, 147, 825, 156, 67, 68, 1605, - 69, 487, 498, 103, 596, 126, 1183, 119, 114, 800, - 157, 598, 743, 534, 1147, 516, 517, 1185, 519, 206, - 541, 305, 523, 1187, 747, 525, 78, 1628, 440, 528, - 1339, 78, 1165, 98, 537, 538, 539, 540, 1073, 1074, - 1075, 119, 119, 1494, 832, 566, 1228, 2, 216, 572, - 67, 68, 664, 69, 119, 599, 833, 834, 559, 55, - 976, 562, 59, 1629, 119, 593, 119, 557, 45, 908, - 581, 587, 560, 56, 835, 1043, 67, 68, 578, 69, - 558, 48, 588, 119, 561, 57, 119, 719, 720, 109, - 594, 122, 123, 582, 781, 164, 120, 121, 838, 603, - 839, 875, 168, 216, 119, 618, 67, 68, 119, 69, - 760, 167, 98, 583, 584, 117, 626, 122, 123, 628, - 628, 647, 653, 119, 836, 582, 34, 1291, 702, 217, - 627, 627, 646, 652, 122, 123, 34, 1504, 119, 1057, - 216, 204, 98, 495, 1041, 583, 584, 716, 207, 122, - 123, 1590, 152, 153, 154, 674, 591, 127, 592, 119, - 119, 128, 129, 130, 131, 132, 119, 133, 134, 135, - 136, 216, 137, 138, 679, 491, 139, 140, 141, 142, - 745, 746, 98, 143, 144, 1627, 216, 235, 236, 698, - 67, 68, 145, 69, 146, 486, 366, 291, 292, 293, - 604, 691, 636, 692, 1585, 269, 762, 808, 269, 147, - 148, 149, 119, 1418, 1188, 775, 156, 156, 469, 156, - 1172, 1190, 109, 529, 173, 286, 13, 573, 298, 976, - 717, 1192, 297, 289, 1607, 730, 649, 734, 749, 650, - 1333, 738, 67, 68, 150, 69, 119, 780, 127, 179, - 296, 739, 128, 129, 130, 131, 132, 34, 133, 134, - 135, 136, 798, 137, 138, 1189, 1304, 139, 140, 141, - 142, 629, 1191, 298, 143, 144, 484, 297, 770, 1194, - 875, 295, 1193, 145, 817, 146, 1196, 749, 1595, 283, - 875, 122, 123, 875, 837, 296, 1198, 478, 479, 338, - 147, 148, 149, 1449, 1450, 949, 950, 771, 773, 1200, - 27, 28, 29, 30, 31, 32, 33, 786, 1077, 468, - 174, 67, 1202, 1446, 69, 119, 295, 845, 779, 849, - 1195, 782, 1079, 476, 476, 150, 772, 1197, 787, 180, - 951, 1635, 340, 785, 1586, 67, 68, 1199, 69, 832, - 2, 911, 1204, 806, 366, 806, 806, 518, 806, 182, - 1201, 833, 834, 524, 875, 875, 875, 875, 875, 875, - 875, 531, 183, 1203, 1608, 818, 819, 1206, 827, 835, - 184, 822, 203, 823, 829, 848, 188, 70, 73, 76, - 79, 82, 85, 88, 745, 990, 548, 185, 1343, 67, - 68, 996, 69, 1205, 568, 220, 569, 983, 987, 206, - 570, 1007, 34, 206, 548, 259, 633, 124, 579, 580, - 67, 68, 589, 69, 1553, 534, 1208, 1602, 1207, 836, - 155, 1209, 233, 1345, 284, 1347, 67, 554, 555, 69, - 119, 719, 720, 745, 1016, 619, 925, 67, 68, 1344, - 69, 956, 963, 957, 1503, 1226, 556, 206, 1349, 955, - 992, 831, 947, 298, 1554, 156, 121, 752, 981, 221, - 1080, 34, 1081, 1082, 1083, 1084, 1085, 1562, 1234, 67, - 952, 953, 69, 954, 1346, 296, 1348, 222, 994, 986, - 250, 251, 1009, 991, 993, 995, 290, 1055, 670, 671, - 340, 672, 234, 673, 1012, 67, 68, 156, 69, 1350, - 1023, 925, 771, 481, 482, 771, 295, 1014, 681, 682, - 260, 155, 554, 67, 68, 554, 69, 831, 1259, 13, - 476, 269, 269, 1360, 269, 1362, 1026, 1243, 1278, 1496, - 206, 634, 299, 622, 635, 1028, 623, 624, 237, 1556, - 291, 292, 293, 1565, 582, 476, 1564, 1208, 806, 531, - 1638, 300, 1209, 1042, 607, 1044, 608, 609, 610, 1619, - 702, 1157, 308, 34, 583, 584, 1052, 722, 572, 572, - 1167, 294, 727, 728, 729, 1669, 731, 476, 735, 736, - 737, 444, 740, 445, 446, 291, 292, 293, 301, 119, - 447, 582, 1646, 27, 28, 29, 30, 31, 32, 33, - 262, 263, 302, 27, 28, 29, 30, 31, 32, 33, - 264, 583, 584, 566, 756, 757, 2, 1159, 572, 67, - 68, 34, 69, 1671, 67, 68, 1261, 69, 1262, 1524, - 627, 627, 126, 309, 1151, 269, 269, 769, 1683, 310, - 774, 311, 67, 68, 374, 69, 119, 67, 68, 398, - 69, 1253, 421, 1255, 577, 577, 435, 529, 1072, 438, - 98, 783, 450, 1378, 473, 831, 67, 68, 789, 69, - 1379, 476, 1428, 119, 126, 2, 1647, 1213, 98, 467, - 627, 476, 1212, 807, 477, 1211, 480, 625, 494, 241, - 1441, 1442, 1443, 1274, 1221, 1277, 497, 1223, 67, 68, - 490, 69, 98, 1227, 577, 500, 67, 1281, 826, 69, - 119, 37, 1222, 1420, 1421, 37, 614, 614, 1680, 37, - 37, 831, 925, 501, 27, 28, 29, 30, 31, 32, - 33, 831, 844, 37, 559, 200, 506, 562, 1258, 1238, - 1247, 647, 507, 557, 508, 787, 509, 787, 560, 1296, - 1236, 1245, 646, 510, 34, 862, 558, 511, 1235, 1244, - 561, 512, 1237, 1246, 37, 513, 614, 514, 1230, 1231, - 1232, 1233, 803, 804, 805, 291, 292, 293, 1280, 152, - 153, 154, 122, 123, 582, 67, 68, 515, 69, 960, - 961, 962, 10, 11, 12, 13, 1633, 1396, 1397, 1398, - 1399, 520, 1326, 925, 583, 584, 526, 1400, 1401, 1402, - 1422, 1423, 522, 979, 531, 476, 1640, 122, 123, 582, - 645, 152, 153, 154, 831, 831, 566, 566, 527, 566, - 1240, 571, 1241, 1242, 1003, 2, 1005, 543, 1006, 583, - 584, 1103, 1104, 1011, 831, 577, 156, 1015, 613, 613, - 595, 10, 11, 12, 13, 468, 831, 677, 831, 831, - 602, 831, 831, 1208, 61, 64, 1027, 67, 1209, 655, - 1393, 1394, 255, 256, 257, 258, 1029, 1030, 666, 27, - 28, 29, 30, 31, 32, 33, 502, 503, 504, 505, - 1040, 157, 667, 669, 678, 92, 223, 298, 224, 225, - 226, 297, 680, 156, 1357, 689, 67, 68, 1363, 69, - 119, 1059, 1380, 1076, 1618, 1620, 1371, 690, 1060, 296, - 1061, 1062, 1063, 97, 100, 1086, 103, 1087, 831, 831, - 831, 831, 831, 831, 831, 704, 216, 697, 27, 28, - 29, 30, 31, 32, 33, 705, 703, 706, 1390, 847, - 295, 711, 109, 1626, 92, 1431, 708, 634, 723, 1064, - 1065, 1066, 109, 109, 109, 109, 718, 724, 2, 725, - 726, 750, 109, 109, 109, 191, 1403, 1155, 192, 193, - 194, 195, 747, 196, 197, 198, 751, 1168, 753, 763, - 1407, 641, 1408, 765, 8, 9, 766, 767, 768, 1413, - 656, 657, 658, 776, 777, 1067, 1068, 1069, 778, 1070, - 784, 791, 1071, 790, 13, 67, 68, 298, 69, 1018, - 92, 297, 1282, 126, 811, 1501, 621, 809, 622, 828, - 812, 623, 624, 37, 37, 37, 659, 660, 661, 296, - 27, 28, 29, 30, 31, 32, 33, 810, 1502, 820, - 821, 98, 824, 830, 1631, 843, 850, 852, 1224, 1507, - 1225, 1632, 208, 853, 25, 1461, 851, 859, 22, 854, - 295, 1211, 67, 68, 855, 915, 856, 858, 1514, 912, - 126, 1178, 1179, 1180, 1181, 789, 19, 789, 861, 1495, - 683, 684, 685, 808, 1436, 1437, 1438, 1439, 27, 28, - 29, 30, 31, 32, 33, 642, 918, 913, 98, 1270, - 916, 1497, 1271, 920, 919, 917, 923, 16, 924, 67, - 68, 208, 69, 208, 927, 958, 686, 687, 688, 127, - 925, 959, 964, 128, 129, 130, 131, 132, 965, 133, - 134, 135, 136, 1555, 137, 138, 966, 13, 139, 140, - 141, 142, 808, 967, 968, 143, 144, 643, 969, 970, - 644, 971, 972, 973, 145, 974, 146, 975, 92, 977, - 152, 153, 154, 1089, 1090, 1091, 1092, 1093, 978, 982, - 1004, 147, 148, 149, 1211, 997, 1017, 208, 1008, 928, - 929, 930, 1019, 931, 932, 933, 934, 1013, 935, 936, - 198, 1593, 937, 938, 939, 940, 1020, 1021, 1557, 941, - 942, 200, 1024, 1310, 1597, 1031, 150, 1032, 808, 291, - 292, 293, 1025, 67, 68, 925, 69, 152, 153, 154, - 1033, 27, 28, 29, 30, 31, 32, 33, 1034, 1035, - 1036, 1340, 1341, 1342, 1037, 1047, 1038, 1039, 1351, 1352, - 1353, 1354, 1355, 1356, 1045, 1358, 1359, 1361, 1046, 1364, - 1365, 1366, 1367, 1368, 1369, 1370, 1056, 1372, 423, 1374, - 1054, 1377, 1088, 1381, 1094, 1059, 1096, 943, 1098, 1097, - 1099, 1102, 1060, 1149, 1061, 1062, 1063, 1152, 1214, 1161, - 1665, 1164, 1169, 1215, 1216, 1634, 199, 1217, 1621, 1218, - 1220, 1250, 1251, 1676, 1252, 92, 92, 92, 92, 92, - 1299, 1300, 1301, 1302, 1303, 1256, 1257, 1263, 240, 241, - 242, 1678, 1266, 1064, 1065, 1066, 1269, 92, 92, 1272, - 392, 1267, 1286, 1409, 1283, 208, 1284, 1285, 1412, 291, - 292, 293, 1287, 243, 92, 92, 92, 92, 1288, 1419, - 1289, 92, 92, 104, 1290, 1293, 1297, 92, 1298, 1426, - 92, 1295, 925, 1429, 1430, 1329, 808, 92, 92, 1067, - 1068, 1069, 1330, 1070, 1433, 1334, 1071, 1331, 1335, 1336, - 1337, 1338, 491, 1677, 208, 1387, 7, 10, 13, 1389, - 1391, 1392, 1395, 1404, 1406, 1440, 1444, 1405, 1411, 1414, - 1410, 1432, 155, 1415, 925, 662, 40, 1427, 1174, 1455, - 1456, 1457, 1458, 1459, 1460, 392, 1462, 1176, 1182, 1184, - 1186, 1188, 92, 92, 1190, 92, 92, 92, 1192, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 244, 40, - 245, 246, 247, 248, 40, 1194, 40, 40, 40, 1196, - 40, 191, 1198, 40, 192, 193, 194, 195, 1200, 196, - 197, 198, 1448, 1451, 1447, 40, 40, 40, 40, 1452, - 1453, 1463, 208, 208, 208, 208, 208, 1465, 1454, 1464, - 1466, 1467, 1468, 1469, 1470, 1471, 208, 1472, 1473, 1474, - 1475, 208, 1476, 1513, 208, 208, 34, 40, 1477, 40, - 1518, 1478, 1479, 808, 808, 808, 808, 808, 1480, 1481, - 393, 208, 208, 208, 208, 1483, 208, 208, 208, 208, - 1482, 1484, 1485, 1487, 208, 808, 808, 208, 1486, 40, - 1488, 40, 1489, 1490, 208, 208, 208, 1492, 1493, 1499, - 1491, 1505, 808, 808, 808, 808, 1500, 1509, 1510, 808, - 808, 1511, 1515, 1516, 1343, 808, 1517, 808, 808, 1345, - 1347, 1349, 1249, 1519, 1527, 808, 808, 1520, 1521, 156, - 392, 208, 208, 392, 392, 392, 392, 1523, 392, 392, - 392, 1522, 95, 1525, 1526, 96, 1568, 1569, 1570, 208, - 208, 1528, 208, 208, 208, 393, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 1529, 1530, 1531, 97, 98, - 1532, 1533, 1535, 99, 1537, 100, 1538, 1539, 1534, 1536, - 808, 808, 101, 808, 808, 808, 1540, 808, 808, 808, - 808, 808, 808, 808, 808, 808, 1541, 1542, 1604, 102, - 1543, 1544, 1545, 1610, 1604, 1613, 1546, 1617, 1547, 1610, - 1604, 1613, 1548, 1550, 103, 1549, 1551, 1563, 1508, 1558, - 1552, 1561, 1567, 1573, 1574, 1575, 40, 40, 40, 40, - 1591, 1610, 1604, 1613, 40, 1576, 921, 40, 1594, 40, - 40, 40, 40, 40, 40, 40, 1596, 40, 40, 40, - 40, 1598, 40, 40, 40, 1599, 40, 40, 40, 40, - 1600, 1636, 40, 40, 40, 40, 97, 1637, 1648, 1666, - 2, 99, 40, 100, 40, 1645, 1667, 40, 1668, 1673, - 101, 40, 40, 1670, 40, 1674, 1675, 1679, 40, 40, - 40, 40, 393, 641, 1672, 393, 281, 102, 67, 68, - 216, 69, 119, 1684, 1682, 40, 126, 437, 438, 104, - 393, 137, 103, 393, 393, 393, 393, 29, 393, 393, - 393, 1154, 811, 867, 40, 40, 40, 40, 40, 745, - 40, 40, 545, 399, 98, 846, 756, 543, 838, 546, - 40, 40, 538, 138, 763, 541, 868, 757, 542, 550, - 271, 157, 143, 839, 74, 847, 164, 40, 719, 720, - 240, 144, 40, 40, 40, 40, 40, 40, 40, 40, + 554, 160, 227, 228, 304, 923, 162, 55, 675, 165, + 676, 203, 45, 209, 118, 109, 56, 555, 1249, 556, + 1151, 1263, 169, 170, 171, 172, 164, 48, 366, 574, + 1017, 1302, 59, 911, 124, 125, 709, 1300, 1053, 284, + 1368, 219, 57, 626, 206, 156, 626, 218, 119, 626, + 476, 606, 119, 177, 178, 813, 605, 213, 338, 206, + 206, 1327, 338, 742, 743, 744, 206, 303, 1596, 1306, + 1007, 759, 147, 135, 206, 66, 475, 186, 835, 1625, + 836, 167, 232, 91, 94, 1598, 1412, 732, 733, 810, + 420, 284, 67, 68, 1604, 69, 626, 1609, 1429, 1606, + 316, 67, 68, 1607, 69, 254, 164, 563, 238, 1587, + 249, 252, 253, 34, 284, 472, 476, 307, 340, 422, + 316, 426, 428, 430, 432, 434, 110, 259, 267, 1617, + 261, 206, 425, 74, 908, 298, 585, 1303, 216, 297, + 1095, 1618, 748, 298, 427, 1013, 203, 297, 1430, 112, + 305, 285, 288, 397, 1619, 72, 1636, 296, 286, 474, + 1096, 167, 1165, 1166, 198, 296, 835, 1637, 836, 109, + 423, 1638, 111, 1628, 67, 68, 1143, 69, 521, 120, + 121, 489, 396, 423, 590, 466, 114, 1304, 295, 1611, + 442, 749, 1620, 78, 75, 423, 295, 486, 1614, 67, + 448, 449, 69, 119, 443, 469, 481, 482, 206, 34, + 119, 309, 286, 1639, 67, 68, 620, 69, 597, 1501, + 439, 1214, 126, 156, 204, 1142, 269, 484, 1440, 269, + 488, 207, 499, 1676, 493, 429, 743, 1578, 1580, 764, + 67, 68, 496, 69, 250, 251, 797, 298, 216, 760, + 98, 297, 600, 173, 431, 1255, 216, 67, 68, 822, + 69, 119, 498, 206, 147, 147, 135, 1600, 1602, 296, + 235, 236, 529, 534, 217, 1441, 517, 662, 519, 578, + 541, 1334, 523, 588, 973, 525, 423, 305, 1223, 528, + 1068, 1069, 1070, 98, 537, 538, 539, 540, 599, 598, + 295, 1623, 576, 572, 237, 423, 618, 156, 119, 67, + 68, 119, 69, 487, 1046, 596, 289, 119, 559, 55, + 122, 123, 119, 557, 45, 593, 119, 560, 56, 829, + 34, 905, 67, 68, 563, 69, 1581, 1624, 558, 48, + 188, 830, 831, 562, 59, 98, 1038, 719, 720, 109, + 594, 164, 119, 561, 57, 164, 581, 587, 119, 832, + 122, 123, 582, 664, 119, 1036, 1603, 1286, 98, 152, + 153, 154, 603, 119, 168, 679, 626, 119, 287, 119, + 478, 479, 583, 584, 529, 627, 627, 646, 652, 34, + 119, 1585, 67, 68, 119, 69, 1229, 1161, 1052, 1499, + 126, 628, 628, 647, 653, 495, 167, 563, 440, 833, + 167, 716, 119, 1203, 582, 122, 123, 829, 1204, 744, + 491, 122, 123, 582, 216, 1622, 179, 78, 98, 830, + 831, 1626, 78, 34, 583, 584, 122, 123, 1627, 702, + 518, 674, 174, 583, 584, 269, 524, 832, 269, 698, + 973, 117, 216, 366, 531, 645, 180, 291, 292, 293, + 34, 691, 433, 692, 805, 291, 292, 293, 744, 604, + 468, 770, 1413, 1169, 1167, 775, 67, 68, 469, 912, + 1160, 573, 109, 241, 126, 286, 206, 568, 182, 569, + 717, 745, 746, 570, 156, 1171, 1328, 833, 206, 651, + 1177, 579, 580, 746, 1179, 589, 486, 803, 803, 1203, + 803, 739, 98, 423, 1204, 269, 269, 762, 269, 1299, + 582, 730, 283, 734, 1170, 1181, 1519, 738, 619, 1183, + 183, 626, 1185, 693, 67, 68, 484, 69, 1187, 784, + 583, 584, 184, 340, 2, 468, 1172, 152, 153, 154, + 1590, 1178, 746, 595, 803, 1180, 516, 601, 780, 1189, + 70, 73, 76, 79, 82, 85, 88, 771, 773, 291, + 292, 293, 814, 795, 1444, 1445, 1182, 783, 1072, 834, + 1184, 670, 671, 1186, 672, 185, 673, 772, 779, 1188, + 27, 28, 29, 30, 31, 32, 33, 470, 220, 1630, + 294, 681, 682, 2, 34, 67, 68, 206, 69, 119, + 1190, 366, 1191, 1193, 1370, 842, 782, 846, 471, 216, + 563, 563, 1548, 563, 298, 203, 641, 989, 297, 269, + 269, 152, 153, 154, 569, 569, 122, 123, 824, 544, + 67, 68, 531, 69, 826, 845, 296, 2, 815, 816, + 1371, 221, 1195, 1197, 819, 987, 820, 544, 991, 67, + 722, 993, 69, 1192, 1194, 727, 728, 729, 1493, 731, + 1238, 735, 736, 737, 206, 740, 1199, 295, 1597, 206, + 1201, 259, 222, 554, 569, 534, 27, 28, 29, 30, + 31, 32, 33, 233, 1498, 1338, 1225, 1226, 1227, 1228, + 555, 340, 556, 1196, 1198, 1491, 922, 756, 757, 742, + 803, 953, 1340, 954, 156, 156, 234, 156, 980, 984, + 10, 11, 12, 13, 124, 156, 741, 1200, 978, 1011, + 769, 1202, 952, 774, 1021, 1549, 67, 68, 960, 69, + 642, 260, 1342, 1023, 944, 290, 1339, 298, 1557, 983, + 545, 297, 1006, 988, 990, 992, 67, 68, 742, 69, + 1203, 786, 1355, 1341, 1357, 1204, 298, 1018, 545, 296, + 752, 922, 1344, 121, 872, 1075, 804, 1076, 1077, 1078, + 1079, 1080, 13, 67, 68, 206, 69, 119, 296, 1551, + 1009, 768, 643, 1343, 768, 644, 67, 68, 308, 69, + 295, 823, 25, 624, 624, 1050, 22, 27, 28, 29, + 30, 31, 32, 33, 828, 946, 947, 299, 2, 295, + 1037, 300, 1039, 1345, 19, 841, 13, 67, 68, 301, + 69, 1633, 907, 1047, 719, 720, 649, 574, 574, 650, + 872, 119, 1146, 656, 657, 658, 67, 68, 859, 69, + 948, 611, 611, 624, 33, 16, 1152, 302, 1436, 1437, + 1438, 1560, 805, 476, 1559, 1162, 27, 28, 29, 30, + 31, 32, 33, 1641, 67, 68, 309, 69, 702, 659, + 660, 661, 957, 958, 959, 1208, 119, 574, 582, 551, + 1154, 310, 551, 200, 67, 68, 216, 69, 119, 1573, + 311, 611, 126, 398, 1666, 1579, 976, 531, 583, 584, + 27, 28, 29, 30, 31, 32, 33, 1149, 1004, 1678, + 206, 805, 683, 684, 685, 374, 1642, 1000, 421, 1002, + 98, 1003, 800, 801, 802, 1601, 1008, 27, 28, 29, + 30, 31, 32, 33, 1415, 1416, 291, 292, 293, 61, + 64, 784, 67, 784, 719, 720, 1022, 435, 686, 687, + 688, 1074, 1207, 476, 1218, 1216, 1024, 1025, 1675, 1248, + 1222, 1250, 438, 1235, 1206, 1236, 1237, 467, 199, 1217, + 1035, 67, 262, 263, 69, 119, 450, 805, 872, 922, + 949, 950, 264, 951, 10, 11, 12, 13, 1417, 1418, + 1276, 559, 1221, 1071, 206, 1253, 557, 476, 1423, 1269, + 560, 1272, 1231, 1240, 646, 1081, 473, 1082, 122, 123, + 582, 558, 476, 1230, 1239, 1254, 562, 476, 1233, 1242, + 647, 1084, 1085, 1086, 1087, 1088, 561, 477, 1232, 1241, + 583, 584, 1291, 1275, 223, 480, 224, 225, 226, 152, + 153, 154, 476, 1635, 156, 1294, 1295, 1296, 1297, 1298, + 1098, 1099, 1391, 1392, 1393, 1394, 490, 1150, 922, 291, + 292, 293, 1395, 1396, 1397, 67, 68, 1163, 69, 119, + 494, 27, 28, 29, 30, 31, 32, 33, 291, 292, + 293, 1273, 33, 206, 497, 1321, 33, 33, 33, 33, + 33, 500, 33, 33, 33, 33, 501, 33, 33, 506, + 156, 33, 33, 33, 33, 1664, 37, 476, 33, 33, + 1256, 40, 1257, 43, 7, 10, 13, 33, 507, 33, + 46, 97, 100, 191, 103, 805, 192, 193, 194, 195, + 508, 196, 197, 198, 33, 33, 33, 49, 1219, 509, + 1220, 510, 37, 1613, 1615, 511, 37, 610, 610, 92, + 37, 37, 52, 512, 520, 1067, 607, 872, 608, 609, + 610, 513, 514, 786, 37, 786, 515, 872, 522, 33, + 872, 526, 1398, 1375, 104, 527, 1388, 1389, 255, 256, + 257, 258, 543, 571, 602, 1352, 1402, 1265, 1403, 1358, + 1266, 34, 655, 666, 577, 37, 667, 1366, 502, 503, + 504, 505, 669, 1385, 677, 678, 680, 109, 92, 1173, + 1174, 1175, 1176, 67, 68, 689, 69, 109, 109, 109, + 109, 126, 67, 68, 690, 69, 216, 109, 109, 109, + 34, 1431, 1432, 1433, 1434, 703, 704, 705, 1426, 697, + 706, 872, 872, 872, 872, 872, 872, 872, 708, 98, + 711, 634, 1373, 718, 1408, 723, 724, 1244, 725, 1374, + 726, 747, 805, 805, 805, 805, 805, 750, 751, 67, + 68, 763, 69, 753, 92, 768, 776, 126, 765, 777, + 1496, 766, 767, 778, 805, 805, 781, 806, 787, 393, + 444, 1305, 445, 446, 788, 807, 625, 808, 809, 447, + 821, 805, 805, 805, 805, 98, 817, 825, 805, 805, + 818, 840, 827, 847, 805, 1489, 805, 805, 848, 1335, + 1336, 1337, 849, 850, 805, 805, 1346, 1347, 1348, 1349, + 1350, 1351, 851, 1353, 1354, 1356, 852, 1359, 1360, 1361, + 1362, 1363, 1364, 1365, 853, 1367, 1456, 1369, 1206, 1372, + 1490, 1376, 855, 858, 1497, 33, 856, 909, 910, 913, + 914, 1509, 915, 916, 920, 1502, 1492, 917, 152, 153, + 154, 921, 979, 924, 393, 955, 956, 961, 962, 805, + 805, 963, 805, 805, 805, 922, 805, 805, 805, 805, + 805, 805, 805, 805, 805, 964, 965, 966, 967, 200, + 968, 969, 994, 95, 970, 2, 96, 97, 1054, 971, + 972, 1404, 99, 974, 100, 1055, 1407, 1056, 1057, 1058, + 975, 101, 92, 1001, 152, 153, 154, 1414, 641, 97, + 98, 1005, 1012, 1014, 99, 1015, 100, 1421, 102, 1016, + 1010, 1424, 1425, 101, 2, 1019, 1020, 1026, 1027, 1550, + 1028, 1031, 1428, 103, 1029, 392, 1059, 1060, 1061, 1030, + 102, 1206, 1032, 1552, 37, 37, 37, 1033, 1034, 1040, + 1041, 1042, 1051, 1435, 1439, 103, 1049, 423, 1083, 1089, + 922, 1091, 1092, 1093, 40, 1094, 1097, 1450, 1451, 1452, + 1453, 1454, 1455, 1144, 1457, 1147, 1156, 1592, 1159, 1209, + 1164, 1210, 1062, 1063, 1064, 1211, 1065, 1588, 1212, 1066, + 1213, 393, 1215, 1246, 393, 1245, 1247, 40, 1251, 1252, + 1258, 1261, 40, 1262, 40, 40, 40, 1264, 40, 393, + 1267, 40, 393, 393, 393, 393, 1278, 393, 393, 393, + 392, 1279, 642, 40, 40, 40, 40, 1280, 1281, 1282, + 1283, 1285, 1284, 1288, 1290, 1324, 1629, 1292, 1671, 92, + 92, 92, 92, 92, 1293, 1325, 1326, 1329, 1330, 1331, + 1332, 1508, 1333, 1660, 1382, 40, 281, 40, 1513, 1616, + 34, 92, 92, 1384, 13, 491, 1386, 1387, 1390, 1399, + 1401, 1400, 1405, 1406, 643, 1409, 662, 644, 92, 92, + 92, 92, 1410, 8, 9, 92, 92, 40, 1422, 40, + 1427, 92, 1169, 1171, 92, 1177, 1179, 922, 1181, 1183, + 1185, 92, 92, 13, 1187, 1189, 1191, 1673, 1193, 1195, + 1442, 1443, 1446, 1447, 1448, 621, 1458, 622, 1672, 191, + 623, 624, 192, 193, 194, 195, 636, 196, 197, 198, + 1449, 1460, 1459, 1461, 1462, 1463, 1464, 1465, 1466, 922, + 1467, 1468, 1469, 1470, 1563, 1564, 1565, 1471, 27, 28, + 29, 30, 31, 32, 33, 1472, 92, 92, 1474, 92, + 92, 92, 1476, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 1473, 1475, 1477, 392, 1478, 1479, 392, 392, + 392, 392, 1480, 392, 392, 392, 1482, 27, 28, 29, + 30, 31, 32, 33, 1483, 1485, 1599, 1481, 1484, 1487, + 1488, 1605, 1599, 1608, 1486, 1612, 1494, 1605, 1599, 1608, + 1500, 1504, 1505, 1506, 1338, 1510, 1277, 1495, 1511, 1512, + 1340, 1342, 1344, 1515, 40, 40, 40, 40, 1514, 1605, + 1599, 1608, 40, 1518, 1516, 40, 1517, 40, 40, 40, + 40, 40, 40, 40, 1520, 40, 40, 40, 40, 1521, + 40, 40, 40, 1522, 40, 40, 40, 40, 1523, 1525, + 40, 40, 40, 40, 1524, 1526, 1528, 1530, 1532, 1533, + 40, 1534, 40, 1535, 2, 40, 1527, 1529, 1531, 40, + 40, 1536, 40, 1537, 1538, 1539, 40, 40, 40, 40, + 1540, 1541, 1667, 1542, 1543, 1547, 1544, 1545, 1546, 1553, + 268, 269, 270, 40, 271, 272, 273, 274, 1558, 275, + 276, 1568, 1562, 277, 278, 279, 280, 1556, 1569, 1570, + 1571, 918, 40, 40, 40, 40, 40, 1586, 40, 40, + 1589, 1632, 1591, 1593, 1594, 1595, 1631, 1640, 40, 40, + 633, 1643, 1661, 1662, 1663, 1668, 1669, 1670, 1677, 157, + 1674, 1679, 437, 1665, 438, 40, 742, 104, 137, 808, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 147, 167, 210, 576, 566, 4, 298, 642, 28, 210, - 31, 58, 28, 55, 55, 40, 40, 40, 40, 94, - 40, 40, 40, 40, 106, 55, 40, 55, 40, 55, - 40, 40, 40, 40, 109, 40, 40, 566, 40, 40, - 40, 112, 566, 115, 566, 566, 566, 40, 566, 13, - 55, 566, 313, 152, 153, 154, 55, 55, 1050, 643, - 118, 1265, 644, 566, 566, 566, 566, 668, 55, 55, - 1273, 1059, 1566, 1150, 980, 40, 40, 40, 1060, 55, - 1061, 1062, 1063, 1424, 55, 97, 1264, 1328, 55, 1173, - 99, 55, 100, 40, 40, 566, 40, 40, 40, 101, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 55, - 40, 1385, 922, 1163, 1416, 1425, 102, 988, 601, 1064, - 1065, 1066, 1160, 707, 163, 812, 812, 566, 812, 566, - 93, 103, 1388, 27, 28, 29, 30, 31, 32, 33, - 268, 269, 270, 239, 271, 272, 273, 274, 758, 275, - 276, 166, 998, 277, 278, 279, 280, 860, 542, 210, - 1002, 857, 989, 202, 799, 1067, 1068, 1069, 715, 1070, - 0, 0, 1071, 638, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 210, 0, - 812, 812, 812, 860, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 812, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, - 0, 0, 0, 0, 566, 566, 298, 566, 298, 298, - 298, 0, 566, 0, 0, 566, 150, 566, 566, 566, - 566, 566, 566, 566, 210, 566, 566, 566, 566, 0, - 566, 566, 0, 0, 566, 566, 566, 566, 0, 0, - 566, 566, 566, 566, 0, 0, 0, 298, 298, 298, - 566, 0, 566, 0, 0, 566, 0, 0, 0, 0, - 566, 0, 0, 0, 0, 0, 566, 566, 566, 566, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 812, 0, 812, 812, 812, 812, 0, 0, 0, 0, - 0, 0, 0, 298, 298, 298, 0, 298, 0, 0, - 298, 0, 566, 0, 566, 566, 566, 0, 0, 0, - 0, 860, 0, 0, 0, 0, 0, 0, 566, 566, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 860, 566, 0, 0, 0, 0, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, - 0, 0, 210, 566, 0, 0, 566, 566, 0, 0, - 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 566, 566, 566, 566, 0, 566, 566, - 566, 566, 155, 0, 566, 0, 566, 0, 566, 566, - 566, 0, 0, 566, 566, 567, 566, 566, 566, 0, - 567, 210, 567, 567, 567, 566, 567, 0, 0, 567, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 567, 567, 567, 567, 0, 0, 0, 860, 0, - 0, 0, 0, 566, 566, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 0, 566, 566, 567, 566, 566, 566, 0, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 0, 566, 0, - 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 860, 0, 0, 860, 0, 567, 1664, 567, 0, 210, - 210, 210, 210, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 210, 0, - 0, 210, 210, 0, 861, 0, 0, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, - 210, 210, 0, 210, 210, 210, 210, 0, 0, 0, - 0, 210, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 860, 860, 860, 860, 860, 860, - 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, - 861, 0, 0, 0, 0, 0, 0, 0, 210, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 210, 0, 210, - 210, 210, 0, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 567, 567, 0, 567, 0, 0, 0, 0, - 567, 0, 0, 567, 0, 567, 567, 567, 567, 567, - 567, 567, 93, 567, 567, 567, 567, 0, 567, 567, - 0, 0, 567, 567, 567, 567, 0, 1649, 567, 567, - 567, 567, 0, 0, 0, 0, 0, 0, 567, 0, - 567, 0, 1650, 567, 0, 0, 0, 0, 567, 216, - 0, 0, 0, 0, 567, 567, 567, 567, 1651, 0, - 0, 0, 0, 0, 1312, 1313, 1314, 1652, 1315, 1316, - 1317, 1318, 0, 1319, 1320, 198, 0, 1321, 1322, 1323, - 1324, 1653, 1654, 1655, 1656, 0, 1325, 0, 0, 0, - 567, 0, 567, 567, 567, 0, 0, 0, 861, 0, - 0, 0, 0, 0, 0, 0, 567, 567, 0, 0, - 0, 0, 0, 1657, 1658, 1659, 1660, 1661, 1662, 1663, - 0, 861, 0, 567, 0, 0, 0, 0, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 0, 0, 0, - 93, 567, 0, 0, 567, 567, 0, 0, 0, 0, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 567, 567, 567, 567, 0, 567, 567, 567, 567, - 0, 0, 567, 0, 567, 0, 567, 567, 567, 0, - 0, 567, 567, 560, 567, 567, 567, 0, 560, 0, - 560, 560, 560, 567, 560, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, - 560, 560, 560, 0, 0, 861, 0, 0, 0, 0, - 0, 567, 567, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, - 567, 560, 567, 567, 567, 0, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 0, 567, 861, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 861, 0, 0, - 861, 0, 0, 560, 0, 560, 0, 93, 93, 93, - 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 93, 0, 862, 0, 0, 94, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, - 0, 0, 0, 93, 93, 0, 0, 0, 0, 93, - 0, 0, 93, 0, 0, 0, 0, 0, 0, 93, - 93, 861, 861, 861, 861, 861, 861, 861, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 127, 94, 0, 0, 0, 862, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 1382, - 144, 0, 0, 0, 93, 93, 0, 93, 93, 93, - 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 560, 560, 0, 560, 0, 0, 0, 0, 560, 0, - 0, 560, 0, 560, 560, 560, 560, 560, 560, 560, - 94, 560, 560, 560, 560, 0, 560, 560, 1383, 0, - 560, 560, 560, 560, 0, 0, 560, 560, 560, 560, - 0, 0, 0, 0, 0, 0, 560, 1384, 560, 0, - 0, 560, 0, 0, 0, 0, 560, 0, 0, 0, - 0, 0, 560, 560, 560, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, - 560, 560, 560, 0, 0, 0, 862, 0, 0, 0, - 0, 0, 0, 0, 560, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, - 0, 560, 0, 0, 0, 0, 560, 560, 560, 560, - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 560, 560, 560, 0, 0, 0, 94, 560, - 0, 0, 560, 560, 0, 0, 0, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, - 560, 560, 560, 0, 560, 560, 560, 560, 0, 0, - 560, 0, 560, 0, 560, 560, 560, 0, 0, 560, - 560, 558, 560, 560, 560, 0, 558, 0, 558, 558, - 558, 560, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, - 558, 0, 0, 862, 0, 0, 0, 0, 0, 560, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 560, 560, 558, - 560, 560, 560, 0, 560, 560, 560, 560, 560, 560, - 560, 560, 560, 0, 560, 862, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 862, 0, 0, 862, 0, - 0, 558, 0, 558, 0, 94, 94, 94, 94, 94, - 928, 929, 930, 0, 931, 932, 933, 934, 0, 935, - 936, 198, 0, 937, 938, 939, 940, 94, 94, 0, - 941, 942, 0, 805, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 94, 94, 94, 0, 0, - 0, 94, 94, 0, 0, 0, 0, 94, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 94, 94, 862, - 862, 862, 862, 862, 862, 862, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 805, 0, 0, 0, 0, 0, 943, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 94, 0, 94, 94, 94, 0, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 558, 558, - 0, 558, 0, 0, 0, 0, 558, 0, 0, 558, - 0, 558, 558, 558, 558, 558, 558, 558, 805, 558, - 558, 558, 558, 0, 558, 558, 0, 0, 558, 558, - 558, 558, 0, 0, 558, 558, 558, 558, 0, 0, - 0, 0, 0, 0, 558, 0, 558, 0, 0, 558, - 0, 0, 0, 0, 558, 1105, 0, 0, 0, 0, - 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1106, 1107, 0, 1108, 1109, 1110, - 1111, 1112, 1113, 0, 1114, 1115, 0, 1116, 1117, 1118, - 1119, 1120, 0, 0, 0, 0, 558, 0, 558, 558, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 0, 0, 0, 805, 558, 0, 0, - 558, 558, 0, 0, 0, 0, 556, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, - 558, 0, 558, 558, 558, 558, 0, 0, 558, 0, - 558, 0, 558, 558, 558, 0, 0, 558, 558, 556, - 558, 558, 558, 0, 556, 0, 556, 556, 556, 558, + 40, 40, 40, 40, 40, 40, 40, 40, 29, 864, + 542, 540, 563, 543, 1503, 843, 399, 210, 753, 535, + 835, 138, 760, 40, 40, 40, 40, 538, 40, 40, + 40, 40, 754, 539, 40, 865, 40, 547, 40, 40, + 40, 40, 271, 40, 40, 563, 40, 40, 40, 74, + 563, 836, 563, 563, 563, 40, 563, 844, 143, 563, + 164, 240, 144, 13, 147, 167, 210, 573, 4, 28, + 28, 563, 563, 563, 563, 634, 31, 622, 635, 1054, + 623, 624, 55, 40, 40, 40, 1055, 58, 1056, 1057, + 1058, 55, 94, 97, 106, 55, 55, 55, 99, 115, + 100, 40, 40, 563, 40, 40, 40, 101, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 55, 40, 109, + 112, 313, 55, 55, 102, 985, 668, 1059, 1060, 1061, + 1045, 118, 1260, 55, 55, 563, 1268, 563, 977, 103, + 67, 68, 1419, 69, 1145, 55, 55, 27, 28, 29, + 30, 31, 32, 33, 55, 1561, 1259, 55, 1323, 55, + 1380, 1411, 919, 1158, 1168, 857, 1420, 208, 707, 163, + 986, 93, 1155, 1062, 1063, 1064, 1383, 1065, 239, 758, + 1066, 166, 995, 999, 796, 202, 67, 68, 715, 69, + 542, 0, 854, 0, 126, 0, 638, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 208, 0, 208, 0, + 0, 857, 145, 0, 146, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 243, 0, 0, 0, 0, 0, 0, 1054, 0, 0, + 0, 0, 563, 563, 1055, 563, 1056, 1057, 1058, 0, + 563, 0, 0, 563, 150, 563, 563, 563, 563, 563, + 563, 563, 208, 563, 563, 563, 563, 0, 563, 563, + 0, 0, 563, 563, 563, 563, 0, 0, 563, 563, + 563, 563, 0, 0, 0, 1059, 1060, 1061, 563, 0, + 563, 0, 0, 563, 0, 0, 0, 0, 563, 0, + 0, 0, 0, 0, 563, 563, 563, 563, 0, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 244, 0, 245, 246, 247, + 248, 1062, 1063, 1064, 0, 1065, 0, 0, 1066, 0, + 563, 0, 563, 563, 563, 0, 0, 0, 0, 857, + 0, 0, 0, 0, 0, 0, 563, 563, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 857, 563, 0, 0, 0, 0, 563, 563, + 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, + 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, + 563, 563, 563, 563, 563, 563, 563, 0, 0, 0, + 208, 563, 0, 0, 563, 563, 0, 0, 0, 0, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 563, 563, 563, 0, 563, 563, 563, 563, + 155, 0, 563, 0, 563, 0, 563, 563, 563, 0, + 0, 563, 563, 564, 563, 563, 563, 0, 564, 208, + 564, 564, 564, 563, 564, 0, 0, 564, 95, 0, + 0, 96, 0, 0, 0, 0, 0, 0, 0, 564, + 564, 564, 564, 0, 0, 0, 857, 0, 0, 0, + 0, 563, 563, 0, 97, 98, 0, 0, 0, 99, + 0, 100, 0, 0, 0, 0, 0, 0, 101, 563, + 563, 564, 563, 563, 563, 0, 563, 563, 563, 563, + 563, 563, 563, 563, 563, 102, 563, 0, 857, 0, + 0, 0, 809, 809, 0, 809, 0, 0, 857, 0, + 103, 857, 0, 564, 1659, 564, 0, 208, 208, 208, + 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 0, 0, 0, 0, 208, 0, 0, 208, + 208, 0, 0, 858, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 208, 208, 208, + 0, 208, 208, 208, 208, 0, 0, 0, 0, 208, + 0, 0, 208, 0, 0, 0, 0, 0, 0, 208, + 208, 208, 857, 857, 857, 857, 857, 857, 857, 0, + 0, 0, 0, 0, 0, 0, 0, 809, 809, 809, + 0, 0, 0, 0, 210, 0, 0, 0, 0, 858, + 0, 0, 0, 0, 0, 0, 208, 208, 0, 0, + 0, 0, 809, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 208, 208, 0, 208, 208, 208, + 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 564, 564, 0, 564, 0, 0, 0, 0, 564, 0, + 0, 564, 0, 564, 564, 564, 564, 564, 564, 564, + 210, 564, 564, 564, 564, 0, 564, 564, 0, 0, + 564, 564, 564, 564, 0, 1644, 564, 564, 564, 564, + 0, 0, 0, 0, 0, 0, 564, 0, 564, 0, + 1645, 564, 0, 0, 0, 0, 564, 0, 0, 0, + 0, 0, 564, 564, 564, 564, 1646, 809, 0, 809, + 809, 809, 809, 0, 0, 1647, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1648, + 1649, 1650, 1651, 0, 0, 0, 0, 0, 564, 0, + 564, 564, 564, 0, 0, 0, 0, 858, 0, 0, + 0, 0, 0, 0, 564, 564, 0, 0, 0, 0, + 0, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 0, 0, + 858, 564, 0, 0, 0, 0, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 0, 0, 0, 210, 564, + 0, 0, 564, 564, 0, 0, 0, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, + 564, 564, 564, 0, 564, 564, 564, 564, 0, 0, + 564, 0, 564, 0, 564, 564, 564, 0, 0, 564, + 564, 557, 564, 564, 564, 0, 557, 210, 557, 557, + 557, 564, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 557, 557, 557, + 557, 0, 0, 0, 858, 0, 0, 0, 0, 564, + 564, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 0, 564, 564, 557, + 564, 564, 564, 0, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 0, 564, 0, 858, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 858, 0, 0, 858, + 0, 557, 0, 557, 0, 210, 210, 210, 210, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 210, 0, 0, 210, 210, 0, + 859, 0, 0, 93, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 210, 210, 210, 0, 210, + 210, 210, 210, 0, 0, 0, 0, 210, 0, 0, + 210, 0, 0, 0, 0, 0, 0, 210, 210, 210, + 858, 858, 858, 858, 858, 858, 858, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 859, 0, 0, 0, + 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 0, 210, 210, 210, 0, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 557, 557, + 0, 557, 0, 0, 0, 0, 557, 0, 0, 557, + 0, 557, 557, 557, 557, 557, 557, 557, 93, 557, + 557, 557, 557, 0, 557, 557, 0, 0, 557, 557, + 557, 557, 0, 0, 557, 557, 557, 557, 0, 0, + 0, 0, 0, 0, 557, 0, 557, 0, 0, 557, + 216, 0, 0, 0, 557, 0, 0, 0, 298, 0, + 557, 557, 557, 557, 0, 1307, 1308, 1309, 0, 1310, + 1311, 1312, 1313, 0, 1314, 1315, 198, 0, 1316, 1317, + 1318, 1319, 0, 0, 0, 0, 0, 1320, 0, 0, + 0, 0, 0, 0, 0, 0, 557, 0, 557, 557, + 557, 0, 0, 0, 859, 0, 0, 0, 0, 0, + 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 859, 0, 557, + 0, 0, 0, 0, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 0, 0, 0, 93, 557, 0, 0, + 557, 557, 0, 0, 0, 0, 555, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 557, 557, 557, + 557, 0, 557, 557, 557, 557, 0, 0, 557, 0, + 557, 0, 557, 557, 557, 0, 0, 557, 557, 555, + 557, 557, 557, 0, 555, 0, 555, 555, 555, 557, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, + 0, 859, 0, 0, 0, 0, 0, 557, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 557, 557, 555, 557, 557, + 557, 0, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 0, 557, 859, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 859, 0, 0, 859, 0, 0, 555, + 0, 555, 0, 93, 93, 93, 93, 93, 0, 0, + 0, 298, 0, 0, 0, 0, 0, 0, 298, 0, + 298, 298, 298, 0, 0, 93, 93, 0, 0, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 93, 93, 93, 0, 0, 0, 93, + 93, 0, 0, 0, 0, 93, 0, 0, 93, 298, + 298, 298, 0, 0, 0, 93, 93, 859, 859, 859, + 859, 859, 859, 859, 0, 0, 0, 0, 0, 0, + 0, 0, 925, 926, 927, 0, 928, 929, 930, 931, + 94, 932, 933, 198, 0, 934, 935, 936, 937, 0, + 0, 0, 938, 939, 0, 298, 298, 298, 0, 298, + 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, + 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 555, 555, 0, 555, + 0, 0, 0, 0, 555, 0, 0, 555, 0, 555, + 555, 555, 555, 555, 555, 555, 94, 555, 555, 555, + 555, 0, 555, 555, 0, 0, 555, 555, 555, 555, + 940, 0, 555, 555, 555, 555, 0, 0, 0, 0, + 0, 0, 555, 0, 555, 0, 0, 555, 0, 0, + 0, 0, 555, 0, 0, 0, 0, 0, 555, 555, + 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, + 1621, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 0, 555, 555, 555, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, + 0, 0, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 0, 0, 0, 94, 555, 0, 0, 555, 555, + 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, + 555, 555, 555, 555, 0, 0, 555, 0, 555, 0, + 555, 555, 555, 0, 0, 555, 555, 553, 555, 555, + 555, 0, 553, 0, 553, 553, 553, 555, 553, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 553, 553, 553, 553, 0, 0, 0, + 0, 0, 0, 0, 0, 555, 555, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 555, 555, 553, 555, 555, 555, 0, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 0, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 553, 0, 553, + 0, 94, 94, 94, 94, 94, 925, 926, 927, 0, + 928, 929, 930, 931, 0, 932, 933, 198, 0, 934, + 935, 936, 937, 94, 94, 0, 938, 939, 0, 802, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 94, 94, 94, 0, 0, 0, 94, 94, 0, + 0, 0, 0, 94, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 94, 94, 127, 0, 0, 0, 0, + 0, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 802, 0, + 0, 1377, 144, 0, 940, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, + 0, 94, 94, 94, 0, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 553, 553, 0, 553, 0, 0, + 1378, 0, 553, 0, 0, 553, 0, 553, 553, 553, + 553, 553, 553, 553, 802, 553, 553, 553, 553, 1379, + 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, + 553, 553, 553, 553, 0, 0, 0, 0, 0, 0, + 553, 0, 553, 0, 0, 553, 0, 0, 0, 0, + 553, 1100, 0, 0, 0, 0, 553, 553, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 1102, 0, 1103, 1104, 1105, 1106, 1107, 1108, 0, + 1109, 1110, 0, 1111, 1112, 1113, 1114, 1115, 0, 0, + 0, 0, 553, 0, 553, 553, 553, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 0, + 0, 0, 802, 553, 0, 0, 553, 553, 0, 0, + 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 553, 553, 553, 553, 0, 553, 553, + 553, 553, 0, 0, 553, 0, 553, 0, 553, 553, + 553, 0, 0, 553, 553, 554, 553, 553, 553, 0, + 554, 0, 554, 554, 554, 553, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 554, 554, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 553, 553, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 553, 553, 554, 553, 553, 553, 0, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 0, 553, 1116, + 1117, 0, 1118, 1119, 1120, 0, 1121, 1122, 0, 0, + 1123, 1124, 0, 1125, 0, 554, 0, 554, 0, 802, + 802, 802, 802, 802, 0, 0, 1126, 1127, 1128, 1129, + 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, + 0, 802, 802, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 802, 802, + 802, 802, 0, 0, 0, 802, 802, 0, 0, 0, + 0, 802, 0, 0, 802, 0, 0, 0, 0, 0, + 0, 802, 802, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 802, 802, 0, 802, + 802, 802, 0, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 554, 554, 0, 554, 0, 0, 0, 0, + 554, 0, 0, 554, 0, 554, 554, 554, 554, 554, + 554, 554, 47, 554, 554, 554, 554, 0, 554, 554, + 0, 0, 554, 554, 554, 554, 0, 0, 554, 554, + 554, 554, 0, 0, 0, 0, 0, 0, 554, 0, + 554, 0, 0, 554, 0, 0, 0, 0, 554, 0, + 0, 0, 0, 0, 554, 554, 554, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 0, 554, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 554, 0, 0, 0, 0, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 0, 0, 0, + 47, 554, 0, 0, 554, 554, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 556, 556, 556, 556, 0, - 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 558, 558, 556, 558, 558, - 558, 0, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 0, 558, 1121, 1122, 0, 1123, 1124, 1125, 0, - 1126, 1127, 0, 0, 1128, 1129, 0, 1130, 0, 556, - 0, 556, 0, 805, 805, 805, 805, 805, 0, 0, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 0, 805, 805, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 805, 805, 805, 805, 0, 0, 0, 805, - 805, 0, 0, 0, 0, 805, 0, 0, 805, 0, - 0, 0, 0, 0, 0, 805, 805, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 805, 805, 0, 805, 805, 805, 0, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 556, 556, 0, 556, - 0, 0, 0, 0, 556, 0, 0, 556, 0, 556, - 556, 556, 556, 556, 556, 556, 47, 556, 556, 556, - 556, 0, 556, 556, 0, 0, 556, 556, 556, 556, + 0, 554, 554, 554, 554, 0, 554, 554, 554, 554, + 0, 0, 554, 0, 554, 0, 554, 554, 554, 0, + 0, 554, 554, 556, 554, 554, 554, 0, 556, 0, + 556, 556, 556, 554, 556, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, + 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, + 554, 556, 554, 554, 554, 0, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 0, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, + 69, 0, 0, 556, 0, 556, 0, 47, 47, 47, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 47, 375, 0, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, + 0, 0, 0, 47, 47, 0, 0, 0, 0, 47, + 376, 0, 47, 0, 377, 0, 0, 378, 379, 47, + 47, 0, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 0, 0, 0, 0, 0, 0, + 392, 0, 0, 393, 48, 0, 0, 0, 0, 0, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 395, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 47, 47, 47, + 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 556, 556, 0, 556, 0, 0, 0, 0, 556, 0, + 0, 556, 0, 556, 556, 556, 556, 556, 556, 556, + 48, 556, 556, 556, 556, 0, 556, 556, 0, 0, + 556, 556, 556, 556, 0, 0, 556, 556, 556, 556, + 0, 0, 0, 0, 0, 0, 556, 0, 556, 0, + 0, 556, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 556, 556, 556, 556, 0, 0, 0, 0, - 0, 0, 556, 0, 556, 0, 0, 556, 0, 0, - 0, 0, 556, 0, 0, 0, 0, 0, 556, 556, - 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 0, 556, 556, 556, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, + 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, - 0, 0, 556, 556, 556, 556, 556, 556, 556, 556, + 0, 556, 0, 0, 0, 0, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 0, 0, 0, 47, 556, 0, 0, 556, 556, - 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 556, 556, 556, 556, 0, - 556, 556, 556, 556, 0, 0, 556, 0, 556, 0, - 556, 556, 556, 0, 0, 556, 556, 557, 556, 556, - 556, 0, 557, 0, 557, 557, 557, 556, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 557, 557, 557, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 556, 556, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 556, 556, 557, 556, 556, 556, 0, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 0, + 556, 556, 556, 556, 556, 0, 0, 0, 48, 556, + 0, 0, 556, 556, 0, 0, 0, 0, 714, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 556, 556, 556, 0, 556, 556, 556, 556, 0, 0, + 556, 0, 556, 0, 556, 556, 556, 0, 0, 556, + 556, 714, 556, 556, 556, 0, 714, 0, 714, 714, + 714, 556, 714, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 714, 714, 714, + 714, 0, 0, 0, 0, 0, 0, 0, 0, 556, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 557, 0, 557, - 0, 47, 47, 47, 47, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 47, 375, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 47, 47, 0, 0, 0, 47, 47, 0, - 0, 0, 0, 47, 376, 0, 47, 0, 377, 0, - 0, 378, 379, 47, 47, 0, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 0, 0, - 0, 0, 0, 0, 392, 0, 0, 393, 48, 0, - 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, - 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, - 0, 47, 47, 47, 0, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 557, 557, 0, 557, 0, 0, - 0, 0, 557, 0, 0, 557, 0, 557, 557, 557, - 557, 557, 557, 557, 48, 557, 557, 557, 557, 0, - 557, 557, 0, 0, 557, 557, 557, 557, 0, 0, - 557, 557, 557, 557, 0, 0, 0, 0, 0, 0, - 557, 0, 557, 0, 0, 557, 0, 0, 0, 0, - 557, 0, 0, 0, 0, 0, 557, 557, 557, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 0, 557, 557, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 0, - 0, 0, 48, 557, 0, 0, 557, 557, 0, 0, - 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 557, 557, 557, 557, 0, 557, 557, - 557, 557, 0, 0, 557, 0, 557, 0, 557, 557, - 557, 0, 0, 557, 557, 559, 557, 557, 557, 0, - 559, 0, 559, 559, 559, 557, 559, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 559, 559, 559, 559, 0, 0, 0, 0, 0, - 0, 0, 0, 557, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 557, 557, 559, 557, 557, 557, 0, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, - 105, 0, 105, 0, 0, 559, 0, 559, 0, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 105, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 0, 0, 0, 48, 48, 0, 0, 0, - 0, 48, 105, 0, 48, 0, 105, 0, 0, 105, - 105, 48, 48, 0, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, - 0, 0, 105, 0, 0, 105, 49, 0, 0, 0, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, - 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 559, 559, 0, 559, 0, 0, 0, 0, - 559, 0, 0, 559, 0, 559, 559, 559, 559, 559, - 559, 559, 49, 559, 559, 559, 559, 0, 559, 559, - 0, 0, 559, 559, 559, 559, 0, 0, 559, 559, - 559, 559, 0, 0, 0, 0, 0, 0, 559, 0, - 559, 0, 0, 559, 0, 0, 0, 0, 559, 0, - 0, 0, 0, 0, 559, 559, 559, 559, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 559, 0, 559, 559, 559, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 559, 559, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 559, 0, 0, 0, 0, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 0, 0, 0, - 49, 559, 0, 0, 559, 559, 0, 0, 0, 0, - 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 559, 559, 559, 559, 0, 559, 559, 559, 559, - 0, 0, 559, 0, 559, 0, 559, 559, 559, 0, - 0, 559, 559, 717, 559, 559, 559, 0, 717, 0, - 717, 717, 717, 559, 717, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, - 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, - 0, 559, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 559, - 559, 717, 559, 559, 559, 0, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 0, 559, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 717, 0, 717, 0, 49, 49, 49, - 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 49, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, - 0, 0, 0, 49, 49, 0, 0, 0, 0, 49, - 0, 0, 49, 0, 0, 0, 0, 0, 0, 49, - 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 49, 0, 49, 49, 49, - 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 717, 717, 0, 717, 0, 0, 0, 0, 717, 0, - 0, 717, 0, 717, 717, 717, 717, 717, 717, 717, - 50, 717, 717, 717, 717, 0, 717, 717, 0, 0, - 717, 717, 717, 717, 0, 0, 717, 717, 717, 0, - 0, 0, 0, 0, 0, 0, 717, 0, 717, 0, - 0, 717, 0, 0, 0, 0, 717, 0, 0, 0, - 0, 0, 717, 717, 717, 717, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 717, 0, - 717, 717, 717, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 717, 717, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 717, 0, 0, 0, 0, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 0, 0, 0, 50, 717, - 0, 0, 717, 717, 0, 0, 0, 0, 716, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, - 717, 717, 717, 0, 717, 717, 717, 717, 0, 0, - 717, 0, 717, 0, 717, 717, 717, 0, 0, 717, - 717, 716, 717, 717, 717, 0, 716, 0, 716, 716, - 716, 717, 716, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 716, 716, 716, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 717, - 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 717, 717, 716, - 717, 717, 717, 0, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 0, 717, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 716, 0, 716, 0, 50, 50, 50, 50, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, - 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, - 0, 50, 50, 0, 0, 0, 0, 50, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 50, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 50, 0, 50, 50, 50, 0, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 716, 716, - 0, 716, 0, 0, 0, 0, 716, 0, 0, 716, - 0, 716, 716, 716, 716, 716, 716, 716, 51, 716, - 716, 716, 716, 0, 716, 716, 0, 0, 716, 716, - 716, 716, 0, 0, 716, 716, 716, 0, 0, 0, - 0, 0, 0, 0, 716, 0, 716, 0, 0, 716, - 0, 0, 0, 0, 716, 0, 0, 0, 0, 0, - 716, 716, 716, 716, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 716, 0, 716, 716, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 716, 716, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, - 0, 0, 0, 0, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 0, 0, 0, 51, 716, 0, 0, - 716, 716, 0, 0, 0, 0, 715, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 716, 716, 716, - 716, 0, 716, 716, 716, 716, 0, 0, 716, 0, - 716, 0, 716, 716, 716, 0, 0, 716, 716, 715, - 716, 716, 716, 0, 715, 0, 715, 715, 715, 716, - 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, - 0, 0, 0, 0, 0, 0, 0, 716, 716, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 716, 716, 715, 716, 716, - 716, 0, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 0, 716, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, - 0, 715, 0, 51, 51, 51, 51, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 51, 0, 0, 0, - 0, 808, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 51, 51, 51, 0, 0, 0, 51, - 51, 0, 0, 0, 0, 51, 0, 0, 51, 0, - 0, 0, 0, 0, 0, 51, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 808, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 51, 51, 51, 0, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 715, 715, 0, 715, - 0, 0, 0, 0, 715, 0, 0, 715, 0, 715, - 715, 715, 715, 715, 715, 715, 808, 715, 715, 715, - 715, 0, 715, 715, 0, 0, 715, 715, 715, 715, - 0, 0, 715, 715, 715, 0, 0, 0, 0, 0, - 0, 0, 715, 0, 715, 0, 0, 715, 0, 0, - 0, 0, 715, 0, 0, 0, 0, 0, 715, 715, - 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 715, 0, 715, 715, 715, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 715, 715, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, - 0, 0, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 0, 0, 0, 808, 715, 0, 0, 715, 715, + 0, 0, 0, 0, 0, 0, 0, 556, 556, 714, + 556, 556, 556, 0, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 0, 556, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, + 0, 714, 0, 714, 0, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 105, + 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 48, 48, 48, 0, 0, + 0, 48, 48, 0, 0, 0, 0, 48, 105, 0, + 48, 0, 105, 0, 0, 105, 105, 48, 48, 0, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 105, 49, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 0, 48, 48, 48, 0, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 714, 714, + 0, 714, 0, 0, 0, 0, 714, 0, 0, 714, + 0, 714, 714, 714, 714, 714, 714, 714, 49, 714, + 714, 714, 714, 0, 714, 714, 0, 0, 714, 714, + 714, 714, 0, 0, 714, 714, 714, 0, 0, 0, + 0, 0, 0, 0, 714, 0, 714, 0, 0, 714, 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 715, 715, 715, 715, 0, - 715, 715, 715, 715, 0, 0, 715, 0, 715, 0, - 715, 715, 715, 0, 0, 715, 715, 714, 715, 715, - 715, 0, 714, 0, 714, 714, 714, 715, 714, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 714, 714, 714, 714, 0, 0, 0, - 0, 0, 0, 0, 0, 715, 715, 0, 0, 0, + 714, 714, 714, 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 715, 715, 714, 715, 715, 715, 0, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 0, - 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 714, 0, 714, - 0, 808, 808, 808, 808, 808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 808, 808, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 808, 808, 808, 808, 0, 0, 0, 808, 808, 0, - 0, 0, 0, 808, 0, 0, 808, 0, 0, 0, - 0, 0, 0, 808, 808, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 808, 808, - 0, 808, 808, 808, 0, 808, 808, 808, 808, 808, - 808, 808, 808, 808, 714, 714, 0, 714, 0, 0, - 0, 0, 714, 0, 0, 714, 0, 714, 714, 714, - 714, 714, 714, 714, 0, 714, 714, 714, 714, 0, - 714, 714, 0, 0, 714, 714, 714, 714, 0, 0, - 714, 714, 714, 0, 0, 0, 0, 0, 0, 724, - 714, 0, 714, 0, 0, 714, 0, 0, 0, 0, - 714, 0, 0, 0, 0, 0, 714, 714, 714, 714, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 724, 0, 0, 0, 0, 0, 0, 724, - 724, 0, 0, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 714, 0, 714, 714, 714, 0, 724, 0, - 724, 724, 0, 0, 0, 0, 0, 0, 714, 714, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 714, 0, 714, 714, + 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 714, 714, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, + 0, 0, 0, 0, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 0, - 0, 0, 724, 714, 724, 0, 714, 714, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 714, 714, 714, 714, 0, 714, 714, - 714, 714, 0, 0, 714, 0, 714, 0, 714, 714, - 714, 0, 0, 714, 714, 0, 714, 714, 714, 0, - 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 714, 714, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 714, 714, 0, 714, 714, 714, 0, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 0, 714, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, - 724, 0, 724, 0, 0, 0, 0, 724, 0, 0, - 724, 0, 724, 724, 724, 724, 724, 724, 724, 0, - 724, 724, 724, 724, 0, 724, 724, 0, 0, 724, - 724, 724, 724, 0, 0, 724, 724, 724, 0, 0, - 0, 52, 0, 400, 97, 724, 0, 724, 0, 99, - 724, 100, 0, 0, 0, 724, 0, 0, 101, 0, - 0, 724, 724, 724, 724, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 401, 0, 402, 403, - 404, 405, 406, 0, 0, 0, 0, 407, 0, 0, - 103, 0, 0, 0, 0, 0, 408, 724, 0, 0, - 52, 409, 0, 410, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 724, 724, 411, 412, 413, 414, 415, - 416, 417, 418, 0, 0, 0, 0, 0, 419, 0, - 724, 0, 0, 0, 0, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 52, 0, 52, 0, 724, 0, - 0, 724, 724, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 724, 724, - 724, 724, 0, 724, 724, 724, 724, 0, 0, 724, - 0, 724, 0, 724, 724, 724, 0, 0, 724, 724, - 0, 724, 724, 724, 0, 0, 0, 0, 0, 0, - 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 724, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 724, 724, 0, 724, - 724, 724, 0, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 0, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 52, 52, 52, - 0, 52, 52, 52, 52, 0, 0, 52, 52, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 127, - 266, 0, 54, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 52, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 714, 714, 714, 0, 0, 0, 49, 714, 0, 0, + 714, 714, 0, 0, 0, 0, 713, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 714, 714, 714, + 714, 0, 714, 714, 714, 714, 0, 0, 714, 0, + 714, 0, 714, 714, 714, 0, 0, 714, 714, 713, + 714, 714, 714, 0, 713, 0, 713, 713, 713, 714, + 713, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 713, 713, 713, 713, 0, + 0, 0, 0, 0, 0, 0, 0, 714, 714, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 714, 714, 713, 714, 714, + 714, 0, 714, 714, 714, 714, 714, 714, 714, 714, + 714, 0, 714, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 713, + 0, 713, 0, 49, 49, 49, 49, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 49, 49, 49, 0, 0, 0, 49, + 49, 0, 0, 0, 0, 49, 0, 0, 49, 0, + 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 49, 0, 49, 49, 49, 0, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 713, 713, 0, 713, + 0, 0, 0, 0, 713, 0, 0, 713, 0, 713, + 713, 713, 713, 713, 713, 713, 50, 713, 713, 713, + 713, 0, 713, 713, 0, 0, 713, 713, 713, 713, + 0, 0, 713, 713, 713, 0, 0, 0, 0, 0, + 0, 0, 713, 0, 713, 0, 0, 713, 0, 0, + 0, 0, 713, 0, 0, 0, 0, 0, 713, 713, + 713, 713, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 713, 0, 713, 713, 713, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 713, 713, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, + 0, 0, 713, 713, 713, 713, 713, 713, 713, 713, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 713, 0, 0, 0, 50, 713, 0, 0, 713, 713, + 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 713, 713, 713, 713, 0, + 713, 713, 713, 713, 0, 0, 713, 0, 713, 0, + 713, 713, 713, 0, 0, 713, 713, 712, 713, 713, + 713, 0, 712, 0, 712, 712, 712, 713, 712, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 712, 712, 712, 712, 0, 0, 0, + 0, 0, 0, 0, 0, 713, 713, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 713, 713, 712, 713, 713, 713, 0, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 0, + 713, 0, 0, 0, 0, 0, 828, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 712, 0, 712, + 0, 50, 50, 50, 50, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 50, 0, 0, 0, 0, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 50, 50, 50, 0, 0, 0, 50, 50, 0, + 0, 0, 828, 50, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, + 0, 50, 50, 50, 0, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 712, 712, 0, 712, 0, 0, + 0, 0, 712, 0, 0, 712, 0, 712, 712, 712, + 712, 712, 712, 712, 51, 712, 712, 712, 712, 0, + 712, 712, 0, 0, 712, 712, 712, 712, 0, 0, + 712, 712, 712, 0, 0, 0, 0, 0, 0, 0, + 712, 0, 712, 0, 0, 712, 0, 0, 0, 0, + 712, 0, 0, 0, 0, 0, 712, 712, 712, 712, + 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 712, 0, 712, 712, 712, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 712, 712, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 712, 828, 0, 0, 0, + 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, + 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, + 712, 712, 712, 712, 712, 712, 712, 712, 712, 0, + 0, 0, 51, 712, 0, 0, 712, 712, 0, 0, + 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 712, 712, 712, 712, 0, 712, 712, + 712, 712, 0, 0, 712, 0, 712, 0, 712, 712, + 712, 0, 0, 712, 712, 711, 712, 712, 712, 0, + 711, 0, 711, 711, 711, 712, 711, 0, 0, 828, + 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 711, 711, 711, 711, 0, 0, 0, 0, 828, + 0, 0, 0, 712, 712, 0, 0, 0, 0, 0, + 0, 828, 0, 828, 828, 0, 828, 828, 0, 0, + 0, 712, 712, 711, 712, 712, 712, 0, 712, 712, + 712, 712, 712, 712, 712, 712, 712, 0, 712, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 711, 0, 711, 0, 51, + 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 51, 828, 828, 828, 828, 828, 828, 828, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, + 51, 51, 0, 0, 0, 51, 51, 0, 0, 0, + 0, 51, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 51, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 51, 0, 51, + 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 711, 711, 0, 711, 0, 0, 0, 0, + 711, 0, 0, 711, 0, 711, 711, 711, 711, 711, + 711, 711, 0, 711, 711, 711, 711, 0, 711, 711, + 0, 0, 711, 711, 711, 711, 0, 0, 711, 711, + 711, 0, 0, 0, 0, 0, 0, 721, 711, 0, + 711, 0, 0, 711, 0, 0, 0, 0, 711, 0, + 0, 0, 0, 0, 711, 711, 711, 711, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 721, 0, 0, 0, 0, 0, 0, 721, 721, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 711, 0, 711, 711, 711, 0, 721, 0, 721, 721, + 0, 0, 0, 0, 0, 0, 711, 711, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 711, 0, 0, 0, 0, 711, 711, + 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, + 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, + 711, 711, 711, 711, 711, 711, 711, 0, 0, 0, + 721, 711, 721, 0, 711, 711, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 711, 711, 711, 711, 0, 711, 711, 711, 711, + 0, 0, 711, 0, 711, 0, 711, 711, 711, 0, + 0, 711, 711, 0, 711, 711, 711, 0, 0, 0, + 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 711, 711, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 711, + 711, 0, 711, 711, 711, 0, 711, 711, 711, 711, + 711, 711, 711, 711, 711, 0, 711, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 721, 721, 0, + 721, 0, 0, 0, 0, 721, 0, 0, 721, 0, + 721, 721, 721, 721, 721, 721, 721, 0, 721, 721, + 721, 721, 0, 721, 721, 0, 0, 721, 721, 721, + 721, 0, 0, 721, 721, 721, 0, 0, 0, 52, + 0, 400, 97, 721, 0, 721, 0, 99, 721, 100, + 0, 0, 0, 721, 0, 0, 101, 0, 0, 721, + 721, 721, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 401, 0, 402, 403, 404, 405, + 406, 0, 0, 0, 0, 407, 0, 0, 103, 0, + 0, 0, 0, 0, 408, 721, 0, 0, 52, 409, + 0, 410, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 721, 721, 411, 412, 413, 414, 415, 416, 417, + 418, 0, 0, 0, 0, 0, 419, 0, 721, 0, + 0, 0, 0, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 52, 0, 52, 0, 721, 0, 0, 721, + 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 721, 721, 721, 721, + 0, 721, 721, 721, 721, 0, 0, 721, 0, 721, + 0, 721, 721, 721, 0, 0, 721, 721, 0, 721, + 721, 721, 0, 0, 0, 0, 0, 0, 721, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 721, 721, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 721, 721, 0, 721, 721, 721, + 0, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 52, 52, 52, 0, 52, + 52, 52, 52, 0, 0, 52, 52, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 591, 127, 592, 0, + 54, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 52, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 52, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 147, + 148, 149, 0, 52, 52, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 147, 148, 149, 0, 52, 52, 0, 0, 0, - 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 52, 52, 52, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, + 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, - 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, - 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, - 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 52, 54, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, + 0, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 52, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 54, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 54, 0, 0, 0, 54, - 54, 54, 0, 54, 54, 54, 54, 0, 54, 54, - 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 55, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, - 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, + 54, 0, 0, 54, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 54, 0, 0, 0, 54, 54, 54, + 0, 54, 54, 54, 54, 0, 54, 54, 54, 0, + 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 265, 127, 266, + 0, 55, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 54, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 54, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 147, 148, 149, 0, 54, 54, 0, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 55, 0, 55, 0, - 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, - 0, 0, 54, 0, 54, 0, 54, 54, 54, 54, - 0, 54, 54, 0, 54, 54, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 54, 54, 55, 0, 55, 0, 0, 844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 0, 54, 54, 54, 0, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, + 54, 54, 54, 0, 54, 54, 54, 54, 0, 0, + 54, 0, 54, 0, 54, 54, 54, 54, 0, 54, + 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 55, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 55, 0, 0, 0, - 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, - 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 232, 0, 0, 56, 232, 232, 232, 232, 232, - 0, 232, 232, 232, 232, 55, 232, 232, 0, 0, - 232, 232, 232, 232, 0, 0, 0, 232, 232, 0, - 0, 0, 55, 0, 0, 0, 232, 0, 232, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, + 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 55, 0, 0, 0, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, + 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, + 0, 0, 56, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 55, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 55, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 232, 232, 232, 0, 55, 55, 0, - 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 232, 55, + 55, 147, 148, 149, 0, 55, 55, 0, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, - 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 56, 0, 56, - 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, - 55, 0, 0, 55, 0, 55, 0, 55, 55, 55, - 55, 0, 55, 55, 0, 55, 55, 55, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, + 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, + 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, + 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 232, 0, 0, 56, 0, 0, - 0, 56, 56, 56, 0, 56, 56, 56, 56, 0, - 56, 56, 56, 0, 56, 56, 56, 56, 0, 0, - 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 0, 53, 225, 225, 225, 225, - 225, 0, 225, 225, 225, 225, 56, 225, 225, 0, - 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, - 0, 0, 0, 56, 0, 0, 0, 225, 0, 225, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 0, 53, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 56, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 56, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 225, 225, 225, 0, 56, 56, - 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 56, 147, 148, 149, 0, 56, 56, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 0, 0, 0, 0, 0, 0, 150, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, - 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 53, 0, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 56, 56, 0, 56, 56, - 56, 56, 0, 0, 56, 0, 56, 0, 56, 56, - 56, 56, 0, 56, 56, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 56, 56, 56, 56, 0, 56, 56, 56, 56, + 0, 0, 56, 0, 56, 0, 56, 56, 56, 56, + 0, 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 56, 0, 56, 56, 56, 0, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 56, 0, 56, 56, 56, 0, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 53, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 53, 0, - 0, 0, 53, 53, 53, 0, 53, 53, 53, 53, - 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, - 0, 53, 53, 53, 0, 0, 0, 0, 61, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 53, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 53, 0, 0, 0, + 53, 53, 53, 0, 53, 53, 53, 53, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 0, 0, 53, + 53, 53, 0, 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, 0, 53, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, - 0, 62, 0, 0, 0, 61, 0, 0, 61, 0, - 0, 0, 0, 0, 53, 53, 53, 53, 61, 53, - 53, 53, 53, 0, 0, 53, 0, 53, 0, 53, - 53, 53, 53, 0, 53, 53, 0, 53, 53, 53, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 61, 0, 0, - 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, + 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 62, + 0, 0, 0, 61, 0, 0, 61, 0, 0, 0, + 0, 0, 53, 53, 53, 53, 61, 53, 53, 53, + 53, 0, 0, 53, 0, 53, 0, 53, 53, 53, + 53, 0, 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 61, 61, 61, 0, 61, - 61, 61, 61, 0, 0, 61, 0, 61, 0, 61, - 61, 61, 61, 0, 61, 61, 0, 61, 61, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 61, 0, 0, 0, 0, - 0, 62, 0, 0, 62, 0, 0, 0, 0, 0, - 0, 0, 61, 61, 62, 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 65, 0, 65, 0, 0, 0, + 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 61, 61, 61, 0, 61, 61, 61, + 61, 0, 0, 61, 0, 61, 0, 61, 61, 61, + 61, 0, 61, 61, 0, 61, 61, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 61, 0, 0, 0, 0, 0, 62, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 61, 61, 62, 61, 61, 61, 0, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 0, 0, 0, 62, + 62, 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 0, 0, 66, 0, 0, - 0, 65, 0, 0, 65, 0, 0, 0, 0, 0, - 62, 62, 62, 62, 65, 62, 62, 62, 62, 0, - 0, 62, 0, 62, 0, 62, 62, 62, 62, 0, - 62, 62, 0, 62, 62, 62, 0, 65, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 62, 62, 62, 0, 0, 66, 0, 0, 0, 65, + 0, 0, 65, 0, 0, 0, 0, 0, 62, 62, + 62, 62, 65, 62, 62, 62, 62, 0, 0, 62, + 0, 62, 0, 62, 62, 62, 62, 0, 62, 62, + 0, 62, 62, 62, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 62, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 62, 62, 0, 62, + 62, 62, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 62, 62, - 0, 62, 62, 62, 0, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 65, 65, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 0, 0, 0, 65, + 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, - 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, - 65, 65, 65, 65, 0, 65, 65, 65, 65, 0, - 0, 65, 0, 65, 0, 65, 65, 65, 65, 0, - 65, 65, 0, 65, 65, 65, 0, 0, 0, 0, - 0, 0, 571, 571, 0, 0, 571, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 571, 0, 571, 0, 0, 0, 0, 0, 0, - 65, 65, 0, 0, 0, 0, 0, 66, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 65, 65, - 66, 65, 65, 65, 0, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 571, 0, 571, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 65, 65, 0, 0, 0, 0, 0, 0, 0, + 568, 0, 0, 0, 0, 0, 0, 0, 65, 65, + 65, 65, 0, 65, 65, 65, 65, 0, 0, 65, + 0, 65, 0, 65, 65, 65, 65, 0, 65, 65, + 0, 65, 65, 65, 0, 0, 0, 0, 0, 0, + 568, 568, 0, 0, 568, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, + 0, 568, 0, 0, 0, 0, 0, 0, 65, 65, + 0, 0, 0, 0, 0, 66, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 65, 65, 66, 65, + 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 568, 0, 568, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 0, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 571, 571, 0, 571, 66, 66, 66, 66, - 0, 66, 66, 66, 66, 571, 571, 66, 0, 66, - 0, 66, 66, 66, 66, 0, 66, 66, 0, 66, - 66, 66, 0, 569, 569, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 571, 569, 0, 0, 0, 571, 0, - 0, 0, 0, 0, 571, 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 66, 0, 66, 66, 66, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 569, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 0, 0, 0, - 571, 571, 571, 571, 571, 571, 571, 0, 0, 0, - 0, 571, 0, 0, 571, 571, 0, 0, 570, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 571, 571, 571, 571, 0, 571, 571, 571, 571, - 0, 0, 571, 0, 571, 0, 571, 571, 571, 0, - 0, 571, 571, 0, 571, 571, 571, 0, 570, 570, - 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 570, 0, 570, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 571, 571, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 569, 569, 0, 571, - 571, 0, 571, 571, 571, 0, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 570, 0, 570, 569, 0, 0, 0, 0, 569, - 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 33, 0, - 0, 569, 569, 569, 569, 569, 569, 569, 0, 0, - 0, 0, 569, 0, 0, 569, 569, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 569, 569, 569, 0, 569, 569, 569, - 569, 570, 570, 569, 0, 569, 0, 569, 569, 569, - 0, 0, 569, 569, 0, 569, 569, 569, 0, 0, - 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, - 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, - 570, 0, 569, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 569, 569, 0, 569, 569, 569, 0, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, + 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, + 568, 568, 0, 568, 66, 66, 66, 66, 0, 66, + 66, 66, 66, 568, 568, 66, 0, 66, 0, 66, + 66, 66, 66, 0, 66, 66, 0, 66, 66, 66, + 0, 566, 566, 0, 0, 566, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 566, 568, 566, 0, 0, 0, 568, 0, 0, 0, + 0, 0, 568, 0, 66, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 66, 0, 66, 66, 66, 0, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 0, 566, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 0, 0, 0, 568, 568, + 568, 568, 568, 568, 568, 0, 0, 0, 0, 568, + 0, 0, 568, 568, 0, 0, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, + 568, 568, 568, 0, 568, 568, 568, 568, 0, 0, + 568, 0, 568, 0, 568, 568, 568, 0, 0, 568, + 568, 0, 568, 568, 568, 0, 567, 567, 0, 0, + 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 567, 0, 567, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, + 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 566, 0, 568, 568, 0, + 568, 568, 568, 0, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, + 0, 567, 566, 0, 0, 0, 0, 566, 0, 0, + 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 0, 0, 0, 570, 570, 570, 570, - 570, 570, 570, 0, 0, 0, 34, 570, 0, 33, - 570, 570, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 570, 570, 570, - 570, 0, 570, 570, 570, 570, 0, 0, 570, 0, - 570, 0, 570, 570, 570, 0, 0, 570, 570, 0, - 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 33, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 570, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 570, 570, 0, 570, 570, - 570, 0, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, + 0, 0, 0, 0, 0, 0, 0, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 33, 0, 0, 566, + 566, 566, 566, 566, 566, 566, 0, 0, 0, 0, + 566, 0, 0, 566, 566, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 566, 566, 566, 566, 0, 566, 566, 566, 566, 567, + 567, 566, 0, 566, 0, 566, 566, 566, 0, 0, + 566, 566, 0, 566, 566, 566, 0, 0, 0, 0, + 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, + 0, 0, 567, 0, 0, 0, 0, 0, 567, 0, + 566, 566, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 566, 566, + 0, 566, 566, 566, 0, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 0, 0, 0, 567, 567, 567, 567, 567, 567, + 567, 0, 0, 0, 34, 567, 0, 33, 567, 567, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 567, 567, 567, 567, 0, + 567, 567, 567, 567, 0, 0, 567, 0, 567, 0, + 567, 567, 567, 0, 0, 567, 567, 0, 567, 567, + 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 33, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 567, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 567, 567, 0, 567, 567, 567, 0, + 567, 567, 567, 567, 567, 567, 567, 567, 567, 0, + 0, 0, 0, 0, 0, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, + 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 0, 0, 0, 794, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, - 33, 33, 0, 33, 33, 33, 33, 34, 0, 33, - 34, 33, 0, 0, 33, 0, 0, 0, 0, 0, - 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 794, 0, 794, 0, 0, 0, 0, 0, 33, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 33, 33, 0, 33, - 33, 33, 0, 33, 33, 33, 33, 33, 33, 33, + 33, 0, 0, 0, 791, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, + 0, 33, 33, 33, 33, 34, 0, 33, 34, 33, + 0, 0, 33, 0, 0, 0, 0, 0, 34, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 791, 0, + 791, 0, 0, 0, 0, 0, 33, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 33, 33, 0, 33, 33, 33, + 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 0, 0, 0, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 0, 0, 0, 796, 0, 0, 794, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, - 794, 34, 34, 34, 34, 0, 0, 34, 0, 34, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 34, - 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 796, 794, - 796, 0, 0, 0, 0, 0, 34, 34, 0, 0, + 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, + 0, 0, 793, 0, 0, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 34, 34, 34, 791, 34, + 34, 34, 34, 0, 0, 34, 0, 34, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 34, 34, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 793, 791, 793, 0, + 0, 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 0, 0, 0, 794, 794, 794, 794, 794, - 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 0, 0, 0, 800, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 794, 794, 794, 794, - 0, 794, 794, 794, 794, 796, 0, 794, 0, 794, - 0, 0, 794, 0, 0, 0, 0, 0, 796, 794, - 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 34, 0, 34, 34, 34, 0, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, - 800, 0, 0, 0, 0, 0, 794, 794, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, - 0, 0, 0, 0, 794, 794, 0, 794, 794, 794, - 0, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 0, 0, 0, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 0, + 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 791, 791, 791, 791, 0, 791, + 791, 791, 791, 793, 0, 791, 0, 791, 0, 0, + 791, 0, 0, 0, 0, 0, 793, 791, 791, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 797, 0, 797, 0, + 0, 0, 0, 0, 791, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, + 0, 0, 791, 791, 0, 791, 791, 791, 0, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, - 0, 0, 0, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 796, 0, - 0, 0, 798, 0, 0, 800, 0, 0, 0, 0, - 0, 0, 0, 0, 796, 796, 796, 796, 800, 796, - 796, 796, 796, 0, 0, 796, 0, 796, 0, 0, - 796, 0, 0, 0, 0, 0, 0, 796, 796, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 798, 800, 798, 0, - 0, 0, 0, 0, 796, 796, 0, 0, 0, 0, + 0, 795, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 0, 0, + 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 0, 0, 0, + 795, 0, 0, 797, 0, 0, 0, 0, 0, 0, + 0, 0, 793, 793, 793, 793, 797, 793, 793, 793, + 793, 0, 0, 793, 0, 793, 0, 0, 793, 0, + 0, 0, 0, 0, 0, 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 796, 796, 0, 796, 796, 796, 0, 796, - 796, 796, 796, 796, 796, 796, 796, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 795, 797, 795, 0, 0, 0, + 0, 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 0, 0, 0, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 800, 0, - 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 800, 800, 800, 800, 0, 800, - 800, 800, 800, 798, 0, 800, 0, 800, 0, 0, - 800, 0, 0, 0, 0, 0, 798, 800, 800, 800, + 793, 793, 0, 793, 793, 793, 0, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, + 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, 0, 0, + 0, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 0, 0, 0, + 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 797, 797, 797, 797, 0, 797, 797, 797, + 797, 795, 0, 797, 0, 797, 0, 0, 797, 0, + 0, 0, 0, 0, 795, 797, 797, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 802, 0, 802, 0, - 0, 0, 0, 0, 800, 800, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, - 0, 0, 800, 800, 0, 800, 800, 800, 0, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 799, 0, 799, 0, 0, 0, + 0, 0, 797, 797, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 795, 0, 0, 0, 0, 0, 0, + 797, 797, 0, 797, 797, 797, 0, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, - 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, - 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, - 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, - 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, - 752, 0, 0, 802, 0, 0, 0, 0, 0, 0, - 0, 0, 798, 798, 798, 798, 802, 798, 798, 798, - 798, 0, 0, 798, 0, 798, 0, 0, 798, 0, - 0, 0, 0, 0, 0, 798, 798, 798, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 0, 0, 0, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 0, 0, 0, 749, 0, + 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, + 795, 795, 795, 795, 799, 795, 795, 795, 795, 0, + 0, 795, 0, 795, 0, 0, 795, 0, 0, 0, + 0, 0, 0, 795, 795, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 752, 802, 752, 0, 0, 0, - 0, 0, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 798, 798, 0, 798, 798, 798, 0, 798, 798, 798, - 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, + 0, 0, 749, 799, 749, 0, 0, 0, 0, 0, + 795, 795, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 795, 795, + 0, 795, 795, 795, 0, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, - 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, - 802, 802, 802, 802, 802, 802, 802, 802, 0, 0, - 0, 802, 802, 802, 802, 802, 802, 802, 802, 802, - 802, 802, 802, 802, 802, 802, 802, 0, 0, 0, - 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 802, 802, 802, 802, 0, 802, 802, 802, - 802, 752, 0, 802, 752, 802, 34, 0, 802, 0, - 0, 0, 0, 0, 752, 802, 802, 802, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 0, 0, 0, 799, + 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 799, 799, 799, 799, 0, 799, 799, 799, 799, 749, + 0, 799, 749, 799, 0, 0, 799, 0, 0, 0, + 0, 0, 749, 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 754, 0, 754, 0, 0, 0, - 0, 0, 802, 802, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, - 802, 802, 567, 802, 802, 802, 0, 802, 802, 802, - 802, 802, 802, 802, 802, 802, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 751, 0, 751, 0, 0, 0, 0, 0, + 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 749, 0, 0, 0, 0, 0, 0, 799, 799, + 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 752, 752, 752, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 752, 752, 0, 0, 0, 752, - 752, 752, 752, 752, 752, 752, 0, 0, 0, 0, - 752, 0, 400, 752, 752, 0, 0, 0, 0, 0, - 0, 754, 0, 0, 754, 0, 0, 0, 0, 0, - 752, 752, 752, 752, 754, 752, 752, 752, 752, 0, - 0, 752, 0, 752, 0, 752, 752, 752, 0, 0, - 752, 752, 0, 752, 752, 752, 400, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, - 752, 752, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 0, 0, 0, 0, 752, 752, - 0, 752, 752, 752, 0, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 400, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 0, 0, 0, 754, - 754, 754, 754, 754, 754, 754, 442, 0, 0, 0, - 754, 0, 0, 754, 754, 0, 0, 3, 4, 5, - 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 754, 754, 754, 754, 0, 754, 754, 754, 754, 8, - 9, 754, 0, 754, 0, 754, 754, 754, 0, 0, - 754, 754, 0, 754, 754, 754, 10, 11, 12, 13, - 0, 0, 0, 14, 15, 442, 0, 0, 0, 16, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 754, 754, 400, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 754, 754, - 0, 754, 754, 754, 0, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 0, 0, 0, 0, 0, 442, - 0, 442, 0, 0, 20, 21, 0, 22, 23, 24, - 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, - 225, 0, 0, 0, 225, 225, 225, 225, 225, 0, - 225, 225, 225, 225, 0, 225, 225, 0, 0, 225, - 225, 225, 225, 0, 0, 0, 225, 225, 0, 0, - 0, 0, 0, 0, 0, 225, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 225, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 225, 0, 0, - 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, - 0, 400, 0, 0, 400, 400, 442, 0, 0, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 400, 400, 400, 400, 0, 400, 400, 400, 400, - 0, 0, 400, 0, 400, 0, 0, 400, 0, 0, - 0, 0, 0, 0, 400, 400, 400, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 298, 442, 0, - 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 400, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 749, 749, 749, 749, 749, + 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, + 749, 749, 749, 749, 0, 0, 0, 749, 749, 749, + 749, 749, 749, 749, 0, 0, 0, 0, 749, 0, + 400, 749, 749, 0, 0, 0, 0, 0, 0, 751, + 0, 0, 751, 0, 0, 0, 0, 0, 749, 749, + 749, 749, 751, 749, 749, 749, 749, 0, 0, 749, + 0, 749, 0, 749, 749, 749, 0, 0, 749, 749, + 0, 749, 749, 749, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, - 400, 0, 400, 400, 400, 0, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, - 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 0, 0, 0, 442, 442, 442, 442, 442, 442, - 442, 0, 0, 225, 0, 442, 0, 0, 442, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 442, 442, 442, 0, - 442, 442, 442, 442, 0, 157, 442, 0, 442, 0, - 298, 442, 0, 0, 752, 0, 0, 0, 442, 442, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 442, 0, 0, 0, - 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 442, 0, 442, 442, 442, 0, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 0, 751, 0, 0, 0, 0, 0, 0, 749, 749, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 749, 749, 0, 749, + 749, 749, 157, 749, 749, 749, 749, 749, 749, 749, + 749, 749, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 400, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 751, 751, 751, 751, 751, + 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, + 751, 751, 751, 751, 0, 0, 0, 751, 751, 751, + 751, 751, 751, 751, 442, 0, 0, 0, 751, 0, + 0, 751, 751, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 751, 751, + 751, 751, 0, 751, 751, 751, 751, 0, 805, 751, + 0, 751, 0, 751, 751, 751, 0, 0, 751, 751, + 0, 751, 751, 751, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 751, 751, + 400, 0, 0, 400, 0, 0, 0, 805, 0, 0, + 0, 0, 0, 400, 0, 0, 751, 751, 0, 751, + 751, 751, 0, 751, 751, 751, 751, 751, 751, 751, + 751, 751, 0, 0, 0, 0, 0, 442, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 704, 0, 0, 0, 0, - 704, 0, 0, 0, 704, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 0, 0, 0, 400, 400, + 400, 400, 400, 400, 400, 0, 0, 150, 0, 400, + 0, 0, 400, 400, 442, 0, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 400, + 400, 400, 400, 0, 400, 400, 400, 400, 0, 0, + 400, 0, 400, 0, 0, 400, 0, 0, 0, 0, + 0, 0, 400, 400, 400, 0, 0, 0, 0, 0, + 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, + 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 400, 400, 0, + 400, 400, 400, 0, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 0, 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 0, + 0, 0, 442, 442, 442, 442, 442, 442, 442, 0, + 0, 0, 0, 442, 232, 157, 442, 442, 0, 0, + 298, 0, 0, 155, 297, 0, 0, 0, 805, 805, + 805, 805, 805, 442, 442, 442, 442, 0, 442, 442, + 442, 442, 296, 0, 442, 0, 442, 0, 0, 442, + 805, 805, 0, 0, 0, 0, 442, 442, 442, 0, + 0, 0, 0, 0, 0, 0, 0, 805, 805, 805, + 805, 0, 0, 483, 805, 805, 0, 0, 0, 0, + 805, 0, 0, 805, 0, 0, 0, 0, 0, 0, + 805, 805, 0, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 442, 442, 0, 442, 442, 442, 0, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 805, 805, 0, 805, 805, + 805, 0, 805, 805, 805, 805, 805, 805, 805, 805, + 805, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 298, 0, 0, 0, 752, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 296, 0, 232, 0, 0, 0, 232, 232, + 232, 232, 232, 0, 232, 232, 232, 232, 0, 232, + 232, 0, 0, 232, 232, 232, 232, 0, 0, 0, + 232, 232, 0, 483, 0, 0, 0, 0, 0, 232, + 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 232, 232, 232, 0, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 232, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 701, 0, + 0, 0, 0, 701, 0, 0, 0, 701, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 701, 0, 0, 0, 0, + 150, 0, 291, 292, 293, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 481, 482, 0, 0, + 0, 0, 0, 0, 0, 0, 701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 704, 0, 0, 0, 0, 150, 0, 291, - 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 481, 482, 0, 0, 0, 0, 0, - 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 0, 0, 127, 152, 153, 154, 128, 129, 130, + 0, 0, 67, 68, 0, 69, 34, 152, 153, 154, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 157, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 553, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 291, 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 701, 701, 0, 701, 0, + 0, 0, 0, 701, 0, 0, 701, 152, 153, 154, + 701, 701, 701, 701, 701, 0, 701, 701, 701, 701, + 0, 701, 701, 0, 0, 701, 701, 701, 701, 0, + 0, 701, 701, 701, 0, 0, 0, 0, 0, 0, + 157, 701, 0, 701, 0, 298, 0, 0, 0, 297, + 0, 0, 0, 0, 0, 0, 0, 0, 701, 701, + 701, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 704, 704, 0, 704, 0, 152, 153, 154, - 704, 0, 0, 704, 0, 0, 0, 704, 704, 704, - 704, 704, 0, 704, 704, 704, 704, 0, 704, 704, - 0, 0, 704, 704, 704, 704, 0, 0, 704, 704, - 704, 0, 0, 0, 0, 0, 0, 157, 704, 0, - 704, 0, 298, 0, 0, 0, 297, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 704, 704, 0, 0, - 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 0, 704, 704, 704, 483, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 704, 127, 0, + 0, 0, 0, 701, 0, 701, 701, 701, 483, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 701, + 701, 0, 0, 0, 0, 0, 0, 0, 127, 544, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 155, 139, 140, 141, + 135, 136, 0, 137, 138, 212, 155, 139, 140, 141, 142, 451, 0, 0, 143, 144, 0, 0, 0, 0, - 212, 0, 0, 145, 0, 146, 0, 704, 704, 704, + 701, 701, 701, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 452, 0, 453, 454, 455, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, - 0, 0, 0, 457, 458, 459, 460, 0, 0, 461, - 0, 0, 0, 462, 463, 464, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 704, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 156, 465, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 291, 292, 293, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 212, 0, - 0, 155, 212, 212, 212, 212, 212, 0, 212, 212, - 212, 212, 0, 212, 212, 0, 0, 212, 212, 212, - 212, 212, 0, 0, 212, 212, 0, 0, 0, 0, - 0, 0, 0, 212, 0, 212, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 210, - 212, 212, 212, 0, 212, 0, 212, 212, 212, 212, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, - 0, 0, 0, 212, 212, 212, 212, 0, 0, 212, - 0, 0, 0, 212, 212, 212, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 210, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 155, 147, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 151, 0, 0, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 210, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 152, 153, 154, 145, 157, 146, 0, 0, 0, - 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 984, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 13, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 150, 0, 139, 140, - 141, 142, 0, 210, 98, 143, 144, 0, 0, 0, - 985, 0, 0, 0, 145, 157, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, - 155, 67, 68, 210, 69, 0, 0, 0, 0, 126, + 0, 0, 0, 0, 0, 150, 0, 545, 0, 5, + 6, 7, 0, 457, 458, 459, 460, 0, 0, 461, + 0, 546, 0, 462, 463, 464, 547, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 0, 548, 549, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, + 69, 550, 0, 0, 0, 126, 0, 0, 127, 701, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 98, 143, 144, 551, 552, 0, 0, + 0, 0, 156, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, + 147, 148, 149, 27, 28, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 150, 0, 291, 292, 293, + 0, 0, 0, 212, 0, 0, 0, 212, 212, 212, + 212, 212, 0, 212, 212, 212, 212, 0, 212, 212, + 0, 155, 212, 212, 212, 212, 212, 0, 0, 212, + 212, 0, 0, 0, 0, 0, 0, 0, 212, 0, + 212, 0, 0, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 152, 153, 154, 212, 212, 212, 0, 212, + 0, 212, 212, 212, 212, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 212, 212, + 212, 212, 0, 0, 212, 0, 0, 0, 212, 212, + 212, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 159, 145, 0, 146, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 575, - 0, 0, 67, 68, 159, 69, 0, 0, 0, 0, - 126, 0, 155, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 699, 0, - 146, 0, 0, 0, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 0, 155, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 150, 33, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 139, 140, 141, 142, 210, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 761, 0, 0, 159, 159, 0, 159, 0, 0, 0, - 0, 159, 0, 0, 159, 155, 0, 0, 159, 159, - 159, 159, 159, 0, 159, 159, 159, 159, 0, 159, - 159, 0, 0, 159, 159, 159, 159, 0, 0, 159, - 159, 159, 0, 0, 316, 0, 0, 0, 0, 159, - 0, 159, 317, 0, 0, 0, 0, 152, 153, 154, - 549, 0, 0, 316, 316, 33, 159, 159, 159, 33, - 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, - 33, 33, 0, 0, 33, 33, 33, 33, 0, 37, - 0, 33, 33, 0, 40, 0, 43, 0, 0, 0, - 33, 159, 33, 46, 0, 0, 0, 317, 0, 0, - 317, 0, 0, 0, 0, 0, 155, 33, 33, 33, - 49, 0, 0, 0, 0, 0, 0, 316, 0, 316, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 159, 159, - 159, 0, 0, 0, 0, 317, 0, 0, 0, 33, - 0, 0, 0, 33, 33, 33, 33, 33, 0, 33, - 33, 33, 33, 0, 33, 33, 155, 0, 33, 33, - 33, 33, 0, 37, 0, 33, 33, 0, 40, 0, - 43, 0, 0, 0, 33, 0, 33, 46, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 33, 33, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, - 566, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 236, 0, 316, 0, 0, 316, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, - 317, 0, 0, 0, 0, 317, 317, 317, 317, 0, - 317, 317, 317, 317, 0, 317, 317, 0, 0, 317, - 317, 317, 317, 0, 0, 0, 317, 317, 0, 0, - 0, 0, 0, 0, 0, 317, 236, 317, 236, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 317, 317, 317, 317, 0, 0, 0, 0, - 317, 317, 317, 317, 0, 317, 317, 317, 317, 0, - 317, 317, 0, 0, 317, 317, 317, 317, 0, 0, - 0, 317, 317, 0, 0, 0, 0, 317, 0, 0, - 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 0, 235, 0, 0, 316, 0, - 0, 0, 316, 316, 316, 316, 316, 316, 0, 0, - 0, 0, 317, 235, 0, 0, 316, 316, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 316, 0, 0, 0, - 0, 0, 0, 236, 316, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 566, 316, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 235, 0, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 0, 0, 0, 0, 236, 317, 0, - 0, 236, 236, 236, 236, 236, 236, 0, 0, 0, - 0, 0, 0, 0, 235, 236, 236, 235, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, - 0, 0, 236, 236, 236, 236, 0, 0, 0, 0, - 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 0, 0, 0, 0, 236, 0, 0, - 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 151, 0, 0, 212, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 210, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 212, 147, 148, 149, + 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 982, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 210, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 151, 0, 0, 0, 67, 68, 0, + 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 159, + 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 575, 0, 67, 68, 0, + 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 159, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, + 0, 0, 0, 699, 33, 146, 0, 0, 0, 0, + 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 225, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 317, 0, + 0, 225, 0, 0, 0, 0, 546, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 159, 159, 0, 159, + 0, 0, 0, 0, 159, 0, 0, 159, 761, 0, + 0, 159, 159, 159, 159, 159, 0, 159, 159, 159, + 159, 0, 159, 159, 0, 0, 159, 159, 159, 159, + 0, 0, 159, 159, 159, 0, 317, 0, 0, 0, + 0, 225, 159, 0, 159, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, + 159, 159, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 33, 0, 159, 0, 33, 33, 33, 33, + 33, 0, 33, 33, 33, 33, 0, 33, 33, 0, + 0, 33, 33, 33, 33, 0, 37, 316, 33, 33, + 0, 40, 0, 43, 0, 0, 317, 33, 0, 33, + 46, 0, 0, 0, 0, 0, 316, 316, 0, 0, + 0, 0, 0, 0, 33, 33, 33, 49, 0, 0, + 0, 159, 159, 159, 0, 0, 0, 0, 0, 0, + 0, 225, 52, 0, 0, 225, 225, 225, 225, 225, + 0, 225, 225, 225, 225, 0, 225, 225, 0, 33, + 225, 225, 225, 225, 317, 0, 0, 225, 225, 0, + 0, 0, 0, 0, 155, 0, 225, 0, 225, 0, + 316, 0, 316, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 225, 225, 317, 0, 0, 0, + 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, + 34, 317, 317, 0, 0, 317, 317, 317, 317, 0, + 0, 0, 317, 317, 0, 0, 0, 0, 225, 0, + 0, 317, 0, 317, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 159, 0, 0, 225, 225, 225, 225, 225, 0, 225, + 225, 225, 225, 0, 225, 225, 1224, 0, 225, 225, + 225, 225, 0, 317, 0, 225, 225, 0, 0, 0, + 0, 236, 0, 0, 225, 0, 225, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 236, 236, 236, 236, 236, 236, 0, 0, 527, 0, - 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 34, 0, 0, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 0, 0, 0, 0, 235, 0, - 0, 0, 235, 235, 235, 235, 235, 235, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 235, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 235, 235, 0, 0, 0, - 0, 338, 0, 339, 235, 0, 0, 0, 0, 0, + 0, 225, 225, 225, 0, 0, 0, 316, 0, 0, + 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 317, 33, 225, 0, 0, 317, + 317, 317, 317, 0, 317, 317, 317, 317, 0, 317, + 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, + 317, 317, 0, 236, 0, 236, 0, 0, 0, 317, + 0, 317, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 0, 0, 0, 317, 317, 317, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 0, 0, 317, + 235, 316, 235, 544, 0, 316, 316, 316, 316, 316, + 316, 0, 0, 0, 0, 0, 0, 0, 0, 316, + 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 316, 316, 316, 316, + 236, 0, 0, 236, 0, 0, 0, 316, 0, 0, + 0, 0, 0, 236, 563, 0, 0, 0, 0, 0, + 0, 316, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 545, 0, 5, 6, 7, 316, 316, 316, 0, + 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, + 547, 0, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 316, 316, 316, 316, 316, 316, 316, + 10, 11, 12, 13, 0, 548, 549, 235, 0, 0, + 235, 0, 0, 0, 0, 0, 0, 317, 0, 0, + 235, 0, 0, 0, 0, 550, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 236, 0, 0, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 551, 552, 0, 0, 236, 0, 0, 0, 236, 236, + 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 236, 0, 0, 563, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 524, 236, + 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 0, 0, 236, + 236, 235, 524, 0, 524, 235, 235, 235, 235, 235, + 235, 0, 0, 0, 0, 0, 0, 0, 0, 235, + 235, 0, 0, 0, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 0, 0, 34, 235, 235, 235, 235, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 527, 0, 0, 527, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 527, 566, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 235, 235, 235, 235, 235, 235, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 338, 0, 797, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, - 0, 527, 527, 527, 527, 527, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 0, 0, 0, 0, 527, - 0, 0, 0, 527, 527, 527, 527, 527, 527, 0, - 0, 0, 0, 0, 0, 0, 0, 527, 527, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 527, 527, 527, 527, 0, 0, - 0, 0, 338, 0, 999, 527, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, - 0, 0, 0, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 0, 0, - 67, 0, 7, 69, 0, 0, 328, 329, 330, 331, - 332, 333, 0, 2, 527, 527, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, - 13, 527, 527, 527, 527, 527, 527, 527, 334, 0, - 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 337, 67, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 532, 0, 532, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 0, 0, 371, 0, 0, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 0, 0, 0, 0, 7, 0, 0, 0, 328, 329, - 330, 331, 332, 333, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 0, 371, 0, 371, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 363, 0, 0, 0, 0, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 336, - 337, 532, 0, 7, 532, 0, 0, 328, 329, 330, - 331, 332, 333, 0, 532, 0, 0, 0, 0, 0, - 0, 8, 9, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 0, 363, 0, 363, 0, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 371, 0, 0, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 371, 336, 337, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 0, 0, 532, 532, 532, - 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, - 532, 0, 0, 0, 0, 532, 0, 0, 0, 532, - 532, 532, 532, 532, 532, 0, 0, 0, 0, 0, - 0, 0, 0, 532, 532, 356, 0, 0, 0, 0, - 0, 363, 0, 0, 363, 0, 0, 0, 0, 0, - 532, 532, 532, 532, 363, 0, 0, 0, 0, 0, - 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 235, 0, 338, + 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 524, + 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 524, 563, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 338, 0, 794, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 67, 0, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 524, 524, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 524, 524, 524, 0, + 0, 0, 0, 524, 338, 0, 996, 524, 524, 524, + 524, 524, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 524, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 529, 524, 524, + 524, 524, 0, 0, 67, 0, 0, 69, 0, 524, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 0, 0, 524, 524, + 7, 529, 0, 529, 328, 329, 330, 331, 332, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 0, 524, 524, 524, 524, 524, + 524, 524, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 67, 0, 0, 69, 0, 334, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 0, 336, 337, 0, 7, 0, + 0, 371, 328, 329, 330, 331, 332, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, + 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 10, 11, 12, 13, 0, 529, 0, + 0, 529, 0, 0, 334, 0, 0, 0, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 335, 0, + 0, 0, 0, 0, 0, 371, 0, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 0, 0, 336, 337, 7, 0, 0, 363, 328, + 329, 330, 331, 332, 333, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, + 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, + 0, 0, 363, 0, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 0, 0, + 336, 337, 529, 0, 0, 356, 529, 529, 529, 529, + 529, 529, 371, 0, 0, 371, 0, 0, 0, 0, + 529, 529, 0, 0, 0, 371, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 529, 529, 529, + 529, 0, 0, 0, 0, 0, 0, 0, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 529, 0, 0, 0, 0, 0, 0, 356, + 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 529, 529, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 363, + 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 363, 0, 529, 529, 529, 529, 529, 529, + 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 0, 0, 0, 0, 371, 356, - 0, 356, 371, 371, 371, 371, 371, 371, 0, 0, - 532, 532, 0, 0, 0, 0, 371, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 371, 371, 371, 371, 532, 532, 532, - 532, 532, 532, 532, 371, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 371, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 363, 363, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 0, 0, 371, 371, 363, 210, 0, 210, 363, - 363, 363, 363, 363, 363, 0, 0, 0, 0, 0, - 0, 0, 0, 363, 363, 526, 0, 0, 0, 0, - 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, - 363, 363, 363, 363, 0, 0, 356, 0, 0, 356, - 0, 363, 0, 0, 34, 0, 0, 0, 0, 356, - 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, - 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, - 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 363, 363, 363, - 363, 363, 363, 363, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 371, 0, 0, 0, 0, 371, 210, 0, 210, + 371, 371, 371, 371, 371, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 371, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 523, 371, 371, 371, 371, 0, 356, 0, 0, 356, + 0, 0, 371, 0, 0, 0, 0, 0, 0, 356, + 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 0, + 0, 371, 371, 363, 523, 0, 523, 363, 363, 363, + 363, 363, 363, 0, 0, 0, 0, 0, 0, 0, + 0, 363, 363, 0, 0, 0, 0, 0, 371, 371, + 371, 371, 371, 371, 371, 0, 0, 0, 363, 363, + 363, 363, 0, 0, 210, 0, 0, 210, 0, 363, + 0, 34, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 34, 0, 0, 0, + 356, 356, 356, 356, 356, 356, 0, 0, 363, 363, 356, 0, 0, 0, 356, 356, 356, 356, 356, 356, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, - 0, 0, 0, 0, 0, 0, 526, 0, 0, 526, - 0, 0, 0, 0, 0, 356, 356, 356, 356, 526, - 0, 0, 0, 0, 0, 0, 356, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 567, 356, 356, + 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, + 363, 363, 0, 0, 0, 356, 356, 356, 356, 0, + 0, 523, 0, 0, 523, 0, 356, 0, 0, 0, + 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, + 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 356, 0, 553, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 0, 0, 356, 356, 210, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, - 0, 0, 0, 1229, 0, 210, 210, 0, 0, 0, + 210, 210, 210, 210, 0, 356, 356, 0, 210, 0, + 0, 0, 210, 210, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, 356, 356, 356, 356, 356, 356, 356, 0, - 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 526, 526, 526, 526, 526, 526, 526, 526, - 526, 526, 526, 526, 526, 526, 0, 0, 0, 0, - 526, 0, 187, 0, 526, 526, 526, 526, 526, 526, - 0, 0, 210, 210, 0, 0, 0, 0, 526, 526, - 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, - 2, 0, 0, 0, 0, 526, 526, 526, 526, 210, - 210, 210, 210, 210, 210, 210, 526, 8, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 526, 0, 0, 0, 10, 11, 12, 13, 187, 0, - 0, 14, 15, 0, 0, 0, 0, 16, 0, 544, - 17, 2, 0, 0, 0, 0, 0, 18, 19, 0, - 0, 0, 0, 0, 0, 526, 526, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 526, 526, 526, 526, 526, 526, 526, 0, - 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 0, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 904, 545, 0, 5, - 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 546, 0, 0, 0, 0, 547, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 0, 548, 549, 0, 0, 0, 187, 0, 545, 0, + 0, 187, 0, 210, 210, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 2, 0, 210, 210, 523, 0, 187, 0, 523, + 523, 523, 523, 523, 523, 0, 0, 0, 0, 0, + 0, 0, 0, 523, 523, 0, 0, 0, 0, 0, + 210, 210, 210, 210, 210, 210, 210, 0, 0, 0, + 523, 523, 523, 523, 0, 0, 0, 0, 0, 0, + 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 523, 523, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 4, 5, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 523, 523, 523, + 523, 523, 523, 523, 8, 9, 0, 0, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 550, 546, 0, 0, 0, 0, 547, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, - 13, 0, 548, 549, 0, 187, 551, 552, 0, 0, + 0, 10, 11, 12, 13, 187, 0, 0, 14, 15, + 8, 9, 0, 0, 16, 0, 0, 17, 0, 0, + 0, 0, 0, 0, 18, 19, 0, 10, 11, 12, + 13, 0, 0, 0, 14, 15, 0, 0, 0, 0, + 16, 901, 0, 17, 0, 0, 0, 0, 0, 0, + 18, 19, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 550, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 864, 0, 0, 551, 552, 865, - 866, 0, 867, 868, 869, 870, 871, 872, 0, 873, - 874, 0, 875, 876, 877, 878, 879, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 0, 0, 187, 0, 187, 187, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 187, 0, 0, 187, 187, 0, 880, 0, - 881, 0, 0, 0, 0, 882, 863, 0, 0, 0, - 0, 0, 187, 187, 187, 187, 0, 187, 187, 0, - 864, 883, 0, 0, 0, 865, 866, 0, 867, 868, - 869, 870, 871, 872, 0, 873, 874, 187, 875, 876, - 877, 878, 879, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 21, 0, 22, 23, 24, 0, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 21, 0, 22, 23, + 24, 0, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 880, 0, 881, 0, 0, 0, - 0, 882, 0, 0, 0, 0, 0, 0, 0, 187, - 187, 187, 187, 187, 187, 187, 0, 883, 0, 0, + 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 187, 0, 0, 187, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 860, 0, 0, 0, 0, + 0, 187, 187, 187, 187, 0, 187, 187, 0, 861, + 0, 0, 0, 0, 862, 863, 0, 864, 865, 866, + 867, 868, 869, 860, 870, 871, 187, 872, 873, 874, + 875, 876, 0, 0, 0, 0, 0, 861, 0, 0, + 0, 0, 862, 863, 0, 864, 865, 866, 867, 868, + 869, 0, 870, 871, 0, 872, 873, 874, 875, 876, + 0, 187, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, + 879, 0, 0, 0, 0, 0, 0, 0, 187, 187, + 187, 187, 187, 187, 187, 0, 880, 0, 0, 0, + 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 880, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 884, 0, 0, 0, 0, 885, 0, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 0, 0, 0, 903, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 885, 0, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, - 0, 0, 0, 903, + 882, 0, 883, 884, 885, 886, 887, 888, 889, 890, + 891, 892, 893, 894, 895, 896, 897, 898, 899, 0, + 0, 0, 900, 0, 0, 0, 0, 0, 882, 0, + 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 0, 0, 0, + 900, }; static int yycheck[] = { 4, - 24, 24, 102, 103, 167, 24, 92, 1, 22, 23, - 1, 312, 312, 93, 19, 13, 1, 791, 1008, 1032, - 711, 1, 27, 28, 29, 30, 24, 911, 64, 1, - 312, 181, 697, 1, 431, 91, 433, 845, 38, 485, - 36, 37, 24, 38, 44, 42, 41, 40, 264, 44, - 367, 43, 125, 43, 123, 45, 264, 46, 46, 46, - 1202, 123, 46, 46, 60, 41, 1164, 167, 41, 1280, - 44, 40, 76, 193, 194, 195, 196, 197, 47, 41, - 43, 123, 105, 33, 58, 776, 125, 1556, 91, 169, - 190, 60, 46, 59, 319, 263, 91, 40, 1538, 520, - 521, 522, 188, 41, 1544, 128, 104, 262, 113, 46, - 115, 116, 117, 510, 511, 215, 43, 40, 42, 44, - 41, 145, 104, 41, 148, 40, 46, 40, 151, 46, - 93, 299, 40, 288, 1574, 38, 471, 62, 40, 42, - 91, 41, 40, 60, 168, 41, 232, 59, 42, 923, - 924, 156, 157, 233, 41, 380, 93, 60, 156, 125, - 41, 44, 61, 199, 260, 261, 93, 263, 91, 167, - 59, 41, 40, 93, 46, 41, 91, 181, 40, 33, - 123, 267, 187, 91, 347, 208, 41, 342, 91, 91, - 40, 269, 365, 91, 272, 46, 41, 41, 40, 40, - 205, 206, 1413, 41, 46, 210, 263, 203, 982, 40, - 93, 1680, 210, 125, 61, 40, 40, 295, 296, 369, - 483, 93, 300, 91, 302, 42, 40, 232, 267, 1543, - 40, 309, 40, 1331, 239, 44, 260, 61, 555, 91, - 503, 91, 93, 529, 1018, 61, 41, 316, 326, 44, - 91, 337, 352, 315, 316, 471, 40, 260, 261, 1573, - 263, 123, 267, 341, 350, 268, 91, 264, 471, 311, - 33, 351, 693, 296, 91, 33, 281, 91, 283, 46, - 303, 305, 287, 91, 93, 290, 359, 263, 262, 294, - 1174, 364, 123, 296, 299, 300, 301, 302, 506, 507, - 508, 264, 264, 306, 294, 274, 997, 273, 262, 365, - 260, 261, 398, 263, 264, 351, 306, 307, 312, 313, - 741, 312, 313, 299, 264, 348, 264, 312, 313, 318, - 344, 345, 312, 313, 324, 318, 260, 261, 342, 263, - 312, 313, 346, 264, 312, 313, 264, 320, 321, 347, - 348, 264, 265, 266, 33, 353, 20, 21, 43, 355, - 45, 273, 123, 262, 264, 369, 260, 261, 264, 263, - 543, 353, 296, 286, 287, 471, 370, 264, 265, 370, - 371, 372, 373, 264, 374, 266, 59, 1078, 474, 288, - 370, 371, 372, 373, 264, 265, 59, 1410, 264, 391, - 262, 65, 296, 391, 825, 286, 287, 391, 72, 264, - 265, 1553, 415, 416, 417, 429, 270, 271, 272, 264, - 264, 275, 276, 277, 278, 279, 264, 281, 282, 283, - 284, 262, 286, 287, 438, 422, 290, 291, 292, 293, - 526, 527, 296, 297, 298, 1587, 262, 111, 112, 472, - 260, 261, 306, 263, 308, 541, 606, 360, 361, 362, - 453, 466, 125, 468, 1545, 260, 552, 617, 263, 323, - 324, 325, 264, 1281, 40, 575, 260, 261, 483, 263, - 926, 40, 480, 275, 262, 483, 452, 543, 38, 910, - 495, 40, 42, 157, 1575, 509, 462, 511, 44, 465, - 1165, 515, 260, 261, 358, 263, 264, 593, 271, 123, - 60, 516, 275, 276, 277, 278, 279, 59, 281, 282, - 283, 284, 608, 286, 287, 91, 526, 290, 291, 292, - 293, 526, 91, 38, 297, 298, 541, 42, 91, 40, - 452, 91, 91, 306, 624, 308, 40, 93, 1561, 473, - 462, 264, 265, 465, 544, 60, 40, 221, 222, 123, - 323, 324, 325, 1337, 1338, 283, 284, 572, 573, 40, - 536, 537, 538, 539, 540, 541, 542, 600, 481, 473, - 267, 260, 40, 125, 263, 264, 91, 667, 593, 669, - 91, 595, 41, 43, 43, 358, 91, 91, 602, 123, - 318, 1591, 606, 599, 1546, 260, 261, 91, 263, 294, - 273, 61, 40, 617, 764, 260, 261, 281, 263, 123, - 91, 306, 307, 287, 536, 537, 538, 539, 540, 541, - 542, 295, 123, 91, 1576, 631, 632, 40, 643, 324, - 123, 637, 678, 639, 649, 668, 315, 536, 537, 538, - 539, 540, 541, 542, 44, 755, 44, 123, 40, 260, - 261, 761, 263, 91, 328, 44, 330, 753, 754, 46, - 334, 44, 59, 46, 62, 699, 339, 42, 342, 343, - 260, 261, 346, 263, 61, 708, 359, 1571, 91, 374, - 544, 364, 61, 40, 42, 40, 260, 998, 998, 263, - 264, 320, 321, 93, 784, 369, 711, 260, 261, 91, - 263, 716, 726, 718, 1405, 44, 998, 46, 40, 715, - 91, 59, 713, 38, 1498, 91, 91, 42, 751, 40, - 850, 59, 852, 853, 854, 855, 856, 1511, 125, 260, - 458, 459, 263, 461, 91, 60, 91, 40, 91, 754, - 330, 331, 775, 758, 759, 760, 47, 843, 422, 423, - 764, 425, 40, 427, 778, 260, 261, 91, 263, 91, - 793, 776, 41, 374, 375, 44, 91, 781, 442, 443, - 306, 544, 41, 260, 261, 44, 263, 125, 41, 452, - 43, 260, 261, 1190, 263, 1192, 800, 125, 44, 91, - 46, 464, 391, 466, 467, 809, 469, 470, 463, 1500, - 360, 361, 362, 41, 266, 43, 44, 359, 463, 483, - 1594, 391, 364, 828, 310, 830, 312, 313, 314, 41, - 916, 911, 41, 59, 286, 287, 841, 501, 41, 42, - 920, 391, 506, 507, 508, 41, 510, 43, 512, 513, - 514, 328, 516, 330, 331, 360, 361, 362, 391, 264, - 337, 266, 1636, 536, 537, 538, 539, 540, 541, 542, - 279, 280, 391, 536, 537, 538, 539, 540, 541, 542, - 289, 286, 287, 47, 548, 549, 273, 911, 91, 260, - 261, 59, 263, 1667, 260, 261, 1019, 263, 1021, 125, - 41, 42, 268, 267, 908, 374, 375, 571, 1682, 41, - 574, 41, 260, 261, 41, 263, 264, 260, 261, 316, - 263, 1007, 42, 1009, 41, 42, 40, 275, 41, 40, - 296, 595, 93, 299, 40, 273, 260, 261, 602, 263, - 306, 43, 44, 264, 268, 273, 1637, 951, 296, 61, - 91, 43, 948, 617, 263, 946, 41, 125, 476, 123, - 281, 282, 283, 1049, 983, 1051, 280, 990, 260, 261, - 93, 263, 296, 996, 91, 40, 260, 1057, 642, 263, - 264, 38, 987, 393, 394, 42, 41, 42, 1679, 46, - 47, 655, 997, 40, 536, 537, 538, 539, 540, 541, - 542, 339, 666, 60, 998, 38, 40, 998, 1013, 1000, - 1001, 1002, 40, 998, 40, 1019, 40, 1021, 998, 1099, - 1000, 1001, 1002, 40, 59, 689, 998, 40, 1000, 1001, - 998, 40, 1000, 1001, 91, 40, 91, 40, 425, 426, - 427, 428, 614, 615, 616, 360, 361, 362, 1053, 415, - 416, 417, 264, 265, 266, 260, 261, 40, 263, 723, - 724, 725, 449, 450, 451, 452, 41, 1230, 1231, 1232, - 1233, 93, 1152, 1078, 286, 287, 40, 1240, 1241, 1242, - 393, 394, 93, 747, 748, 43, 44, 264, 265, 266, - 125, 415, 416, 417, 432, 433, 260, 261, 40, 263, - 428, 91, 430, 431, 768, 273, 770, 125, 772, 286, - 287, 898, 899, 777, 452, 58, 91, 781, 41, 42, - 33, 449, 450, 451, 452, 473, 464, 125, 466, 467, - 40, 469, 470, 359, 260, 261, 800, 263, 364, 40, - 1226, 1227, 281, 282, 283, 284, 810, 811, 40, 536, - 537, 538, 539, 540, 541, 542, 281, 282, 283, 284, - 824, 33, 40, 40, 44, 0, 301, 38, 303, 304, - 305, 42, 41, 91, 1188, 40, 260, 261, 1192, 263, - 264, 294, 1206, 847, 1581, 1582, 1200, 40, 301, 60, - 303, 304, 305, 260, 261, 859, 263, 861, 536, 537, - 538, 539, 540, 541, 542, 44, 262, 123, 536, 537, - 538, 539, 540, 541, 542, 41, 262, 41, 1223, 91, - 91, 274, 1220, 41, 59, 1305, 60, 464, 40, 342, - 343, 344, 1230, 1231, 1232, 1233, 274, 40, 273, 40, - 40, 62, 1240, 1241, 1242, 278, 1250, 911, 281, 282, - 283, 284, 275, 286, 287, 288, 44, 921, 365, 123, - 1264, 296, 1266, 123, 432, 433, 123, 123, 58, 1274, - 330, 331, 332, 274, 40, 388, 389, 390, 40, 392, - 40, 40, 395, 41, 452, 260, 261, 38, 263, 40, - 125, 42, 41, 268, 468, 1395, 464, 317, 466, 471, - 61, 469, 470, 360, 361, 362, 366, 367, 368, 60, - 536, 537, 538, 539, 540, 541, 542, 317, 1404, 61, - 61, 296, 40, 471, 299, 44, 41, 41, 992, 1415, - 994, 306, 0, 41, 38, 1349, 93, 58, 42, 41, - 91, 1332, 260, 261, 41, 263, 41, 41, 1428, 41, - 268, 281, 282, 283, 284, 1019, 60, 1021, 44, 1383, - 330, 331, 332, 0, 281, 282, 283, 284, 536, 537, - 538, 539, 540, 541, 542, 410, 61, 44, 296, 1043, - 44, 1386, 1046, 61, 263, 125, 40, 91, 40, 260, - 261, 59, 263, 61, 125, 41, 366, 367, 368, 271, - 1405, 41, 41, 275, 276, 277, 278, 279, 41, 281, - 282, 283, 284, 1499, 286, 287, 41, 452, 290, 291, - 292, 293, 59, 41, 41, 297, 298, 462, 41, 41, - 465, 41, 41, 41, 306, 41, 308, 41, 273, 41, - 415, 416, 417, 280, 281, 282, 283, 284, 41, 40, - 93, 323, 324, 325, 1445, 274, 41, 125, 93, 277, - 278, 279, 44, 281, 282, 283, 284, 274, 286, 287, - 288, 1557, 290, 291, 292, 293, 41, 44, 1501, 297, - 298, 38, 41, 1147, 1564, 40, 358, 58, 125, 360, - 361, 362, 44, 260, 261, 1500, 263, 415, 416, 417, - 40, 536, 537, 538, 539, 540, 541, 542, 41, 41, - 40, 1175, 1176, 1177, 40, 294, 41, 41, 1182, 1183, - 1184, 1185, 1186, 1187, 41, 1189, 1190, 1191, 40, 1193, - 1194, 1195, 1196, 1197, 1198, 1199, 41, 1201, 91, 1203, - 62, 1205, 41, 1207, 40, 294, 498, 365, 502, 490, - 40, 277, 301, 41, 303, 304, 305, 61, 41, 125, - 1640, 123, 62, 41, 41, 1589, 123, 41, 1582, 41, - 452, 391, 93, 1673, 93, 410, 411, 412, 413, 414, - 280, 281, 282, 283, 284, 41, 41, 41, 355, 356, - 357, 1677, 317, 342, 343, 344, 41, 432, 433, 40, - 38, 317, 93, 1267, 40, 273, 58, 58, 1272, 360, - 361, 362, 93, 380, 449, 450, 451, 452, 93, 1283, - 93, 456, 457, 40, 40, 44, 91, 462, 91, 1293, - 465, 505, 1637, 1297, 1298, 40, 273, 472, 473, 388, - 389, 390, 40, 392, 1308, 93, 395, 123, 41, 41, - 40, 40, 422, 1676, 322, 41, 360, 361, 362, 41, - 93, 93, 511, 44, 41, 1329, 1330, 274, 41, 41, - 58, 93, 544, 44, 1679, 60, 0, 61, 40, 1343, - 1344, 1345, 1346, 1347, 1348, 123, 1350, 40, 40, 40, - 40, 40, 527, 528, 40, 530, 531, 532, 40, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 475, 33, - 477, 478, 479, 480, 38, 40, 40, 41, 42, 40, - 44, 278, 40, 47, 281, 282, 283, 284, 40, 286, - 287, 288, 62, 41, 125, 59, 60, 61, 62, 93, - 41, 41, 410, 411, 412, 413, 414, 41, 93, 93, - 93, 41, 93, 41, 93, 41, 424, 41, 93, 41, - 41, 429, 93, 1427, 432, 433, 59, 91, 41, 93, - 1434, 93, 41, 410, 411, 412, 413, 414, 93, 41, - 38, 449, 450, 451, 452, 41, 454, 455, 456, 457, - 93, 93, 41, 41, 462, 432, 433, 465, 93, 123, - 41, 125, 93, 41, 472, 473, 474, 41, 93, 44, - 263, 41, 449, 450, 451, 452, 274, 41, 41, 456, - 457, 40, 93, 93, 40, 462, 93, 464, 465, 40, - 40, 40, 125, 41, 40, 472, 473, 58, 58, 91, - 278, 509, 510, 281, 282, 283, 284, 41, 286, 287, - 288, 58, 269, 41, 41, 272, 1520, 1521, 1522, 527, - 528, 40, 530, 531, 532, 123, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 41, 93, 41, 295, 296, - 93, 41, 41, 300, 40, 302, 40, 40, 93, 93, - 527, 528, 309, 530, 531, 532, 40, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 40, 40, 1572, 326, - 40, 40, 40, 1577, 1578, 1579, 40, 1581, 40, 1583, - 1584, 1585, 40, 40, 341, 41, 263, 41, 41, 60, - 93, 58, 93, 40, 40, 40, 260, 261, 262, 263, - 41, 1605, 1606, 1607, 268, 40, 91, 271, 40, 273, - 274, 275, 276, 277, 278, 279, 41, 281, 282, 283, - 284, 41, 286, 287, 288, 41, 290, 291, 292, 293, - 41, 40, 296, 297, 298, 299, 295, 274, 41, 41, - 273, 300, 306, 302, 308, 263, 40, 311, 40, 358, - 309, 315, 316, 511, 318, 41, 41, 274, 322, 323, - 324, 325, 260, 296, 1668, 263, 33, 326, 260, 261, - 262, 263, 264, 41, 40, 339, 268, 41, 41, 123, - 278, 123, 341, 281, 282, 283, 284, 125, 286, 287, - 288, 283, 123, 123, 358, 359, 360, 361, 362, 44, - 364, 365, 62, 125, 296, 123, 125, 40, 123, 62, - 374, 375, 41, 123, 41, 41, 123, 125, 41, 41, - 41, 33, 41, 123, 125, 123, 62, 391, 320, 321, - 123, 41, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 40, 40, 123, 41, 0, 263, 41, 410, 93, 91, - 46, 263, 93, 275, 275, 449, 450, 451, 452, 42, - 454, 455, 456, 457, 61, 275, 460, 275, 462, 275, - 464, 465, 466, 467, 263, 469, 470, 33, 472, 473, - 474, 263, 38, 91, 40, 41, 42, 481, 44, 452, - 275, 47, 180, 415, 416, 417, 275, 275, 840, 462, - 263, 1025, 465, 59, 60, 61, 62, 420, 275, 275, - 1048, 294, 1516, 907, 748, 509, 510, 511, 301, 275, - 303, 304, 305, 1290, 275, 295, 1023, 1152, 275, 926, - 300, 275, 302, 527, 528, 91, 530, 531, 532, 309, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 275, - 544, 1210, 708, 916, 1278, 1291, 326, 327, 353, 342, - 343, 344, 913, 480, 24, 260, 261, 123, 263, 125, - 9, 341, 1214, 536, 537, 538, 539, 540, 541, 542, - 277, 278, 279, 114, 281, 282, 283, 284, 550, 286, - 287, 24, 763, 290, 291, 292, 293, 59, 305, 0, - 767, 678, 372, 64, 612, 388, 389, 390, 492, 392, - -1, -1, 395, 371, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, 59, -1, - 355, 356, 357, 125, 306, -1, 308, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, 380, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, 260, 261, 301, 263, 303, 304, - 305, -1, 268, -1, -1, 271, 358, 273, 274, 275, - 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, 342, 343, 344, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, - 475, -1, 477, 478, 479, 480, -1, -1, -1, -1, - -1, -1, -1, 388, 389, 390, -1, 392, -1, -1, - 395, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, 391, -1, -1, -1, -1, + 312, 24, 102, 103, 167, 711, 24, 1, 431, 24, + 433, 64, 1, 76, 19, 13, 1, 312, 1005, 312, + 908, 1027, 27, 28, 29, 30, 24, 1, 181, 91, + 788, 38, 1, 697, 22, 23, 485, 44, 842, 42, + 1197, 93, 1, 38, 46, 91, 41, 61, 264, 44, + 43, 367, 264, 36, 37, 61, 40, 92, 123, 46, + 46, 1159, 123, 520, 521, 522, 46, 167, 41, 125, + 776, 365, 123, 123, 46, 471, 40, 60, 43, 41, + 45, 24, 105, 59, 263, 41, 1275, 510, 511, 42, + 190, 42, 260, 261, 41, 263, 91, 41, 43, 41, + 40, 260, 261, 41, 263, 128, 104, 47, 113, 1551, + 115, 116, 117, 59, 42, 215, 43, 169, 181, 40, + 60, 193, 194, 195, 196, 197, 61, 145, 151, 41, + 148, 46, 40, 319, 61, 38, 40, 43, 262, 42, + 483, 41, 44, 38, 40, 40, 199, 42, 93, 529, + 168, 156, 157, 188, 41, 91, 41, 60, 156, 123, + 503, 104, 920, 921, 288, 60, 43, 41, 45, 167, + 91, 41, 91, 41, 260, 261, 42, 263, 93, 20, + 21, 233, 187, 91, 347, 208, 471, 93, 91, 41, + 44, 93, 41, 125, 380, 91, 91, 232, 41, 260, + 205, 206, 263, 264, 58, 210, 374, 375, 46, 59, + 264, 267, 210, 41, 260, 261, 369, 263, 342, 1408, + 203, 979, 268, 91, 65, 91, 41, 232, 1326, 44, + 40, 72, 267, 1675, 239, 40, 693, 1538, 1540, 555, + 260, 261, 260, 263, 330, 331, 311, 38, 262, 543, + 296, 42, 352, 262, 40, 1013, 262, 260, 261, 471, + 263, 264, 267, 46, 315, 316, 316, 1568, 1570, 60, + 111, 112, 275, 296, 288, 125, 281, 60, 283, 342, + 303, 1169, 287, 346, 741, 290, 91, 305, 994, 294, + 506, 507, 508, 296, 299, 300, 301, 302, 351, 351, + 91, 263, 337, 365, 463, 91, 369, 91, 264, 260, + 261, 264, 263, 123, 40, 350, 157, 264, 312, 313, + 264, 265, 264, 312, 313, 348, 264, 312, 313, 294, + 59, 318, 260, 261, 274, 263, 1541, 299, 312, 313, + 315, 306, 307, 312, 313, 296, 318, 320, 321, 347, + 348, 349, 264, 312, 313, 353, 344, 345, 264, 324, + 264, 265, 266, 398, 264, 822, 1571, 1073, 296, 415, + 416, 417, 355, 264, 123, 438, 370, 264, 33, 264, + 221, 222, 286, 287, 275, 370, 371, 372, 373, 59, + 264, 1548, 260, 261, 264, 263, 125, 40, 391, 1405, + 268, 370, 371, 372, 373, 391, 349, 47, 262, 374, + 353, 391, 264, 359, 266, 264, 265, 294, 364, 44, + 422, 264, 265, 266, 262, 1582, 123, 359, 296, 306, + 307, 299, 364, 59, 286, 287, 264, 265, 306, 474, + 281, 429, 267, 286, 287, 260, 287, 324, 263, 472, + 907, 471, 262, 606, 295, 125, 123, 360, 361, 362, + 59, 466, 40, 468, 617, 360, 361, 362, 93, 453, + 473, 91, 1276, 40, 923, 575, 260, 261, 483, 263, + 123, 543, 480, 123, 268, 483, 46, 328, 123, 330, + 495, 526, 527, 334, 40, 40, 1160, 374, 46, 125, + 40, 342, 343, 44, 40, 346, 541, 260, 261, 359, + 263, 516, 296, 91, 364, 260, 261, 552, 263, 526, + 266, 509, 473, 511, 91, 40, 125, 515, 369, 40, + 123, 526, 40, 93, 260, 261, 541, 263, 40, 602, + 286, 287, 123, 606, 273, 473, 91, 415, 416, 417, + 1556, 91, 93, 349, 617, 91, 33, 353, 593, 40, + 536, 537, 538, 539, 540, 541, 542, 572, 573, 360, + 361, 362, 624, 608, 1332, 1333, 91, 600, 481, 544, + 91, 422, 423, 91, 425, 123, 427, 91, 593, 91, + 536, 537, 538, 539, 540, 541, 542, 40, 44, 1586, + 391, 442, 443, 273, 59, 260, 261, 46, 263, 264, + 91, 764, 40, 40, 263, 667, 599, 669, 61, 262, + 260, 261, 61, 263, 38, 678, 296, 91, 42, 374, + 375, 415, 416, 417, 41, 42, 264, 265, 643, 44, + 260, 261, 483, 263, 649, 668, 60, 273, 631, 632, + 299, 40, 40, 40, 637, 755, 639, 62, 91, 260, + 501, 761, 263, 91, 91, 506, 507, 508, 40, 510, + 125, 512, 513, 514, 46, 516, 40, 91, 1566, 46, + 40, 699, 40, 995, 91, 708, 536, 537, 538, 539, + 540, 541, 542, 61, 1400, 40, 425, 426, 427, 428, + 995, 764, 995, 91, 91, 91, 711, 548, 549, 44, + 463, 716, 40, 718, 260, 261, 40, 263, 753, 754, + 449, 450, 451, 452, 42, 91, 93, 91, 751, 781, + 571, 91, 715, 574, 797, 1493, 260, 261, 726, 263, + 410, 306, 40, 806, 713, 47, 91, 38, 1506, 754, + 44, 42, 775, 758, 759, 760, 260, 261, 93, 263, + 359, 602, 1185, 91, 1187, 364, 38, 790, 62, 60, + 42, 776, 40, 91, 59, 847, 617, 849, 850, 851, + 852, 853, 452, 260, 261, 46, 263, 264, 60, 1495, + 778, 41, 462, 91, 44, 465, 260, 261, 41, 263, + 91, 642, 38, 41, 42, 840, 42, 536, 537, 538, + 539, 540, 541, 542, 655, 283, 284, 391, 273, 91, + 825, 391, 827, 91, 60, 666, 452, 260, 261, 391, + 263, 1589, 93, 838, 320, 321, 462, 41, 42, 465, + 125, 264, 905, 330, 331, 332, 260, 261, 689, 263, + 318, 41, 42, 91, 33, 91, 908, 391, 281, 282, + 283, 41, 0, 43, 44, 917, 536, 537, 538, 539, + 540, 541, 542, 1631, 260, 261, 267, 263, 913, 366, + 367, 368, 723, 724, 725, 948, 264, 91, 266, 41, + 908, 41, 44, 38, 260, 261, 262, 263, 264, 1533, + 41, 91, 268, 316, 1662, 1539, 747, 748, 286, 287, + 536, 537, 538, 539, 540, 541, 542, 283, 44, 1677, + 46, 59, 330, 331, 332, 41, 1632, 768, 42, 770, + 296, 772, 614, 615, 616, 1569, 777, 536, 537, 538, + 539, 540, 541, 542, 393, 394, 360, 361, 362, 260, + 261, 1014, 263, 1016, 320, 321, 797, 40, 366, 367, + 368, 41, 945, 43, 987, 980, 807, 808, 1674, 1004, + 993, 1006, 40, 428, 943, 430, 431, 61, 123, 984, + 821, 260, 279, 280, 263, 264, 93, 125, 273, 994, + 458, 459, 289, 461, 449, 450, 451, 452, 393, 394, + 1052, 995, 44, 844, 46, 1010, 995, 43, 44, 1044, + 995, 1046, 997, 998, 999, 856, 40, 858, 264, 265, + 266, 995, 43, 997, 998, 41, 995, 43, 997, 998, + 999, 280, 281, 282, 283, 284, 995, 263, 997, 998, + 286, 287, 1094, 1048, 301, 41, 303, 304, 305, 415, + 416, 417, 43, 44, 91, 280, 281, 282, 283, 284, + 895, 896, 1225, 1226, 1227, 1228, 93, 908, 1073, 360, + 361, 362, 1235, 1236, 1237, 260, 261, 918, 263, 264, + 476, 536, 537, 538, 539, 540, 541, 542, 360, 361, + 362, 44, 271, 46, 280, 1147, 275, 276, 277, 278, + 279, 40, 281, 282, 283, 284, 40, 286, 287, 40, + 91, 290, 291, 292, 293, 41, 295, 43, 297, 298, + 1014, 300, 1016, 302, 360, 361, 362, 306, 40, 308, + 309, 260, 261, 278, 263, 273, 281, 282, 283, 284, + 40, 286, 287, 288, 323, 324, 325, 326, 989, 40, + 991, 40, 38, 1576, 1577, 40, 42, 41, 42, 0, + 46, 47, 341, 40, 93, 41, 310, 452, 312, 313, + 314, 40, 40, 1014, 60, 1016, 40, 462, 93, 358, + 465, 40, 1245, 1201, 40, 40, 1221, 1222, 281, 282, + 283, 284, 125, 91, 40, 1183, 1259, 1038, 1261, 1187, + 1041, 59, 40, 40, 58, 91, 40, 1195, 281, 282, + 283, 284, 40, 1218, 125, 44, 41, 1215, 59, 281, + 282, 283, 284, 260, 261, 40, 263, 1225, 1226, 1227, + 1228, 268, 260, 261, 40, 263, 262, 1235, 1236, 1237, + 59, 281, 282, 283, 284, 262, 44, 41, 1300, 123, + 41, 536, 537, 538, 539, 540, 541, 542, 60, 296, + 274, 464, 299, 274, 1269, 40, 40, 125, 40, 306, + 40, 275, 410, 411, 412, 413, 414, 62, 44, 260, + 261, 123, 263, 365, 125, 58, 274, 268, 123, 40, + 1390, 123, 123, 40, 432, 433, 40, 317, 41, 38, + 328, 1142, 330, 331, 40, 317, 125, 468, 61, 337, + 40, 449, 450, 451, 452, 296, 61, 471, 456, 457, + 61, 44, 471, 41, 462, 306, 464, 465, 93, 1170, + 1171, 1172, 41, 41, 472, 473, 1177, 1178, 1179, 1180, + 1181, 1182, 41, 1184, 1185, 1186, 41, 1188, 1189, 1190, + 1191, 1192, 1193, 1194, 41, 1196, 1344, 1198, 1327, 1200, + 1378, 1202, 41, 44, 1399, 544, 58, 41, 44, 44, + 125, 1423, 61, 263, 40, 1410, 1381, 61, 415, 416, + 417, 40, 40, 125, 123, 41, 41, 41, 41, 527, + 528, 41, 530, 531, 532, 1400, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 41, 41, 41, 41, 38, + 41, 41, 274, 269, 41, 273, 272, 295, 294, 41, + 41, 1262, 300, 41, 302, 301, 1267, 303, 304, 305, + 41, 309, 273, 93, 415, 416, 417, 1278, 296, 295, + 296, 93, 41, 44, 300, 41, 302, 1288, 326, 44, + 274, 1292, 1293, 309, 273, 41, 44, 40, 58, 1494, + 40, 40, 1303, 341, 41, 38, 342, 343, 344, 41, + 326, 1440, 40, 1496, 360, 361, 362, 41, 41, 41, + 40, 294, 41, 1324, 1325, 341, 62, 91, 41, 40, + 1495, 498, 490, 502, 0, 40, 277, 1338, 1339, 1340, + 1341, 1342, 1343, 41, 1345, 61, 125, 1559, 123, 41, + 62, 41, 388, 389, 390, 41, 392, 1552, 41, 395, + 41, 260, 452, 93, 263, 391, 93, 33, 41, 41, + 41, 317, 38, 317, 40, 41, 42, 41, 44, 278, + 40, 47, 281, 282, 283, 284, 40, 286, 287, 288, + 123, 58, 410, 59, 60, 61, 62, 58, 93, 93, + 93, 40, 93, 44, 505, 40, 1584, 91, 1668, 410, + 411, 412, 413, 414, 91, 40, 123, 93, 41, 41, + 40, 1422, 40, 1635, 41, 91, 33, 93, 1429, 1577, + 59, 432, 433, 41, 452, 422, 93, 93, 511, 44, + 41, 274, 58, 41, 462, 41, 60, 465, 449, 450, + 451, 452, 44, 432, 433, 456, 457, 123, 61, 125, + 93, 462, 40, 40, 465, 40, 40, 1632, 40, 40, + 40, 472, 473, 452, 40, 40, 40, 1672, 40, 40, + 125, 62, 41, 93, 41, 464, 41, 466, 1671, 278, + 469, 470, 281, 282, 283, 284, 125, 286, 287, 288, + 93, 41, 93, 93, 41, 93, 41, 93, 41, 1674, + 41, 93, 41, 41, 1515, 1516, 1517, 93, 536, 537, + 538, 539, 540, 541, 542, 41, 527, 528, 41, 530, + 531, 532, 41, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 93, 93, 93, 278, 41, 93, 281, 282, + 283, 284, 41, 286, 287, 288, 41, 536, 537, 538, + 539, 540, 541, 542, 41, 41, 1567, 93, 93, 41, + 93, 1572, 1573, 1574, 263, 1576, 44, 1578, 1579, 1580, + 41, 41, 41, 40, 40, 93, 41, 274, 93, 93, + 40, 40, 40, 58, 260, 261, 262, 263, 41, 1600, + 1601, 1602, 268, 41, 58, 271, 58, 273, 274, 275, + 276, 277, 278, 279, 41, 281, 282, 283, 284, 41, + 286, 287, 288, 40, 290, 291, 292, 293, 40, 93, + 296, 297, 298, 299, 41, 41, 41, 41, 40, 40, + 306, 40, 308, 40, 273, 311, 93, 93, 93, 315, + 316, 40, 318, 40, 40, 40, 322, 323, 324, 325, + 40, 40, 1663, 40, 40, 93, 41, 40, 263, 60, + 277, 278, 279, 339, 281, 282, 283, 284, 41, 286, + 287, 40, 93, 290, 291, 292, 293, 58, 40, 40, + 40, 91, 358, 359, 360, 361, 362, 41, 364, 365, + 40, 274, 41, 41, 41, 41, 40, 263, 374, 375, + 339, 41, 41, 40, 40, 358, 41, 41, 40, 33, + 274, 41, 41, 511, 41, 391, 44, 123, 123, 123, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 544, -1, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, - 38, 322, 40, 41, 42, 481, 44, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 60, 61, 62, -1, -1, -1, 410, -1, - -1, -1, -1, 509, 510, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, - 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 462, -1, -1, 465, -1, 123, 123, 125, -1, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 424, -1, -1, -1, -1, 429, -1, - -1, 432, 433, -1, 59, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, -1, - -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, - -1, 472, 473, 474, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 125, 123, + 62, 40, 0, 62, 41, 123, 125, 91, 125, 41, + 123, 123, 41, 449, 450, 451, 452, 41, 454, 455, + 456, 457, 125, 41, 460, 123, 462, 41, 464, 465, + 466, 467, 41, 469, 470, 33, 472, 473, 474, 125, + 38, 123, 40, 41, 42, 481, 44, 123, 41, 47, + 62, 123, 41, 452, 40, 40, 123, 41, 263, 93, + 93, 59, 60, 61, 62, 464, 46, 466, 467, 294, + 469, 470, 275, 509, 510, 511, 301, 263, 303, 304, + 305, 275, 42, 295, 61, 275, 275, 275, 300, 91, + 302, 527, 528, 91, 530, 531, 532, 309, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 275, 544, 263, + 263, 180, 275, 275, 326, 327, 420, 342, 343, 344, + 837, 263, 1020, 275, 275, 123, 1043, 125, 748, 341, + 260, 261, 1285, 263, 904, 275, 275, 536, 537, 538, + 539, 540, 541, 542, 275, 1511, 1018, 275, 1147, 275, + 1205, 1273, 708, 913, 923, 59, 1286, 0, 480, 24, + 372, 9, 910, 388, 389, 390, 1209, 392, 114, 550, + 395, 24, 763, 767, 612, 64, 260, 261, 492, 263, + 305, -1, 678, -1, 268, -1, 371, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, 59, -1, 61, -1, + -1, 125, 306, -1, 308, 355, 356, 357, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + 380, -1, -1, -1, -1, -1, -1, 294, -1, -1, + -1, -1, 260, 261, 301, 263, 303, 304, 305, -1, + 268, -1, -1, 271, 358, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, 294, 296, 297, - 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, 309, 311, -1, -1, -1, -1, 316, 262, - -1, -1, -1, -1, 322, 323, 324, 325, 325, -1, - -1, -1, -1, -1, 277, 278, 279, 334, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, 348, 349, 350, 351, -1, 299, -1, -1, -1, - 358, -1, 360, 361, 362, -1, -1, -1, 273, -1, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, 342, 343, 344, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 475, -1, 477, 478, 479, + 480, 388, 389, 390, -1, 392, -1, -1, 395, -1, + 358, -1, 360, 361, 362, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, 380, 381, 382, 383, 384, 385, 386, - -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 296, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, - 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 60, 61, 62, -1, -1, 410, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 544, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, 33, 472, 473, 474, -1, 38, 322, + 40, 41, 42, 481, 44, -1, -1, 47, 269, -1, + -1, 272, -1, -1, -1, -1, -1, -1, -1, 59, + 60, 61, 62, -1, -1, -1, 410, -1, -1, -1, + -1, 509, 510, -1, 295, 296, -1, -1, -1, 300, + -1, 302, -1, -1, -1, -1, -1, -1, 309, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, 544, 452, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 462, -1, -1, - 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, + 538, 539, 540, 541, 542, 326, 544, -1, 452, -1, + -1, -1, 260, 261, -1, 263, -1, -1, 462, -1, + 341, 465, -1, 123, 123, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, -1, 59, -1, -1, 0, -1, -1, -1, -1, + -1, 424, -1, -1, -1, -1, 429, -1, -1, 432, + 433, -1, -1, 59, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, + -1, 454, 455, 456, 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, 59, -1, -1, -1, 125, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, 527, 528, -1, 530, 531, 532, + 473, 474, 536, 537, 538, 539, 540, 541, 542, -1, + -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, + -1, -1, -1, -1, 59, -1, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, 380, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - 125, 281, 282, 283, 284, -1, 286, 287, 346, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, -1, -1, 306, 365, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, -1, -1, -1, 273, -1, -1, -1, + 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, 294, 296, 297, 298, 299, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + 309, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, 325, 475, -1, 477, + 478, 479, 480, -1, -1, 334, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, + 349, 350, 351, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + -1, 380, 381, 382, 383, 384, 385, 386, -1, -1, + 296, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, @@ -3256,26 +3177,26 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, 33, 472, 473, 474, -1, 38, -1, 40, 41, + 470, 33, 472, 473, 474, -1, 38, 322, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, - 62, -1, -1, 410, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, + 62, -1, -1, -1, 410, -1, -1, -1, -1, 509, + 510, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, 544, 452, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 462, -1, -1, 465, -1, + 540, 541, 542, -1, 544, -1, 452, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 462, -1, -1, 465, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 288, -1, 290, 291, 292, 293, 432, 433, -1, - 297, 298, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 365, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 424, + -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, + 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, + 455, 456, 457, -1, -1, -1, -1, 462, -1, -1, + 465, -1, -1, -1, -1, -1, -1, 472, 473, 474, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, @@ -3284,14 +3205,14 @@ static int yycheck[] = { 4, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, 257, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, - 282, 283, 284, -1, 286, 287, -1, 289, 290, 291, - 292, 293, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 262, -1, -1, -1, 316, -1, -1, -1, 41, -1, + 322, 323, 324, 325, -1, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, + 292, 293, -1, -1, -1, -1, -1, 299, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, -1, -1, -1, 296, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, @@ -3303,34 +3224,34 @@ static int yycheck[] = { 4, 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, 544, 485, 486, -1, 488, 489, 490, -1, - 492, 493, -1, -1, 496, 497, -1, 499, -1, 123, + 542, -1, 544, 452, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 462, -1, -1, 465, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, -1, 432, 433, -1, -1, -1, + -1, 294, -1, -1, -1, -1, -1, -1, 301, -1, + 303, 304, 305, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, - 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, - -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 457, -1, -1, -1, -1, 462, -1, -1, 465, 342, + 343, 344, -1, -1, -1, 472, 473, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + 59, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, 388, 389, 390, -1, 392, + -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 365, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3352,30 +3273,30 @@ static int yycheck[] = { 4, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, 123, -1, 125, - -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, 294, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 410, 411, 412, 413, 414, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, + 291, 292, 293, 432, 433, -1, 297, 298, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, - -1, -1, -1, 462, 323, -1, 465, -1, 327, -1, - -1, 330, 331, 472, 473, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, -1, -1, - -1, -1, -1, -1, 353, -1, -1, 356, 59, -1, - -1, -1, -1, -1, 363, -1, -1, -1, -1, -1, - -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, + -1, -1, -1, 472, 473, 271, -1, -1, -1, -1, + -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, 59, -1, + -1, 297, 298, -1, 365, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, + 346, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, 125, 281, 282, 283, 284, 365, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 316, 257, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, + 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3394,20 +3315,20 @@ static int yycheck[] = { 4, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, 123, -1, 125, -1, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, 294, -1, -1, -1, 0, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, 544, 485, + 486, -1, 488, 489, 490, -1, 492, 493, -1, -1, + 496, 497, -1, 499, -1, 123, -1, 125, -1, 410, + 411, 412, 413, 414, -1, -1, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, - -1, 462, 323, -1, 465, -1, 327, -1, -1, 330, - 331, 472, 473, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, -1, -1, -1, - -1, -1, 353, -1, -1, 356, 59, -1, -1, -1, - -1, -1, 363, -1, -1, -1, -1, -1, -1, -1, - -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, + -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, @@ -3439,25 +3360,25 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, 410, 411, 412, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, + 433, 294, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, - -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 323, -1, 465, -1, 327, -1, -1, 330, 331, 472, + 473, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, -1, -1, -1, -1, -1, -1, + 353, -1, -1, 356, 59, -1, -1, -1, -1, -1, + 363, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, @@ -3483,18 +3404,18 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, 294, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, 456, 457, -1, -1, -1, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 456, 457, -1, -1, -1, -1, 462, 323, -1, + 465, -1, 327, -1, -1, 330, 331, 472, 473, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, -1, -1, -1, -1, -1, -1, 353, -1, + -1, 356, 59, -1, -1, -1, -1, -1, 363, -1, + -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, @@ -3570,88 +3491,194 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 544, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, - -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, + -1, -1, 125, 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, 0, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, 59, -1, - 61, 62, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, 339, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, 123, 429, 125, -1, 432, 433, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, -1, 472, 473, 474, -1, - -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, + 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, + 38, -1, 40, 41, 42, 481, 44, -1, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 60, 61, 62, -1, -1, -1, -1, 452, + -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + -1, 464, -1, 466, 467, -1, 469, 470, -1, -1, + -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, 410, + 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + -1, 432, 433, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, + -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, + -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, 0, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, 40, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, -1, 59, -1, 61, 62, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, + 123, 429, 125, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, + -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, + -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, + -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, 0, + -1, 294, 295, 306, -1, 308, -1, 300, 311, 302, + -1, -1, -1, 316, -1, -1, 309, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 326, 327, -1, 329, 330, 331, 332, + 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, + -1, -1, -1, -1, 347, 358, -1, -1, 59, 352, + -1, 354, -1, -1, -1, -1, -1, -1, -1, 33, + -1, 374, 375, 366, 367, 368, 369, 370, 371, 372, + 373, -1, -1, -1, -1, -1, 379, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 123, -1, 125, -1, 429, -1, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, + -1, 464, 465, 466, -1, -1, 469, 470, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, 481, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, + -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, 0, -1, 294, 295, 306, -1, 308, -1, 300, - 311, 302, -1, -1, -1, 316, -1, -1, 309, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 326, 327, -1, 329, 330, - 331, 332, 333, -1, -1, -1, -1, 338, -1, -1, - 341, -1, -1, -1, -1, -1, 347, 358, -1, -1, - 59, 352, -1, 354, -1, -1, -1, -1, -1, -1, - -1, 33, -1, 374, 375, 366, 367, 368, 369, 370, - 371, 372, 373, -1, -1, -1, -1, -1, 379, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + -1, -1, -1, -1, -1, -1, 270, 271, 272, -1, + 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, 339, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, + 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 123, -1, 125, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, - 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, 544, -1, -1, -1, -1, -1, -1, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 123, -1, 125, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, + 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, + -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, - 272, -1, 0, 275, 276, 277, 278, 279, -1, 281, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, @@ -3689,303 +3716,203 @@ static int yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, - -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 271, -1, -1, 0, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, + 297, 298, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 359, -1, -1, -1, -1, 364, 365, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 123, -1, 125, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, + 467, -1, 469, 470, -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, + -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, + 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, + 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 509, 510, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + 527, 528, 273, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, 544, -1, -1, 273, -1, -1, - -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, 0, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, 322, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 359, 323, 324, 325, -1, 364, 365, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, -1, -1, 0, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, 449, 450, + 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, + -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 544, -1, -1, 273, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, 123, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 61, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, 527, 528, 273, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 359, -1, -1, -1, -1, 364, - 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, - -1, 0, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, - 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, - -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, 464, + 260, 261, -1, 263, 449, 450, 451, 452, -1, 454, + 455, 456, 457, 273, 274, 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, + -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 311, 61, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, 527, 528, 273, 530, 531, 532, -1, 534, + -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, -1, -1, 0, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, - 469, 470, -1, 472, 473, 474, -1, 296, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, -1, -1, -1, -1, 429, + -1, -1, 432, 433, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, + 470, -1, 472, 473, 474, -1, 40, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, 274, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, - 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, - -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, 527, 528, - 273, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, 449, 450, 451, 452, - -1, 454, 455, 456, 457, 273, 274, 460, -1, 462, - -1, 464, 465, 466, 467, -1, 469, 470, -1, 472, - 473, 474, -1, 40, 41, -1, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 311, 61, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - -1, 429, -1, -1, 432, 433, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, -1, 472, 473, 474, -1, 40, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, 61, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, 274, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 59, -1, - -1, 418, 419, 420, 421, 422, 423, 424, -1, -1, - -1, -1, 429, -1, -1, 432, 433, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, 273, 274, 460, -1, 462, -1, 464, 465, 466, - -1, -1, 469, 470, -1, 472, 473, 474, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, -1, 418, 419, 420, 421, - 422, 423, 424, -1, -1, -1, 59, 429, -1, 260, - 432, 433, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, -1, - 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, 322, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, 260, -1, 460, - 263, 462, -1, -1, 465, -1, -1, -1, -1, -1, - 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 59, -1, -1, 418, + 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, + 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, 273, + 274, 460, -1, 462, -1, 464, 465, 466, -1, -1, + 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, + -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, -1, -1, -1, 59, -1, -1, 260, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - 273, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 424, -1, -1, -1, 59, 429, -1, 260, 432, 433, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, 449, 450, 451, 452, -1, + 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, + 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 322, - 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, + 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, @@ -3994,7 +3921,7 @@ static int yycheck[] = { 4, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, 260, -1, 460, -1, 462, + -1, 454, 455, 456, 457, 260, -1, 460, 263, 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4070,516 +3997,559 @@ static int yycheck[] = { 4, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, 260, -1, 460, 263, 462, 59, -1, 465, -1, + 457, 260, -1, 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - 527, 528, 125, 530, 531, 532, -1, 534, 535, 536, + 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, - 429, -1, 0, 432, 433, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, + -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, -1, 472, 473, 474, 44, -1, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, 460, -1, 462, -1, -1, 465, -1, -1, -1, + -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, 322, 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, 527, 528, + -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, 0, -1, -1, -1, - 429, -1, -1, 432, 433, -1, -1, 410, 411, 412, - 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, 432, - 433, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, -1, 472, 473, 474, 449, 450, 451, 452, - -1, -1, -1, 456, 457, 59, -1, -1, -1, 462, - -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, 527, 528, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, 451, 452, -1, 454, 455, 456, 457, 260, + -1, 460, 263, 462, -1, -1, 465, -1, -1, -1, + -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 358, -1, -1, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - -1, 429, -1, -1, 432, 433, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, 38, 322, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, 60, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, -1, -1, 544, -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, 33, 460, -1, 462, -1, - 38, 465, -1, -1, 42, -1, -1, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, + 0, 432, 433, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, 449, 450, + 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + -1, 472, 473, 474, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, + 531, 532, 33, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, + 421, 422, 423, 424, 0, -1, -1, -1, 429, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 451, 452, -1, 454, 455, 456, 457, -1, 0, 460, + -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, + -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + 260, -1, -1, 263, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 273, -1, -1, 527, 528, -1, 530, + 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, 33, -1, -1, -1, -1, - 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, 424, -1, -1, 358, -1, 429, + -1, -1, 432, 433, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, 449, + 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, + 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, + -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, + 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, + 540, 541, 542, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, 415, 416, 417, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 33, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, + -1, -1, -1, 429, 91, 33, 432, 433, -1, -1, + 38, -1, -1, 544, 42, -1, -1, -1, 410, 411, + 412, 413, 414, 449, 450, 451, 452, -1, 454, 455, + 456, 457, 60, -1, 460, -1, 462, -1, -1, 465, + 432, 433, -1, -1, -1, -1, 472, 473, 474, -1, + -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, + 452, -1, -1, 91, 456, 457, -1, -1, -1, -1, + 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, -1, 509, 510, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, -1, 91, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, 323, 324, 325, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 358, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, 33, -1, + -1, -1, -1, 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, 415, 416, 417, + -1, -1, 260, 261, -1, 263, 59, 415, 416, 417, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, 33, 306, -1, - 308, -1, 38, -1, -1, -1, 42, -1, -1, -1, + 33, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, 544, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, 415, 416, 417, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, + 33, 306, -1, 308, -1, 38, -1, -1, -1, 42, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 374, 375, 271, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, 271, 322, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, 544, 290, 291, 292, + 283, 284, -1, 286, 287, 33, 544, 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, -1, -1, -1, - 33, -1, -1, 306, -1, 308, -1, 415, 416, 417, + 415, 416, 417, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, - -1, -1, -1, 376, 377, 378, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 410, -1, 412, + 413, 414, -1, 366, 367, 368, 369, -1, -1, 372, + -1, 424, -1, 376, 377, 378, 429, -1, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, + -1, 454, 455, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, 474, -1, -1, -1, 268, -1, -1, 271, 544, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 509, 510, -1, -1, + -1, -1, 91, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, + 323, 324, 325, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, 544, 290, 291, 292, 293, 294, -1, -1, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, 415, 416, 417, 323, 324, 325, -1, 327, + -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + 358, -1, -1, -1, -1, -1, -1, -1, 366, 367, + 368, 369, -1, -1, 372, -1, -1, -1, 376, 377, + 378, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 91, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, 544, -1, -1, 275, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + 359, -1, -1, 481, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 286, 287, -1, -1, 290, 291, 292, 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, 91, 481, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, 415, 416, 417, -1, + -1, -1, -1, -1, -1, -1, 544, 323, 324, 325, + -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, 372, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, 91, -1, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, 415, + 416, 417, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, 271, -1, - -1, 544, 275, 276, 277, 278, 279, -1, 281, 282, + -1, -1, 358, 359, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, 294, -1, -1, 297, 298, -1, -1, -1, -1, + 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, 415, - 416, 417, -1, -1, -1, -1, -1, -1, -1, 91, - 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + 416, 417, -1, -1, -1, -1, -1, -1, -1, 33, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, 91, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, + -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, -1, -1, 366, 367, 368, 369, -1, -1, 372, - -1, -1, -1, 376, 377, 378, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 91, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 33, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, 33, -1, + -1, 91, -1, -1, -1, -1, 41, -1, -1, -1, + -1, 544, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, 358, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, 544, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 296, 297, 298, -1, 91, -1, -1, -1, + -1, 33, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 359, -1, -1, 481, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, 91, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, 415, 416, 417, 306, 33, 308, -1, -1, -1, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, 327, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, 452, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 358, -1, 290, 291, - 292, 293, -1, 91, 296, 297, 298, -1, -1, -1, - 372, -1, -1, -1, 306, 33, 308, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 359, -1, -1, - 544, 260, 261, 91, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + -1, 544, 271, -1, 358, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, 33, 306, -1, 308, - -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, 358, - -1, -1, 260, 261, 91, 263, -1, -1, -1, -1, - 268, -1, 544, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, 415, 416, 417, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, 544, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 358, 33, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 415, 416, 417, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, 544, -1, -1, 275, 276, + -1, 290, 291, 292, 293, -1, 295, 40, 297, 298, + -1, 300, -1, 302, -1, -1, 33, 306, -1, 308, + 309, -1, -1, -1, -1, -1, 59, 60, -1, -1, + -1, -1, -1, -1, 323, 324, 325, 326, -1, -1, + -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, + -1, 271, 341, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, 358, + 290, 291, 292, 293, 91, -1, -1, 297, 298, -1, + -1, -1, -1, -1, 544, -1, 306, -1, 308, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, 271, -1, -1, -1, + -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, + 59, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, 358, -1, + -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, 271, + 544, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, 125, -1, 290, 291, + 292, 293, -1, 358, -1, 297, 298, -1, -1, -1, + -1, 41, -1, -1, 306, -1, 308, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 323, 324, 325, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 271, 544, 358, -1, -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, 40, -1, -1, -1, -1, 306, - -1, 308, 33, -1, -1, -1, -1, 415, 416, 417, - 41, -1, -1, 59, 60, 271, 323, 324, 325, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, 295, - -1, 297, 298, -1, 300, -1, 302, -1, -1, -1, - 306, 358, 308, 309, -1, -1, -1, 33, -1, -1, - 91, -1, -1, -1, -1, -1, 544, 323, 324, 325, - 326, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, -1, 415, 416, - 417, -1, -1, -1, -1, 91, -1, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 544, -1, 290, 291, - 292, 293, -1, 295, -1, 297, 298, -1, 300, -1, - 302, -1, -1, -1, 306, -1, 308, 309, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, 326, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - 47, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, -1, 59, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, - 271, -1, -1, -1, -1, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, 123, 308, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, - -1, -1, 323, 324, 325, 271, -1, -1, -1, -1, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, 358, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, 41, -1, -1, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 358, 59, -1, -1, 432, 433, -1, -1, - -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, -1, -1, 260, 460, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, 274, 474, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, -1, 123, -1, 125, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, -1, 544, + 123, 414, 125, 322, -1, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, -1, -1, 41, -1, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 449, 450, 451, 452, + 260, -1, -1, 263, -1, -1, -1, 460, -1, -1, + -1, -1, -1, 273, 274, -1, -1, -1, -1, -1, + -1, 474, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 544, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, -1, -1, -1, -1, 414, 544, -1, - -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, -1, -1, -1, 260, 432, 433, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, 123, - -1, 125, 449, 450, 451, 452, -1, -1, -1, -1, - -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, - -1, -1, 47, -1, -1, -1, -1, 474, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 410, -1, 412, 413, 414, 509, 510, 511, 123, + -1, 125, -1, -1, -1, 424, -1, -1, -1, -1, + 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, + -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, + 449, 450, 451, 452, -1, 454, 455, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, 544, -1, -1, + 273, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 509, 510, -1, -1, 414, -1, -1, -1, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, + -1, -1, 432, 433, -1, -1, 47, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, -1, 59, 449, + 450, 451, 452, -1, -1, -1, 260, -1, -1, 263, + 460, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, -1, 509, + 510, 414, 123, -1, 125, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, -1, -1, -1, -1, -1, 536, 537, 538, 539, + 540, 541, 542, -1, -1, 59, 449, 450, 451, 452, + -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 509, 510, -1, 123, + 414, 125, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, + -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, + -1, -1, -1, 59, -1, 449, 450, 451, 452, 260, + -1, -1, 263, -1, -1, -1, 460, -1, -1, -1, + -1, -1, 273, 274, -1, -1, -1, -1, -1, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, - 537, 538, 539, 540, 541, 542, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, 59, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, 260, -1, 414, 263, - -1, -1, 418, 419, 420, 421, 422, 423, -1, 273, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, -1, -1, -1, 509, 510, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, -1, -1, - -1, 123, -1, 125, 460, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + 59, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, + -1, -1, -1, 414, 123, -1, 125, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 449, 450, + 451, 452, -1, -1, 260, -1, -1, 263, -1, 460, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, 391, -1, 59, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + 404, 405, 406, 407, 408, 409, -1, -1, 509, 510, + 414, 123, -1, 125, 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, 449, 450, 451, 452, -1, - -1, 273, -1, 123, -1, 125, 460, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, + 541, 542, -1, -1, -1, 449, 450, 451, 452, -1, + -1, 260, -1, -1, 263, -1, 460, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 509, 510, -1, -1, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, -1, -1, -1, -1, 432, 433, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, 509, 510, -1, 414, -1, + -1, 59, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, -1, 123, -1, 125, 460, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, + -1, -1, -1, 449, 450, 451, 452, -1, 260, -1, + -1, 263, -1, -1, 460, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, -1, -1, 509, 510, 414, -1, -1, 59, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, + 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, + 449, 450, 451, 452, -1, -1, -1, -1, -1, -1, + -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - 260, -1, 414, 263, -1, -1, 418, 419, 420, 421, - 422, 423, -1, 273, 509, 510, -1, -1, -1, -1, - 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, 536, 537, 538, 539, 540, 541, 542, 460, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + 509, 510, 414, -1, -1, 59, 418, 419, 420, 421, + 422, 423, 260, -1, -1, 263, -1, -1, -1, -1, + 432, 433, -1, -1, -1, 273, -1, 536, 537, 538, + 539, 540, 541, 542, -1, -1, -1, 449, 450, 451, + 452, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, 260, + -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, - 542, -1, -1, 59, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - -1, -1, -1, -1, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, - -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, -1, -1, -1, 123, -1, 125, - 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, -1, -1, -1, -1, 414, 123, -1, 125, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 509, - 510, 260, -1, 414, 263, -1, -1, 418, 419, 420, - 421, 422, 423, -1, 273, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, -1, 123, -1, 125, -1, -1, 460, + 59, 449, 450, 451, 452, -1, 260, -1, -1, 263, + -1, -1, 460, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, + -1, 509, 510, 414, 123, -1, 125, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, + -1, 432, 433, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, 449, 450, + 451, 452, -1, -1, 260, -1, -1, 263, -1, 460, + -1, 59, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, -1, -1, 509, 510, + 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, -1, -1, -1, 125, 432, 433, -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, -1, -1, -1, -1, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 449, 450, 451, 452, 273, -1, -1, -1, -1, -1, - -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, -1, -1, -1, 414, 123, - -1, 125, 418, 419, 420, 421, 422, 423, -1, -1, - 509, 510, -1, -1, -1, -1, 432, 433, -1, -1, + 541, 542, -1, -1, -1, 449, 450, 451, 452, -1, + -1, 260, -1, -1, 263, -1, 460, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 449, 450, 451, 452, 536, 537, 538, - 539, 540, 541, 542, 460, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, -1, 509, 510, -1, 414, -1, + -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, + -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, + -1, 59, -1, 449, 450, 451, 452, -1, -1, -1, + -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, -1, -1, 509, 510, 414, 123, -1, 125, 418, + 409, 273, -1, 509, 510, 414, -1, 125, -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, 59, -1, -1, -1, -1, + -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - 449, 450, 451, 452, -1, -1, 260, -1, -1, 263, - -1, 460, -1, -1, 59, -1, -1, -1, -1, 273, + 449, 450, 451, 452, -1, -1, -1, -1, -1, -1, + -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 59, -1, -1, -1, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, 449, 450, 451, 452, 273, - -1, -1, -1, -1, -1, -1, 460, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, 125, -1, -1, -1, -1, -1, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, -1, -1, 509, 510, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, -1, -1, 125, -1, 432, 433, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, 449, 450, 451, 452, -1, -1, -1, -1, - -1, -1, -1, 460, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, - 414, -1, 59, -1, 418, 419, 420, 421, 422, 423, - -1, -1, 509, 510, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, 410, 411, 412, 413, 414, - 273, -1, -1, -1, -1, 449, 450, 451, 452, 536, - 537, 538, 539, 540, 541, 542, 460, 432, 433, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 474, -1, -1, -1, 449, 450, 451, 452, 125, -1, - -1, 456, 457, -1, -1, -1, -1, 462, -1, 322, - 465, 273, -1, -1, -1, -1, -1, 472, 473, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, -1, -1, 123, 410, -1, 412, - 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 424, -1, -1, -1, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, -1, -1, -1, 273, -1, 410, -1, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 410, 411, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, + 539, 540, 541, 542, 432, 433, -1, -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, - -1, 474, 424, -1, -1, -1, -1, 429, -1, -1, - 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, -1, 322, 509, 510, -1, -1, + -1, 449, 450, 451, 452, 273, -1, -1, 456, 457, + 432, 433, -1, -1, 462, -1, -1, 465, -1, -1, + -1, -1, -1, -1, 472, 473, -1, 449, 450, 451, + 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, + 462, 123, -1, 465, -1, -1, -1, -1, -1, -1, + 472, 473, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, - 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 271, -1, -1, 509, 510, 276, - 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, - 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, - -1, -1, -1, -1, 536, 537, 538, 539, 540, 541, - 542, -1, -1, 410, -1, 412, 413, 414, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 424, -1, -1, - -1, -1, 429, -1, -1, 432, 433, -1, 335, -1, - 337, -1, -1, -1, -1, 342, 257, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, -1, - 271, 358, -1, -1, -1, 276, 277, -1, 279, 280, - 281, 282, 283, 284, -1, 286, 287, 474, 289, 290, - 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, + 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, + 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, + 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, + 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, - -1, 342, -1, -1, -1, -1, -1, -1, -1, 536, - 537, 538, 539, 540, 541, 542, -1, 358, -1, -1, + -1, -1, 410, -1, 412, 413, 414, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, + -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, + -1, 449, 450, 451, 452, -1, 454, 455, -1, 271, + -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, + 282, 283, 284, 257, 286, 287, 474, 289, 290, 291, + 292, 293, -1, -1, -1, -1, -1, 271, -1, -1, + -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, + 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, + -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, + 342, -1, -1, -1, -1, -1, -1, -1, 536, 537, + 538, 539, 540, 541, 542, -1, 358, -1, -1, -1, + -1, 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 482, -1, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, -1, -1, -1, 504, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 482, -1, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - -1, -1, -1, 504, + 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, -1, + -1, -1, 504, -1, -1, -1, -1, -1, 482, -1, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, -1, -1, -1, + 504, }; static int yyctable[] = { -1, - 239, 561, -1, 441, 794, -1, 291, 724, -1, 292, - 724, -1, 293, 724, -1, 295, 724, -1, 296, 724, - -1, 297, 724, -1, 298, 724, -1, 530, 745, -1, + 239, 558, -1, 441, 791, -1, 291, 721, -1, 292, + 721, -1, 293, 721, -1, 295, 721, -1, 296, 721, + -1, 297, 721, -1, 298, 721, -1, 530, 742, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 792, 317, -1, 860, 796, -1, - 67, 569, -1, 68, 569, -1, 69, 569, -1, 27, + -1, 103, 495, -1, 789, 317, -1, 857, 793, -1, + 67, 566, -1, 68, 566, -1, 69, 566, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1145, 629, -1, 67, 570, -1, 68, - 570, -1, 69, 570, -1, 1162, 37, -1, 1292, 800, - -1, 1294, 798, -1, 1306, 613, -1, 1512, 802, -1, - 1147, 576, -1, 1148, 576, -1, + 34, 78, -1, 1140, 626, -1, 67, 567, -1, 68, + 567, -1, 69, 567, -1, 1157, 37, -1, 1287, 797, + -1, 1289, 795, -1, 1301, 610, -1, 1507, 799, -1, + 1142, 573, -1, 1143, 573, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, @@ -4598,7 +4568,7 @@ static int yyastable[] = { 0, 319, 9, 10, 336, 336, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 160, 161, 162, 289, 299, 307, 311, 315, 340, + 104, 160, 161, 162, 289, 299, 308, 311, 315, 340, 365, 383, 387, 389, 406, 407, 462, 290, 311, 311, 311, 311, 7, 12, 343, 344, 343, 343, 290, 290, 428, 290, 290, 290, 290, 343, 390, 60, 453, 391, @@ -4611,7 +4581,7 @@ static int yyastable[] = { 0, 76, 311, 311, 340, 26, 27, 28, 29, 383, 51, 383, 24, 25, 34, 15, 17, 340, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 307, 354, 218, 305, 311, 389, 307, 311, 319, 308, + 308, 354, 218, 305, 311, 389, 308, 311, 319, 307, 105, 106, 107, 136, 299, 301, 305, 306, 136, 136, 136, 136, 317, 388, 383, 449, 348, 296, 12, 296, 296, 425, 310, 141, 142, 143, 144, 145, 146, 147, @@ -4634,7 +4604,7 @@ static int yyastable[] = { 0, 119, 120, 299, 311, 313, 384, 290, 295, 348, 300, 167, 402, 311, 221, 136, 383, 25, 311, 384, 295, 295, 26, 27, 28, 29, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 307, 311, 319, 311, 300, + 295, 295, 295, 295, 295, 308, 311, 319, 311, 300, 300, 300, 311, 319, 311, 295, 295, 311, 20, 300, 319, 341, 342, 340, 367, 368, 311, 311, 311, 311, 340, 449, 291, 67, 155, 169, 174, 199, 200, 219, @@ -4642,7 +4612,7 @@ static int yyastable[] = { 0, 446, 448, 456, 457, 459, 461, 291, 319, 319, 319, 299, 110, 288, 299, 103, 384, 304, 312, 319, 319, 336, 11, 31, 32, 295, 335, 336, 312, 319, 388, - 15, 17, 340, 389, 307, 384, 87, 348, 488, 317, + 15, 17, 340, 389, 385, 384, 87, 348, 488, 317, 385, 295, 343, 198, 295, 428, 55, 57, 58, 59, 474, 475, 477, 479, 480, 481, 482, 312, 319, 471, 209, 211, 214, 215, 291, 444, 445, 448, 491, 492, @@ -4661,97 +4631,96 @@ static int yyastable[] = { 0, 293, 305, 110, 394, 395, 319, 319, 404, 110, 288, 103, 384, 290, 428, 290, 290, 290, 304, 319, 299, 311, 299, 311, 319, 317, 19, 295, 295, 311, 384, - 307, 312, 319, 295, 343, 340, 312, 316, 319, 296, - 295, 20, 323, 337, 338, 339, 291, 384, 474, 56, - 471, 478, 478, 478, 478, 312, 319, 471, 62, 62, - 213, 298, 305, 319, 379, 298, 348, 343, 343, 298, - 298, 343, 343, 295, 216, 319, 311, 216, 311, 216, - 319, 39, 51, 52, 69, 119, 289, 292, 303, 328, - 329, 381, 293, 319, 348, 396, 299, 340, 348, 296, - 300, 296, 296, 296, 296, 296, 486, 296, 304, 8, - 293, 319, 2, 16, 21, 22, 24, 25, 26, 27, - 28, 29, 31, 32, 34, 35, 36, 37, 38, 80, - 82, 87, 103, 136, 227, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 249, 290, 345, 346, 466, 63, 314, 300, - 298, 296, 293, 372, 8, 293, 291, 298, 8, 298, - 299, 367, 295, 295, 311, 313, 291, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 42, 43, 110, 352, 353, 375, 448, 488, 28, 29, - 63, 203, 204, 206, 343, 311, 311, 296, 296, 319, - 319, 319, 336, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 315, 296, 296, 319, 341, - 340, 295, 384, 72, 117, 311, 384, 72, 117, 317, - 311, 299, 311, 299, 311, 317, 19, 425, 291, 458, - 460, 440, 319, 300, 319, 319, 293, 300, 340, 313, - 319, 336, 19, 312, 319, 348, 296, 295, 293, 296, - 293, 337, 340, 296, 293, 312, 319, 312, 319, 319, - 295, 304, 295, 296, 296, 295, 295, 296, 296, 319, - 315, 311, 63, 311, 296, 295, 39, 330, 331, 329, - 295, 311, 371, 302, 384, 296, 136, 396, 39, 46, - 48, 49, 50, 87, 88, 89, 133, 134, 135, 137, - 140, 296, 251, 252, 253, 319, 226, 350, 296, 324, - 324, 324, 324, 324, 324, 319, 319, 296, 25, 26, - 27, 28, 29, 295, 332, 243, 235, 247, 295, 228, - 248, 22, 332, 332, 2, 21, 22, 24, 25, 26, - 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, - 230, 231, 233, 234, 235, 237, 238, 241, 242, 244, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 305, 325, 299, 305, 296, 344, - 312, 298, 347, 28, 319, 327, 348, 349, 383, 397, - 291, 298, 377, 290, 290, 295, 348, 319, 302, 337, - 337, 334, 366, 295, 299, 295, 299, 26, 27, 28, - 29, 295, 299, 295, 299, 295, 299, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 299, 104, 109, 378, - 448, 343, 312, 296, 296, 296, 296, 296, 337, 197, - 406, 311, 340, 319, 319, 293, 340, 313, 291, 170, - 171, 172, 173, 291, 433, 445, 446, 448, 463, 173, - 175, 176, 291, 433, 445, 446, 448, 464, 291, 136, - 300, 300, 384, 347, 384, 296, 296, 311, 296, 337, - 316, 316, 296, 350, 339, 62, 62, 379, 296, 319, - 319, 295, 331, 384, 369, 370, 384, 293, 380, 311, - 348, 296, 295, 304, 304, 300, 300, 300, 300, 295, - 313, 8, 293, 8, 250, 348, 299, 299, 25, 26, - 27, 28, 29, 271, 293, 299, 306, 292, 300, 319, - 291, 22, 23, 24, 26, 27, 28, 29, 31, 32, - 35, 36, 37, 38, 44, 348, 351, 353, 295, 295, - 290, 375, 372, 300, 296, 296, 295, 295, 327, 319, - 319, 319, 295, 299, 295, 299, 295, 299, 295, 299, - 319, 319, 319, 319, 319, 319, 336, 319, 319, 335, - 319, 335, 336, 319, 319, 319, 319, 319, 319, 319, - 336, 319, 352, 319, 8, 44, 319, 44, 51, 383, - 319, 42, 91, 110, 365, 373, 296, 402, 296, 311, - 300, 300, 384, 384, 256, 388, 388, 388, 388, 388, - 388, 388, 312, 293, 19, 296, 312, 312, 319, 304, - 296, 319, 311, 296, 293, 381, 380, 396, 319, 138, - 139, 138, 139, 346, 382, 319, 298, 293, 319, 319, - 348, 300, 319, 292, 300, 26, 27, 28, 29, 319, - 26, 27, 28, 319, 375, 291, 291, 302, 337, 337, - 296, 300, 296, 300, 319, 319, 319, 319, 319, 319, - 336, 319, 296, 300, 296, 300, 296, 300, 296, 300, - 296, 296, 300, 296, 296, 300, 296, 300, 296, 300, - 296, 300, 296, 300, 296, 300, 296, 296, 300, 296, - 8, 296, 300, 51, 383, 299, 311, 295, 293, 19, - 317, 384, 313, 379, 296, 380, 384, 296, 296, 296, - 295, 8, 319, 348, 300, 300, 300, 319, 296, 304, - 304, 304, 296, 291, 296, 296, 295, 295, 296, 300, - 296, 300, 296, 300, 296, 300, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 296, 295, - 8, 300, 298, 337, 384, 313, 340, 301, 333, 334, - 304, 337, 296, 293, 296, 345, 300, 319, 319, 319, - 361, 358, 295, 295, 295, 295, 357, 358, 359, 360, - 355, 356, 357, 358, 359, 360, 364, 362, 363, 352, - 296, 333, 384, 295, 379, 296, 348, 296, 296, 296, - 296, 327, 296, 319, 357, 358, 359, 360, 296, 319, - 296, 296, 319, 296, 336, 296, 319, 335, 296, 335, - 336, 296, 296, 296, 296, 296, 352, 8, 44, 296, - 44, 51, 296, 383, 347, 295, 19, 337, 393, 293, - 296, 296, 296, 296, 8, 337, 313, 296, 39, 54, - 70, 79, 93, 94, 95, 96, 125, 126, 127, 128, - 129, 130, 131, 290, 348, 296, 295, 295, 296, 256, - 337, 319, 103, 296, 296, 317, 340, 384, 19, 313, - 333, 295, 337, 296, + 295, 343, 340, 312, 316, 319, 296, 295, 20, 323, + 337, 338, 339, 291, 384, 474, 56, 471, 478, 478, + 478, 478, 312, 319, 471, 62, 62, 213, 298, 305, + 319, 379, 298, 348, 343, 343, 298, 298, 343, 343, + 295, 216, 319, 311, 216, 311, 216, 319, 39, 51, + 52, 69, 119, 289, 292, 303, 328, 329, 381, 293, + 319, 348, 396, 299, 340, 348, 296, 300, 296, 296, + 296, 296, 296, 486, 296, 304, 8, 293, 319, 2, + 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, + 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, + 136, 227, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 249, + 290, 345, 346, 466, 63, 314, 300, 298, 296, 293, + 372, 8, 293, 291, 298, 8, 298, 299, 367, 295, + 295, 311, 313, 291, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 35, 36, 37, 38, 42, 43, 110, + 352, 353, 375, 448, 488, 28, 29, 63, 203, 204, + 206, 343, 311, 311, 296, 296, 319, 319, 319, 336, + 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, + 296, 296, 315, 296, 296, 319, 341, 340, 295, 384, + 72, 117, 311, 384, 72, 117, 317, 311, 299, 311, + 299, 311, 317, 19, 425, 291, 458, 460, 440, 319, + 300, 319, 319, 293, 300, 340, 313, 319, 336, 19, + 348, 296, 295, 293, 296, 293, 337, 340, 296, 293, + 312, 319, 312, 319, 319, 295, 304, 295, 296, 296, + 295, 295, 296, 296, 319, 315, 311, 63, 311, 296, + 295, 39, 330, 331, 329, 295, 311, 371, 302, 384, + 296, 136, 396, 39, 46, 48, 49, 50, 87, 88, + 89, 133, 134, 135, 137, 140, 296, 251, 252, 253, + 319, 226, 350, 296, 324, 324, 324, 324, 324, 324, + 319, 319, 296, 25, 26, 27, 28, 29, 295, 332, + 243, 235, 247, 295, 228, 248, 22, 332, 332, 2, + 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, + 34, 35, 36, 37, 38, 230, 231, 233, 234, 235, + 237, 238, 241, 242, 244, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 305, + 325, 299, 305, 296, 344, 312, 298, 347, 28, 319, + 327, 348, 349, 383, 397, 291, 298, 377, 290, 290, + 295, 348, 319, 302, 337, 337, 334, 366, 295, 299, + 295, 299, 26, 27, 28, 29, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, + 295, 299, 104, 109, 378, 448, 343, 312, 296, 296, + 296, 296, 296, 337, 197, 406, 311, 340, 319, 319, + 293, 340, 313, 291, 170, 171, 172, 173, 291, 433, + 445, 446, 448, 463, 173, 175, 176, 291, 433, 445, + 446, 448, 464, 291, 136, 300, 300, 384, 347, 384, + 296, 296, 311, 296, 337, 316, 316, 296, 350, 339, + 62, 62, 379, 296, 319, 319, 295, 331, 384, 369, + 370, 384, 293, 380, 311, 348, 296, 295, 304, 304, + 300, 300, 300, 300, 295, 313, 8, 293, 8, 250, + 348, 299, 299, 25, 26, 27, 28, 29, 271, 293, + 299, 306, 292, 300, 319, 291, 22, 23, 24, 26, + 27, 28, 29, 31, 32, 35, 36, 37, 38, 44, + 348, 351, 353, 295, 295, 290, 375, 372, 300, 296, + 296, 295, 295, 327, 319, 319, 319, 295, 299, 295, + 299, 295, 299, 295, 299, 319, 319, 319, 319, 319, + 319, 336, 319, 319, 335, 319, 335, 336, 319, 319, + 319, 319, 319, 319, 319, 336, 319, 352, 319, 8, + 44, 319, 44, 51, 383, 319, 42, 91, 110, 365, + 373, 296, 402, 296, 311, 300, 300, 384, 384, 256, + 388, 388, 388, 388, 388, 388, 388, 312, 293, 19, + 296, 312, 312, 319, 304, 296, 319, 311, 296, 293, + 381, 380, 396, 319, 138, 139, 138, 139, 346, 382, + 319, 298, 293, 319, 319, 348, 300, 319, 292, 300, + 26, 27, 28, 29, 319, 26, 27, 28, 319, 375, + 291, 291, 302, 337, 337, 296, 300, 296, 300, 319, + 319, 319, 319, 319, 319, 336, 319, 296, 300, 296, + 300, 296, 300, 296, 300, 296, 296, 300, 296, 296, + 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, + 300, 296, 296, 300, 296, 8, 296, 300, 51, 383, + 299, 311, 295, 293, 19, 317, 384, 313, 379, 296, + 380, 384, 296, 296, 296, 295, 8, 319, 348, 300, + 300, 300, 319, 296, 304, 304, 304, 296, 291, 296, + 296, 295, 295, 296, 300, 296, 300, 296, 300, 296, + 300, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 296, 295, 8, 300, 298, 337, 384, + 313, 340, 301, 333, 334, 304, 337, 296, 293, 296, + 345, 300, 319, 319, 319, 361, 358, 295, 295, 295, + 295, 357, 358, 359, 360, 355, 356, 357, 358, 359, + 360, 364, 362, 363, 352, 296, 333, 384, 295, 379, + 296, 348, 296, 296, 296, 296, 327, 296, 319, 357, + 358, 359, 360, 296, 319, 296, 296, 319, 296, 336, + 296, 319, 335, 296, 335, 336, 296, 296, 296, 296, + 296, 352, 8, 44, 296, 44, 51, 296, 383, 347, + 295, 19, 337, 393, 293, 296, 296, 296, 296, 8, + 337, 313, 296, 39, 54, 70, 79, 93, 94, 95, + 96, 125, 126, 127, 128, 129, 130, 131, 290, 348, + 296, 295, 295, 296, 256, 337, 319, 103, 296, 296, + 317, 340, 384, 19, 313, 333, 295, 337, 296, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -5329,10 +5298,7 @@ static const char *yyrule[] = { "instr : instr_none", "instr : instr_var int32", "instr : instr_var id", -"instr : instr_tvar '!' int32", -"instr : instr_tvar '!' id", -"instr : instr_tvar '!' '!' int32", -"instr : instr_tvar '!' '!' id", +"instr : instr_tvar ownerType", "instr : instr_i int32", "instr : instr_i8 int64", "instr : instr_r float64", @@ -5997,11 +5963,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2155 "asmparse.y" +#line 2157 "asmparse.y" #include "grammar_after.cpp" -#line 6005 "asmparse.cpp.tab.c" +#line 5971 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6454,13 +6420,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6458 "asmparse.cpp.tab.c" +#line 6424 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6464 "asmparse.cpp.tab.c" +#line 6430 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6469,31 +6435,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6473 "asmparse.cpp.tab.c" +#line 6439 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6479 "asmparse.cpp.tab.c" +#line 6445 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6485 "asmparse.cpp.tab.c" +#line 6451 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6491 "asmparse.cpp.tab.c" +#line 6457 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6497 "asmparse.cpp.tab.c" +#line 6463 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6508,13 +6474,13 @@ case 19: #pragma warning(pop) #endif } -#line 6512 "asmparse.cpp.tab.c" +#line 6478 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6518 "asmparse.cpp.tab.c" +#line 6484 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6522,7 +6488,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6526 "asmparse.cpp.tab.c" +#line 6492 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6530,44 +6496,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6534 "asmparse.cpp.tab.c" +#line 6500 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6540 "asmparse.cpp.tab.c" +#line 6506 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6546 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6552 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6558 "asmparse.cpp.tab.c" +#line 6524 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6564 "asmparse.cpp.tab.c" +#line 6530 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6571 "asmparse.cpp.tab.c" +#line 6537 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6575,121 +6541,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6579 "asmparse.cpp.tab.c" +#line 6545 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6585 "asmparse.cpp.tab.c" +#line 6551 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6591 "asmparse.cpp.tab.c" +#line 6557 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6597 "asmparse.cpp.tab.c" +#line 6563 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6603 "asmparse.cpp.tab.c" +#line 6569 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6609 "asmparse.cpp.tab.c" +#line 6575 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6615 "asmparse.cpp.tab.c" +#line 6581 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6621 "asmparse.cpp.tab.c" +#line 6587 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6627 "asmparse.cpp.tab.c" +#line 6593 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6633 "asmparse.cpp.tab.c" +#line 6599 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6639 "asmparse.cpp.tab.c" +#line 6605 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6645 "asmparse.cpp.tab.c" +#line 6611 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6651 "asmparse.cpp.tab.c" +#line 6617 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6657 "asmparse.cpp.tab.c" +#line 6623 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6663 "asmparse.cpp.tab.c" +#line 6629 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6669 "asmparse.cpp.tab.c" +#line 6635 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6675 "asmparse.cpp.tab.c" +#line 6641 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6681 "asmparse.cpp.tab.c" +#line 6647 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6687 "asmparse.cpp.tab.c" +#line 6653 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6693 "asmparse.cpp.tab.c" +#line 6659 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6697,7 +6663,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6701 "asmparse.cpp.tab.c" +#line 6667 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6705,13 +6671,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6709 "asmparse.cpp.tab.c" +#line 6675 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6715 "asmparse.cpp.tab.c" +#line 6681 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6720,73 +6686,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6724 "asmparse.cpp.tab.c" +#line 6690 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6730 "asmparse.cpp.tab.c" +#line 6696 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6736 "asmparse.cpp.tab.c" +#line 6702 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6742 "asmparse.cpp.tab.c" +#line 6708 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6748 "asmparse.cpp.tab.c" +#line 6714 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6754 "asmparse.cpp.tab.c" +#line 6720 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6760 "asmparse.cpp.tab.c" +#line 6726 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6766 "asmparse.cpp.tab.c" +#line 6732 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6772 "asmparse.cpp.tab.c" +#line 6738 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6778 "asmparse.cpp.tab.c" +#line 6744 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6784 "asmparse.cpp.tab.c" +#line 6750 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6790 "asmparse.cpp.tab.c" +#line 6756 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6794,25 +6760,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6798 "asmparse.cpp.tab.c" +#line 6764 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6804 "asmparse.cpp.tab.c" +#line 6770 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6810 "asmparse.cpp.tab.c" +#line 6776 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6816 "asmparse.cpp.tab.c" +#line 6782 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6821,32 +6787,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6825 "asmparse.cpp.tab.c" +#line 6791 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6831 "asmparse.cpp.tab.c" +#line 6797 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6838 "asmparse.cpp.tab.c" +#line 6804 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6844 "asmparse.cpp.tab.c" +#line 6810 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6850 "asmparse.cpp.tab.c" +#line 6816 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6856,25 +6822,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6860 "asmparse.cpp.tab.c" +#line 6826 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6866 "asmparse.cpp.tab.c" +#line 6832 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6872 "asmparse.cpp.tab.c" +#line 6838 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6878 "asmparse.cpp.tab.c" +#line 6844 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6883,13 +6849,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6887 "asmparse.cpp.tab.c" +#line 6853 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6893 "asmparse.cpp.tab.c" +#line 6859 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6900,57 +6866,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6904 "asmparse.cpp.tab.c" +#line 6870 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6910 "asmparse.cpp.tab.c" +#line 6876 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6916 "asmparse.cpp.tab.c" +#line 6882 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6922 "asmparse.cpp.tab.c" +#line 6888 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6929 "asmparse.cpp.tab.c" +#line 6895 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6936 "asmparse.cpp.tab.c" +#line 6902 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6942 "asmparse.cpp.tab.c" +#line 6908 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6948 "asmparse.cpp.tab.c" +#line 6914 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6954 "asmparse.cpp.tab.c" +#line 6920 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6959,74 +6925,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6963 "asmparse.cpp.tab.c" +#line 6929 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6970 "asmparse.cpp.tab.c" +#line 6936 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6976 "asmparse.cpp.tab.c" +#line 6942 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6982 "asmparse.cpp.tab.c" +#line 6948 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6988 "asmparse.cpp.tab.c" +#line 6954 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6994 "asmparse.cpp.tab.c" +#line 6960 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 7000 "asmparse.cpp.tab.c" +#line 6966 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 7006 "asmparse.cpp.tab.c" +#line 6972 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 7012 "asmparse.cpp.tab.c" +#line 6978 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7018 "asmparse.cpp.tab.c" +#line 6984 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 7024 "asmparse.cpp.tab.c" +#line 6990 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 7030 "asmparse.cpp.tab.c" +#line 6996 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -7036,355 +7002,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 7040 "asmparse.cpp.tab.c" +#line 7006 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 7046 "asmparse.cpp.tab.c" +#line 7012 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 7052 "asmparse.cpp.tab.c" +#line 7018 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 7058 "asmparse.cpp.tab.c" +#line 7024 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 7064 "asmparse.cpp.tab.c" +#line 7030 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 7070 "asmparse.cpp.tab.c" +#line 7036 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 7076 "asmparse.cpp.tab.c" +#line 7042 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 7082 "asmparse.cpp.tab.c" +#line 7048 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 7088 "asmparse.cpp.tab.c" +#line 7054 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 7094 "asmparse.cpp.tab.c" +#line 7060 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 7100 "asmparse.cpp.tab.c" +#line 7066 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 7106 "asmparse.cpp.tab.c" +#line 7072 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 7112 "asmparse.cpp.tab.c" +#line 7078 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 7118 "asmparse.cpp.tab.c" +#line 7084 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 7124 "asmparse.cpp.tab.c" +#line 7090 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 7130 "asmparse.cpp.tab.c" +#line 7096 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 7136 "asmparse.cpp.tab.c" +#line 7102 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 7142 "asmparse.cpp.tab.c" +#line 7108 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 7148 "asmparse.cpp.tab.c" +#line 7114 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 7154 "asmparse.cpp.tab.c" +#line 7120 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 7160 "asmparse.cpp.tab.c" +#line 7126 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 7166 "asmparse.cpp.tab.c" +#line 7132 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 7172 "asmparse.cpp.tab.c" +#line 7138 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 7178 "asmparse.cpp.tab.c" +#line 7144 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 7184 "asmparse.cpp.tab.c" +#line 7150 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 7190 "asmparse.cpp.tab.c" +#line 7156 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 7196 "asmparse.cpp.tab.c" +#line 7162 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 7202 "asmparse.cpp.tab.c" +#line 7168 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 7208 "asmparse.cpp.tab.c" +#line 7174 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 7214 "asmparse.cpp.tab.c" +#line 7180 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7220 "asmparse.cpp.tab.c" +#line 7186 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7226 "asmparse.cpp.tab.c" +#line 7192 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7232 "asmparse.cpp.tab.c" +#line 7198 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7238 "asmparse.cpp.tab.c" +#line 7204 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7244 "asmparse.cpp.tab.c" +#line 7210 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7250 "asmparse.cpp.tab.c" +#line 7216 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7256 "asmparse.cpp.tab.c" +#line 7222 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7262 "asmparse.cpp.tab.c" +#line 7228 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7268 "asmparse.cpp.tab.c" +#line 7234 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7274 "asmparse.cpp.tab.c" +#line 7240 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7280 "asmparse.cpp.tab.c" +#line 7246 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7286 "asmparse.cpp.tab.c" +#line 7252 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7292 "asmparse.cpp.tab.c" +#line 7258 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7298 "asmparse.cpp.tab.c" +#line 7264 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7304 "asmparse.cpp.tab.c" +#line 7270 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7310 "asmparse.cpp.tab.c" +#line 7276 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7316 "asmparse.cpp.tab.c" +#line 7282 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7322 "asmparse.cpp.tab.c" +#line 7288 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7328 "asmparse.cpp.tab.c" +#line 7294 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7334 "asmparse.cpp.tab.c" +#line 7300 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7340 "asmparse.cpp.tab.c" +#line 7306 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7346 "asmparse.cpp.tab.c" +#line 7312 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7352 "asmparse.cpp.tab.c" +#line 7318 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7358 "asmparse.cpp.tab.c" +#line 7324 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7364 "asmparse.cpp.tab.c" +#line 7330 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7370 "asmparse.cpp.tab.c" +#line 7336 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7376 "asmparse.cpp.tab.c" +#line 7342 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7382 "asmparse.cpp.tab.c" +#line 7348 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7388 "asmparse.cpp.tab.c" +#line 7354 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7393,43 +7359,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7397 "asmparse.cpp.tab.c" +#line 7363 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7403 "asmparse.cpp.tab.c" +#line 7369 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7409 "asmparse.cpp.tab.c" +#line 7375 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7415 "asmparse.cpp.tab.c" +#line 7381 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7421 "asmparse.cpp.tab.c" +#line 7387 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7427 "asmparse.cpp.tab.c" +#line 7393 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7433 "asmparse.cpp.tab.c" +#line 7399 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7439,7 +7405,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7443 "asmparse.cpp.tab.c" +#line 7409 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7452,7 +7418,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7456 "asmparse.cpp.tab.c" +#line 7422 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7462,7 +7428,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7466 "asmparse.cpp.tab.c" +#line 7432 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7473,19 +7439,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7477 "asmparse.cpp.tab.c" +#line 7443 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7483 "asmparse.cpp.tab.c" +#line 7449 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7489 "asmparse.cpp.tab.c" +#line 7455 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7494,146 +7460,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7498 "asmparse.cpp.tab.c" +#line 7464 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7505 "asmparse.cpp.tab.c" +#line 7471 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7511 "asmparse.cpp.tab.c" +#line 7477 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7517 "asmparse.cpp.tab.c" +#line 7483 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7523 "asmparse.cpp.tab.c" +#line 7489 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7529 "asmparse.cpp.tab.c" +#line 7495 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7535 "asmparse.cpp.tab.c" +#line 7501 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7541 "asmparse.cpp.tab.c" +#line 7507 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7547 "asmparse.cpp.tab.c" +#line 7513 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7553 "asmparse.cpp.tab.c" +#line 7519 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7559 "asmparse.cpp.tab.c" +#line 7525 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7565 "asmparse.cpp.tab.c" +#line 7531 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7571 "asmparse.cpp.tab.c" +#line 7537 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7577 "asmparse.cpp.tab.c" +#line 7543 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7583 "asmparse.cpp.tab.c" +#line 7549 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7589 "asmparse.cpp.tab.c" +#line 7555 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7595 "asmparse.cpp.tab.c" +#line 7561 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7601 "asmparse.cpp.tab.c" +#line 7567 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7607 "asmparse.cpp.tab.c" +#line 7573 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7613 "asmparse.cpp.tab.c" +#line 7579 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7619 "asmparse.cpp.tab.c" +#line 7585 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7625 "asmparse.cpp.tab.c" +#line 7591 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7631 "asmparse.cpp.tab.c" +#line 7597 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7637 "asmparse.cpp.tab.c" +#line 7603 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7654,7 +7620,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7658 "asmparse.cpp.tab.c" +#line 7624 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7664,7 +7630,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7668 "asmparse.cpp.tab.c" +#line 7634 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7684,7 +7650,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7688 "asmparse.cpp.tab.c" +#line 7654 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7693,103 +7659,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7697 "asmparse.cpp.tab.c" +#line 7663 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7703 "asmparse.cpp.tab.c" +#line 7669 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7709 "asmparse.cpp.tab.c" +#line 7675 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7715 "asmparse.cpp.tab.c" +#line 7681 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7721 "asmparse.cpp.tab.c" +#line 7687 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7727 "asmparse.cpp.tab.c" +#line 7693 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7733 "asmparse.cpp.tab.c" +#line 7699 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7739 "asmparse.cpp.tab.c" +#line 7705 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7745 "asmparse.cpp.tab.c" +#line 7711 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7751 "asmparse.cpp.tab.c" +#line 7717 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7757 "asmparse.cpp.tab.c" +#line 7723 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7763 "asmparse.cpp.tab.c" +#line 7729 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7769 "asmparse.cpp.tab.c" +#line 7735 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7775 "asmparse.cpp.tab.c" +#line 7741 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7781 "asmparse.cpp.tab.c" +#line 7747 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7787 "asmparse.cpp.tab.c" +#line 7753 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7793 "asmparse.cpp.tab.c" +#line 7759 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7799,7 +7765,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7803 "asmparse.cpp.tab.c" +#line 7769 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7807,7 +7773,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7811 "asmparse.cpp.tab.c" +#line 7777 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7815,82 +7781,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7819 "asmparse.cpp.tab.c" +#line 7785 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7826 "asmparse.cpp.tab.c" +#line 7792 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7833 "asmparse.cpp.tab.c" +#line 7799 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7840 "asmparse.cpp.tab.c" +#line 7806 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7846 "asmparse.cpp.tab.c" +#line 7812 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7852 "asmparse.cpp.tab.c" +#line 7818 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7858 "asmparse.cpp.tab.c" +#line 7824 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7864 "asmparse.cpp.tab.c" +#line 7830 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7870 "asmparse.cpp.tab.c" +#line 7836 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7876 "asmparse.cpp.tab.c" +#line 7842 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7882 "asmparse.cpp.tab.c" +#line 7848 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7888 "asmparse.cpp.tab.c" +#line 7854 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7894 "asmparse.cpp.tab.c" +#line 7860 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7898,43 +7864,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7902 "asmparse.cpp.tab.c" +#line 7868 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7908 "asmparse.cpp.tab.c" +#line 7874 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7914 "asmparse.cpp.tab.c" +#line 7880 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7920 "asmparse.cpp.tab.c" +#line 7886 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7926 "asmparse.cpp.tab.c" +#line 7892 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7932 "asmparse.cpp.tab.c" +#line 7898 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7938 "asmparse.cpp.tab.c" +#line 7904 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7943,37 +7909,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7947 "asmparse.cpp.tab.c" +#line 7913 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7953 "asmparse.cpp.tab.c" +#line 7919 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7959 "asmparse.cpp.tab.c" +#line 7925 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7965 "asmparse.cpp.tab.c" +#line 7931 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7971 "asmparse.cpp.tab.c" +#line 7937 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7977 "asmparse.cpp.tab.c" +#line 7943 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7991,420 +7957,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7995 "asmparse.cpp.tab.c" +#line 7961 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 8001 "asmparse.cpp.tab.c" +#line 7967 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 8007 "asmparse.cpp.tab.c" +#line 7973 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 8013 "asmparse.cpp.tab.c" +#line 7979 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 8019 "asmparse.cpp.tab.c" +#line 7985 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 8025 "asmparse.cpp.tab.c" +#line 7991 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 8031 "asmparse.cpp.tab.c" +#line 7997 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 8037 "asmparse.cpp.tab.c" +#line 8003 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 8043 "asmparse.cpp.tab.c" +#line 8009 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 8049 "asmparse.cpp.tab.c" +#line 8015 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 8055 "asmparse.cpp.tab.c" +#line 8021 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 8061 "asmparse.cpp.tab.c" +#line 8027 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 8067 "asmparse.cpp.tab.c" +#line 8033 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 8073 "asmparse.cpp.tab.c" +#line 8039 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 8079 "asmparse.cpp.tab.c" +#line 8045 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 8085 "asmparse.cpp.tab.c" +#line 8051 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 8091 "asmparse.cpp.tab.c" +#line 8057 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 8097 "asmparse.cpp.tab.c" +#line 8063 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 8103 "asmparse.cpp.tab.c" +#line 8069 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 8109 "asmparse.cpp.tab.c" +#line 8075 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 8115 "asmparse.cpp.tab.c" +#line 8081 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 8122 "asmparse.cpp.tab.c" +#line 8088 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 8129 "asmparse.cpp.tab.c" +#line 8095 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 8136 "asmparse.cpp.tab.c" +#line 8102 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 8142 "asmparse.cpp.tab.c" +#line 8108 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 8148 "asmparse.cpp.tab.c" +#line 8114 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 8154 "asmparse.cpp.tab.c" +#line 8120 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 8160 "asmparse.cpp.tab.c" +#line 8126 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 8166 "asmparse.cpp.tab.c" +#line 8132 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 8172 "asmparse.cpp.tab.c" +#line 8138 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 8178 "asmparse.cpp.tab.c" +#line 8144 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 8184 "asmparse.cpp.tab.c" +#line 8150 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 8190 "asmparse.cpp.tab.c" +#line 8156 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 8196 "asmparse.cpp.tab.c" +#line 8162 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 8202 "asmparse.cpp.tab.c" +#line 8168 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 8208 "asmparse.cpp.tab.c" +#line 8174 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 8214 "asmparse.cpp.tab.c" +#line 8180 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 8220 "asmparse.cpp.tab.c" +#line 8186 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 8226 "asmparse.cpp.tab.c" +#line 8192 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8232 "asmparse.cpp.tab.c" +#line 8198 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8238 "asmparse.cpp.tab.c" +#line 8204 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8244 "asmparse.cpp.tab.c" +#line 8210 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8250 "asmparse.cpp.tab.c" +#line 8216 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8256 "asmparse.cpp.tab.c" +#line 8222 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8262 "asmparse.cpp.tab.c" +#line 8228 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8268 "asmparse.cpp.tab.c" +#line 8234 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8274 "asmparse.cpp.tab.c" +#line 8240 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8280 "asmparse.cpp.tab.c" +#line 8246 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8286 "asmparse.cpp.tab.c" +#line 8252 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8292 "asmparse.cpp.tab.c" +#line 8258 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8298 "asmparse.cpp.tab.c" +#line 8264 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8304 "asmparse.cpp.tab.c" +#line 8270 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8310 "asmparse.cpp.tab.c" +#line 8276 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8316 "asmparse.cpp.tab.c" +#line 8282 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8322 "asmparse.cpp.tab.c" +#line 8288 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8328 "asmparse.cpp.tab.c" +#line 8294 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8334 "asmparse.cpp.tab.c" +#line 8300 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8340 "asmparse.cpp.tab.c" +#line 8306 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8346 "asmparse.cpp.tab.c" +#line 8312 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8352 "asmparse.cpp.tab.c" +#line 8318 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8358 "asmparse.cpp.tab.c" +#line 8324 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8364 "asmparse.cpp.tab.c" +#line 8330 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8370 "asmparse.cpp.tab.c" +#line 8336 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8376 "asmparse.cpp.tab.c" +#line 8342 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8383 "asmparse.cpp.tab.c" +#line 8349 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8389 "asmparse.cpp.tab.c" +#line 8355 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8395 "asmparse.cpp.tab.c" +#line 8361 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8401 "asmparse.cpp.tab.c" +#line 8367 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8408 "asmparse.cpp.tab.c" +#line 8374 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8412,25 +8378,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8416 "asmparse.cpp.tab.c" +#line 8382 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8422 "asmparse.cpp.tab.c" +#line 8388 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8428 "asmparse.cpp.tab.c" +#line 8394 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8434 "asmparse.cpp.tab.c" +#line 8400 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8445,7 +8411,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8449 "asmparse.cpp.tab.c" +#line 8415 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8460,20 +8426,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8464 "asmparse.cpp.tab.c" +#line 8430 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8471 "asmparse.cpp.tab.c" +#line 8437 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8477 "asmparse.cpp.tab.c" +#line 8443 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8484,7 +8450,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8488 "asmparse.cpp.tab.c" +#line 8454 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8494,7 +8460,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8498 "asmparse.cpp.tab.c" +#line 8464 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8505,19 +8471,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8509 "asmparse.cpp.tab.c" +#line 8475 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8515 "asmparse.cpp.tab.c" +#line 8481 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8521 "asmparse.cpp.tab.c" +#line 8487 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8540,96 +8506,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8544 "asmparse.cpp.tab.c" +#line 8510 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8550 "asmparse.cpp.tab.c" +#line 8516 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8556 "asmparse.cpp.tab.c" +#line 8522 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8562 "asmparse.cpp.tab.c" +#line 8528 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8568 "asmparse.cpp.tab.c" +#line 8534 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8575 "asmparse.cpp.tab.c" +#line 8541 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8582 "asmparse.cpp.tab.c" +#line 8548 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8588 "asmparse.cpp.tab.c" +#line 8554 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8594 "asmparse.cpp.tab.c" +#line 8560 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8600 "asmparse.cpp.tab.c" +#line 8566 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8606 "asmparse.cpp.tab.c" +#line 8572 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8612 "asmparse.cpp.tab.c" +#line 8578 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8619 "asmparse.cpp.tab.c" +#line 8585 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8626 "asmparse.cpp.tab.c" +#line 8592 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8633 "asmparse.cpp.tab.c" +#line 8599 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8637,70 +8603,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8641 "asmparse.cpp.tab.c" +#line 8607 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8648 "asmparse.cpp.tab.c" +#line 8614 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8655 "asmparse.cpp.tab.c" +#line 8621 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8661 "asmparse.cpp.tab.c" +#line 8627 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8667 "asmparse.cpp.tab.c" +#line 8633 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8674 "asmparse.cpp.tab.c" +#line 8640 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8680 "asmparse.cpp.tab.c" +#line 8646 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8686 "asmparse.cpp.tab.c" +#line 8652 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8692 "asmparse.cpp.tab.c" +#line 8658 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8698 "asmparse.cpp.tab.c" +#line 8664 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8704 "asmparse.cpp.tab.c" +#line 8670 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8708,25 +8674,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8712 "asmparse.cpp.tab.c" +#line 8678 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8718 "asmparse.cpp.tab.c" +#line 8684 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8724 "asmparse.cpp.tab.c" +#line 8690 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8730 "asmparse.cpp.tab.c" +#line 8696 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8737,7 +8703,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8741 "asmparse.cpp.tab.c" +#line 8707 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8748,7 +8714,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8752 "asmparse.cpp.tab.c" +#line 8718 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8759,7 +8725,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8763 "asmparse.cpp.tab.c" +#line 8729 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8770,7 +8736,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8774 "asmparse.cpp.tab.c" +#line 8740 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8782,7 +8748,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8786 "asmparse.cpp.tab.c" +#line 8752 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8794,43 +8760,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8798 "asmparse.cpp.tab.c" +#line 8764 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8804 "asmparse.cpp.tab.c" +#line 8770 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8810 "asmparse.cpp.tab.c" +#line 8776 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8816 "asmparse.cpp.tab.c" +#line 8782 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8822 "asmparse.cpp.tab.c" +#line 8788 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8828 "asmparse.cpp.tab.c" +#line 8794 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8834 "asmparse.cpp.tab.c" +#line 8800 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8838,227 +8804,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8842 "asmparse.cpp.tab.c" +#line 8808 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8849 "asmparse.cpp.tab.c" +#line 8815 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8856 "asmparse.cpp.tab.c" +#line 8822 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8863 "asmparse.cpp.tab.c" +#line 8829 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8870 "asmparse.cpp.tab.c" +#line 8836 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8877 "asmparse.cpp.tab.c" +#line 8843 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8884 "asmparse.cpp.tab.c" +#line 8850 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8891 "asmparse.cpp.tab.c" +#line 8857 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8898 "asmparse.cpp.tab.c" +#line 8864 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8905 "asmparse.cpp.tab.c" +#line 8871 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8912 "asmparse.cpp.tab.c" +#line 8878 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8919 "asmparse.cpp.tab.c" +#line 8885 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8926 "asmparse.cpp.tab.c" +#line 8892 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8933 "asmparse.cpp.tab.c" +#line 8899 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8940 "asmparse.cpp.tab.c" +#line 8906 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8947 "asmparse.cpp.tab.c" +#line 8913 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8954 "asmparse.cpp.tab.c" +#line 8920 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8961 "asmparse.cpp.tab.c" +#line 8927 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8968 "asmparse.cpp.tab.c" +#line 8934 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8974 "asmparse.cpp.tab.c" +#line 8940 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8980 "asmparse.cpp.tab.c" +#line 8946 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8986 "asmparse.cpp.tab.c" +#line 8952 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8992 "asmparse.cpp.tab.c" +#line 8958 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8998 "asmparse.cpp.tab.c" +#line 8964 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9004 "asmparse.cpp.tab.c" +#line 8970 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 9010 "asmparse.cpp.tab.c" +#line 8976 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 9017 "asmparse.cpp.tab.c" +#line 8983 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9023 "asmparse.cpp.tab.c" +#line 8989 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 9029 "asmparse.cpp.tab.c" +#line 8995 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 9036 "asmparse.cpp.tab.c" +#line 9002 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 9043 "asmparse.cpp.tab.c" +#line 9009 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 9050 "asmparse.cpp.tab.c" +#line 9016 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 9056 "asmparse.cpp.tab.c" +#line 9022 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 9062 "asmparse.cpp.tab.c" +#line 9028 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -9066,7 +9032,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9070 "asmparse.cpp.tab.c" +#line 9036 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -9074,7 +9040,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9078 "asmparse.cpp.tab.c" +#line 9044 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -9082,7 +9048,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9086 "asmparse.cpp.tab.c" +#line 9052 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -9090,7 +9056,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9094 "asmparse.cpp.tab.c" +#line 9060 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -9098,7 +9064,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9102 "asmparse.cpp.tab.c" +#line 9068 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -9106,7 +9072,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9110 "asmparse.cpp.tab.c" +#line 9076 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -9114,7 +9080,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9118 "asmparse.cpp.tab.c" +#line 9084 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -9122,7 +9088,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9126 "asmparse.cpp.tab.c" +#line 9092 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -9130,7 +9096,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9134 "asmparse.cpp.tab.c" +#line 9100 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -9138,7 +9104,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9142 "asmparse.cpp.tab.c" +#line 9108 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -9146,7 +9112,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9150 "asmparse.cpp.tab.c" +#line 9116 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -9154,7 +9120,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9158 "asmparse.cpp.tab.c" +#line 9124 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -9162,7 +9128,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9166 "asmparse.cpp.tab.c" +#line 9132 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -9170,7 +9136,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9174 "asmparse.cpp.tab.c" +#line 9140 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -9178,7 +9144,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9182 "asmparse.cpp.tab.c" +#line 9148 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -9186,7 +9152,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9190 "asmparse.cpp.tab.c" +#line 9156 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -9194,7 +9160,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9198 "asmparse.cpp.tab.c" +#line 9164 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -9202,7 +9168,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9206 "asmparse.cpp.tab.c" +#line 9172 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -9210,166 +9176,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9214 "asmparse.cpp.tab.c" +#line 9180 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9220 "asmparse.cpp.tab.c" +#line 9186 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 9227 "asmparse.cpp.tab.c" +#line 9193 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9234 "asmparse.cpp.tab.c" +#line 9200 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9240 "asmparse.cpp.tab.c" +#line 9206 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9247 "asmparse.cpp.tab.c" +#line 9213 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9254 "asmparse.cpp.tab.c" +#line 9220 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9260 "asmparse.cpp.tab.c" +#line 9226 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9267 "asmparse.cpp.tab.c" +#line 9233 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9273 "asmparse.cpp.tab.c" +#line 9239 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9279 "asmparse.cpp.tab.c" +#line 9245 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9285 "asmparse.cpp.tab.c" +#line 9251 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9291 "asmparse.cpp.tab.c" +#line 9257 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9297 "asmparse.cpp.tab.c" +#line 9263 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9303 "asmparse.cpp.tab.c" +#line 9269 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9309 "asmparse.cpp.tab.c" +#line 9275 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9316 "asmparse.cpp.tab.c" +#line 9282 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9322 "asmparse.cpp.tab.c" +#line 9288 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9328 "asmparse.cpp.tab.c" +#line 9294 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9335 "asmparse.cpp.tab.c" +#line 9301 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9341 "asmparse.cpp.tab.c" +#line 9307 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9347 "asmparse.cpp.tab.c" +#line 9313 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9354 "asmparse.cpp.tab.c" +#line 9320 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9361 "asmparse.cpp.tab.c" +#line 9327 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9367 "asmparse.cpp.tab.c" +#line 9333 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9373 "asmparse.cpp.tab.c" +#line 9339 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9378,49 +9344,49 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9382 "asmparse.cpp.tab.c" +#line 9348 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9388 "asmparse.cpp.tab.c" +#line 9354 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9394 "asmparse.cpp.tab.c" +#line 9360 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9400 "asmparse.cpp.tab.c" +#line 9366 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9406 "asmparse.cpp.tab.c" +#line 9372 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9412 "asmparse.cpp.tab.c" +#line 9378 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9418 "asmparse.cpp.tab.c" +#line 9384 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9424 "asmparse.cpp.tab.c" +#line 9390 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) @@ -9431,119 +9397,105 @@ case 503: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9435 "asmparse.cpp.tab.c" +#line 9401 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9441 "asmparse.cpp.tab.c" +#line 9407 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9447 "asmparse.cpp.tab.c" +#line 9413 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9453 "asmparse.cpp.tab.c" +#line 9419 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9459 "asmparse.cpp.tab.c" +#line 9425 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9465 "asmparse.cpp.tab.c" +#line 9431 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9471 "asmparse.cpp.tab.c" +#line 9437 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1375 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9477 "asmparse.cpp.tab.c" +#line 9443 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9483 "asmparse.cpp.tab.c" +#line 9449 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9489 "asmparse.cpp.tab.c" +#line 9455 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9495 "asmparse.cpp.tab.c" +#line 9461 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) -#line 1382 "asmparse.y" -{ PASM->EmitInstrTypeVar(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].int32); } -#line 9501 "asmparse.cpp.tab.c" +#line 1383 "asmparse.y" +{ PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); + PASM->m_tkCurrentCVOwner = yyvsp[0].token; + PASM->m_pCustomDescrList = NULL; + iOpcodeLen = 0; + } +#line 9471 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) -#line 1383 "asmparse.y" -{ PASM->EmitInstrTypeVarByName(yyvsp[-2].instr, ELEMENT_TYPE_CVAR, yyvsp[0].string); } -#line 9507 "asmparse.cpp.tab.c" +#line 1388 "asmparse.y" +{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } +#line 9477 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) -#line 1384 "asmparse.y" -{ PASM->EmitInstrTypeVar(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].int32); } -#line 9513 "asmparse.cpp.tab.c" +#line 1389 "asmparse.y" +{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } +#line 9483 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) -#line 1385 "asmparse.y" -{ PASM->EmitInstrTypeVarByName(yyvsp[-3].instr, ELEMENT_TYPE_MCVAR, yyvsp[0].string); } -#line 9519 "asmparse.cpp.tab.c" +#line 1390 "asmparse.y" +{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} +#line 9489 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) -#line 1386 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9525 "asmparse.cpp.tab.c" +#line 1391 "asmparse.y" +{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } +#line 9495 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) -#line 1387 "asmparse.y" -{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9531 "asmparse.cpp.tab.c" -break; -case 520: - if (!yytrial) -#line 1388 "asmparse.y" -{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9537 "asmparse.cpp.tab.c" -break; -case 521: - if (!yytrial) -#line 1389 "asmparse.y" -{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9543 "asmparse.cpp.tab.c" -break; -case 522: - if (!yytrial) -#line 1390 "asmparse.y" +#line 1392 "asmparse.y" { unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -9553,34 +9505,34 @@ case 522: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9557 "asmparse.cpp.tab.c" +#line 9509 "asmparse.cpp.tab.c" break; -case 523: +case 520: if (!yytrial) -#line 1399 "asmparse.y" +#line 1401 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9563 "asmparse.cpp.tab.c" +#line 9515 "asmparse.cpp.tab.c" break; -case 524: +case 521: if (!yytrial) -#line 1400 "asmparse.y" +#line 1402 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9569 "asmparse.cpp.tab.c" +#line 9521 "asmparse.cpp.tab.c" break; -case 525: +case 522: if (!yytrial) -#line 1402 "asmparse.y" +#line 1404 "asmparse.y" { PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9580 "asmparse.cpp.tab.c" +#line 9532 "asmparse.cpp.tab.c" break; -case 526: +case 523: if (!yytrial) -#line 1409 "asmparse.y" +#line 1411 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); @@ -9588,11 +9540,11 @@ case 526: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9592 "asmparse.cpp.tab.c" +#line 9544 "asmparse.cpp.tab.c" break; -case 527: +case 524: if (!yytrial) -#line 1417 "asmparse.y" +#line 1419 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); @@ -9600,1200 +9552,1200 @@ case 527: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9604 "asmparse.cpp.tab.c" +#line 9556 "asmparse.cpp.tab.c" break; -case 528: +case 525: if (!yytrial) -#line 1424 "asmparse.y" +#line 1426 "asmparse.y" { mdToken mr = yyvsp[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9615 "asmparse.cpp.tab.c" +#line 9567 "asmparse.cpp.tab.c" break; -case 529: +case 526: if (!yytrial) -#line 1430 "asmparse.y" +#line 1432 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9626 "asmparse.cpp.tab.c" +#line 9578 "asmparse.cpp.tab.c" break; -case 530: +case 527: if (!yytrial) -#line 1436 "asmparse.y" +#line 1438 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9637 "asmparse.cpp.tab.c" +#line 9589 "asmparse.cpp.tab.c" break; -case 531: +case 528: if (!yytrial) -#line 1442 "asmparse.y" +#line 1444 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9646 "asmparse.cpp.tab.c" +#line 9598 "asmparse.cpp.tab.c" break; -case 532: +case 529: if (!yytrial) -#line 1446 "asmparse.y" +#line 1448 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9652 "asmparse.cpp.tab.c" +#line 9604 "asmparse.cpp.tab.c" break; -case 533: +case 530: if (!yytrial) -#line 1448 "asmparse.y" +#line 1450 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9658 "asmparse.cpp.tab.c" +#line 9610 "asmparse.cpp.tab.c" break; -case 534: +case 531: if (!yytrial) -#line 1450 "asmparse.y" +#line 1452 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9664 "asmparse.cpp.tab.c" +#line 9616 "asmparse.cpp.tab.c" break; -case 535: +case 532: if (!yytrial) -#line 1452 "asmparse.y" +#line 1454 "asmparse.y" { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9672 "asmparse.cpp.tab.c" +#line 9624 "asmparse.cpp.tab.c" break; -case 536: +case 533: if (!yytrial) -#line 1456 "asmparse.y" +#line 1458 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9682 "asmparse.cpp.tab.c" +#line 9634 "asmparse.cpp.tab.c" break; -case 537: +case 534: if (!yytrial) -#line 1461 "asmparse.y" +#line 1463 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9688 "asmparse.cpp.tab.c" +#line 9640 "asmparse.cpp.tab.c" break; -case 538: +case 535: if (!yytrial) -#line 1464 "asmparse.y" +#line 1466 "asmparse.y" { yyval.labels = 0; } -#line 9694 "asmparse.cpp.tab.c" +#line 9646 "asmparse.cpp.tab.c" break; -case 539: +case 536: if (!yytrial) -#line 1465 "asmparse.y" +#line 1467 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9700 "asmparse.cpp.tab.c" +#line 9652 "asmparse.cpp.tab.c" break; -case 540: +case 537: if (!yytrial) -#line 1466 "asmparse.y" +#line 1468 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9706 "asmparse.cpp.tab.c" +#line 9658 "asmparse.cpp.tab.c" break; -case 541: +case 538: if (!yytrial) -#line 1467 "asmparse.y" +#line 1469 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9712 "asmparse.cpp.tab.c" +#line 9664 "asmparse.cpp.tab.c" break; -case 542: +case 539: if (!yytrial) -#line 1468 "asmparse.y" +#line 1470 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9718 "asmparse.cpp.tab.c" +#line 9670 "asmparse.cpp.tab.c" break; -case 543: +case 540: if (!yytrial) -#line 1472 "asmparse.y" +#line 1474 "asmparse.y" { yyval.binstr = NULL; } -#line 9724 "asmparse.cpp.tab.c" +#line 9676 "asmparse.cpp.tab.c" break; -case 544: +case 541: if (!yytrial) -#line 1473 "asmparse.y" +#line 1475 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9730 "asmparse.cpp.tab.c" +#line 9682 "asmparse.cpp.tab.c" break; -case 545: +case 542: if (!yytrial) -#line 1476 "asmparse.y" +#line 1478 "asmparse.y" { yyval.binstr = NULL; } -#line 9736 "asmparse.cpp.tab.c" +#line 9688 "asmparse.cpp.tab.c" break; -case 546: +case 543: if (!yytrial) -#line 1477 "asmparse.y" +#line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9742 "asmparse.cpp.tab.c" +#line 9694 "asmparse.cpp.tab.c" break; -case 547: +case 544: if (!yytrial) -#line 1480 "asmparse.y" +#line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9748 "asmparse.cpp.tab.c" +#line 9700 "asmparse.cpp.tab.c" break; -case 548: +case 545: if (!yytrial) -#line 1481 "asmparse.y" +#line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9754 "asmparse.cpp.tab.c" +#line 9706 "asmparse.cpp.tab.c" break; -case 549: +case 546: if (!yytrial) -#line 1485 "asmparse.y" +#line 1487 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9760 "asmparse.cpp.tab.c" +#line 9712 "asmparse.cpp.tab.c" break; -case 550: +case 547: if (!yytrial) -#line 1486 "asmparse.y" +#line 1488 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9766 "asmparse.cpp.tab.c" +#line 9718 "asmparse.cpp.tab.c" break; -case 551: +case 548: if (!yytrial) -#line 1489 "asmparse.y" +#line 1491 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9772 "asmparse.cpp.tab.c" +#line 9724 "asmparse.cpp.tab.c" break; -case 552: +case 549: if (!yytrial) -#line 1490 "asmparse.y" +#line 1492 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9778 "asmparse.cpp.tab.c" +#line 9730 "asmparse.cpp.tab.c" break; -case 553: +case 550: if (!yytrial) -#line 1493 "asmparse.y" +#line 1495 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9784 "asmparse.cpp.tab.c" +#line 9736 "asmparse.cpp.tab.c" break; -case 554: +case 551: if (!yytrial) -#line 1494 "asmparse.y" +#line 1496 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9790 "asmparse.cpp.tab.c" +#line 9742 "asmparse.cpp.tab.c" break; -case 555: +case 552: if (!yytrial) -#line 1495 "asmparse.y" +#line 1497 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9796 "asmparse.cpp.tab.c" +#line 9748 "asmparse.cpp.tab.c" break; -case 556: +case 553: if (!yytrial) -#line 1499 "asmparse.y" +#line 1501 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9802 "asmparse.cpp.tab.c" +#line 9754 "asmparse.cpp.tab.c" break; -case 557: +case 554: if (!yytrial) -#line 1500 "asmparse.y" +#line 1502 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9808 "asmparse.cpp.tab.c" +#line 9760 "asmparse.cpp.tab.c" break; -case 558: +case 555: if (!yytrial) -#line 1501 "asmparse.y" +#line 1503 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9814 "asmparse.cpp.tab.c" +#line 9766 "asmparse.cpp.tab.c" break; -case 559: +case 556: if (!yytrial) -#line 1502 "asmparse.y" +#line 1504 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9820 "asmparse.cpp.tab.c" +#line 9772 "asmparse.cpp.tab.c" break; -case 560: +case 557: if (!yytrial) -#line 1503 "asmparse.y" +#line 1505 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9826 "asmparse.cpp.tab.c" +#line 9778 "asmparse.cpp.tab.c" break; -case 561: +case 558: if (!yytrial) -#line 1504 "asmparse.y" +#line 1506 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9832 "asmparse.cpp.tab.c" +#line 9784 "asmparse.cpp.tab.c" break; -case 562: +case 559: if (!yytrial) -#line 1505 "asmparse.y" +#line 1507 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9838 "asmparse.cpp.tab.c" +#line 9790 "asmparse.cpp.tab.c" break; -case 563: +case 560: if (!yytrial) -#line 1506 "asmparse.y" +#line 1508 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9846 "asmparse.cpp.tab.c" +#line 9798 "asmparse.cpp.tab.c" break; -case 564: +case 561: if (!yytrial) -#line 1509 "asmparse.y" +#line 1511 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9857 "asmparse.cpp.tab.c" +#line 9809 "asmparse.cpp.tab.c" break; -case 565: +case 562: if (!yytrial) -#line 1515 "asmparse.y" +#line 1517 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9867 "asmparse.cpp.tab.c" +#line 9819 "asmparse.cpp.tab.c" break; -case 566: +case 563: if (!yytrial) -#line 1522 "asmparse.y" +#line 1524 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9873 "asmparse.cpp.tab.c" +#line 9825 "asmparse.cpp.tab.c" break; -case 567: +case 564: if (!yytrial) -#line 1523 "asmparse.y" +#line 1525 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9879 "asmparse.cpp.tab.c" +#line 9831 "asmparse.cpp.tab.c" break; -case 568: +case 565: if (!yytrial) -#line 1526 "asmparse.y" +#line 1528 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9885 "asmparse.cpp.tab.c" +#line 9837 "asmparse.cpp.tab.c" break; -case 569: +case 566: if (!yytrial) -#line 1527 "asmparse.y" +#line 1529 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9891 "asmparse.cpp.tab.c" +#line 9843 "asmparse.cpp.tab.c" break; -case 570: +case 567: if (!yytrial) -#line 1528 "asmparse.y" +#line 1530 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9897 "asmparse.cpp.tab.c" +#line 9849 "asmparse.cpp.tab.c" break; -case 571: +case 568: if (!yytrial) -#line 1529 "asmparse.y" +#line 1531 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9903 "asmparse.cpp.tab.c" +#line 9855 "asmparse.cpp.tab.c" break; -case 572: +case 569: if (!yytrial) -#line 1533 "asmparse.y" +#line 1535 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9909 "asmparse.cpp.tab.c" +#line 9861 "asmparse.cpp.tab.c" break; -case 573: +case 570: if (!yytrial) -#line 1535 "asmparse.y" +#line 1537 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9920 "asmparse.cpp.tab.c" +#line 9872 "asmparse.cpp.tab.c" break; -case 574: +case 571: if (!yytrial) -#line 1542 "asmparse.y" +#line 1544 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9930 "asmparse.cpp.tab.c" +#line 9882 "asmparse.cpp.tab.c" break; -case 575: +case 572: if (!yytrial) -#line 1547 "asmparse.y" +#line 1549 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9937 "asmparse.cpp.tab.c" +#line 9889 "asmparse.cpp.tab.c" break; -case 576: +case 573: if (!yytrial) -#line 1550 "asmparse.y" +#line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9944 "asmparse.cpp.tab.c" +#line 9896 "asmparse.cpp.tab.c" break; -case 577: +case 574: if (!yytrial) -#line 1552 "asmparse.y" +#line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9951 "asmparse.cpp.tab.c" +#line 9903 "asmparse.cpp.tab.c" break; -case 578: +case 575: if (!yytrial) -#line 1554 "asmparse.y" +#line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9957 "asmparse.cpp.tab.c" +#line 9909 "asmparse.cpp.tab.c" break; -case 579: +case 576: if (!yytrial) -#line 1555 "asmparse.y" +#line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9964 "asmparse.cpp.tab.c" +#line 9916 "asmparse.cpp.tab.c" break; -case 580: +case 577: if (!yytrial) -#line 1557 "asmparse.y" +#line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9971 "asmparse.cpp.tab.c" +#line 9923 "asmparse.cpp.tab.c" break; -case 581: +case 578: if (!yytrial) -#line 1559 "asmparse.y" +#line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9977 "asmparse.cpp.tab.c" +#line 9929 "asmparse.cpp.tab.c" break; -case 582: +case 579: if (!yytrial) -#line 1560 "asmparse.y" +#line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9983 "asmparse.cpp.tab.c" +#line 9935 "asmparse.cpp.tab.c" break; -case 583: +case 580: if (!yytrial) -#line 1561 "asmparse.y" +#line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9989 "asmparse.cpp.tab.c" +#line 9941 "asmparse.cpp.tab.c" break; -case 584: +case 581: if (!yytrial) -#line 1562 "asmparse.y" +#line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9995 "asmparse.cpp.tab.c" +#line 9947 "asmparse.cpp.tab.c" break; -case 585: +case 582: if (!yytrial) -#line 1563 "asmparse.y" +#line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 10001 "asmparse.cpp.tab.c" +#line 9953 "asmparse.cpp.tab.c" break; -case 586: +case 583: if (!yytrial) -#line 1564 "asmparse.y" +#line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 10007 "asmparse.cpp.tab.c" +#line 9959 "asmparse.cpp.tab.c" break; -case 587: +case 584: if (!yytrial) -#line 1565 "asmparse.y" +#line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 10013 "asmparse.cpp.tab.c" +#line 9965 "asmparse.cpp.tab.c" break; -case 588: +case 585: if (!yytrial) -#line 1566 "asmparse.y" +#line 1568 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 10019 "asmparse.cpp.tab.c" +#line 9971 "asmparse.cpp.tab.c" break; -case 589: +case 586: if (!yytrial) -#line 1567 "asmparse.y" +#line 1569 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10025 "asmparse.cpp.tab.c" +#line 9977 "asmparse.cpp.tab.c" break; -case 590: +case 587: if (!yytrial) -#line 1568 "asmparse.y" +#line 1570 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10031 "asmparse.cpp.tab.c" +#line 9983 "asmparse.cpp.tab.c" break; -case 591: +case 588: if (!yytrial) -#line 1569 "asmparse.y" +#line 1571 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10037 "asmparse.cpp.tab.c" +#line 9989 "asmparse.cpp.tab.c" break; -case 592: +case 589: if (!yytrial) -#line 1570 "asmparse.y" +#line 1572 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10043 "asmparse.cpp.tab.c" +#line 9995 "asmparse.cpp.tab.c" break; -case 593: +case 590: if (!yytrial) -#line 1571 "asmparse.y" +#line 1573 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10049 "asmparse.cpp.tab.c" +#line 10001 "asmparse.cpp.tab.c" break; -case 594: +case 591: if (!yytrial) -#line 1572 "asmparse.y" +#line 1574 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10055 "asmparse.cpp.tab.c" +#line 10007 "asmparse.cpp.tab.c" break; -case 595: +case 592: if (!yytrial) -#line 1573 "asmparse.y" +#line 1575 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10061 "asmparse.cpp.tab.c" +#line 10013 "asmparse.cpp.tab.c" break; -case 596: +case 593: if (!yytrial) -#line 1574 "asmparse.y" +#line 1576 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10067 "asmparse.cpp.tab.c" +#line 10019 "asmparse.cpp.tab.c" break; -case 597: +case 594: if (!yytrial) -#line 1575 "asmparse.y" +#line 1577 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 10074 "asmparse.cpp.tab.c" +#line 10026 "asmparse.cpp.tab.c" break; -case 598: +case 595: if (!yytrial) -#line 1577 "asmparse.y" +#line 1579 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10081 "asmparse.cpp.tab.c" +#line 10033 "asmparse.cpp.tab.c" break; -case 599: +case 596: if (!yytrial) -#line 1579 "asmparse.y" +#line 1581 "asmparse.y" { yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10091 "asmparse.cpp.tab.c" +#line 10043 "asmparse.cpp.tab.c" break; -case 600: +case 597: if (!yytrial) -#line 1584 "asmparse.y" +#line 1586 "asmparse.y" { yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10101 "asmparse.cpp.tab.c" +#line 10053 "asmparse.cpp.tab.c" break; -case 601: +case 598: if (!yytrial) -#line 1589 "asmparse.y" +#line 1591 "asmparse.y" { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 10109 "asmparse.cpp.tab.c" +#line 10061 "asmparse.cpp.tab.c" break; -case 602: +case 599: if (!yytrial) -#line 1592 "asmparse.y" +#line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10116 "asmparse.cpp.tab.c" +#line 10068 "asmparse.cpp.tab.c" break; -case 603: +case 600: if (!yytrial) -#line 1594 "asmparse.y" +#line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10123 "asmparse.cpp.tab.c" +#line 10075 "asmparse.cpp.tab.c" break; -case 604: +case 601: if (!yytrial) -#line 1596 "asmparse.y" +#line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10129 "asmparse.cpp.tab.c" +#line 10081 "asmparse.cpp.tab.c" break; -case 605: +case 602: if (!yytrial) -#line 1597 "asmparse.y" +#line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10135 "asmparse.cpp.tab.c" +#line 10087 "asmparse.cpp.tab.c" break; -case 606: +case 603: if (!yytrial) -#line 1598 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10141 "asmparse.cpp.tab.c" +#line 10093 "asmparse.cpp.tab.c" break; -case 607: +case 604: if (!yytrial) -#line 1599 "asmparse.y" +#line 1601 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10147 "asmparse.cpp.tab.c" +#line 10099 "asmparse.cpp.tab.c" break; -case 608: +case 605: if (!yytrial) -#line 1600 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10154 "asmparse.cpp.tab.c" +#line 10106 "asmparse.cpp.tab.c" break; -case 609: +case 606: if (!yytrial) -#line 1602 "asmparse.y" +#line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10161 "asmparse.cpp.tab.c" +#line 10113 "asmparse.cpp.tab.c" break; -case 610: +case 607: if (!yytrial) -#line 1604 "asmparse.y" +#line 1606 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10168 "asmparse.cpp.tab.c" +#line 10120 "asmparse.cpp.tab.c" break; -case 611: +case 608: if (!yytrial) -#line 1606 "asmparse.y" +#line 1608 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 10174 "asmparse.cpp.tab.c" +#line 10126 "asmparse.cpp.tab.c" break; -case 612: +case 609: if (!yytrial) -#line 1607 "asmparse.y" +#line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10181 "asmparse.cpp.tab.c" +#line 10133 "asmparse.cpp.tab.c" break; -case 613: +case 610: if (!yytrial) -#line 1609 "asmparse.y" +#line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 10189 "asmparse.cpp.tab.c" +#line 10141 "asmparse.cpp.tab.c" break; -case 614: +case 611: if (!yytrial) -#line 1612 "asmparse.y" +#line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 10197 "asmparse.cpp.tab.c" +#line 10149 "asmparse.cpp.tab.c" break; -case 615: +case 612: if (!yytrial) -#line 1616 "asmparse.y" +#line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 10203 "asmparse.cpp.tab.c" +#line 10155 "asmparse.cpp.tab.c" break; -case 616: +case 613: if (!yytrial) -#line 1617 "asmparse.y" +#line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10209 "asmparse.cpp.tab.c" +#line 10161 "asmparse.cpp.tab.c" break; -case 617: +case 614: if (!yytrial) -#line 1618 "asmparse.y" +#line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10215 "asmparse.cpp.tab.c" +#line 10167 "asmparse.cpp.tab.c" break; -case 618: +case 615: if (!yytrial) -#line 1619 "asmparse.y" +#line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 10222 "asmparse.cpp.tab.c" +#line 10174 "asmparse.cpp.tab.c" break; -case 619: +case 616: if (!yytrial) -#line 1621 "asmparse.y" +#line 1623 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 10228 "asmparse.cpp.tab.c" +#line 10180 "asmparse.cpp.tab.c" break; -case 620: +case 617: if (!yytrial) -#line 1622 "asmparse.y" +#line 1624 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 10234 "asmparse.cpp.tab.c" +#line 10186 "asmparse.cpp.tab.c" break; -case 621: +case 618: if (!yytrial) -#line 1623 "asmparse.y" +#line 1625 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 10240 "asmparse.cpp.tab.c" +#line 10192 "asmparse.cpp.tab.c" break; -case 622: +case 619: if (!yytrial) -#line 1624 "asmparse.y" +#line 1626 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 10246 "asmparse.cpp.tab.c" +#line 10198 "asmparse.cpp.tab.c" break; -case 623: +case 620: if (!yytrial) -#line 1625 "asmparse.y" +#line 1627 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 10252 "asmparse.cpp.tab.c" +#line 10204 "asmparse.cpp.tab.c" break; -case 624: +case 621: if (!yytrial) -#line 1626 "asmparse.y" +#line 1628 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 10258 "asmparse.cpp.tab.c" +#line 10210 "asmparse.cpp.tab.c" break; -case 625: +case 622: if (!yytrial) -#line 1627 "asmparse.y" +#line 1629 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10264 "asmparse.cpp.tab.c" +#line 10216 "asmparse.cpp.tab.c" break; -case 626: +case 623: if (!yytrial) -#line 1628 "asmparse.y" +#line 1630 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10270 "asmparse.cpp.tab.c" +#line 10222 "asmparse.cpp.tab.c" break; -case 627: +case 624: if (!yytrial) -#line 1631 "asmparse.y" +#line 1633 "asmparse.y" { yyval.int32 = -1; } -#line 10276 "asmparse.cpp.tab.c" +#line 10228 "asmparse.cpp.tab.c" break; -case 628: +case 625: if (!yytrial) -#line 1632 "asmparse.y" +#line 1634 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 10282 "asmparse.cpp.tab.c" +#line 10234 "asmparse.cpp.tab.c" break; -case 629: +case 626: if (!yytrial) -#line 1635 "asmparse.y" +#line 1637 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 10288 "asmparse.cpp.tab.c" +#line 10240 "asmparse.cpp.tab.c" break; -case 630: +case 627: if (!yytrial) -#line 1636 "asmparse.y" +#line 1638 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 10294 "asmparse.cpp.tab.c" +#line 10246 "asmparse.cpp.tab.c" break; -case 631: +case 628: if (!yytrial) -#line 1637 "asmparse.y" +#line 1639 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 10300 "asmparse.cpp.tab.c" +#line 10252 "asmparse.cpp.tab.c" break; -case 632: +case 629: if (!yytrial) -#line 1638 "asmparse.y" +#line 1640 "asmparse.y" { yyval.int32 = VT_CY; } -#line 10306 "asmparse.cpp.tab.c" +#line 10258 "asmparse.cpp.tab.c" break; -case 633: +case 630: if (!yytrial) -#line 1639 "asmparse.y" +#line 1641 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 10312 "asmparse.cpp.tab.c" +#line 10264 "asmparse.cpp.tab.c" break; -case 634: +case 631: if (!yytrial) -#line 1640 "asmparse.y" +#line 1642 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 10318 "asmparse.cpp.tab.c" +#line 10270 "asmparse.cpp.tab.c" break; -case 635: +case 632: if (!yytrial) -#line 1641 "asmparse.y" +#line 1643 "asmparse.y" { yyval.int32 = VT_I1; } -#line 10324 "asmparse.cpp.tab.c" +#line 10276 "asmparse.cpp.tab.c" break; -case 636: +case 633: if (!yytrial) -#line 1642 "asmparse.y" +#line 1644 "asmparse.y" { yyval.int32 = VT_I2; } -#line 10330 "asmparse.cpp.tab.c" +#line 10282 "asmparse.cpp.tab.c" break; -case 637: +case 634: if (!yytrial) -#line 1643 "asmparse.y" +#line 1645 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10336 "asmparse.cpp.tab.c" +#line 10288 "asmparse.cpp.tab.c" break; -case 638: +case 635: if (!yytrial) -#line 1644 "asmparse.y" +#line 1646 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10342 "asmparse.cpp.tab.c" +#line 10294 "asmparse.cpp.tab.c" break; -case 639: +case 636: if (!yytrial) -#line 1645 "asmparse.y" +#line 1647 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10348 "asmparse.cpp.tab.c" +#line 10300 "asmparse.cpp.tab.c" break; -case 640: +case 637: if (!yytrial) -#line 1646 "asmparse.y" +#line 1648 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10354 "asmparse.cpp.tab.c" +#line 10306 "asmparse.cpp.tab.c" break; -case 641: +case 638: if (!yytrial) -#line 1647 "asmparse.y" +#line 1649 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10360 "asmparse.cpp.tab.c" +#line 10312 "asmparse.cpp.tab.c" break; -case 642: +case 639: if (!yytrial) -#line 1648 "asmparse.y" +#line 1650 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10366 "asmparse.cpp.tab.c" +#line 10318 "asmparse.cpp.tab.c" break; -case 643: +case 640: if (!yytrial) -#line 1649 "asmparse.y" +#line 1651 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10372 "asmparse.cpp.tab.c" +#line 10324 "asmparse.cpp.tab.c" break; -case 644: +case 641: if (!yytrial) -#line 1650 "asmparse.y" +#line 1652 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10378 "asmparse.cpp.tab.c" +#line 10330 "asmparse.cpp.tab.c" break; -case 645: +case 642: if (!yytrial) -#line 1651 "asmparse.y" +#line 1653 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10384 "asmparse.cpp.tab.c" +#line 10336 "asmparse.cpp.tab.c" break; -case 646: +case 643: if (!yytrial) -#line 1652 "asmparse.y" +#line 1654 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10390 "asmparse.cpp.tab.c" +#line 10342 "asmparse.cpp.tab.c" break; -case 647: +case 644: if (!yytrial) -#line 1653 "asmparse.y" +#line 1655 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10396 "asmparse.cpp.tab.c" +#line 10348 "asmparse.cpp.tab.c" break; -case 648: +case 645: if (!yytrial) -#line 1654 "asmparse.y" +#line 1656 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10402 "asmparse.cpp.tab.c" +#line 10354 "asmparse.cpp.tab.c" break; -case 649: +case 646: if (!yytrial) -#line 1655 "asmparse.y" +#line 1657 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10408 "asmparse.cpp.tab.c" +#line 10360 "asmparse.cpp.tab.c" break; -case 650: +case 647: if (!yytrial) -#line 1656 "asmparse.y" +#line 1658 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10414 "asmparse.cpp.tab.c" +#line 10366 "asmparse.cpp.tab.c" break; -case 651: +case 648: if (!yytrial) -#line 1657 "asmparse.y" +#line 1659 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10420 "asmparse.cpp.tab.c" +#line 10372 "asmparse.cpp.tab.c" break; -case 652: +case 649: if (!yytrial) -#line 1658 "asmparse.y" +#line 1660 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10426 "asmparse.cpp.tab.c" +#line 10378 "asmparse.cpp.tab.c" break; -case 653: +case 650: if (!yytrial) -#line 1659 "asmparse.y" +#line 1661 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10432 "asmparse.cpp.tab.c" +#line 10384 "asmparse.cpp.tab.c" break; -case 654: +case 651: if (!yytrial) -#line 1660 "asmparse.y" +#line 1662 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10438 "asmparse.cpp.tab.c" +#line 10390 "asmparse.cpp.tab.c" break; -case 655: +case 652: if (!yytrial) -#line 1661 "asmparse.y" +#line 1663 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10444 "asmparse.cpp.tab.c" +#line 10396 "asmparse.cpp.tab.c" break; -case 656: +case 653: if (!yytrial) -#line 1662 "asmparse.y" +#line 1664 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10450 "asmparse.cpp.tab.c" +#line 10402 "asmparse.cpp.tab.c" break; -case 657: +case 654: if (!yytrial) -#line 1663 "asmparse.y" +#line 1665 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10456 "asmparse.cpp.tab.c" +#line 10408 "asmparse.cpp.tab.c" break; -case 658: +case 655: if (!yytrial) -#line 1664 "asmparse.y" +#line 1666 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10462 "asmparse.cpp.tab.c" +#line 10414 "asmparse.cpp.tab.c" break; -case 659: +case 656: if (!yytrial) -#line 1665 "asmparse.y" +#line 1667 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10468 "asmparse.cpp.tab.c" +#line 10420 "asmparse.cpp.tab.c" break; -case 660: +case 657: if (!yytrial) -#line 1666 "asmparse.y" +#line 1668 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10474 "asmparse.cpp.tab.c" +#line 10426 "asmparse.cpp.tab.c" break; -case 661: +case 658: if (!yytrial) -#line 1667 "asmparse.y" +#line 1669 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10480 "asmparse.cpp.tab.c" +#line 10432 "asmparse.cpp.tab.c" break; -case 662: +case 659: if (!yytrial) -#line 1668 "asmparse.y" +#line 1670 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10486 "asmparse.cpp.tab.c" +#line 10438 "asmparse.cpp.tab.c" break; -case 663: +case 660: if (!yytrial) -#line 1669 "asmparse.y" +#line 1671 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10492 "asmparse.cpp.tab.c" +#line 10444 "asmparse.cpp.tab.c" break; -case 664: +case 661: if (!yytrial) -#line 1670 "asmparse.y" +#line 1672 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10498 "asmparse.cpp.tab.c" +#line 10450 "asmparse.cpp.tab.c" break; -case 665: +case 662: if (!yytrial) -#line 1671 "asmparse.y" +#line 1673 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10504 "asmparse.cpp.tab.c" +#line 10456 "asmparse.cpp.tab.c" break; -case 666: +case 663: if (!yytrial) -#line 1672 "asmparse.y" +#line 1674 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10510 "asmparse.cpp.tab.c" +#line 10462 "asmparse.cpp.tab.c" break; -case 667: +case 664: if (!yytrial) -#line 1673 "asmparse.y" +#line 1675 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10516 "asmparse.cpp.tab.c" +#line 10468 "asmparse.cpp.tab.c" break; -case 668: +case 665: if (!yytrial) -#line 1674 "asmparse.y" +#line 1676 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10522 "asmparse.cpp.tab.c" +#line 10474 "asmparse.cpp.tab.c" break; -case 669: +case 666: if (!yytrial) -#line 1675 "asmparse.y" +#line 1677 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10528 "asmparse.cpp.tab.c" +#line 10480 "asmparse.cpp.tab.c" break; -case 670: +case 667: if (!yytrial) -#line 1676 "asmparse.y" +#line 1678 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10534 "asmparse.cpp.tab.c" +#line 10486 "asmparse.cpp.tab.c" break; -case 671: +case 668: if (!yytrial) -#line 1677 "asmparse.y" +#line 1679 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10540 "asmparse.cpp.tab.c" +#line 10492 "asmparse.cpp.tab.c" break; -case 672: +case 669: if (!yytrial) -#line 1678 "asmparse.y" +#line 1680 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10546 "asmparse.cpp.tab.c" +#line 10498 "asmparse.cpp.tab.c" break; -case 673: +case 670: if (!yytrial) -#line 1679 "asmparse.y" +#line 1681 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10552 "asmparse.cpp.tab.c" +#line 10504 "asmparse.cpp.tab.c" break; -case 674: +case 671: if (!yytrial) -#line 1680 "asmparse.y" +#line 1682 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10558 "asmparse.cpp.tab.c" +#line 10510 "asmparse.cpp.tab.c" break; -case 675: +case 672: if (!yytrial) -#line 1681 "asmparse.y" +#line 1683 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10564 "asmparse.cpp.tab.c" +#line 10516 "asmparse.cpp.tab.c" break; -case 676: +case 673: if (!yytrial) -#line 1682 "asmparse.y" +#line 1684 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10570 "asmparse.cpp.tab.c" +#line 10522 "asmparse.cpp.tab.c" break; -case 677: +case 674: if (!yytrial) -#line 1683 "asmparse.y" +#line 1685 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10576 "asmparse.cpp.tab.c" +#line 10528 "asmparse.cpp.tab.c" break; -case 678: +case 675: if (!yytrial) -#line 1686 "asmparse.y" +#line 1688 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 10584 "asmparse.cpp.tab.c" +#line 10536 "asmparse.cpp.tab.c" break; -case 679: +case 676: if (!yytrial) -#line 1689 "asmparse.y" +#line 1691 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 10591 "asmparse.cpp.tab.c" +#line 10543 "asmparse.cpp.tab.c" break; -case 680: +case 677: if (!yytrial) -#line 1691 "asmparse.y" +#line 1693 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10598 "asmparse.cpp.tab.c" +#line 10550 "asmparse.cpp.tab.c" break; -case 681: +case 678: if (!yytrial) -#line 1693 "asmparse.y" +#line 1695 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10605 "asmparse.cpp.tab.c" +#line 10557 "asmparse.cpp.tab.c" break; -case 682: +case 679: if (!yytrial) -#line 1695 "asmparse.y" +#line 1697 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10612 "asmparse.cpp.tab.c" +#line 10564 "asmparse.cpp.tab.c" break; -case 683: +case 680: if (!yytrial) -#line 1697 "asmparse.y" +#line 1699 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10619 "asmparse.cpp.tab.c" +#line 10571 "asmparse.cpp.tab.c" break; -case 684: +case 681: if (!yytrial) -#line 1699 "asmparse.y" +#line 1701 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10626 "asmparse.cpp.tab.c" +#line 10578 "asmparse.cpp.tab.c" break; -case 685: +case 682: if (!yytrial) -#line 1701 "asmparse.y" +#line 1703 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10633 "asmparse.cpp.tab.c" +#line 10585 "asmparse.cpp.tab.c" break; -case 686: +case 683: if (!yytrial) -#line 1703 "asmparse.y" +#line 1705 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10640 "asmparse.cpp.tab.c" +#line 10592 "asmparse.cpp.tab.c" break; -case 687: +case 684: if (!yytrial) -#line 1705 "asmparse.y" +#line 1707 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10647 "asmparse.cpp.tab.c" +#line 10599 "asmparse.cpp.tab.c" break; -case 688: +case 685: if (!yytrial) -#line 1707 "asmparse.y" +#line 1709 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10654 "asmparse.cpp.tab.c" +#line 10606 "asmparse.cpp.tab.c" break; -case 689: +case 686: if (!yytrial) -#line 1709 "asmparse.y" +#line 1711 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10661 "asmparse.cpp.tab.c" +#line 10613 "asmparse.cpp.tab.c" break; -case 690: +case 687: if (!yytrial) -#line 1711 "asmparse.y" +#line 1713 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10668 "asmparse.cpp.tab.c" +#line 10620 "asmparse.cpp.tab.c" break; -case 691: +case 688: if (!yytrial) -#line 1713 "asmparse.y" +#line 1715 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10675 "asmparse.cpp.tab.c" +#line 10627 "asmparse.cpp.tab.c" break; -case 692: +case 689: if (!yytrial) -#line 1715 "asmparse.y" +#line 1717 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10682 "asmparse.cpp.tab.c" +#line 10634 "asmparse.cpp.tab.c" break; -case 693: +case 690: if (!yytrial) -#line 1717 "asmparse.y" +#line 1719 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10689 "asmparse.cpp.tab.c" +#line 10641 "asmparse.cpp.tab.c" break; -case 694: +case 691: if (!yytrial) -#line 1719 "asmparse.y" +#line 1721 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10696 "asmparse.cpp.tab.c" +#line 10648 "asmparse.cpp.tab.c" break; -case 695: +case 692: if (!yytrial) -#line 1721 "asmparse.y" +#line 1723 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 10703 "asmparse.cpp.tab.c" +#line 10655 "asmparse.cpp.tab.c" break; -case 696: +case 693: if (!yytrial) -#line 1726 "asmparse.y" +#line 1728 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10714 "asmparse.cpp.tab.c" +#line 10666 "asmparse.cpp.tab.c" break; -case 697: +case 694: if (!yytrial) -#line 1732 "asmparse.y" +#line 1734 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10720 "asmparse.cpp.tab.c" +#line 10672 "asmparse.cpp.tab.c" break; -case 698: +case 695: if (!yytrial) -#line 1733 "asmparse.y" +#line 1735 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10726 "asmparse.cpp.tab.c" +#line 10678 "asmparse.cpp.tab.c" break; -case 699: +case 696: if (!yytrial) -#line 1734 "asmparse.y" +#line 1736 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10732 "asmparse.cpp.tab.c" +#line 10684 "asmparse.cpp.tab.c" break; -case 700: +case 697: if (!yytrial) -#line 1735 "asmparse.y" +#line 1737 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 10738 "asmparse.cpp.tab.c" +#line 10690 "asmparse.cpp.tab.c" break; -case 701: +case 698: if (!yytrial) -#line 1736 "asmparse.y" +#line 1738 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10744 "asmparse.cpp.tab.c" +#line 10696 "asmparse.cpp.tab.c" break; -case 702: +case 699: if (!yytrial) -#line 1737 "asmparse.y" +#line 1739 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10750 "asmparse.cpp.tab.c" +#line 10702 "asmparse.cpp.tab.c" break; -case 703: +case 700: if (!yytrial) -#line 1738 "asmparse.y" +#line 1740 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10756 "asmparse.cpp.tab.c" +#line 10708 "asmparse.cpp.tab.c" break; -case 704: +case 701: if (!yytrial) -#line 1739 "asmparse.y" +#line 1741 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10762 "asmparse.cpp.tab.c" +#line 10714 "asmparse.cpp.tab.c" break; -case 705: +case 702: if (!yytrial) -#line 1740 "asmparse.y" +#line 1742 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10768 "asmparse.cpp.tab.c" +#line 10720 "asmparse.cpp.tab.c" break; -case 706: +case 703: if (!yytrial) -#line 1741 "asmparse.y" +#line 1743 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10775 "asmparse.cpp.tab.c" +#line 10727 "asmparse.cpp.tab.c" break; -case 707: +case 704: if (!yytrial) -#line 1743 "asmparse.y" +#line 1745 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10782 "asmparse.cpp.tab.c" +#line 10734 "asmparse.cpp.tab.c" break; -case 708: +case 705: if (!yytrial) -#line 1746 "asmparse.y" +#line 1748 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10793 "asmparse.cpp.tab.c" +#line 10745 "asmparse.cpp.tab.c" break; -case 709: +case 706: if (!yytrial) -#line 1752 "asmparse.y" +#line 1754 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10801,49 +10753,49 @@ case 709: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10805 "asmparse.cpp.tab.c" +#line 10757 "asmparse.cpp.tab.c" break; -case 710: +case 707: if (!yytrial) -#line 1759 "asmparse.y" +#line 1761 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10813 "asmparse.cpp.tab.c" +#line 10765 "asmparse.cpp.tab.c" break; -case 711: +case 708: if (!yytrial) -#line 1762 "asmparse.y" +#line 1764 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10824 "asmparse.cpp.tab.c" +#line 10776 "asmparse.cpp.tab.c" break; -case 712: +case 709: if (!yytrial) -#line 1768 "asmparse.y" +#line 1770 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10832 "asmparse.cpp.tab.c" +#line 10784 "asmparse.cpp.tab.c" break; -case 713: +case 710: if (!yytrial) -#line 1771 "asmparse.y" +#line 1773 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10843 "asmparse.cpp.tab.c" +#line 10795 "asmparse.cpp.tab.c" break; -case 714: +case 711: if (!yytrial) -#line 1777 "asmparse.y" +#line 1779 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10859,11 +10811,11 @@ case 714: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10863 "asmparse.cpp.tab.c" +#line 10815 "asmparse.cpp.tab.c" break; -case 715: +case 712: if (!yytrial) -#line 1792 "asmparse.y" +#line 1794 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10879,11 +10831,11 @@ case 715: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10883 "asmparse.cpp.tab.c" +#line 10835 "asmparse.cpp.tab.c" break; -case 716: +case 713: if (!yytrial) -#line 1807 "asmparse.y" +#line 1809 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10899,11 +10851,11 @@ case 716: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10903 "asmparse.cpp.tab.c" +#line 10855 "asmparse.cpp.tab.c" break; -case 717: +case 714: if (!yytrial) -#line 1822 "asmparse.y" +#line 1824 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10919,924 +10871,924 @@ case 717: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10923 "asmparse.cpp.tab.c" +#line 10875 "asmparse.cpp.tab.c" break; -case 718: +case 715: if (!yytrial) -#line 1837 "asmparse.y" +#line 1839 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10929 "asmparse.cpp.tab.c" +#line 10881 "asmparse.cpp.tab.c" break; -case 719: +case 716: if (!yytrial) -#line 1838 "asmparse.y" +#line 1840 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10935 "asmparse.cpp.tab.c" +#line 10887 "asmparse.cpp.tab.c" break; -case 720: +case 717: if (!yytrial) -#line 1839 "asmparse.y" +#line 1841 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10941 "asmparse.cpp.tab.c" +#line 10893 "asmparse.cpp.tab.c" break; -case 721: +case 718: if (!yytrial) -#line 1840 "asmparse.y" +#line 1842 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10947 "asmparse.cpp.tab.c" +#line 10899 "asmparse.cpp.tab.c" break; -case 722: +case 719: if (!yytrial) -#line 1841 "asmparse.y" +#line 1843 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10953 "asmparse.cpp.tab.c" +#line 10905 "asmparse.cpp.tab.c" break; -case 723: +case 720: if (!yytrial) -#line 1842 "asmparse.y" +#line 1844 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10959 "asmparse.cpp.tab.c" +#line 10911 "asmparse.cpp.tab.c" break; -case 724: +case 721: if (!yytrial) -#line 1843 "asmparse.y" +#line 1845 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10965 "asmparse.cpp.tab.c" +#line 10917 "asmparse.cpp.tab.c" break; -case 725: +case 722: if (!yytrial) -#line 1846 "asmparse.y" +#line 1848 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10971 "asmparse.cpp.tab.c" +#line 10923 "asmparse.cpp.tab.c" break; -case 726: +case 723: if (!yytrial) -#line 1847 "asmparse.y" +#line 1849 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10977 "asmparse.cpp.tab.c" +#line 10929 "asmparse.cpp.tab.c" break; -case 727: +case 724: if (!yytrial) -#line 1848 "asmparse.y" +#line 1850 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10983 "asmparse.cpp.tab.c" +#line 10935 "asmparse.cpp.tab.c" break; -case 728: +case 725: if (!yytrial) -#line 1849 "asmparse.y" +#line 1851 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10989 "asmparse.cpp.tab.c" +#line 10941 "asmparse.cpp.tab.c" break; -case 729: +case 726: if (!yytrial) -#line 1850 "asmparse.y" +#line 1852 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10995 "asmparse.cpp.tab.c" +#line 10947 "asmparse.cpp.tab.c" break; -case 730: +case 727: if (!yytrial) -#line 1851 "asmparse.y" +#line 1853 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 11001 "asmparse.cpp.tab.c" +#line 10953 "asmparse.cpp.tab.c" break; -case 731: +case 728: if (!yytrial) -#line 1852 "asmparse.y" +#line 1854 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 11007 "asmparse.cpp.tab.c" +#line 10959 "asmparse.cpp.tab.c" break; -case 732: +case 729: if (!yytrial) -#line 1853 "asmparse.y" +#line 1855 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 11013 "asmparse.cpp.tab.c" +#line 10965 "asmparse.cpp.tab.c" break; -case 733: +case 730: if (!yytrial) -#line 1854 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 11019 "asmparse.cpp.tab.c" +#line 10971 "asmparse.cpp.tab.c" break; -case 734: +case 731: if (!yytrial) -#line 1855 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11025 "asmparse.cpp.tab.c" +#line 10977 "asmparse.cpp.tab.c" break; -case 735: +case 732: if (!yytrial) -#line 1856 "asmparse.y" +#line 1858 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11031 "asmparse.cpp.tab.c" +#line 10983 "asmparse.cpp.tab.c" break; -case 736: +case 733: if (!yytrial) -#line 1857 "asmparse.y" +#line 1859 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11037 "asmparse.cpp.tab.c" +#line 10989 "asmparse.cpp.tab.c" break; -case 737: +case 734: if (!yytrial) -#line 1858 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11043 "asmparse.cpp.tab.c" +#line 10995 "asmparse.cpp.tab.c" break; -case 738: +case 735: if (!yytrial) -#line 1859 "asmparse.y" +#line 1861 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11049 "asmparse.cpp.tab.c" +#line 11001 "asmparse.cpp.tab.c" break; -case 739: +case 736: if (!yytrial) -#line 1860 "asmparse.y" +#line 1862 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11055 "asmparse.cpp.tab.c" +#line 11007 "asmparse.cpp.tab.c" break; -case 740: +case 737: if (!yytrial) -#line 1861 "asmparse.y" +#line 1863 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11061 "asmparse.cpp.tab.c" +#line 11013 "asmparse.cpp.tab.c" break; -case 741: +case 738: if (!yytrial) -#line 1862 "asmparse.y" +#line 1864 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11067 "asmparse.cpp.tab.c" +#line 11019 "asmparse.cpp.tab.c" break; -case 742: +case 739: if (!yytrial) -#line 1863 "asmparse.y" +#line 1865 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 11073 "asmparse.cpp.tab.c" +#line 11025 "asmparse.cpp.tab.c" break; -case 743: +case 740: if (!yytrial) -#line 1866 "asmparse.y" +#line 1868 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 11079 "asmparse.cpp.tab.c" +#line 11031 "asmparse.cpp.tab.c" break; -case 744: +case 741: if (!yytrial) -#line 1867 "asmparse.y" +#line 1869 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 11085 "asmparse.cpp.tab.c" +#line 11037 "asmparse.cpp.tab.c" break; -case 745: +case 742: if (!yytrial) -#line 1870 "asmparse.y" +#line 1872 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11091 "asmparse.cpp.tab.c" +#line 11043 "asmparse.cpp.tab.c" break; -case 746: +case 743: if (!yytrial) -#line 1871 "asmparse.y" +#line 1873 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11097 "asmparse.cpp.tab.c" +#line 11049 "asmparse.cpp.tab.c" break; -case 747: +case 744: if (!yytrial) -#line 1872 "asmparse.y" +#line 1874 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11103 "asmparse.cpp.tab.c" +#line 11055 "asmparse.cpp.tab.c" break; -case 748: +case 745: if (!yytrial) -#line 1873 "asmparse.y" +#line 1875 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 11111 "asmparse.cpp.tab.c" +#line 11063 "asmparse.cpp.tab.c" break; -case 749: +case 746: if (!yytrial) -#line 1876 "asmparse.y" +#line 1878 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11117 "asmparse.cpp.tab.c" +#line 11069 "asmparse.cpp.tab.c" break; -case 750: +case 747: if (!yytrial) -#line 1881 "asmparse.y" +#line 1883 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 11123 "asmparse.cpp.tab.c" +#line 11075 "asmparse.cpp.tab.c" break; -case 751: +case 748: if (!yytrial) -#line 1883 "asmparse.y" +#line 1885 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 11129 "asmparse.cpp.tab.c" +#line 11081 "asmparse.cpp.tab.c" break; -case 752: +case 749: if (!yytrial) -#line 1884 "asmparse.y" +#line 1886 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 11135 "asmparse.cpp.tab.c" +#line 11087 "asmparse.cpp.tab.c" break; -case 753: +case 750: if (!yytrial) -#line 1885 "asmparse.y" +#line 1887 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 11141 "asmparse.cpp.tab.c" +#line 11093 "asmparse.cpp.tab.c" break; -case 754: +case 751: if (!yytrial) -#line 1887 "asmparse.y" +#line 1889 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 11147 "asmparse.cpp.tab.c" +#line 11099 "asmparse.cpp.tab.c" break; -case 755: +case 752: if (!yytrial) -#line 1889 "asmparse.y" +#line 1891 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 11158 "asmparse.cpp.tab.c" +#line 11110 "asmparse.cpp.tab.c" break; -case 756: +case 753: if (!yytrial) -#line 1897 "asmparse.y" +#line 1899 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 11164 "asmparse.cpp.tab.c" +#line 11116 "asmparse.cpp.tab.c" break; -case 757: +case 754: if (!yytrial) -#line 1898 "asmparse.y" +#line 1900 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 11170 "asmparse.cpp.tab.c" +#line 11122 "asmparse.cpp.tab.c" break; -case 758: +case 755: if (!yytrial) -#line 1899 "asmparse.y" +#line 1901 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 11176 "asmparse.cpp.tab.c" +#line 11128 "asmparse.cpp.tab.c" break; -case 759: +case 756: if (!yytrial) -#line 1903 "asmparse.y" +#line 1905 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11183 "asmparse.cpp.tab.c" +#line 11135 "asmparse.cpp.tab.c" break; -case 760: +case 757: if (!yytrial) -#line 1906 "asmparse.y" +#line 1908 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11190 "asmparse.cpp.tab.c" +#line 11142 "asmparse.cpp.tab.c" break; -case 761: +case 758: if (!yytrial) -#line 1910 "asmparse.y" +#line 1912 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11196 "asmparse.cpp.tab.c" +#line 11148 "asmparse.cpp.tab.c" break; -case 762: +case 759: if (!yytrial) -#line 1912 "asmparse.y" +#line 1914 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11202 "asmparse.cpp.tab.c" +#line 11154 "asmparse.cpp.tab.c" break; -case 763: +case 760: if (!yytrial) -#line 1915 "asmparse.y" +#line 1917 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 11208 "asmparse.cpp.tab.c" +#line 11160 "asmparse.cpp.tab.c" break; -case 764: +case 761: if (!yytrial) -#line 1916 "asmparse.y" +#line 1918 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 11214 "asmparse.cpp.tab.c" +#line 11166 "asmparse.cpp.tab.c" break; -case 765: +case 762: if (!yytrial) -#line 1919 "asmparse.y" +#line 1921 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 11220 "asmparse.cpp.tab.c" +#line 11172 "asmparse.cpp.tab.c" break; -case 766: +case 763: if (!yytrial) -#line 1922 "asmparse.y" +#line 1924 "asmparse.y" { yyval.int32 = 1; } -#line 11226 "asmparse.cpp.tab.c" +#line 11178 "asmparse.cpp.tab.c" break; -case 767: +case 764: if (!yytrial) -#line 1923 "asmparse.y" +#line 1925 "asmparse.y" { yyval.int32 = 0; } -#line 11232 "asmparse.cpp.tab.c" +#line 11184 "asmparse.cpp.tab.c" break; -case 768: +case 765: if (!yytrial) -#line 1926 "asmparse.y" +#line 1928 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 11240 "asmparse.cpp.tab.c" +#line 11192 "asmparse.cpp.tab.c" break; -case 769: +case 766: if (!yytrial) -#line 1929 "asmparse.y" +#line 1931 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11248 "asmparse.cpp.tab.c" +#line 11200 "asmparse.cpp.tab.c" break; -case 770: +case 767: if (!yytrial) -#line 1932 "asmparse.y" +#line 1934 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11256 "asmparse.cpp.tab.c" +#line 11208 "asmparse.cpp.tab.c" break; -case 771: +case 768: if (!yytrial) -#line 1935 "asmparse.y" +#line 1937 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 11265 "asmparse.cpp.tab.c" +#line 11217 "asmparse.cpp.tab.c" break; -case 772: +case 769: if (!yytrial) -#line 1939 "asmparse.y" +#line 1941 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11276 "asmparse.cpp.tab.c" +#line 11228 "asmparse.cpp.tab.c" break; -case 773: +case 770: if (!yytrial) -#line 1945 "asmparse.y" +#line 1947 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11287 "asmparse.cpp.tab.c" +#line 11239 "asmparse.cpp.tab.c" break; -case 774: +case 771: if (!yytrial) -#line 1951 "asmparse.y" +#line 1953 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11298 "asmparse.cpp.tab.c" +#line 11250 "asmparse.cpp.tab.c" break; -case 775: +case 772: if (!yytrial) -#line 1957 "asmparse.y" +#line 1959 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11309 "asmparse.cpp.tab.c" +#line 11261 "asmparse.cpp.tab.c" break; -case 776: +case 773: if (!yytrial) -#line 1965 "asmparse.y" +#line 1967 "asmparse.y" { yyval.secAct = dclRequest; } -#line 11315 "asmparse.cpp.tab.c" +#line 11267 "asmparse.cpp.tab.c" break; -case 777: +case 774: if (!yytrial) -#line 1966 "asmparse.y" +#line 1968 "asmparse.y" { yyval.secAct = dclDemand; } -#line 11321 "asmparse.cpp.tab.c" +#line 11273 "asmparse.cpp.tab.c" break; -case 778: +case 775: if (!yytrial) -#line 1967 "asmparse.y" +#line 1969 "asmparse.y" { yyval.secAct = dclAssert; } -#line 11327 "asmparse.cpp.tab.c" +#line 11279 "asmparse.cpp.tab.c" break; -case 779: +case 776: if (!yytrial) -#line 1968 "asmparse.y" +#line 1970 "asmparse.y" { yyval.secAct = dclDeny; } -#line 11333 "asmparse.cpp.tab.c" +#line 11285 "asmparse.cpp.tab.c" break; -case 780: +case 777: if (!yytrial) -#line 1969 "asmparse.y" +#line 1971 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 11339 "asmparse.cpp.tab.c" +#line 11291 "asmparse.cpp.tab.c" break; -case 781: +case 778: if (!yytrial) -#line 1970 "asmparse.y" +#line 1972 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 11345 "asmparse.cpp.tab.c" +#line 11297 "asmparse.cpp.tab.c" break; -case 782: +case 779: if (!yytrial) -#line 1971 "asmparse.y" +#line 1973 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 11351 "asmparse.cpp.tab.c" +#line 11303 "asmparse.cpp.tab.c" break; -case 783: +case 780: if (!yytrial) -#line 1972 "asmparse.y" +#line 1974 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 11357 "asmparse.cpp.tab.c" +#line 11309 "asmparse.cpp.tab.c" break; -case 784: +case 781: if (!yytrial) -#line 1973 "asmparse.y" +#line 1975 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 11363 "asmparse.cpp.tab.c" +#line 11315 "asmparse.cpp.tab.c" break; -case 785: +case 782: if (!yytrial) -#line 1974 "asmparse.y" +#line 1976 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 11369 "asmparse.cpp.tab.c" +#line 11321 "asmparse.cpp.tab.c" break; -case 786: +case 783: if (!yytrial) -#line 1975 "asmparse.y" +#line 1977 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 11375 "asmparse.cpp.tab.c" +#line 11327 "asmparse.cpp.tab.c" break; -case 787: +case 784: if (!yytrial) -#line 1976 "asmparse.y" +#line 1978 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 11381 "asmparse.cpp.tab.c" +#line 11333 "asmparse.cpp.tab.c" break; -case 788: +case 785: if (!yytrial) -#line 1977 "asmparse.y" +#line 1979 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 11387 "asmparse.cpp.tab.c" +#line 11339 "asmparse.cpp.tab.c" break; -case 789: +case 786: if (!yytrial) -#line 1978 "asmparse.y" +#line 1980 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11393 "asmparse.cpp.tab.c" +#line 11345 "asmparse.cpp.tab.c" break; -case 790: +case 787: if (!yytrial) -#line 1979 "asmparse.y" +#line 1981 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11399 "asmparse.cpp.tab.c" +#line 11351 "asmparse.cpp.tab.c" break; -case 791: +case 788: if (!yytrial) -#line 1983 "asmparse.y" +#line 1985 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11405 "asmparse.cpp.tab.c" +#line 11357 "asmparse.cpp.tab.c" break; -case 792: +case 789: if (!yytrial) -#line 1984 "asmparse.y" +#line 1986 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11411 "asmparse.cpp.tab.c" +#line 11363 "asmparse.cpp.tab.c" break; -case 793: +case 790: if (!yytrial) -#line 1987 "asmparse.y" +#line 1989 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11419 "asmparse.cpp.tab.c" +#line 11371 "asmparse.cpp.tab.c" break; -case 794: +case 791: if (!yytrial) -#line 1990 "asmparse.y" +#line 1992 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11426 "asmparse.cpp.tab.c" +#line 11378 "asmparse.cpp.tab.c" break; -case 795: +case 792: if (!yytrial) -#line 1992 "asmparse.y" +#line 1994 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11434 "asmparse.cpp.tab.c" +#line 11386 "asmparse.cpp.tab.c" break; -case 796: +case 793: if (!yytrial) -#line 1995 "asmparse.y" +#line 1997 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11441 "asmparse.cpp.tab.c" +#line 11393 "asmparse.cpp.tab.c" break; -case 797: +case 794: if (!yytrial) -#line 1998 "asmparse.y" +#line 2000 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11449 "asmparse.cpp.tab.c" +#line 11401 "asmparse.cpp.tab.c" break; -case 798: +case 795: if (!yytrial) -#line 2002 "asmparse.y" +#line 2004 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11456 "asmparse.cpp.tab.c" +#line 11408 "asmparse.cpp.tab.c" break; -case 799: +case 796: if (!yytrial) -#line 2005 "asmparse.y" +#line 2007 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11464 "asmparse.cpp.tab.c" +#line 11416 "asmparse.cpp.tab.c" break; -case 800: +case 797: if (!yytrial) -#line 2009 "asmparse.y" +#line 2011 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11471 "asmparse.cpp.tab.c" +#line 11423 "asmparse.cpp.tab.c" break; -case 801: +case 798: if (!yytrial) -#line 2012 "asmparse.y" +#line 2014 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11479 "asmparse.cpp.tab.c" +#line 11431 "asmparse.cpp.tab.c" break; -case 802: +case 799: if (!yytrial) -#line 2016 "asmparse.y" +#line 2018 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11486 "asmparse.cpp.tab.c" +#line 11438 "asmparse.cpp.tab.c" break; -case 803: +case 800: if (!yytrial) -#line 2018 "asmparse.y" +#line 2020 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11494 "asmparse.cpp.tab.c" +#line 11446 "asmparse.cpp.tab.c" break; -case 804: +case 801: if (!yytrial) -#line 2025 "asmparse.y" +#line 2027 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11500 "asmparse.cpp.tab.c" +#line 11452 "asmparse.cpp.tab.c" break; -case 805: +case 802: if (!yytrial) -#line 2026 "asmparse.y" +#line 2028 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11506 "asmparse.cpp.tab.c" +#line 11458 "asmparse.cpp.tab.c" break; -case 806: +case 803: if (!yytrial) -#line 2029 "asmparse.y" +#line 2031 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11512 "asmparse.cpp.tab.c" +#line 11464 "asmparse.cpp.tab.c" break; -case 807: +case 804: if (!yytrial) -#line 2030 "asmparse.y" +#line 2032 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11518 "asmparse.cpp.tab.c" +#line 11470 "asmparse.cpp.tab.c" break; -case 808: +case 805: if (!yytrial) -#line 2033 "asmparse.y" +#line 2035 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11524 "asmparse.cpp.tab.c" +#line 11476 "asmparse.cpp.tab.c" break; -case 809: +case 806: if (!yytrial) -#line 2034 "asmparse.y" +#line 2036 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11530 "asmparse.cpp.tab.c" +#line 11482 "asmparse.cpp.tab.c" break; -case 810: +case 807: if (!yytrial) -#line 2037 "asmparse.y" +#line 2039 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11536 "asmparse.cpp.tab.c" +#line 11488 "asmparse.cpp.tab.c" break; -case 811: +case 808: if (!yytrial) -#line 2040 "asmparse.y" +#line 2042 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11542 "asmparse.cpp.tab.c" +#line 11494 "asmparse.cpp.tab.c" break; -case 812: +case 809: if (!yytrial) -#line 2043 "asmparse.y" +#line 2045 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11548 "asmparse.cpp.tab.c" +#line 11500 "asmparse.cpp.tab.c" break; -case 813: +case 810: if (!yytrial) -#line 2044 "asmparse.y" +#line 2046 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11554 "asmparse.cpp.tab.c" +#line 11506 "asmparse.cpp.tab.c" break; -case 814: +case 811: if (!yytrial) -#line 2045 "asmparse.y" +#line 2047 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11560 "asmparse.cpp.tab.c" +#line 11512 "asmparse.cpp.tab.c" break; -case 815: +case 812: if (!yytrial) -#line 2046 "asmparse.y" +#line 2048 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11566 "asmparse.cpp.tab.c" +#line 11518 "asmparse.cpp.tab.c" break; -case 816: +case 813: if (!yytrial) -#line 2047 "asmparse.y" +#line 2049 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11572 "asmparse.cpp.tab.c" +#line 11524 "asmparse.cpp.tab.c" break; -case 817: +case 814: if (!yytrial) -#line 2048 "asmparse.y" +#line 2050 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11578 "asmparse.cpp.tab.c" +#line 11530 "asmparse.cpp.tab.c" break; -case 818: +case 815: if (!yytrial) -#line 2049 "asmparse.y" +#line 2051 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11584 "asmparse.cpp.tab.c" +#line 11536 "asmparse.cpp.tab.c" break; -case 819: +case 816: if (!yytrial) -#line 2050 "asmparse.y" +#line 2052 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11590 "asmparse.cpp.tab.c" +#line 11542 "asmparse.cpp.tab.c" break; -case 820: +case 817: if (!yytrial) -#line 2051 "asmparse.y" +#line 2053 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11596 "asmparse.cpp.tab.c" +#line 11548 "asmparse.cpp.tab.c" break; -case 821: +case 818: if (!yytrial) -#line 2052 "asmparse.y" +#line 2054 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11602 "asmparse.cpp.tab.c" +#line 11554 "asmparse.cpp.tab.c" break; -case 824: +case 821: if (!yytrial) -#line 2059 "asmparse.y" +#line 2061 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11608 "asmparse.cpp.tab.c" +#line 11560 "asmparse.cpp.tab.c" break; -case 827: +case 824: if (!yytrial) -#line 2064 "asmparse.y" +#line 2066 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11614 "asmparse.cpp.tab.c" +#line 11566 "asmparse.cpp.tab.c" break; -case 828: +case 825: if (!yytrial) -#line 2065 "asmparse.y" +#line 2067 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11620 "asmparse.cpp.tab.c" +#line 11572 "asmparse.cpp.tab.c" break; -case 829: +case 826: if (!yytrial) -#line 2068 "asmparse.y" +#line 2070 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11626 "asmparse.cpp.tab.c" +#line 11578 "asmparse.cpp.tab.c" break; -case 830: +case 827: if (!yytrial) -#line 2070 "asmparse.y" +#line 2072 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11632 "asmparse.cpp.tab.c" +#line 11584 "asmparse.cpp.tab.c" break; -case 831: +case 828: if (!yytrial) -#line 2071 "asmparse.y" +#line 2073 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11638 "asmparse.cpp.tab.c" +#line 11590 "asmparse.cpp.tab.c" break; -case 832: +case 829: if (!yytrial) -#line 2072 "asmparse.y" +#line 2074 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11644 "asmparse.cpp.tab.c" +#line 11596 "asmparse.cpp.tab.c" break; -case 835: +case 832: if (!yytrial) -#line 2077 "asmparse.y" +#line 2079 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11650 "asmparse.cpp.tab.c" +#line 11602 "asmparse.cpp.tab.c" break; -case 836: +case 833: if (!yytrial) -#line 2080 "asmparse.y" +#line 2082 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11656 "asmparse.cpp.tab.c" +#line 11608 "asmparse.cpp.tab.c" break; -case 837: +case 834: if (!yytrial) -#line 2083 "asmparse.y" +#line 2085 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11662 "asmparse.cpp.tab.c" +#line 11614 "asmparse.cpp.tab.c" break; -case 838: +case 835: if (!yytrial) -#line 2087 "asmparse.y" +#line 2089 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11668 "asmparse.cpp.tab.c" +#line 11620 "asmparse.cpp.tab.c" break; -case 839: +case 836: if (!yytrial) -#line 2089 "asmparse.y" +#line 2091 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11674 "asmparse.cpp.tab.c" +#line 11626 "asmparse.cpp.tab.c" break; -case 842: +case 839: if (!yytrial) -#line 2096 "asmparse.y" +#line 2098 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11680 "asmparse.cpp.tab.c" +#line 11632 "asmparse.cpp.tab.c" break; -case 844: +case 841: if (!yytrial) -#line 2098 "asmparse.y" +#line 2100 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11686 "asmparse.cpp.tab.c" +#line 11638 "asmparse.cpp.tab.c" break; -case 845: +case 842: if (!yytrial) -#line 2099 "asmparse.y" +#line 2101 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11692 "asmparse.cpp.tab.c" +#line 11644 "asmparse.cpp.tab.c" break; -case 846: +case 843: if (!yytrial) -#line 2102 "asmparse.y" +#line 2104 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11698 "asmparse.cpp.tab.c" +#line 11650 "asmparse.cpp.tab.c" break; -case 847: +case 844: if (!yytrial) -#line 2105 "asmparse.y" +#line 2107 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11704 "asmparse.cpp.tab.c" +#line 11656 "asmparse.cpp.tab.c" break; -case 848: +case 845: if (!yytrial) -#line 2108 "asmparse.y" +#line 2110 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11710 "asmparse.cpp.tab.c" +#line 11662 "asmparse.cpp.tab.c" break; -case 849: +case 846: if (!yytrial) -#line 2109 "asmparse.y" +#line 2111 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11716 "asmparse.cpp.tab.c" +#line 11668 "asmparse.cpp.tab.c" break; -case 850: +case 847: if (!yytrial) -#line 2110 "asmparse.y" +#line 2112 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11722 "asmparse.cpp.tab.c" +#line 11674 "asmparse.cpp.tab.c" break; -case 851: +case 848: if (!yytrial) -#line 2111 "asmparse.y" +#line 2113 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11728 "asmparse.cpp.tab.c" +#line 11680 "asmparse.cpp.tab.c" break; -case 852: +case 849: if (!yytrial) -#line 2112 "asmparse.y" +#line 2114 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11734 "asmparse.cpp.tab.c" +#line 11686 "asmparse.cpp.tab.c" break; -case 853: +case 850: if (!yytrial) -#line 2113 "asmparse.y" +#line 2115 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11740 "asmparse.cpp.tab.c" +#line 11692 "asmparse.cpp.tab.c" break; -case 854: +case 851: if (!yytrial) -#line 2114 "asmparse.y" +#line 2116 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11746 "asmparse.cpp.tab.c" +#line 11698 "asmparse.cpp.tab.c" break; -case 855: +case 852: if (!yytrial) -#line 2115 "asmparse.y" +#line 2117 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11752 "asmparse.cpp.tab.c" +#line 11704 "asmparse.cpp.tab.c" break; -case 856: +case 853: if (!yytrial) -#line 2116 "asmparse.y" +#line 2118 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11758 "asmparse.cpp.tab.c" +#line 11710 "asmparse.cpp.tab.c" break; -case 857: +case 854: if (!yytrial) -#line 2117 "asmparse.y" +#line 2119 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11764 "asmparse.cpp.tab.c" +#line 11716 "asmparse.cpp.tab.c" break; -case 860: +case 857: if (!yytrial) -#line 2124 "asmparse.y" +#line 2126 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11770 "asmparse.cpp.tab.c" +#line 11722 "asmparse.cpp.tab.c" break; -case 861: +case 858: if (!yytrial) -#line 2125 "asmparse.y" +#line 2127 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11776 "asmparse.cpp.tab.c" +#line 11728 "asmparse.cpp.tab.c" break; -case 862: +case 859: if (!yytrial) -#line 2126 "asmparse.y" +#line 2128 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11782 "asmparse.cpp.tab.c" +#line 11734 "asmparse.cpp.tab.c" break; -case 863: +case 860: if (!yytrial) -#line 2127 "asmparse.y" +#line 2129 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11789 "asmparse.cpp.tab.c" +#line 11741 "asmparse.cpp.tab.c" break; -case 864: +case 861: if (!yytrial) -#line 2129 "asmparse.y" +#line 2131 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11796 "asmparse.cpp.tab.c" +#line 11748 "asmparse.cpp.tab.c" break; -case 867: +case 864: if (!yytrial) -#line 2135 "asmparse.y" +#line 2137 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11802 "asmparse.cpp.tab.c" +#line 11754 "asmparse.cpp.tab.c" break; -case 868: +case 865: if (!yytrial) -#line 2137 "asmparse.y" +#line 2139 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11808 "asmparse.cpp.tab.c" +#line 11760 "asmparse.cpp.tab.c" break; -case 869: +case 866: if (!yytrial) -#line 2140 "asmparse.y" +#line 2142 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11814 "asmparse.cpp.tab.c" +#line 11766 "asmparse.cpp.tab.c" break; -case 870: +case 867: if (!yytrial) -#line 2141 "asmparse.y" +#line 2143 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11820 "asmparse.cpp.tab.c" +#line 11772 "asmparse.cpp.tab.c" break; -case 871: +case 868: if (!yytrial) -#line 2142 "asmparse.y" +#line 2144 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11826 "asmparse.cpp.tab.c" +#line 11778 "asmparse.cpp.tab.c" break; -case 874: +case 871: if (!yytrial) -#line 2149 "asmparse.y" +#line 2151 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11832 "asmparse.cpp.tab.c" +#line 11784 "asmparse.cpp.tab.c" break; -case 875: +case 872: if (!yytrial) -#line 2150 "asmparse.y" +#line 2152 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11838 "asmparse.cpp.tab.c" +#line 11790 "asmparse.cpp.tab.c" break; -#line 11840 "asmparse.cpp.tab.c" +#line 11792 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp index aa08b1b3dc6f2..30b61dfe2f941 100644 --- a/src/coreclr/ildasm/dis.cpp +++ b/src/coreclr/ildasm/dis.cpp @@ -1449,7 +1449,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md } case InlineVar: - case ShortInlineTypeVar: { if(g_fShowBytes) { @@ -1484,13 +1483,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md else szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s A_%d",pszInstrName, v); } break; - case CEE_LDCTARG_S: - { - CorElementType elemType = (CorElementType)(v & 0xFF); - int idx = v >> 8; - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s %s%d", pszInstrName, elemType == CorElementType::ELEMENT_TYPE_CVAR ? "!" : "!!", idx); - } - break; case CEE_LDLOCA: case CEE_LDLOC: case CEE_STLOC: @@ -1514,31 +1506,17 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md case InlineI: case InlineRVA: - case InlineTypeVar: { DWORD v = pCode[PC] + (pCode[PC+1] << 8) + (pCode[PC+2] << 16) + (pCode[PC+3] << 24); - switch(instr) + if(g_fShowBytes) { - case CEE_LDCTARG: - { - CorElementType elemType = (CorElementType)(v & 0xFFFF); - int idx = v >> 16; - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s %s%d", pszInstrName, elemType == CorElementType::ELEMENT_TYPE_CVAR ? "!" : "!!", idx); - break; - } - default: - { - if(g_fShowBytes) - { - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%2.2X%2.2X%2.2X%2.2X ", - pCode[PC+3], pCode[PC+2], pCode[PC+1], pCode[PC]); - Len += 9; - PadTheString; - } - szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s 0x%x", pszInstrName, v); - break; - } + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%2.2X%2.2X%2.2X%2.2X ", + pCode[PC+3], pCode[PC+2], pCode[PC+1], pCode[PC]); + Len += 9; + PadTheString; } + szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s 0x%x", pszInstrName, v); + break; PC += 4; break; } diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index c87f6a63b1cc1..89740c21aa189 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -1544,6 +1544,9 @@ enum CorInfoTokenKind // token comes from devirtualizing a method CORINFO_TOKENKIND_DevirtualizedMethod = 0x800 | CORINFO_TOKENKIND_Method, + + // token comes from CEE_LDCTARG + CORINFO_TOKENKIND_Ldctarg = 0x1000 | CORINFO_TOKENKIND_Class | CORINFO_TOKENKIND_Method, }; struct CORINFO_RESOLVED_TOKEN diff --git a/src/coreclr/inc/corpriv.h b/src/coreclr/inc/corpriv.h index 9fa3fbb9f71d2..531eb801b3e6b 100644 --- a/src/coreclr/inc/corpriv.h +++ b/src/coreclr/inc/corpriv.h @@ -217,8 +217,10 @@ typedef enum CorElementTypeZapSig // ZapSig encoding for ELEMENT_TYPE_VAR and ELEMENT_TYPE_MVAR. It is always followed // by the RID of a GenericParam token, encoded as a compressed integer. ELEMENT_TYPE_VAR_ZAPSIG = 0x3b, - - // UNUSED = 0x3c, + + // ZapSig encoding for ELEMENT_TYPE_CVAR and ELEMENT_TYPE_MCVAR. It is always followed + // by the RID of a GenericParam token, encoded as a compressed integer. + ELEMENT_TYPE_CVAR_ZAPSIG = 0x3c, // ZapSig encoding for native value types in IL stubs. IL stub signatures may contain // ELEMENT_TYPE_INTERNAL followed by ParamTypeDesc with ELEMENT_TYPE_VALUETYPE element diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index e5d9684504546..767c31e40611f 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -200,7 +200,7 @@ OPDEF(CEE_STELEM_REF, "stelem.ref", PopRef+PopI+PopRef, Pu OPDEF(CEE_LDELEM, "ldelem", PopRef+PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0xA3, NEXT) OPDEF(CEE_STELEM, "stelem", PopRef+PopI+Pop1, Push0, InlineType, IObjModel, 1, 0xFF, 0xA4, NEXT) OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, IObjModel, 1, 0xFF, 0xA5, NEXT) -OPDEF(CEE_LDCTARG_S, "ldctarg.s", Pop0, Push1, ShortInlineTypeVar, IMacro, 1, 0xFF, 0xA6, NEXT) +OPDEF(CEE_UNUSED05, "unused", Pop0, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xA6, NEXT) OPDEF(CEE_UNUSED06, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) OPDEF(CEE_UNUSED07, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) OPDEF(CEE_UNUSED08, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) @@ -241,7 +241,7 @@ OPDEF(CEE_UNUSED63, "unused", Pop0, Pu OPDEF(CEE_UNUSED64, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCC, NEXT) OPDEF(CEE_UNUSED65, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCD, NEXT) OPDEF(CEE_UNUSED66, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCE, NEXT) -OPDEF(CEE_UNUSED67, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCF, NEXT) +OPDEF(CEE_LDCTARG, "ldctarg", Pop0, PushI, InlineTok, IPrimitive, 1, 0xFF, 0xCF, NEXT) OPDEF(CEE_LDTOKEN, "ldtoken", Pop0, PushI, InlineTok, IPrimitive, 1, 0xFF, 0xD0, NEXT) OPDEF(CEE_CONV_U2, "conv.u2", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD1, NEXT) OPDEF(CEE_CONV_U1, "conv.u1", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD2, NEXT) @@ -299,7 +299,7 @@ OPDEF(CEE_CLT, "clt", Pop1+Pop1, Pu OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) -OPDEF(CEE_LDCTARG, "ldctarg", Pop0, Push1, InlineTypeVar, IPrimitive, 2, 0xFE, 0x08, NEXT) +OPDEF(CEE_LDUNUSED49, "unused", Pop0, Push1, InlineNone, IPrimitive, 2, 0xFE, 0x08, NEXT) OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) diff --git a/src/coreclr/inc/openum.h b/src/coreclr/inc/openum.h index 875f9aaf6efcd..58da0256e7e65 100644 --- a/src/coreclr/inc/openum.h +++ b/src/coreclr/inc/openum.h @@ -31,18 +31,16 @@ typedef enum opcode_format_t InlineTok = 12, // a meta-data token of unknown type (U4) InlineSwitch = 13, // count (U4), pcrel1 (U4) .... pcrelN (U4) InlinePhi = 14, // count (U1), var1 (U2) ... varN (U2) - InlineTypeVar = 15, // WATCH OUT we are close to the limit here, if you add // more enumerations you need to change ShortIline definition below // The extended enumeration also encodes the size in the IL stream - ShortInline = 32, // if this bit is set, the format is the 'short' format + ShortInline = 16, // if this bit is set, the format is the 'short' format PrimaryMask = (ShortInline-1), // mask these off to get primary enumeration above ShortInlineVar = (ShortInline + InlineVar), ShortInlineI = (ShortInline + InlineI), ShortInlineR = (ShortInline + InlineR), ShortInlineBrTarget = (ShortInline + InlineBrTarget), - ShortInlineTypeVar = (ShortInline + InlineTypeVar), InlineOpcode = (ShortInline + InlineNone), // This is only used internally. It means the 'opcode' is two byte instead of 1 } OPCODE_FORMAT; diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 1b0f687765602..69be0139abe2b 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -654,6 +654,7 @@ class SigParser switch (bElementType) { case ELEMENT_TYPE_VAR_ZAPSIG: + case ELEMENT_TYPE_CVAR_ZAPSIG: case ELEMENT_TYPE_NATIVE_VALUETYPE_ZAPSIG: case ELEMENT_TYPE_CANON_ZAPSIG: case ELEMENT_TYPE_MODULE_ZAPSIG: diff --git a/src/coreclr/utilcode/sigparser.cpp b/src/coreclr/utilcode/sigparser.cpp index 06a7b04508d61..119dbfaa40219 100644 --- a/src/coreclr/utilcode/sigparser.cpp +++ b/src/coreclr/utilcode/sigparser.cpp @@ -46,6 +46,7 @@ HRESULT SigParser::SkipExactlyOne() IfFailRet(GetConstArgData(NULL, NULL)); break; case ELEMENT_TYPE_VAR_ZAPSIG: + case ELEMENT_TYPE_CVAR_ZAPSIG: IfFailRet(GetData(NULL)); // Skip RID break; case ELEMENT_TYPE_OBJECT: diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index b83d31f8dfa16..4edb0313c802d 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1242,6 +1242,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_VAR_ZAPSIG: + case ELEMENT_TYPE_CVAR_ZAPSIG: { #ifndef DACCESS_COMPILE RID rid; diff --git a/src/coreclr/vm/stubgen.cpp b/src/coreclr/vm/stubgen.cpp index 876a667b7b7d4..78e7fb621c90d 100644 --- a/src/coreclr/vm/stubgen.cpp +++ b/src/coreclr/vm/stubgen.cpp @@ -213,7 +213,6 @@ static const BYTE s_rgbOpcodeSizes[] = ((l) + (oprType)), #define InlineNone 0 -#define ShortInlineTypeVar 2 #define ShortInlineVar 1 #define ShortInlineI 1 #define InlineI 4 @@ -229,14 +228,12 @@ static const BYTE s_rgbOpcodeSizes[] = #define InlineString 4 #define InlineField 4 #define InlineTok 4 -#define InlineTypeVar 4 #define InlineVar 2 #include "opcode.def" #undef OPDEF #undef InlineNone -#undef ShortInlineTypeVar #undef ShortInlineVar #undef ShortInlineI #undef InlineI @@ -252,7 +249,6 @@ static const BYTE s_rgbOpcodeSizes[] = #undef InlineString #undef InlineField #undef InlineTok -#undef InlineTypeVar #undef InlineVar }; diff --git a/src/coreclr/vm/zapsig.cpp b/src/coreclr/vm/zapsig.cpp index 139994d3acb95..b56984accfdab 100644 --- a/src/coreclr/vm/zapsig.cpp +++ b/src/coreclr/vm/zapsig.cpp @@ -43,6 +43,12 @@ BOOL ZapSig::GetSignatureForTypeDesc(TypeDesc * desc, SigBuilder * pSigBuilder) if (context.externalTokens == ZapSig::NormalTokens) elemType = (CorElementType) ELEMENT_TYPE_VAR_ZAPSIG; } + else if (elemType == ELEMENT_TYPE_CVAR || elemType == ELEMENT_TYPE_MCVAR) + { + // Enable encoding of const type variables for NGen signature only. IBC toolchain is not aware of them yet. + if (context.externalTokens == ZapSig::NormalTokens) + elemType = (CorElementType) ELEMENT_TYPE_CVAR_ZAPSIG; + } pSigBuilder->AppendElementType(elemType); @@ -80,14 +86,17 @@ BOOL ZapSig::GetSignatureForTypeDesc(TypeDesc * desc, SigBuilder * pSigBuilder) break; case ELEMENT_TYPE_MVAR: - // _ASSERTE(!"Cannot encode ET_MVAR in a ZapSig"); + case ELEMENT_TYPE_MCVAR: + // _ASSERTE(!"Cannot encode ET_M(C)VAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR: - // _ASSERTE(!"Cannot encode ET_VAR in a ZapSig"); + case ELEMENT_TYPE_CVAR: + // _ASSERTE(!"Cannot encode ET_(C)VAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR_ZAPSIG: + case ELEMENT_TYPE_CVAR_ZAPSIG: { TypeVarTypeDesc * pTypeVarDesc = dac_cast(desc); Module * pVarTypeModule = pTypeVarDesc->GetModule(); From 71a066407607dc62c8d8b9bf31e16d69048e0c79 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 20:47:19 +0900 Subject: [PATCH 34/80] Use ldtoken instead of ldctarg --- src/coreclr/ilasm/asmparse.y | 13 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 10467 +++++++++++----------- src/coreclr/inc/corinfo.h | 3 - src/coreclr/inc/opcode.def | 2 +- src/coreclr/vm/jitinterface.cpp | 2 +- 5 files changed, 5159 insertions(+), 5328 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index cf27c96fd3510..759a92aed4ed4 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -88,7 +88,7 @@ %token _IMPORT NOMANGLE_ LASTERR_ WINAPI_ AS_ BESTFIT_ ON_ OFF_ CHARMAPERROR_ /* instruction tokens (actually instruction groupings) */ -%token INSTR_NONE INSTR_VAR INSTR_I INSTR_I8 INSTR_R INSTR_BRTARGET INSTR_METHOD INSTR_FIELD INSTR_TVAR +%token INSTR_NONE INSTR_VAR INSTR_I INSTR_I8 INSTR_R INSTR_BRTARGET INSTR_METHOD INSTR_FIELD %token INSTR_TYPE INSTR_STRING INSTR_SIG INSTR_TOK %token INSTR_SWITCH @@ -178,7 +178,7 @@ %type exptAttr %type manresAttr %type customDescr customDescrWithOwner -%type instr_none instr_var instr_i instr_i8 instr_r instr_brtarget instr_method instr_field instr_tvar +%type instr_none instr_var instr_i instr_i8 instr_r instr_brtarget instr_method instr_field %type instr_type instr_string instr_sig instr_tok instr_switch %type instr_r_head @@ -1331,9 +1331,6 @@ instr_none : INSTR_NONE { $$ = SetupInstr($ instr_var : INSTR_VAR { $$ = SetupInstr($1); } ; -instr_tvar : INSTR_TVAR { $$ = SetupInstr($1); } - ; - instr_i : INSTR_I { $$ = SetupInstr($1); } ; @@ -1379,12 +1376,6 @@ instr_r_head : instr_r '(' { $$ = $1; bParsing instr : instr_none { PASM->EmitOpcode($1); } | instr_var int32 { PASM->EmitInstrVar($1, $2); } | instr_var id { PASM->EmitInstrVarByName($1, $2); } - | instr_tvar ownerType /* ownerType ::= memberRef | typeSpec */ - { PASM->EmitInstrI($1,$2); - PASM->m_tkCurrentCVOwner = $2; - PASM->m_pCustomDescrList = NULL; - iOpcodeLen = 0; - } | instr_i int32 { PASM->EmitInstrI($1, $2); } | instr_i8 int64 { PASM->EmitInstrI8($1, $2); } | instr_r float64 { PASM->EmitInstrR($1, $2); delete ($2);} diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 171f03afe1c27..7ecb7147dd5c9 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -203,237 +203,236 @@ typedef union { #define INSTR_BRTARGET 401 #define INSTR_METHOD 402 #define INSTR_FIELD 403 -#define INSTR_TVAR 404 -#define INSTR_TYPE 405 -#define INSTR_STRING 406 -#define INSTR_SIG 407 -#define INSTR_TOK 408 -#define INSTR_SWITCH 409 -#define _CLASS 410 -#define _NAMESPACE 411 -#define _METHOD 412 -#define _FIELD 413 -#define _DATA 414 -#define _THIS 415 -#define _BASE 416 -#define _NESTER 417 -#define _EMITBYTE 418 -#define _TRY 419 -#define _MAXSTACK 420 -#define _LOCALS 421 -#define _ENTRYPOINT 422 -#define _ZEROINIT 423 -#define _EVENT 424 -#define _ADDON 425 -#define _REMOVEON 426 -#define _FIRE 427 -#define _OTHER 428 -#define _PROPERTY 429 -#define _SET 430 -#define _GET 431 -#define _PERMISSION 432 -#define _PERMISSIONSET 433 -#define REQUEST_ 434 -#define DEMAND_ 435 -#define ASSERT_ 436 -#define DENY_ 437 -#define PERMITONLY_ 438 -#define LINKCHECK_ 439 -#define INHERITCHECK_ 440 -#define REQMIN_ 441 -#define REQOPT_ 442 -#define REQREFUSE_ 443 -#define PREJITGRANT_ 444 -#define PREJITDENY_ 445 -#define NONCASDEMAND_ 446 -#define NONCASLINKDEMAND_ 447 -#define NONCASINHERITANCE_ 448 -#define _LINE 449 -#define P_LINE 450 -#define _LANGUAGE 451 -#define _CUSTOM 452 -#define INIT_ 453 -#define _SIZE 454 -#define _PACK 455 -#define _VTABLE 456 -#define _VTFIXUP 457 -#define FROMUNMANAGED_ 458 -#define CALLMOSTDERIVED_ 459 -#define _VTENTRY 460 -#define RETAINAPPDOMAIN_ 461 -#define _FILE 462 -#define NOMETADATA_ 463 -#define _HASH 464 -#define _ASSEMBLY 465 -#define _PUBLICKEY 466 -#define _PUBLICKEYTOKEN 467 -#define ALGORITHM_ 468 -#define _VER 469 -#define _LOCALE 470 -#define EXTERN_ 471 -#define _MRESOURCE 472 -#define _MODULE 473 -#define _EXPORT 474 -#define LEGACY_ 475 -#define LIBRARY_ 476 -#define X86_ 477 -#define AMD64_ 478 -#define ARM_ 479 -#define ARM64_ 480 -#define MARSHAL_ 481 -#define CUSTOM_ 482 -#define SYSSTRING_ 483 -#define FIXED_ 484 -#define VARIANT_ 485 -#define CURRENCY_ 486 -#define SYSCHAR_ 487 -#define DECIMAL_ 488 -#define DATE_ 489 -#define BSTR_ 490 -#define TBSTR_ 491 -#define LPSTR_ 492 -#define LPWSTR_ 493 -#define LPTSTR_ 494 -#define OBJECTREF_ 495 -#define IUNKNOWN_ 496 -#define IDISPATCH_ 497 -#define STRUCT_ 498 -#define SAFEARRAY_ 499 -#define BYVALSTR_ 500 -#define LPVOID_ 501 -#define ANY_ 502 -#define ARRAY_ 503 -#define LPSTRUCT_ 504 -#define IIDPARAM_ 505 -#define IN_ 506 -#define OUT_ 507 -#define OPT_ 508 -#define _PARAM 509 -#define _OVERRIDE 510 -#define WITH_ 511 -#define NULL_ 512 -#define HRESULT_ 513 -#define CARRAY_ 514 -#define USERDEFINED_ 515 -#define RECORD_ 516 -#define FILETIME_ 517 -#define BLOB_ 518 -#define STREAM_ 519 -#define STORAGE_ 520 -#define STREAMED_OBJECT_ 521 -#define STORED_OBJECT_ 522 -#define BLOB_OBJECT_ 523 -#define CF_ 524 -#define CLSID_ 525 -#define VECTOR_ 526 -#define _SUBSYSTEM 527 -#define _CORFLAGS 528 -#define ALIGNMENT_ 529 -#define _IMAGEBASE 530 -#define _STACKRESERVE 531 -#define _TYPEDEF 532 -#define _TEMPLATE 533 -#define _TYPELIST 534 -#define _MSCORLIB 535 -#define P_DEFINE 536 -#define P_UNDEF 537 -#define P_IFDEF 538 -#define P_IFNDEF 539 -#define P_ELSE 540 -#define P_ENDIF 541 -#define P_INCLUDE 542 -#define CONSTRAINT_ 543 -#define CONST_ 544 +#define INSTR_TYPE 404 +#define INSTR_STRING 405 +#define INSTR_SIG 406 +#define INSTR_TOK 407 +#define INSTR_SWITCH 408 +#define _CLASS 409 +#define _NAMESPACE 410 +#define _METHOD 411 +#define _FIELD 412 +#define _DATA 413 +#define _THIS 414 +#define _BASE 415 +#define _NESTER 416 +#define _EMITBYTE 417 +#define _TRY 418 +#define _MAXSTACK 419 +#define _LOCALS 420 +#define _ENTRYPOINT 421 +#define _ZEROINIT 422 +#define _EVENT 423 +#define _ADDON 424 +#define _REMOVEON 425 +#define _FIRE 426 +#define _OTHER 427 +#define _PROPERTY 428 +#define _SET 429 +#define _GET 430 +#define _PERMISSION 431 +#define _PERMISSIONSET 432 +#define REQUEST_ 433 +#define DEMAND_ 434 +#define ASSERT_ 435 +#define DENY_ 436 +#define PERMITONLY_ 437 +#define LINKCHECK_ 438 +#define INHERITCHECK_ 439 +#define REQMIN_ 440 +#define REQOPT_ 441 +#define REQREFUSE_ 442 +#define PREJITGRANT_ 443 +#define PREJITDENY_ 444 +#define NONCASDEMAND_ 445 +#define NONCASLINKDEMAND_ 446 +#define NONCASINHERITANCE_ 447 +#define _LINE 448 +#define P_LINE 449 +#define _LANGUAGE 450 +#define _CUSTOM 451 +#define INIT_ 452 +#define _SIZE 453 +#define _PACK 454 +#define _VTABLE 455 +#define _VTFIXUP 456 +#define FROMUNMANAGED_ 457 +#define CALLMOSTDERIVED_ 458 +#define _VTENTRY 459 +#define RETAINAPPDOMAIN_ 460 +#define _FILE 461 +#define NOMETADATA_ 462 +#define _HASH 463 +#define _ASSEMBLY 464 +#define _PUBLICKEY 465 +#define _PUBLICKEYTOKEN 466 +#define ALGORITHM_ 467 +#define _VER 468 +#define _LOCALE 469 +#define EXTERN_ 470 +#define _MRESOURCE 471 +#define _MODULE 472 +#define _EXPORT 473 +#define LEGACY_ 474 +#define LIBRARY_ 475 +#define X86_ 476 +#define AMD64_ 477 +#define ARM_ 478 +#define ARM64_ 479 +#define MARSHAL_ 480 +#define CUSTOM_ 481 +#define SYSSTRING_ 482 +#define FIXED_ 483 +#define VARIANT_ 484 +#define CURRENCY_ 485 +#define SYSCHAR_ 486 +#define DECIMAL_ 487 +#define DATE_ 488 +#define BSTR_ 489 +#define TBSTR_ 490 +#define LPSTR_ 491 +#define LPWSTR_ 492 +#define LPTSTR_ 493 +#define OBJECTREF_ 494 +#define IUNKNOWN_ 495 +#define IDISPATCH_ 496 +#define STRUCT_ 497 +#define SAFEARRAY_ 498 +#define BYVALSTR_ 499 +#define LPVOID_ 500 +#define ANY_ 501 +#define ARRAY_ 502 +#define LPSTRUCT_ 503 +#define IIDPARAM_ 504 +#define IN_ 505 +#define OUT_ 506 +#define OPT_ 507 +#define _PARAM 508 +#define _OVERRIDE 509 +#define WITH_ 510 +#define NULL_ 511 +#define HRESULT_ 512 +#define CARRAY_ 513 +#define USERDEFINED_ 514 +#define RECORD_ 515 +#define FILETIME_ 516 +#define BLOB_ 517 +#define STREAM_ 518 +#define STORAGE_ 519 +#define STREAMED_OBJECT_ 520 +#define STORED_OBJECT_ 521 +#define BLOB_OBJECT_ 522 +#define CF_ 523 +#define CLSID_ 524 +#define VECTOR_ 525 +#define _SUBSYSTEM 526 +#define _CORFLAGS 527 +#define ALIGNMENT_ 528 +#define _IMAGEBASE 529 +#define _STACKRESERVE 530 +#define _TYPEDEF 531 +#define _TEMPLATE 532 +#define _TYPELIST 533 +#define _MSCORLIB 534 +#define P_DEFINE 535 +#define P_UNDEF 536 +#define P_IFDEF 537 +#define P_IFNDEF 538 +#define P_ELSE 539 +#define P_ENDIF 540 +#define P_INCLUDE 541 +#define CONSTRAINT_ 542 +#define CONST_ 543 #define YYERRCODE 256 static int yylhs[] = { -1, - 0, 0, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 139, 139, - 38, 38, 136, 136, 136, 2, 2, 1, 1, 1, - 9, 26, 26, 25, 25, 25, 137, 137, 137, 137, - 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 0, 0, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 138, 138, + 38, 38, 135, 135, 135, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 136, 136, 136, 136, + 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 96, 96, 96, 96, 97, 97, 97, 97, 10, 11, 76, 75, 75, 62, 64, 64, 64, 65, 65, 65, - 68, 68, 135, 135, 135, 63, 63, 63, 63, 63, - 63, 133, 133, 133, 122, 12, 12, 12, 12, 12, - 12, 121, 140, 116, 141, 142, 114, 80, 80, 80, + 68, 68, 134, 134, 134, 63, 63, 63, 63, 63, + 63, 132, 132, 132, 121, 12, 12, 12, 12, 12, + 12, 120, 139, 115, 140, 141, 113, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 143, 143, 144, 144, 115, 115, - 145, 145, 59, 59, 60, 60, 72, 72, 18, 18, + 80, 80, 80, 80, 142, 142, 143, 143, 114, 114, + 144, 144, 59, 59, 60, 60, 72, 72, 18, 18, 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 71, 71, 71, 70, 70, 61, 23, 23, 24, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 119, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 71, 71, 71, 70, 70, 61, 23, 23, 24, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 118, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 4, 4, 37, 37, 16, 16, 78, 78, 78, 78, 78, 78, 78, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 79, 77, 77, 77, 77, 77, 77, 147, - 147, 84, 84, 84, 148, 148, 153, 153, 153, 153, - 153, 153, 153, 153, 149, 85, 85, 85, 150, 150, - 154, 154, 154, 154, 154, 154, 154, 155, 40, 40, - 36, 36, 156, 117, 81, 81, 81, 81, 81, 81, + 8, 8, 79, 77, 77, 77, 77, 77, 77, 146, + 146, 84, 84, 84, 147, 147, 152, 152, 152, 152, + 152, 152, 152, 152, 148, 85, 85, 85, 149, 149, + 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, + 36, 36, 155, 116, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 3, 3, 3, 13, 13, 13, 13, 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 157, 118, 118, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 161, 162, 159, 164, - 164, 163, 163, 163, 166, 165, 165, 165, 165, 169, - 169, 169, 172, 167, 170, 171, 168, 168, 168, 120, - 173, 173, 175, 175, 175, 174, 174, 176, 176, 14, - 14, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 43, 43, 43, 43, + 83, 83, 83, 83, 83, 83, 83, 156, 117, 117, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, + 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, + 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, + 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, + 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 178, 33, 33, 34, 34, + 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 45, 45, 45, 46, 46, 46, 50, 50, 49, 49, 48, 48, 47, 47, 51, 51, 52, 52, 52, 53, 53, - 53, 53, 54, 54, 152, 98, 99, 106, 100, 101, - 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 6, 6, 6, 6, 6, 56, - 56, 57, 57, 58, 58, 27, 27, 28, 28, 29, - 29, 29, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 5, 5, 74, 74, 74, 74, 35, 35, + 53, 53, 54, 54, 151, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 6, 6, 6, 6, 6, 56, 56, 57, + 57, 58, 58, 27, 27, 28, 28, 29, 29, 29, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 5, 5, 74, 74, 74, 74, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 22, 22, 15, 15, 15, 15, 15, + 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 44, 44, 44, 44, 44, 44, + 15, 15, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 32, - 32, 31, 31, 31, 31, 31, 134, 134, 134, 134, - 134, 134, 67, 67, 67, 66, 66, 90, 90, 87, - 87, 88, 17, 17, 39, 39, 39, 39, 39, 39, - 39, 39, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 179, 179, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 124, 124, 91, 91, 92, 92, 180, 125, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 126, 126, - 181, 181, 181, 69, 69, 182, 182, 182, 182, 182, - 182, 183, 185, 184, 127, 127, 128, 128, 186, 186, - 186, 186, 129, 151, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 130, 130, 187, 187, 187, 187, - 187, 187, 187, 131, 131, 95, 95, 95, 132, 132, - 188, 188, 188, 188, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 32, 32, 31, + 31, 31, 31, 31, 133, 133, 133, 133, 133, 133, + 67, 67, 67, 66, 66, 90, 90, 87, 87, 88, + 17, 17, 39, 39, 39, 39, 39, 39, 39, 39, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 178, 178, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, + 91, 91, 92, 92, 179, 124, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 125, 125, 180, 180, + 180, 69, 69, 181, 181, 181, 181, 181, 181, 182, + 184, 183, 126, 126, 127, 127, 185, 185, 185, 185, + 128, 150, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 129, 129, 186, 186, 186, 186, 186, 186, + 186, 130, 130, 95, 95, 95, 131, 131, 187, 187, + 187, 187, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -486,575 +485,575 @@ static int yylen[] = { 2, 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 2, 2, 2, 2, 2, 2, 2, 3, 2, - 2, 2, 5, 3, 2, 2, 2, 2, 2, 5, - 4, 6, 2, 4, 0, 3, 3, 1, 1, 0, - 3, 0, 1, 1, 3, 0, 1, 1, 3, 1, - 3, 4, 4, 4, 4, 5, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 3, 4, 1, 0, 10, - 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 2, 3, 4, 6, 5, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, - 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 2, 1, 1, 0, 5, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, + 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, + 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, + 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, + 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, - 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, - 4, 4, 2, 1, 3, 2, 2, 3, 4, 2, - 2, 2, 5, 5, 7, 4, 4, 3, 3, 2, - 4, 3, 3, 2, 1, 1, 2, 3, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 2, 6, 7, 3, 3, - 3, 6, 0, 1, 3, 5, 6, 4, 4, 1, - 3, 3, 1, 1, 1, 1, 4, 1, 6, 6, - 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 5, 4, 7, 6, 7, 6, 9, 8, 3, - 8, 4, 0, 2, 0, 1, 3, 3, 0, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 0, 2, - 3, 1, 1, 1, 1, 3, 8, 2, 3, 1, - 1, 3, 3, 3, 4, 6, 0, 2, 3, 1, - 3, 1, 4, 3, 0, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 0, 2, 2, 3, 3, 4, - 2, 1, 1, 3, 5, 0, 2, 2, 0, 2, - 4, 3, 1, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, + 2, 1, 3, 2, 2, 3, 4, 2, 2, 2, + 5, 5, 7, 4, 4, 3, 3, 2, 4, 3, + 3, 2, 1, 1, 2, 3, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, + 1, 1, 3, 2, 6, 7, 3, 3, 3, 6, + 0, 1, 3, 5, 6, 4, 4, 1, 3, 3, + 1, 1, 1, 1, 4, 1, 6, 6, 6, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, + 4, 7, 6, 7, 6, 9, 8, 3, 8, 4, + 0, 2, 0, 1, 3, 3, 0, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 0, 2, 3, 1, + 1, 1, 1, 3, 8, 2, 3, 1, 1, 3, + 3, 3, 4, 6, 0, 2, 3, 1, 3, 1, + 4, 3, 0, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 0, 2, 2, 3, 3, 4, 2, 1, + 1, 3, 5, 0, 2, 2, 0, 2, 4, 3, + 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 788, - 789, 0, 0, 0, 0, 0, 0, 866, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 786, + 787, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 845, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 773, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, - 787, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 843, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 809, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 559, 739, 0, 716, 724, - 722, 0, 725, 726, 727, 728, 729, 730, 735, 736, - 737, 738, 694, 723, 0, 715, 0, 0, 0, 495, - 0, 560, 561, 562, 0, 0, 0, 0, 0, 0, - 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 807, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 557, 737, 0, 714, 722, + 720, 0, 723, 724, 725, 726, 727, 728, 733, 734, + 735, 736, 692, 721, 0, 713, 0, 0, 0, 495, + 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, + 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 819, 837, 855, 869, 0, 0, 0, 0, 0, + 0, 817, 835, 853, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 0, 558, 0, 31, 0, 0, 0, 0, + 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 804, 0, 0, 810, - 811, 812, 814, 0, 815, 816, 817, 818, 0, 867, - 868, 0, 0, 0, 731, 732, 733, 734, 693, 0, - 696, 0, 717, 719, 237, 238, 0, 0, 0, 0, + 73, 0, 0, 103, 0, 21, 802, 0, 0, 808, + 809, 810, 812, 0, 813, 814, 815, 816, 0, 865, + 866, 0, 0, 0, 729, 730, 731, 732, 691, 0, + 694, 0, 715, 717, 237, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 697, 0, 0, 0, 0, 0, 0, 710, 0, - 702, 0, 0, 0, 0, 0, 701, 700, 0, 0, + 0, 695, 0, 0, 0, 0, 0, 0, 708, 0, + 700, 0, 0, 0, 0, 0, 699, 698, 0, 0, 0, 0, 0, 234, 0, 0, 0, 64, 440, 68, - 750, 0, 0, 496, 497, 499, 500, 501, 502, 503, - 504, 498, 505, 506, 507, 508, 509, 0, 375, 0, - 338, 346, 347, 0, 0, 0, 0, 368, 5, 0, - 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 348, 352, 351, 354, 353, - 355, 0, 340, 342, 349, 361, 339, 0, 0, 0, - 0, 0, 0, 102, 0, 111, 132, 109, 110, 113, - 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, - 112, 131, 124, 123, 133, 0, 136, 0, 107, 0, - 281, 276, 277, 278, 279, 280, 284, 282, 292, 283, - 285, 286, 287, 288, 289, 290, 291, 0, 293, 317, - 0, 0, 0, 416, 0, 415, 0, 414, 0, 413, - 0, 411, 0, 412, 436, 0, 0, 0, 0, 800, - 790, 0, 0, 848, 847, 846, 0, 0, 0, 213, - 0, 199, 193, 194, 195, 196, 201, 202, 203, 204, - 198, 205, 206, 197, 0, 0, 391, 0, 0, 0, - 0, 0, 759, 0, 758, 0, 0, 0, 0, 0, - 314, 315, 0, 0, 0, 0, 75, 69, 0, 96, - 806, 0, 0, 813, 0, 695, 718, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, - 0, 0, 0, 708, 0, 0, 0, 0, 743, 698, - 0, 740, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 27, 0, 105, 242, 256, 0, 0, 845, - 0, 0, 3, 0, 339, 174, 175, 177, 176, 178, - 184, 185, 140, 0, 0, 0, 4, 341, 343, 0, - 0, 0, 0, 0, 0, 0, 350, 513, 512, 515, - 516, 44, 0, 0, 510, 517, 518, 521, 520, 522, - 526, 527, 0, 525, 514, 528, 0, 0, 0, 0, - 533, 0, 0, 0, 0, 0, 385, 0, 383, 386, - 369, 0, 0, 0, 0, 0, 0, 0, 0, 372, - 0, 0, 0, 0, 12, 822, 830, 831, 820, 823, - 0, 0, 842, 0, 0, 13, 0, 840, 0, 838, - 0, 0, 0, 0, 14, 862, 863, 856, 0, 0, - 15, 873, 874, 870, 0, 125, 126, 127, 128, 129, - 130, 0, 106, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 396, 0, 0, 404, - 0, 0, 849, 850, 851, 852, 853, 854, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, - 0, 0, 32, 0, 224, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 707, - 0, 0, 0, 0, 0, 0, 0, 0, 699, 706, - 0, 0, 0, 0, 0, 179, 180, 0, 0, 0, - 0, 0, 139, 0, 245, 259, 855, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 519, 0, 550, 0, - 0, 0, 548, 367, 384, 370, 0, 387, 376, 377, - 378, 379, 381, 382, 380, 0, 0, 0, 0, 825, - 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 861, 0, 0, 0, 0, 0, 0, 151, - 153, 152, 154, 0, 149, 150, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, - 0, 0, 0, 398, 403, 0, 792, 0, 0, 585, - 623, 577, 578, 0, 612, 579, 580, 581, 582, 583, - 584, 614, 590, 591, 592, 593, 0, 0, 0, 620, - 0, 0, 0, 0, 575, 576, 599, 600, 601, 618, - 602, 603, 604, 605, 0, 0, 608, 0, 616, 622, - 273, 0, 0, 0, 0, 0, 0, 0, 747, 0, - 0, 0, 0, 752, 0, 35, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 444, 0, 77, 0, 97, 98, 0, 99, 100, - 101, 0, 0, 0, 692, 691, 0, 0, 0, 0, - 682, 681, 680, 679, 677, 675, 676, 678, 690, 689, - 688, 687, 0, 703, 704, 745, 741, 0, 0, 0, - 244, 243, 0, 0, 258, 257, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 0, 0, 358, - 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, - 0, 531, 0, 0, 534, 0, 0, 0, 344, 0, - 0, 0, 373, 374, 821, 832, 0, 834, 826, 829, - 807, 833, 839, 841, 0, 0, 0, 0, 0, 134, - 0, 0, 0, 0, 157, 0, 0, 0, 148, 141, - 294, 0, 0, 0, 305, 306, 307, 308, 300, 301, - 302, 299, 303, 304, 0, 0, 297, 0, 0, 0, - 0, 0, 0, 402, 410, 409, 408, 407, 405, 406, - 0, 0, 207, 613, 586, 587, 588, 589, 0, 609, - 615, 617, 621, 0, 0, 0, 619, 606, 607, 661, - 630, 631, 0, 658, 632, 633, 634, 635, 636, 637, - 660, 642, 643, 644, 645, 628, 629, 650, 651, 652, - 653, 654, 655, 656, 657, 627, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 646, - 0, 0, 594, 200, 0, 209, 0, 191, 0, 766, - 765, 0, 762, 0, 761, 748, 0, 755, 78, 75, - 70, 0, 0, 541, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 82, 0, 80, 0, 95, 0, 686, - 685, 684, 683, 0, 0, 190, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 172, 251, - 252, 253, 254, 246, 0, 0, 0, 173, 265, 264, - 266, 267, 260, 181, 0, 362, 0, 365, 366, 0, - 45, 46, 0, 530, 0, 536, 537, 345, 0, 549, - 0, 0, 0, 860, 871, 0, 0, 160, 0, 0, - 0, 145, 0, 163, 0, 0, 296, 0, 0, 0, - 318, 319, 320, 321, 0, 0, 796, 0, 794, 0, - 0, 0, 0, 659, 638, 639, 640, 641, 648, 0, - 0, 649, 0, 595, 0, 272, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 211, 441, 0, 0, 78, 0, 0, 0, 217, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 0, 87, 86, - 0, 435, 801, 705, 0, 186, 0, 189, 0, 0, - 247, 248, 249, 250, 263, 261, 262, 357, 0, 0, - 532, 552, 388, 389, 0, 155, 0, 0, 166, 0, - 165, 162, 0, 0, 309, 310, 311, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 647, 0, 0, 596, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 756, 67, 169, 0, 0, 434, 0, 433, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 424, 0, 423, - 0, 422, 0, 421, 0, 419, 417, 0, 418, 420, - 0, 432, 0, 431, 0, 430, 0, 429, 0, 450, - 0, 446, 445, 0, 449, 0, 448, 0, 0, 90, - 0, 0, 0, 0, 0, 0, 364, 0, 0, 158, - 161, 146, 295, 313, 270, 0, 798, 0, 0, 572, - 0, 598, 0, 767, 0, 0, 0, 772, 757, 215, - 214, 484, 480, 428, 0, 427, 0, 426, 0, 425, - 0, 482, 480, 478, 476, 470, 473, 482, 480, 478, - 476, 493, 486, 447, 489, 89, 91, 0, 0, 188, - 0, 0, 0, 0, 168, 0, 0, 625, 0, 571, - 0, 597, 0, 0, 0, 0, 0, 482, 480, 478, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 0, 0, 0, 0, 827, - 322, 0, 769, 770, 771, 466, 485, 465, 481, 0, - 0, 0, 0, 456, 483, 455, 454, 479, 453, 477, - 451, 472, 471, 452, 474, 475, 460, 459, 458, 457, - 469, 494, 488, 487, 467, 490, 0, 468, 492, 255, - 0, 0, 0, 0, 0, 464, 463, 462, 461, 491, - 0, 0, 360, 0, 327, 323, 332, 333, 334, 335, - 336, 324, 325, 326, 328, 329, 330, 331, 274, 0, - 0, 0, 0, 570, 0, 0, 0, 0, 182, 337, - 0, 0, 0, 0, 0, 0, 0, 0, 183, + 748, 0, 0, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 0, 375, 0, 338, + 346, 347, 0, 0, 0, 0, 368, 5, 0, 510, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 348, 352, 351, 354, 353, 355, 0, + 340, 342, 349, 361, 339, 0, 0, 0, 0, 0, + 0, 102, 0, 111, 132, 109, 110, 113, 114, 0, + 115, 116, 117, 118, 119, 120, 121, 122, 112, 131, + 124, 123, 133, 0, 136, 0, 107, 0, 281, 276, + 277, 278, 279, 280, 284, 282, 292, 283, 285, 286, + 287, 288, 289, 290, 291, 0, 293, 317, 0, 0, + 0, 416, 0, 415, 0, 414, 0, 413, 0, 411, + 0, 412, 436, 0, 0, 0, 0, 798, 788, 0, + 0, 846, 845, 844, 0, 0, 0, 213, 0, 199, + 193, 194, 195, 196, 201, 202, 203, 204, 198, 205, + 206, 197, 0, 0, 391, 0, 0, 0, 0, 0, + 757, 0, 756, 0, 0, 0, 0, 0, 314, 315, + 0, 0, 0, 0, 75, 69, 0, 96, 804, 0, + 0, 811, 0, 693, 716, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 0, 0, 0, 0, + 0, 706, 0, 0, 0, 0, 741, 696, 0, 738, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 27, 0, 105, 242, 256, 0, 0, 843, 0, 0, + 3, 0, 339, 174, 175, 177, 176, 178, 184, 185, + 140, 0, 0, 0, 4, 341, 343, 0, 0, 0, + 0, 0, 0, 0, 350, 512, 511, 513, 514, 44, + 0, 0, 509, 515, 516, 519, 518, 520, 524, 525, + 0, 523, 526, 0, 0, 0, 0, 531, 0, 0, + 0, 0, 0, 385, 0, 383, 386, 369, 0, 0, + 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, + 0, 12, 820, 828, 829, 818, 821, 0, 0, 840, + 0, 0, 13, 0, 838, 0, 836, 0, 0, 0, + 0, 14, 860, 861, 854, 0, 0, 15, 871, 872, + 868, 0, 125, 126, 127, 128, 129, 130, 0, 106, + 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 396, 0, 0, 404, 0, 0, 847, + 848, 849, 850, 851, 852, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 0, 0, 0, 0, 32, + 0, 224, 233, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 761, 762, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 705, 0, 0, 0, + 0, 0, 0, 0, 0, 697, 704, 0, 0, 0, + 0, 0, 179, 180, 0, 0, 0, 0, 0, 139, + 0, 245, 259, 853, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 517, 0, 548, 0, 0, 0, 546, + 367, 384, 370, 0, 387, 376, 377, 378, 379, 381, + 382, 380, 0, 0, 0, 0, 823, 822, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 859, + 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, + 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, + 398, 403, 0, 790, 0, 0, 583, 621, 575, 576, + 0, 610, 577, 578, 579, 580, 581, 582, 612, 588, + 589, 590, 591, 0, 0, 0, 618, 0, 0, 0, + 0, 573, 574, 597, 598, 599, 616, 600, 601, 602, + 603, 0, 0, 606, 0, 614, 620, 273, 0, 0, + 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, + 750, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 444, 0, + 77, 0, 97, 98, 0, 99, 100, 101, 0, 0, + 0, 690, 689, 0, 0, 0, 0, 680, 679, 678, + 677, 675, 673, 674, 676, 688, 687, 686, 685, 0, + 701, 702, 743, 739, 0, 0, 0, 244, 243, 0, + 0, 258, 257, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 0, 0, 0, 358, 0, 0, 0, + 0, 0, 0, 359, 0, 0, 0, 0, 529, 0, + 0, 532, 0, 0, 0, 344, 0, 0, 0, 373, + 374, 819, 830, 0, 832, 824, 827, 805, 831, 837, + 839, 0, 0, 0, 0, 0, 134, 0, 0, 0, + 0, 157, 0, 0, 0, 148, 141, 294, 0, 0, + 0, 305, 306, 307, 308, 300, 301, 302, 299, 303, + 304, 0, 0, 297, 0, 0, 0, 0, 0, 0, + 402, 410, 409, 408, 407, 405, 406, 0, 0, 207, + 611, 584, 585, 586, 587, 0, 607, 613, 615, 619, + 0, 0, 0, 617, 604, 605, 659, 628, 629, 0, + 656, 630, 631, 632, 633, 634, 635, 658, 640, 641, + 642, 643, 626, 627, 648, 649, 650, 651, 652, 653, + 654, 655, 625, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 644, 0, 0, 592, + 200, 0, 209, 0, 191, 0, 764, 763, 0, 760, + 0, 759, 746, 0, 753, 78, 75, 70, 0, 0, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, + 82, 0, 80, 0, 95, 0, 684, 683, 682, 681, + 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 172, 251, 252, 253, 254, + 246, 0, 0, 0, 173, 265, 264, 266, 267, 260, + 181, 0, 362, 0, 365, 366, 0, 45, 46, 0, + 528, 0, 534, 535, 345, 0, 547, 0, 0, 0, + 858, 869, 0, 0, 160, 0, 0, 0, 145, 0, + 163, 0, 0, 296, 0, 0, 0, 318, 319, 320, + 321, 0, 0, 794, 0, 792, 0, 0, 0, 0, + 657, 636, 637, 638, 639, 646, 0, 0, 647, 0, + 593, 0, 272, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 211, 441, + 0, 0, 78, 0, 0, 0, 217, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 87, 86, 0, 435, 799, + 703, 0, 186, 0, 189, 0, 0, 247, 248, 249, + 250, 263, 261, 262, 357, 0, 0, 530, 550, 388, + 389, 0, 155, 0, 0, 166, 0, 165, 162, 0, + 0, 309, 310, 311, 312, 0, 0, 0, 0, 0, + 0, 0, 0, 645, 0, 0, 594, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 754, 67, 169, + 0, 0, 434, 0, 433, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 424, 0, 423, 0, 422, 0, + 421, 0, 419, 417, 0, 418, 420, 0, 432, 0, + 431, 0, 430, 0, 429, 0, 450, 0, 446, 445, + 0, 449, 0, 448, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 158, 161, 146, 295, + 313, 270, 0, 796, 0, 0, 570, 0, 596, 0, + 765, 0, 0, 0, 770, 755, 215, 214, 484, 480, + 428, 0, 427, 0, 426, 0, 425, 0, 482, 480, + 478, 476, 470, 473, 482, 480, 478, 476, 493, 486, + 447, 489, 89, 91, 0, 0, 188, 0, 0, 0, + 0, 168, 0, 0, 623, 0, 569, 0, 595, 0, + 0, 0, 0, 0, 482, 480, 478, 476, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0, 0, 0, 0, 825, 322, 0, 767, + 768, 769, 466, 485, 465, 481, 0, 0, 0, 0, + 456, 483, 455, 454, 479, 453, 477, 451, 472, 471, + 452, 474, 475, 460, 459, 458, 457, 469, 494, 488, + 487, 467, 490, 0, 468, 492, 255, 0, 0, 0, + 0, 0, 464, 463, 462, 461, 491, 0, 0, 360, + 0, 327, 323, 332, 333, 334, 335, 336, 324, 325, + 326, 328, 329, 330, 331, 274, 0, 0, 0, 0, + 568, 0, 0, 0, 0, 182, 337, 0, 0, 0, + 0, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 485, 906, 159, 785, 105, 106, 811, 35, - 36, 714, 790, 424, 1141, 73, 721, 837, 838, 1043, - 1044, 1090, 1554, 1555, 586, 1610, 791, 792, 793, 211, - 532, 533, 175, 176, 902, 903, 1148, 694, 1153, 1073, - 1322, 941, 942, 282, 1576, 1577, 1572, 1567, 1574, 1575, - 1566, 1583, 1584, 1582, 161, 710, 535, 536, 1270, 1271, - 1048, 712, 1381, 713, 943, 700, 701, 1205, 812, 1274, - 839, 663, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1634, 754, 755, 843, 695, 696, 92, 37, - 113, 492, 115, 205, 116, 38, 39, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 40, 41, 312, 42, 43, 181, 44, 356, - 46, 47, 357, 49, 50, 370, 51, 371, 52, 372, - 53, 373, 54, 358, 359, 360, 58, 361, 306, 60, - 61, 62, 189, 399, 665, 563, 564, 997, 565, 998, - 566, 215, 1234, 1243, 63, 904, 362, 363, 364, 365, - 798, 367, 368, 611, 612, 369, 613, 799, 614, 615, - 616, 617, 64, 201, 76, 436, 437, 945, 65, 637, - 629, 630, 631, 632, 639, 640, 648, 654, + 158, 71, 483, 903, 159, 782, 105, 106, 808, 35, + 36, 711, 787, 422, 1138, 73, 718, 834, 835, 1040, + 1041, 1087, 1551, 1552, 584, 1607, 788, 789, 790, 211, + 530, 531, 175, 176, 899, 900, 1145, 691, 1150, 1070, + 1319, 938, 939, 282, 1573, 1574, 1569, 1564, 1571, 1572, + 1563, 1580, 1581, 1579, 161, 707, 533, 534, 1267, 1268, + 1045, 709, 1378, 710, 940, 697, 698, 1202, 809, 1271, + 836, 660, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1631, 751, 752, 840, 692, 693, 92, 37, + 113, 490, 115, 205, 116, 38, 39, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 40, 41, 312, 42, 43, 181, 44, 354, 46, + 47, 355, 49, 50, 368, 51, 369, 52, 370, 53, + 371, 54, 356, 357, 358, 58, 359, 306, 60, 61, + 62, 189, 397, 662, 561, 562, 994, 563, 995, 564, + 215, 1231, 1240, 63, 901, 360, 361, 362, 363, 795, + 365, 366, 608, 609, 367, 610, 796, 611, 612, 613, + 614, 64, 201, 76, 434, 435, 942, 65, 634, 626, + 627, 628, 629, 636, 637, 645, 651, }; static int yysindex[] = { 0, -15539, 0, -395, 477, 0, 65, -185, 2448, 2448, 0, - 0, -178, 1145, 66, 82, -379, -284, 0, -19, -53, - -53, 373, 373,12942, 252, 0, 477, 477, 477, 477, - 0, 0, -8, 0, 176, 176, 176, 0, 0, 0, - 304, 334, 0, 0, 0, 0, 0, 0, 0, 366, - 408, 420, 463, 0, 0, 0, 0, 0, 0, 176, - 0, 26, 0, 856, -53, 0, 0, 0, 0, 453, - 0, -53, 0, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1847, -13, 555, 0, 0, 612, 643, 0, 0, - 744, 1123, 1123,13145,11660, 0, 633, 0, 0, 677, - -53, -53, -158, 0, 1801, -85, 477, 453, 0, 0, - 0, 0, 0, 0, 0, 0, 0,11660, 0, 0, - 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -45, 0, 436, -45, 704, 0, - 7268, 0, 0, 0, 1554, 50, 346, 453, 699, 210, - 0, 427, 431, 0, 439, 467, 2150, -45, 163, 453, - 453, 453, 0, 0, 758, 610, 851, 860, 0, 0, -14557, 0, 0, 0, 0, 885, 4418, 1847, 588, 6628, - 887, 80, 93, 105, 196, 215, 423, 918, 1372, 933, - 0, 0, 176, 147, 973, 477, 894,12568, 917, 73, - 710, 0, 558, 0, 1123, 0, 977, 37, 980, 775, - -53, -53, 0, 0, 0, 0, 0, 0, 0, 1005, - 0,12163, 191, 0, 974, 0, 0, -1, 1801, 0, - 0, 0, 0, 605, 0, 0, 0, 0, 453, 0, - 0, 15, 453, 0, 0, 0, 0, 0, 0, -45, - 0, 815, 0, 0, 0, 0,12728, 1062, 1067, 928, - 1070, 1089, 1101, 1110, 1112, 1116, 1124, 1132, 1133, 1137, - 524, 0, 477, 1072, 86, 1086, 816, 453, 0, 477, - 0, 1142, 1146, 477, 110,11660, 0, 0, 477, 477, - 477, 477,11660, 0, -45, 1068, 980, 0, 0, 0, - 0,12518,15513, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -53, 0, -53, - 0, 0, 0, -53, 1103, -61,13248, 0, 0, 1147, - 0, 722, -53, 373, 97, 722, 2150, 6957,13145, 1847, - -123, 1123,13145, 1155, 176, 0, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 857, -60, 1182, - 1532, 331, 375, 0, 1163, 0, 0, 0, 0, 0, - 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 218, 0, 1847, 0, 1164, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1167, 0, 0, - 1173, -53, -53, 0, -53, 0, -53, 0, 373, 0, - 255, 0, 255, 0, 0, 1090, 1172, 400, 1176, 0, - 0, -53, -53, 0, 0, 0, 593, 453, 0, 0, - 1186, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1195, 587, 0, 477, 441, 975, - 1127,11660, 0,13348, 0, 984, 1203, 1207, 1210, 2150, - 0, 0, -2, 453, 1199, 987, 0, 0, 980, 0, - 0, 798, 21, 0, 477, 0, 0, 453, 990, 515, - -53, 1226, 1227, 1229, 1231, -53, -53, -53, 373, 623, - 755, -53, -53, -53, 373, 816, 453, 0, 634, 477, - 477, 477, 453, 0, 453, 1847, 1847, 453, 0, 0, - 997, 0, 99, 710, 1216, 1235, 453, 453, 453, 453, -12313, 0, 0, 919, 0, 0, 0, -53, -53, 0, - -293,13451, 0, 1159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1166, 1169, 1170, 0, 0, 0, 1228, - -53, 381, 497, -53, 0, 1013, 0, 0, 0, 0, - 0, 0, 1250, 1254, 0, 0, 0, 0, 0, 0, - 0, 0,12728, 0, 0, 0, 1257, 980, 176,11660, - 0, 722, 1258, 1265, 0,14655, 0, 1847, 0, 0, - 0, 857, -64, -64, -64, -64, -60, 981, 989, 0, - 840, 1248, 48, -5, 0, 0, 0, 0, 0, 0, - 176, 176, 0, 1256, 1260, 0, 176, 0, 176, 0, - 1271, -211, 477, 847, 0, 0, 0, 0, 477, 852, - 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 1278, -53, 975, 7579, 975, 1283, - 1236, 1292, 1293, 1302, 1306, 1314, 0, 1372, 1322, 0, - 1309, 1320, 0, 0, 0, 0, 0, 0, -53,15879, - 14, 740, 0, 74, 1327, 1325, 0, 729, 217, 1326, - 1246, 1312, 0, 1111, 0, 0, 1317, 7890, 1335, 1342, - -167, 1259, 3176, 533, 176, 477, 453, 477, 0, 0, - 1345, 1346, -53, -53, -53, 373, 1347, 1348, 1351, 1365, - 1366, 1367, 1368, 1370, 1371, 1374, 1379, 1380, 453, 0, - 477, 699, 699, 699, 1383, 1390, -53, 110, 0, 0, -11660, 1343, 1847,13045, 1719, 0, 0, 973, 537, 568, - 0, 1139, 0,14752, 0, 0, 0, -53, 1341, -53, - 453, -53, 875, 1349,11660, -167, -53, 373, 453, 1177, - 975, 1402, 106, 1400, 1405, 1406, 0, 0, 0, 7579, - 1415, 1413, 0, 0, 0, 0, 722, 0, 0, 0, - 0, 0, 0, 0, 0, 400, -53, -53, 1418, 0, - 0, 1401, 1421, 980, 1424, 1429, 1422, 1433, 1437, 1438, - -53, 477, 0, 453, 477, 29, 477, 1439, 1441, 0, - 0, 0, 0, 1188, 0, 0, 124, 275, 1425, 1847, - 1442, 8, 1125, -215, 98, 921, 1397, 0, 1397, 1397, - 1397, 1397, 1397, 0, 0, -53, 0, -53, 1448, 0, - 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1450, 994, 1003, 0, - 992, 1456, -342, 1220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1450, 1450, 0, 3745, 0, 0, - 0, 135, 1463, 176, 400, 1445, 0, 635, 0, 975, - 1382, 0,13348, 0, 1386, 0, 358, -53, 1449, 0, - 0, 453, 1199, 0, 434, 456, 939, 461, 465, 486, - 490, 493, 499, 520, 573, 574, 613, 614, 637, 641, - 0, 0, 55, 0, 176, 0, 0, 400, 0, 0, - 0, 1469, 453, 453, 0, 0, 1471, 1475, 1478, 1480, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 699, 0, 0, 0, 0, 710, 0, 1071, - 0, 0, 453, 477, 0, 0,11660, 453, -53, 453, - -53, 959,11660, -167,13972, 0, 272, 546, 1143, 0, - 1135, 1431, 1434, 1847, 1445,12728, 0, 1488, 1489, 477, - 985, 0, 0, 722, 0, 722, 1490, 98, 0, 0, - 1215, 1217, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 1497, 699, 453, -53, 453, 0, - -53, 1501, 1188, 1847, 0, 1847, 1048, 477, 0, 0, - 0, 975, 1706, 1507, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1494, 1500, 0, 1466, 1467, 1468, - 1470, 1522, -167, 0, 0, 0, 0, 0, 0, 0, - 1520, 0, 0, 0, 0, 0, 0, 0, 1060, 0, - 0, 0, 0, 975, 1477, 1484, 0, 0, 0, 0, - 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -6, 95, 0, 0, -55, 0, 2859, 0, 1526, 0, - 0, 980, 0, 1536, 0, 0, 1454, 0, 0, 0, - 0, 980, 1485, 0, 1538, 1539, 1541, 1543, 515, -53, - -53, -53, 656, 673, 703, 733, -53, -53, -53, -53, - -53, -53, 373, -53, 623, -53, 755, -53, -53, -53, - -53, -53, -53, -53, 373, -53, 3176, -53, 352, -53, - 964, -53, 0, 0, 3605, 0, 1544, 0, 1174, 0, - 0, 0, 0, 1553, 2150, 0, 453, 587, 1504, 1505, - 1847,12728, 1088, 0, 2150, 2150, 2150, 2150, 0, 0, - 0, 0, 0, 0, 2150, 2150, 2150, 0, 0, 0, - 0, 0, 0, 0, 400, 0, 1556, 0, 0, 1328, - 0, 0, 453, 0, 1560, 0, 0, 0, 400, 0, - 400, -53, 1545, 0, 0, 1563, -53, 0, 477, 1565, - 1569, 0, 36, 0, 1048, 980, 0, -53, 552, 606, - 0, 0, 0, 0,15879, 1547, 0, -53, 0, 1558, - 965, -53, -53, 0, 0, 0, 0, 0, 0, 975, - 1528, 0, -53, 0, 56, 0, 1583, 1584, 961, 1586, - 1587, 1589, 1590, 1591, 1595, 1596, 1597, 1599, 1600, 0, - 980, 0, 0, -53, 578, 0, 151, 1516, 1580, 0, - 0, 0, 0, 1602, 1551, 1604, 1568, -53, -53, -53, - -53, -53, -53, 373, -53, 1606, 1570, 1621, 1571, 1624, - 1573, 1626, 1575, 1628, 1630, 1579, 1632, 1633, 1585, 1645, - 1610, 1648, 1611, 1652, 1612, 1666, 1615, 1672, 1635, 1676, - 1684, 1636, 1685, 1472, 1689, 1638, 0, 1020, 0, 0, - 615, 0, 0, 0, 629, 0, 1693, 0, 1474, 1123, - 0, 0, 0, 0, 0, 0, 0, 0, 1847, -167, - 0, 0, 0, 0, 48, 0, 1700, 1048, 0, 1847, - 0, 0, 1894, 1701, 0, 0, 0, 0, 1702, 1704, - 0, -53, 975, 1653, 1656, 980, 0, 1657, -53, 0, - 1705, 1711, 1712, 1713, 1718, 1696, 1707, 1709, 1723, 402, - 0, 0, 0, 1734, 1739, 0, 1744, 0, 1749, 1754, - 1697, 1755, 1714, 1756, 1715, 1757, 1716, 0, 1759, 0, - 1760, 0, 1762, 0, 1764, 0, 0, 1772, 0, 0, - 1774, 0, 1775, 0, 1776, 0, 1781, 0, 1782, 0, - 1784, 0, 0, 1785, 0, 1786, 0, 1788, 1566, 0, - 1733, 562, 0, 1847, -167,11660, 0, 1770, 1790, 0, - 0, 0, 0, 0, 0, 0, 0, 1798, 821, 0, -15907, 0, 1750, 0, -53, -53, -53, 0, 0, 0, - 0, 0, 0, 0, 1802, 0, 1809, 0, 1810, 0, - 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3176, 1817, 0, - 1770,12728, 1761, 1821, 0, 48, 1822, 0, 975, 0, - 0, 0, 1823, 1824, 1825, 28, 45, 0, 0, 0, - 0, 54, 59, 63, 57, 149, 158, 89, 101, 114, - 152, 3540, 39, 133, 0, 1445, 1827, 1588, 0, 0, - 0, 1010, 0, 0, 0, 0, 0, 0, 0, 116, - 127, 131, 173, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1605, 0, 0, 0, - 0, -167, 1831, 2372, 975, 0, 0, 0, 0, 0, - 1832, 1834, 0, 1835, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075, - 1373, 0, -53, 0, 1518, 1836, 1837, 1123, 0, 0, -11660,12728, 1607, -167, 1770, 1839, 0, 1841, 0, + 1268, 0, -347, 637, 0, 88, -221, 1813, 1813, 0, + 0, -117, 3147, 127, 149, -373, -226, 0, -42, 158, + 158, 480, 480,10333, 134, 0, 637, 637, 637, 637, + 0, 0, 98, 0, -3, -3, -3, 0, 0, 0, + 306, 421, 0, 0, 0, 0, 0, 0, 0, 453, + 496, 515, 564, 0, 0, 0, 0, 0, 0, -3, + 0, 288, 0, 1056, 158, 0, 0, 0, 0, 417, + 0, 158, 0, 0, 0, 368, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12328, 55, 590, 0, 0, 642, 689, 0, 0, + 848, 1026, 1026,12234, 8263, 0, 672, 0, 0, 697, + 158, 158, -24, 0, 2401, -135, 637, 417, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8263, 0, 0, + 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1138, 0, 451, 1138, 510, 0, + 6011, 0, 0, 0, 1641, 31, 39, 417, 716, 178, + 0, 380, 384, 0, 389, 401, 2050, 1138, 62, 417, + 417, 417, 0, 0, 747, 540, 815, 820, 0, 0, +13655, 0, 0, 0, 0, 830, 5887,12328, 576, 6920, + 840, 50, 79, 80, 93, 107, 109, 856, 964, 885, + 0, 0, -3, 131, 829, 637, 827,11830, 908, 96, + 567, 0, 475, 0, 1026, 0, 901, 70, 946, 764, + 158, 158, 0, 0, 0, 0, 0, 0, 0, 969, + 0, 1870, 54, 0, 954, 0, 0, 12, 2401, 0, + 0, 0, 0, 575, 0, 0, 0, 0, 417, 0, + 0, 14, 417, 0, 0, 0, 0, 0, 0, 1138, + 0, 773, 0, 0, 0, 0,11960, 1016, 1024, 931, + 1039, 1044, 1048, 1053, 1055, 1057, 1059, 1062, 1064, 1071, + 300, 0, 637, 1020, 76, 1023, 687, 417, 0, 637, + 0, 1081, 1091, 637, 266, 8263, 0, 0, 637, 637, + 637, 637, 8263, 0, 1138, 1008, 946, 0, 0, 0, + 0, 7154,14674, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 158, 0, 158, 0, + 0, 0, 158, 1045, -57,12413, 0, 0, 1077, 0, + 782, 158, 480, 568, 782, 2050, 5701,12328, -174, 1026, +12234, 1098, -3, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 1082, 230, 15, 273, 246, + 340, 0, 1099, 0, 0, 0, 0, 0, 0, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 367, 0,12328, 0, 1110, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1123, 0, 0, 1124, 158, + 158, 0, 158, 0, 158, 0, 480, 0, 414, 0, + 414, 0, 0, 1031, 1097, 368, 1131, 0, 0, 158, + 158, 0, 0, 0, 936, 417, 0, 0, 1133, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1134, 1116, 0, 637, 179, 915, 1058, 8263, + 0,12602, 0, 916, 1147, 1141, 1152, 2050, 0, 0, + 106, 417, 1136, 920, 0, 0, 946, 0, 0, 734, + 30, 0, 637, 0, 0, 417, 925, 520, 158, 1161, + 1162, 1164, 1168, 158, 158, 158, 480, 692, 572, 158, + 158, 158, 480, 687, 417, 0, 180, 637, 637, 637, + 417, 0, 417,12328,12328, 417, 0, 0, 934, 0, + 118, 567, 1157, 1184, 417, 417, 417, 417,11622, 0, + 0, 868, 0, 0, 0, 158, 158, 0, -274,12687, + 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1112, 1114, 1118, 0, 0, 0, 1181, 158, 516, + 542, 158, 0, 979, 0, 0, 0, 0, 0, 0, + 1203, 1204, 0, 0, 0, 0, 0, 0, 0, 0, +11960, 0, 0, 1224, 946, -3, 8263, 0, 782, 1228, + 1225, 0,13822, 0,12328, 0, 0, 0, 1082, -46, + -46, -46, -46, 230, 966, 967, 0, 819, 1229, 42, + -7, 0, 0, 0, 0, 0, 0, -3, -3, 0, + 1236, 1237, 0, -3, 0, -3, 0, 1260, -209, 637, + 838, 0, 0, 0, 0, 637, 839, 0, 0, 0, + 0, 158, 0, 0, 0, 0, 0, 0, 58, 0, + 0, 1266, 158, 915, 6321, 915, 1278, 1227, 1288, 1289, + 1290, 1295, 1304, 0, 964, 1307, 0, 1291, 1319, 0, + 0, 0, 0, 0, 0, 158,15061, 13, 511, 0, + 456, 1310, 1322, 0, 614, 1370, 1324, 1245, 1312, 0, + 1117, 0, 0, 1314, 6631, 1341, 1344, -124, 1261, 3441, + 405, -3, 637, 417, 637, 0, 0, 1349, 1359, 158, + 158, 158, 480, 1362, 1363, 1364, 1367, 1375, 1389, 1401, + 1403, 1405, 1407, 1414, 1415, 417, 0, 637, 716, 716, + 716, 1416, 1417, 158, 266, 0, 0, 8263, 1419,12328, +12134, 1192, 0, 0, 829, 607, 625, 0, 1195, 0, +13905, 0, 0, 0, 158, 1377, 158, 417, 158, 754, + 1379, 8263, -124, 158, 480, 417, 1199, 915, 1433, 220, + 1431, 1438, 1436, 0, 0, 0, 6321, 1440, 1446, 0, + 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, + 0, 0, 368, 158, 158, 1455, 0, 0, 1441, 1456, + 946, 1450, 1459, 1462, 1463, 1465, 1466, 158, 637, 0, + 417, 637, 24, 637, 1469, 1472, 0, 0, 0, 0, + 1226, 0, 0, 545, 182, 1464,12328, 1486, 10, 1876, + -130, 152, 864, 1439, 0, 1439, 1439, 1439, 1439, 1439, + 0, 0, 158, 0, 158, 1490, 0, 0, 0, 0, + 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1492, 1046, 1049, 0, 1047, 1506, -387, + 1270, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1492, 1492, 0,15144, 0, 0, 0, 155, 1508, + -3, 368, 1494, 0, 2547, 0, 915, 1426, 0,12602, + 0, 1434, 0, 111, 158, 1496, 0, 0, 417, 1136, + 0, 124, 132, 1139, 136, 142, 163, 349, 397, 441, + 442, 457, 471, 503, 507, 509, 549, 0, 0, 289, + 0, -3, 0, 0, 368, 0, 0, 0, 1515, 417, + 417, 0, 0, 1518, 1519, 1520, 1525, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, + 0, 0, 0, 0, 567, 0, 1119, 0, 0, 417, + 637, 0, 0, 8263, 417, 158, 417, 158, 880, 8263, + -124,14825, 0, 719, 776, 587, 0, 1177, 1476, 1480, +12328, 1494,11960, 0, 1533, 1534, 637, 912, 0, 0, + 782, 0, 782, 1535, 152, 0, 0, 1262, 1264, 0, + 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, + 0, 1536, 716, 417, 158, 417, 0, 158, 1538, 1226, +12328, 0,12328, 970, 637, 0, 0, 0, 915, 2200, + 1543, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1537, 1539, 0, 1498, 1500, 1501, 1503, 1558, -124, + 0, 0, 0, 0, 0, 0, 0, 1557, 0, 0, + 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, + 915, 1514, 1527, 0, 0, 0, 0, 0, 0, 724, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 99, 0, + 0, -54, 0, 2535, 0, 1576, 0, 0, 946, 0, + 1579, 0, 0, 1504, 0, 0, 0, 0, 946, 1528, + 0, 1587, 1591, 1594, 1595, 520, 158, 158, 158, 553, + 556, 559, 566, 158, 158, 158, 158, 158, 158, 480, + 158, 692, 158, 572, 158, 158, 158, 158, 158, 158, + 158, 480, 158, 3441, 158, -139, 158, 802, 158, 0, + 0, 3743, 0, 1596, 0, 1215, 0, 0, 0, 0, + 1598, 2050, 0, 417, 1116, 1547, 1552,12328,11960, 1137, + 0, 2050, 2050, 2050, 2050, 0, 0, 0, 0, 0, + 0, 2050, 2050, 2050, 0, 0, 0, 0, 0, 0, + 0, 368, 0, 1604, 0, 0, 1380, 0, 0, 417, + 0, 1614, 0, 0, 0, 368, 0, 368, 158, 1599, + 0, 0, 1615, 158, 0, 637, 1617, 1616, 0, 58, + 0, 970, 946, 0, 158, 541, 646, 0, 0, 0, + 0,15061, 1601, 0, 158, 0, 1603, 1017, 158, 158, + 0, 0, 0, 0, 0, 0, 915, 1566, 0, 158, + 0, 148, 0, 1622, 1625, 1169, 1630, 1642, 1643, 1644, + 1645, 1646, 1647, 1652, 1657, 1666, 0, 946, 0, 0, + 158, 635, 0, 85, 1578, 1648, 0, 0, 0, 0, + 1667, 1621, 1668, 1628, 158, 158, 158, 158, 158, 158, + 480, 158, 1674, 1632, 1685, 1634, 1687, 1637, 1690, 1640, + 1694, 1695, 1649, 1696, 1697, 1650, 1700, 1651, 1704, 1653, + 1706, 1659, 1709, 1661, 1712, 1662, 1715, 1716, 1665, 1718, + 1497, 1720, 1672, 0, 1101, 0, 0, 677, 0, 0, + 0, 488, 0, 1724, 0, 1509, 1026, 0, 0, 0, + 0, 0, 0, 0, 0,12328, -124, 0, 0, 0, + 0, 42, 0, 1731, 970, 0,12328, 0, 0, 5408, + 1741, 0, 0, 0, 0, 1746, 1749, 0, 158, 915, + 1698, 1699, 946, 0, 1703, 158, 0, 1750, 1753, 1770, + 1775, 1776, 1758, 1760, 1764, 1783, 128, 0, 0, 0, + 1787, 1788, 0, 1790, 0, 1791, 1792, 1739, 1793, 1742, + 1795, 1744, 1797, 1747, 0, 1799, 0, 1801, 0, 1806, + 0, 1811, 0, 0, 1812, 0, 0, 1814, 0, 1822, + 0, 1827, 0, 1831, 0, 1836, 0, 1837, 0, 0, + 1842, 0, 1843, 0, 1845, 1620, 0, 1794, 440, 0, +12328, -124, 8263, 0, 1826, 1833, 0, 0, 0, 0, + 0, 0, 0, 0, 1848, 941, 0,15226, 0, 1802, + 0, 158, 158, 158, 0, 0, 0, 0, 0, 0, + 0, 1852, 0, 1854, 0, 1856, 0, 1859, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3441, 1860, 0, 1826,11960, 1818, + 1862, 0, 42, 1872, 0, 915, 0, 0, 0, 1873, + 1874, 1875, 16, 21, 0, 0, 0, 0, 45, 48, + 64, 11, 529, 608, 77, 91, 94, 115, 2831, 41, + 643, 0, 1494, 1871, 1655, 0, 0, 0, 1028, 0, + 0, 0, 0, 0, 0, 0, 104, 120, 139, 126, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1676, 0, 0, 0, 0, -124, 1885, + 3401, 915, 0, 0, 0, 0, 0, 1894, 1897, 0, + 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 982, 1435, 0, 158, + 0, 1592, 1908, 1910, 1026, 0, 0, 8263,11960, 1678, + -124, 1826, 1913, 0, 1914, 0, }; static int yyrindex[] = { 0, - 0, 0, 4856, 0, 0,12823, 1262, 0, 0, 0, - 0, 0,13809, 0, 0, 248, 2223, 0, 1160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1842, 1842, 1842, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1842, - 0, -49, 0, 0, 0, 0, 0, 0, 0, 1765, - 0, 0, 0, 0, 0, 1428, 0, 0, 0, 0, + 0, 0, 6197, 0, 0,12011, 2235, 0, 0, 0, + 0, 0,12533, 0, 0, 311, 2705, 0, 9154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9828, 0, 0, 0, 0, 0, 0, -12104,13691,13691, 0, 0, 0, 8344, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2964, 0, 0, + 0, 0, 0, 0, 1917, 1917, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917, + 0, -60, 0, 0, 0, 0, 0, 0, 0, 1839, + 0, 0, 0, 0, 0, 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8564, 0, 0, 0, 0, 0, 0, +12982,13038,13038, 0, 0, 0, 7083, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1933, 2809, 0, - 0, 0, 0, 0, 0, 0,13809, 1804, 6920, 7231, - 7542, 7853, 0, 0, 0, 1844, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1766,13691, - 0,11591,11591,11591,11591,11591,11591, 0, 0, 0, - 0, 0, 1842,10206, 0, 0, 0, 0, 0, 0, - 9221, 0,11160, 0,13809, 0, 0, 0,11340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 863, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1767, 0, - 0, 1807, 3402, 6618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2019, 2627, 0, + 0, 0, 0, 0, 0, 0,12533, 1829, 5664, 5974, + 6284, 6594, 0, 0, 0, 1919, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1840,13038, + 0,10267,10267,10267,10267,10267,10267, 0, 0, 0, + 0, 0, 1917, 8939, 0, 0, 0, 0, 0, 0, + 7956, 0, 9874, 0,12533, 0, 0, 0,10047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4999, 0, 0, - 0, 0, 0, 0, 1843, 1869, 0, 0, 0, 0, - 0, 0, 0, 0, 1804, 0, 8164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1073, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1841, 0, + 0, 1844,10736, 5363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4147, 0, 0, + 0, 0, 0, 0, 1921, 1904, 0, 0, 0, 0, + 0, 0, 0, 0, 1829, 0, 6904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13809, 0, 0, 0, - 0,13809, 0, 0, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,12533, 0, 0, 0,12533, + 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1813, 1495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1814, 0, 0,10026, 0, 0,13809, - 0, 0, 1843, 61, 1892, 0, 0, 0, 8600, 0, - 0, 3840, 1818, 0, 0, 0, 0,14071, 0, 0, + 0, 0, 0, 0, 1847, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1846, 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5437, 0, 0, 0, - 0, 0, 5875, 0, 2371, 0, 0, 4278, 0, 0, - 376, 0, 0, 596, 0, 1872, 4716, 5154, 5592, 6030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1849, 0, 0, 8766, 0, 0,12533, 0, 0, + 1921, 40, 1928, 0, 0, 0, 7338, 0, 0,10767, + 1853, 0, 0, 0, 0,13338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4451, 0, 0, 0, 0, 0, + 4755, 0, 2323, 0, 0,10879, 0, 0, 137, 0, + 0, 597, 0, 1915,11041,11068,11201,11312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14849, 1842, 0, - 0, 1899, 0, 0,13746, 0, 0, 0, 0, 0, - 0,15013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1842, 1842, 0, 0, 0, 0, 1842, 0, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,13988, 1917, 0, 0, 1929, 0, + 0,13131, 0, 0, 0, 0, 0, 0,14139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 455, 0, 0, 1819, 0, 3088, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1917, 1917, 0, + 0, 0, 0, 1917, 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,10404, 0, 0, 0, 0, 0, 0, 0, 594, - 2088, 0, 9472, 0, 0, 1902, 0, 0, 0, 1828, - 0, 0, 0, 0, 0, 0, 8780, 1869, 0, 0, - 0, 0, 69, 0, 1842, 0, 1833, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, + 0, 1892, 0, 5543, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9123, 0, + 0, 0, 0, 0, 0, 0, 116, 1240, 0, 8207, + 0, 0, 1934, 0, 0, 0, 1891, 0, 0, 0, + 0, 0, 0, 7517, 1904, 0, 0, 0, 0, -75, + 0, 1917, 0, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6313, 0, - 0, 3247, 3685, 4123, 0, 0, 460, 666, 0, 0, - 0,12456, 0, 0,13809, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5059, 0, 0, 2931, 3235, + 3539, 0, 0, 185, 362, 0, 0, 0,11771, 0, + 0,12533, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14306, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, + 1976, 0, 1982, 0,13131, 0, 0, 0, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15110, 0, 0, 0, 0, 0, 0, 0,14460, 0, - 0, 0, 0, 1907, 0, 1913, 0,13746, 0, 0, - 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5928, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, - 0, 0, 0,13537, 0, 0, 455, 0, 0, 0, - 0, 3088, 0, 0, 256, 0,11591, 0,11591,11591, -11591,11591,11591, 0, 0, 0, 0, 0, 0, 0, + 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12760, 0, 0, 191, 0, 0, 0, 0, 5543, 0, + 0, 585, 0,10267, 0,10267,10267,10267,10267,10267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, - 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 763, 763, 0, 6, 0, 0, - 0, 1922, 0, 0, 0, 2526, 9657, 0, 0, 0, - 0, 1115, 1814, 0, 0, 0, 0, 0, 0,13746, -13746,13878, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1845, 0, 1842, 0, 0, 0, 0, 0, - 0, 0, 1849,14168, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, + 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 427, 427, 0, 2, 0, 0, 0, 1984, 0, + 0, 0,10575, 8391, 0, 0, 0, 0, 1451, 1849, + 0, 0, 0, 0, 0, 0,13131,13131,13187, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4561, 0, 0, 0, 0, 707,13746, 0, - 0, 0, 361, 0, 0, 0, 0, 1855, 0,15693, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1901, + 0, 1917, 0, 0, 0, 0, 0, 0, 0, 1905, +13421, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3843, + 0, 0, 0, 0, 678,13131, 0, 0, 0, 720, + 0, 0, 0, 0, 1906, 0,14876, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14389, 0, 0, + 0,14472, 0, 0, 0, 0, 0, 0, 0,13131, + 1929, 0, 1929, 0, 63, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15207, 0, 0, 0,15305, 0, 0, 0, 0, 0, - 0, 0,13746, 1899, 0, 1899, 0, 186, 0,13894, + 0, 0, 1675, 2115, 0, 927, 0, 0, 0,12760, + 0, 0, 1986, 1972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2465, 2902, 0, 716, 0, - 0, 0,13537, 0, 0, 1938, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9315, 9499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10584,10782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1041, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,11423, 0, 0, 0, 0, + 0,12533, 0, 1916, 0, 0, 0, 0, 0, 0, + 0,12533,12533,12533,12533, 0, 0, 0, 0, 0, + 0,12533,12533,12533, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,14623, + 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1999, 0, 191, + 0, 1972, 5543, 0, 0, 0, 0, 0, 0, 0, + 0, 116, 2002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,11799, 0, - 0, 0, 0, 0,13809, 0, 1859, 0, 0, 0, - 0, 0, 0, 0,13809,13809,13809,13809, 0, 0, - 0, 0, 0, 0,13809,13809,13809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,15402, 0, 0, 0, 0, 0, 849, 0, + 0, 0, 0, 0, 0, 0, 0,10434, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,13131,13131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1942, 0, 455, 0, 1919, 3088, 0, 0, 0, 0, - 0, 0, 0, 0, 594, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11765, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13746,13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,12533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1972, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9672, 0, 0, + 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,13809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10962, 0, 0, 0, 0, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,13131, + 0, 0, 0, 0, 2004, 0, 0, 0, 0, 0, + 0, 0,13131, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2004, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,13746, 0, 0, 0, 0, 1946, 0, 0, - 0, 0, 0, 0, 0,13746, 0, 0, 0, 0, - 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1933, 0, 0,13131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1947, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1864, 0, 0,13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13746, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13746, 0, 0, 0, 0, 0,13809, 0, 0, - 0, 0, 0, 0, 1946, 0,13746, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,13131, 0, + 0, 0, 0, 0,12533, 0, 0, 0, 0, 0, + 0, 2004, 0,13131, 0, 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1073,20 +1072,20 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14267, 0, 0, 0, 0, 0, 0, + 0, 0, 0,13504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 765, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1897, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1101,11 +1100,11 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1951, 0, + 0, 0, 0, 0, 0, 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1898, 0, 0, 0, 0, 0, 0, 0, + 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1114,28 +1113,28 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, + 0, 0,12857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, + 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1807, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 690, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,12926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1737, 0, 0, + 0, 0, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1146,32 +1145,32 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1971, 0, 0, - 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, - 0, 1954, 0, 0, 0, 0, 0, 0, 0, 1741, - 1742, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2023, 0, 0, 0, 0, 0, + 0, 0, 0, 846, 0, 0, 0, 0, 2013, 0, + 0, 0, 0, 0, 0, 0, 1800, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1763, 0, 0, 0, 0, 0, 0, 1768, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, + 0, 0, 0, 0, 0, 0, 1820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1823, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1777, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1189,8 +1188,8 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1821, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1769, 1779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1198,882 +1197,756 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1780, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, + 0, 0, 1832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1792, 0, + 0, 0, 0, 0, 0, 1857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1803, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1805, 0, 0, + 0, 0, 0, 1880, 0, 0, }; -static int yygindex[] = { 1862, - -4, -62, -705, 0, -456, 107, -99, 0, 160, 0, - 0, 0, 1627, -71, 0, 0, -887, 0, 1214, 0, - 1014, 166,-1441, -448, -422, 13, -757, 0, 1033, -22, - 1311, 0, 18, 1161, 565, 778, -986, -51, 0, 1059, - 0,-1156, 932, 0, 0, 0,-1300, -633,-1301,-1204, - 0, 0, 0, 0, 876, 1162, 1375, 0, 0, 0, - 0, -663, 0, 0,-1097, 0, 1171, 0,-1005,-1188, - 809, 801, -17, -34, 205, 1609, 2066, -162, 3, 0, - 0, 0, 0, 0, 0, -803, 1183, 0, 2083, 0, - 0, 888, 1985, 1550, 0, -14, 2078, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -311, 1340, 0, -294, -315, -292, 12, - 0, 0, 27, 0, 0, 0, 0, 0, 0, 1337, - 0, 0, 0, 7, 16, 42, 0, 32, 1806, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - -152, 0, 0, 1493, 0, 0, 0, 319, 0, 0, - 0, 0, 0, 0, 0, 1435, 2042, -52, 0, 1617, - 0, 1746, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1896, + -4, 129, -698, 0, -13, 56, -98, 0, 250, 0, + 0, 0, 1664, -129, 0, 0, -884, 0, 1243, 0, + 1061, 227,-1463, -447, -412, -9, -744, 0, 1080, -22, + 1343, 0, 1, 1188, 591, 816, -973, -48, 0, 1087, + 0,-1145, 960, 0, 0, 0, -951, -713, -922, -866, + 0, 0, 0, 0, 903, 1186, 1423, 0, 0, 0, + 0, -662, 0, 0,-1078, 0, 1219, 0, -994,-1191, + 865, 851, -18, -89, 1786, 1680, 2126, -147, -2, 0, + 0, 0, 0, 0, 0, -806, 1252, 0, 2155, 0, + 0, 959, 2055, 1623, 0, -16, 2148, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -311, 1413, 0, -300, -286, -296, 8, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 1411, 0, + 0, 0, 6, 26, 38, 0, 17, 1877, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, -150, + 0, 0, 1574, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 1510, 2120, -36, 0, 1701, 0, + 1817, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 16411 +#define YYTABLESIZE 15729 static int yytable[] = { 70, - 554, 160, 227, 228, 304, 923, 162, 55, 675, 165, - 676, 203, 45, 209, 118, 109, 56, 555, 1249, 556, - 1151, 1263, 169, 170, 171, 172, 164, 48, 366, 574, - 1017, 1302, 59, 911, 124, 125, 709, 1300, 1053, 284, - 1368, 219, 57, 626, 206, 156, 626, 218, 119, 626, - 476, 606, 119, 177, 178, 813, 605, 213, 338, 206, - 206, 1327, 338, 742, 743, 744, 206, 303, 1596, 1306, - 1007, 759, 147, 135, 206, 66, 475, 186, 835, 1625, - 836, 167, 232, 91, 94, 1598, 1412, 732, 733, 810, - 420, 284, 67, 68, 1604, 69, 626, 1609, 1429, 1606, - 316, 67, 68, 1607, 69, 254, 164, 563, 238, 1587, - 249, 252, 253, 34, 284, 472, 476, 307, 340, 422, - 316, 426, 428, 430, 432, 434, 110, 259, 267, 1617, - 261, 206, 425, 74, 908, 298, 585, 1303, 216, 297, - 1095, 1618, 748, 298, 427, 1013, 203, 297, 1430, 112, - 305, 285, 288, 397, 1619, 72, 1636, 296, 286, 474, - 1096, 167, 1165, 1166, 198, 296, 835, 1637, 836, 109, - 423, 1638, 111, 1628, 67, 68, 1143, 69, 521, 120, - 121, 489, 396, 423, 590, 466, 114, 1304, 295, 1611, - 442, 749, 1620, 78, 75, 423, 295, 486, 1614, 67, - 448, 449, 69, 119, 443, 469, 481, 482, 206, 34, - 119, 309, 286, 1639, 67, 68, 620, 69, 597, 1501, - 439, 1214, 126, 156, 204, 1142, 269, 484, 1440, 269, - 488, 207, 499, 1676, 493, 429, 743, 1578, 1580, 764, - 67, 68, 496, 69, 250, 251, 797, 298, 216, 760, - 98, 297, 600, 173, 431, 1255, 216, 67, 68, 822, - 69, 119, 498, 206, 147, 147, 135, 1600, 1602, 296, - 235, 236, 529, 534, 217, 1441, 517, 662, 519, 578, - 541, 1334, 523, 588, 973, 525, 423, 305, 1223, 528, - 1068, 1069, 1070, 98, 537, 538, 539, 540, 599, 598, - 295, 1623, 576, 572, 237, 423, 618, 156, 119, 67, - 68, 119, 69, 487, 1046, 596, 289, 119, 559, 55, - 122, 123, 119, 557, 45, 593, 119, 560, 56, 829, - 34, 905, 67, 68, 563, 69, 1581, 1624, 558, 48, - 188, 830, 831, 562, 59, 98, 1038, 719, 720, 109, - 594, 164, 119, 561, 57, 164, 581, 587, 119, 832, - 122, 123, 582, 664, 119, 1036, 1603, 1286, 98, 152, - 153, 154, 603, 119, 168, 679, 626, 119, 287, 119, - 478, 479, 583, 584, 529, 627, 627, 646, 652, 34, - 119, 1585, 67, 68, 119, 69, 1229, 1161, 1052, 1499, - 126, 628, 628, 647, 653, 495, 167, 563, 440, 833, - 167, 716, 119, 1203, 582, 122, 123, 829, 1204, 744, - 491, 122, 123, 582, 216, 1622, 179, 78, 98, 830, - 831, 1626, 78, 34, 583, 584, 122, 123, 1627, 702, - 518, 674, 174, 583, 584, 269, 524, 832, 269, 698, - 973, 117, 216, 366, 531, 645, 180, 291, 292, 293, - 34, 691, 433, 692, 805, 291, 292, 293, 744, 604, - 468, 770, 1413, 1169, 1167, 775, 67, 68, 469, 912, - 1160, 573, 109, 241, 126, 286, 206, 568, 182, 569, - 717, 745, 746, 570, 156, 1171, 1328, 833, 206, 651, - 1177, 579, 580, 746, 1179, 589, 486, 803, 803, 1203, - 803, 739, 98, 423, 1204, 269, 269, 762, 269, 1299, - 582, 730, 283, 734, 1170, 1181, 1519, 738, 619, 1183, - 183, 626, 1185, 693, 67, 68, 484, 69, 1187, 784, - 583, 584, 184, 340, 2, 468, 1172, 152, 153, 154, - 1590, 1178, 746, 595, 803, 1180, 516, 601, 780, 1189, - 70, 73, 76, 79, 82, 85, 88, 771, 773, 291, - 292, 293, 814, 795, 1444, 1445, 1182, 783, 1072, 834, - 1184, 670, 671, 1186, 672, 185, 673, 772, 779, 1188, - 27, 28, 29, 30, 31, 32, 33, 470, 220, 1630, - 294, 681, 682, 2, 34, 67, 68, 206, 69, 119, - 1190, 366, 1191, 1193, 1370, 842, 782, 846, 471, 216, - 563, 563, 1548, 563, 298, 203, 641, 989, 297, 269, - 269, 152, 153, 154, 569, 569, 122, 123, 824, 544, - 67, 68, 531, 69, 826, 845, 296, 2, 815, 816, - 1371, 221, 1195, 1197, 819, 987, 820, 544, 991, 67, - 722, 993, 69, 1192, 1194, 727, 728, 729, 1493, 731, - 1238, 735, 736, 737, 206, 740, 1199, 295, 1597, 206, - 1201, 259, 222, 554, 569, 534, 27, 28, 29, 30, - 31, 32, 33, 233, 1498, 1338, 1225, 1226, 1227, 1228, - 555, 340, 556, 1196, 1198, 1491, 922, 756, 757, 742, - 803, 953, 1340, 954, 156, 156, 234, 156, 980, 984, - 10, 11, 12, 13, 124, 156, 741, 1200, 978, 1011, - 769, 1202, 952, 774, 1021, 1549, 67, 68, 960, 69, - 642, 260, 1342, 1023, 944, 290, 1339, 298, 1557, 983, - 545, 297, 1006, 988, 990, 992, 67, 68, 742, 69, - 1203, 786, 1355, 1341, 1357, 1204, 298, 1018, 545, 296, - 752, 922, 1344, 121, 872, 1075, 804, 1076, 1077, 1078, - 1079, 1080, 13, 67, 68, 206, 69, 119, 296, 1551, - 1009, 768, 643, 1343, 768, 644, 67, 68, 308, 69, - 295, 823, 25, 624, 624, 1050, 22, 27, 28, 29, - 30, 31, 32, 33, 828, 946, 947, 299, 2, 295, - 1037, 300, 1039, 1345, 19, 841, 13, 67, 68, 301, - 69, 1633, 907, 1047, 719, 720, 649, 574, 574, 650, - 872, 119, 1146, 656, 657, 658, 67, 68, 859, 69, - 948, 611, 611, 624, 33, 16, 1152, 302, 1436, 1437, - 1438, 1560, 805, 476, 1559, 1162, 27, 28, 29, 30, - 31, 32, 33, 1641, 67, 68, 309, 69, 702, 659, - 660, 661, 957, 958, 959, 1208, 119, 574, 582, 551, - 1154, 310, 551, 200, 67, 68, 216, 69, 119, 1573, - 311, 611, 126, 398, 1666, 1579, 976, 531, 583, 584, - 27, 28, 29, 30, 31, 32, 33, 1149, 1004, 1678, - 206, 805, 683, 684, 685, 374, 1642, 1000, 421, 1002, - 98, 1003, 800, 801, 802, 1601, 1008, 27, 28, 29, - 30, 31, 32, 33, 1415, 1416, 291, 292, 293, 61, - 64, 784, 67, 784, 719, 720, 1022, 435, 686, 687, - 688, 1074, 1207, 476, 1218, 1216, 1024, 1025, 1675, 1248, - 1222, 1250, 438, 1235, 1206, 1236, 1237, 467, 199, 1217, - 1035, 67, 262, 263, 69, 119, 450, 805, 872, 922, - 949, 950, 264, 951, 10, 11, 12, 13, 1417, 1418, - 1276, 559, 1221, 1071, 206, 1253, 557, 476, 1423, 1269, - 560, 1272, 1231, 1240, 646, 1081, 473, 1082, 122, 123, - 582, 558, 476, 1230, 1239, 1254, 562, 476, 1233, 1242, - 647, 1084, 1085, 1086, 1087, 1088, 561, 477, 1232, 1241, - 583, 584, 1291, 1275, 223, 480, 224, 225, 226, 152, - 153, 154, 476, 1635, 156, 1294, 1295, 1296, 1297, 1298, - 1098, 1099, 1391, 1392, 1393, 1394, 490, 1150, 922, 291, - 292, 293, 1395, 1396, 1397, 67, 68, 1163, 69, 119, - 494, 27, 28, 29, 30, 31, 32, 33, 291, 292, - 293, 1273, 33, 206, 497, 1321, 33, 33, 33, 33, - 33, 500, 33, 33, 33, 33, 501, 33, 33, 506, - 156, 33, 33, 33, 33, 1664, 37, 476, 33, 33, - 1256, 40, 1257, 43, 7, 10, 13, 33, 507, 33, - 46, 97, 100, 191, 103, 805, 192, 193, 194, 195, - 508, 196, 197, 198, 33, 33, 33, 49, 1219, 509, - 1220, 510, 37, 1613, 1615, 511, 37, 610, 610, 92, - 37, 37, 52, 512, 520, 1067, 607, 872, 608, 609, - 610, 513, 514, 786, 37, 786, 515, 872, 522, 33, - 872, 526, 1398, 1375, 104, 527, 1388, 1389, 255, 256, - 257, 258, 543, 571, 602, 1352, 1402, 1265, 1403, 1358, - 1266, 34, 655, 666, 577, 37, 667, 1366, 502, 503, - 504, 505, 669, 1385, 677, 678, 680, 109, 92, 1173, - 1174, 1175, 1176, 67, 68, 689, 69, 109, 109, 109, - 109, 126, 67, 68, 690, 69, 216, 109, 109, 109, - 34, 1431, 1432, 1433, 1434, 703, 704, 705, 1426, 697, - 706, 872, 872, 872, 872, 872, 872, 872, 708, 98, - 711, 634, 1373, 718, 1408, 723, 724, 1244, 725, 1374, - 726, 747, 805, 805, 805, 805, 805, 750, 751, 67, - 68, 763, 69, 753, 92, 768, 776, 126, 765, 777, - 1496, 766, 767, 778, 805, 805, 781, 806, 787, 393, - 444, 1305, 445, 446, 788, 807, 625, 808, 809, 447, - 821, 805, 805, 805, 805, 98, 817, 825, 805, 805, - 818, 840, 827, 847, 805, 1489, 805, 805, 848, 1335, - 1336, 1337, 849, 850, 805, 805, 1346, 1347, 1348, 1349, - 1350, 1351, 851, 1353, 1354, 1356, 852, 1359, 1360, 1361, - 1362, 1363, 1364, 1365, 853, 1367, 1456, 1369, 1206, 1372, - 1490, 1376, 855, 858, 1497, 33, 856, 909, 910, 913, - 914, 1509, 915, 916, 920, 1502, 1492, 917, 152, 153, - 154, 921, 979, 924, 393, 955, 956, 961, 962, 805, - 805, 963, 805, 805, 805, 922, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 964, 965, 966, 967, 200, - 968, 969, 994, 95, 970, 2, 96, 97, 1054, 971, - 972, 1404, 99, 974, 100, 1055, 1407, 1056, 1057, 1058, - 975, 101, 92, 1001, 152, 153, 154, 1414, 641, 97, - 98, 1005, 1012, 1014, 99, 1015, 100, 1421, 102, 1016, - 1010, 1424, 1425, 101, 2, 1019, 1020, 1026, 1027, 1550, - 1028, 1031, 1428, 103, 1029, 392, 1059, 1060, 1061, 1030, - 102, 1206, 1032, 1552, 37, 37, 37, 1033, 1034, 1040, - 1041, 1042, 1051, 1435, 1439, 103, 1049, 423, 1083, 1089, - 922, 1091, 1092, 1093, 40, 1094, 1097, 1450, 1451, 1452, - 1453, 1454, 1455, 1144, 1457, 1147, 1156, 1592, 1159, 1209, - 1164, 1210, 1062, 1063, 1064, 1211, 1065, 1588, 1212, 1066, - 1213, 393, 1215, 1246, 393, 1245, 1247, 40, 1251, 1252, - 1258, 1261, 40, 1262, 40, 40, 40, 1264, 40, 393, - 1267, 40, 393, 393, 393, 393, 1278, 393, 393, 393, - 392, 1279, 642, 40, 40, 40, 40, 1280, 1281, 1282, - 1283, 1285, 1284, 1288, 1290, 1324, 1629, 1292, 1671, 92, - 92, 92, 92, 92, 1293, 1325, 1326, 1329, 1330, 1331, - 1332, 1508, 1333, 1660, 1382, 40, 281, 40, 1513, 1616, - 34, 92, 92, 1384, 13, 491, 1386, 1387, 1390, 1399, - 1401, 1400, 1405, 1406, 643, 1409, 662, 644, 92, 92, - 92, 92, 1410, 8, 9, 92, 92, 40, 1422, 40, - 1427, 92, 1169, 1171, 92, 1177, 1179, 922, 1181, 1183, - 1185, 92, 92, 13, 1187, 1189, 1191, 1673, 1193, 1195, - 1442, 1443, 1446, 1447, 1448, 621, 1458, 622, 1672, 191, - 623, 624, 192, 193, 194, 195, 636, 196, 197, 198, - 1449, 1460, 1459, 1461, 1462, 1463, 1464, 1465, 1466, 922, - 1467, 1468, 1469, 1470, 1563, 1564, 1565, 1471, 27, 28, - 29, 30, 31, 32, 33, 1472, 92, 92, 1474, 92, - 92, 92, 1476, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 1473, 1475, 1477, 392, 1478, 1479, 392, 392, - 392, 392, 1480, 392, 392, 392, 1482, 27, 28, 29, - 30, 31, 32, 33, 1483, 1485, 1599, 1481, 1484, 1487, - 1488, 1605, 1599, 1608, 1486, 1612, 1494, 1605, 1599, 1608, - 1500, 1504, 1505, 1506, 1338, 1510, 1277, 1495, 1511, 1512, - 1340, 1342, 1344, 1515, 40, 40, 40, 40, 1514, 1605, - 1599, 1608, 40, 1518, 1516, 40, 1517, 40, 40, 40, - 40, 40, 40, 40, 1520, 40, 40, 40, 40, 1521, - 40, 40, 40, 1522, 40, 40, 40, 40, 1523, 1525, - 40, 40, 40, 40, 1524, 1526, 1528, 1530, 1532, 1533, - 40, 1534, 40, 1535, 2, 40, 1527, 1529, 1531, 40, - 40, 1536, 40, 1537, 1538, 1539, 40, 40, 40, 40, - 1540, 1541, 1667, 1542, 1543, 1547, 1544, 1545, 1546, 1553, - 268, 269, 270, 40, 271, 272, 273, 274, 1558, 275, - 276, 1568, 1562, 277, 278, 279, 280, 1556, 1569, 1570, - 1571, 918, 40, 40, 40, 40, 40, 1586, 40, 40, - 1589, 1632, 1591, 1593, 1594, 1595, 1631, 1640, 40, 40, - 633, 1643, 1661, 1662, 1663, 1668, 1669, 1670, 1677, 157, - 1674, 1679, 437, 1665, 438, 40, 742, 104, 137, 808, + 552, 160, 213, 227, 228, 162, 55, 165, 45, 920, + 109, 553, 124, 125, 118, 554, 672, 59, 673, 304, + 1148, 164, 169, 170, 171, 172, 56, 203, 1246, 1260, + 364, 908, 1050, 572, 48, 706, 177, 178, 57, 624, + 1014, 1299, 624, 91, 219, 624, 602, 1297, 1365, 78, + 167, 1606, 474, 810, 119, 147, 1593, 206, 206, 206, + 186, 1595, 135, 424, 426, 428, 430, 432, 303, 206, + 1303, 287, 284, 34, 1004, 206, 337, 1324, 603, 316, + 1409, 1622, 232, 807, 1584, 1601, 561, 216, 1603, 420, + 756, 418, 624, 486, 1092, 729, 730, 74, 395, 316, + 832, 164, 833, 269, 1604, 254, 269, 206, 238, 473, + 249, 252, 253, 198, 1093, 218, 470, 1614, 423, 425, + 307, 206, 66, 1367, 67, 68, 259, 69, 267, 261, + 167, 1615, 427, 119, 1616, 67, 68, 284, 69, 622, + 421, 1300, 484, 34, 1633, 94, 429, 284, 431, 305, + 1158, 285, 288, 286, 112, 1617, 567, 567, 75, 1368, + 1634, 745, 203, 1166, 109, 317, 1636, 594, 519, 421, + 421, 1168, 1162, 1163, 440, 1174, 485, 497, 72, 1635, + 742, 1176, 394, 421, 487, 464, 34, 110, 441, 298, + 1426, 1301, 472, 297, 250, 251, 1140, 421, 588, 421, + 446, 447, 1178, 437, 209, 467, 567, 286, 1673, 1438, + 746, 296, 309, 1498, 1167, 298, 617, 67, 68, 297, + 69, 1043, 1169, 317, 206, 206, 1175, 482, 744, 742, + 156, 1211, 1177, 1157, 491, 67, 68, 296, 69, 111, + 1427, 494, 295, 114, 1437, 1139, 574, 147, 147, 479, + 480, 597, 1516, 1179, 216, 135, 168, 298, 593, 1010, + 819, 297, 496, 174, 794, 1252, 761, 757, 295, 120, + 121, 690, 738, 532, 122, 123, 515, 744, 517, 296, + 539, 1331, 521, 78, 119, 523, 305, 2, 78, 526, + 67, 68, 1220, 69, 535, 536, 537, 538, 67, 68, + 595, 69, 119, 1620, 34, 119, 661, 570, 119, 339, + 295, 119, 596, 561, 204, 216, 216, 557, 55, 555, + 45, 207, 269, 216, 591, 269, 98, 119, 560, 59, + 902, 34, 514, 579, 585, 716, 717, 558, 56, 1621, + 119, 1035, 217, 109, 592, 556, 48, 34, 164, 559, + 57, 826, 337, 600, 119, 67, 68, 119, 69, 173, + 235, 236, 119, 827, 828, 67, 68, 119, 69, 119, + 642, 1283, 216, 623, 1065, 1066, 1067, 167, 122, 123, + 527, 829, 699, 119, 625, 625, 644, 650, 1180, 122, + 123, 98, 438, 624, 624, 643, 649, 633, 34, 1582, + 1049, 98, 119, 317, 493, 740, 289, 1496, 317, 317, + 317, 317, 206, 317, 317, 317, 317, 671, 317, 317, + 713, 119, 317, 317, 317, 317, 659, 117, 179, 317, + 317, 830, 489, 1619, 742, 743, 1182, 237, 317, 1181, + 317, 67, 68, 1200, 69, 8, 9, 695, 1201, 484, + 156, 156, 364, 156, 740, 317, 317, 317, 601, 688, + 759, 689, 206, 802, 648, 13, 1410, 622, 622, 576, + 476, 477, 1164, 586, 772, 109, 467, 618, 286, 619, + 1184, 1186, 620, 621, 571, 206, 1200, 1183, 714, 67, + 317, 1201, 69, 119, 1325, 615, 1188, 727, 474, 731, + 1545, 777, 283, 735, 739, 740, 741, 572, 572, 736, + 1190, 291, 292, 293, 468, 792, 905, 622, 2, 70, + 73, 76, 79, 82, 85, 88, 624, 1490, 1296, 119, + 516, 1185, 1187, 206, 482, 469, 522, 291, 292, 293, + 527, 638, 1192, 180, 529, 2, 1194, 1189, 1196, 27, + 28, 29, 30, 31, 32, 33, 206, 572, 1587, 67, + 68, 1191, 69, 119, 676, 768, 770, 466, 294, 1608, + 801, 801, 811, 801, 780, 182, 566, 466, 567, 291, + 292, 293, 568, 1575, 1441, 1442, 776, 832, 1198, 833, + 577, 578, 1335, 1193, 587, 1337, 779, 1195, 1339, 1197, + 831, 124, 188, 904, 298, 1341, 767, 583, 297, 1627, + 364, 630, 2, 1597, 1577, 839, 616, 843, 183, 27, + 28, 29, 30, 31, 32, 33, 296, 67, 812, 813, + 69, 1069, 769, 220, 816, 821, 817, 184, 203, 1199, + 542, 823, 842, 1336, 1599, 34, 1338, 1200, 1611, 1340, + 121, 298, 1201, 984, 639, 749, 1342, 295, 542, 990, + 977, 981, 27, 28, 29, 30, 31, 32, 33, 667, + 668, 1578, 669, 296, 670, 317, 740, 259, 1594, 580, + 552, 221, 532, 1625, 609, 609, 185, 943, 944, 678, + 679, 553, 797, 798, 799, 554, 13, 986, 1495, 581, + 582, 1600, 766, 919, 295, 766, 640, 826, 950, 641, + 951, 1241, 949, 957, 1072, 988, 1073, 1074, 1075, 1076, + 1077, 543, 945, 13, 970, 975, 941, 781, 222, 1008, + 529, 339, 233, 156, 609, 631, 234, 619, 632, 543, + 620, 621, 800, 122, 123, 1546, 980, 1047, 719, 1003, + 985, 987, 989, 724, 725, 726, 260, 728, 1554, 732, + 733, 734, 290, 737, 1015, 1006, 561, 1488, 919, 1352, + 299, 1354, 801, 826, 300, 67, 68, 34, 69, 301, + 27, 28, 29, 30, 31, 32, 33, 308, 262, 263, + 13, 302, 119, 1548, 580, 753, 754, 1001, 264, 206, + 646, 67, 68, 647, 69, 1033, 309, 27, 28, 29, + 30, 31, 32, 33, 581, 582, 1570, 1034, 766, 1036, + 699, 771, 1576, 27, 28, 29, 30, 31, 32, 33, + 1044, 122, 123, 580, 34, 122, 123, 580, 826, 716, + 717, 1630, 241, 1226, 269, 269, 549, 269, 783, 549, + 827, 828, 1598, 581, 582, 310, 1149, 581, 582, 2, + 311, 946, 947, 801, 948, 1159, 67, 68, 829, 69, + 372, 122, 123, 580, 27, 28, 29, 30, 31, 32, + 33, 419, 638, 1638, 67, 68, 1151, 69, 820, 339, + 970, 396, 156, 581, 582, 433, 67, 68, 119, 69, + 1235, 825, 67, 68, 1071, 69, 474, 653, 654, 655, + 126, 1245, 838, 1247, 1663, 1433, 1434, 1435, 830, 448, + 561, 826, 1018, 1218, 436, 206, 291, 292, 293, 1675, + 1639, 1020, 522, 1412, 1413, 856, 67, 68, 98, 69, + 471, 1623, 1204, 656, 657, 658, 67, 68, 1624, 69, + 119, 1266, 1251, 1269, 474, 119, 1203, 580, 269, 269, + 1213, 1215, 1081, 1082, 1083, 1084, 1085, 1219, 465, 954, + 955, 956, 1672, 291, 292, 293, 1214, 581, 582, 561, + 561, 1557, 561, 474, 1556, 870, 919, 826, 474, 61, + 64, 2, 67, 973, 529, 639, 522, 557, 522, 555, + 1273, 200, 1250, 1291, 1292, 1293, 1294, 1295, 560, 478, + 1230, 1239, 644, 1270, 997, 206, 999, 558, 1000, 1228, + 1237, 643, 1661, 1005, 474, 556, 475, 1227, 1236, 559, + 1143, 1229, 1238, 255, 256, 257, 258, 13, 1414, 1415, + 1272, 67, 1288, 1019, 69, 119, 488, 640, 2, 492, + 641, 870, 495, 1021, 1022, 498, 152, 153, 154, 474, + 1420, 67, 68, 499, 69, 919, 1253, 1032, 1254, 126, + 474, 1632, 803, 1205, 1388, 1389, 1390, 1391, 504, 826, + 826, 608, 608, 505, 1392, 1393, 1394, 506, 67, 68, + 1068, 69, 507, 200, 508, 1318, 509, 98, 510, 826, + 1370, 511, 1078, 512, 1079, 97, 100, 1371, 103, 392, + 513, 826, 518, 826, 826, 520, 826, 826, 1095, 1096, + 524, 27, 28, 29, 30, 31, 32, 33, 1385, 1386, + 525, 803, 541, 522, 575, 569, 522, 599, 652, 781, + 675, 781, 1222, 1223, 1224, 1225, 522, 561, 223, 663, + 224, 225, 226, 298, 1147, 674, 442, 297, 443, 444, + 1610, 1612, 664, 666, 1160, 445, 10, 11, 12, 13, + 1349, 677, 686, 687, 1355, 296, 216, 700, 199, 1372, + 694, 702, 1363, 826, 826, 826, 826, 826, 826, 826, + 701, 156, 703, 708, 392, 705, 631, 803, 715, 870, + 720, 721, 1232, 722, 1233, 1234, 295, 723, 744, 109, + 1382, 500, 501, 502, 503, 152, 153, 154, 747, 109, + 109, 109, 109, 10, 11, 12, 13, 748, 156, 109, + 109, 109, 750, 760, 762, 1216, 763, 1217, 765, 208, + 764, 191, 774, 775, 192, 193, 194, 195, 1423, 196, + 197, 198, 773, 27, 28, 29, 30, 31, 32, 33, + 783, 1405, 783, 778, 785, 680, 681, 682, 784, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 803, 804, 1262, 805, 522, 1263, 1493, 806, + 522, 522, 522, 522, 522, 522, 814, 815, 208, 818, + 208, 683, 684, 685, 522, 522, 1494, 822, 824, 837, + 27, 28, 29, 30, 31, 32, 33, 1499, 844, 845, + 97, 522, 522, 522, 522, 99, 34, 100, 846, 847, + 848, 1453, 522, 191, 101, 849, 192, 193, 194, 195, + 1203, 196, 197, 198, 850, 803, 522, 852, 853, 392, + 906, 102, 392, 392, 392, 392, 1487, 392, 392, 392, + 67, 68, 855, 69, 208, 907, 103, 910, 126, 911, + 1395, 1506, 912, 1489, 914, 67, 68, 870, 69, 913, + 917, 522, 522, 918, 1399, 921, 1400, 870, 1302, 952, + 870, 604, 919, 605, 606, 607, 98, 67, 68, 953, + 69, 1547, 958, 959, 960, 126, 1486, 961, 522, 522, + 522, 522, 522, 522, 522, 962, 1332, 1333, 1334, 1170, + 1171, 1172, 1173, 1343, 1344, 1345, 1346, 1347, 1348, 963, + 1350, 1351, 1353, 98, 1356, 1357, 1358, 1359, 1360, 1361, + 1362, 964, 1364, 965, 1366, 966, 1369, 967, 1373, 1428, + 1429, 1430, 1431, 1203, 968, 969, 971, 972, 976, 1585, + 156, 870, 870, 870, 870, 870, 870, 870, 991, 998, + 1549, 1002, 1007, 1009, 1011, 291, 292, 293, 1012, 1013, + 1016, 803, 803, 803, 803, 803, 97, 919, 37, 1017, + 1026, 99, 37, 100, 1023, 1025, 37, 37, 1024, 1027, + 101, 1028, 1029, 803, 803, 1030, 1031, 1589, 1401, 1037, + 37, 1038, 208, 1404, 152, 153, 154, 102, 982, 1039, + 803, 803, 803, 803, 1411, 1046, 1048, 803, 803, 421, + 1080, 1086, 103, 803, 1418, 803, 803, 1089, 1421, 1422, + 2, 37, 1088, 803, 803, 1091, 1094, 1090, 1141, 1425, + 1153, 152, 153, 154, 1144, 1206, 1156, 1161, 1207, 1208, + 1209, 208, 1626, 983, 1613, 1210, 1668, 1242, 1243, 1212, + 1432, 1436, 1244, 1248, 1249, 1255, 1261, 1264, 1258, 1670, + 1259, 40, 1275, 1657, 1447, 1448, 1449, 1450, 1451, 1452, + 1278, 1454, 1279, 1280, 1276, 1281, 1277, 1282, 803, 803, + 1285, 803, 803, 803, 1289, 803, 803, 803, 803, 803, + 803, 803, 803, 803, 40, 1321, 1287, 1290, 1322, 40, + 1326, 40, 40, 40, 919, 40, 1323, 1327, 40, 67, + 68, 1328, 909, 1329, 1330, 489, 1379, 126, 1381, 1383, + 40, 40, 40, 40, 1384, 1669, 1387, 1396, 208, 208, + 208, 208, 208, 1397, 1398, 1403, 1402, 1406, 1424, 1407, + 659, 1166, 208, 1419, 1168, 98, 919, 208, 1505, 1174, + 208, 208, 40, 281, 40, 1510, 3, 4, 5, 6, + 7, 1176, 1178, 1180, 1182, 1184, 1186, 208, 208, 208, + 208, 1188, 208, 208, 208, 208, 1190, 25, 8, 9, + 208, 22, 1439, 208, 40, 1192, 40, 1443, 1445, 1440, + 208, 208, 208, 1444, 1455, 10, 11, 12, 13, 19, + 1446, 855, 14, 15, 1456, 1457, 1458, 1459, 16, 1460, + 1461, 17, 1462, 856, 1463, 1464, 1466, 1467, 18, 19, + 1469, 1465, 1468, 1470, 1471, 1472, 1473, 208, 208, 1475, + 16, 1474, 1477, 1476, 1478, 1479, 1480, 1481, 1482, 1483, + 1484, 1560, 1561, 1562, 1485, 208, 208, 1491, 208, 208, + 208, 1497, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 1501, 1492, 152, 153, 154, 1502, 855, 1503, 1335, + 1507, 1508, 1337, 20, 21, 1509, 22, 23, 24, 856, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 1339, + 37, 37, 37, 1596, 1341, 1512, 1511, 1513, 1602, 1596, + 1605, 1514, 1609, 1515, 1602, 1596, 1605, 1517, 1518, 1519, + 1520, 1522, 1521, 1523, 1524, 1525, 1526, 1527, 1529, 1528, + 1530, 40, 40, 40, 40, 1531, 1602, 1596, 1605, 40, + 1532, 1533, 40, 1534, 40, 40, 40, 40, 40, 40, + 40, 1535, 40, 40, 40, 40, 1536, 40, 40, 40, + 1537, 40, 40, 40, 40, 1538, 1539, 40, 40, 40, + 40, 1540, 1543, 1541, 1542, 1550, 1544, 40, 1555, 40, + 1553, 1565, 40, 1566, 1559, 1567, 40, 40, 1568, 40, + 1583, 1586, 157, 40, 40, 40, 40, 298, 915, 1664, + 1628, 297, 1588, 1590, 1591, 1592, 1064, 268, 269, 270, + 40, 271, 272, 273, 274, 1640, 275, 276, 1629, 296, + 277, 278, 279, 280, 1658, 855, 1659, 1660, 1637, 40, + 40, 40, 40, 40, 1662, 40, 40, 856, 1666, 1665, + 1667, 1671, 1674, 29, 1676, 40, 40, 437, 855, 438, + 481, 104, 137, 806, 740, 540, 862, 538, 841, 533, + 856, 399, 40, 751, 758, 833, 541, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 29, 864, - 542, 540, 563, 543, 1503, 843, 399, 210, 753, 535, - 835, 138, 760, 40, 40, 40, 40, 538, 40, 40, - 40, 40, 754, 539, 40, 865, 40, 547, 40, 40, - 40, 40, 271, 40, 40, 563, 40, 40, 40, 74, - 563, 836, 563, 563, 563, 40, 563, 844, 143, 563, - 164, 240, 144, 13, 147, 167, 210, 573, 4, 28, - 28, 563, 563, 563, 563, 634, 31, 622, 635, 1054, - 623, 624, 55, 40, 40, 40, 1055, 58, 1056, 1057, - 1058, 55, 94, 97, 106, 55, 55, 55, 99, 115, - 100, 40, 40, 563, 40, 40, 40, 101, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 55, 40, 109, - 112, 313, 55, 55, 102, 985, 668, 1059, 1060, 1061, - 1045, 118, 1260, 55, 55, 563, 1268, 563, 977, 103, - 67, 68, 1419, 69, 1145, 55, 55, 27, 28, 29, - 30, 31, 32, 33, 55, 1561, 1259, 55, 1323, 55, - 1380, 1411, 919, 1158, 1168, 857, 1420, 208, 707, 163, - 986, 93, 1155, 1062, 1063, 1064, 1383, 1065, 239, 758, - 1066, 166, 995, 999, 796, 202, 67, 68, 715, 69, - 542, 0, 854, 0, 126, 0, 638, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 208, 0, 208, 0, - 0, 857, 145, 0, 146, 240, 241, 242, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 0, 0, 0, 0, 0, 0, 1054, 0, 0, - 0, 0, 563, 563, 1055, 563, 1056, 1057, 1058, 0, - 563, 0, 0, 563, 150, 563, 563, 563, 563, 563, - 563, 563, 208, 563, 563, 563, 563, 0, 563, 563, - 0, 0, 563, 563, 563, 563, 0, 0, 563, 563, - 563, 563, 0, 0, 0, 1059, 1060, 1061, 563, 0, - 563, 0, 0, 563, 0, 0, 0, 0, 563, 0, - 0, 0, 0, 0, 563, 563, 563, 563, 0, 0, - 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 0, 245, 246, 247, - 248, 1062, 1063, 1064, 0, 1065, 0, 0, 1066, 0, - 563, 0, 563, 563, 563, 0, 0, 0, 0, 857, - 0, 0, 0, 0, 0, 0, 563, 563, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 857, 563, 0, 0, 0, 0, 563, 563, - 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, - 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, - 563, 563, 563, 563, 563, 563, 563, 0, 0, 0, - 208, 563, 0, 0, 563, 563, 0, 0, 0, 0, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 563, 563, 563, 0, 563, 563, 563, 563, - 155, 0, 563, 0, 563, 0, 563, 563, 563, 0, - 0, 563, 563, 564, 563, 563, 563, 0, 564, 208, - 564, 564, 564, 563, 564, 0, 0, 564, 95, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 564, - 564, 564, 564, 0, 0, 0, 857, 0, 0, 0, - 0, 563, 563, 0, 97, 98, 0, 0, 0, 99, - 0, 100, 0, 0, 0, 0, 0, 0, 101, 563, - 563, 564, 563, 563, 563, 0, 563, 563, 563, 563, - 563, 563, 563, 563, 563, 102, 563, 0, 857, 0, - 0, 0, 809, 809, 0, 809, 0, 0, 857, 0, - 103, 857, 0, 564, 1659, 564, 0, 208, 208, 208, - 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 0, 0, 0, 208, 0, 0, 208, - 208, 0, 0, 858, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 208, 208, 208, - 0, 208, 208, 208, 208, 0, 0, 0, 0, 208, - 0, 0, 208, 0, 0, 0, 0, 0, 0, 208, - 208, 208, 857, 857, 857, 857, 857, 857, 857, 0, - 0, 0, 0, 0, 0, 0, 0, 809, 809, 809, - 0, 0, 0, 0, 210, 0, 0, 0, 0, 858, - 0, 0, 0, 0, 0, 0, 208, 208, 0, 0, - 0, 0, 809, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 208, 0, 208, 208, 208, - 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 564, 564, 0, 564, 0, 0, 0, 0, 564, 0, - 0, 564, 0, 564, 564, 564, 564, 564, 564, 564, - 210, 564, 564, 564, 564, 0, 564, 564, 0, 0, - 564, 564, 564, 564, 0, 1644, 564, 564, 564, 564, - 0, 0, 0, 0, 0, 0, 564, 0, 564, 0, - 1645, 564, 0, 0, 0, 0, 564, 0, 0, 0, - 0, 0, 564, 564, 564, 564, 1646, 809, 0, 809, - 809, 809, 809, 0, 0, 1647, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1648, - 1649, 1650, 1651, 0, 0, 0, 0, 0, 564, 0, - 564, 564, 564, 0, 0, 0, 0, 858, 0, 0, - 0, 0, 0, 0, 564, 564, 0, 0, 0, 0, - 0, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 0, 0, - 858, 564, 0, 0, 0, 0, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 0, 0, 0, 210, 564, - 0, 0, 564, 564, 0, 0, 0, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, - 564, 564, 564, 0, 564, 564, 564, 564, 0, 0, - 564, 0, 564, 0, 564, 564, 564, 0, 0, 564, - 564, 557, 564, 564, 564, 0, 557, 210, 557, 557, - 557, 564, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 557, 557, 557, - 557, 0, 0, 0, 858, 0, 0, 0, 0, 564, - 564, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 0, 564, 564, 557, - 564, 564, 564, 0, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 0, 564, 0, 858, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 858, 0, 0, 858, - 0, 557, 0, 557, 0, 210, 210, 210, 210, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 210, 0, 0, 210, 210, 0, - 859, 0, 0, 93, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 210, 210, 210, 0, 210, - 210, 210, 210, 0, 0, 0, 0, 210, 0, 0, - 210, 0, 0, 0, 0, 0, 0, 210, 210, 210, - 858, 858, 858, 858, 858, 858, 858, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 0, 0, 0, 859, 0, 0, 0, - 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 0, 210, 210, 210, 0, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 557, 557, - 0, 557, 0, 0, 0, 0, 557, 0, 0, 557, - 0, 557, 557, 557, 557, 557, 557, 557, 93, 557, - 557, 557, 557, 0, 557, 557, 0, 0, 557, 557, - 557, 557, 0, 0, 557, 557, 557, 557, 0, 0, - 0, 0, 0, 0, 557, 0, 557, 0, 0, 557, - 216, 0, 0, 0, 557, 0, 0, 0, 298, 0, - 557, 557, 557, 557, 0, 1307, 1308, 1309, 0, 1310, - 1311, 1312, 1313, 0, 1314, 1315, 198, 0, 1316, 1317, - 1318, 1319, 0, 0, 0, 0, 0, 1320, 0, 0, - 0, 0, 0, 0, 0, 0, 557, 0, 557, 557, - 557, 0, 0, 0, 859, 0, 0, 0, 0, 0, - 0, 0, 557, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 859, 0, 557, - 0, 0, 0, 0, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 0, 0, 0, 93, 557, 0, 0, - 557, 557, 0, 0, 0, 0, 555, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 557, 557, 557, - 557, 0, 557, 557, 557, 557, 0, 0, 557, 0, - 557, 0, 557, 557, 557, 0, 0, 557, 557, 555, - 557, 557, 557, 0, 555, 0, 555, 555, 555, 557, + 40, 40, 40, 40, 138, 752, 536, 863, 561, 7, + 10, 13, 537, 545, 271, 74, 143, 834, 842, 40, + 40, 40, 40, 164, 40, 40, 40, 40, 240, 144, + 40, 147, 40, 167, 40, 40, 40, 40, 571, 40, + 40, 561, 40, 40, 40, 210, 561, 28, 561, 561, + 561, 40, 561, 31, 94, 561, 4, 28, 115, 58, + 55, 855, 55, 106, 55, 313, 1042, 561, 561, 561, + 561, 665, 55, 856, 55, 109, 112, 974, 1142, 40, + 40, 40, 118, 55, 55, 55, 1257, 1416, 1558, 55, + 1265, 1256, 55, 1320, 1377, 1165, 55, 40, 40, 561, + 40, 40, 40, 855, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 855, 40, 856, 855, 916, 1155, 67, + 68, 55, 69, 1417, 1408, 856, 598, 126, 856, 55, + 127, 561, 55, 561, 128, 129, 130, 131, 132, 163, + 133, 134, 135, 136, 55, 137, 138, 704, 1152, 139, + 140, 141, 142, 93, 1380, 98, 143, 144, 239, 1051, + 755, 166, 992, 857, 996, 145, 1052, 146, 1053, 1054, + 1055, 540, 793, 202, 851, 635, 0, 0, 0, 0, + 712, 0, 147, 148, 149, 0, 0, 855, 855, 855, + 855, 855, 855, 855, 0, 0, 0, 0, 0, 856, + 856, 856, 856, 856, 856, 856, 0, 1056, 1057, 1058, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 291, + 292, 293, 0, 0, 0, 0, 0, 0, 0, 857, + 1274, 0, 0, 479, 480, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 0, 0, 0, 1059, 1060, 1061, 0, 1062, 0, 0, + 1063, 0, 393, 0, 0, 0, 0, 0, 561, 561, + 0, 561, 0, 152, 153, 154, 561, 0, 0, 561, + 0, 561, 561, 561, 561, 561, 561, 561, 0, 561, + 561, 561, 561, 0, 561, 561, 0, 0, 561, 561, + 561, 561, 0, 0, 561, 561, 561, 561, 95, 0, + 0, 96, 562, 0, 561, 0, 561, 0, 0, 561, + 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, + 561, 561, 561, 561, 97, 98, 0, 0, 0, 99, + 0, 100, 0, 0, 0, 562, 0, 393, 101, 0, + 562, 0, 562, 562, 562, 0, 562, 0, 0, 562, + 0, 0, 0, 0, 0, 102, 561, 0, 561, 561, + 561, 562, 562, 562, 562, 0, 0, 857, 0, 0, + 103, 0, 561, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, + 857, 0, 155, 562, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 0, 0, 0, 562, 561, 562, 0, 561, + 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 561, 561, 561, 561, + 0, 561, 561, 561, 561, 0, 0, 561, 0, 561, + 0, 561, 561, 561, 0, 0, 561, 561, 0, 561, + 561, 561, 0, 1051, 393, 0, 0, 393, 561, 0, + 1052, 0, 1053, 1054, 1055, 0, 0, 0, 0, 0, + 0, 0, 393, 0, 0, 393, 393, 393, 393, 0, + 393, 393, 393, 857, 0, 0, 561, 561, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1056, 1057, 1058, 561, 561, 0, 561, 561, 561, + 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 0, 561, 0, 0, 0, 857, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 857, 0, 0, 857, 0, + 0, 0, 562, 562, 0, 562, 0, 1059, 1060, 1061, + 562, 1062, 0, 562, 1063, 562, 562, 562, 562, 562, + 562, 562, 0, 562, 562, 562, 562, 0, 562, 562, + 0, 0, 562, 562, 562, 562, 0, 0, 562, 562, + 562, 562, 0, 0, 0, 0, 555, 0, 562, 0, + 562, 0, 0, 562, 0, 0, 0, 156, 562, 0, + 0, 0, 0, 0, 562, 562, 562, 562, 0, 857, + 857, 857, 857, 857, 857, 857, 0, 0, 0, 555, + 67, 68, 0, 69, 555, 0, 555, 555, 555, 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, - 0, 859, 0, 0, 0, 0, 0, 557, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 557, 557, 555, 557, 557, - 557, 0, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 0, 557, 859, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 859, 0, 0, 859, 0, 0, 555, - 0, 555, 0, 93, 93, 93, 93, 93, 0, 0, - 0, 298, 0, 0, 0, 0, 0, 0, 298, 0, - 298, 298, 298, 0, 0, 93, 93, 0, 0, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 93, 93, 93, 0, 0, 0, 93, - 93, 0, 0, 0, 0, 93, 0, 0, 93, 298, - 298, 298, 0, 0, 0, 93, 93, 859, 859, 859, - 859, 859, 859, 859, 0, 0, 0, 0, 0, 0, - 0, 0, 925, 926, 927, 0, 928, 929, 930, 931, - 94, 932, 933, 198, 0, 934, 935, 936, 937, 0, - 0, 0, 938, 939, 0, 298, 298, 298, 0, 298, - 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, - 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 555, 555, 0, 555, + 562, 0, 562, 562, 562, 555, 555, 555, 555, 0, + 0, 0, 0, 0, 0, 0, 562, 562, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 0, 0, 0, 555, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 0, 0, 0, 555, + 562, 555, 0, 562, 562, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 562, 562, 562, 0, 562, 562, 562, 562, 0, + 243, 562, 0, 562, 0, 562, 562, 562, 0, 0, + 562, 562, 0, 562, 562, 562, 216, 0, 0, 0, + 0, 0, 562, 0, 0, 0, 67, 68, 216, 69, + 119, 1304, 1305, 1306, 126, 1307, 1308, 1309, 1310, 0, + 1311, 1312, 198, 0, 1313, 1314, 1315, 1316, 0, 1146, + 562, 562, 0, 1317, 0, 0, 0, 0, 0, 0, + 0, 0, 98, 0, 0, 0, 0, 0, 562, 562, + 0, 562, 562, 562, 0, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 0, 562, 716, 717, 0, 0, + 0, 1618, 0, 0, 244, 0, 245, 246, 247, 248, + 0, 0, 0, 0, 0, 0, 555, 555, 0, 555, 0, 0, 0, 0, 555, 0, 0, 555, 0, 555, - 555, 555, 555, 555, 555, 555, 94, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 0, 555, 555, 555, 555, 0, 555, 555, 0, 0, 555, 555, 555, 555, - 940, 0, 555, 555, 555, 555, 0, 0, 0, 0, - 0, 0, 555, 0, 555, 0, 0, 555, 0, 0, + 0, 0, 555, 555, 555, 555, 0, 0, 0, 0, + 553, 0, 555, 0, 555, 0, 0, 555, 0, 0, 0, 0, 555, 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, - 1621, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 0, 555, 555, 555, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 153, 154, 553, 807, 807, 0, 807, 553, 0, + 553, 553, 553, 0, 553, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 0, 555, 555, 555, 553, + 553, 553, 553, 0, 0, 0, 0, 0, 0, 0, 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, - 0, 0, 555, 555, 555, 555, 555, 555, 555, 555, + 0, 553, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 0, 0, 0, 94, 555, 0, 0, 555, 555, - 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, - 555, 555, 555, 555, 0, 0, 555, 0, 555, 0, - 555, 555, 555, 0, 0, 555, 555, 553, 555, 555, - 555, 0, 553, 0, 553, 553, 553, 555, 553, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 553, 553, 553, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 555, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 555, 553, 555, 555, 555, 0, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 0, - 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 553, 0, 553, - 0, 94, 94, 94, 94, 94, 925, 926, 927, 0, - 928, 929, 930, 931, 0, 932, 933, 198, 0, 934, - 935, 936, 937, 94, 94, 0, 938, 939, 0, 802, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 94, 94, 94, 0, 0, 0, 94, 94, 0, - 0, 0, 0, 94, 0, 0, 94, 0, 0, 0, - 0, 0, 0, 94, 94, 127, 0, 0, 0, 0, - 0, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 802, 0, - 0, 1377, 144, 0, 940, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, - 0, 94, 94, 94, 0, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 553, 553, 0, 553, 0, 0, - 1378, 0, 553, 0, 0, 553, 0, 553, 553, 553, - 553, 553, 553, 553, 802, 553, 553, 553, 553, 1379, - 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, - 553, 553, 553, 553, 0, 0, 0, 0, 0, 0, - 553, 0, 553, 0, 0, 553, 0, 0, 0, 0, - 553, 1100, 0, 0, 0, 0, 553, 553, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1101, 1102, 0, 1103, 1104, 1105, 1106, 1107, 1108, 0, - 1109, 1110, 0, 1111, 1112, 1113, 1114, 1115, 0, 0, - 0, 0, 553, 0, 553, 553, 553, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, + 0, 0, 0, 553, 555, 553, 0, 555, 555, 807, + 807, 807, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 555, 555, 555, 0, 555, + 555, 555, 555, 0, 807, 555, 0, 555, 0, 555, + 555, 555, 0, 0, 555, 555, 0, 555, 555, 555, + 0, 0, 0, 0, 0, 0, 555, 922, 923, 924, + 0, 925, 926, 927, 928, 0, 929, 930, 198, 0, + 931, 932, 933, 934, 0, 0, 0, 935, 936, 0, + 0, 0, 0, 0, 555, 555, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 555, 0, 555, 555, 555, 0, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 0, 555, + 0, 0, 0, 0, 0, 0, 0, 0, 807, 0, + 807, 807, 807, 807, 0, 0, 104, 0, 0, 0, + 553, 553, 0, 553, 0, 937, 0, 0, 553, 0, + 0, 553, 0, 553, 553, 553, 553, 553, 553, 553, + 0, 553, 553, 553, 553, 0, 553, 553, 0, 0, + 553, 553, 553, 553, 0, 0, 553, 553, 553, 553, + 0, 0, 0, 0, 551, 0, 553, 0, 553, 0, + 0, 553, 0, 0, 0, 0, 553, 0, 0, 0, + 0, 0, 553, 553, 553, 553, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, + 0, 0, 551, 0, 551, 551, 551, 0, 551, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, + 553, 553, 553, 551, 551, 551, 551, 0, 0, 0, + 0, 0, 0, 0, 553, 553, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 553, 0, 0, 0, 551, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 0, - 0, 0, 802, 553, 0, 0, 553, 553, 0, 0, - 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 553, 553, 553, 0, 553, 553, - 553, 553, 0, 0, 553, 0, 553, 0, 553, 553, - 553, 0, 0, 553, 553, 554, 553, 553, 553, 0, - 554, 0, 554, 554, 554, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 554, 554, 554, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 553, 553, 554, 553, 553, 553, 0, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 0, 553, 1116, - 1117, 0, 1118, 1119, 1120, 0, 1121, 1122, 0, 0, - 1123, 1124, 0, 1125, 0, 554, 0, 554, 0, 802, - 802, 802, 802, 802, 0, 0, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, - 0, 802, 802, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 802, 802, - 802, 802, 0, 0, 0, 802, 802, 0, 0, 0, - 0, 802, 0, 0, 802, 0, 0, 0, 0, 0, - 0, 802, 802, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 802, 802, 0, 802, - 802, 802, 0, 802, 802, 802, 802, 802, 802, 802, - 802, 802, 554, 554, 0, 554, 0, 0, 0, 0, + 553, 553, 553, 553, 0, 0, 0, 551, 553, 551, + 0, 553, 553, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, + 553, 553, 0, 553, 553, 553, 553, 0, 0, 553, + 0, 553, 0, 553, 553, 553, 0, 0, 553, 553, + 0, 553, 553, 553, 0, 0, 0, 0, 0, 0, + 553, 0, 0, 0, 0, 95, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, + 0, 97, 98, 0, 0, 0, 99, 0, 100, 0, + 0, 0, 0, 0, 0, 101, 553, 553, 0, 553, + 553, 553, 0, 553, 553, 553, 553, 553, 553, 553, + 553, 553, 102, 553, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 551, 551, 0, 551, 0, 0, + 0, 0, 551, 0, 0, 551, 0, 551, 551, 551, + 551, 551, 551, 551, 0, 551, 551, 551, 551, 0, + 551, 551, 0, 1656, 551, 551, 551, 551, 0, 0, + 551, 551, 551, 551, 0, 0, 0, 0, 552, 0, + 551, 0, 551, 0, 0, 551, 0, 0, 0, 0, + 551, 0, 0, 0, 0, 0, 551, 551, 551, 551, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 552, 0, 0, 0, 0, 552, 0, 552, 552, + 552, 0, 552, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 551, 0, 551, 551, 551, 552, 552, 552, + 552, 0, 0, 0, 0, 0, 0, 0, 551, 551, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 551, 0, 0, 0, 552, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 0, 0, + 0, 552, 551, 552, 0, 551, 551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 551, 551, 551, 551, 0, 551, 551, 551, + 551, 0, 0, 551, 1641, 551, 0, 551, 551, 551, + 0, 0, 551, 551, 0, 551, 551, 551, 0, 1642, + 0, 0, 0, 0, 551, 0, 0, 922, 923, 924, + 0, 925, 926, 927, 928, 1643, 929, 930, 198, 0, + 931, 932, 933, 934, 1644, 0, 0, 935, 936, 0, + 0, 0, 551, 551, 0, 0, 0, 0, 1645, 1646, + 1647, 1648, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 551, 0, 551, 551, 551, 0, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 0, 551, 0, 0, + 1649, 1650, 1651, 1652, 1653, 1654, 1655, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 552, 552, + 0, 552, 0, 0, 0, 937, 552, 0, 0, 552, + 0, 552, 552, 552, 552, 552, 552, 552, 0, 552, + 552, 552, 552, 0, 552, 552, 0, 0, 552, 552, + 552, 552, 0, 0, 552, 552, 552, 552, 0, 0, + 0, 0, 554, 0, 552, 0, 552, 0, 0, 552, + 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, + 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, + 554, 0, 554, 554, 554, 0, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 552, 0, 552, 552, + 552, 554, 554, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 552, 552, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, + 0, 0, 0, 554, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 0, 0, 0, 554, 552, 554, 0, 552, + 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 552, 552, 552, 552, + 0, 552, 552, 552, 552, 0, 0, 552, 0, 552, + 0, 552, 552, 552, 0, 0, 552, 552, 0, 552, + 552, 552, 0, 127, 0, 0, 0, 0, 552, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 1374, + 144, 0, 0, 0, 0, 0, 552, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 552, 552, 0, 552, 552, 552, + 0, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 0, 552, 0, 0, 0, 0, 0, 0, 1375, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 554, 554, 0, 554, 0, 1376, 0, 0, 554, 0, 0, 554, 0, 554, 554, 554, 554, 554, - 554, 554, 47, 554, 554, 554, 554, 0, 554, 554, + 554, 554, 0, 554, 554, 554, 554, 0, 554, 554, 0, 0, 554, 554, 554, 554, 0, 0, 554, 554, - 554, 554, 0, 0, 0, 0, 0, 0, 554, 0, + 554, 554, 0, 0, 0, 0, 712, 0, 554, 0, 554, 0, 0, 554, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 554, 554, 554, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 0, 554, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, + 0, 0, 0, 0, 712, 0, 712, 712, 712, 0, + 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 0, 554, 554, 554, 712, 712, 712, 712, 0, 0, 0, 0, 0, 0, 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 0, 0, 554, 554, + 0, 0, 0, 554, 0, 0, 0, 712, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 0, 0, 0, - 47, 554, 0, 0, 554, 554, 0, 0, 0, 0, - 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 554, 554, 554, 554, 0, 554, 554, 554, 554, - 0, 0, 554, 0, 554, 0, 554, 554, 554, 0, - 0, 554, 554, 556, 554, 554, 554, 0, 556, 0, - 556, 556, 556, 554, 556, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, - 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, - 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, - 554, 556, 554, 554, 554, 0, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 0, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, - 69, 0, 0, 556, 0, 556, 0, 47, 47, 47, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 47, 375, 0, 0, 0, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, - 0, 0, 0, 47, 47, 0, 0, 0, 0, 47, - 376, 0, 47, 0, 377, 0, 0, 378, 379, 47, - 47, 0, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 0, 0, 0, 0, 0, 0, - 392, 0, 0, 393, 48, 0, 0, 0, 0, 0, - 394, 0, 0, 0, 0, 0, 0, 0, 0, 395, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 47, 47, 47, - 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 556, 556, 0, 556, 0, 0, 0, 0, 556, 0, - 0, 556, 0, 556, 556, 556, 556, 556, 556, 556, - 48, 556, 556, 556, 556, 0, 556, 556, 0, 0, - 556, 556, 556, 556, 0, 0, 556, 556, 556, 556, - 0, 0, 0, 0, 0, 0, 556, 0, 556, 0, - 0, 556, 0, 0, 0, 0, 556, 0, 0, 0, - 0, 0, 556, 556, 556, 556, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, - 556, 556, 556, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 556, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 556, 0, 0, 0, 0, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 0, 0, 0, 48, 556, - 0, 0, 556, 556, 0, 0, 0, 0, 714, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, - 556, 556, 556, 0, 556, 556, 556, 556, 0, 0, - 556, 0, 556, 0, 556, 556, 556, 0, 0, 556, - 556, 714, 556, 556, 556, 0, 714, 0, 714, 714, - 714, 556, 714, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 714, 714, 714, - 714, 0, 0, 0, 0, 0, 0, 0, 0, 556, - 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 556, 556, 714, - 556, 556, 556, 0, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 0, 556, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, - 0, 714, 0, 714, 0, 48, 48, 48, 48, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 105, - 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 48, 48, 48, 0, 0, - 0, 48, 48, 0, 0, 0, 0, 48, 105, 0, - 48, 0, 105, 0, 0, 105, 105, 48, 48, 0, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 0, 0, 0, 0, 0, 0, 105, 0, - 0, 105, 49, 0, 0, 0, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 48, 0, 48, 48, 48, 0, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 714, 714, - 0, 714, 0, 0, 0, 0, 714, 0, 0, 714, - 0, 714, 714, 714, 714, 714, 714, 714, 49, 714, - 714, 714, 714, 0, 714, 714, 0, 0, 714, 714, - 714, 714, 0, 0, 714, 714, 714, 0, 0, 0, - 0, 0, 0, 0, 714, 0, 714, 0, 0, 714, - 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, - 714, 714, 714, 714, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 714, 0, 714, 714, - 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 714, 714, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, - 0, 0, 0, 0, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 0, 0, 0, 49, 714, 0, 0, - 714, 714, 0, 0, 0, 0, 713, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 714, 714, 714, - 714, 0, 714, 714, 714, 714, 0, 0, 714, 0, - 714, 0, 714, 714, 714, 0, 0, 714, 714, 713, - 714, 714, 714, 0, 713, 0, 713, 713, 713, 714, - 713, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 713, 713, 713, 713, 0, - 0, 0, 0, 0, 0, 0, 0, 714, 714, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 714, 714, 713, 714, 714, - 714, 0, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 0, 714, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 713, - 0, 713, 0, 49, 49, 49, 49, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 49, 49, 0, 0, 0, 49, - 49, 0, 0, 0, 0, 49, 0, 0, 49, 0, - 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 0, 49, 49, 49, 0, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 713, 713, 0, 713, - 0, 0, 0, 0, 713, 0, 0, 713, 0, 713, - 713, 713, 713, 713, 713, 713, 50, 713, 713, 713, - 713, 0, 713, 713, 0, 0, 713, 713, 713, 713, - 0, 0, 713, 713, 713, 0, 0, 0, 0, 0, - 0, 0, 713, 0, 713, 0, 0, 713, 0, 0, - 0, 0, 713, 0, 0, 0, 0, 0, 713, 713, - 713, 713, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 713, 0, 713, 713, 713, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 713, 713, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, - 0, 0, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 0, 0, 0, 50, 713, 0, 0, 713, 713, - 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 713, 713, 713, 713, 0, - 713, 713, 713, 713, 0, 0, 713, 0, 713, 0, - 713, 713, 713, 0, 0, 713, 713, 712, 713, 713, - 713, 0, 712, 0, 712, 712, 712, 713, 712, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 712, 712, 712, 712, 0, 0, 0, - 0, 0, 0, 0, 0, 713, 713, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 713, 713, 712, 713, 713, 713, 0, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 0, - 713, 0, 0, 0, 0, 0, 828, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 712, 0, 712, - 0, 50, 50, 50, 50, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 50, 0, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 50, 50, 50, 0, 0, 0, 50, 50, 0, - 0, 0, 828, 50, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, - 0, 50, 50, 50, 0, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 712, 712, 0, 712, 0, 0, - 0, 0, 712, 0, 0, 712, 0, 712, 712, 712, - 712, 712, 712, 712, 51, 712, 712, 712, 712, 0, - 712, 712, 0, 0, 712, 712, 712, 712, 0, 0, - 712, 712, 712, 0, 0, 0, 0, 0, 0, 0, - 712, 0, 712, 0, 0, 712, 0, 0, 0, 0, - 712, 0, 0, 0, 0, 0, 712, 712, 712, 712, - 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 554, 554, 554, 554, 554, 0, 0, 0, 712, + 554, 712, 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 554, 554, 554, 0, 554, 554, 554, 554, 0, + 0, 554, 0, 554, 0, 554, 554, 554, 0, 0, + 554, 554, 0, 554, 554, 554, 0, 0, 0, 0, + 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 712, 0, 712, 712, 712, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 712, 828, 0, 0, 0, + 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, + 0, 554, 554, 554, 0, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 0, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 712, 712, 0, 712, + 0, 0, 0, 0, 712, 0, 0, 712, 0, 712, + 712, 712, 712, 712, 712, 712, 0, 712, 712, 712, + 712, 0, 712, 712, 0, 0, 712, 712, 712, 712, + 0, 0, 712, 712, 712, 0, 0, 0, 0, 0, + 711, 0, 712, 0, 712, 0, 0, 712, 0, 0, + 0, 0, 712, 0, 0, 0, 0, 0, 712, 712, + 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 711, 0, 0, 0, 0, 711, 0, + 711, 711, 711, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 712, 0, 712, 712, 712, 711, + 711, 711, 711, 0, 0, 0, 0, 0, 0, 0, + 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, + 0, 711, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 0, - 0, 0, 51, 712, 0, 0, 712, 712, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 712, 712, 712, 712, 0, 712, 712, - 712, 712, 0, 0, 712, 0, 712, 0, 712, 712, - 712, 0, 0, 712, 712, 711, 712, 712, 712, 0, - 711, 0, 711, 711, 711, 712, 711, 0, 0, 828, - 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 711, 711, 711, 711, 0, 0, 0, 0, 828, - 0, 0, 0, 712, 712, 0, 0, 0, 0, 0, - 0, 828, 0, 828, 828, 0, 828, 828, 0, 0, - 0, 712, 712, 711, 712, 712, 712, 0, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 0, 712, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 711, 0, 711, 0, 51, - 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 51, 828, 828, 828, 828, 828, 828, 828, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, - 51, 51, 0, 0, 0, 51, 51, 0, 0, 0, - 0, 51, 0, 0, 51, 0, 0, 0, 0, 0, - 0, 51, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 51, 0, 51, - 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 711, 711, 0, 711, 0, 0, 0, 0, - 711, 0, 0, 711, 0, 711, 711, 711, 711, 711, - 711, 711, 0, 711, 711, 711, 711, 0, 711, 711, - 0, 0, 711, 711, 711, 711, 0, 0, 711, 711, - 711, 0, 0, 0, 0, 0, 0, 721, 711, 0, - 711, 0, 0, 711, 0, 0, 0, 0, 711, 0, - 0, 0, 0, 0, 711, 711, 711, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 721, 721, 0, - 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, - 711, 0, 711, 711, 711, 0, 721, 0, 721, 721, - 0, 0, 0, 0, 0, 0, 711, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 711, 0, 0, 0, 0, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 0, 0, 0, - 721, 711, 721, 0, 711, 711, 0, 0, 0, 0, + 0, 0, 0, 711, 712, 711, 0, 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 711, 711, 711, 711, 0, 711, 711, 711, 711, - 0, 0, 711, 0, 711, 0, 711, 711, 711, 0, - 0, 711, 711, 0, 711, 711, 711, 0, 0, 0, - 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 712, 712, 712, 712, 0, 712, + 712, 712, 712, 0, 0, 712, 0, 712, 0, 712, + 712, 712, 0, 0, 712, 712, 0, 712, 712, 712, + 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 711, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 711, - 711, 0, 711, 711, 711, 0, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 0, 711, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 721, 721, 0, - 721, 0, 0, 0, 0, 721, 0, 0, 721, 0, - 721, 721, 721, 721, 721, 721, 721, 0, 721, 721, - 721, 721, 0, 721, 721, 0, 0, 721, 721, 721, - 721, 0, 0, 721, 721, 721, 0, 0, 0, 52, - 0, 400, 97, 721, 0, 721, 0, 99, 721, 100, - 0, 0, 0, 721, 0, 0, 101, 0, 0, 721, - 721, 721, 721, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 401, 0, 402, 403, 404, 405, - 406, 0, 0, 0, 0, 407, 0, 0, 103, 0, - 0, 0, 0, 0, 408, 721, 0, 0, 52, 409, - 0, 410, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 721, 721, 411, 412, 413, 414, 415, 416, 417, - 418, 0, 0, 0, 0, 0, 419, 0, 721, 0, - 0, 0, 0, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 52, 0, 52, 0, 721, 0, 0, 721, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 721, 721, 721, - 0, 721, 721, 721, 721, 0, 0, 721, 0, 721, - 0, 721, 721, 721, 0, 0, 721, 721, 0, 721, - 721, 721, 0, 0, 0, 0, 0, 0, 721, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 721, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 721, 721, 0, 721, 721, 721, - 0, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 0, 52, 52, 52, 0, - 52, 52, 52, 52, 0, 52, 52, 52, 0, 52, - 52, 52, 52, 0, 0, 52, 52, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 591, 127, 592, 0, - 54, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 52, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 52, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 147, - 148, 149, 0, 52, 52, 0, 0, 0, 0, 54, + 0, 0, 0, 0, 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 54, 0, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, - 0, 52, 0, 52, 52, 52, 52, 0, 52, 52, - 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 712, 712, 0, 712, 712, 712, 0, 712, + 712, 712, 712, 712, 712, 712, 712, 712, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 711, 711, 0, 711, 0, 0, 0, 0, 711, 0, + 0, 711, 0, 711, 711, 711, 711, 711, 711, 711, + 0, 711, 711, 711, 711, 0, 711, 711, 0, 0, + 711, 711, 711, 711, 0, 0, 711, 711, 711, 0, + 0, 0, 0, 0, 710, 0, 711, 0, 711, 0, + 0, 711, 0, 0, 0, 0, 711, 0, 0, 0, + 0, 0, 711, 711, 711, 711, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 710, 0, 0, + 0, 0, 710, 0, 710, 710, 710, 0, 710, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 711, 0, + 711, 711, 711, 710, 710, 710, 710, 0, 0, 0, + 0, 0, 0, 0, 711, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 52, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 52, 52, 52, + 0, 711, 0, 0, 0, 710, 711, 711, 711, 711, + 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, + 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, + 711, 711, 711, 711, 0, 0, 0, 710, 711, 710, + 0, 711, 711, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 711, 711, + 711, 711, 0, 711, 711, 711, 711, 0, 0, 711, + 0, 711, 0, 711, 711, 711, 0, 0, 711, 711, + 0, 711, 711, 711, 0, 0, 0, 0, 0, 0, + 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 711, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 711, 711, 0, 711, + 711, 711, 0, 711, 711, 711, 711, 711, 711, 711, + 711, 711, 0, 711, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 710, 710, 0, 710, 0, 0, + 0, 0, 710, 0, 0, 710, 0, 710, 710, 710, + 710, 710, 710, 710, 0, 710, 710, 710, 710, 0, + 710, 710, 0, 0, 710, 710, 710, 710, 0, 0, + 710, 710, 710, 0, 0, 0, 0, 0, 709, 0, + 710, 0, 710, 0, 0, 710, 0, 0, 0, 0, + 710, 0, 0, 0, 0, 0, 710, 710, 710, 710, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 709, 0, 0, 0, 0, 709, 0, 709, 709, + 709, 0, 709, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 710, 0, 710, 710, 710, 709, 709, 709, + 709, 0, 0, 0, 0, 0, 0, 0, 710, 710, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 710, 0, 0, 0, 709, + 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, + 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, + 710, 710, 710, 710, 710, 710, 710, 710, 0, 0, + 0, 709, 710, 709, 0, 710, 710, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 710, 710, 710, 710, 0, 710, 710, 710, + 710, 0, 0, 710, 0, 710, 0, 710, 710, 710, + 0, 0, 710, 710, 0, 710, 710, 710, 0, 0, + 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 710, 710, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 710, 710, 0, 710, 710, 710, 0, 710, 710, 710, + 710, 710, 710, 710, 710, 710, 0, 710, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 709, 709, + 0, 709, 0, 0, 0, 0, 709, 0, 0, 709, + 0, 709, 709, 709, 709, 709, 709, 709, 0, 709, + 709, 709, 709, 0, 709, 709, 0, 0, 709, 709, + 709, 709, 0, 0, 709, 709, 709, 0, 0, 0, + 0, 0, 719, 0, 709, 0, 709, 0, 0, 709, + 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, + 709, 709, 709, 709, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, + 0, 0, 719, 719, 0, 0, 719, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 709, 0, 709, 709, + 709, 719, 0, 719, 719, 0, 0, 0, 0, 0, + 0, 0, 709, 709, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1500, 709, + 0, 0, 0, 0, 709, 709, 709, 709, 709, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, + 709, 709, 0, 0, 0, 719, 709, 719, 0, 709, + 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 709, 709, 709, 709, + 0, 709, 709, 709, 709, 0, 0, 709, 0, 709, + 0, 709, 709, 709, 0, 0, 709, 709, 0, 709, + 709, 709, 0, 0, 0, 0, 0, 0, 709, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 709, 709, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 298, 709, 709, 0, 709, 709, 709, + 0, 709, 709, 709, 709, 709, 709, 709, 709, 709, + 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 719, 719, 0, 719, 0, 0, 0, 0, + 719, 0, 0, 719, 0, 719, 719, 719, 719, 719, + 719, 719, 0, 719, 719, 719, 719, 0, 719, 719, + 0, 0, 719, 719, 719, 719, 0, 0, 719, 719, + 719, 0, 0, 52, 0, 0, 0, 0, 719, 0, + 719, 0, 0, 719, 0, 0, 0, 0, 719, 0, + 0, 0, 0, 0, 719, 719, 719, 719, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1051, 0, 0, 0, 0, 0, 0, 1052, 0, + 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, + 719, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 719, 719, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1056, + 1057, 1058, 0, 719, 0, 0, 0, 0, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 52, 0, 52, 0, + 719, 0, 0, 719, 719, 1059, 1060, 1061, 0, 1062, + 0, 0, 1063, 0, 0, 0, 0, 0, 0, 0, + 719, 719, 719, 719, 0, 719, 719, 719, 719, 0, + 0, 719, 0, 719, 0, 719, 719, 719, 0, 0, + 719, 719, 0, 719, 719, 719, 298, 0, 0, 0, + 0, 0, 719, 298, 0, 298, 298, 298, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 719, 719, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 298, 298, 0, 719, 719, + 0, 719, 719, 719, 0, 719, 719, 719, 719, 719, + 719, 719, 719, 719, 0, 719, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 52, 0, 0, 0, + 298, 298, 298, 0, 298, 0, 52, 298, 0, 0, + 52, 52, 52, 0, 52, 52, 52, 52, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 589, 127, 590, 54, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 52, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 54, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 54, 0, 0, 0, 54, 54, 54, - 0, 54, 54, 54, 54, 0, 54, 54, 54, 0, - 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 127, 266, - 0, 55, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 54, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 0, 143, 144, 0, 0, 0, 54, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 147, 148, 149, 0, 54, 54, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, + 0, 0, 52, 147, 148, 149, 0, 52, 52, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 54, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 52, 52, 52, 0, 52, 52, 52, 52, + 0, 0, 52, 0, 52, 0, 52, 52, 52, 52, + 0, 52, 52, 0, 52, 52, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, + 373, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 0, 0, 0, 0, 374, + 0, 0, 0, 375, 0, 0, 376, 377, 0, 0, + 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 54, 0, 0, 54, 0, 0, 390, + 0, 0, 391, 155, 0, 0, 54, 0, 0, 392, + 54, 54, 54, 0, 54, 54, 54, 54, 393, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 265, 127, 266, 55, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 54, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 0, 54, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 147, 148, 149, 0, 54, 54, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 55, 0, 55, 0, 0, 844, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 54, 54, 0, 54, 54, 54, 54, 0, 0, - 54, 0, 54, 0, 54, 54, 54, 54, 0, 54, - 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, - 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 155, 0, 0, 55, 0, 0, 0, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 55, 55, 55, - 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 0, 0, 56, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 55, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 55, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 147, 148, 149, 0, 55, 55, 0, 0, 0, - 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, + 54, 54, 54, 54, 54, 54, 55, 0, 55, 0, + 0, 841, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, + 0, 0, 54, 0, 54, 0, 54, 54, 54, 54, + 0, 54, 54, 0, 54, 54, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 105, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, + 105, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 54, 0, 54, 54, 54, 0, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 0, 0, 0, 0, 105, + 0, 0, 0, 105, 0, 0, 105, 105, 0, 0, + 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 55, 0, 0, 55, 0, 0, 105, + 0, 0, 105, 155, 0, 0, 55, 0, 0, 105, + 55, 55, 55, 0, 55, 55, 55, 55, 105, 55, + 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 56, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 55, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 0, 55, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 147, 148, 149, 0, 55, 55, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, - 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, - 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, - 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 56, 0, 56, 0, + 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, + 0, 0, 55, 0, 55, 0, 55, 55, 55, 55, + 0, 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 53, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 56, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 56, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 147, 148, 149, 0, 56, 56, 0, 0, + 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 56, 0, 0, 0, + 56, 56, 56, 0, 56, 56, 56, 56, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, + 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 53, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 56, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 0, 56, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 147, 148, 149, 0, 56, 56, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, @@ -2083,2651 +1956,2639 @@ static int yytable[] = { 70, 0, 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, 0, 0, 155, 0, 0, 53, 0, 0, 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, 0, 0, 53, - 53, 53, 0, 0, 0, 0, 61, 0, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 53, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 53, 53, 0, 0, 0, 61, 0, 61, 0, 0, + 0, 0, 34, 398, 97, 0, 0, 0, 0, 99, + 0, 100, 0, 0, 0, 53, 0, 0, 101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 102, 399, 0, 400, 401, + 402, 403, 404, 0, 0, 0, 0, 405, 0, 0, + 103, 0, 53, 0, 0, 0, 406, 53, 53, 0, + 0, 407, 0, 408, 0, 0, 0, 0, 551, 0, + 0, 0, 0, 0, 0, 409, 410, 411, 412, 413, + 414, 415, 416, 0, 0, 0, 0, 0, 417, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, - 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 0, 0, 62, - 0, 0, 0, 61, 0, 0, 61, 0, 0, 0, - 0, 0, 53, 53, 53, 53, 61, 53, 53, 53, - 53, 0, 0, 53, 0, 53, 0, 53, 53, 53, - 53, 0, 53, 53, 0, 53, 53, 53, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 61, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 62, 0, 0, + 0, 0, 61, 0, 0, 61, 0, 0, 0, 0, + 0, 53, 53, 53, 53, 61, 53, 53, 53, 53, + 0, 0, 53, 0, 53, 0, 53, 53, 53, 53, + 0, 53, 53, 0, 53, 53, 53, 0, 61, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 2, 0, 0, 53, + 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 542, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, - 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 0, 0, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 61, 61, 61, 0, 61, 61, 61, - 61, 0, 0, 61, 0, 61, 0, 61, 61, 61, - 61, 0, 61, 61, 0, 61, 61, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 61, 61, 61, 61, 61, 61, 0, 0, 0, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 61, 61, 61, 0, 61, 61, 61, 61, 0, + 0, 61, 0, 61, 0, 61, 61, 61, 61, 0, + 61, 61, 0, 61, 61, 61, 0, 0, 0, 0, + 0, 0, 543, 0, 5, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 544, 0, 0, 0, + 0, 545, 0, 0, 8, 9, 0, 0, 0, 0, + 61, 61, 0, 0, 0, 0, 0, 62, 0, 0, + 62, 10, 11, 12, 13, 0, 546, 547, 61, 61, + 62, 61, 61, 61, 0, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 0, 0, 548, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 65, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 549, 550, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 61, 0, 0, 0, 0, 0, 62, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 61, 61, 62, 61, 61, 61, 0, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, + 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 0, 0, 0, 62, 62, 62, + 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 0, 0, 66, 0, 0, 0, 65, - 0, 0, 65, 0, 0, 0, 0, 0, 62, 62, - 62, 62, 65, 62, 62, 62, 62, 0, 0, 62, - 0, 62, 0, 62, 62, 62, 62, 0, 62, 62, - 0, 62, 62, 62, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 0, 0, 0, 62, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 62, 62, 0, 62, - 62, 62, 0, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 65, 65, 65, 65, 65, + 0, 66, 0, 0, 0, 0, 65, 0, 0, 65, + 0, 0, 0, 0, 0, 62, 62, 62, 62, 65, + 62, 62, 62, 62, 0, 0, 62, 0, 62, 0, + 62, 62, 62, 62, 0, 62, 62, 0, 62, 62, + 62, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 62, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 62, 62, 0, 62, 62, 62, 0, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 0, 0, 0, 0, 0, 0, 0, - 568, 0, 0, 0, 0, 0, 0, 0, 65, 65, - 65, 65, 0, 65, 65, 65, 65, 0, 0, 65, - 0, 65, 0, 65, 65, 65, 65, 0, 65, 65, - 0, 65, 65, 65, 0, 0, 0, 0, 0, 0, - 568, 568, 0, 0, 568, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, - 0, 568, 0, 0, 0, 0, 0, 0, 65, 65, - 0, 0, 0, 0, 0, 66, 0, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 65, 65, 66, 65, - 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 568, 0, 568, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, + 0, 0, 0, 0, 0, 566, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 65, 65, 65, 0, 65, + 65, 65, 65, 0, 0, 65, 0, 65, 0, 65, + 65, 65, 65, 0, 65, 65, 0, 65, 65, 65, + 0, 0, 0, 0, 0, 566, 566, 0, 0, 566, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 0, 566, 0, 0, 0, + 0, 0, 0, 0, 65, 65, 0, 0, 0, 0, + 0, 66, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 65, 65, 66, 65, 65, 65, 0, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, + 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, - 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, - 568, 568, 0, 568, 66, 66, 66, 66, 0, 66, - 66, 66, 66, 568, 568, 66, 0, 66, 0, 66, - 66, 66, 66, 0, 66, 66, 0, 66, 66, 66, - 0, 566, 566, 0, 0, 566, 0, 0, 0, 0, + 66, 66, 66, 66, 66, 0, 0, 0, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 0, 0, 564, 0, 0, 0, + 0, 0, 0, 0, 0, 566, 566, 0, 566, 66, + 66, 66, 66, 0, 66, 66, 66, 66, 566, 566, + 66, 0, 66, 0, 66, 66, 66, 66, 0, 66, + 66, 0, 66, 66, 66, 0, 564, 564, 0, 0, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 564, 566, 564, 0, 0, + 0, 566, 0, 0, 0, 0, 0, 566, 0, 66, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 66, 66, 0, + 66, 66, 66, 0, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, + 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, + 0, 0, 566, 566, 566, 566, 566, 566, 566, 0, + 0, 0, 0, 566, 0, 0, 566, 566, 0, 0, + 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 566, 566, 566, 0, 566, 566, + 566, 566, 0, 0, 566, 0, 566, 0, 566, 566, + 566, 0, 0, 566, 566, 0, 566, 566, 566, 0, + 565, 565, 0, 0, 565, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, + 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 566, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, + 564, 566, 566, 0, 566, 566, 566, 0, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 566, 568, 566, 0, 0, 0, 568, 0, 0, 0, - 0, 0, 568, 0, 66, 66, 0, 0, 0, 0, + 0, 0, 0, 565, 0, 565, 0, 564, 0, 0, + 0, 0, 564, 0, 0, 0, 0, 0, 564, 0, + 0, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, + 144, 0, 0, 33, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 66, 0, 66, 66, 66, 0, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, + 0, 0, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 150, 0, 33, 564, 564, 564, 564, 564, 564, 564, + 0, 0, 0, 0, 564, 0, 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 566, 0, 566, 0, 0, 0, + 0, 0, 0, 0, 564, 564, 564, 564, 0, 564, + 564, 564, 564, 565, 565, 564, 0, 564, 0, 564, + 564, 564, 0, 0, 564, 564, 0, 564, 564, 564, + 0, 0, 0, 0, 0, 0, 33, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 565, 0, 0, 0, 0, 565, 0, 0, 0, + 0, 0, 565, 0, 564, 564, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 564, 564, 0, 564, 564, 564, 0, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 0, 0, 0, 568, 568, - 568, 568, 568, 568, 568, 0, 0, 0, 0, 568, - 0, 0, 568, 568, 0, 0, 567, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, - 568, 568, 568, 0, 568, 568, 568, 568, 0, 0, - 568, 0, 568, 0, 568, 568, 568, 0, 0, 568, - 568, 0, 568, 568, 568, 0, 567, 567, 0, 0, - 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 567, 0, 567, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, - 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 566, 566, 0, 568, 568, 0, - 568, 568, 568, 0, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, - 0, 567, 566, 0, 0, 0, 0, 566, 0, 0, - 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 33, 0, 0, 566, - 566, 566, 566, 566, 566, 566, 0, 0, 0, 0, - 566, 0, 0, 566, 566, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 566, 566, 566, 566, 0, 566, 566, 566, 566, 567, - 567, 566, 0, 566, 0, 566, 566, 566, 0, 0, - 566, 566, 0, 566, 566, 566, 0, 0, 0, 0, - 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, - 0, 0, 567, 0, 0, 0, 0, 0, 567, 0, - 566, 566, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 566, 566, - 0, 566, 566, 566, 0, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 0, 155, 0, 565, 565, 565, + 565, 565, 565, 565, 0, 0, 0, 0, 565, 0, + 0, 565, 565, 33, 34, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 565, 565, + 565, 565, 0, 565, 565, 565, 565, 0, 0, 565, + 0, 565, 0, 565, 565, 565, 0, 0, 565, 565, + 0, 565, 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 0, 0, 0, 567, 567, 567, 567, 567, 567, - 567, 0, 0, 0, 34, 567, 0, 33, 567, 567, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 567, 567, 567, 567, 0, - 567, 567, 567, 567, 0, 0, 567, 0, 567, 0, - 567, 567, 567, 0, 0, 567, 567, 0, 567, 567, - 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 33, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 567, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 34, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 567, 567, 0, 567, 567, 567, 0, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 0, - 0, 0, 0, 0, 0, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 565, 565, 0, 565, + 565, 565, 0, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 0, 0, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 0, 0, 0, 791, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, - 0, 33, 33, 33, 33, 34, 0, 33, 34, 33, - 0, 0, 33, 0, 0, 0, 0, 0, 34, 33, - 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 33, 33, 33, 33, 0, 789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 33, 33, 33, 0, 33, 33, 33, 33, + 0, 0, 33, 0, 33, 34, 0, 33, 34, 0, + 0, 0, 0, 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 791, 0, - 791, 0, 0, 0, 0, 0, 33, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 33, 33, 0, 33, 33, 33, - 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 789, 0, 789, 0, 0, 0, 0, 0, 0, + 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 33, + 33, 0, 33, 33, 33, 0, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, - 0, 0, 793, 0, 0, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 34, 34, 34, 791, 34, - 34, 34, 34, 0, 0, 34, 0, 34, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 34, 34, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 793, 791, 793, 0, - 0, 0, 0, 0, 34, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 0, 34, 34, 34, 0, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 0, 791, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 789, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 789, 92, 34, 34, 34, 34, 0, 34, 34, + 34, 34, 0, 0, 34, 0, 34, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, + 0, 0, 0, 0, 0, 791, 0, 791, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 0, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 34, 0, 34, 34, 34, 0, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, + 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 789, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 789, 0, 0, 0, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 0, 0, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 791, 0, 0, 0, 789, 789, 789, 789, + 0, 789, 789, 789, 789, 791, 0, 789, 0, 789, + 0, 0, 789, 0, 0, 0, 0, 0, 0, 789, + 789, 789, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 795, 0, 795, + 0, 0, 0, 0, 791, 0, 789, 789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 789, 789, 0, 789, 789, 789, + 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 0, 0, 0, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 0, 0, 0, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 0, - 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 791, 791, 791, 791, 0, 791, - 791, 791, 791, 793, 0, 791, 0, 791, 0, 0, - 791, 0, 0, 0, 0, 0, 793, 791, 791, 791, + 791, 791, 791, 791, 791, 0, 0, 793, 0, 0, + 0, 0, 92, 92, 92, 92, 92, 0, 0, 0, + 791, 791, 791, 791, 795, 791, 791, 791, 791, 0, + 0, 791, 0, 791, 92, 92, 791, 795, 0, 0, + 0, 0, 0, 791, 791, 791, 0, 0, 0, 0, + 0, 92, 92, 92, 92, 0, 0, 0, 92, 92, + 0, 0, 0, 0, 92, 0, 0, 92, 0, 0, + 0, 793, 0, 793, 92, 92, 0, 0, 0, 0, + 791, 791, 0, 0, 0, 0, 795, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 791, 791, + 0, 791, 791, 791, 0, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 0, 0, 0, 0, 0, 0, + 0, 797, 0, 0, 0, 0, 0, 0, 0, 92, + 92, 0, 92, 92, 92, 0, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 0, 0, + 797, 795, 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, + 0, 0, 795, 795, 795, 795, 0, 795, 795, 795, + 795, 793, 0, 795, 0, 795, 0, 0, 795, 0, + 0, 0, 0, 0, 0, 795, 795, 795, 0, 0, + 0, 0, 0, 0, 797, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 797, 0, 797, 0, - 0, 0, 0, 0, 791, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, - 0, 0, 791, 791, 0, 791, 791, 791, 0, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 793, 0, 795, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 795, 795, 0, 795, 795, 795, 0, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 0, 0, - 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 0, 0, 0, - 795, 0, 0, 797, 0, 0, 0, 0, 0, 0, - 0, 0, 793, 793, 793, 793, 797, 793, 793, 793, - 793, 0, 0, 793, 0, 793, 0, 0, 793, 0, - 0, 0, 0, 0, 0, 793, 793, 793, 0, 0, + 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 0, 0, 0, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 797, 747, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 797, 0, 793, 793, 793, 793, + 0, 793, 793, 793, 793, 0, 0, 793, 0, 793, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 793, + 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 795, 797, 795, 0, 0, 0, - 0, 0, 793, 793, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 797, 0, 0, 747, 0, 747, 0, + 0, 0, 0, 0, 0, 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 793, 793, 0, 793, 793, 793, 0, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 793, 0, 793, 793, 793, + 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, + 0, 0, 0, 0, 0, 0, 0, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 0, 0, - 0, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 0, 0, 0, - 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 797, 797, 797, 797, 0, 797, 797, 797, - 797, 795, 0, 797, 0, 797, 0, 0, 797, 0, - 0, 0, 0, 0, 795, 797, 797, 797, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 799, 0, 799, 0, 0, 0, - 0, 0, 797, 797, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 795, 0, 0, 0, 0, 0, 0, - 797, 797, 0, 797, 797, 797, 0, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 797, 797, 797, 797, 797, 0, 0, 0, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 0, 749, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, + 797, 797, 797, 0, 797, 797, 797, 797, 0, 0, + 797, 0, 797, 747, 0, 797, 747, 0, 0, 0, + 0, 0, 797, 797, 797, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, + 0, 749, 0, 0, 0, 0, 0, 0, 0, 797, + 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 747, 0, 797, 797, 0, + 797, 797, 797, 0, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 0, 0, 0, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 0, 0, 0, 749, 0, - 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, - 795, 795, 795, 795, 799, 795, 795, 795, 795, 0, - 0, 795, 0, 795, 0, 0, 795, 0, 0, 0, - 0, 0, 0, 795, 795, 795, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 749, 799, 749, 0, 0, 0, 0, 0, - 795, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 795, 795, - 0, 795, 795, 795, 0, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 799, 799, 799, - 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 799, 799, 0, 0, 0, 799, - 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 799, 0, 0, 0, 751, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 799, 799, 799, 799, 0, 799, 799, 799, 799, 749, - 0, 799, 749, 799, 0, 0, 799, 0, 0, 0, - 0, 0, 749, 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 751, 0, 751, 0, 0, 0, 0, 0, - 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 749, 0, 0, 0, 0, 0, 0, 799, 799, - 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 0, 0, 747, + 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, + 747, 747, 747, 747, 747, 747, 747, 0, 0, 0, + 747, 747, 747, 747, 747, 747, 747, 0, 0, 0, + 0, 747, 0, 0, 747, 747, 749, 0, 0, 749, + 400, 0, 0, 0, 0, 0, 0, 0, 0, 749, + 0, 747, 747, 747, 747, 400, 747, 747, 747, 747, + 0, 0, 747, 0, 747, 0, 747, 747, 747, 0, + 0, 747, 747, 0, 747, 747, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 0, 0, 0, 749, 749, 749, - 749, 749, 749, 749, 0, 0, 0, 0, 749, 0, - 400, 749, 749, 0, 0, 0, 0, 0, 0, 751, - 0, 0, 751, 0, 0, 0, 0, 0, 749, 749, - 749, 749, 751, 749, 749, 749, 749, 0, 0, 749, - 0, 749, 0, 749, 749, 749, 0, 0, 749, 749, - 0, 749, 749, 749, 400, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 751, 0, 0, 0, 0, 0, 0, 749, 749, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 749, 749, 0, 749, - 749, 749, 157, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 400, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 0, 0, 0, 751, 751, 751, - 751, 751, 751, 751, 442, 0, 0, 0, 751, 0, - 0, 751, 751, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 751, 751, - 751, 751, 0, 751, 751, 751, 751, 0, 805, 751, - 0, 751, 0, 751, 751, 751, 0, 0, 751, 751, - 0, 751, 751, 751, 0, 0, 0, 0, 0, 0, + 0, 747, 747, 0, 0, 0, 0, 0, 0, 400, + 0, 400, 0, 0, 0, 0, 0, 0, 0, 747, + 747, 0, 747, 747, 747, 0, 747, 747, 747, 747, + 747, 747, 747, 747, 747, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 749, 749, 749, 749, 749, 749, 749, 749, + 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, + 0, 0, 0, 749, 749, 749, 749, 749, 749, 749, + 0, 0, 0, 0, 749, 0, 0, 749, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 751, 751, - 400, 0, 0, 400, 0, 0, 0, 805, 0, 0, - 0, 0, 0, 400, 0, 0, 751, 751, 0, 751, - 751, 751, 0, 751, 751, 751, 751, 751, 751, 751, - 751, 751, 0, 0, 0, 0, 0, 442, 0, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 0, 0, 0, 400, 400, - 400, 400, 400, 400, 400, 0, 0, 150, 0, 400, - 0, 0, 400, 400, 442, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 0, 400, - 400, 400, 400, 0, 400, 400, 400, 400, 0, 0, - 400, 0, 400, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 400, 400, 400, 0, 0, 0, 0, 0, - 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 442, 0, 749, 749, 749, 749, 0, 749, + 749, 749, 749, 0, 0, 749, 0, 749, 0, 749, + 749, 749, 0, 0, 749, 749, 0, 749, 749, 749, + 0, 0, 0, 0, 0, 0, 400, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, - 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 400, 400, 0, - 400, 400, 400, 0, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 749, 749, 442, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 0, - 0, 0, 442, 442, 442, 442, 442, 442, 442, 0, - 0, 0, 0, 442, 232, 157, 442, 442, 0, 0, - 298, 0, 0, 155, 297, 0, 0, 0, 805, 805, - 805, 805, 805, 442, 442, 442, 442, 0, 442, 442, - 442, 442, 296, 0, 442, 0, 442, 0, 0, 442, - 805, 805, 0, 0, 0, 0, 442, 442, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 805, 805, 805, - 805, 0, 0, 483, 805, 805, 0, 0, 0, 0, - 805, 0, 0, 805, 0, 0, 0, 0, 0, 0, - 805, 805, 0, 442, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 442, 0, 442, 442, 442, 0, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 805, 805, 0, 805, 805, - 805, 0, 805, 805, 805, 805, 805, 805, 805, 805, - 805, 0, 0, 0, 0, 157, 0, 0, 0, 0, - 298, 0, 0, 0, 752, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 232, 0, 0, 0, 232, 232, - 232, 232, 232, 0, 232, 232, 232, 232, 0, 232, - 232, 0, 0, 232, 232, 232, 232, 0, 0, 0, - 232, 232, 0, 483, 0, 0, 0, 0, 0, 232, - 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 232, 232, 232, 0, - 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 0, 0, 749, 749, 210, 749, 749, 749, 0, 749, + 749, 749, 749, 749, 749, 749, 749, 749, 400, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 93, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 232, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 701, 0, - 0, 0, 0, 701, 0, 0, 0, 701, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 701, 0, 0, 0, 0, - 150, 0, 291, 292, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 481, 482, 0, 0, - 0, 0, 0, 0, 0, 0, 701, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 34, 152, 153, 154, - 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 157, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 144, 0, 0, 210, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 553, 0, 0, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 0, 291, 292, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 481, 482, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 701, 701, 0, 701, 0, - 0, 0, 0, 701, 0, 0, 701, 152, 153, 154, - 701, 701, 701, 701, 701, 0, 701, 701, 701, 701, - 0, 701, 701, 0, 0, 701, 701, 701, 701, 0, - 0, 701, 701, 701, 0, 0, 0, 0, 0, 0, - 157, 701, 0, 701, 0, 298, 0, 0, 0, 297, - 0, 0, 0, 0, 0, 0, 0, 0, 701, 701, - 701, 0, 0, 0, 0, 0, 0, 296, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 701, 0, 701, 701, 701, 483, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 701, - 701, 0, 0, 0, 0, 0, 0, 0, 127, 544, - 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 212, 155, 139, 140, 141, - 142, 451, 0, 0, 143, 144, 0, 0, 0, 0, - 701, 701, 701, 145, 0, 146, 0, 0, 0, 0, + 93, 0, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 0, 0, 0, 400, 400, 400, 400, 400, 400, 400, + 150, 151, 0, 442, 400, 0, 442, 400, 400, 210, + 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 0, 400, 400, 400, 400, 0, 400, + 400, 400, 400, 0, 0, 400, 93, 400, 0, 0, + 400, 0, 0, 0, 0, 94, 0, 400, 400, 400, + 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, + 0, 0, 0, 0, 400, 400, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 400, 94, 400, 400, 400, 0, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 147, 148, 149, 0, 452, 0, 453, 454, 455, 456, + 0, 0, 0, 0, 0, 800, 0, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 210, 0, 0, + 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, + 94, 442, 0, 0, 442, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 155, 0, 0, 47, 0, + 0, 442, 442, 442, 442, 0, 442, 442, 442, 442, + 0, 800, 442, 0, 442, 0, 210, 442, 0, 0, + 0, 0, 0, 0, 442, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, + 0, 442, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 442, 0, 442, 442, 442, 0, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 210, 47, 0, 210, 210, 0, 94, 0, + 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 210, 210, 0, 210, 210, 210, + 210, 0, 93, 93, 0, 210, 0, 0, 210, 800, + 48, 0, 0, 0, 0, 210, 210, 210, 0, 93, + 93, 93, 93, 0, 0, 0, 93, 93, 0, 0, + 0, 0, 93, 0, 0, 93, 0, 49, 0, 0, + 0, 0, 93, 93, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 93, 93, 0, + 93, 93, 93, 0, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 0, 94, 94, 94, 94, 94, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 94, 94, 0, 0, + 0, 0, 0, 0, 0, 800, 800, 800, 800, 800, + 0, 0, 0, 94, 94, 94, 94, 0, 0, 0, + 94, 94, 49, 0, 0, 0, 94, 800, 800, 94, + 50, 0, 0, 0, 0, 0, 94, 94, 0, 0, + 0, 0, 0, 0, 800, 800, 800, 800, 0, 0, + 0, 800, 800, 0, 0, 0, 0, 800, 0, 0, + 800, 0, 0, 0, 0, 0, 0, 800, 800, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 94, 94, 0, 94, 94, 94, 0, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, + 47, 47, 800, 800, 0, 800, 800, 800, 0, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 0, 47, + 47, 51, 0, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 47, 47, 47, 47, + 0, 0, 0, 47, 47, 0, 0, 0, 0, 47, + 49, 0, 47, 0, 0, 0, 0, 0, 0, 47, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 545, 0, 5, - 6, 7, 0, 457, 458, 459, 460, 0, 0, 461, - 0, 546, 0, 462, 463, 464, 547, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 0, 548, 549, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, - 69, 550, 0, 0, 0, 126, 0, 0, 127, 701, - 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 98, 143, 144, 551, 552, 0, 0, - 0, 0, 156, 145, 0, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, - 147, 148, 149, 27, 28, 29, 30, 31, 32, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 291, 292, 293, - 0, 0, 0, 212, 0, 0, 0, 212, 212, 212, - 212, 212, 0, 212, 212, 212, 212, 0, 212, 212, - 0, 155, 212, 212, 212, 212, 212, 0, 0, 212, - 212, 0, 0, 0, 0, 0, 0, 0, 212, 0, - 212, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 152, 153, 154, 212, 212, 212, 0, 212, - 0, 212, 212, 212, 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 212, 0, 0, 0, 0, 0, 0, 0, 212, 212, - 212, 212, 0, 0, 212, 0, 0, 0, 212, 212, - 212, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 47, 47, 47, + 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 50, 0, 0, 49, 49, 49, 49, + 49, 803, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 0, 0, 0, 48, 48, 0, 49, 49, + 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 0, 49, 49, 49, 49, 0, + 0, 0, 49, 49, 0, 0, 0, 0, 49, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 49, 49, + 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, + 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 49, 0, 49, 49, 49, 0, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, + 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, + 50, 50, 0, 0, 157, 50, 50, 0, 0, 298, + 0, 50, 0, 749, 50, 0, 0, 0, 0, 0, + 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 51, 51, 51, 0, 50, 50, 0, 50, + 50, 50, 0, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 51, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 51, 51, 51, 0, 0, 0, 51, 51, 0, 0, + 0, 0, 51, 0, 0, 51, 0, 0, 0, 0, + 0, 0, 51, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 699, 0, 0, 0, 0, 699, 0, + 0, 0, 699, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 699, 803, 803, 803, 803, 803, 0, 51, 51, 0, + 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 803, 803, 0, 0, 0, 0, 0, + 0, 699, 157, 0, 0, 0, 0, 0, 0, 0, + 803, 803, 803, 803, 0, 0, 0, 803, 803, 0, + 0, 67, 68, 803, 69, 0, 803, 0, 0, 126, + 0, 0, 127, 803, 803, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 210, 0, 98, 143, 144, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 803, 803, + 0, 803, 803, 803, 0, 803, 803, 803, 803, 803, + 803, 803, 803, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 151, 0, 0, 212, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 210, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 212, 147, 148, 149, - 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 982, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 210, 0, - 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 151, 0, 0, 0, 67, 68, 0, - 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, - 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, - 142, 210, 0, 98, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 145, 0, 146, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 159, - 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 291, 292, 293, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 479, 480, 298, 0, 0, + 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 699, 699, 0, 699, 0, 152, 153, 154, 699, 0, + 0, 699, 0, 212, 0, 699, 699, 699, 699, 699, + 481, 699, 699, 699, 699, 0, 699, 699, 0, 0, + 699, 699, 699, 699, 0, 0, 699, 699, 699, 0, + 0, 0, 0, 0, 0, 0, 699, 0, 699, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 699, 699, 699, 0, 0, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 449, 0, 0, 143, 144, 699, 0, + 699, 699, 699, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 699, 699, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 450, 0, 451, 452, + 453, 454, 0, 0, 155, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 699, 699, 699, 150, 0, 0, + 0, 0, 0, 0, 0, 455, 456, 457, 458, 0, + 0, 459, 0, 0, 0, 460, 461, 462, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 69, 0, 210, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 157, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 212, 147, 148, 149, 212, 212, 212, 212, 212, + 0, 212, 212, 212, 212, 0, 212, 212, 0, 0, + 212, 212, 212, 212, 212, 0, 0, 212, 212, 463, + 0, 0, 0, 699, 0, 0, 212, 150, 212, 291, + 292, 293, 0, 0, 210, 0, 0, 0, 0, 0, + 0, 0, 0, 212, 212, 212, 0, 212, 0, 212, + 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 212, 0, + 0, 0, 155, 152, 153, 154, 212, 212, 212, 212, + 0, 0, 212, 0, 0, 0, 212, 212, 212, 0, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 210, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 212, 150, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 155, 210, 127, 979, 0, 0, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 212, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 575, 0, 67, 68, 0, - 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, - 0, 0, 128, 129, 130, 131, 132, 159, 133, 134, + 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, + 69, 150, 151, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 699, 33, 146, 0, 0, 0, 0, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 157, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 225, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 317, 0, - 0, 225, 0, 0, 0, 0, 546, 0, 0, 0, - 0, 155, 0, 0, 0, 0, 159, 159, 0, 159, - 0, 0, 0, 0, 159, 0, 0, 159, 761, 0, - 0, 159, 159, 159, 159, 159, 0, 159, 159, 159, - 159, 0, 159, 159, 0, 0, 159, 159, 159, 159, - 0, 0, 159, 159, 159, 0, 317, 0, 0, 0, - 0, 225, 159, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, - 159, 159, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 155, 33, 0, 159, 0, 33, 33, 33, 33, - 33, 0, 33, 33, 33, 33, 0, 33, 33, 0, - 0, 33, 33, 33, 33, 0, 37, 316, 33, 33, - 0, 40, 0, 43, 0, 0, 317, 33, 0, 33, - 46, 0, 0, 0, 0, 0, 316, 316, 0, 0, - 0, 0, 0, 0, 33, 33, 33, 49, 0, 0, - 0, 159, 159, 159, 0, 0, 0, 0, 0, 0, - 0, 225, 52, 0, 0, 225, 225, 225, 225, 225, - 0, 225, 225, 225, 225, 0, 225, 225, 0, 33, - 225, 225, 225, 225, 317, 0, 0, 225, 225, 0, - 0, 0, 0, 0, 155, 0, 225, 0, 225, 0, - 316, 0, 316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 225, 225, 317, 0, 0, 0, - 0, 317, 317, 317, 317, 0, 317, 317, 317, 317, - 34, 317, 317, 0, 0, 317, 317, 317, 317, 0, - 0, 0, 317, 317, 0, 0, 0, 0, 225, 0, - 0, 317, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 159, 0, 0, 225, 225, 225, 225, 225, 0, 225, - 225, 225, 225, 0, 225, 225, 1224, 0, 225, 225, - 225, 225, 0, 317, 0, 225, 225, 0, 0, 0, - 0, 236, 0, 0, 225, 0, 225, 563, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 0, 225, 225, 225, 0, 0, 0, 316, 0, 0, - 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 317, 33, 225, 0, 0, 317, - 317, 317, 317, 0, 317, 317, 317, 317, 0, 317, - 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, - 317, 317, 0, 236, 0, 236, 0, 0, 0, 317, - 0, 317, 0, 0, 0, 0, 0, 0, 235, 0, - 0, 0, 0, 0, 0, 0, 317, 317, 317, 0, - 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 155, 0, 0, 0, + 126, 0, 0, 127, 0, 150, 0, 128, 129, 130, + 131, 132, 210, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 157, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 0, 0, 317, - 235, 316, 235, 544, 0, 316, 316, 316, 316, 316, - 316, 0, 0, 0, 0, 0, 0, 0, 0, 316, - 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 316, 316, 316, 316, - 236, 0, 0, 236, 0, 0, 0, 316, 0, 0, - 0, 0, 0, 236, 563, 0, 0, 0, 0, 0, - 0, 316, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 573, 0, 0, 0, 0, 0, 155, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 545, 0, 5, 6, 7, 316, 316, 316, 0, - 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, - 547, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 316, 316, 316, 316, 316, 316, 316, - 10, 11, 12, 13, 0, 548, 549, 235, 0, 0, - 235, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 235, 0, 0, 0, 0, 550, 0, 0, 0, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 0, 0, 225, 225, 225, + 225, 225, 0, 225, 225, 225, 225, 0, 225, 225, + 0, 0, 225, 225, 225, 225, 152, 153, 154, 225, + 225, 0, 0, 0, 0, 0, 0, 0, 225, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 225, 225, 225, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 155, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 33, + 225, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 696, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 551, 552, 0, 0, 236, 0, 0, 0, 236, 236, - 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 236, 236, 0, 0, 563, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 524, 236, - 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, - 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 0, 0, 236, - 236, 235, 524, 0, 524, 235, 235, 235, 235, 235, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 235, - 235, 0, 0, 0, 0, 0, 236, 236, 236, 236, - 236, 236, 236, 0, 0, 34, 235, 235, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 155, 0, 127, 33, 150, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 232, 152, 153, 154, 0, 159, + 159, 0, 159, 0, 0, 0, 0, 159, 0, 0, + 159, 0, 0, 0, 159, 159, 159, 159, 159, 0, + 159, 159, 159, 159, 758, 159, 159, 0, 0, 159, + 159, 159, 159, 0, 0, 159, 159, 159, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 159, 0, 0, + 225, 0, 232, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 159, 159, 159, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 225, 0, + 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, + 33, 0, 33, 33, 155, 0, 33, 33, 33, 33, + 0, 37, 0, 33, 33, 0, 40, 0, 43, 0, + 0, 0, 33, 317, 33, 46, 0, 0, 0, 0, + 0, 544, 0, 159, 159, 159, 0, 0, 0, 33, + 33, 33, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 52, 0, 0, + 33, 33, 33, 33, 33, 0, 33, 33, 33, 33, + 0, 33, 33, 0, 33, 33, 33, 33, 33, 0, + 37, 317, 33, 33, 0, 40, 316, 43, 0, 155, + 0, 33, 0, 33, 46, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 316, 316, 0, 33, 33, + 33, 49, 232, 0, 0, 0, 232, 232, 232, 232, + 232, 0, 232, 232, 232, 232, 52, 232, 232, 0, + 0, 232, 232, 232, 232, 0, 0, 0, 232, 232, + 0, 0, 0, 33, 0, 0, 0, 232, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 0, 232, 232, 232, 0, 225, 316, + 0, 316, 225, 225, 225, 225, 225, 0, 225, 225, + 225, 225, 0, 225, 225, 0, 0, 225, 225, 225, + 225, 0, 0, 0, 225, 225, 0, 0, 0, 232, + 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 236, 0, 0, 33, + 0, 317, 0, 0, 0, 0, 317, 317, 317, 317, + 0, 317, 317, 317, 317, 0, 317, 317, 0, 0, + 317, 317, 317, 317, 0, 0, 0, 317, 317, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 317, 0, + 0, 0, 0, 0, 0, 0, 316, 0, 0, 316, + 0, 0, 0, 317, 317, 317, 0, 0, 0, 316, + 236, 235, 236, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 0, 0, 236, 0, 316, + 236, 0, 0, 316, 316, 316, 316, 316, 316, 0, + 236, 561, 0, 0, 0, 0, 0, 316, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 316, 316, 316, 316, 0, 0, + 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, + 235, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 316, 316, 316, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 316, 316, 316, 316, 316, 316, 316, 236, 0, + 0, 0, 0, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 0, 0, 0, 0, + 236, 0, 0, 0, 236, 236, 236, 236, 236, 236, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 236, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 338, + 0, 0, 0, 0, 0, 236, 236, 236, 236, 0, + 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 235, 0, 0, 0, 0, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 0, + 0, 0, 0, 235, 0, 0, 0, 235, 235, 235, + 235, 235, 235, 0, 0, 236, 236, 0, 0, 0, + 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 235, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 69, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 235, 0, 338, - 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 791, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, + 235, 235, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 235, 235, 235, 235, 235, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 524, - 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 524, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 338, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 0, 0, 0, 0, 7, 0, 0, + 0, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 67, 0, 0, 69, 8, 9, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 0, 0, 0, 0, + 527, 0, 527, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 67, 0, 0, 69, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 524, 524, 524, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 524, 524, 0, - 0, 0, 0, 524, 338, 0, 996, 524, 524, 524, - 524, 524, 524, 0, 0, 0, 0, 0, 0, 0, - 0, 524, 524, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 529, 524, 524, - 524, 524, 0, 0, 67, 0, 0, 69, 0, 524, + 0, 0, 335, 336, 67, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 0, 0, 524, 524, - 7, 529, 0, 529, 328, 329, 330, 331, 332, 333, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, - 0, 0, 0, 0, 0, 524, 524, 524, 524, 524, - 524, 524, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 67, 0, 0, 69, 0, 334, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 0, 336, 337, 0, 7, 0, - 0, 371, 328, 329, 330, 331, 332, 333, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 10, 11, 12, 13, 0, 529, 0, - 0, 529, 0, 0, 334, 0, 0, 0, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 335, 0, - 0, 0, 0, 0, 0, 371, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 0, 0, 336, 337, 7, 0, 0, 363, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, - 0, 0, 363, 0, 363, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 529, 529, 529, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 529, 0, 0, - 336, 337, 529, 0, 0, 356, 529, 529, 529, 529, - 529, 529, 371, 0, 0, 371, 0, 0, 0, 0, - 529, 529, 0, 0, 0, 371, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 529, 529, 529, - 529, 0, 0, 0, 0, 0, 0, 0, 529, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 529, 0, 0, 0, 0, 0, 0, 356, - 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 327, 328, + 329, 330, 331, 332, 0, 0, 0, 527, 0, 0, + 527, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 527, 371, 0, 371, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 0, 0, 0, 0, 7, 0, 0, + 0, 327, 328, 329, 330, 331, 332, 0, 0, 335, + 336, 0, 0, 0, 0, 8, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 27, 28, 29, 30, + 31, 32, 33, 333, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, + 0, 0, 0, 527, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 0, 0, 371, 0, + 527, 371, 0, 0, 527, 527, 527, 527, 527, 527, + 0, 371, 335, 336, 0, 0, 0, 0, 527, 527, + 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, + 363, 0, 0, 0, 0, 527, 527, 527, 527, 27, + 28, 29, 30, 31, 32, 33, 527, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 527, 527, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 0, 356, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 527, 527, 527, 527, 527, 527, 0, + 210, 0, 0, 0, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, + 0, 371, 0, 0, 0, 371, 371, 371, 371, 371, + 371, 0, 0, 0, 0, 363, 0, 0, 363, 371, + 371, 0, 0, 0, 0, 0, 0, 0, 363, 0, + 0, 0, 0, 0, 0, 0, 371, 371, 371, 371, + 0, 0, 0, 0, 210, 0, 210, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 529, 529, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 363, - 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 363, 0, 529, 529, 529, 529, 529, 529, - 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 0, 0, 0, 0, 371, 210, 0, 210, - 371, 371, 371, 371, 371, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 371, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 523, 371, 371, 371, 371, 0, 356, 0, 0, 356, - 0, 0, 371, 0, 0, 0, 0, 0, 0, 356, - 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 0, - 0, 371, 371, 363, 523, 0, 523, 363, 363, 363, - 363, 363, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 363, 0, 0, 0, 0, 0, 371, 371, - 371, 371, 371, 371, 371, 0, 0, 0, 363, 363, - 363, 363, 0, 0, 210, 0, 0, 210, 0, 363, - 0, 34, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 0, 0, 363, 363, - 356, 0, 0, 0, 356, 356, 356, 356, 356, 356, - 0, 0, 0, 0, 0, 0, 0, 567, 356, 356, - 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, - 363, 363, 0, 0, 0, 356, 356, 356, 356, 0, - 0, 523, 0, 0, 523, 0, 356, 0, 0, 0, - 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, + 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 371, 356, 0, + 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, + 0, 521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 0, 0, 0, 0, 363, 0, + 0, 0, 363, 363, 363, 363, 363, 363, 0, 0, + 0, 210, 34, 0, 210, 0, 363, 363, 0, 0, + 0, 0, 0, 0, 210, 521, 0, 521, 0, 0, + 0, 0, 0, 363, 363, 363, 363, 0, 0, 0, + 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, + 0, 0, 0, 0, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 0, 565, 0, + 0, 356, 0, 0, 0, 356, 356, 356, 356, 356, + 356, 0, 0, 363, 363, 0, 0, 0, 0, 356, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 356, 356, 356, + 363, 363, 363, 363, 363, 363, 363, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 0, 356, 356, 0, 210, 0, - 0, 0, 210, 210, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 210, 0, 0, - 0, 0, 356, 356, 356, 356, 356, 356, 356, 0, - 0, 187, 0, 210, 210, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 523, 523, 523, - 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, - 523, 2, 0, 210, 210, 523, 0, 187, 0, 523, - 523, 523, 523, 523, 523, 0, 0, 0, 0, 0, - 0, 0, 0, 523, 523, 0, 0, 0, 0, 0, - 210, 210, 210, 210, 210, 210, 210, 0, 0, 0, - 523, 523, 523, 523, 0, 0, 0, 0, 0, 0, - 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 523, 523, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 4, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 523, 523, 523, - 523, 523, 523, 523, 8, 9, 0, 0, 3, 4, - 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 187, 0, 0, 14, 15, - 8, 9, 0, 0, 16, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 19, 0, 10, 11, 12, - 13, 0, 0, 0, 14, 15, 0, 0, 0, 0, - 16, 901, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 19, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 0, 0, 521, 34, 210, 521, 0, 0, 210, 210, + 210, 210, 210, 210, 0, 521, 356, 356, 0, 0, + 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 210, 210, 210, 356, 356, 356, 356, 356, 356, 356, + 210, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 0, 2, 0, 0, 1221, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 0, 210, 210, 210, 210, + 210, 210, 210, 0, 0, 0, 0, 0, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 0, 0, 0, 0, 521, 0, 0, 0, 521, + 521, 521, 521, 521, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 521, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, + 0, 521, 3, 4, 5, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 521, 0, 2, 0, 0, + 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 0, 0, 0, 14, 15, + 521, 521, 0, 0, 16, 0, 0, 17, 0, 0, + 0, 0, 0, 0, 18, 19, 542, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, + 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 898, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 20, 21, 0, 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 21, 0, 22, 23, - 24, 0, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 187, 187, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 187, 0, 0, 187, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 860, 0, 0, 0, 0, - 0, 187, 187, 187, 187, 0, 187, 187, 0, 861, - 0, 0, 0, 0, 862, 863, 0, 864, 865, 866, - 867, 868, 869, 860, 870, 871, 187, 872, 873, 874, - 875, 876, 0, 0, 0, 0, 0, 861, 0, 0, - 0, 0, 862, 863, 0, 864, 865, 866, 867, 868, - 869, 0, 870, 871, 0, 872, 873, 874, 875, 876, - 0, 187, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, - 879, 0, 0, 0, 0, 0, 0, 0, 187, 187, - 187, 187, 187, 187, 187, 0, 880, 0, 0, 0, - 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, + 0, 0, 0, 543, 0, 5, 6, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, + 0, 0, 545, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 880, 0, 0, 0, 0, 881, + 0, 0, 10, 11, 12, 13, 0, 546, 547, 0, + 0, 0, 0, 0, 187, 0, 187, 187, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 548, 187, 0, + 0, 0, 0, 187, 0, 0, 187, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 857, 0, 0, + 0, 0, 0, 187, 187, 187, 187, 0, 187, 187, + 0, 858, 549, 550, 0, 0, 859, 860, 0, 861, + 862, 863, 864, 865, 866, 0, 867, 868, 187, 869, + 870, 871, 872, 873, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 875, 0, 0, + 1097, 0, 876, 0, 0, 0, 0, 0, 0, 0, + 187, 187, 187, 187, 187, 187, 187, 0, 877, 1098, + 1099, 0, 1100, 1101, 1102, 1103, 1104, 1105, 0, 1106, + 1107, 0, 1108, 1109, 1110, 1111, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, + 0, 878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 857, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 858, 0, 0, 0, + 0, 859, 860, 0, 861, 862, 863, 864, 865, 866, + 0, 867, 868, 0, 869, 870, 871, 872, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 879, 0, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 874, 0, 875, 897, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 882, 0, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 0, - 0, 0, 900, 0, 0, 0, 0, 0, 882, 0, - 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 0, 0, 0, - 900, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 878, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1113, 1114, 0, + 1115, 1116, 1117, 0, 1118, 1119, 0, 0, 1120, 1121, + 0, 1122, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1123, 1124, 1125, 1126, 1127, 1128, + 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 879, 0, 880, 881, + 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, + 892, 893, 894, 895, 896, 0, 0, 0, 897, }; static int yycheck[] = { 4, - 312, 24, 102, 103, 167, 711, 24, 1, 431, 24, - 433, 64, 1, 76, 19, 13, 1, 312, 1005, 312, - 908, 1027, 27, 28, 29, 30, 24, 1, 181, 91, - 788, 38, 1, 697, 22, 23, 485, 44, 842, 42, - 1197, 93, 1, 38, 46, 91, 41, 61, 264, 44, - 43, 367, 264, 36, 37, 61, 40, 92, 123, 46, - 46, 1159, 123, 520, 521, 522, 46, 167, 41, 125, - 776, 365, 123, 123, 46, 471, 40, 60, 43, 41, - 45, 24, 105, 59, 263, 41, 1275, 510, 511, 42, - 190, 42, 260, 261, 41, 263, 91, 41, 43, 41, - 40, 260, 261, 41, 263, 128, 104, 47, 113, 1551, - 115, 116, 117, 59, 42, 215, 43, 169, 181, 40, - 60, 193, 194, 195, 196, 197, 61, 145, 151, 41, - 148, 46, 40, 319, 61, 38, 40, 43, 262, 42, - 483, 41, 44, 38, 40, 40, 199, 42, 93, 529, - 168, 156, 157, 188, 41, 91, 41, 60, 156, 123, - 503, 104, 920, 921, 288, 60, 43, 41, 45, 167, - 91, 41, 91, 41, 260, 261, 42, 263, 93, 20, - 21, 233, 187, 91, 347, 208, 471, 93, 91, 41, - 44, 93, 41, 125, 380, 91, 91, 232, 41, 260, - 205, 206, 263, 264, 58, 210, 374, 375, 46, 59, - 264, 267, 210, 41, 260, 261, 369, 263, 342, 1408, - 203, 979, 268, 91, 65, 91, 41, 232, 1326, 44, - 40, 72, 267, 1675, 239, 40, 693, 1538, 1540, 555, - 260, 261, 260, 263, 330, 331, 311, 38, 262, 543, - 296, 42, 352, 262, 40, 1013, 262, 260, 261, 471, - 263, 264, 267, 46, 315, 316, 316, 1568, 1570, 60, - 111, 112, 275, 296, 288, 125, 281, 60, 283, 342, - 303, 1169, 287, 346, 741, 290, 91, 305, 994, 294, - 506, 507, 508, 296, 299, 300, 301, 302, 351, 351, - 91, 263, 337, 365, 463, 91, 369, 91, 264, 260, - 261, 264, 263, 123, 40, 350, 157, 264, 312, 313, - 264, 265, 264, 312, 313, 348, 264, 312, 313, 294, - 59, 318, 260, 261, 274, 263, 1541, 299, 312, 313, - 315, 306, 307, 312, 313, 296, 318, 320, 321, 347, - 348, 349, 264, 312, 313, 353, 344, 345, 264, 324, - 264, 265, 266, 398, 264, 822, 1571, 1073, 296, 415, - 416, 417, 355, 264, 123, 438, 370, 264, 33, 264, - 221, 222, 286, 287, 275, 370, 371, 372, 373, 59, - 264, 1548, 260, 261, 264, 263, 125, 40, 391, 1405, - 268, 370, 371, 372, 373, 391, 349, 47, 262, 374, - 353, 391, 264, 359, 266, 264, 265, 294, 364, 44, - 422, 264, 265, 266, 262, 1582, 123, 359, 296, 306, - 307, 299, 364, 59, 286, 287, 264, 265, 306, 474, - 281, 429, 267, 286, 287, 260, 287, 324, 263, 472, - 907, 471, 262, 606, 295, 125, 123, 360, 361, 362, - 59, 466, 40, 468, 617, 360, 361, 362, 93, 453, - 473, 91, 1276, 40, 923, 575, 260, 261, 483, 263, - 123, 543, 480, 123, 268, 483, 46, 328, 123, 330, - 495, 526, 527, 334, 40, 40, 1160, 374, 46, 125, - 40, 342, 343, 44, 40, 346, 541, 260, 261, 359, - 263, 516, 296, 91, 364, 260, 261, 552, 263, 526, - 266, 509, 473, 511, 91, 40, 125, 515, 369, 40, - 123, 526, 40, 93, 260, 261, 541, 263, 40, 602, - 286, 287, 123, 606, 273, 473, 91, 415, 416, 417, - 1556, 91, 93, 349, 617, 91, 33, 353, 593, 40, - 536, 537, 538, 539, 540, 541, 542, 572, 573, 360, - 361, 362, 624, 608, 1332, 1333, 91, 600, 481, 544, - 91, 422, 423, 91, 425, 123, 427, 91, 593, 91, - 536, 537, 538, 539, 540, 541, 542, 40, 44, 1586, - 391, 442, 443, 273, 59, 260, 261, 46, 263, 264, - 91, 764, 40, 40, 263, 667, 599, 669, 61, 262, - 260, 261, 61, 263, 38, 678, 296, 91, 42, 374, - 375, 415, 416, 417, 41, 42, 264, 265, 643, 44, - 260, 261, 483, 263, 649, 668, 60, 273, 631, 632, - 299, 40, 40, 40, 637, 755, 639, 62, 91, 260, - 501, 761, 263, 91, 91, 506, 507, 508, 40, 510, - 125, 512, 513, 514, 46, 516, 40, 91, 1566, 46, - 40, 699, 40, 995, 91, 708, 536, 537, 538, 539, - 540, 541, 542, 61, 1400, 40, 425, 426, 427, 428, - 995, 764, 995, 91, 91, 91, 711, 548, 549, 44, - 463, 716, 40, 718, 260, 261, 40, 263, 753, 754, - 449, 450, 451, 452, 42, 91, 93, 91, 751, 781, - 571, 91, 715, 574, 797, 1493, 260, 261, 726, 263, - 410, 306, 40, 806, 713, 47, 91, 38, 1506, 754, - 44, 42, 775, 758, 759, 760, 260, 261, 93, 263, - 359, 602, 1185, 91, 1187, 364, 38, 790, 62, 60, - 42, 776, 40, 91, 59, 847, 617, 849, 850, 851, - 852, 853, 452, 260, 261, 46, 263, 264, 60, 1495, - 778, 41, 462, 91, 44, 465, 260, 261, 41, 263, - 91, 642, 38, 41, 42, 840, 42, 536, 537, 538, - 539, 540, 541, 542, 655, 283, 284, 391, 273, 91, - 825, 391, 827, 91, 60, 666, 452, 260, 261, 391, - 263, 1589, 93, 838, 320, 321, 462, 41, 42, 465, - 125, 264, 905, 330, 331, 332, 260, 261, 689, 263, - 318, 41, 42, 91, 33, 91, 908, 391, 281, 282, - 283, 41, 0, 43, 44, 917, 536, 537, 538, 539, - 540, 541, 542, 1631, 260, 261, 267, 263, 913, 366, - 367, 368, 723, 724, 725, 948, 264, 91, 266, 41, - 908, 41, 44, 38, 260, 261, 262, 263, 264, 1533, - 41, 91, 268, 316, 1662, 1539, 747, 748, 286, 287, - 536, 537, 538, 539, 540, 541, 542, 283, 44, 1677, - 46, 59, 330, 331, 332, 41, 1632, 768, 42, 770, - 296, 772, 614, 615, 616, 1569, 777, 536, 537, 538, - 539, 540, 541, 542, 393, 394, 360, 361, 362, 260, - 261, 1014, 263, 1016, 320, 321, 797, 40, 366, 367, - 368, 41, 945, 43, 987, 980, 807, 808, 1674, 1004, - 993, 1006, 40, 428, 943, 430, 431, 61, 123, 984, - 821, 260, 279, 280, 263, 264, 93, 125, 273, 994, - 458, 459, 289, 461, 449, 450, 451, 452, 393, 394, - 1052, 995, 44, 844, 46, 1010, 995, 43, 44, 1044, - 995, 1046, 997, 998, 999, 856, 40, 858, 264, 265, - 266, 995, 43, 997, 998, 41, 995, 43, 997, 998, - 999, 280, 281, 282, 283, 284, 995, 263, 997, 998, - 286, 287, 1094, 1048, 301, 41, 303, 304, 305, 415, - 416, 417, 43, 44, 91, 280, 281, 282, 283, 284, - 895, 896, 1225, 1226, 1227, 1228, 93, 908, 1073, 360, - 361, 362, 1235, 1236, 1237, 260, 261, 918, 263, 264, - 476, 536, 537, 538, 539, 540, 541, 542, 360, 361, - 362, 44, 271, 46, 280, 1147, 275, 276, 277, 278, - 279, 40, 281, 282, 283, 284, 40, 286, 287, 40, - 91, 290, 291, 292, 293, 41, 295, 43, 297, 298, - 1014, 300, 1016, 302, 360, 361, 362, 306, 40, 308, - 309, 260, 261, 278, 263, 273, 281, 282, 283, 284, - 40, 286, 287, 288, 323, 324, 325, 326, 989, 40, - 991, 40, 38, 1576, 1577, 40, 42, 41, 42, 0, - 46, 47, 341, 40, 93, 41, 310, 452, 312, 313, - 314, 40, 40, 1014, 60, 1016, 40, 462, 93, 358, - 465, 40, 1245, 1201, 40, 40, 1221, 1222, 281, 282, - 283, 284, 125, 91, 40, 1183, 1259, 1038, 1261, 1187, - 1041, 59, 40, 40, 58, 91, 40, 1195, 281, 282, - 283, 284, 40, 1218, 125, 44, 41, 1215, 59, 281, - 282, 283, 284, 260, 261, 40, 263, 1225, 1226, 1227, - 1228, 268, 260, 261, 40, 263, 262, 1235, 1236, 1237, - 59, 281, 282, 283, 284, 262, 44, 41, 1300, 123, - 41, 536, 537, 538, 539, 540, 541, 542, 60, 296, - 274, 464, 299, 274, 1269, 40, 40, 125, 40, 306, - 40, 275, 410, 411, 412, 413, 414, 62, 44, 260, - 261, 123, 263, 365, 125, 58, 274, 268, 123, 40, - 1390, 123, 123, 40, 432, 433, 40, 317, 41, 38, - 328, 1142, 330, 331, 40, 317, 125, 468, 61, 337, - 40, 449, 450, 451, 452, 296, 61, 471, 456, 457, - 61, 44, 471, 41, 462, 306, 464, 465, 93, 1170, - 1171, 1172, 41, 41, 472, 473, 1177, 1178, 1179, 1180, - 1181, 1182, 41, 1184, 1185, 1186, 41, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 41, 1196, 1344, 1198, 1327, 1200, - 1378, 1202, 41, 44, 1399, 544, 58, 41, 44, 44, - 125, 1423, 61, 263, 40, 1410, 1381, 61, 415, 416, - 417, 40, 40, 125, 123, 41, 41, 41, 41, 527, - 528, 41, 530, 531, 532, 1400, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 41, 41, 41, 41, 38, - 41, 41, 274, 269, 41, 273, 272, 295, 294, 41, - 41, 1262, 300, 41, 302, 301, 1267, 303, 304, 305, - 41, 309, 273, 93, 415, 416, 417, 1278, 296, 295, - 296, 93, 41, 44, 300, 41, 302, 1288, 326, 44, - 274, 1292, 1293, 309, 273, 41, 44, 40, 58, 1494, - 40, 40, 1303, 341, 41, 38, 342, 343, 344, 41, - 326, 1440, 40, 1496, 360, 361, 362, 41, 41, 41, - 40, 294, 41, 1324, 1325, 341, 62, 91, 41, 40, - 1495, 498, 490, 502, 0, 40, 277, 1338, 1339, 1340, - 1341, 1342, 1343, 41, 1345, 61, 125, 1559, 123, 41, - 62, 41, 388, 389, 390, 41, 392, 1552, 41, 395, - 41, 260, 452, 93, 263, 391, 93, 33, 41, 41, - 41, 317, 38, 317, 40, 41, 42, 41, 44, 278, - 40, 47, 281, 282, 283, 284, 40, 286, 287, 288, - 123, 58, 410, 59, 60, 61, 62, 58, 93, 93, - 93, 40, 93, 44, 505, 40, 1584, 91, 1668, 410, - 411, 412, 413, 414, 91, 40, 123, 93, 41, 41, - 40, 1422, 40, 1635, 41, 91, 33, 93, 1429, 1577, - 59, 432, 433, 41, 452, 422, 93, 93, 511, 44, - 41, 274, 58, 41, 462, 41, 60, 465, 449, 450, - 451, 452, 44, 432, 433, 456, 457, 123, 61, 125, - 93, 462, 40, 40, 465, 40, 40, 1632, 40, 40, - 40, 472, 473, 452, 40, 40, 40, 1672, 40, 40, - 125, 62, 41, 93, 41, 464, 41, 466, 1671, 278, - 469, 470, 281, 282, 283, 284, 125, 286, 287, 288, - 93, 41, 93, 93, 41, 93, 41, 93, 41, 1674, - 41, 93, 41, 41, 1515, 1516, 1517, 93, 536, 537, - 538, 539, 540, 541, 542, 41, 527, 528, 41, 530, - 531, 532, 41, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 93, 93, 93, 278, 41, 93, 281, 282, - 283, 284, 41, 286, 287, 288, 41, 536, 537, 538, - 539, 540, 541, 542, 41, 41, 1567, 93, 93, 41, - 93, 1572, 1573, 1574, 263, 1576, 44, 1578, 1579, 1580, - 41, 41, 41, 40, 40, 93, 41, 274, 93, 93, - 40, 40, 40, 58, 260, 261, 262, 263, 41, 1600, - 1601, 1602, 268, 41, 58, 271, 58, 273, 274, 275, - 276, 277, 278, 279, 41, 281, 282, 283, 284, 41, - 286, 287, 288, 40, 290, 291, 292, 293, 40, 93, - 296, 297, 298, 299, 41, 41, 41, 41, 40, 40, - 306, 40, 308, 40, 273, 311, 93, 93, 93, 315, - 316, 40, 318, 40, 40, 40, 322, 323, 324, 325, - 40, 40, 1663, 40, 40, 93, 41, 40, 263, 60, - 277, 278, 279, 339, 281, 282, 283, 284, 41, 286, - 287, 40, 93, 290, 291, 292, 293, 58, 40, 40, - 40, 91, 358, 359, 360, 361, 362, 41, 364, 365, - 40, 274, 41, 41, 41, 41, 40, 263, 374, 375, - 339, 41, 41, 40, 40, 358, 41, 41, 40, 33, - 274, 41, 41, 511, 41, 391, 44, 123, 123, 123, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 125, 123, - 62, 40, 0, 62, 41, 123, 125, 91, 125, 41, - 123, 123, 41, 449, 450, 451, 452, 41, 454, 455, - 456, 457, 125, 41, 460, 123, 462, 41, 464, 465, - 466, 467, 41, 469, 470, 33, 472, 473, 474, 125, - 38, 123, 40, 41, 42, 481, 44, 123, 41, 47, - 62, 123, 41, 452, 40, 40, 123, 41, 263, 93, - 93, 59, 60, 61, 62, 464, 46, 466, 467, 294, - 469, 470, 275, 509, 510, 511, 301, 263, 303, 304, - 305, 275, 42, 295, 61, 275, 275, 275, 300, 91, - 302, 527, 528, 91, 530, 531, 532, 309, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 275, 544, 263, - 263, 180, 275, 275, 326, 327, 420, 342, 343, 344, - 837, 263, 1020, 275, 275, 123, 1043, 125, 748, 341, - 260, 261, 1285, 263, 904, 275, 275, 536, 537, 538, - 539, 540, 541, 542, 275, 1511, 1018, 275, 1147, 275, - 1205, 1273, 708, 913, 923, 59, 1286, 0, 480, 24, - 372, 9, 910, 388, 389, 390, 1209, 392, 114, 550, - 395, 24, 763, 767, 612, 64, 260, 261, 492, 263, - 305, -1, 678, -1, 268, -1, 371, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, 59, -1, 61, -1, - -1, 125, 306, -1, 308, 355, 356, 357, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - 380, -1, -1, -1, -1, -1, -1, 294, -1, -1, - -1, -1, 260, 261, 301, 263, 303, 304, 305, -1, - 268, -1, -1, 271, 358, 273, 274, 275, 276, 277, - 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, + 312, 24, 92, 102, 103, 24, 1, 24, 1, 708, + 13, 312, 22, 23, 19, 312, 429, 1, 431, 167, + 905, 24, 27, 28, 29, 30, 1, 64, 1002, 1024, + 181, 694, 839, 91, 1, 483, 36, 37, 1, 38, + 785, 38, 41, 59, 93, 44, 40, 44, 1194, 125, + 24, 41, 43, 61, 264, 123, 41, 46, 46, 46, + 60, 41, 123, 193, 194, 195, 196, 197, 167, 46, + 125, 33, 42, 59, 773, 46, 123, 1156, 365, 40, + 1272, 41, 105, 42, 1548, 41, 47, 262, 41, 40, + 365, 190, 91, 40, 482, 508, 509, 319, 188, 60, + 43, 104, 45, 41, 41, 128, 44, 46, 113, 40, + 115, 116, 117, 288, 502, 61, 215, 41, 40, 40, + 169, 46, 470, 263, 260, 261, 145, 263, 151, 148, + 104, 41, 40, 264, 41, 260, 261, 42, 263, 125, + 91, 43, 232, 59, 41, 263, 40, 42, 40, 168, + 40, 156, 157, 156, 528, 41, 41, 42, 380, 299, + 41, 44, 199, 40, 167, 33, 41, 342, 93, 91, + 91, 40, 917, 918, 44, 40, 123, 267, 91, 41, + 44, 40, 187, 91, 233, 208, 59, 61, 58, 38, + 43, 93, 123, 42, 330, 331, 42, 91, 346, 91, + 205, 206, 40, 203, 76, 210, 91, 210, 1672, 125, + 93, 60, 267, 1405, 91, 38, 367, 260, 261, 42, + 263, 40, 91, 91, 46, 46, 91, 232, 44, 93, + 40, 976, 91, 123, 239, 260, 261, 60, 263, 91, + 93, 260, 91, 470, 1323, 91, 336, 315, 316, 374, + 375, 350, 125, 91, 262, 316, 123, 38, 348, 40, + 470, 42, 267, 267, 311, 1010, 553, 542, 91, 20, + 21, 93, 93, 296, 264, 265, 281, 93, 283, 60, + 303, 1166, 287, 359, 264, 290, 305, 273, 364, 294, + 260, 261, 991, 263, 299, 300, 301, 302, 260, 261, + 349, 263, 264, 263, 59, 264, 396, 365, 264, 181, + 91, 264, 349, 274, 65, 262, 262, 312, 313, 312, + 313, 72, 260, 262, 347, 263, 296, 264, 312, 313, + 318, 59, 33, 343, 344, 320, 321, 312, 313, 299, + 264, 318, 288, 346, 347, 312, 313, 59, 351, 312, + 313, 294, 123, 353, 264, 260, 261, 264, 263, 262, + 111, 112, 264, 306, 307, 260, 261, 264, 263, 264, + 125, 1070, 262, 368, 505, 506, 507, 351, 264, 265, + 275, 324, 472, 264, 368, 369, 370, 371, 40, 264, + 265, 296, 262, 368, 369, 370, 371, 125, 59, 1545, + 391, 296, 264, 271, 391, 44, 157, 1402, 276, 277, + 278, 279, 46, 281, 282, 283, 284, 427, 286, 287, + 391, 264, 290, 291, 292, 293, 60, 470, 123, 297, + 298, 374, 421, 1579, 524, 525, 40, 462, 306, 91, + 308, 260, 261, 359, 263, 431, 432, 470, 364, 539, + 260, 261, 603, 263, 93, 323, 324, 325, 452, 464, + 550, 466, 46, 614, 125, 451, 1273, 41, 42, 341, + 221, 222, 920, 345, 573, 478, 481, 463, 481, 465, + 40, 40, 468, 469, 542, 46, 359, 91, 493, 260, + 358, 364, 263, 264, 1157, 367, 40, 507, 43, 509, + 61, 591, 472, 513, 518, 519, 520, 41, 42, 514, + 40, 360, 361, 362, 40, 605, 61, 91, 273, 535, + 536, 537, 538, 539, 540, 541, 525, 40, 525, 264, + 281, 91, 91, 46, 539, 61, 287, 360, 361, 362, + 275, 296, 40, 123, 295, 273, 40, 91, 40, 535, + 536, 537, 538, 539, 540, 541, 46, 91, 1553, 260, + 261, 91, 263, 264, 436, 570, 571, 472, 391, 41, + 260, 261, 621, 263, 597, 123, 327, 472, 329, 360, + 361, 362, 333, 1535, 1329, 1330, 591, 43, 40, 45, + 341, 342, 40, 91, 345, 40, 596, 91, 40, 91, + 543, 42, 315, 93, 38, 40, 91, 40, 42, 1583, + 761, 339, 273, 1565, 1537, 664, 367, 666, 123, 535, + 536, 537, 538, 539, 540, 541, 60, 260, 628, 629, + 263, 480, 91, 44, 634, 640, 636, 123, 675, 91, + 44, 646, 665, 91, 1567, 59, 91, 359, 41, 91, + 91, 38, 364, 752, 409, 42, 91, 91, 62, 758, + 750, 751, 535, 536, 537, 538, 539, 540, 541, 420, + 421, 1538, 423, 60, 425, 543, 690, 696, 1563, 266, + 992, 40, 705, 41, 41, 42, 123, 283, 284, 440, + 441, 992, 611, 612, 613, 992, 451, 91, 1397, 286, + 287, 1568, 41, 708, 91, 44, 461, 59, 713, 464, + 715, 125, 712, 723, 844, 91, 846, 847, 848, 849, + 850, 44, 318, 451, 738, 748, 710, 599, 40, 778, + 481, 603, 61, 91, 91, 463, 40, 465, 466, 62, + 468, 469, 614, 264, 265, 1490, 751, 837, 499, 772, + 755, 756, 757, 504, 505, 506, 306, 508, 1503, 510, + 511, 512, 47, 514, 787, 775, 47, 91, 773, 1182, + 391, 1184, 462, 125, 391, 260, 261, 59, 263, 391, + 535, 536, 537, 538, 539, 540, 541, 41, 279, 280, + 451, 391, 264, 1492, 266, 546, 547, 44, 289, 46, + 461, 260, 261, 464, 263, 819, 267, 535, 536, 537, + 538, 539, 540, 541, 286, 287, 1530, 822, 569, 824, + 910, 572, 1536, 535, 536, 537, 538, 539, 540, 541, + 835, 264, 265, 266, 59, 264, 265, 266, 294, 320, + 321, 1586, 123, 125, 260, 261, 41, 263, 599, 44, + 306, 307, 1566, 286, 287, 41, 905, 286, 287, 273, + 41, 457, 458, 614, 460, 914, 260, 261, 324, 263, + 41, 264, 265, 266, 535, 536, 537, 538, 539, 540, + 541, 42, 296, 1628, 260, 261, 905, 263, 639, 761, + 904, 316, 91, 286, 287, 40, 260, 261, 264, 263, + 125, 652, 260, 261, 41, 263, 43, 330, 331, 332, + 268, 1001, 663, 1003, 1659, 281, 282, 283, 374, 93, + 47, 273, 794, 44, 40, 46, 360, 361, 362, 1674, + 1629, 803, 59, 393, 394, 686, 260, 261, 296, 263, + 40, 299, 942, 366, 367, 368, 260, 261, 306, 263, + 264, 1041, 41, 1043, 43, 264, 940, 266, 374, 375, + 977, 984, 280, 281, 282, 283, 284, 990, 61, 720, + 721, 722, 1671, 360, 361, 362, 981, 286, 287, 260, + 261, 41, 263, 43, 44, 59, 991, 339, 43, 260, + 261, 273, 263, 744, 745, 409, 123, 992, 125, 992, + 1049, 38, 1007, 280, 281, 282, 283, 284, 992, 41, + 994, 995, 996, 44, 765, 46, 767, 992, 769, 994, + 995, 996, 41, 774, 43, 992, 263, 994, 995, 992, + 902, 994, 995, 281, 282, 283, 284, 451, 393, 394, + 1045, 260, 1091, 794, 263, 264, 93, 461, 273, 475, + 464, 125, 280, 804, 805, 40, 414, 415, 416, 43, + 44, 260, 261, 40, 263, 1070, 1011, 818, 1013, 268, + 43, 44, 0, 945, 1222, 1223, 1224, 1225, 40, 431, + 432, 41, 42, 40, 1232, 1233, 1234, 40, 260, 261, + 841, 263, 40, 38, 40, 1144, 40, 296, 40, 451, + 299, 40, 853, 40, 855, 260, 261, 306, 263, 38, + 40, 463, 93, 465, 466, 93, 468, 469, 892, 893, + 40, 535, 536, 537, 538, 539, 540, 541, 1218, 1219, + 40, 59, 125, 260, 58, 91, 263, 40, 40, 1011, + 44, 1013, 424, 425, 426, 427, 273, 274, 301, 40, + 303, 304, 305, 38, 905, 125, 328, 42, 330, 331, + 1573, 1574, 40, 40, 915, 337, 448, 449, 450, 451, + 1180, 41, 40, 40, 1184, 60, 262, 262, 123, 1198, + 123, 41, 1192, 535, 536, 537, 538, 539, 540, 541, + 44, 91, 41, 274, 123, 60, 463, 125, 274, 273, + 40, 40, 427, 40, 429, 430, 91, 40, 275, 1212, + 1215, 281, 282, 283, 284, 414, 415, 416, 62, 1222, + 1223, 1224, 1225, 448, 449, 450, 451, 44, 91, 1232, + 1233, 1234, 365, 123, 123, 986, 123, 988, 58, 0, + 123, 278, 40, 40, 281, 282, 283, 284, 1297, 286, + 287, 288, 274, 535, 536, 537, 538, 539, 540, 541, + 1011, 1266, 1013, 40, 40, 330, 331, 332, 41, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 317, 317, 1035, 467, 413, 1038, 1387, 61, + 417, 418, 419, 420, 421, 422, 61, 61, 59, 40, + 61, 366, 367, 368, 431, 432, 1396, 470, 470, 44, + 535, 536, 537, 538, 539, 540, 541, 1407, 41, 93, + 295, 448, 449, 450, 451, 300, 59, 302, 41, 41, + 41, 1341, 459, 278, 309, 41, 281, 282, 283, 284, + 1324, 286, 287, 288, 41, 273, 473, 41, 58, 278, + 41, 326, 281, 282, 283, 284, 1375, 286, 287, 288, + 260, 261, 44, 263, 125, 44, 341, 44, 268, 125, + 1242, 1420, 61, 1378, 61, 260, 261, 451, 263, 263, + 40, 508, 509, 40, 1256, 125, 1258, 461, 1139, 41, + 464, 310, 1397, 312, 313, 314, 296, 260, 261, 41, + 263, 1491, 41, 41, 41, 268, 306, 41, 535, 536, + 537, 538, 539, 540, 541, 41, 1167, 1168, 1169, 281, + 282, 283, 284, 1174, 1175, 1176, 1177, 1178, 1179, 41, + 1181, 1182, 1183, 296, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 41, 1193, 41, 1195, 41, 1197, 41, 1199, 281, + 282, 283, 284, 1437, 41, 41, 41, 41, 40, 1549, + 91, 535, 536, 537, 538, 539, 540, 541, 274, 93, + 1493, 93, 274, 41, 44, 360, 361, 362, 41, 44, + 41, 409, 410, 411, 412, 413, 295, 1492, 38, 44, + 41, 300, 42, 302, 40, 40, 46, 47, 58, 41, + 309, 40, 40, 431, 432, 41, 41, 1556, 1259, 41, + 60, 40, 273, 1264, 414, 415, 416, 326, 327, 294, + 448, 449, 450, 451, 1275, 62, 41, 455, 456, 91, + 41, 40, 341, 461, 1285, 463, 464, 489, 1289, 1290, + 273, 91, 497, 471, 472, 40, 277, 501, 41, 1300, + 125, 414, 415, 416, 61, 41, 123, 62, 41, 41, + 41, 322, 1581, 372, 1574, 41, 1665, 391, 93, 451, + 1321, 1322, 93, 41, 41, 41, 41, 40, 317, 1669, + 317, 0, 40, 1632, 1335, 1336, 1337, 1338, 1339, 1340, + 93, 1342, 93, 93, 58, 93, 58, 40, 526, 527, + 44, 529, 530, 531, 91, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 33, 40, 504, 91, 40, 38, + 93, 40, 41, 42, 1629, 44, 123, 41, 47, 260, + 261, 41, 263, 40, 40, 421, 41, 268, 41, 93, + 59, 60, 61, 62, 93, 1668, 510, 44, 409, 410, + 411, 412, 413, 274, 41, 41, 58, 41, 93, 44, + 60, 40, 423, 61, 40, 296, 1671, 428, 1419, 40, + 431, 432, 91, 33, 93, 1426, 409, 410, 411, 412, + 413, 40, 40, 40, 40, 40, 40, 448, 449, 450, + 451, 40, 453, 454, 455, 456, 40, 38, 431, 432, + 461, 42, 125, 464, 123, 40, 125, 41, 41, 62, + 471, 472, 473, 93, 41, 448, 449, 450, 451, 60, + 93, 59, 455, 456, 93, 41, 93, 41, 461, 93, + 41, 464, 93, 59, 41, 41, 41, 41, 471, 472, + 41, 93, 93, 93, 41, 93, 41, 508, 509, 41, + 91, 93, 41, 93, 93, 41, 41, 93, 41, 263, + 41, 1512, 1513, 1514, 93, 526, 527, 44, 529, 530, + 531, 41, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 41, 274, 414, 415, 416, 41, 125, 40, 40, + 93, 93, 40, 526, 527, 93, 529, 530, 531, 125, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 40, + 360, 361, 362, 1564, 40, 58, 41, 58, 1569, 1570, + 1571, 58, 1573, 41, 1575, 1576, 1577, 41, 41, 40, + 40, 93, 41, 41, 93, 41, 93, 41, 40, 93, + 40, 260, 261, 262, 263, 40, 1597, 1598, 1599, 268, + 40, 40, 271, 40, 273, 274, 275, 276, 277, 278, + 279, 40, 281, 282, 283, 284, 40, 286, 287, 288, + 40, 290, 291, 292, 293, 40, 40, 296, 297, 298, + 299, 40, 263, 41, 40, 60, 93, 306, 41, 308, + 58, 40, 311, 40, 93, 40, 315, 316, 40, 318, + 41, 40, 33, 322, 323, 324, 325, 38, 91, 1660, + 40, 42, 41, 41, 41, 41, 41, 277, 278, 279, + 339, 281, 282, 283, 284, 41, 286, 287, 274, 60, + 290, 291, 292, 293, 41, 273, 40, 40, 263, 358, + 359, 360, 361, 362, 510, 364, 365, 273, 41, 358, + 41, 274, 40, 125, 41, 374, 375, 41, 296, 41, + 91, 123, 123, 123, 44, 62, 123, 40, 123, 41, + 296, 125, 391, 125, 41, 123, 62, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 123, 125, 41, 123, 0, 360, + 361, 362, 41, 41, 41, 125, 41, 123, 123, 448, + 449, 450, 451, 62, 453, 454, 455, 456, 123, 41, + 459, 40, 461, 40, 463, 464, 465, 466, 41, 468, + 469, 33, 471, 472, 473, 123, 38, 93, 40, 41, + 42, 480, 44, 46, 42, 47, 263, 93, 91, 263, + 275, 409, 275, 61, 275, 180, 834, 59, 60, 61, + 62, 418, 275, 409, 275, 263, 263, 745, 901, 508, + 509, 510, 263, 275, 275, 275, 1017, 1282, 1508, 275, + 1040, 1015, 275, 1144, 1202, 920, 275, 526, 527, 91, + 529, 530, 531, 451, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 461, 543, 451, 464, 705, 910, 260, + 261, 275, 263, 1283, 1270, 461, 351, 268, 464, 275, + 271, 123, 275, 125, 275, 276, 277, 278, 279, 24, + 281, 282, 283, 284, 275, 286, 287, 478, 907, 290, + 291, 292, 293, 9, 1206, 296, 297, 298, 114, 294, + 548, 24, 760, 59, 764, 306, 301, 308, 303, 304, + 305, 305, 609, 64, 675, 369, -1, -1, -1, -1, + 490, -1, 323, 324, 325, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, 342, 343, 344, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, 125, + 41, -1, -1, 374, 375, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + -1, -1, -1, 388, 389, 390, -1, 392, -1, -1, + 395, -1, 38, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, 414, 415, 416, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, 269, -1, + -1, 272, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, 295, 296, -1, -1, -1, 300, + -1, 302, -1, -1, -1, 33, -1, 123, 309, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, 47, + -1, -1, -1, -1, -1, 326, 358, -1, 360, 361, + 362, 59, 60, 61, 62, -1, -1, 273, -1, -1, + 341, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + 296, -1, 543, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, 294, 260, -1, -1, 263, 480, -1, + 301, -1, 303, 304, 305, -1, -1, -1, -1, -1, + -1, -1, 278, -1, -1, 281, 282, 283, 284, -1, + 286, 287, 288, 409, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 342, 343, 344, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, 451, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 461, -1, -1, 464, -1, + -1, -1, 260, 261, -1, 263, -1, 388, 389, 390, + 268, 392, -1, 271, 395, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, 342, 343, 344, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 475, -1, 477, 478, 479, - 480, 388, 389, 390, -1, 392, -1, -1, 395, -1, - 358, -1, 360, 361, 362, -1, -1, -1, -1, 273, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, 91, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, 33, + 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 296, 391, -1, -1, -1, -1, 396, 397, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - 544, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, 33, 472, 473, 474, -1, 38, 322, - 40, 41, 42, 481, 44, -1, -1, 47, 269, -1, - -1, 272, -1, -1, -1, -1, -1, -1, -1, 59, - 60, 61, 62, -1, -1, -1, 410, -1, -1, -1, - -1, 509, 510, -1, 295, 296, -1, -1, -1, 300, - -1, 302, -1, -1, -1, -1, -1, -1, 309, 527, - 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 326, 544, -1, 452, -1, - -1, -1, 260, 261, -1, 263, -1, -1, 462, -1, - 341, 465, -1, 123, 123, 125, -1, 410, 411, 412, - 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 424, -1, -1, -1, -1, 429, -1, -1, 432, - 433, -1, -1, 59, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, -1, -1, 462, - -1, -1, 465, -1, -1, -1, -1, -1, -1, 472, - 473, 474, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, - -1, -1, -1, -1, 59, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, 380, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, 294, 296, 297, 298, 299, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - 309, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, 325, 475, -1, 477, - 478, 479, 480, -1, -1, 334, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, - 349, 350, 351, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, 380, 381, 382, 383, 384, 385, 386, -1, -1, - 296, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, - -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, 33, 472, 473, 474, -1, 38, 322, 40, 41, - 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, - 62, -1, -1, -1, 410, -1, -1, -1, -1, 509, - 510, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, -1, 527, 528, 91, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, 544, -1, 452, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 462, -1, -1, 465, - -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 424, - -1, -1, -1, -1, 429, -1, -1, 432, 433, -1, - 59, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, -1, -1, -1, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, 474, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, - 262, -1, -1, -1, 316, -1, -1, -1, 41, -1, - 322, 323, 324, 325, -1, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, - 292, 293, -1, -1, -1, -1, -1, 299, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, - 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, - 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, - -1, 410, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, 544, 452, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 462, -1, -1, 465, -1, -1, 123, - -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, - -1, 294, -1, -1, -1, -1, -1, -1, 301, -1, - 303, 304, 305, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, - 457, -1, -1, -1, -1, 462, -1, -1, 465, 342, - 343, 344, -1, -1, -1, 472, 473, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - 59, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, 388, 389, 390, -1, 392, - -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, 262, -1, -1, -1, + -1, -1, 480, -1, -1, -1, 260, 261, 262, 263, + 264, 277, 278, 279, 268, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, 283, + 508, 509, -1, 299, -1, -1, -1, -1, -1, -1, + -1, -1, 296, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, 320, 321, -1, -1, + -1, 41, -1, -1, 474, -1, 476, 477, 478, 479, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - 365, -1, 296, 297, 298, 299, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 414, 415, 416, 33, 260, 261, -1, 263, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, - 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, 123, 428, 125, -1, 431, 432, 355, + 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 380, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 480, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, 410, 411, 412, 413, 414, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, 432, 433, -1, 297, 298, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, - -1, -1, -1, 462, -1, -1, 465, -1, -1, -1, - -1, -1, -1, 472, 473, 271, -1, -1, -1, -1, - -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, 59, -1, - -1, 297, 298, -1, 365, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, - 346, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, 125, 281, 282, 283, 284, 365, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, 257, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 276, 277, -1, 279, 280, 281, 282, 283, 284, -1, - 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, - 38, -1, 40, 41, 42, 481, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, 485, - 486, -1, 488, 489, 490, -1, 492, 493, -1, -1, - 496, 497, -1, 499, -1, 123, -1, 125, -1, 410, - 411, 412, 413, 414, -1, -1, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - -1, 432, 433, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, - -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, - -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, 125, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - 273, 429, -1, -1, 432, 433, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, 33, 472, 473, 474, -1, 38, -1, - 40, 41, 42, 481, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, 91, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, 123, -1, 125, -1, 410, 411, 412, - 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, 294, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, -1, -1, 456, 457, -1, -1, -1, -1, 462, - 323, -1, 465, -1, 327, -1, -1, 330, 331, 472, - 473, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, -1, -1, -1, -1, -1, - 353, -1, -1, 356, 59, -1, -1, -1, -1, -1, - 363, -1, -1, -1, -1, -1, -1, -1, -1, 372, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + 476, 477, 478, 479, -1, -1, 40, -1, -1, -1, + 260, 261, -1, 263, -1, 365, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - 125, 281, 282, 283, 284, -1, 286, 287, -1, -1, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, -1, -1, -1, -1, -1, -1, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, -1, -1, -1, 273, 429, - -1, -1, 432, 433, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, 33, 472, 473, 474, -1, 38, -1, 40, 41, - 42, 481, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, 91, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, 544, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, 123, -1, 125, -1, 410, 411, 412, 413, 414, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 432, 433, 294, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, -1, - -1, 456, 457, -1, -1, -1, -1, 462, 323, -1, - 465, -1, 327, -1, -1, 330, 331, 472, 473, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, -1, -1, -1, -1, -1, 353, -1, - -1, 356, 59, -1, -1, -1, -1, -1, 363, -1, - -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, 125, 281, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, 269, -1, -1, 272, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, 295, 296, -1, -1, -1, 300, -1, 302, -1, + -1, -1, -1, -1, -1, 309, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 326, 543, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, 123, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, 294, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, 309, + -1, -1, -1, -1, 480, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, 325, 286, 287, 288, -1, + 290, 291, 292, 293, 334, -1, -1, 297, 298, -1, + -1, -1, 508, 509, -1, -1, -1, -1, 348, 349, + 350, 351, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, 365, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, -1, -1, -1, 273, 429, -1, -1, - 432, 433, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, 454, 455, 456, 457, -1, -1, 460, -1, - 462, -1, 464, 465, 466, -1, -1, 469, 470, 33, - 472, 473, 474, -1, 38, -1, 40, 41, 42, 481, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, 271, -1, -1, -1, -1, 480, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, 91, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, 544, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, 410, 411, 412, 413, 414, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 432, 433, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, -1, -1, 456, - 457, -1, -1, -1, -1, 462, -1, -1, 465, -1, - -1, -1, -1, -1, -1, 472, 473, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, 365, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 260, 261, -1, 263, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, 125, 281, 282, 283, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, -1, -1, -1, 273, 429, -1, -1, 432, 433, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, 33, 472, 473, - 474, -1, 38, -1, 40, 41, 42, 481, 44, -1, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, 91, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - 544, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, 410, 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, -1, -1, -1, -1, 0, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, 456, 457, -1, - -1, -1, 125, 462, -1, -1, 465, -1, -1, -1, - -1, -1, -1, 472, 473, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 260, 261, -1, 263, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, 125, 281, 282, 283, 284, -1, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, 339, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, 273, 429, -1, -1, 432, 433, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 454, 455, - 456, 457, -1, -1, 460, -1, 462, -1, 464, 465, - 466, -1, -1, 469, 470, 33, 472, 473, 474, -1, - 38, -1, 40, 41, 42, 481, 44, -1, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 60, 61, 62, -1, -1, -1, -1, 452, - -1, -1, -1, 509, 510, -1, -1, -1, -1, -1, - -1, 464, -1, 466, 467, -1, 469, 470, -1, -1, - -1, 527, 528, 91, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, 544, -1, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, -1, -1, 456, 457, -1, -1, -1, - -1, 462, -1, -1, 465, -1, -1, -1, -1, -1, - -1, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 59, -1, 61, 62, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 41, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 260, 261, -1, 263, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, 0, 306, -1, + 298, -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, 40, 41, -1, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, -1, 59, -1, 61, 62, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, + -1, 294, -1, -1, -1, -1, -1, -1, 301, -1, + 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, + 343, 344, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, -1, -1, -1, - 123, 429, 125, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, -1, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, - -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, 544, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, 0, - -1, 294, 295, 306, -1, 308, -1, 300, 311, 302, - -1, -1, -1, 316, -1, -1, 309, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 326, 327, -1, 329, 330, 331, 332, - 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, - -1, -1, -1, -1, 347, 358, -1, -1, 59, 352, - -1, 354, -1, -1, -1, -1, -1, -1, -1, 33, - -1, 374, 375, 366, 367, 368, 369, 370, 371, 372, - 373, -1, -1, -1, -1, -1, 379, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 123, -1, 125, -1, 429, -1, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, -1, -1, 460, -1, 462, - -1, 464, 465, 466, -1, -1, 469, 470, -1, 472, - 473, 474, -1, -1, -1, -1, -1, -1, 481, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, -1, - 0, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, 339, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 359, 323, - 324, 325, -1, 364, 365, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, + 418, 419, 420, 421, 422, 423, 123, -1, 125, -1, + 428, -1, -1, 431, 432, 388, 389, 390, -1, 392, + -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, 294, -1, -1, -1, + -1, -1, 480, 301, -1, 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 342, 343, 344, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - 544, -1, -1, 273, -1, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + 388, 389, 390, -1, 392, -1, 273, 395, -1, -1, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 0, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - -1, 0, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, - 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 123, -1, 125, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, 467, -1, 469, - 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + 294, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, 323, + -1, -1, -1, 327, -1, -1, 330, 331, -1, -1, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 260, -1, -1, 263, -1, -1, 353, + -1, -1, 356, 543, -1, -1, 273, -1, -1, 363, + 277, 278, 279, -1, 281, 282, 283, 284, 372, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 0, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + 294, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, 323, + -1, -1, -1, 327, -1, -1, 330, 331, -1, -1, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 260, -1, -1, 263, -1, -1, 353, + -1, -1, 356, 543, -1, -1, 273, -1, -1, 363, + 277, 278, 279, -1, 281, 282, 283, 284, 372, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, 0, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, 544, -1, -1, 273, -1, -1, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, - -1, -1, 0, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, 464, 465, 466, 467, -1, - 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, 543, -1, -1, 273, -1, -1, -1, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, 0, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 544, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, -1, 0, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, 456, 457, - -1, -1, 460, -1, 462, -1, 464, 465, 466, 467, - -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, 544, -1, -1, 273, -1, -1, -1, + -1, -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, -1, -1, -1, -1, 364, 365, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 297, 298, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, 59, 294, 295, -1, -1, -1, -1, 300, + -1, 302, -1, -1, -1, 322, -1, -1, 309, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, 326, 327, -1, 329, 330, + 331, 332, 333, -1, -1, -1, -1, 338, -1, -1, + 341, -1, 359, -1, -1, -1, 347, 364, 365, -1, + -1, 352, -1, 354, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, 366, 367, 368, 369, 370, + 371, 372, 373, -1, -1, -1, -1, -1, 379, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - 467, -1, 469, 470, -1, 472, 473, 474, -1, 296, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, 0, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, -1, -1, 273, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, -1, -1, 0, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, 322, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, 260, -1, -1, + 263, 448, 449, 450, 451, -1, 453, 454, 526, 527, + 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, 473, -1, -1, -1, + -1, -1, -1, 296, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, 464, 465, 466, - 467, -1, 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, 0, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, 448, 449, 450, 451, 273, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - 527, 528, 273, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, 526, 527, 273, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, -1, -1, 0, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, 449, 450, - 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, - -1, 472, 473, 474, -1, 296, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 273, 274, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 311, 61, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, 467, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 61, -1, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, 527, 528, 273, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + 274, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, 0, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 358, -1, 59, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, 449, 450, 451, 452, -1, 454, - 455, 456, 457, 273, 274, 460, -1, 462, -1, 464, - 465, 466, 467, -1, 469, 470, -1, 472, 473, 474, - -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 273, 274, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 311, 61, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, -1, 509, 510, -1, -1, -1, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, -1, -1, -1, -1, 429, - -1, -1, 432, 433, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, 464, 465, 466, -1, -1, 469, - 470, -1, 472, 473, 474, -1, 40, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, 274, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 410, 411, 412, 413, -1, 543, -1, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, 260, 59, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 59, -1, -1, 418, - 419, 420, 421, 422, 423, 424, -1, -1, -1, -1, - 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, 273, - 274, 460, -1, 462, -1, 464, 465, 466, -1, -1, - 469, 470, -1, 472, 473, 474, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - 424, -1, -1, -1, 59, 429, -1, 260, 432, 433, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, -1, -1, -1, 449, 450, 451, 452, -1, - 454, 455, 456, 457, -1, -1, 460, -1, 462, -1, - 464, 465, 466, -1, -1, 469, 470, -1, 472, 473, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, 322, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, 528, -1, 530, 531, 532, -1, - 534, 535, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, 260, -1, 464, 263, -1, + -1, -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, -1, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, 456, 457, 260, -1, 460, 263, 462, - -1, -1, 465, -1, -1, -1, -1, -1, 273, 472, - 473, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, 509, 510, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, 527, 528, -1, 530, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, - -1, -1, 59, -1, -1, 260, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, 273, 454, - 455, 456, 457, -1, -1, 460, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, -1, 472, 473, 474, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, 59, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, 59, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, 322, 125, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 450, 451, 452, -1, 454, - 455, 456, 457, 260, -1, 460, -1, 462, -1, -1, - 465, -1, -1, -1, -1, -1, 273, 472, 473, 474, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, 509, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, 527, 528, -1, 530, 531, 532, -1, 534, - 535, 536, 537, 538, 539, 540, 541, 542, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 273, -1, 459, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, - 59, -1, -1, 260, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, 273, 454, 455, 456, - 457, -1, -1, 460, -1, 462, -1, -1, 465, -1, - -1, -1, -1, -1, -1, 472, 473, 474, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 59, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, + 448, 449, 450, 451, 260, 453, 454, 455, 456, -1, + -1, 459, -1, 461, 431, 432, 464, 273, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, + -1, 123, -1, 125, 471, 472, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 273, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, 322, 125, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 449, 450, 451, 452, -1, 454, 455, 456, - 457, 260, -1, 460, -1, 462, -1, -1, 465, -1, - -1, -1, -1, -1, 273, 472, 473, 474, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, 509, 510, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - 527, 528, -1, 530, 531, 532, -1, 534, 535, 536, - 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 260, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, - -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, 273, 454, 455, 456, 457, -1, - -1, 460, -1, 462, -1, -1, 465, -1, -1, -1, - -1, -1, -1, 472, 473, 474, -1, -1, -1, -1, + 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, 260, -1, 464, 263, -1, -1, -1, + -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, 322, 125, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, -1, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 451, 452, -1, 454, 455, 456, 457, 260, - -1, 460, 263, 462, -1, -1, 465, -1, -1, -1, - -1, -1, 273, 472, 473, 474, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, 260, -1, -1, 263, + 44, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, 448, 449, 450, 451, 59, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, 322, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, 527, 528, - -1, 530, 531, 532, -1, 534, 535, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, 0, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 322, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, 0, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, 59, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + 59, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 358, 359, -1, 260, 428, -1, 263, 431, 432, 125, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, 125, 461, -1, -1, + 464, -1, -1, -1, -1, 0, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 414, 415, 416, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, 451, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, 59, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 273, -1, -1, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 125, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, 273, 543, -1, -1, 0, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, 125, 459, -1, 461, -1, 322, 464, -1, -1, + -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, 125, -1, 431, 432, -1, 273, -1, + 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, 431, 432, -1, 461, -1, -1, 464, 273, + 0, -1, -1, -1, -1, 471, 472, 473, -1, 448, + 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, -1, 0, -1, -1, + -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 409, 410, 411, 412, 413, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, 431, 432, -1, -1, + -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, 125, -1, -1, -1, 461, 431, 432, 464, + 0, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, -1, -1, -1, -1, 429, -1, - 0, 432, 433, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, 449, 450, - 451, 452, 273, 454, 455, 456, 457, -1, -1, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - -1, 472, 473, 474, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 431, + 432, 0, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + 273, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, 509, 510, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 527, 528, -1, 530, - 531, 532, 33, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, 418, 419, 420, - 421, 422, 423, 424, 0, -1, -1, -1, 429, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, - 451, 452, -1, 454, 455, 456, 457, -1, 0, 460, - -1, 462, -1, 464, 465, 466, -1, -1, 469, 470, - -1, 472, 473, 474, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, - 260, -1, -1, 263, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 273, -1, -1, 527, 528, -1, 530, - 531, 532, -1, 534, 535, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 431, 432, 273, -1, -1, 409, 410, 411, 412, + 413, 59, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, 431, 432, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, + 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, 33, 455, 456, -1, -1, 38, + -1, 461, -1, 42, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 60, 409, 410, 411, 412, 413, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 431, 432, -1, -1, -1, -1, -1, + -1, 91, 33, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, + -1, 260, 261, 461, 263, -1, 464, -1, -1, 268, + -1, -1, 271, 471, 472, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, 374, 375, 38, -1, -1, + -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, 414, 415, 416, 268, -1, + -1, 271, -1, 33, -1, 275, 276, 277, 278, 279, + 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 291, 292, 293, 294, -1, -1, 297, 298, 358, -1, + 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, + 331, 332, -1, -1, 543, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, 424, -1, -1, 358, -1, 429, - -1, -1, 432, 433, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, 449, - 450, 451, 452, -1, 454, 455, 456, 457, -1, -1, - 460, -1, 462, -1, -1, 465, -1, -1, -1, -1, - -1, -1, 472, 473, 474, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, 528, -1, - 530, 531, 532, -1, 534, 535, 536, 537, 538, 539, - 540, 541, 542, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 416, 358, -1, -1, + -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, + -1, 372, -1, -1, -1, 376, 377, 378, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, 91, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, 323, 324, 325, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 294, -1, -1, 297, 298, 480, + -1, -1, -1, 543, -1, -1, 306, 358, 308, 360, + 361, 362, -1, -1, 91, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, + 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, 543, 414, 415, 416, 366, 367, 368, 369, + -1, -1, 372, -1, -1, -1, 376, 377, 378, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, 91, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, - -1, -1, -1, 429, 91, 33, 432, 433, -1, -1, - 38, -1, -1, 544, 42, -1, -1, -1, 410, 411, - 412, 413, 414, 449, 450, 451, 452, -1, 454, 455, - 456, 457, 60, -1, 460, -1, 462, -1, -1, 465, - 432, 433, -1, -1, -1, -1, 472, 473, 474, -1, - -1, -1, -1, -1, -1, -1, -1, 449, 450, 451, - 452, -1, -1, 91, 456, 457, -1, -1, -1, -1, - 462, -1, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, -1, 509, 510, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 527, 528, -1, 530, 531, 532, -1, 534, 535, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, 33, -1, -1, -1, -1, - 38, -1, -1, -1, 42, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, 271, -1, -1, -1, 275, 276, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, 358, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, 543, 91, 271, 372, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, -1, 91, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, 323, 324, 325, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, -1, 543, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, 358, 359, -1, -1, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, 543, -1, -1, -1, + 268, -1, -1, 271, -1, 358, -1, 275, 276, 277, + 278, 279, 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 358, -1, -1, -1, -1, -1, -1, 306, -1, + 298, -1, -1, -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, 33, -1, - -1, -1, -1, 38, -1, -1, -1, 42, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, - 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, -1, -1, -1, -1, 543, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, 59, 415, 416, 417, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 33, -1, 290, 291, 292, 293, -1, -1, 296, 297, + -1, -1, 290, 291, 292, 293, 414, 415, 416, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, 125, -1, -1, -1, -1, 544, -1, -1, + 91, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + 543, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 33, + 358, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, 543, -1, 271, 33, 358, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, 33, 414, 415, 416, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 358, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 33, -1, 91, -1, -1, 543, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, 415, 416, 417, + 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, 91, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 543, -1, 290, 291, 292, 293, + -1, 295, -1, 297, 298, -1, 300, -1, 302, -1, + -1, -1, 306, 33, 308, 309, -1, -1, -1, -1, + -1, 41, -1, 414, 415, 416, -1, -1, -1, 323, + 324, 325, 326, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, 341, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, - 33, 306, -1, 308, -1, 38, -1, -1, -1, 42, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, 91, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, 271, 322, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 33, 544, 290, 291, 292, - 293, 294, -1, -1, 297, 298, -1, -1, -1, -1, - 415, 416, 417, 306, -1, 308, -1, -1, -1, -1, + -1, 286, 287, -1, 358, 290, 291, 292, 293, -1, + 295, 91, 297, 298, -1, 300, 40, 302, -1, 543, + -1, 306, -1, 308, 309, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 60, -1, 323, 324, + 325, 326, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, 341, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, 358, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 543, -1, 323, 324, 325, -1, 271, 123, + -1, 125, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 358, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 59, -1, -1, 543, + -1, 271, -1, -1, -1, -1, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, 323, 324, 325, -1, -1, -1, 273, + 123, 41, 125, -1, -1, -1, -1, -1, 543, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 410, -1, 412, - 413, 414, -1, 366, 367, 368, 369, -1, -1, 372, - -1, 424, -1, 376, 377, 378, 429, -1, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 449, 450, 451, 452, - -1, 454, 455, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, 474, -1, -1, -1, 268, -1, -1, 271, 544, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 509, 510, -1, -1, - -1, -1, 91, 306, -1, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, - 323, 324, 325, 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, 544, 290, 291, 292, 293, 294, -1, -1, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, 415, 416, 417, 323, 324, 325, -1, 327, - -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - 358, -1, -1, -1, -1, -1, -1, -1, 366, 367, - 368, 369, -1, -1, 372, -1, -1, -1, 376, 377, - 378, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 91, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, 123, 41, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - 359, -1, -1, 481, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, 91, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, 415, 416, 417, -1, - -1, -1, -1, -1, -1, -1, 544, 323, 324, 325, - -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, 372, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, 91, -1, - 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, 415, - 416, 417, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, 544, -1, -1, -1, -1, + 543, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, + 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, + 273, 274, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 359, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, 91, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, 415, - 416, 417, -1, -1, -1, -1, -1, -1, -1, 33, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, + -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, 508, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, 91, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, - -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, 260, -1, -1, 263, -1, 431, 432, + -1, -1, -1, -1, -1, -1, 273, 123, -1, 125, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, 508, 509, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 260, -1, 413, 263, -1, -1, + 417, 418, 419, 420, 421, 422, -1, 273, 508, 509, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, + 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 33, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, 33, -1, - -1, 91, -1, -1, -1, -1, 41, -1, -1, -1, - -1, 544, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, 358, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, 91, -1, -1, -1, - -1, 33, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 544, 271, -1, 358, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, 295, 40, 297, 298, - -1, 300, -1, 302, -1, -1, 33, 306, -1, 308, - 309, -1, -1, -1, -1, -1, 59, 60, -1, -1, - -1, -1, -1, -1, 323, 324, 325, 326, -1, -1, - -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, - -1, 271, 341, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, 358, - 290, 291, 292, 293, 91, -1, -1, 297, 298, -1, - -1, -1, -1, -1, 544, -1, 306, -1, 308, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, 271, -1, -1, -1, - -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, - 59, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, -1, -1, 358, -1, - -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, 271, - 544, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, 125, -1, 290, 291, - 292, 293, -1, 358, -1, 297, 298, -1, -1, -1, - -1, 41, -1, -1, 306, -1, 308, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 323, 324, 325, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 271, 544, 358, -1, -1, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, -1, 123, -1, 125, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, 41, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, 260, -1, -1, 263, 431, 432, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, 260, -1, -1, + 263, -1, 431, 432, -1, -1, -1, -1, -1, -1, + 273, 123, -1, 125, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, 508, + 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, + 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, -1, -1, 544, - 123, 414, 125, 322, -1, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, -1, -1, 41, -1, 432, - 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 449, 450, 451, 452, - 260, -1, -1, 263, -1, -1, -1, 460, -1, -1, - -1, -1, -1, 273, 274, -1, -1, -1, -1, -1, - -1, 474, 544, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 410, -1, 412, 413, 414, 509, 510, 511, 123, - -1, 125, -1, -1, -1, 424, -1, -1, -1, -1, - 429, -1, -1, 432, 433, -1, -1, -1, -1, -1, - -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, - 449, 450, 451, 452, -1, 454, 455, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, 544, -1, -1, - 273, -1, -1, -1, -1, 474, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 509, 510, -1, -1, 414, -1, -1, -1, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, -1, -1, - -1, -1, 432, 433, -1, -1, 47, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, -1, 59, 449, - 450, 451, 452, -1, -1, -1, 260, -1, -1, 263, - 460, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, -1, -1, 509, - 510, 414, 123, -1, 125, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, -1, -1, -1, -1, 432, - 433, -1, -1, -1, -1, -1, 536, 537, 538, 539, - 540, 541, 542, -1, -1, 59, 449, 450, 451, 452, - -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 509, 510, -1, 123, - 414, 125, -1, -1, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, - -1, -1, -1, 59, -1, 449, 450, 451, 452, 260, - -1, -1, 263, -1, -1, -1, 460, -1, -1, -1, - -1, -1, 273, 274, -1, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 403, 404, 405, 406, 407, 408, -1, -1, 260, -1, + 413, 263, -1, -1, 417, 418, 419, 420, 421, 422, + -1, 273, 508, 509, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + 59, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, -1, -1, 260, -1, -1, 263, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, -1, 123, -1, 125, 459, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + -1, 260, 59, -1, 263, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 273, 123, -1, 125, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, 125, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, 508, 509, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + 535, 536, 537, 538, 539, 540, 541, 459, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, 260, 59, 413, 263, -1, -1, 417, 418, + 419, 420, 421, 422, -1, 273, 508, 509, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, + 459, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, 273, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 509, 510, 123, -1, 125, + 125, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, + -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, + -1, 459, 409, 410, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, 273, -1, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - 59, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + 508, 509, -1, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, 322, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, - -1, -1, -1, 414, 123, -1, 125, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 449, 450, - 451, 452, -1, -1, 260, -1, -1, 263, -1, 460, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 409, -1, 411, 412, 413, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, 509, 510, - 414, 123, -1, 125, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, -1, 432, 433, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, 449, 450, 451, 452, -1, - -1, 260, -1, -1, 263, -1, 460, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, -1, + -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, + -1, -1, -1, -1, -1, -1, -1, 473, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + -1, 271, 508, 509, -1, -1, 276, 277, -1, 279, + 280, 281, 282, 283, 284, -1, 286, 287, 473, 289, + 290, 291, 292, 293, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, 509, 510, -1, 414, -1, - -1, 59, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, -1, -1, 449, 450, 451, 452, -1, 260, -1, - -1, 263, -1, -1, 460, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, -1, -1, 509, 510, 414, -1, -1, 59, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, -1, -1, -1, - -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, - 509, 510, 414, -1, -1, 59, 418, 419, 420, 421, - 422, 423, 260, -1, -1, 263, -1, -1, -1, -1, - 432, 433, -1, -1, -1, 273, -1, 536, 537, 538, - 539, 540, 541, 542, -1, -1, -1, 449, 450, 451, - 452, -1, -1, -1, -1, -1, -1, -1, 460, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 335, -1, 337, -1, -1, + 257, -1, 342, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, 358, 276, + 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, + 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, -1, -1, -1, -1, 414, 123, -1, 125, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - -1, -1, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 449, 450, 451, 452, -1, 260, -1, -1, 263, - -1, -1, 460, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, - -1, 509, 510, 414, 123, -1, 125, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, -1, -1, -1, - -1, 432, 433, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, 449, 450, - 451, 452, -1, -1, 260, -1, -1, 263, -1, 460, - -1, 59, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, -1, -1, 509, 510, - 414, -1, -1, -1, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, -1, -1, -1, 125, 432, 433, - -1, -1, -1, -1, -1, 536, 537, 538, 539, 540, - 541, 542, -1, -1, -1, 449, 450, 451, 452, -1, - -1, 260, -1, -1, 263, -1, 460, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, -1, 509, 510, -1, 414, -1, - -1, -1, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, -1, -1, -1, -1, 432, 433, -1, -1, - -1, -1, 536, 537, 538, 539, 540, 541, 542, -1, - -1, 59, -1, 449, 450, 451, 452, -1, -1, -1, - -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 273, -1, 509, 510, 414, -1, 125, -1, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, -1, - -1, -1, -1, 432, 433, -1, -1, -1, -1, -1, - 536, 537, 538, 539, 540, 541, 542, -1, -1, -1, - 449, 450, 451, 452, -1, -1, -1, -1, -1, -1, - -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 410, 411, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, - 539, 540, 541, 542, 432, 433, -1, -1, 410, 411, - 412, 413, 414, -1, -1, -1, -1, -1, -1, -1, - -1, 449, 450, 451, 452, 273, -1, -1, 456, 457, - 432, 433, -1, -1, 462, -1, -1, 465, -1, -1, - -1, -1, -1, -1, 472, 473, -1, 449, 450, 451, - 452, -1, -1, -1, 456, 457, -1, -1, -1, -1, - 462, 123, -1, 465, -1, -1, -1, -1, -1, -1, - 472, 473, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, - 528, -1, 530, 531, 532, -1, 534, 535, 536, 537, - 538, 539, 540, 541, 542, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 527, 528, -1, 530, 531, - 532, -1, 534, 535, 536, 537, 538, 539, 540, 541, - 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 410, -1, 412, 413, 414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, - -1, 429, -1, -1, 432, 433, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, - -1, 449, 450, 451, 452, -1, 454, 455, -1, 271, - -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, - 282, 283, 284, 257, 286, 287, 474, 289, 290, 291, - 292, 293, -1, -1, -1, -1, -1, 271, -1, -1, - -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, - 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, - -1, 509, 510, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, - 342, -1, -1, -1, -1, -1, -1, -1, 536, 537, - 538, 539, 540, 541, 542, -1, 358, -1, -1, -1, - -1, 335, -1, 337, -1, -1, -1, -1, 342, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, + -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, + -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 335, -1, 337, 503, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 484, 485, -1, + 487, 488, 489, -1, 491, 492, -1, -1, 495, 496, + -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, -1, - -1, -1, 504, -1, -1, -1, -1, -1, 482, -1, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, -1, -1, -1, - 504, + -1, -1, -1, -1, -1, -1, 481, -1, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, -1, -1, -1, 503, }; static int yyctable[] = { -1, - 239, 558, -1, 441, 791, -1, 291, 721, -1, 292, - 721, -1, 293, 721, -1, 295, 721, -1, 296, 721, - -1, 297, 721, -1, 298, 721, -1, 530, 742, -1, + 239, 556, -1, 439, 789, -1, 291, 719, -1, 292, + 719, -1, 293, 719, -1, 295, 719, -1, 296, 719, + -1, 297, 719, -1, 298, 719, -1, 528, 740, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 789, 317, -1, 857, 793, -1, - 67, 566, -1, 68, 566, -1, 69, 566, -1, 27, + -1, 103, 495, -1, 786, 317, -1, 854, 791, -1, + 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1140, 626, -1, 67, 567, -1, 68, - 567, -1, 69, 567, -1, 1157, 37, -1, 1287, 797, - -1, 1289, 795, -1, 1301, 610, -1, 1507, 799, -1, - 1142, 573, -1, 1143, 573, -1, + 34, 78, -1, 1137, 624, -1, 67, 565, -1, 68, + 565, -1, 69, 565, -1, 1154, 37, -1, 1284, 795, + -1, 1286, 793, -1, 1298, 608, -1, 1504, 797, -1, + 1139, 571, -1, 1140, 571, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, - 310, 18, 155, 156, 157, 158, 159, 177, 178, 194, - 195, 196, 197, 201, 202, 207, 210, 217, 218, 272, - 273, 275, 276, 277, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 297, 320, 321, 400, 406, 407, 423, - 424, 426, 427, 429, 430, 431, 432, 433, 434, 435, - 437, 439, 441, 443, 444, 445, 446, 447, 448, 450, - 451, 452, 465, 483, 489, 216, 5, 6, 8, 311, - 312, 299, 326, 64, 125, 485, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 399, 399, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 295, 317, 318, 386, 388, 389, 298, - 299, 274, 401, 216, 403, 405, 216, 311, 9, 319, - 319, 9, 10, 336, 336, 13, 16, 20, 21, 22, + 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, + 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, + 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 296, 319, 320, 399, 405, 406, 421, + 422, 424, 425, 427, 428, 429, 430, 431, 432, 433, + 435, 437, 439, 441, 442, 443, 444, 445, 446, 448, + 449, 450, 463, 481, 487, 215, 5, 6, 8, 310, + 311, 298, 325, 64, 125, 483, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 398, 398, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 294, 316, 317, 385, 387, 388, 297, + 298, 273, 400, 215, 402, 404, 215, 310, 9, 318, + 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 160, 161, 162, 289, 299, 308, 311, 315, 340, - 365, 383, 387, 389, 406, 407, 462, 290, 311, 311, - 311, 311, 7, 12, 343, 344, 343, 343, 290, 290, - 428, 290, 290, 290, 290, 343, 390, 60, 453, 391, - 23, 26, 27, 28, 29, 31, 32, 33, 290, 306, - 484, 487, 488, 319, 404, 294, 319, 392, 312, 299, - 340, 383, 384, 389, 462, 7, 33, 298, 348, 293, - 295, 295, 46, 48, 49, 50, 317, 317, 384, 385, - 387, 340, 298, 295, 319, 319, 208, 311, 403, 100, - 101, 102, 125, 220, 222, 223, 224, 225, 311, 75, - 76, 311, 311, 340, 26, 27, 28, 29, 383, 51, - 383, 24, 25, 34, 15, 17, 340, 22, 23, 24, + 104, 159, 160, 161, 288, 298, 307, 310, 314, 339, + 364, 382, 386, 388, 405, 406, 460, 289, 310, 310, + 310, 310, 7, 12, 342, 343, 342, 342, 289, 289, + 426, 289, 289, 289, 289, 342, 389, 60, 451, 390, + 23, 26, 27, 28, 29, 31, 32, 33, 289, 305, + 482, 485, 486, 318, 403, 293, 318, 391, 311, 298, + 339, 382, 383, 388, 460, 7, 33, 297, 347, 292, + 294, 294, 46, 48, 49, 50, 316, 316, 383, 384, + 386, 339, 297, 294, 318, 318, 207, 310, 402, 100, + 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, + 76, 310, 310, 339, 26, 27, 28, 29, 382, 51, + 382, 24, 25, 34, 15, 17, 339, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 308, 354, 218, 305, 311, 389, 308, 311, 319, 307, - 105, 106, 107, 136, 299, 301, 305, 306, 136, 136, - 136, 136, 317, 388, 383, 449, 348, 296, 12, 296, - 296, 425, 310, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 163, 164, 165, - 166, 167, 168, 205, 219, 254, 255, 290, 291, 312, + 307, 353, 217, 304, 310, 388, 307, 310, 318, 306, + 105, 106, 107, 136, 298, 300, 304, 305, 136, 136, + 136, 136, 316, 387, 382, 447, 347, 295, 12, 295, + 295, 423, 309, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 162, 163, 164, 165, + 166, 167, 204, 218, 253, 254, 289, 290, 311, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 430, 433, 444, 445, 446, - 448, 467, 468, 469, 470, 471, 472, 473, 476, 436, - 438, 440, 442, 296, 39, 68, 72, 75, 76, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 98, 101, 108, 117, 311, 384, 61, 454, 39, - 72, 74, 75, 76, 77, 78, 83, 92, 97, 99, - 111, 112, 113, 114, 115, 116, 117, 118, 124, 317, - 305, 295, 299, 324, 295, 324, 295, 324, 295, 324, - 295, 324, 295, 324, 295, 486, 487, 295, 343, 7, - 8, 293, 304, 73, 75, 76, 82, 311, 311, 300, - 39, 72, 74, 75, 76, 77, 111, 112, 113, 114, - 117, 121, 122, 123, 226, 340, 298, 218, 311, 295, - 298, 317, 295, 290, 295, 292, 8, 319, 319, 296, - 119, 120, 299, 311, 313, 384, 290, 295, 348, 300, - 167, 402, 311, 221, 136, 383, 25, 311, 384, 295, - 295, 26, 27, 28, 29, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 308, 311, 319, 311, 300, - 300, 300, 311, 319, 311, 295, 295, 311, 20, 300, - 319, 341, 342, 340, 367, 368, 311, 311, 311, 311, - 340, 449, 291, 67, 155, 169, 174, 199, 200, 219, - 254, 255, 291, 424, 427, 429, 430, 433, 444, 445, - 446, 448, 456, 457, 459, 461, 291, 319, 319, 319, - 299, 110, 288, 299, 103, 384, 304, 312, 319, 319, - 336, 11, 31, 32, 295, 335, 336, 312, 319, 388, - 15, 17, 340, 389, 385, 384, 87, 348, 488, 317, - 385, 295, 343, 198, 295, 428, 55, 57, 58, 59, - 474, 475, 477, 479, 480, 481, 482, 312, 319, 471, - 209, 211, 214, 215, 291, 444, 445, 448, 491, 492, - 493, 494, 84, 209, 212, 291, 490, 492, 495, 496, - 41, 155, 207, 210, 291, 445, 448, 497, 207, 210, - 291, 445, 448, 498, 295, 75, 76, 77, 111, 112, - 113, 301, 382, 384, 455, 295, 295, 323, 295, 319, - 319, 319, 319, 336, 335, 335, 291, 293, 312, 296, - 319, 319, 75, 76, 77, 111, 112, 113, 295, 295, - 311, 311, 300, 348, 397, 398, 290, 340, 51, 376, - 377, 384, 7, 293, 296, 296, 386, 301, 334, 366, - 19, 372, 374, 322, 490, 136, 311, 19, 65, 66, - 327, 319, 295, 295, 295, 295, 319, 319, 319, 336, - 319, 335, 335, 336, 319, 319, 319, 336, 311, 319, - 300, 315, 315, 315, 384, 384, 20, 293, 300, 302, - 293, 305, 110, 394, 395, 319, 319, 404, 110, 288, - 103, 384, 290, 428, 290, 290, 290, 304, 319, 299, - 311, 299, 311, 319, 317, 19, 295, 295, 311, 384, - 295, 343, 340, 312, 316, 319, 296, 295, 20, 323, - 337, 338, 339, 291, 384, 474, 56, 471, 478, 478, - 478, 478, 312, 319, 471, 62, 62, 213, 298, 305, - 319, 379, 298, 348, 343, 343, 298, 298, 343, 343, - 295, 216, 319, 311, 216, 311, 216, 319, 39, 51, - 52, 69, 119, 289, 292, 303, 328, 329, 381, 293, - 319, 348, 396, 299, 340, 348, 296, 300, 296, 296, - 296, 296, 296, 486, 296, 304, 8, 293, 319, 2, - 16, 21, 22, 24, 25, 26, 27, 28, 29, 31, - 32, 34, 35, 36, 37, 38, 80, 82, 87, 103, - 136, 227, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 249, - 290, 345, 346, 466, 63, 314, 300, 298, 296, 293, - 372, 8, 293, 291, 298, 8, 298, 299, 367, 295, - 295, 311, 313, 291, 22, 23, 24, 26, 27, 28, - 29, 31, 32, 35, 36, 37, 38, 42, 43, 110, - 352, 353, 375, 448, 488, 28, 29, 63, 203, 204, - 206, 343, 311, 311, 296, 296, 319, 319, 319, 336, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 315, 296, 296, 319, 341, 340, 295, 384, - 72, 117, 311, 384, 72, 117, 317, 311, 299, 311, - 299, 311, 317, 19, 425, 291, 458, 460, 440, 319, - 300, 319, 319, 293, 300, 340, 313, 319, 336, 19, - 348, 296, 295, 293, 296, 293, 337, 340, 296, 293, - 312, 319, 312, 319, 319, 295, 304, 295, 296, 296, - 295, 295, 296, 296, 319, 315, 311, 63, 311, 296, - 295, 39, 330, 331, 329, 295, 311, 371, 302, 384, - 296, 136, 396, 39, 46, 48, 49, 50, 87, 88, - 89, 133, 134, 135, 137, 140, 296, 251, 252, 253, - 319, 226, 350, 296, 324, 324, 324, 324, 324, 324, - 319, 319, 296, 25, 26, 27, 28, 29, 295, 332, - 243, 235, 247, 295, 228, 248, 22, 332, 332, 2, - 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, - 34, 35, 36, 37, 38, 230, 231, 233, 234, 235, - 237, 238, 241, 242, 244, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 305, - 325, 299, 305, 296, 344, 312, 298, 347, 28, 319, - 327, 348, 349, 383, 397, 291, 298, 377, 290, 290, - 295, 348, 319, 302, 337, 337, 334, 366, 295, 299, - 295, 299, 26, 27, 28, 29, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 104, 109, 378, 448, 343, 312, 296, 296, - 296, 296, 296, 337, 197, 406, 311, 340, 319, 319, - 293, 340, 313, 291, 170, 171, 172, 173, 291, 433, - 445, 446, 448, 463, 173, 175, 176, 291, 433, 445, - 446, 448, 464, 291, 136, 300, 300, 384, 347, 384, - 296, 296, 311, 296, 337, 316, 316, 296, 350, 339, - 62, 62, 379, 296, 319, 319, 295, 331, 384, 369, - 370, 384, 293, 380, 311, 348, 296, 295, 304, 304, - 300, 300, 300, 300, 295, 313, 8, 293, 8, 250, - 348, 299, 299, 25, 26, 27, 28, 29, 271, 293, - 299, 306, 292, 300, 319, 291, 22, 23, 24, 26, - 27, 28, 29, 31, 32, 35, 36, 37, 38, 44, - 348, 351, 353, 295, 295, 290, 375, 372, 300, 296, - 296, 295, 295, 327, 319, 319, 319, 295, 299, 295, - 299, 295, 299, 295, 299, 319, 319, 319, 319, 319, - 319, 336, 319, 319, 335, 319, 335, 336, 319, 319, - 319, 319, 319, 319, 319, 336, 319, 352, 319, 8, - 44, 319, 44, 51, 383, 319, 42, 91, 110, 365, - 373, 296, 402, 296, 311, 300, 300, 384, 384, 256, - 388, 388, 388, 388, 388, 388, 388, 312, 293, 19, - 296, 312, 312, 319, 304, 296, 319, 311, 296, 293, - 381, 380, 396, 319, 138, 139, 138, 139, 346, 382, - 319, 298, 293, 319, 319, 348, 300, 319, 292, 300, - 26, 27, 28, 29, 319, 26, 27, 28, 319, 375, - 291, 291, 302, 337, 337, 296, 300, 296, 300, 319, - 319, 319, 319, 319, 319, 336, 319, 296, 300, 296, - 300, 296, 300, 296, 300, 296, 296, 300, 296, 296, - 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, - 300, 296, 296, 300, 296, 8, 296, 300, 51, 383, - 299, 311, 295, 293, 19, 317, 384, 313, 379, 296, - 380, 384, 296, 296, 296, 295, 8, 319, 348, 300, - 300, 300, 319, 296, 304, 304, 304, 296, 291, 296, - 296, 295, 295, 296, 300, 296, 300, 296, 300, 296, - 300, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 296, 295, 8, 300, 298, 337, 384, - 313, 340, 301, 333, 334, 304, 337, 296, 293, 296, - 345, 300, 319, 319, 319, 361, 358, 295, 295, 295, - 295, 357, 358, 359, 360, 355, 356, 357, 358, 359, - 360, 364, 362, 363, 352, 296, 333, 384, 295, 379, - 296, 348, 296, 296, 296, 296, 327, 296, 319, 357, - 358, 359, 360, 296, 319, 296, 296, 319, 296, 336, - 296, 319, 335, 296, 335, 336, 296, 296, 296, 296, - 296, 352, 8, 44, 296, 44, 51, 296, 383, 347, - 295, 19, 337, 393, 293, 296, 296, 296, 296, 8, - 337, 313, 296, 39, 54, 70, 79, 93, 94, 95, - 96, 125, 126, 127, 128, 129, 130, 131, 290, 348, - 296, 295, 295, 296, 256, 337, 319, 103, 296, 296, - 317, 340, 384, 19, 313, 333, 295, 337, 296, + 418, 419, 420, 428, 431, 442, 443, 444, 446, 465, + 466, 467, 468, 469, 470, 471, 474, 434, 436, 438, + 440, 295, 39, 68, 72, 75, 76, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 98, + 101, 108, 117, 310, 383, 61, 452, 39, 72, 74, + 75, 76, 77, 78, 83, 92, 97, 99, 111, 112, + 113, 114, 115, 116, 117, 118, 124, 316, 304, 294, + 298, 323, 294, 323, 294, 323, 294, 323, 294, 323, + 294, 323, 294, 484, 485, 294, 342, 7, 8, 292, + 303, 73, 75, 76, 82, 310, 310, 299, 39, 72, + 74, 75, 76, 77, 111, 112, 113, 114, 117, 121, + 122, 123, 225, 339, 297, 217, 310, 294, 297, 316, + 294, 289, 294, 291, 8, 318, 318, 295, 119, 120, + 298, 310, 312, 383, 289, 294, 347, 299, 166, 401, + 310, 220, 136, 382, 25, 310, 383, 294, 294, 26, + 27, 28, 29, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 307, 310, 318, 310, 299, 299, 299, + 310, 318, 310, 294, 294, 310, 20, 299, 318, 340, + 341, 339, 366, 367, 310, 310, 310, 310, 339, 447, + 290, 67, 154, 168, 173, 198, 199, 218, 253, 254, + 290, 422, 425, 427, 428, 431, 442, 443, 444, 446, + 454, 455, 457, 459, 290, 318, 318, 318, 298, 110, + 287, 298, 103, 383, 303, 311, 318, 318, 335, 11, + 31, 32, 294, 334, 335, 311, 318, 387, 15, 17, + 339, 388, 383, 87, 347, 486, 316, 384, 294, 342, + 197, 294, 426, 55, 57, 58, 59, 472, 473, 475, + 477, 478, 479, 480, 311, 318, 469, 208, 210, 213, + 214, 290, 442, 443, 446, 489, 490, 491, 492, 84, + 208, 211, 290, 488, 490, 493, 494, 41, 154, 206, + 209, 290, 443, 446, 495, 206, 209, 290, 443, 446, + 496, 294, 75, 76, 77, 111, 112, 113, 300, 381, + 383, 453, 294, 294, 322, 294, 318, 318, 318, 318, + 335, 334, 334, 290, 292, 311, 295, 318, 318, 75, + 76, 77, 111, 112, 113, 294, 294, 310, 310, 299, + 347, 396, 397, 289, 339, 51, 375, 376, 383, 7, + 292, 295, 295, 385, 300, 333, 365, 19, 371, 373, + 321, 488, 136, 310, 19, 65, 66, 326, 318, 294, + 294, 294, 294, 318, 318, 318, 335, 318, 334, 334, + 335, 318, 318, 318, 335, 310, 318, 299, 314, 314, + 314, 383, 383, 20, 292, 299, 301, 292, 304, 110, + 393, 394, 318, 318, 403, 110, 287, 103, 383, 289, + 426, 289, 289, 289, 303, 318, 298, 310, 298, 310, + 318, 316, 19, 294, 294, 310, 383, 294, 342, 339, + 311, 315, 318, 295, 294, 20, 322, 336, 337, 338, + 290, 383, 472, 56, 469, 476, 476, 476, 476, 311, + 318, 469, 62, 62, 212, 297, 304, 318, 378, 297, + 347, 342, 342, 297, 297, 342, 342, 294, 215, 318, + 310, 215, 310, 215, 318, 39, 51, 52, 69, 119, + 288, 291, 302, 327, 328, 380, 292, 318, 347, 395, + 298, 339, 347, 295, 299, 295, 295, 295, 295, 295, + 484, 295, 303, 8, 292, 318, 2, 16, 21, 22, + 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, + 36, 37, 38, 80, 82, 87, 103, 136, 226, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 248, 289, 344, 345, + 464, 63, 313, 299, 297, 295, 292, 371, 8, 292, + 290, 297, 8, 297, 298, 366, 294, 294, 310, 312, + 290, 22, 23, 24, 26, 27, 28, 29, 31, 32, + 35, 36, 37, 38, 42, 43, 110, 351, 352, 374, + 446, 486, 28, 29, 63, 202, 203, 205, 342, 310, + 310, 295, 295, 318, 318, 318, 335, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 314, + 295, 295, 318, 340, 339, 294, 383, 72, 117, 310, + 383, 72, 117, 316, 310, 298, 310, 298, 310, 316, + 19, 423, 290, 456, 458, 438, 318, 299, 318, 318, + 292, 299, 339, 312, 318, 335, 19, 347, 295, 294, + 292, 295, 292, 336, 339, 295, 292, 311, 318, 311, + 318, 318, 294, 303, 294, 295, 295, 294, 294, 295, + 295, 318, 314, 310, 63, 310, 295, 294, 39, 329, + 330, 328, 294, 310, 370, 301, 383, 295, 136, 395, + 39, 46, 48, 49, 50, 87, 88, 89, 133, 134, + 135, 137, 140, 295, 250, 251, 252, 318, 225, 349, + 295, 323, 323, 323, 323, 323, 323, 318, 318, 295, + 25, 26, 27, 28, 29, 294, 331, 242, 234, 246, + 294, 227, 247, 22, 331, 331, 2, 21, 22, 24, + 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, + 37, 38, 229, 230, 232, 233, 234, 236, 237, 240, + 241, 243, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 304, 324, 298, 304, + 295, 343, 311, 297, 346, 28, 318, 326, 347, 348, + 382, 396, 290, 297, 376, 289, 289, 294, 347, 318, + 301, 336, 336, 333, 365, 294, 298, 294, 298, 26, + 27, 28, 29, 294, 298, 294, 298, 294, 298, 294, + 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, + 298, 294, 298, 294, 298, 294, 298, 294, 298, 104, + 109, 377, 446, 342, 311, 295, 295, 295, 295, 295, + 336, 196, 405, 310, 339, 318, 318, 292, 339, 312, + 290, 169, 170, 171, 172, 290, 431, 443, 444, 446, + 461, 172, 174, 175, 290, 431, 443, 444, 446, 462, + 290, 136, 299, 299, 383, 346, 383, 295, 295, 310, + 295, 336, 315, 315, 295, 349, 338, 62, 62, 378, + 295, 318, 318, 294, 330, 383, 368, 369, 383, 292, + 379, 310, 347, 295, 294, 303, 303, 299, 299, 299, + 299, 294, 312, 8, 292, 8, 249, 347, 298, 298, + 25, 26, 27, 28, 29, 270, 292, 298, 305, 291, + 299, 318, 290, 22, 23, 24, 26, 27, 28, 29, + 31, 32, 35, 36, 37, 38, 44, 347, 350, 352, + 294, 294, 289, 374, 371, 299, 295, 295, 294, 294, + 326, 318, 318, 318, 294, 298, 294, 298, 294, 298, + 294, 298, 318, 318, 318, 318, 318, 318, 335, 318, + 318, 334, 318, 334, 335, 318, 318, 318, 318, 318, + 318, 318, 335, 318, 351, 318, 8, 44, 318, 44, + 51, 382, 318, 42, 91, 110, 364, 372, 295, 401, + 295, 310, 299, 299, 383, 383, 255, 387, 387, 387, + 387, 387, 387, 387, 311, 292, 19, 295, 311, 311, + 318, 303, 295, 318, 310, 295, 292, 380, 379, 395, + 318, 138, 139, 138, 139, 345, 381, 318, 297, 292, + 318, 318, 347, 299, 318, 291, 299, 26, 27, 28, + 29, 318, 26, 27, 28, 318, 374, 290, 290, 301, + 336, 336, 295, 299, 295, 299, 318, 318, 318, 318, + 318, 318, 335, 318, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 295, 299, 295, 295, 299, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 295, + 299, 295, 8, 295, 299, 51, 382, 298, 310, 294, + 292, 19, 316, 383, 312, 378, 295, 379, 383, 295, + 295, 295, 294, 8, 318, 347, 299, 299, 299, 318, + 295, 303, 303, 303, 295, 290, 295, 295, 294, 294, + 295, 299, 295, 299, 295, 299, 295, 299, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 295, 294, 8, 299, 297, 336, 383, 312, 339, 300, + 332, 333, 303, 336, 295, 292, 295, 344, 299, 318, + 318, 318, 360, 357, 294, 294, 294, 294, 356, 357, + 358, 359, 354, 355, 356, 357, 358, 359, 363, 361, + 362, 351, 295, 332, 383, 294, 378, 295, 347, 295, + 295, 295, 295, 326, 295, 318, 356, 357, 358, 359, + 295, 318, 295, 295, 318, 295, 335, 295, 318, 334, + 295, 334, 335, 295, 295, 295, 295, 295, 351, 8, + 44, 295, 44, 51, 295, 382, 346, 294, 19, 336, + 392, 292, 295, 295, 295, 295, 8, 336, 312, 295, + 39, 54, 70, 79, 93, 94, 95, 96, 125, 126, + 127, 128, 129, 130, 131, 289, 347, 295, 294, 294, + 295, 255, 336, 318, 103, 295, 295, 316, 339, 383, + 19, 312, 332, 294, 336, 295, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 544 +#define YYMAXTOKEN 543 #if YYDEBUG static const char *yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -4760,7 +4621,7 @@ static const char *yyname[] = { "PRESERVESIG_","RUNTIME_","INTERNALCALL_","_IMPORT","NOMANGLE_","LASTERR_", "WINAPI_","AS_","BESTFIT_","ON_","OFF_","CHARMAPERROR_","INSTR_NONE", "INSTR_VAR","INSTR_I","INSTR_I8","INSTR_R","INSTR_BRTARGET","INSTR_METHOD", -"INSTR_FIELD","INSTR_TVAR","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", +"INSTR_FIELD","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", "INSTR_SWITCH","_CLASS","_NAMESPACE","_METHOD","_FIELD","_DATA","_THIS","_BASE", "_NESTER","_EMITBYTE","_TRY","_MAXSTACK","_LOCALS","_ENTRYPOINT","_ZEROINIT", "_EVENT","_ADDON","_REMOVEON","_FIRE","_OTHER","_PROPERTY","_SET","_GET", @@ -5282,7 +5143,6 @@ static const char *yyrule[] = { "methodSpec : METHOD_", "instr_none : INSTR_NONE", "instr_var : INSTR_VAR", -"instr_tvar : INSTR_TVAR", "instr_i : INSTR_I", "instr_i8 : INSTR_I8", "instr_r : INSTR_R", @@ -5298,7 +5158,6 @@ static const char *yyrule[] = { "instr : instr_none", "instr : instr_var int32", "instr : instr_var id", -"instr : instr_tvar ownerType", "instr : instr_i int32", "instr : instr_i8 int64", "instr : instr_r float64", @@ -5963,11 +5822,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2157 "asmparse.y" +#line 2148 "asmparse.y" #include "grammar_after.cpp" -#line 5971 "asmparse.cpp.tab.c" +#line 5830 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6420,13 +6279,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6424 "asmparse.cpp.tab.c" +#line 6283 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6430 "asmparse.cpp.tab.c" +#line 6289 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6435,31 +6294,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6439 "asmparse.cpp.tab.c" +#line 6298 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6445 "asmparse.cpp.tab.c" +#line 6304 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6451 "asmparse.cpp.tab.c" +#line 6310 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6457 "asmparse.cpp.tab.c" +#line 6316 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6463 "asmparse.cpp.tab.c" +#line 6322 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6474,13 +6333,13 @@ case 19: #pragma warning(pop) #endif } -#line 6478 "asmparse.cpp.tab.c" +#line 6337 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6484 "asmparse.cpp.tab.c" +#line 6343 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6488,7 +6347,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6492 "asmparse.cpp.tab.c" +#line 6351 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6496,44 +6355,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6500 "asmparse.cpp.tab.c" +#line 6359 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6506 "asmparse.cpp.tab.c" +#line 6365 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6512 "asmparse.cpp.tab.c" +#line 6371 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6518 "asmparse.cpp.tab.c" +#line 6377 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6524 "asmparse.cpp.tab.c" +#line 6383 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6530 "asmparse.cpp.tab.c" +#line 6389 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6537 "asmparse.cpp.tab.c" +#line 6396 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6541,121 +6400,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6545 "asmparse.cpp.tab.c" +#line 6404 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6551 "asmparse.cpp.tab.c" +#line 6410 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6557 "asmparse.cpp.tab.c" +#line 6416 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6563 "asmparse.cpp.tab.c" +#line 6422 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6569 "asmparse.cpp.tab.c" +#line 6428 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6575 "asmparse.cpp.tab.c" +#line 6434 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6581 "asmparse.cpp.tab.c" +#line 6440 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6587 "asmparse.cpp.tab.c" +#line 6446 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6593 "asmparse.cpp.tab.c" +#line 6452 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6599 "asmparse.cpp.tab.c" +#line 6458 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6605 "asmparse.cpp.tab.c" +#line 6464 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6611 "asmparse.cpp.tab.c" +#line 6470 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6617 "asmparse.cpp.tab.c" +#line 6476 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6623 "asmparse.cpp.tab.c" +#line 6482 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6629 "asmparse.cpp.tab.c" +#line 6488 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6635 "asmparse.cpp.tab.c" +#line 6494 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6641 "asmparse.cpp.tab.c" +#line 6500 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6647 "asmparse.cpp.tab.c" +#line 6506 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6653 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6659 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6663,7 +6522,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6667 "asmparse.cpp.tab.c" +#line 6526 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6671,13 +6530,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6675 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6681 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6686,73 +6545,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6690 "asmparse.cpp.tab.c" +#line 6549 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6696 "asmparse.cpp.tab.c" +#line 6555 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6702 "asmparse.cpp.tab.c" +#line 6561 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6708 "asmparse.cpp.tab.c" +#line 6567 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6714 "asmparse.cpp.tab.c" +#line 6573 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6720 "asmparse.cpp.tab.c" +#line 6579 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6726 "asmparse.cpp.tab.c" +#line 6585 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6732 "asmparse.cpp.tab.c" +#line 6591 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6738 "asmparse.cpp.tab.c" +#line 6597 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6744 "asmparse.cpp.tab.c" +#line 6603 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6750 "asmparse.cpp.tab.c" +#line 6609 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6756 "asmparse.cpp.tab.c" +#line 6615 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6760,25 +6619,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6764 "asmparse.cpp.tab.c" +#line 6623 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6770 "asmparse.cpp.tab.c" +#line 6629 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6776 "asmparse.cpp.tab.c" +#line 6635 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6782 "asmparse.cpp.tab.c" +#line 6641 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6787,32 +6646,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6791 "asmparse.cpp.tab.c" +#line 6650 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6797 "asmparse.cpp.tab.c" +#line 6656 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6804 "asmparse.cpp.tab.c" +#line 6663 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6810 "asmparse.cpp.tab.c" +#line 6669 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6816 "asmparse.cpp.tab.c" +#line 6675 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6822,25 +6681,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6826 "asmparse.cpp.tab.c" +#line 6685 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6832 "asmparse.cpp.tab.c" +#line 6691 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6838 "asmparse.cpp.tab.c" +#line 6697 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6844 "asmparse.cpp.tab.c" +#line 6703 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6849,13 +6708,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6853 "asmparse.cpp.tab.c" +#line 6712 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6859 "asmparse.cpp.tab.c" +#line 6718 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6866,57 +6725,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6870 "asmparse.cpp.tab.c" +#line 6729 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6876 "asmparse.cpp.tab.c" +#line 6735 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6882 "asmparse.cpp.tab.c" +#line 6741 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6888 "asmparse.cpp.tab.c" +#line 6747 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6895 "asmparse.cpp.tab.c" +#line 6754 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6902 "asmparse.cpp.tab.c" +#line 6761 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6908 "asmparse.cpp.tab.c" +#line 6767 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6914 "asmparse.cpp.tab.c" +#line 6773 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6920 "asmparse.cpp.tab.c" +#line 6779 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6925,74 +6784,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6929 "asmparse.cpp.tab.c" +#line 6788 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6936 "asmparse.cpp.tab.c" +#line 6795 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6942 "asmparse.cpp.tab.c" +#line 6801 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6948 "asmparse.cpp.tab.c" +#line 6807 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6954 "asmparse.cpp.tab.c" +#line 6813 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6960 "asmparse.cpp.tab.c" +#line 6819 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6966 "asmparse.cpp.tab.c" +#line 6825 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6972 "asmparse.cpp.tab.c" +#line 6831 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6978 "asmparse.cpp.tab.c" +#line 6837 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6984 "asmparse.cpp.tab.c" +#line 6843 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6990 "asmparse.cpp.tab.c" +#line 6849 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6996 "asmparse.cpp.tab.c" +#line 6855 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -7002,355 +6861,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 7006 "asmparse.cpp.tab.c" +#line 6865 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 7012 "asmparse.cpp.tab.c" +#line 6871 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 7018 "asmparse.cpp.tab.c" +#line 6877 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 7024 "asmparse.cpp.tab.c" +#line 6883 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 7030 "asmparse.cpp.tab.c" +#line 6889 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 7036 "asmparse.cpp.tab.c" +#line 6895 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 7042 "asmparse.cpp.tab.c" +#line 6901 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 7048 "asmparse.cpp.tab.c" +#line 6907 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 7054 "asmparse.cpp.tab.c" +#line 6913 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 7060 "asmparse.cpp.tab.c" +#line 6919 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 7066 "asmparse.cpp.tab.c" +#line 6925 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 7072 "asmparse.cpp.tab.c" +#line 6931 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 7078 "asmparse.cpp.tab.c" +#line 6937 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 7084 "asmparse.cpp.tab.c" +#line 6943 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 7090 "asmparse.cpp.tab.c" +#line 6949 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 7096 "asmparse.cpp.tab.c" +#line 6955 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 7102 "asmparse.cpp.tab.c" +#line 6961 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 7108 "asmparse.cpp.tab.c" +#line 6967 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 7114 "asmparse.cpp.tab.c" +#line 6973 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 7120 "asmparse.cpp.tab.c" +#line 6979 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 7126 "asmparse.cpp.tab.c" +#line 6985 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 7132 "asmparse.cpp.tab.c" +#line 6991 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 7138 "asmparse.cpp.tab.c" +#line 6997 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 7144 "asmparse.cpp.tab.c" +#line 7003 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 7150 "asmparse.cpp.tab.c" +#line 7009 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 7156 "asmparse.cpp.tab.c" +#line 7015 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 7162 "asmparse.cpp.tab.c" +#line 7021 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 7168 "asmparse.cpp.tab.c" +#line 7027 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 7174 "asmparse.cpp.tab.c" +#line 7033 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 7180 "asmparse.cpp.tab.c" +#line 7039 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7186 "asmparse.cpp.tab.c" +#line 7045 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7192 "asmparse.cpp.tab.c" +#line 7051 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7198 "asmparse.cpp.tab.c" +#line 7057 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7204 "asmparse.cpp.tab.c" +#line 7063 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7210 "asmparse.cpp.tab.c" +#line 7069 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7216 "asmparse.cpp.tab.c" +#line 7075 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7222 "asmparse.cpp.tab.c" +#line 7081 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7228 "asmparse.cpp.tab.c" +#line 7087 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7234 "asmparse.cpp.tab.c" +#line 7093 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7240 "asmparse.cpp.tab.c" +#line 7099 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7246 "asmparse.cpp.tab.c" +#line 7105 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7252 "asmparse.cpp.tab.c" +#line 7111 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7258 "asmparse.cpp.tab.c" +#line 7117 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7264 "asmparse.cpp.tab.c" +#line 7123 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7270 "asmparse.cpp.tab.c" +#line 7129 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7276 "asmparse.cpp.tab.c" +#line 7135 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7282 "asmparse.cpp.tab.c" +#line 7141 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7288 "asmparse.cpp.tab.c" +#line 7147 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7294 "asmparse.cpp.tab.c" +#line 7153 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7300 "asmparse.cpp.tab.c" +#line 7159 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7306 "asmparse.cpp.tab.c" +#line 7165 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7312 "asmparse.cpp.tab.c" +#line 7171 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7318 "asmparse.cpp.tab.c" +#line 7177 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7324 "asmparse.cpp.tab.c" +#line 7183 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7330 "asmparse.cpp.tab.c" +#line 7189 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7336 "asmparse.cpp.tab.c" +#line 7195 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7342 "asmparse.cpp.tab.c" +#line 7201 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7348 "asmparse.cpp.tab.c" +#line 7207 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7354 "asmparse.cpp.tab.c" +#line 7213 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7359,43 +7218,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7363 "asmparse.cpp.tab.c" +#line 7222 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7369 "asmparse.cpp.tab.c" +#line 7228 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7375 "asmparse.cpp.tab.c" +#line 7234 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7381 "asmparse.cpp.tab.c" +#line 7240 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7387 "asmparse.cpp.tab.c" +#line 7246 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7393 "asmparse.cpp.tab.c" +#line 7252 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7399 "asmparse.cpp.tab.c" +#line 7258 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7405,7 +7264,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7409 "asmparse.cpp.tab.c" +#line 7268 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7418,7 +7277,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7422 "asmparse.cpp.tab.c" +#line 7281 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7428,7 +7287,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7432 "asmparse.cpp.tab.c" +#line 7291 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7439,19 +7298,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7443 "asmparse.cpp.tab.c" +#line 7302 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7449 "asmparse.cpp.tab.c" +#line 7308 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7455 "asmparse.cpp.tab.c" +#line 7314 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7460,146 +7319,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7464 "asmparse.cpp.tab.c" +#line 7323 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7471 "asmparse.cpp.tab.c" +#line 7330 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7477 "asmparse.cpp.tab.c" +#line 7336 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7483 "asmparse.cpp.tab.c" +#line 7342 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7489 "asmparse.cpp.tab.c" +#line 7348 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7495 "asmparse.cpp.tab.c" +#line 7354 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7501 "asmparse.cpp.tab.c" +#line 7360 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7507 "asmparse.cpp.tab.c" +#line 7366 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7513 "asmparse.cpp.tab.c" +#line 7372 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7519 "asmparse.cpp.tab.c" +#line 7378 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7525 "asmparse.cpp.tab.c" +#line 7384 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7531 "asmparse.cpp.tab.c" +#line 7390 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7537 "asmparse.cpp.tab.c" +#line 7396 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7543 "asmparse.cpp.tab.c" +#line 7402 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7549 "asmparse.cpp.tab.c" +#line 7408 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7555 "asmparse.cpp.tab.c" +#line 7414 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7561 "asmparse.cpp.tab.c" +#line 7420 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7567 "asmparse.cpp.tab.c" +#line 7426 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7573 "asmparse.cpp.tab.c" +#line 7432 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7579 "asmparse.cpp.tab.c" +#line 7438 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7585 "asmparse.cpp.tab.c" +#line 7444 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7591 "asmparse.cpp.tab.c" +#line 7450 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7597 "asmparse.cpp.tab.c" +#line 7456 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7603 "asmparse.cpp.tab.c" +#line 7462 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7620,7 +7479,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7624 "asmparse.cpp.tab.c" +#line 7483 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7630,7 +7489,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7634 "asmparse.cpp.tab.c" +#line 7493 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7650,7 +7509,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7654 "asmparse.cpp.tab.c" +#line 7513 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7659,103 +7518,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7663 "asmparse.cpp.tab.c" +#line 7522 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7669 "asmparse.cpp.tab.c" +#line 7528 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7675 "asmparse.cpp.tab.c" +#line 7534 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7681 "asmparse.cpp.tab.c" +#line 7540 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7687 "asmparse.cpp.tab.c" +#line 7546 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7693 "asmparse.cpp.tab.c" +#line 7552 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7699 "asmparse.cpp.tab.c" +#line 7558 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7705 "asmparse.cpp.tab.c" +#line 7564 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7711 "asmparse.cpp.tab.c" +#line 7570 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7717 "asmparse.cpp.tab.c" +#line 7576 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7723 "asmparse.cpp.tab.c" +#line 7582 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7729 "asmparse.cpp.tab.c" +#line 7588 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7735 "asmparse.cpp.tab.c" +#line 7594 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7741 "asmparse.cpp.tab.c" +#line 7600 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7747 "asmparse.cpp.tab.c" +#line 7606 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7753 "asmparse.cpp.tab.c" +#line 7612 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7759 "asmparse.cpp.tab.c" +#line 7618 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7765,7 +7624,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7769 "asmparse.cpp.tab.c" +#line 7628 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7773,7 +7632,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7777 "asmparse.cpp.tab.c" +#line 7636 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7781,82 +7640,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7785 "asmparse.cpp.tab.c" +#line 7644 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7792 "asmparse.cpp.tab.c" +#line 7651 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7799 "asmparse.cpp.tab.c" +#line 7658 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7806 "asmparse.cpp.tab.c" +#line 7665 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7812 "asmparse.cpp.tab.c" +#line 7671 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7818 "asmparse.cpp.tab.c" +#line 7677 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7824 "asmparse.cpp.tab.c" +#line 7683 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7830 "asmparse.cpp.tab.c" +#line 7689 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7836 "asmparse.cpp.tab.c" +#line 7695 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7842 "asmparse.cpp.tab.c" +#line 7701 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7848 "asmparse.cpp.tab.c" +#line 7707 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7854 "asmparse.cpp.tab.c" +#line 7713 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7860 "asmparse.cpp.tab.c" +#line 7719 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7864,43 +7723,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7868 "asmparse.cpp.tab.c" +#line 7727 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7874 "asmparse.cpp.tab.c" +#line 7733 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7880 "asmparse.cpp.tab.c" +#line 7739 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7886 "asmparse.cpp.tab.c" +#line 7745 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7892 "asmparse.cpp.tab.c" +#line 7751 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7898 "asmparse.cpp.tab.c" +#line 7757 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7904 "asmparse.cpp.tab.c" +#line 7763 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7909,37 +7768,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7913 "asmparse.cpp.tab.c" +#line 7772 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7919 "asmparse.cpp.tab.c" +#line 7778 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7925 "asmparse.cpp.tab.c" +#line 7784 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7931 "asmparse.cpp.tab.c" +#line 7790 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7937 "asmparse.cpp.tab.c" +#line 7796 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7943 "asmparse.cpp.tab.c" +#line 7802 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7957,420 +7816,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7961 "asmparse.cpp.tab.c" +#line 7820 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7967 "asmparse.cpp.tab.c" +#line 7826 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7973 "asmparse.cpp.tab.c" +#line 7832 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7979 "asmparse.cpp.tab.c" +#line 7838 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7985 "asmparse.cpp.tab.c" +#line 7844 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7991 "asmparse.cpp.tab.c" +#line 7850 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7997 "asmparse.cpp.tab.c" +#line 7856 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 8003 "asmparse.cpp.tab.c" +#line 7862 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 8009 "asmparse.cpp.tab.c" +#line 7868 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 8015 "asmparse.cpp.tab.c" +#line 7874 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 8021 "asmparse.cpp.tab.c" +#line 7880 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 8027 "asmparse.cpp.tab.c" +#line 7886 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 8033 "asmparse.cpp.tab.c" +#line 7892 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 8039 "asmparse.cpp.tab.c" +#line 7898 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 8045 "asmparse.cpp.tab.c" +#line 7904 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 8051 "asmparse.cpp.tab.c" +#line 7910 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 8057 "asmparse.cpp.tab.c" +#line 7916 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 8063 "asmparse.cpp.tab.c" +#line 7922 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 8069 "asmparse.cpp.tab.c" +#line 7928 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 8075 "asmparse.cpp.tab.c" +#line 7934 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 8081 "asmparse.cpp.tab.c" +#line 7940 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 8088 "asmparse.cpp.tab.c" +#line 7947 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 8095 "asmparse.cpp.tab.c" +#line 7954 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 8102 "asmparse.cpp.tab.c" +#line 7961 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 8108 "asmparse.cpp.tab.c" +#line 7967 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 8114 "asmparse.cpp.tab.c" +#line 7973 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 8120 "asmparse.cpp.tab.c" +#line 7979 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 8126 "asmparse.cpp.tab.c" +#line 7985 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 8132 "asmparse.cpp.tab.c" +#line 7991 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 8138 "asmparse.cpp.tab.c" +#line 7997 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 8144 "asmparse.cpp.tab.c" +#line 8003 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 8150 "asmparse.cpp.tab.c" +#line 8009 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 8156 "asmparse.cpp.tab.c" +#line 8015 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 8162 "asmparse.cpp.tab.c" +#line 8021 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 8168 "asmparse.cpp.tab.c" +#line 8027 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 8174 "asmparse.cpp.tab.c" +#line 8033 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 8180 "asmparse.cpp.tab.c" +#line 8039 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 8186 "asmparse.cpp.tab.c" +#line 8045 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 8192 "asmparse.cpp.tab.c" +#line 8051 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8198 "asmparse.cpp.tab.c" +#line 8057 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8204 "asmparse.cpp.tab.c" +#line 8063 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8210 "asmparse.cpp.tab.c" +#line 8069 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8216 "asmparse.cpp.tab.c" +#line 8075 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8222 "asmparse.cpp.tab.c" +#line 8081 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8228 "asmparse.cpp.tab.c" +#line 8087 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8234 "asmparse.cpp.tab.c" +#line 8093 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8240 "asmparse.cpp.tab.c" +#line 8099 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8246 "asmparse.cpp.tab.c" +#line 8105 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8252 "asmparse.cpp.tab.c" +#line 8111 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8258 "asmparse.cpp.tab.c" +#line 8117 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8264 "asmparse.cpp.tab.c" +#line 8123 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8270 "asmparse.cpp.tab.c" +#line 8129 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8276 "asmparse.cpp.tab.c" +#line 8135 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8282 "asmparse.cpp.tab.c" +#line 8141 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8288 "asmparse.cpp.tab.c" +#line 8147 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8294 "asmparse.cpp.tab.c" +#line 8153 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8300 "asmparse.cpp.tab.c" +#line 8159 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8306 "asmparse.cpp.tab.c" +#line 8165 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8312 "asmparse.cpp.tab.c" +#line 8171 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8318 "asmparse.cpp.tab.c" +#line 8177 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8324 "asmparse.cpp.tab.c" +#line 8183 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8330 "asmparse.cpp.tab.c" +#line 8189 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8336 "asmparse.cpp.tab.c" +#line 8195 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8342 "asmparse.cpp.tab.c" +#line 8201 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8349 "asmparse.cpp.tab.c" +#line 8208 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8355 "asmparse.cpp.tab.c" +#line 8214 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8361 "asmparse.cpp.tab.c" +#line 8220 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8367 "asmparse.cpp.tab.c" +#line 8226 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8374 "asmparse.cpp.tab.c" +#line 8233 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8378,25 +8237,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8382 "asmparse.cpp.tab.c" +#line 8241 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8388 "asmparse.cpp.tab.c" +#line 8247 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8394 "asmparse.cpp.tab.c" +#line 8253 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8400 "asmparse.cpp.tab.c" +#line 8259 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8411,7 +8270,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8415 "asmparse.cpp.tab.c" +#line 8274 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8426,20 +8285,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8430 "asmparse.cpp.tab.c" +#line 8289 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8437 "asmparse.cpp.tab.c" +#line 8296 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8443 "asmparse.cpp.tab.c" +#line 8302 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8450,7 +8309,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8454 "asmparse.cpp.tab.c" +#line 8313 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8460,7 +8319,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8464 "asmparse.cpp.tab.c" +#line 8323 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8471,19 +8330,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8475 "asmparse.cpp.tab.c" +#line 8334 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8481 "asmparse.cpp.tab.c" +#line 8340 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8487 "asmparse.cpp.tab.c" +#line 8346 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8506,96 +8365,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8510 "asmparse.cpp.tab.c" +#line 8369 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8516 "asmparse.cpp.tab.c" +#line 8375 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8522 "asmparse.cpp.tab.c" +#line 8381 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8528 "asmparse.cpp.tab.c" +#line 8387 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8534 "asmparse.cpp.tab.c" +#line 8393 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8541 "asmparse.cpp.tab.c" +#line 8400 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8548 "asmparse.cpp.tab.c" +#line 8407 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8554 "asmparse.cpp.tab.c" +#line 8413 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8560 "asmparse.cpp.tab.c" +#line 8419 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8566 "asmparse.cpp.tab.c" +#line 8425 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8572 "asmparse.cpp.tab.c" +#line 8431 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8578 "asmparse.cpp.tab.c" +#line 8437 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8585 "asmparse.cpp.tab.c" +#line 8444 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8592 "asmparse.cpp.tab.c" +#line 8451 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8599 "asmparse.cpp.tab.c" +#line 8458 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8603,70 +8462,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8607 "asmparse.cpp.tab.c" +#line 8466 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8614 "asmparse.cpp.tab.c" +#line 8473 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8621 "asmparse.cpp.tab.c" +#line 8480 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8627 "asmparse.cpp.tab.c" +#line 8486 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8633 "asmparse.cpp.tab.c" +#line 8492 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8640 "asmparse.cpp.tab.c" +#line 8499 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8646 "asmparse.cpp.tab.c" +#line 8505 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8652 "asmparse.cpp.tab.c" +#line 8511 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8658 "asmparse.cpp.tab.c" +#line 8517 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8664 "asmparse.cpp.tab.c" +#line 8523 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8670 "asmparse.cpp.tab.c" +#line 8529 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8674,25 +8533,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8678 "asmparse.cpp.tab.c" +#line 8537 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8684 "asmparse.cpp.tab.c" +#line 8543 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8690 "asmparse.cpp.tab.c" +#line 8549 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8696 "asmparse.cpp.tab.c" +#line 8555 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8703,7 +8562,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8707 "asmparse.cpp.tab.c" +#line 8566 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8714,7 +8573,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8718 "asmparse.cpp.tab.c" +#line 8577 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8725,7 +8584,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8729 "asmparse.cpp.tab.c" +#line 8588 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8736,7 +8595,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8740 "asmparse.cpp.tab.c" +#line 8599 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8748,7 +8607,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8752 "asmparse.cpp.tab.c" +#line 8611 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8760,43 +8619,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8764 "asmparse.cpp.tab.c" +#line 8623 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8770 "asmparse.cpp.tab.c" +#line 8629 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8776 "asmparse.cpp.tab.c" +#line 8635 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8782 "asmparse.cpp.tab.c" +#line 8641 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8788 "asmparse.cpp.tab.c" +#line 8647 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8794 "asmparse.cpp.tab.c" +#line 8653 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8800 "asmparse.cpp.tab.c" +#line 8659 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8804,227 +8663,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8808 "asmparse.cpp.tab.c" +#line 8667 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8815 "asmparse.cpp.tab.c" +#line 8674 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8822 "asmparse.cpp.tab.c" +#line 8681 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8829 "asmparse.cpp.tab.c" +#line 8688 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8836 "asmparse.cpp.tab.c" +#line 8695 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8843 "asmparse.cpp.tab.c" +#line 8702 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8850 "asmparse.cpp.tab.c" +#line 8709 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8857 "asmparse.cpp.tab.c" +#line 8716 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8864 "asmparse.cpp.tab.c" +#line 8723 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8871 "asmparse.cpp.tab.c" +#line 8730 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8878 "asmparse.cpp.tab.c" +#line 8737 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8885 "asmparse.cpp.tab.c" +#line 8744 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8892 "asmparse.cpp.tab.c" +#line 8751 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8899 "asmparse.cpp.tab.c" +#line 8758 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8906 "asmparse.cpp.tab.c" +#line 8765 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8913 "asmparse.cpp.tab.c" +#line 8772 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8920 "asmparse.cpp.tab.c" +#line 8779 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8927 "asmparse.cpp.tab.c" +#line 8786 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8934 "asmparse.cpp.tab.c" +#line 8793 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8940 "asmparse.cpp.tab.c" +#line 8799 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8946 "asmparse.cpp.tab.c" +#line 8805 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8952 "asmparse.cpp.tab.c" +#line 8811 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8958 "asmparse.cpp.tab.c" +#line 8817 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8964 "asmparse.cpp.tab.c" +#line 8823 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8970 "asmparse.cpp.tab.c" +#line 8829 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8976 "asmparse.cpp.tab.c" +#line 8835 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8983 "asmparse.cpp.tab.c" +#line 8842 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8989 "asmparse.cpp.tab.c" +#line 8848 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8995 "asmparse.cpp.tab.c" +#line 8854 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 9002 "asmparse.cpp.tab.c" +#line 8861 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 9009 "asmparse.cpp.tab.c" +#line 8868 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 9016 "asmparse.cpp.tab.c" +#line 8875 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 9022 "asmparse.cpp.tab.c" +#line 8881 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 9028 "asmparse.cpp.tab.c" +#line 8887 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -9032,7 +8891,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9036 "asmparse.cpp.tab.c" +#line 8895 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -9040,7 +8899,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9044 "asmparse.cpp.tab.c" +#line 8903 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -9048,7 +8907,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9052 "asmparse.cpp.tab.c" +#line 8911 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -9056,7 +8915,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9060 "asmparse.cpp.tab.c" +#line 8919 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -9064,7 +8923,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9068 "asmparse.cpp.tab.c" +#line 8927 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -9072,7 +8931,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9076 "asmparse.cpp.tab.c" +#line 8935 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -9080,7 +8939,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9084 "asmparse.cpp.tab.c" +#line 8943 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -9088,7 +8947,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9092 "asmparse.cpp.tab.c" +#line 8951 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -9096,7 +8955,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9100 "asmparse.cpp.tab.c" +#line 8959 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -9104,7 +8963,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9108 "asmparse.cpp.tab.c" +#line 8967 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -9112,7 +8971,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9116 "asmparse.cpp.tab.c" +#line 8975 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -9120,7 +8979,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9124 "asmparse.cpp.tab.c" +#line 8983 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -9128,7 +8987,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9132 "asmparse.cpp.tab.c" +#line 8991 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -9136,7 +8995,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9140 "asmparse.cpp.tab.c" +#line 8999 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -9144,7 +9003,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9148 "asmparse.cpp.tab.c" +#line 9007 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -9152,7 +9011,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9156 "asmparse.cpp.tab.c" +#line 9015 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -9160,7 +9019,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9164 "asmparse.cpp.tab.c" +#line 9023 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -9168,7 +9027,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9172 "asmparse.cpp.tab.c" +#line 9031 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -9176,166 +9035,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9180 "asmparse.cpp.tab.c" +#line 9039 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9186 "asmparse.cpp.tab.c" +#line 9045 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 9193 "asmparse.cpp.tab.c" +#line 9052 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9200 "asmparse.cpp.tab.c" +#line 9059 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9206 "asmparse.cpp.tab.c" +#line 9065 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9213 "asmparse.cpp.tab.c" +#line 9072 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9220 "asmparse.cpp.tab.c" +#line 9079 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9226 "asmparse.cpp.tab.c" +#line 9085 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9233 "asmparse.cpp.tab.c" +#line 9092 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9239 "asmparse.cpp.tab.c" +#line 9098 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9245 "asmparse.cpp.tab.c" +#line 9104 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9251 "asmparse.cpp.tab.c" +#line 9110 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9257 "asmparse.cpp.tab.c" +#line 9116 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9263 "asmparse.cpp.tab.c" +#line 9122 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9269 "asmparse.cpp.tab.c" +#line 9128 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9275 "asmparse.cpp.tab.c" +#line 9134 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9282 "asmparse.cpp.tab.c" +#line 9141 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9288 "asmparse.cpp.tab.c" +#line 9147 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9294 "asmparse.cpp.tab.c" +#line 9153 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9301 "asmparse.cpp.tab.c" +#line 9160 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9307 "asmparse.cpp.tab.c" +#line 9166 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9313 "asmparse.cpp.tab.c" +#line 9172 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9320 "asmparse.cpp.tab.c" +#line 9179 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9327 "asmparse.cpp.tab.c" +#line 9186 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9333 "asmparse.cpp.tab.c" +#line 9192 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9339 "asmparse.cpp.tab.c" +#line 9198 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9344,158 +9203,142 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9348 "asmparse.cpp.tab.c" +#line 9207 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9354 "asmparse.cpp.tab.c" +#line 9213 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9360 "asmparse.cpp.tab.c" +#line 9219 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9366 "asmparse.cpp.tab.c" +#line 9225 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9372 "asmparse.cpp.tab.c" +#line 9231 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9378 "asmparse.cpp.tab.c" +#line 9237 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9384 "asmparse.cpp.tab.c" +#line 9243 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) #line 1346 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9390 "asmparse.cpp.tab.c" -break; -case 503: - if (!yytrial) -#line 1349 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); if((!PASM->OnErrGo)&& ((yyvsp[0].opcode == CEE_NEWOBJ)|| (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9401 "asmparse.cpp.tab.c" +#line 9254 "asmparse.cpp.tab.c" +break; +case 503: + if (!yytrial) +#line 1354 "asmparse.y" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 9260 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9407 "asmparse.cpp.tab.c" +#line 9266 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9413 "asmparse.cpp.tab.c" +#line 9272 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9419 "asmparse.cpp.tab.c" +#line 9278 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9425 "asmparse.cpp.tab.c" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } +#line 9284 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9431 "asmparse.cpp.tab.c" +{ yyval.instr = SetupInstr(yyvsp[0].opcode); } +#line 9290 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9437 "asmparse.cpp.tab.c" -break; -case 510: - if (!yytrial) -#line 1375 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9443 "asmparse.cpp.tab.c" +#line 9296 "asmparse.cpp.tab.c" break; -case 511: +case 510: if (!yytrial) -#line 1379 "asmparse.y" +#line 1376 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9449 "asmparse.cpp.tab.c" +#line 9302 "asmparse.cpp.tab.c" break; -case 512: +case 511: if (!yytrial) -#line 1380 "asmparse.y" +#line 1377 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9455 "asmparse.cpp.tab.c" +#line 9308 "asmparse.cpp.tab.c" break; -case 513: +case 512: if (!yytrial) -#line 1381 "asmparse.y" +#line 1378 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9461 "asmparse.cpp.tab.c" -break; -case 514: - if (!yytrial) -#line 1383 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); - PASM->m_tkCurrentCVOwner = yyvsp[0].token; - PASM->m_pCustomDescrList = NULL; - iOpcodeLen = 0; - } -#line 9471 "asmparse.cpp.tab.c" +#line 9314 "asmparse.cpp.tab.c" break; -case 515: +case 513: if (!yytrial) -#line 1388 "asmparse.y" +#line 1379 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9477 "asmparse.cpp.tab.c" +#line 9320 "asmparse.cpp.tab.c" break; -case 516: +case 514: if (!yytrial) -#line 1389 "asmparse.y" +#line 1380 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9483 "asmparse.cpp.tab.c" +#line 9326 "asmparse.cpp.tab.c" break; -case 517: +case 515: if (!yytrial) -#line 1390 "asmparse.y" +#line 1381 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9489 "asmparse.cpp.tab.c" +#line 9332 "asmparse.cpp.tab.c" break; -case 518: +case 516: if (!yytrial) -#line 1391 "asmparse.y" +#line 1382 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9495 "asmparse.cpp.tab.c" +#line 9338 "asmparse.cpp.tab.c" break; -case 519: +case 517: if (!yytrial) -#line 1392 "asmparse.y" +#line 1383 "asmparse.y" { unsigned L = yyvsp[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -9505,34 +9348,34 @@ case 519: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9509 "asmparse.cpp.tab.c" +#line 9352 "asmparse.cpp.tab.c" break; -case 520: +case 518: if (!yytrial) -#line 1401 "asmparse.y" +#line 1392 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9515 "asmparse.cpp.tab.c" +#line 9358 "asmparse.cpp.tab.c" break; -case 521: +case 519: if (!yytrial) -#line 1402 "asmparse.y" +#line 1393 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9521 "asmparse.cpp.tab.c" +#line 9364 "asmparse.cpp.tab.c" break; -case 522: +case 520: if (!yytrial) -#line 1404 "asmparse.y" +#line 1395 "asmparse.y" { PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9532 "asmparse.cpp.tab.c" +#line 9375 "asmparse.cpp.tab.c" break; -case 523: +case 521: if (!yytrial) -#line 1411 "asmparse.y" +#line 1402 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); @@ -9540,11 +9383,11 @@ case 523: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9544 "asmparse.cpp.tab.c" +#line 9387 "asmparse.cpp.tab.c" break; -case 524: +case 522: if (!yytrial) -#line 1419 "asmparse.y" +#line 1410 "asmparse.y" { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); @@ -9552,1200 +9395,1200 @@ case 524: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9556 "asmparse.cpp.tab.c" +#line 9399 "asmparse.cpp.tab.c" break; -case 525: +case 523: if (!yytrial) -#line 1426 "asmparse.y" +#line 1417 "asmparse.y" { mdToken mr = yyvsp[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9567 "asmparse.cpp.tab.c" +#line 9410 "asmparse.cpp.tab.c" break; -case 526: +case 524: if (!yytrial) -#line 1432 "asmparse.y" +#line 1423 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9578 "asmparse.cpp.tab.c" +#line 9421 "asmparse.cpp.tab.c" break; -case 527: +case 525: if (!yytrial) -#line 1438 "asmparse.y" +#line 1429 "asmparse.y" { mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); PASM->EmitInstrI(yyvsp[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9589 "asmparse.cpp.tab.c" +#line 9432 "asmparse.cpp.tab.c" break; -case 528: +case 526: if (!yytrial) -#line 1444 "asmparse.y" +#line 1435 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9598 "asmparse.cpp.tab.c" +#line 9441 "asmparse.cpp.tab.c" break; -case 529: +case 527: if (!yytrial) -#line 1448 "asmparse.y" +#line 1439 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9604 "asmparse.cpp.tab.c" +#line 9447 "asmparse.cpp.tab.c" break; -case 530: +case 528: if (!yytrial) -#line 1450 "asmparse.y" +#line 1441 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9610 "asmparse.cpp.tab.c" +#line 9453 "asmparse.cpp.tab.c" break; -case 531: +case 529: if (!yytrial) -#line 1452 "asmparse.y" +#line 1443 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9616 "asmparse.cpp.tab.c" +#line 9459 "asmparse.cpp.tab.c" break; -case 532: +case 530: if (!yytrial) -#line 1454 "asmparse.y" +#line 1445 "asmparse.y" { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9624 "asmparse.cpp.tab.c" +#line 9467 "asmparse.cpp.tab.c" break; -case 533: +case 531: if (!yytrial) -#line 1458 "asmparse.y" +#line 1449 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9634 "asmparse.cpp.tab.c" +#line 9477 "asmparse.cpp.tab.c" break; -case 534: +case 532: if (!yytrial) -#line 1463 "asmparse.y" +#line 1454 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9640 "asmparse.cpp.tab.c" +#line 9483 "asmparse.cpp.tab.c" break; -case 535: +case 533: if (!yytrial) -#line 1466 "asmparse.y" +#line 1457 "asmparse.y" { yyval.labels = 0; } -#line 9646 "asmparse.cpp.tab.c" +#line 9489 "asmparse.cpp.tab.c" break; -case 536: +case 534: if (!yytrial) -#line 1467 "asmparse.y" +#line 1458 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9652 "asmparse.cpp.tab.c" +#line 9495 "asmparse.cpp.tab.c" break; -case 537: +case 535: if (!yytrial) -#line 1468 "asmparse.y" +#line 1459 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9658 "asmparse.cpp.tab.c" +#line 9501 "asmparse.cpp.tab.c" break; -case 538: +case 536: if (!yytrial) -#line 1469 "asmparse.y" +#line 1460 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9664 "asmparse.cpp.tab.c" +#line 9507 "asmparse.cpp.tab.c" break; -case 539: +case 537: if (!yytrial) -#line 1470 "asmparse.y" +#line 1461 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9670 "asmparse.cpp.tab.c" +#line 9513 "asmparse.cpp.tab.c" break; -case 540: +case 538: if (!yytrial) -#line 1474 "asmparse.y" +#line 1465 "asmparse.y" { yyval.binstr = NULL; } -#line 9676 "asmparse.cpp.tab.c" +#line 9519 "asmparse.cpp.tab.c" break; -case 541: +case 539: if (!yytrial) -#line 1475 "asmparse.y" +#line 1466 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9682 "asmparse.cpp.tab.c" +#line 9525 "asmparse.cpp.tab.c" break; -case 542: +case 540: if (!yytrial) -#line 1478 "asmparse.y" +#line 1469 "asmparse.y" { yyval.binstr = NULL; } -#line 9688 "asmparse.cpp.tab.c" +#line 9531 "asmparse.cpp.tab.c" break; -case 543: +case 541: if (!yytrial) -#line 1479 "asmparse.y" +#line 1470 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9694 "asmparse.cpp.tab.c" +#line 9537 "asmparse.cpp.tab.c" break; -case 544: +case 542: if (!yytrial) -#line 1482 "asmparse.y" +#line 1473 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9700 "asmparse.cpp.tab.c" +#line 9543 "asmparse.cpp.tab.c" break; -case 545: +case 543: if (!yytrial) -#line 1483 "asmparse.y" +#line 1474 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9706 "asmparse.cpp.tab.c" +#line 9549 "asmparse.cpp.tab.c" break; -case 546: +case 544: if (!yytrial) -#line 1487 "asmparse.y" +#line 1478 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9712 "asmparse.cpp.tab.c" +#line 9555 "asmparse.cpp.tab.c" break; -case 547: +case 545: if (!yytrial) -#line 1488 "asmparse.y" +#line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9718 "asmparse.cpp.tab.c" +#line 9561 "asmparse.cpp.tab.c" break; -case 548: +case 546: if (!yytrial) -#line 1491 "asmparse.y" +#line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9724 "asmparse.cpp.tab.c" +#line 9567 "asmparse.cpp.tab.c" break; -case 549: +case 547: if (!yytrial) -#line 1492 "asmparse.y" +#line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9730 "asmparse.cpp.tab.c" +#line 9573 "asmparse.cpp.tab.c" break; -case 550: +case 548: if (!yytrial) -#line 1495 "asmparse.y" +#line 1486 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9736 "asmparse.cpp.tab.c" +#line 9579 "asmparse.cpp.tab.c" break; -case 551: +case 549: if (!yytrial) -#line 1496 "asmparse.y" +#line 1487 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9742 "asmparse.cpp.tab.c" +#line 9585 "asmparse.cpp.tab.c" break; -case 552: +case 550: if (!yytrial) -#line 1497 "asmparse.y" +#line 1488 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9748 "asmparse.cpp.tab.c" +#line 9591 "asmparse.cpp.tab.c" break; -case 553: +case 551: if (!yytrial) -#line 1501 "asmparse.y" +#line 1492 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9754 "asmparse.cpp.tab.c" +#line 9597 "asmparse.cpp.tab.c" break; -case 554: +case 552: if (!yytrial) -#line 1502 "asmparse.y" +#line 1493 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9760 "asmparse.cpp.tab.c" +#line 9603 "asmparse.cpp.tab.c" break; -case 555: +case 553: if (!yytrial) -#line 1503 "asmparse.y" +#line 1494 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9766 "asmparse.cpp.tab.c" +#line 9609 "asmparse.cpp.tab.c" break; -case 556: +case 554: if (!yytrial) -#line 1504 "asmparse.y" +#line 1495 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9772 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp.tab.c" break; -case 557: +case 555: if (!yytrial) -#line 1505 "asmparse.y" +#line 1496 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9778 "asmparse.cpp.tab.c" +#line 9621 "asmparse.cpp.tab.c" break; -case 558: +case 556: if (!yytrial) -#line 1506 "asmparse.y" +#line 1497 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9784 "asmparse.cpp.tab.c" +#line 9627 "asmparse.cpp.tab.c" break; -case 559: +case 557: if (!yytrial) -#line 1507 "asmparse.y" +#line 1498 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9790 "asmparse.cpp.tab.c" +#line 9633 "asmparse.cpp.tab.c" break; -case 560: +case 558: if (!yytrial) -#line 1508 "asmparse.y" +#line 1499 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9798 "asmparse.cpp.tab.c" +#line 9641 "asmparse.cpp.tab.c" break; -case 561: +case 559: if (!yytrial) -#line 1511 "asmparse.y" +#line 1502 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9809 "asmparse.cpp.tab.c" +#line 9652 "asmparse.cpp.tab.c" break; -case 562: +case 560: if (!yytrial) -#line 1517 "asmparse.y" +#line 1508 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9819 "asmparse.cpp.tab.c" +#line 9662 "asmparse.cpp.tab.c" break; -case 563: +case 561: if (!yytrial) -#line 1524 "asmparse.y" +#line 1515 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9825 "asmparse.cpp.tab.c" +#line 9668 "asmparse.cpp.tab.c" break; -case 564: +case 562: if (!yytrial) -#line 1525 "asmparse.y" +#line 1516 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9831 "asmparse.cpp.tab.c" +#line 9674 "asmparse.cpp.tab.c" break; -case 565: +case 563: if (!yytrial) -#line 1528 "asmparse.y" +#line 1519 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9837 "asmparse.cpp.tab.c" +#line 9680 "asmparse.cpp.tab.c" break; -case 566: +case 564: if (!yytrial) -#line 1529 "asmparse.y" +#line 1520 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9843 "asmparse.cpp.tab.c" +#line 9686 "asmparse.cpp.tab.c" break; -case 567: +case 565: if (!yytrial) -#line 1530 "asmparse.y" +#line 1521 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9849 "asmparse.cpp.tab.c" +#line 9692 "asmparse.cpp.tab.c" break; -case 568: +case 566: if (!yytrial) -#line 1531 "asmparse.y" +#line 1522 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9855 "asmparse.cpp.tab.c" +#line 9698 "asmparse.cpp.tab.c" break; -case 569: +case 567: if (!yytrial) -#line 1535 "asmparse.y" +#line 1526 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9861 "asmparse.cpp.tab.c" +#line 9704 "asmparse.cpp.tab.c" break; -case 570: +case 568: if (!yytrial) -#line 1537 "asmparse.y" +#line 1528 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9872 "asmparse.cpp.tab.c" +#line 9715 "asmparse.cpp.tab.c" break; -case 571: +case 569: if (!yytrial) -#line 1544 "asmparse.y" +#line 1535 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9882 "asmparse.cpp.tab.c" +#line 9725 "asmparse.cpp.tab.c" break; -case 572: +case 570: if (!yytrial) -#line 1549 "asmparse.y" +#line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9889 "asmparse.cpp.tab.c" +#line 9732 "asmparse.cpp.tab.c" break; -case 573: +case 571: if (!yytrial) -#line 1552 "asmparse.y" +#line 1543 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9896 "asmparse.cpp.tab.c" +#line 9739 "asmparse.cpp.tab.c" break; -case 574: +case 572: if (!yytrial) -#line 1554 "asmparse.y" +#line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9903 "asmparse.cpp.tab.c" +#line 9746 "asmparse.cpp.tab.c" break; -case 575: +case 573: if (!yytrial) -#line 1556 "asmparse.y" +#line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9909 "asmparse.cpp.tab.c" +#line 9752 "asmparse.cpp.tab.c" break; -case 576: +case 574: if (!yytrial) -#line 1557 "asmparse.y" +#line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9916 "asmparse.cpp.tab.c" +#line 9759 "asmparse.cpp.tab.c" break; -case 577: +case 575: if (!yytrial) -#line 1559 "asmparse.y" +#line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9923 "asmparse.cpp.tab.c" +#line 9766 "asmparse.cpp.tab.c" break; -case 578: +case 576: if (!yytrial) -#line 1561 "asmparse.y" +#line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9929 "asmparse.cpp.tab.c" +#line 9772 "asmparse.cpp.tab.c" break; -case 579: +case 577: if (!yytrial) -#line 1562 "asmparse.y" +#line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9935 "asmparse.cpp.tab.c" +#line 9778 "asmparse.cpp.tab.c" break; -case 580: +case 578: if (!yytrial) -#line 1563 "asmparse.y" +#line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9941 "asmparse.cpp.tab.c" +#line 9784 "asmparse.cpp.tab.c" break; -case 581: +case 579: if (!yytrial) -#line 1564 "asmparse.y" +#line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9947 "asmparse.cpp.tab.c" +#line 9790 "asmparse.cpp.tab.c" break; -case 582: +case 580: if (!yytrial) -#line 1565 "asmparse.y" +#line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9953 "asmparse.cpp.tab.c" +#line 9796 "asmparse.cpp.tab.c" break; -case 583: +case 581: if (!yytrial) -#line 1566 "asmparse.y" +#line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9959 "asmparse.cpp.tab.c" +#line 9802 "asmparse.cpp.tab.c" break; -case 584: +case 582: if (!yytrial) -#line 1567 "asmparse.y" +#line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9965 "asmparse.cpp.tab.c" +#line 9808 "asmparse.cpp.tab.c" break; -case 585: +case 583: if (!yytrial) -#line 1568 "asmparse.y" +#line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9971 "asmparse.cpp.tab.c" +#line 9814 "asmparse.cpp.tab.c" break; -case 586: +case 584: if (!yytrial) -#line 1569 "asmparse.y" +#line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9977 "asmparse.cpp.tab.c" +#line 9820 "asmparse.cpp.tab.c" break; -case 587: +case 585: if (!yytrial) -#line 1570 "asmparse.y" +#line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9983 "asmparse.cpp.tab.c" +#line 9826 "asmparse.cpp.tab.c" break; -case 588: +case 586: if (!yytrial) -#line 1571 "asmparse.y" +#line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9989 "asmparse.cpp.tab.c" +#line 9832 "asmparse.cpp.tab.c" break; -case 589: +case 587: if (!yytrial) -#line 1572 "asmparse.y" +#line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9995 "asmparse.cpp.tab.c" +#line 9838 "asmparse.cpp.tab.c" break; -case 590: +case 588: if (!yytrial) -#line 1573 "asmparse.y" +#line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10001 "asmparse.cpp.tab.c" +#line 9844 "asmparse.cpp.tab.c" break; -case 591: +case 589: if (!yytrial) -#line 1574 "asmparse.y" +#line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10007 "asmparse.cpp.tab.c" +#line 9850 "asmparse.cpp.tab.c" break; -case 592: +case 590: if (!yytrial) -#line 1575 "asmparse.y" +#line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10013 "asmparse.cpp.tab.c" +#line 9856 "asmparse.cpp.tab.c" break; -case 593: +case 591: if (!yytrial) -#line 1576 "asmparse.y" +#line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10019 "asmparse.cpp.tab.c" +#line 9862 "asmparse.cpp.tab.c" break; -case 594: +case 592: if (!yytrial) -#line 1577 "asmparse.y" +#line 1568 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 10026 "asmparse.cpp.tab.c" +#line 9869 "asmparse.cpp.tab.c" break; -case 595: +case 593: if (!yytrial) -#line 1579 "asmparse.y" +#line 1570 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10033 "asmparse.cpp.tab.c" +#line 9876 "asmparse.cpp.tab.c" break; -case 596: +case 594: if (!yytrial) -#line 1581 "asmparse.y" +#line 1572 "asmparse.y" { yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10043 "asmparse.cpp.tab.c" +#line 9886 "asmparse.cpp.tab.c" break; -case 597: +case 595: if (!yytrial) -#line 1586 "asmparse.y" +#line 1577 "asmparse.y" { yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10053 "asmparse.cpp.tab.c" +#line 9896 "asmparse.cpp.tab.c" break; -case 598: +case 596: if (!yytrial) -#line 1591 "asmparse.y" +#line 1582 "asmparse.y" { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 10061 "asmparse.cpp.tab.c" +#line 9904 "asmparse.cpp.tab.c" break; -case 599: +case 597: if (!yytrial) -#line 1594 "asmparse.y" +#line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10068 "asmparse.cpp.tab.c" +#line 9911 "asmparse.cpp.tab.c" break; -case 600: +case 598: if (!yytrial) -#line 1596 "asmparse.y" +#line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10075 "asmparse.cpp.tab.c" +#line 9918 "asmparse.cpp.tab.c" break; -case 601: +case 599: if (!yytrial) -#line 1598 "asmparse.y" +#line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10081 "asmparse.cpp.tab.c" +#line 9924 "asmparse.cpp.tab.c" break; -case 602: +case 600: if (!yytrial) -#line 1599 "asmparse.y" +#line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10087 "asmparse.cpp.tab.c" +#line 9930 "asmparse.cpp.tab.c" break; -case 603: +case 601: if (!yytrial) -#line 1600 "asmparse.y" +#line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10093 "asmparse.cpp.tab.c" +#line 9936 "asmparse.cpp.tab.c" break; -case 604: +case 602: if (!yytrial) -#line 1601 "asmparse.y" +#line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10099 "asmparse.cpp.tab.c" +#line 9942 "asmparse.cpp.tab.c" break; -case 605: +case 603: if (!yytrial) -#line 1602 "asmparse.y" +#line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10106 "asmparse.cpp.tab.c" +#line 9949 "asmparse.cpp.tab.c" break; -case 606: +case 604: if (!yytrial) -#line 1604 "asmparse.y" +#line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10113 "asmparse.cpp.tab.c" +#line 9956 "asmparse.cpp.tab.c" break; -case 607: +case 605: if (!yytrial) -#line 1606 "asmparse.y" +#line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10120 "asmparse.cpp.tab.c" +#line 9963 "asmparse.cpp.tab.c" break; -case 608: +case 606: if (!yytrial) -#line 1608 "asmparse.y" +#line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 10126 "asmparse.cpp.tab.c" +#line 9969 "asmparse.cpp.tab.c" break; -case 609: +case 607: if (!yytrial) -#line 1609 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 10133 "asmparse.cpp.tab.c" +#line 9976 "asmparse.cpp.tab.c" break; -case 610: +case 608: if (!yytrial) -#line 1611 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 10141 "asmparse.cpp.tab.c" +#line 9984 "asmparse.cpp.tab.c" break; -case 611: +case 609: if (!yytrial) -#line 1614 "asmparse.y" +#line 1605 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 10149 "asmparse.cpp.tab.c" +#line 9992 "asmparse.cpp.tab.c" break; -case 612: +case 610: if (!yytrial) -#line 1618 "asmparse.y" +#line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 10155 "asmparse.cpp.tab.c" +#line 9998 "asmparse.cpp.tab.c" break; -case 613: +case 611: if (!yytrial) -#line 1619 "asmparse.y" +#line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10161 "asmparse.cpp.tab.c" +#line 10004 "asmparse.cpp.tab.c" break; -case 614: +case 612: if (!yytrial) -#line 1620 "asmparse.y" +#line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10167 "asmparse.cpp.tab.c" +#line 10010 "asmparse.cpp.tab.c" break; -case 615: +case 613: if (!yytrial) -#line 1621 "asmparse.y" +#line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 10174 "asmparse.cpp.tab.c" +#line 10017 "asmparse.cpp.tab.c" break; -case 616: +case 614: if (!yytrial) -#line 1623 "asmparse.y" +#line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 10180 "asmparse.cpp.tab.c" +#line 10023 "asmparse.cpp.tab.c" break; -case 617: +case 615: if (!yytrial) -#line 1624 "asmparse.y" +#line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 10186 "asmparse.cpp.tab.c" +#line 10029 "asmparse.cpp.tab.c" break; -case 618: +case 616: if (!yytrial) -#line 1625 "asmparse.y" +#line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 10192 "asmparse.cpp.tab.c" +#line 10035 "asmparse.cpp.tab.c" break; -case 619: +case 617: if (!yytrial) -#line 1626 "asmparse.y" +#line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 10198 "asmparse.cpp.tab.c" +#line 10041 "asmparse.cpp.tab.c" break; -case 620: +case 618: if (!yytrial) -#line 1627 "asmparse.y" +#line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 10204 "asmparse.cpp.tab.c" +#line 10047 "asmparse.cpp.tab.c" break; -case 621: +case 619: if (!yytrial) -#line 1628 "asmparse.y" +#line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 10210 "asmparse.cpp.tab.c" +#line 10053 "asmparse.cpp.tab.c" break; -case 622: +case 620: if (!yytrial) -#line 1629 "asmparse.y" +#line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10216 "asmparse.cpp.tab.c" +#line 10059 "asmparse.cpp.tab.c" break; -case 623: +case 621: if (!yytrial) -#line 1630 "asmparse.y" +#line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10222 "asmparse.cpp.tab.c" +#line 10065 "asmparse.cpp.tab.c" break; -case 624: +case 622: if (!yytrial) -#line 1633 "asmparse.y" +#line 1624 "asmparse.y" { yyval.int32 = -1; } -#line 10228 "asmparse.cpp.tab.c" +#line 10071 "asmparse.cpp.tab.c" break; -case 625: +case 623: if (!yytrial) -#line 1634 "asmparse.y" +#line 1625 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 10234 "asmparse.cpp.tab.c" +#line 10077 "asmparse.cpp.tab.c" break; -case 626: +case 624: if (!yytrial) -#line 1637 "asmparse.y" +#line 1628 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 10240 "asmparse.cpp.tab.c" +#line 10083 "asmparse.cpp.tab.c" break; -case 627: +case 625: if (!yytrial) -#line 1638 "asmparse.y" +#line 1629 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 10246 "asmparse.cpp.tab.c" +#line 10089 "asmparse.cpp.tab.c" break; -case 628: +case 626: if (!yytrial) -#line 1639 "asmparse.y" +#line 1630 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 10252 "asmparse.cpp.tab.c" +#line 10095 "asmparse.cpp.tab.c" break; -case 629: +case 627: if (!yytrial) -#line 1640 "asmparse.y" +#line 1631 "asmparse.y" { yyval.int32 = VT_CY; } -#line 10258 "asmparse.cpp.tab.c" +#line 10101 "asmparse.cpp.tab.c" break; -case 630: +case 628: if (!yytrial) -#line 1641 "asmparse.y" +#line 1632 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 10264 "asmparse.cpp.tab.c" +#line 10107 "asmparse.cpp.tab.c" break; -case 631: +case 629: if (!yytrial) -#line 1642 "asmparse.y" +#line 1633 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 10270 "asmparse.cpp.tab.c" +#line 10113 "asmparse.cpp.tab.c" break; -case 632: +case 630: if (!yytrial) -#line 1643 "asmparse.y" +#line 1634 "asmparse.y" { yyval.int32 = VT_I1; } -#line 10276 "asmparse.cpp.tab.c" +#line 10119 "asmparse.cpp.tab.c" break; -case 633: +case 631: if (!yytrial) -#line 1644 "asmparse.y" +#line 1635 "asmparse.y" { yyval.int32 = VT_I2; } -#line 10282 "asmparse.cpp.tab.c" +#line 10125 "asmparse.cpp.tab.c" break; -case 634: +case 632: if (!yytrial) -#line 1645 "asmparse.y" +#line 1636 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10288 "asmparse.cpp.tab.c" +#line 10131 "asmparse.cpp.tab.c" break; -case 635: +case 633: if (!yytrial) -#line 1646 "asmparse.y" +#line 1637 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10294 "asmparse.cpp.tab.c" +#line 10137 "asmparse.cpp.tab.c" break; -case 636: +case 634: if (!yytrial) -#line 1647 "asmparse.y" +#line 1638 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10300 "asmparse.cpp.tab.c" +#line 10143 "asmparse.cpp.tab.c" break; -case 637: +case 635: if (!yytrial) -#line 1648 "asmparse.y" +#line 1639 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10306 "asmparse.cpp.tab.c" +#line 10149 "asmparse.cpp.tab.c" break; -case 638: +case 636: if (!yytrial) -#line 1649 "asmparse.y" +#line 1640 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10312 "asmparse.cpp.tab.c" +#line 10155 "asmparse.cpp.tab.c" break; -case 639: +case 637: if (!yytrial) -#line 1650 "asmparse.y" +#line 1641 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10318 "asmparse.cpp.tab.c" +#line 10161 "asmparse.cpp.tab.c" break; -case 640: +case 638: if (!yytrial) -#line 1651 "asmparse.y" +#line 1642 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10324 "asmparse.cpp.tab.c" +#line 10167 "asmparse.cpp.tab.c" break; -case 641: +case 639: if (!yytrial) -#line 1652 "asmparse.y" +#line 1643 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10330 "asmparse.cpp.tab.c" +#line 10173 "asmparse.cpp.tab.c" break; -case 642: +case 640: if (!yytrial) -#line 1653 "asmparse.y" +#line 1644 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10336 "asmparse.cpp.tab.c" +#line 10179 "asmparse.cpp.tab.c" break; -case 643: +case 641: if (!yytrial) -#line 1654 "asmparse.y" +#line 1645 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10342 "asmparse.cpp.tab.c" +#line 10185 "asmparse.cpp.tab.c" break; -case 644: +case 642: if (!yytrial) -#line 1655 "asmparse.y" +#line 1646 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10348 "asmparse.cpp.tab.c" +#line 10191 "asmparse.cpp.tab.c" break; -case 645: +case 643: if (!yytrial) -#line 1656 "asmparse.y" +#line 1647 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10354 "asmparse.cpp.tab.c" +#line 10197 "asmparse.cpp.tab.c" break; -case 646: +case 644: if (!yytrial) -#line 1657 "asmparse.y" +#line 1648 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10360 "asmparse.cpp.tab.c" +#line 10203 "asmparse.cpp.tab.c" break; -case 647: +case 645: if (!yytrial) -#line 1658 "asmparse.y" +#line 1649 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10366 "asmparse.cpp.tab.c" +#line 10209 "asmparse.cpp.tab.c" break; -case 648: +case 646: if (!yytrial) -#line 1659 "asmparse.y" +#line 1650 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10372 "asmparse.cpp.tab.c" +#line 10215 "asmparse.cpp.tab.c" break; -case 649: +case 647: if (!yytrial) -#line 1660 "asmparse.y" +#line 1651 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10378 "asmparse.cpp.tab.c" +#line 10221 "asmparse.cpp.tab.c" break; -case 650: +case 648: if (!yytrial) -#line 1661 "asmparse.y" +#line 1652 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10384 "asmparse.cpp.tab.c" +#line 10227 "asmparse.cpp.tab.c" break; -case 651: +case 649: if (!yytrial) -#line 1662 "asmparse.y" +#line 1653 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10390 "asmparse.cpp.tab.c" +#line 10233 "asmparse.cpp.tab.c" break; -case 652: +case 650: if (!yytrial) -#line 1663 "asmparse.y" +#line 1654 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10396 "asmparse.cpp.tab.c" +#line 10239 "asmparse.cpp.tab.c" break; -case 653: +case 651: if (!yytrial) -#line 1664 "asmparse.y" +#line 1655 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10402 "asmparse.cpp.tab.c" +#line 10245 "asmparse.cpp.tab.c" break; -case 654: +case 652: if (!yytrial) -#line 1665 "asmparse.y" +#line 1656 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10408 "asmparse.cpp.tab.c" +#line 10251 "asmparse.cpp.tab.c" break; -case 655: +case 653: if (!yytrial) -#line 1666 "asmparse.y" +#line 1657 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10414 "asmparse.cpp.tab.c" +#line 10257 "asmparse.cpp.tab.c" break; -case 656: +case 654: if (!yytrial) -#line 1667 "asmparse.y" +#line 1658 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10420 "asmparse.cpp.tab.c" +#line 10263 "asmparse.cpp.tab.c" break; -case 657: +case 655: if (!yytrial) -#line 1668 "asmparse.y" +#line 1659 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10426 "asmparse.cpp.tab.c" +#line 10269 "asmparse.cpp.tab.c" break; -case 658: +case 656: if (!yytrial) -#line 1669 "asmparse.y" +#line 1660 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10432 "asmparse.cpp.tab.c" +#line 10275 "asmparse.cpp.tab.c" break; -case 659: +case 657: if (!yytrial) -#line 1670 "asmparse.y" +#line 1661 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10438 "asmparse.cpp.tab.c" +#line 10281 "asmparse.cpp.tab.c" break; -case 660: +case 658: if (!yytrial) -#line 1671 "asmparse.y" +#line 1662 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10444 "asmparse.cpp.tab.c" +#line 10287 "asmparse.cpp.tab.c" break; -case 661: +case 659: if (!yytrial) -#line 1672 "asmparse.y" +#line 1663 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10450 "asmparse.cpp.tab.c" +#line 10293 "asmparse.cpp.tab.c" break; -case 662: +case 660: if (!yytrial) -#line 1673 "asmparse.y" +#line 1664 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10456 "asmparse.cpp.tab.c" +#line 10299 "asmparse.cpp.tab.c" break; -case 663: +case 661: if (!yytrial) -#line 1674 "asmparse.y" +#line 1665 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10462 "asmparse.cpp.tab.c" +#line 10305 "asmparse.cpp.tab.c" break; -case 664: +case 662: if (!yytrial) -#line 1675 "asmparse.y" +#line 1666 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10468 "asmparse.cpp.tab.c" +#line 10311 "asmparse.cpp.tab.c" break; -case 665: +case 663: if (!yytrial) -#line 1676 "asmparse.y" +#line 1667 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10474 "asmparse.cpp.tab.c" +#line 10317 "asmparse.cpp.tab.c" break; -case 666: +case 664: if (!yytrial) -#line 1677 "asmparse.y" +#line 1668 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10480 "asmparse.cpp.tab.c" +#line 10323 "asmparse.cpp.tab.c" break; -case 667: +case 665: if (!yytrial) -#line 1678 "asmparse.y" +#line 1669 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10486 "asmparse.cpp.tab.c" +#line 10329 "asmparse.cpp.tab.c" break; -case 668: +case 666: if (!yytrial) -#line 1679 "asmparse.y" +#line 1670 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10492 "asmparse.cpp.tab.c" +#line 10335 "asmparse.cpp.tab.c" break; -case 669: +case 667: if (!yytrial) -#line 1680 "asmparse.y" +#line 1671 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10498 "asmparse.cpp.tab.c" +#line 10341 "asmparse.cpp.tab.c" break; -case 670: +case 668: if (!yytrial) -#line 1681 "asmparse.y" +#line 1672 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10504 "asmparse.cpp.tab.c" +#line 10347 "asmparse.cpp.tab.c" break; -case 671: +case 669: if (!yytrial) -#line 1682 "asmparse.y" +#line 1673 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10510 "asmparse.cpp.tab.c" +#line 10353 "asmparse.cpp.tab.c" break; -case 672: +case 670: if (!yytrial) -#line 1683 "asmparse.y" +#line 1674 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10516 "asmparse.cpp.tab.c" +#line 10359 "asmparse.cpp.tab.c" break; -case 673: +case 671: if (!yytrial) -#line 1684 "asmparse.y" +#line 1675 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10522 "asmparse.cpp.tab.c" +#line 10365 "asmparse.cpp.tab.c" break; -case 674: +case 672: if (!yytrial) -#line 1685 "asmparse.y" +#line 1676 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10528 "asmparse.cpp.tab.c" +#line 10371 "asmparse.cpp.tab.c" break; -case 675: +case 673: if (!yytrial) -#line 1688 "asmparse.y" +#line 1679 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 10536 "asmparse.cpp.tab.c" +#line 10379 "asmparse.cpp.tab.c" break; -case 676: +case 674: if (!yytrial) -#line 1691 "asmparse.y" +#line 1682 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 10543 "asmparse.cpp.tab.c" +#line 10386 "asmparse.cpp.tab.c" break; -case 677: +case 675: if (!yytrial) -#line 1693 "asmparse.y" +#line 1684 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10550 "asmparse.cpp.tab.c" +#line 10393 "asmparse.cpp.tab.c" break; -case 678: +case 676: if (!yytrial) -#line 1695 "asmparse.y" +#line 1686 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10557 "asmparse.cpp.tab.c" +#line 10400 "asmparse.cpp.tab.c" break; -case 679: +case 677: if (!yytrial) -#line 1697 "asmparse.y" +#line 1688 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10564 "asmparse.cpp.tab.c" +#line 10407 "asmparse.cpp.tab.c" break; -case 680: +case 678: if (!yytrial) -#line 1699 "asmparse.y" +#line 1690 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10571 "asmparse.cpp.tab.c" +#line 10414 "asmparse.cpp.tab.c" break; -case 681: +case 679: if (!yytrial) -#line 1701 "asmparse.y" +#line 1692 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10578 "asmparse.cpp.tab.c" +#line 10421 "asmparse.cpp.tab.c" break; -case 682: +case 680: if (!yytrial) -#line 1703 "asmparse.y" +#line 1694 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10585 "asmparse.cpp.tab.c" +#line 10428 "asmparse.cpp.tab.c" break; -case 683: +case 681: if (!yytrial) -#line 1705 "asmparse.y" +#line 1696 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10592 "asmparse.cpp.tab.c" +#line 10435 "asmparse.cpp.tab.c" break; -case 684: +case 682: if (!yytrial) -#line 1707 "asmparse.y" +#line 1698 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10599 "asmparse.cpp.tab.c" +#line 10442 "asmparse.cpp.tab.c" break; -case 685: +case 683: if (!yytrial) -#line 1709 "asmparse.y" +#line 1700 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10606 "asmparse.cpp.tab.c" +#line 10449 "asmparse.cpp.tab.c" break; -case 686: +case 684: if (!yytrial) -#line 1711 "asmparse.y" +#line 1702 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10613 "asmparse.cpp.tab.c" +#line 10456 "asmparse.cpp.tab.c" break; -case 687: +case 685: if (!yytrial) -#line 1713 "asmparse.y" +#line 1704 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10620 "asmparse.cpp.tab.c" +#line 10463 "asmparse.cpp.tab.c" break; -case 688: +case 686: if (!yytrial) -#line 1715 "asmparse.y" +#line 1706 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10627 "asmparse.cpp.tab.c" +#line 10470 "asmparse.cpp.tab.c" break; -case 689: +case 687: if (!yytrial) -#line 1717 "asmparse.y" +#line 1708 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10634 "asmparse.cpp.tab.c" +#line 10477 "asmparse.cpp.tab.c" break; -case 690: +case 688: if (!yytrial) -#line 1719 "asmparse.y" +#line 1710 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10641 "asmparse.cpp.tab.c" +#line 10484 "asmparse.cpp.tab.c" break; -case 691: +case 689: if (!yytrial) -#line 1721 "asmparse.y" +#line 1712 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10648 "asmparse.cpp.tab.c" +#line 10491 "asmparse.cpp.tab.c" break; -case 692: +case 690: if (!yytrial) -#line 1723 "asmparse.y" +#line 1714 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 10655 "asmparse.cpp.tab.c" +#line 10498 "asmparse.cpp.tab.c" break; -case 693: +case 691: if (!yytrial) -#line 1728 "asmparse.y" +#line 1719 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10666 "asmparse.cpp.tab.c" +#line 10509 "asmparse.cpp.tab.c" break; -case 694: +case 692: if (!yytrial) -#line 1734 "asmparse.y" +#line 1725 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10672 "asmparse.cpp.tab.c" +#line 10515 "asmparse.cpp.tab.c" break; -case 695: +case 693: if (!yytrial) -#line 1735 "asmparse.y" +#line 1726 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10678 "asmparse.cpp.tab.c" +#line 10521 "asmparse.cpp.tab.c" break; -case 696: +case 694: if (!yytrial) -#line 1736 "asmparse.y" +#line 1727 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10684 "asmparse.cpp.tab.c" +#line 10527 "asmparse.cpp.tab.c" break; -case 697: +case 695: if (!yytrial) -#line 1737 "asmparse.y" +#line 1728 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 10690 "asmparse.cpp.tab.c" +#line 10533 "asmparse.cpp.tab.c" break; -case 698: +case 696: if (!yytrial) -#line 1738 "asmparse.y" +#line 1729 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10696 "asmparse.cpp.tab.c" +#line 10539 "asmparse.cpp.tab.c" break; -case 699: +case 697: if (!yytrial) -#line 1739 "asmparse.y" +#line 1730 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10702 "asmparse.cpp.tab.c" +#line 10545 "asmparse.cpp.tab.c" break; -case 700: +case 698: if (!yytrial) -#line 1740 "asmparse.y" +#line 1731 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10708 "asmparse.cpp.tab.c" +#line 10551 "asmparse.cpp.tab.c" break; -case 701: +case 699: if (!yytrial) -#line 1741 "asmparse.y" +#line 1732 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10714 "asmparse.cpp.tab.c" +#line 10557 "asmparse.cpp.tab.c" break; -case 702: +case 700: if (!yytrial) -#line 1742 "asmparse.y" +#line 1733 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10720 "asmparse.cpp.tab.c" +#line 10563 "asmparse.cpp.tab.c" break; -case 703: +case 701: if (!yytrial) -#line 1743 "asmparse.y" +#line 1734 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10727 "asmparse.cpp.tab.c" +#line 10570 "asmparse.cpp.tab.c" break; -case 704: +case 702: if (!yytrial) -#line 1745 "asmparse.y" +#line 1736 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10734 "asmparse.cpp.tab.c" +#line 10577 "asmparse.cpp.tab.c" break; -case 705: +case 703: if (!yytrial) -#line 1748 "asmparse.y" +#line 1739 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10745 "asmparse.cpp.tab.c" +#line 10588 "asmparse.cpp.tab.c" break; -case 706: +case 704: if (!yytrial) -#line 1754 "asmparse.y" +#line 1745 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10753,49 +10596,49 @@ case 706: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10757 "asmparse.cpp.tab.c" +#line 10600 "asmparse.cpp.tab.c" break; -case 707: +case 705: if (!yytrial) -#line 1761 "asmparse.y" +#line 1752 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10765 "asmparse.cpp.tab.c" +#line 10608 "asmparse.cpp.tab.c" break; -case 708: +case 706: if (!yytrial) -#line 1764 "asmparse.y" +#line 1755 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10776 "asmparse.cpp.tab.c" +#line 10619 "asmparse.cpp.tab.c" break; -case 709: +case 707: if (!yytrial) -#line 1770 "asmparse.y" +#line 1761 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); } -#line 10784 "asmparse.cpp.tab.c" +#line 10627 "asmparse.cpp.tab.c" break; -case 710: +case 708: if (!yytrial) -#line 1773 "asmparse.y" +#line 1764 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10795 "asmparse.cpp.tab.c" +#line 10638 "asmparse.cpp.tab.c" break; -case 711: +case 709: if (!yytrial) -#line 1779 "asmparse.y" +#line 1770 "asmparse.y" { int eltype = ELEMENT_TYPE_MCVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10811,11 +10654,11 @@ case 711: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10815 "asmparse.cpp.tab.c" +#line 10658 "asmparse.cpp.tab.c" break; -case 712: +case 710: if (!yytrial) -#line 1794 "asmparse.y" +#line 1785 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10831,11 +10674,11 @@ case 712: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10835 "asmparse.cpp.tab.c" +#line 10678 "asmparse.cpp.tab.c" break; -case 713: +case 711: if (!yytrial) -#line 1809 "asmparse.y" +#line 1800 "asmparse.y" { int eltype = ELEMENT_TYPE_CVAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10851,11 +10694,11 @@ case 713: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10855 "asmparse.cpp.tab.c" +#line 10698 "asmparse.cpp.tab.c" break; -case 714: +case 712: if (!yytrial) -#line 1824 "asmparse.y" +#line 1815 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10871,924 +10714,924 @@ case 714: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10875 "asmparse.cpp.tab.c" +#line 10718 "asmparse.cpp.tab.c" break; -case 715: +case 713: if (!yytrial) -#line 1839 "asmparse.y" +#line 1830 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10881 "asmparse.cpp.tab.c" +#line 10724 "asmparse.cpp.tab.c" break; -case 716: +case 714: if (!yytrial) -#line 1840 "asmparse.y" +#line 1831 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10887 "asmparse.cpp.tab.c" +#line 10730 "asmparse.cpp.tab.c" break; -case 717: +case 715: if (!yytrial) -#line 1841 "asmparse.y" +#line 1832 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10893 "asmparse.cpp.tab.c" +#line 10736 "asmparse.cpp.tab.c" break; -case 718: +case 716: if (!yytrial) -#line 1842 "asmparse.y" +#line 1833 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10899 "asmparse.cpp.tab.c" +#line 10742 "asmparse.cpp.tab.c" break; -case 719: +case 717: if (!yytrial) -#line 1843 "asmparse.y" +#line 1834 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10905 "asmparse.cpp.tab.c" +#line 10748 "asmparse.cpp.tab.c" break; -case 720: +case 718: if (!yytrial) -#line 1844 "asmparse.y" +#line 1835 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10911 "asmparse.cpp.tab.c" +#line 10754 "asmparse.cpp.tab.c" break; -case 721: +case 719: if (!yytrial) -#line 1845 "asmparse.y" +#line 1836 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10917 "asmparse.cpp.tab.c" +#line 10760 "asmparse.cpp.tab.c" break; -case 722: +case 720: if (!yytrial) -#line 1848 "asmparse.y" +#line 1839 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10923 "asmparse.cpp.tab.c" +#line 10766 "asmparse.cpp.tab.c" break; -case 723: +case 721: if (!yytrial) -#line 1849 "asmparse.y" +#line 1840 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10929 "asmparse.cpp.tab.c" +#line 10772 "asmparse.cpp.tab.c" break; -case 724: +case 722: if (!yytrial) -#line 1850 "asmparse.y" +#line 1841 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10935 "asmparse.cpp.tab.c" +#line 10778 "asmparse.cpp.tab.c" break; -case 725: +case 723: if (!yytrial) -#line 1851 "asmparse.y" +#line 1842 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10941 "asmparse.cpp.tab.c" +#line 10784 "asmparse.cpp.tab.c" break; -case 726: +case 724: if (!yytrial) -#line 1852 "asmparse.y" +#line 1843 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10947 "asmparse.cpp.tab.c" +#line 10790 "asmparse.cpp.tab.c" break; -case 727: +case 725: if (!yytrial) -#line 1853 "asmparse.y" +#line 1844 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10953 "asmparse.cpp.tab.c" +#line 10796 "asmparse.cpp.tab.c" break; -case 728: +case 726: if (!yytrial) -#line 1854 "asmparse.y" +#line 1845 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10959 "asmparse.cpp.tab.c" +#line 10802 "asmparse.cpp.tab.c" break; -case 729: +case 727: if (!yytrial) -#line 1855 "asmparse.y" +#line 1846 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10965 "asmparse.cpp.tab.c" +#line 10808 "asmparse.cpp.tab.c" break; -case 730: +case 728: if (!yytrial) -#line 1856 "asmparse.y" +#line 1847 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10971 "asmparse.cpp.tab.c" +#line 10814 "asmparse.cpp.tab.c" break; -case 731: +case 729: if (!yytrial) -#line 1857 "asmparse.y" +#line 1848 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10977 "asmparse.cpp.tab.c" +#line 10820 "asmparse.cpp.tab.c" break; -case 732: +case 730: if (!yytrial) -#line 1858 "asmparse.y" +#line 1849 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10983 "asmparse.cpp.tab.c" +#line 10826 "asmparse.cpp.tab.c" break; -case 733: +case 731: if (!yytrial) -#line 1859 "asmparse.y" +#line 1850 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10989 "asmparse.cpp.tab.c" +#line 10832 "asmparse.cpp.tab.c" break; -case 734: +case 732: if (!yytrial) -#line 1860 "asmparse.y" +#line 1851 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10995 "asmparse.cpp.tab.c" +#line 10838 "asmparse.cpp.tab.c" break; -case 735: +case 733: if (!yytrial) -#line 1861 "asmparse.y" +#line 1852 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11001 "asmparse.cpp.tab.c" +#line 10844 "asmparse.cpp.tab.c" break; -case 736: +case 734: if (!yytrial) -#line 1862 "asmparse.y" +#line 1853 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11007 "asmparse.cpp.tab.c" +#line 10850 "asmparse.cpp.tab.c" break; -case 737: +case 735: if (!yytrial) -#line 1863 "asmparse.y" +#line 1854 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11013 "asmparse.cpp.tab.c" +#line 10856 "asmparse.cpp.tab.c" break; -case 738: +case 736: if (!yytrial) -#line 1864 "asmparse.y" +#line 1855 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11019 "asmparse.cpp.tab.c" +#line 10862 "asmparse.cpp.tab.c" break; -case 739: +case 737: if (!yytrial) -#line 1865 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 11025 "asmparse.cpp.tab.c" +#line 10868 "asmparse.cpp.tab.c" break; -case 740: +case 738: if (!yytrial) -#line 1868 "asmparse.y" +#line 1859 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 11031 "asmparse.cpp.tab.c" +#line 10874 "asmparse.cpp.tab.c" break; -case 741: +case 739: if (!yytrial) -#line 1869 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 11037 "asmparse.cpp.tab.c" +#line 10880 "asmparse.cpp.tab.c" break; -case 742: +case 740: if (!yytrial) -#line 1872 "asmparse.y" +#line 1863 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11043 "asmparse.cpp.tab.c" +#line 10886 "asmparse.cpp.tab.c" break; -case 743: +case 741: if (!yytrial) -#line 1873 "asmparse.y" +#line 1864 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11049 "asmparse.cpp.tab.c" +#line 10892 "asmparse.cpp.tab.c" break; -case 744: +case 742: if (!yytrial) -#line 1874 "asmparse.y" +#line 1865 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11055 "asmparse.cpp.tab.c" +#line 10898 "asmparse.cpp.tab.c" break; -case 745: +case 743: if (!yytrial) -#line 1875 "asmparse.y" +#line 1866 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 11063 "asmparse.cpp.tab.c" +#line 10906 "asmparse.cpp.tab.c" break; -case 746: +case 744: if (!yytrial) -#line 1878 "asmparse.y" +#line 1869 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11069 "asmparse.cpp.tab.c" +#line 10912 "asmparse.cpp.tab.c" break; -case 747: +case 745: if (!yytrial) -#line 1883 "asmparse.y" +#line 1874 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 11075 "asmparse.cpp.tab.c" +#line 10918 "asmparse.cpp.tab.c" break; -case 748: +case 746: if (!yytrial) -#line 1885 "asmparse.y" +#line 1876 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 11081 "asmparse.cpp.tab.c" +#line 10924 "asmparse.cpp.tab.c" break; -case 749: +case 747: if (!yytrial) -#line 1886 "asmparse.y" +#line 1877 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 11087 "asmparse.cpp.tab.c" +#line 10930 "asmparse.cpp.tab.c" break; -case 750: +case 748: if (!yytrial) -#line 1887 "asmparse.y" +#line 1878 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 11093 "asmparse.cpp.tab.c" +#line 10936 "asmparse.cpp.tab.c" break; -case 751: +case 749: if (!yytrial) -#line 1889 "asmparse.y" +#line 1880 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 11099 "asmparse.cpp.tab.c" +#line 10942 "asmparse.cpp.tab.c" break; -case 752: +case 750: if (!yytrial) -#line 1891 "asmparse.y" +#line 1882 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 11110 "asmparse.cpp.tab.c" +#line 10953 "asmparse.cpp.tab.c" break; -case 753: +case 751: if (!yytrial) -#line 1899 "asmparse.y" +#line 1890 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 11116 "asmparse.cpp.tab.c" +#line 10959 "asmparse.cpp.tab.c" break; -case 754: +case 752: if (!yytrial) -#line 1900 "asmparse.y" +#line 1891 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 11122 "asmparse.cpp.tab.c" +#line 10965 "asmparse.cpp.tab.c" break; -case 755: +case 753: if (!yytrial) -#line 1901 "asmparse.y" +#line 1892 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 11128 "asmparse.cpp.tab.c" +#line 10971 "asmparse.cpp.tab.c" break; -case 756: +case 754: if (!yytrial) -#line 1905 "asmparse.y" +#line 1896 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11135 "asmparse.cpp.tab.c" +#line 10978 "asmparse.cpp.tab.c" break; -case 757: +case 755: if (!yytrial) -#line 1908 "asmparse.y" +#line 1899 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11142 "asmparse.cpp.tab.c" +#line 10985 "asmparse.cpp.tab.c" break; -case 758: +case 756: if (!yytrial) -#line 1912 "asmparse.y" +#line 1903 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11148 "asmparse.cpp.tab.c" +#line 10991 "asmparse.cpp.tab.c" break; -case 759: +case 757: if (!yytrial) -#line 1914 "asmparse.y" +#line 1905 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 11154 "asmparse.cpp.tab.c" +#line 10997 "asmparse.cpp.tab.c" break; -case 760: +case 758: if (!yytrial) -#line 1917 "asmparse.y" +#line 1908 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 11160 "asmparse.cpp.tab.c" +#line 11003 "asmparse.cpp.tab.c" break; -case 761: +case 759: if (!yytrial) -#line 1918 "asmparse.y" +#line 1909 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 11166 "asmparse.cpp.tab.c" +#line 11009 "asmparse.cpp.tab.c" break; -case 762: +case 760: if (!yytrial) -#line 1921 "asmparse.y" +#line 1912 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 11172 "asmparse.cpp.tab.c" +#line 11015 "asmparse.cpp.tab.c" break; -case 763: +case 761: if (!yytrial) -#line 1924 "asmparse.y" +#line 1915 "asmparse.y" { yyval.int32 = 1; } -#line 11178 "asmparse.cpp.tab.c" +#line 11021 "asmparse.cpp.tab.c" break; -case 764: +case 762: if (!yytrial) -#line 1925 "asmparse.y" +#line 1916 "asmparse.y" { yyval.int32 = 0; } -#line 11184 "asmparse.cpp.tab.c" +#line 11027 "asmparse.cpp.tab.c" break; -case 765: +case 763: if (!yytrial) -#line 1928 "asmparse.y" +#line 1919 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 11192 "asmparse.cpp.tab.c" +#line 11035 "asmparse.cpp.tab.c" break; -case 766: +case 764: if (!yytrial) -#line 1931 "asmparse.y" +#line 1922 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11200 "asmparse.cpp.tab.c" +#line 11043 "asmparse.cpp.tab.c" break; -case 767: +case 765: if (!yytrial) -#line 1934 "asmparse.y" +#line 1925 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11208 "asmparse.cpp.tab.c" +#line 11051 "asmparse.cpp.tab.c" break; -case 768: +case 766: if (!yytrial) -#line 1937 "asmparse.y" +#line 1928 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 11217 "asmparse.cpp.tab.c" +#line 11060 "asmparse.cpp.tab.c" break; -case 769: +case 767: if (!yytrial) -#line 1941 "asmparse.y" +#line 1932 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11228 "asmparse.cpp.tab.c" +#line 11071 "asmparse.cpp.tab.c" break; -case 770: +case 768: if (!yytrial) -#line 1947 "asmparse.y" +#line 1938 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11239 "asmparse.cpp.tab.c" +#line 11082 "asmparse.cpp.tab.c" break; -case 771: +case 769: if (!yytrial) -#line 1953 "asmparse.y" +#line 1944 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11250 "asmparse.cpp.tab.c" +#line 11093 "asmparse.cpp.tab.c" break; -case 772: +case 770: if (!yytrial) -#line 1959 "asmparse.y" +#line 1950 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11261 "asmparse.cpp.tab.c" +#line 11104 "asmparse.cpp.tab.c" break; -case 773: +case 771: if (!yytrial) -#line 1967 "asmparse.y" +#line 1958 "asmparse.y" { yyval.secAct = dclRequest; } -#line 11267 "asmparse.cpp.tab.c" +#line 11110 "asmparse.cpp.tab.c" break; -case 774: +case 772: if (!yytrial) -#line 1968 "asmparse.y" +#line 1959 "asmparse.y" { yyval.secAct = dclDemand; } -#line 11273 "asmparse.cpp.tab.c" +#line 11116 "asmparse.cpp.tab.c" break; -case 775: +case 773: if (!yytrial) -#line 1969 "asmparse.y" +#line 1960 "asmparse.y" { yyval.secAct = dclAssert; } -#line 11279 "asmparse.cpp.tab.c" +#line 11122 "asmparse.cpp.tab.c" break; -case 776: +case 774: if (!yytrial) -#line 1970 "asmparse.y" +#line 1961 "asmparse.y" { yyval.secAct = dclDeny; } -#line 11285 "asmparse.cpp.tab.c" +#line 11128 "asmparse.cpp.tab.c" break; -case 777: +case 775: if (!yytrial) -#line 1971 "asmparse.y" +#line 1962 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 11291 "asmparse.cpp.tab.c" +#line 11134 "asmparse.cpp.tab.c" break; -case 778: +case 776: if (!yytrial) -#line 1972 "asmparse.y" +#line 1963 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 11297 "asmparse.cpp.tab.c" +#line 11140 "asmparse.cpp.tab.c" break; -case 779: +case 777: if (!yytrial) -#line 1973 "asmparse.y" +#line 1964 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 11303 "asmparse.cpp.tab.c" +#line 11146 "asmparse.cpp.tab.c" break; -case 780: +case 778: if (!yytrial) -#line 1974 "asmparse.y" +#line 1965 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 11309 "asmparse.cpp.tab.c" +#line 11152 "asmparse.cpp.tab.c" break; -case 781: +case 779: if (!yytrial) -#line 1975 "asmparse.y" +#line 1966 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 11315 "asmparse.cpp.tab.c" +#line 11158 "asmparse.cpp.tab.c" break; -case 782: +case 780: if (!yytrial) -#line 1976 "asmparse.y" +#line 1967 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 11321 "asmparse.cpp.tab.c" +#line 11164 "asmparse.cpp.tab.c" break; -case 783: +case 781: if (!yytrial) -#line 1977 "asmparse.y" +#line 1968 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 11327 "asmparse.cpp.tab.c" +#line 11170 "asmparse.cpp.tab.c" break; -case 784: +case 782: if (!yytrial) -#line 1978 "asmparse.y" +#line 1969 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 11333 "asmparse.cpp.tab.c" +#line 11176 "asmparse.cpp.tab.c" break; -case 785: +case 783: if (!yytrial) -#line 1979 "asmparse.y" +#line 1970 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 11339 "asmparse.cpp.tab.c" +#line 11182 "asmparse.cpp.tab.c" break; -case 786: +case 784: if (!yytrial) -#line 1980 "asmparse.y" +#line 1971 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11345 "asmparse.cpp.tab.c" +#line 11188 "asmparse.cpp.tab.c" break; -case 787: +case 785: if (!yytrial) -#line 1981 "asmparse.y" +#line 1972 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11351 "asmparse.cpp.tab.c" +#line 11194 "asmparse.cpp.tab.c" break; -case 788: +case 786: if (!yytrial) -#line 1985 "asmparse.y" +#line 1976 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11357 "asmparse.cpp.tab.c" +#line 11200 "asmparse.cpp.tab.c" break; -case 789: +case 787: if (!yytrial) -#line 1986 "asmparse.y" +#line 1977 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11363 "asmparse.cpp.tab.c" +#line 11206 "asmparse.cpp.tab.c" break; -case 790: +case 788: if (!yytrial) -#line 1989 "asmparse.y" +#line 1980 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11371 "asmparse.cpp.tab.c" +#line 11214 "asmparse.cpp.tab.c" break; -case 791: +case 789: if (!yytrial) -#line 1992 "asmparse.y" +#line 1983 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11378 "asmparse.cpp.tab.c" +#line 11221 "asmparse.cpp.tab.c" break; -case 792: +case 790: if (!yytrial) -#line 1994 "asmparse.y" +#line 1985 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11386 "asmparse.cpp.tab.c" +#line 11229 "asmparse.cpp.tab.c" break; -case 793: +case 791: if (!yytrial) -#line 1997 "asmparse.y" +#line 1988 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11393 "asmparse.cpp.tab.c" +#line 11236 "asmparse.cpp.tab.c" break; -case 794: +case 792: if (!yytrial) -#line 2000 "asmparse.y" +#line 1991 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11401 "asmparse.cpp.tab.c" +#line 11244 "asmparse.cpp.tab.c" break; -case 795: +case 793: if (!yytrial) -#line 2004 "asmparse.y" +#line 1995 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11408 "asmparse.cpp.tab.c" +#line 11251 "asmparse.cpp.tab.c" break; -case 796: +case 794: if (!yytrial) -#line 2007 "asmparse.y" +#line 1998 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11416 "asmparse.cpp.tab.c" +#line 11259 "asmparse.cpp.tab.c" break; -case 797: +case 795: if (!yytrial) -#line 2011 "asmparse.y" +#line 2002 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11423 "asmparse.cpp.tab.c" +#line 11266 "asmparse.cpp.tab.c" break; -case 798: +case 796: if (!yytrial) -#line 2014 "asmparse.y" +#line 2005 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11431 "asmparse.cpp.tab.c" +#line 11274 "asmparse.cpp.tab.c" break; -case 799: +case 797: if (!yytrial) -#line 2018 "asmparse.y" +#line 2009 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11438 "asmparse.cpp.tab.c" +#line 11281 "asmparse.cpp.tab.c" break; -case 800: +case 798: if (!yytrial) -#line 2020 "asmparse.y" +#line 2011 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11446 "asmparse.cpp.tab.c" +#line 11289 "asmparse.cpp.tab.c" break; -case 801: +case 799: if (!yytrial) -#line 2027 "asmparse.y" +#line 2018 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11452 "asmparse.cpp.tab.c" +#line 11295 "asmparse.cpp.tab.c" break; -case 802: +case 800: if (!yytrial) -#line 2028 "asmparse.y" +#line 2019 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11458 "asmparse.cpp.tab.c" +#line 11301 "asmparse.cpp.tab.c" break; -case 803: +case 801: if (!yytrial) -#line 2031 "asmparse.y" +#line 2022 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11464 "asmparse.cpp.tab.c" +#line 11307 "asmparse.cpp.tab.c" break; -case 804: +case 802: if (!yytrial) -#line 2032 "asmparse.y" +#line 2023 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11470 "asmparse.cpp.tab.c" +#line 11313 "asmparse.cpp.tab.c" break; -case 805: +case 803: if (!yytrial) -#line 2035 "asmparse.y" +#line 2026 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11476 "asmparse.cpp.tab.c" +#line 11319 "asmparse.cpp.tab.c" break; -case 806: +case 804: if (!yytrial) -#line 2036 "asmparse.y" +#line 2027 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11482 "asmparse.cpp.tab.c" +#line 11325 "asmparse.cpp.tab.c" break; -case 807: +case 805: if (!yytrial) -#line 2039 "asmparse.y" +#line 2030 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11488 "asmparse.cpp.tab.c" +#line 11331 "asmparse.cpp.tab.c" break; -case 808: +case 806: if (!yytrial) -#line 2042 "asmparse.y" +#line 2033 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11494 "asmparse.cpp.tab.c" +#line 11337 "asmparse.cpp.tab.c" break; -case 809: +case 807: if (!yytrial) -#line 2045 "asmparse.y" +#line 2036 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11500 "asmparse.cpp.tab.c" +#line 11343 "asmparse.cpp.tab.c" break; -case 810: +case 808: if (!yytrial) -#line 2046 "asmparse.y" +#line 2037 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11506 "asmparse.cpp.tab.c" +#line 11349 "asmparse.cpp.tab.c" break; -case 811: +case 809: if (!yytrial) -#line 2047 "asmparse.y" +#line 2038 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11512 "asmparse.cpp.tab.c" +#line 11355 "asmparse.cpp.tab.c" break; -case 812: +case 810: if (!yytrial) -#line 2048 "asmparse.y" +#line 2039 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11518 "asmparse.cpp.tab.c" +#line 11361 "asmparse.cpp.tab.c" break; -case 813: +case 811: if (!yytrial) -#line 2049 "asmparse.y" +#line 2040 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11524 "asmparse.cpp.tab.c" +#line 11367 "asmparse.cpp.tab.c" break; -case 814: +case 812: if (!yytrial) -#line 2050 "asmparse.y" +#line 2041 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11530 "asmparse.cpp.tab.c" +#line 11373 "asmparse.cpp.tab.c" break; -case 815: +case 813: if (!yytrial) -#line 2051 "asmparse.y" +#line 2042 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11536 "asmparse.cpp.tab.c" +#line 11379 "asmparse.cpp.tab.c" break; -case 816: +case 814: if (!yytrial) -#line 2052 "asmparse.y" +#line 2043 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11542 "asmparse.cpp.tab.c" +#line 11385 "asmparse.cpp.tab.c" break; -case 817: +case 815: if (!yytrial) -#line 2053 "asmparse.y" +#line 2044 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11548 "asmparse.cpp.tab.c" +#line 11391 "asmparse.cpp.tab.c" break; -case 818: +case 816: if (!yytrial) -#line 2054 "asmparse.y" +#line 2045 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11554 "asmparse.cpp.tab.c" +#line 11397 "asmparse.cpp.tab.c" break; -case 821: +case 819: if (!yytrial) -#line 2061 "asmparse.y" +#line 2052 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11560 "asmparse.cpp.tab.c" +#line 11403 "asmparse.cpp.tab.c" break; -case 824: +case 822: if (!yytrial) -#line 2066 "asmparse.y" +#line 2057 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11566 "asmparse.cpp.tab.c" +#line 11409 "asmparse.cpp.tab.c" break; -case 825: +case 823: if (!yytrial) -#line 2067 "asmparse.y" +#line 2058 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11572 "asmparse.cpp.tab.c" +#line 11415 "asmparse.cpp.tab.c" break; -case 826: +case 824: if (!yytrial) -#line 2070 "asmparse.y" +#line 2061 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11578 "asmparse.cpp.tab.c" +#line 11421 "asmparse.cpp.tab.c" break; -case 827: +case 825: if (!yytrial) -#line 2072 "asmparse.y" +#line 2063 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11584 "asmparse.cpp.tab.c" +#line 11427 "asmparse.cpp.tab.c" break; -case 828: +case 826: if (!yytrial) -#line 2073 "asmparse.y" +#line 2064 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11590 "asmparse.cpp.tab.c" +#line 11433 "asmparse.cpp.tab.c" break; -case 829: +case 827: if (!yytrial) -#line 2074 "asmparse.y" +#line 2065 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11596 "asmparse.cpp.tab.c" +#line 11439 "asmparse.cpp.tab.c" break; -case 832: +case 830: if (!yytrial) -#line 2079 "asmparse.y" +#line 2070 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11602 "asmparse.cpp.tab.c" +#line 11445 "asmparse.cpp.tab.c" break; -case 833: +case 831: if (!yytrial) -#line 2082 "asmparse.y" +#line 2073 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11608 "asmparse.cpp.tab.c" +#line 11451 "asmparse.cpp.tab.c" break; -case 834: +case 832: if (!yytrial) -#line 2085 "asmparse.y" +#line 2076 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11614 "asmparse.cpp.tab.c" +#line 11457 "asmparse.cpp.tab.c" break; -case 835: +case 833: if (!yytrial) -#line 2089 "asmparse.y" +#line 2080 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11620 "asmparse.cpp.tab.c" +#line 11463 "asmparse.cpp.tab.c" break; -case 836: +case 834: if (!yytrial) -#line 2091 "asmparse.y" +#line 2082 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11626 "asmparse.cpp.tab.c" +#line 11469 "asmparse.cpp.tab.c" break; -case 839: +case 837: if (!yytrial) -#line 2098 "asmparse.y" +#line 2089 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11632 "asmparse.cpp.tab.c" +#line 11475 "asmparse.cpp.tab.c" break; -case 841: +case 839: if (!yytrial) -#line 2100 "asmparse.y" +#line 2091 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11638 "asmparse.cpp.tab.c" +#line 11481 "asmparse.cpp.tab.c" break; -case 842: +case 840: if (!yytrial) -#line 2101 "asmparse.y" +#line 2092 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11644 "asmparse.cpp.tab.c" +#line 11487 "asmparse.cpp.tab.c" break; -case 843: +case 841: if (!yytrial) -#line 2104 "asmparse.y" +#line 2095 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11650 "asmparse.cpp.tab.c" +#line 11493 "asmparse.cpp.tab.c" break; -case 844: +case 842: if (!yytrial) -#line 2107 "asmparse.y" +#line 2098 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11656 "asmparse.cpp.tab.c" +#line 11499 "asmparse.cpp.tab.c" break; -case 845: +case 843: if (!yytrial) -#line 2110 "asmparse.y" +#line 2101 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11662 "asmparse.cpp.tab.c" +#line 11505 "asmparse.cpp.tab.c" break; -case 846: +case 844: if (!yytrial) -#line 2111 "asmparse.y" +#line 2102 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11668 "asmparse.cpp.tab.c" +#line 11511 "asmparse.cpp.tab.c" break; -case 847: +case 845: if (!yytrial) -#line 2112 "asmparse.y" +#line 2103 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11674 "asmparse.cpp.tab.c" +#line 11517 "asmparse.cpp.tab.c" break; -case 848: +case 846: if (!yytrial) -#line 2113 "asmparse.y" +#line 2104 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11680 "asmparse.cpp.tab.c" +#line 11523 "asmparse.cpp.tab.c" break; -case 849: +case 847: if (!yytrial) -#line 2114 "asmparse.y" +#line 2105 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11686 "asmparse.cpp.tab.c" +#line 11529 "asmparse.cpp.tab.c" break; -case 850: +case 848: if (!yytrial) -#line 2115 "asmparse.y" +#line 2106 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11692 "asmparse.cpp.tab.c" +#line 11535 "asmparse.cpp.tab.c" break; -case 851: +case 849: if (!yytrial) -#line 2116 "asmparse.y" +#line 2107 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11698 "asmparse.cpp.tab.c" +#line 11541 "asmparse.cpp.tab.c" break; -case 852: +case 850: if (!yytrial) -#line 2117 "asmparse.y" +#line 2108 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11704 "asmparse.cpp.tab.c" +#line 11547 "asmparse.cpp.tab.c" break; -case 853: +case 851: if (!yytrial) -#line 2118 "asmparse.y" +#line 2109 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11710 "asmparse.cpp.tab.c" +#line 11553 "asmparse.cpp.tab.c" break; -case 854: +case 852: if (!yytrial) -#line 2119 "asmparse.y" +#line 2110 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11716 "asmparse.cpp.tab.c" +#line 11559 "asmparse.cpp.tab.c" break; -case 857: +case 855: if (!yytrial) -#line 2126 "asmparse.y" +#line 2117 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11722 "asmparse.cpp.tab.c" +#line 11565 "asmparse.cpp.tab.c" break; -case 858: +case 856: if (!yytrial) -#line 2127 "asmparse.y" +#line 2118 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11728 "asmparse.cpp.tab.c" +#line 11571 "asmparse.cpp.tab.c" break; -case 859: +case 857: if (!yytrial) -#line 2128 "asmparse.y" +#line 2119 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11734 "asmparse.cpp.tab.c" +#line 11577 "asmparse.cpp.tab.c" break; -case 860: +case 858: if (!yytrial) -#line 2129 "asmparse.y" +#line 2120 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11741 "asmparse.cpp.tab.c" +#line 11584 "asmparse.cpp.tab.c" break; -case 861: +case 859: if (!yytrial) -#line 2131 "asmparse.y" +#line 2122 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11748 "asmparse.cpp.tab.c" +#line 11591 "asmparse.cpp.tab.c" break; -case 864: +case 862: if (!yytrial) -#line 2137 "asmparse.y" +#line 2128 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11754 "asmparse.cpp.tab.c" +#line 11597 "asmparse.cpp.tab.c" break; -case 865: +case 863: if (!yytrial) -#line 2139 "asmparse.y" +#line 2130 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11760 "asmparse.cpp.tab.c" +#line 11603 "asmparse.cpp.tab.c" break; -case 866: +case 864: if (!yytrial) -#line 2142 "asmparse.y" +#line 2133 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11766 "asmparse.cpp.tab.c" +#line 11609 "asmparse.cpp.tab.c" break; -case 867: +case 865: if (!yytrial) -#line 2143 "asmparse.y" +#line 2134 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11772 "asmparse.cpp.tab.c" +#line 11615 "asmparse.cpp.tab.c" break; -case 868: +case 866: if (!yytrial) -#line 2144 "asmparse.y" +#line 2135 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11778 "asmparse.cpp.tab.c" +#line 11621 "asmparse.cpp.tab.c" break; -case 871: +case 869: if (!yytrial) -#line 2151 "asmparse.y" +#line 2142 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11784 "asmparse.cpp.tab.c" +#line 11627 "asmparse.cpp.tab.c" break; -case 872: +case 870: if (!yytrial) -#line 2152 "asmparse.y" +#line 2143 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11790 "asmparse.cpp.tab.c" +#line 11633 "asmparse.cpp.tab.c" break; -#line 11792 "asmparse.cpp.tab.c" +#line 11635 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 89740c21aa189..c87f6a63b1cc1 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -1544,9 +1544,6 @@ enum CorInfoTokenKind // token comes from devirtualizing a method CORINFO_TOKENKIND_DevirtualizedMethod = 0x800 | CORINFO_TOKENKIND_Method, - - // token comes from CEE_LDCTARG - CORINFO_TOKENKIND_Ldctarg = 0x1000 | CORINFO_TOKENKIND_Class | CORINFO_TOKENKIND_Method, }; struct CORINFO_RESOLVED_TOKEN diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 767c31e40611f..597b6561c0b75 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -241,7 +241,7 @@ OPDEF(CEE_UNUSED63, "unused", Pop0, Pu OPDEF(CEE_UNUSED64, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCC, NEXT) OPDEF(CEE_UNUSED65, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCD, NEXT) OPDEF(CEE_UNUSED66, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCE, NEXT) -OPDEF(CEE_LDCTARG, "ldctarg", Pop0, PushI, InlineTok, IPrimitive, 1, 0xFF, 0xCF, NEXT) +OPDEF(CEE_UNUSED67, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCF, NEXT) OPDEF(CEE_LDTOKEN, "ldtoken", Pop0, PushI, InlineTok, IPrimitive, 1, 0xFF, 0xD0, NEXT) OPDEF(CEE_CONV_U2, "conv.u2", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD1, NEXT) OPDEF(CEE_CONV_U1, "conv.u1", Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD2, NEXT) diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index c670ce6b35201..a9665d510609e 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -1115,7 +1115,7 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken case CORINFO_TOKENKIND_Ldtoken: // Allow everything. break; - + case CORINFO_TOKENKIND_Newarr: // Disallow ELEMENT_TYPE_BYREF and ELEMENT_TYPE_VOID if (et == ELEMENT_TYPE_BYREF || et == ELEMENT_TYPE_VOID) From faba1ecd4c2e4949ea17fa30f104faa0b41cb7a6 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 21:30:29 +0900 Subject: [PATCH 35/80] Complete! --- src/coreclr/inc/corinfo.h | 5 ++++ src/coreclr/jit/importer.cpp | 40 +++++++++++++++++++++++++++++ src/coreclr/vm/jitinterface.cpp | 45 ++++++++++++++++++++++----------- 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index c87f6a63b1cc1..a1ac2c7998137 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -1574,6 +1574,11 @@ struct CORINFO_RESOLVED_TOKEN uint32_t cbTypeSpec; PCCOR_SIGNATURE pMethodSpec; uint32_t cbMethodSpec; + + // [Out] Only meaningful if the resolved token is a const value argument. + bool isConstValue; + CorElementType constValueType; + uint64_t constValue; }; struct CORINFO_CALL_INFO diff --git a/src/coreclr/jit/importer.cpp b/src/coreclr/jit/importer.cpp index 3126025c0d922..f981aafa8e5f2 100644 --- a/src/coreclr/jit/importer.cpp +++ b/src/coreclr/jit/importer.cpp @@ -9693,6 +9693,46 @@ void Compiler::impImportBlockCode(BasicBlock* block) lastLoadToken = codeAddr; _impResolveToken(CORINFO_TOKENKIND_Ldtoken); + if (resolvedToken.isConstValue) + { + switch (resolvedToken.constValueType) + { + case ELEMENT_TYPE_BOOLEAN: + case ELEMENT_TYPE_CHAR: + case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: + cval.intVal = (int)*(uint8_t*)&resolvedToken.constValue; + goto PUSH_I4CON; + case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_U2: + cval.intVal = (int)*(uint16_t*)&resolvedToken.constValue; + goto PUSH_I4CON; + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + cval.intVal = (int)*(uint32_t*)&resolvedToken.constValue; + goto PUSH_I4CON; + case ELEMENT_TYPE_I8: + case ELEMENT_TYPE_U8: + cval.lngVal = (long)resolvedToken.constValue; + impPushOnStack(gtNewLconNode(cval.lngVal), typeInfo(TYP_LONG)); + break; + case ELEMENT_TYPE_R4: + cval.dblVal = *(float*)&resolvedToken.constValue; + JITDUMP(" %#.17g", cval.dblVal); + impPushOnStack(gtNewDconNode(cval.dblVal, TYP_FLOAT), typeInfo(TYP_DOUBLE)); + break; + case ELEMENT_TYPE_R8: + cval.dblVal = *(double*)&resolvedToken.constValue; + JITDUMP(" %#.17g", cval.dblVal); + impPushOnStack(gtNewDconNode(cval.dblVal), typeInfo(TYP_DOUBLE)); + break; + default: + _ASSERTE(!"UNKONWN CONST TYPE ARG"); + break; + } + break; + } + tokenType = info.compCompHnd->getTokenTypeAsHandle(&resolvedToken); op1 = impTokenToHandle(&resolvedToken, nullptr, true); diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index a9665d510609e..0894c53b13a36 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -1110,25 +1110,40 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken // tokenType specific verification and transformations // CorElementType et = th.GetInternalCorElementType(); - switch (tokenType) + if (et == CorElementType::ELEMENT_TYPE_CTARG) { - case CORINFO_TOKENKIND_Ldtoken: - // Allow everything. - break; + // This is a const type parameter, we need to load the type and value from TypeDesc. + pResolvedToken->isConstValue = th.AsTypeDesc()->IsConstValue(); + _ASSERTE(pResolvedToken->isConstValue); + pResolvedToken->constValueType = th.AsTypeDesc()->GetConstValueType().GetInternalCorElementType(); + pResolvedToken->constValue = th.AsTypeDesc()->GetConstValue(); + } + else + { + pResolvedToken->isConstValue = false; + pResolvedToken->constValueType = ELEMENT_TYPE_END; + pResolvedToken->constValue = 0; + + switch (tokenType) + { + case CORINFO_TOKENKIND_Ldtoken: + // Allow everything. + break; - case CORINFO_TOKENKIND_Newarr: - // Disallow ELEMENT_TYPE_BYREF and ELEMENT_TYPE_VOID - if (et == ELEMENT_TYPE_BYREF || et == ELEMENT_TYPE_VOID) - COMPlusThrow(kInvalidProgramException); + case CORINFO_TOKENKIND_Newarr: + // Disallow ELEMENT_TYPE_BYREF and ELEMENT_TYPE_VOID + if (et == ELEMENT_TYPE_BYREF || et == ELEMENT_TYPE_VOID) + COMPlusThrow(kInvalidProgramException); - th = ClassLoader::LoadArrayTypeThrowing(th); - break; + th = ClassLoader::LoadArrayTypeThrowing(th); + break; - default: - // Disallow ELEMENT_TYPE_BYREF and ELEMENT_TYPE_VOID - if (et == ELEMENT_TYPE_BYREF || et == ELEMENT_TYPE_VOID) - COMPlusThrow(kInvalidProgramException); - break; + default: + // Disallow ELEMENT_TYPE_BYREF and ELEMENT_TYPE_VOID + if (et == ELEMENT_TYPE_BYREF || et == ELEMENT_TYPE_VOID) + COMPlusThrow(kInvalidProgramException); + break; + } } // The JIT interface should always return fully loaded types From 6ee5cf5b0d20618604eaabbbede0ec3c84595d7f Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 23:07:55 +0900 Subject: [PATCH 36/80] Fix data gets truncated due to cast. --- src/coreclr/vm/ceeload.h | 2 +- src/coreclr/vm/clsload.cpp | 2 +- src/coreclr/vm/clsload.hpp | 2 +- src/coreclr/vm/siginfo.cpp | 8 ++++---- src/coreclr/vm/typehandle.cpp | 7 ++++++- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/coreclr/vm/ceeload.h b/src/coreclr/vm/ceeload.h index 77ef721e7711d..3017b020b6c39 100644 --- a/src/coreclr/vm/ceeload.h +++ b/src/coreclr/vm/ceeload.h @@ -758,7 +758,7 @@ class Module : public ModuleBase // Linear mapping from GenericParam token to TypeVarTypeDesc* LookupMap m_GenericParamToDescMap; - + // Linear mapping from TypeDef token to the MethodTable * for its canonical generic instantiation // If the type is not generic, the entry is guaranteed to be NULL. This means we are paying extra // space in order to use the LookupMap infrastructure, but what it buys us is IBC support and diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index 6abdba0f6dc76..e8d84eb92738d 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -1653,7 +1653,7 @@ TypeHandle ClassLoader::LoadFnptrTypeThrowing(BYTE callConv, } TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, - ULONG value, + uint64_t value, CorElementType typ /* ELEMENT_TYPE_CTARG */, LoadTypesFlag fLoadTypes /* LoadTypes */, ClassLoadLevel level /* CLASS_LOADED */) diff --git a/src/coreclr/vm/clsload.hpp b/src/coreclr/vm/clsload.hpp index 891c5b2da3136..5719b11bb3cde 100644 --- a/src/coreclr/vm/clsload.hpp +++ b/src/coreclr/vm/clsload.hpp @@ -701,7 +701,7 @@ class ClassLoader ClassLoadLevel level = CLASS_LOADED); static TypeHandle LoadConstValueTypeThrowing(CorElementType valueType, - ULONG value, + uint64_t value, CorElementType typ = ELEMENT_TYPE_CTARG, LoadTypesFlag fLoadTypes = LoadTypes, ClassLoadLevel level = CLASS_LOADED); diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 4edb0313c802d..7c922c02cc122 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1333,12 +1333,12 @@ TypeHandle SigPointer::GetTypeHandleThrowing( case ELEMENT_TYPE_CTARG: { #ifndef DACCESS_COMPILE - CorElementType elemType; + CorElementType valueType; uint32_t cb; PCCOR_SIGNATURE elem; - IfFailThrowBF(psig.GetConstTypeArg(&elemType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); - ULONG value = *(ULONG*)elem; - thRet = ClassLoader::LoadConstValueTypeThrowing(elemType, value); + IfFailThrowBF(psig.GetConstTypeArg(&valueType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); + uint64_t value = *(uint64_t*)elem; + thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value); #else DacNotImpl(); thRet = TypeHandle(); diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index ca4f44175a4f9..d24f0e3771311 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1539,7 +1539,12 @@ TypeKey TypeHandle::GetTypeKey() const { TypeDesc *pTD = AsTypeDesc(); CorElementType etype = pTD->GetInternalCorElementType(); - if (CorTypeInfo::IsModifier_NoThrow(etype) || etype == ELEMENT_TYPE_VALUETYPE) + if (etype == ELEMENT_TYPE_CTARG) + { + TypeKey tk(AsConstValue()->GetConstValueType(), AsConstValue()->GetConstValue()); + return tk; + } + else if (CorTypeInfo::IsModifier_NoThrow(etype) || etype == ELEMENT_TYPE_VALUETYPE) { TypeKey tk(etype, pTD->GetTypeParam()); return tk; From 6a45bb2646a8453b3d25c8be0160df1c3243e9f8 Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 27 Jul 2023 23:09:27 +0900 Subject: [PATCH 37/80] Add a NYI note around type loader. --- src/coreclr/vm/siginfo.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 7c922c02cc122..78cbe998e959b 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1338,6 +1338,10 @@ TypeHandle SigPointer::GetTypeHandleThrowing( PCCOR_SIGNATURE elem; IfFailThrowBF(psig.GetConstTypeArg(&valueType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); uint64_t value = *(uint64_t*)elem; + if (fLoadTypes != ClassLoader::LoadTypes) + { + _ASSERTE(!"NYI: lookup const value from a map instead of allocating a new one."); + } thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value); #else DacNotImpl(); From 306b09a7aa4f3a7363ae4ffe6880780549a6f16e Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 01:46:44 +0900 Subject: [PATCH 38/80] Fixes for type resolving on (M)CVAR --- src/coreclr/vm/siginfo.cpp | 39 +++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 78cbe998e959b..11dc6ca3aa87f 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -187,7 +187,7 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext if (pTypeContext != NULL) { uint32_t varNum; - if (typ == ELEMENT_TYPE_VAR) + if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_CVAR) { IfFailThrowBF(GetData(&varNum), BFA_BAD_COMPLUS_SIG, pSigModule); THROW_BAD_FORMAT_MAYBE(varNum < pTypeContext->m_classInst.GetNumArgs(), BFA_BAD_COMPLUS_SIG, pSigModule); @@ -196,7 +196,7 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext pSigBuilder->AppendPointer(pTypeContext->m_classInst[varNum].AsPtr()); return; } - if (typ == ELEMENT_TYPE_MVAR) + if (typ == ELEMENT_TYPE_MVAR || typ == ELEMENT_TYPE_MCVAR) { IfFailThrowBF(GetData(&varNum), BFA_BAD_COMPLUS_SIG, pSigModule); THROW_BAD_FORMAT_MAYBE(varNum < pTypeContext->m_methodInst.GetNumArgs(), BFA_BAD_COMPLUS_SIG, pSigModule); @@ -218,6 +218,8 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext break; case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: { uint32_t varNum; // Skip variable number @@ -1468,7 +1470,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( for (uint32_t iInstantiation = 0; iInstantiation < instantiationCount; iInstantiation++) { IfFailThrowBF(tempsig.GetElemType(&elemType), BFA_BAD_SIGNATURE, pOrigModule); - if (elemType != ELEMENT_TYPE_VAR) + if (elemType != ELEMENT_TYPE_VAR && elemType != ELEMENT_TYPE_CVAR) { exactSelfRecursionDetected = false; break; @@ -1973,7 +1975,7 @@ TypeHandle SigPointer::GetGenericInstType(ModuleBase * pModule, return genericType; } -// SigPointer should be just after E_T_VAR or E_T_MVAR +// SigPointer should be just after E_T_(C)VAR or E_T_M(C)VAR TypeHandle SigPointer::GetTypeVariableThrowing(ModuleBase *pModule, // unused - may be used later for better error reporting CorElementType et, ClassLoader::LoadTypesFlag fLoadTypes/*=LoadTypes*/, @@ -2002,7 +2004,7 @@ TypeHandle SigPointer::GetTypeVariableThrowing(ModuleBase *pModule, // unused - RETURN(res); } -// SigPointer should be just after E_T_VAR or E_T_MVAR +// SigPointer should be just after E_T_(C)VAR or E_T_M(C)VAR TypeHandle SigPointer::GetTypeVariable(CorElementType et, const SigTypeContext *pTypeContext) { @@ -2031,10 +2033,10 @@ TypeHandle SigPointer::GetTypeVariable(CorElementType et, if (!pTypeContext || - (et == ELEMENT_TYPE_VAR && + ((et == ELEMENT_TYPE_VAR || et == ELEMENT_TYPE_CVAR) && (index >= pTypeContext->m_classInst.GetNumArgs())) || - (et == ELEMENT_TYPE_MVAR && + ((et == ELEMENT_TYPE_MVAR || et == ELEMENT_TYPE_MCVAR ) && (index >= pTypeContext->m_methodInst.GetNumArgs()))) { LOG((LF_ALWAYS, LL_INFO1000, "GENERICS: Error: GetTypeVariable on out-of-range type variable\n")); @@ -2042,7 +2044,7 @@ TypeHandle SigPointer::GetTypeVariable(CorElementType et, TypeHandle thNull; RETURN(thNull); } - if (et == ELEMENT_TYPE_VAR) + if (et == ELEMENT_TYPE_VAR || et == ELEMENT_TYPE_CVAR) { RETURN(pTypeContext->m_classInst[index]); } @@ -2248,12 +2250,13 @@ BOOL SigPointer::IsClassHelper(Module* pModule, LPCUTF8 szClassName, const SigTy } BAD_FORMAT_NOTHROW_ASSERT((typ == ELEMENT_TYPE_VAR) || (typ == ELEMENT_TYPE_MVAR) || + (typ == ELEMENT_TYPE_CVAR) || (typ == ELEMENT_TYPE_MCVAR) || (typ == ELEMENT_TYPE_CLASS) || (typ == ELEMENT_TYPE_VALUETYPE) || (typ == ELEMENT_TYPE_OBJECT) || (typ == ELEMENT_TYPE_STRING) || (typ == ELEMENT_TYPE_INTERNAL) || (typ == ELEMENT_TYPE_GENERICINST)); - if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_MVAR) + if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_MVAR || typ == ELEMENT_TYPE_CVAR || typ == ELEMENT_TYPE_MCVAR) { TypeHandle ty; @@ -2474,6 +2477,8 @@ SigPointer::PeekElemTypeClosed( if ((type == ELEMENT_TYPE_GENERICINST) || (type == ELEMENT_TYPE_VAR) || (type == ELEMENT_TYPE_MVAR) || + (type == ELEMENT_TYPE_CVAR) || + (type == ELEMENT_TYPE_MCVAR) || (type == ELEMENT_TYPE_INTERNAL)) { SigPointer sp(*this); @@ -2516,6 +2521,8 @@ SigPointer::PeekElemTypeClosed( } case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : + case ELEMENT_TYPE_CVAR : + case ELEMENT_TYPE_MCVAR : { TypeHandle th = sp.GetTypeVariable(type, pTypeContext); if (th.IsNull()) @@ -2581,6 +2588,8 @@ mdTypeRef SigPointer::PeekValueTypeTokenClosed(Module *pModule, const SigTypeCon } case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : + case ELEMENT_TYPE_CVAR : + case ELEMENT_TYPE_MCVAR : { SigPointer sp(*this); @@ -2637,7 +2646,7 @@ UINT MetaSig::GetElemSize(CorElementType etype, TypeHandle thValueType) if (!thValueType.IsNull()) return thValueType.GetSize(); - if (etype == ELEMENT_TYPE_VAR || etype == ELEMENT_TYPE_MVAR) + if (etype == ELEMENT_TYPE_VAR || etype == ELEMENT_TYPE_MVAR || etype == ELEMENT_TYPE_CVAR || etype == ELEMENT_TYPE_MCVAR) { LOG((LF_ALWAYS, LL_INFO1000, "GENERICS: Warning: SizeOf on VAR without instantiation\n")); return(sizeof(LPVOID)); @@ -3703,7 +3712,7 @@ MetaSig::CompareElementType( return FALSE; } - if ((*pSig2 == ELEMENT_TYPE_VAR) && (pSubst2 != NULL) && !pSubst2->GetInst().IsNull()) + if ((*pSig2 == ELEMENT_TYPE_VAR || *pSig2 == ELEMENT_TYPE_CVAR) && (pSubst2 != NULL) && !pSubst2->GetInst().IsNull()) { SigPointer inst = pSubst2->GetInst(); pSig2++; @@ -3730,7 +3739,7 @@ MetaSig::CompareElementType( state); } - if ((*pSig1 == ELEMENT_TYPE_VAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) + if ((*pSig1 == ELEMENT_TYPE_VAR || *pSig1 == ELEMENT_TYPE_CVAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) { SigPointer inst = pSubst1->GetInst(); pSig1++; @@ -3893,6 +3902,8 @@ MetaSig::CompareElementType( case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: { DWORD varNum1; IfFailThrow(CorSigUncompressData_EndPtr(pSig1, pEndSig1, &varNum1)); @@ -4619,7 +4630,7 @@ MetaSig::CompareElementTypeToToken( return FALSE; } - if ((*pSig1 == ELEMENT_TYPE_VAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) + if ((*pSig1 == ELEMENT_TYPE_VAR || *pSig1 == ELEMENT_TYPE_CVAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) { SigPointer inst = pSubst1->GetInst(); pSig1++; @@ -4692,6 +4703,8 @@ MetaSig::CompareElementTypeToToken( case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_CVAR: + case ELEMENT_TYPE_MCVAR: { return FALSE; } From 167bff9d8a832ffc277b0caff74dbde0dfa53bcd Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 11:32:55 +0900 Subject: [PATCH 39/80] Implement superpmi --- .../tools/superpmi/superpmi-shared/lwmlist.h | 3 + .../superpmi-shared/methodcontext.cpp | 76 +++++++++++++++++++ .../superpmi/superpmi-shared/methodcontext.h | 15 ++++ .../tools/superpmi/superpmi/icorjitinfo.cpp | 18 +++++ 4 files changed, 112 insertions(+) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h index 6c6bbed9bd965..af6a1d6991a70 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h @@ -52,6 +52,9 @@ LWM(GetExactClasses, DLD, DLD) LWM(GetArrayInitializationData, DLD, DWORDLONG) LWM(GetArrayRank, DWORDLONG, DWORD) LWM(GetArrayIntrinsicID, DWORDLONG, DWORD) +LWM(IsConstValue, DWORDLONG, DWORD) +LWM(GetConstValueType, DWORDLONG, DWORD) +LWM(GetConstValue, DWORDLONG, DWORDLONG) LWM(GetBoundaries, DWORDLONG, Agnostic_GetBoundaries) LWM(GetBoxHelper, DWORDLONG, DWORD) LWM(GetBuiltinClass, DWORD, DWORDLONG) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp index ad0f2c7dd6dae..cefb43ae8f2cc 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp @@ -5136,6 +5136,82 @@ void* MethodContext::repGetArrayInitializationData(CORINFO_FIELD_HANDLE field, D return result; } +void MethodContext::recIsConstValue(CORINFO_CLASS_HANDLE cls, bool result) +{ + if (IsConstValue == nullptr) + IsConstValue = new LightWeightMap(); + + DWORDLONG key = CastHandle(cls); + DWORD value = result ? 0 : 1; + IsConstValue->Add(key, value); + DEBUG_REC(dmpIsConstValue(key, value)); +} + +void MethodContext::dmpIsConstValue(DWORDLONG key, DWORD value) +{ + printf("IsConstValue key cls-%016" PRIX64 ", value res-%u", key, value); +} + +bool MethodContext::repIsConstValue(CORINFO_CLASS_HANDLE cls) +{ + DWORDLONG key = CastHandle(cls); + DWORD value = LookupByKeyOrMissNoMessage(IsConstValue, key); + + DEBUG_REP(dmpIsConstValue(key, value)); + bool result = (bool)value; + return result; +} + +void MethodContext::recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result) +{ + if (GetConstValue == nullptr) + GetConstValue = new LightWeightMap(); + + DWORDLONG key = CastHandle(cls); + GetConstValue->Add(key, result); + DEBUG_REC(dmpGetConstValue(key, result)); +} + +void MethodContext::dmpGetConstValue(DWORDLONG key, DWORDLONG value) +{ + printf("GetConstValue key cls-%016" PRIX64 ", value res-0x%016llx", key, value); +} + +uint64_t MethodContext::repGetConstValue(CORINFO_CLASS_HANDLE cls) +{ + DWORDLONG key = CastHandle(cls); + DWORDLONG value = LookupByKeyOrMissNoMessage(GetConstValue, key); + + DEBUG_REP(dmpGetConstValue(key, value)); + DWORDLONG result = (uint64_t)value; + return result; +} + +void MethodContext::recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result) +{ + if (GetConstValueType == nullptr) + GetConstValueType = new LightWeightMap(); + + DWORDLONG key = CastHandle(cls); + GetConstValueType->Add(key, result); + DEBUG_REC(dmpGetConstValueType(key, result)); +} + +void MethodContext::dmpGetConstValueType(DWORDLONG key, DWORD value) +{ + printf("GetConstValueType key cls-%016" PRIX64 ", value res-%u(%s)", key, value, toString((CorInfoType)value)); +} + +CorInfoType MethodContext::repGetConstValueType(CORINFO_CLASS_HANDLE cls) +{ + DWORDLONG key = CastHandle(cls); + DWORD value = LookupByKeyOrMissNoMessage(GetConstValueType, key); + + DEBUG_REP(dmpGetConstValueType(key, value)); + CorInfoType result = (CorInfoType)value; + return result; +} + void MethodContext::recGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup) { if (GetAddressOfPInvokeTarget == nullptr) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h index 63c2f0191c3d9..eb5f2fe748799 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h @@ -645,6 +645,18 @@ class MethodContext void dmpGetArrayInitializationData(DLD key, DWORDLONG value); void* repGetArrayInitializationData(CORINFO_FIELD_HANDLE field, DWORD size); + void recIsConstValue(CORINFO_CLASS_HANDLE cls, bool result); + void dmpIsConstValue(DWORDLONG key, DWORD value); + bool repIsConstValue(CORINFO_CLASS_HANDLE cls); + + void recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result); + void dmpGetConstValue(DWORDLONG key, DWORDLONG value); + uint64_t repGetConstValue(CORINFO_CLASS_HANDLE cls); + + void recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result); + void dmpGetConstValueType(DWORDLONG key, DWORD value); + CorInfoType repGetConstValueType(CORINFO_CLASS_HANDLE cls); + void recGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup); void dmpGetAddressOfPInvokeTarget(DWORDLONG key, DLD value); void repGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup); @@ -1133,6 +1145,9 @@ enum mcPackets Packet_GetRISCV64PassStructInRegisterFlags = 209, Packet_GetObjectContent = 210, Packet_GetTypeLayout = 211, + Packet_IsConstValue = 212, + Packet_GetConstValueType = 213, + Packet_GetConstValue = 214, }; void SetDebugDumpVariables(); diff --git a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp index f8f84b24cd6cd..564aea5d95bcf 100644 --- a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp @@ -803,6 +803,7 @@ void* MyICJI::getArrayInitializationData(CORINFO_FIELD_HANDLE field, uint32_t si return jitInstance->mc->repGetArrayInitializationData(field, size); } + // Check Visibility rules. CorInfoIsAccessAllowedResult MyICJI::canAccessClass(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, @@ -816,6 +817,23 @@ CorInfoIsAccessAllowedResult MyICJI::canAccessClass(CORINFO_RESOLVED_TOKEN* pRes return jitInstance->mc->repCanAccessClass(pResolvedToken, callerHandle, pAccessHelper); } +bool MyICJI::isConstValue(CORINFO_CLASS_HANDLE cls) +{ + jitInstance->mc->cr->AddCall("isConstValue"); + return jitInstance->mc->repIsConstValue(cls); +} + +uint64_t MyICJI::getConstValue(CORINFO_CLASS_HANDLE cls) +{ + jitInstance->mc->cr->AddCall("getConstValue"); + return jitInstance->mc->repGetConstValue(cls); +} + +CorInfoType MyICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) +{ + jitInstance->mc->cr->AddCall("getConstValueType"); + return jitInstance->mc->repGetConstValueType(cls); +} /**********************************************************************************/ // // ICorFieldInfo From 179cb05b1ea27db837dabe302a7ac0c1a22b9b21 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 12:09:19 +0900 Subject: [PATCH 40/80] Implement const value lookup --- src/coreclr/vm/ceeload.cpp | 5 +++++ src/coreclr/vm/ceeload.h | 11 +++++++++++ src/coreclr/vm/clsload.cpp | 22 ++++++++++++++++++---- src/coreclr/vm/siginfo.cpp | 7 +++++-- src/coreclr/vm/typehash.cpp | 2 +- src/coreclr/vm/typekey.h | 1 + 6 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/coreclr/vm/ceeload.cpp b/src/coreclr/vm/ceeload.cpp index fc704bc338f45..67325150b9123 100644 --- a/src/coreclr/vm/ceeload.cpp +++ b/src/coreclr/vm/ceeload.cpp @@ -467,6 +467,11 @@ void Module::Initialize(AllocMemTracker *pamTracker, LPCWSTR szName) { m_pAvailableParamTypes = EETypeHashTable::Create(GetLoaderAllocator(), this, PARAMTYPES_HASH_BUCKETS, pamTracker); } + + if (m_pAvailableConstValues == NULL) + { + m_pAvailableConstValues = EETypeHashTable::Create(GetLoaderAllocator(), this, PARAMTYPES_HASH_BUCKETS, pamTracker); + } if (m_pInstMethodHashTable == NULL) { diff --git a/src/coreclr/vm/ceeload.h b/src/coreclr/vm/ceeload.h index 3017b020b6c39..c8648e6c752cc 100644 --- a/src/coreclr/vm/ceeload.h +++ b/src/coreclr/vm/ceeload.h @@ -787,6 +787,9 @@ class Module : public ModuleBase // Hashtable of generic type instances PTR_EETypeHashTable m_pAvailableParamTypes; + // Hashtable of const value instances + PTR_EETypeHashTable m_pAvailableConstValues; + // For protecting additions to m_pInstMethodHashTable CrstExplicitInit m_InstMethodHashTableCrst; @@ -1166,6 +1169,14 @@ class Module : public ModuleBase return m_pAvailableParamTypes; } + EETypeHashTable *GetAvailableConstValues() + { + LIMITED_METHOD_CONTRACT; + SUPPORTS_DAC; + + return m_pAvailableConstValues; + } + InstMethodHashTable *GetInstMethodHashTable() { LIMITED_METHOD_CONTRACT; diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index e8d84eb92738d..6ba6a3297f7e5 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -1121,8 +1121,10 @@ TypeHandle ClassLoader::LookupInLoaderModule(TypeKey *pKey) Module *pLoaderModule = ComputeLoaderModule(pKey); PREFIX_ASSUME(pLoaderModule!=NULL); - - return LookupTypeKey(pKey, pLoaderModule->GetAvailableParamTypes()); + + return LookupTypeKey(pKey, CorTypeInfo::IsConstValue_NoThrow(pKey->GetKind()) ? + pLoaderModule->GetAvailableConstValues() : + pLoaderModule->GetAvailableParamTypes()); } @@ -1674,7 +1676,18 @@ TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, TypeHandle th = TypeHandle(CoreLibBinder::GetElementType(valueType)); TypeKey key(th, value); - TypeHandle typeHnd = TypeHandle(); + + TypeHandle typeHnd = LookupTypeHandleForTypeKey(&key); + if (!typeHnd.IsNull()) + { + RETURN(typeHnd); + } + + // If we're not loading any types at all, then we're not creating + // instantiations either because we're in FORBIDGC_LOADER_USE mode, so + // we should bail out here. + if (fLoadTypes == DontLoadTypes) + RETURN TypeHandle(); #ifndef DACCESS_COMPILE // If we got here, we now have to allocate a new const value type. @@ -3094,7 +3107,8 @@ TypeHandle ClassLoader::PublishType(TypeKey *pTypeKey, TypeHandle typeHnd) if (pTypeKey->IsConstructed()) { Module *pLoaderModule = ComputeLoaderModule(pTypeKey); - EETypeHashTable *pTable = pLoaderModule->GetAvailableParamTypes(); + EETypeHashTable *pTable = CorTypeInfo::IsConstValue_NoThrow(pTypeKey->GetKind()) ? + pLoaderModule->GetAvailableConstValues() : pLoaderModule->GetAvailableParamTypes(); CrstHolder ch(&pLoaderModule->GetClassLoader()->m_AvailableTypesLock); diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 11dc6ca3aa87f..4997dbcdc37e3 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1340,10 +1340,13 @@ TypeHandle SigPointer::GetTypeHandleThrowing( PCCOR_SIGNATURE elem; IfFailThrowBF(psig.GetConstTypeArg(&valueType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); uint64_t value = *(uint64_t*)elem; - if (fLoadTypes != ClassLoader::LoadTypes) + uint64_t mask = 0; + for (uint32_t i = 0; i < cb; i++) { - _ASSERTE(!"NYI: lookup const value from a map instead of allocating a new one."); + mask = mask << 8; + mask = mask | 0xFF; } + value = value & mask; thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value); #else DacNotImpl(); diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index e45513c61dad7..b9fbd1ba9ae9c 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -604,7 +604,7 @@ VOID EETypeHashTable::InsertValue(TypeHandle data) PRECONDITION(CheckPointer(data)); PRECONDITION(!data.IsGenericTypeDefinition()); // Generic type defs live in typedef table (availableClasses) PRECONDITION(data.HasInstantiation() || data.HasTypeParam() || data.IsFnPtrType() || data.IsConstValue()); // It's an instantiated type or an array/ptr/byref/const type - PRECONDITION(m_pModule == NULL || GetModule()->IsTenured()); // Destruct won't destruct m_pAvailableParamTypes for non-tenured modules - so make sure no one tries to insert one before the Module has been tenured + PRECONDITION(m_pModule == NULL || GetModule()->IsTenured()); // Destruct won't destruct m_pAvailableParamTypes and m_pAvailableConstValues for non-tenured modules - so make sure no one tries to insert one before the Module has been tenured } CONTRACTL_END diff --git a/src/coreclr/vm/typekey.h b/src/coreclr/vm/typekey.h index 8c48525f8c565..43551d78c425a 100644 --- a/src/coreclr/vm/typekey.h +++ b/src/coreclr/vm/typekey.h @@ -9,6 +9,7 @@ // Support for type lookups based on components of the type (as opposed to string) // Used in // * Table of constructed types (Module::m_pAvailableParamTypes) +// * Table of const values (Module::m_pAvailableConstValues) // * Types currently being loaded (ClassLoader::m_pUnresolvedClassHash) // // Type handles are in one-to-one correspondence with TypeKeys From b891897e2ccc5f21b5dd32e690b92b04e32f2c3c Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 13:16:39 +0900 Subject: [PATCH 41/80] Implement support for const generic virtual methods --- src/coreclr/vm/generics.cpp | 2 +- src/coreclr/vm/siginfo.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/coreclr/vm/generics.cpp b/src/coreclr/vm/generics.cpp index fe2f438c266e0..b1a734e3a504e 100644 --- a/src/coreclr/vm/generics.cpp +++ b/src/coreclr/vm/generics.cpp @@ -709,7 +709,7 @@ void RecursionGraph::AddDependency(MethodTable *pMT, TypeHandleList *pExpansionV } else { - _ASSERTE(thArg.IsGenericVariable()); + _ASSERTE(thArg.IsGenericVariable() || thArg.IsConstValue()); } } } diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 4997dbcdc37e3..c54b7690cd658 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -227,6 +227,17 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext pSigBuilder->AppendData(varNum); } break; + case ELEMENT_TYPE_CTARG: + { + CorElementType etype; + PCCOR_SIGNATURE elem; + uint32_t cb; + // Skip const type argument + IfFailThrowBF(GetConstTypeArg(&etype, &cb, &elem), BFA_BAD_COMPLUS_SIG, pSigModule); + pSigBuilder->AppendElementType(etype); + pSigBuilder->AppendBlob((void*)elem, cb); + } + break; case ELEMENT_TYPE_OBJECT: case ELEMENT_TYPE_STRING: case ELEMENT_TYPE_TYPEDBYREF: @@ -1347,7 +1358,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( mask = mask | 0xFF; } value = value & mask; - thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value); + thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value, typ, fLoadTypes, level); #else DacNotImpl(); thRet = TypeHandle(); From 9137b041833fe19116e04673a013841d6ef6409b Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 13:58:06 +0900 Subject: [PATCH 42/80] Remove ELEMENT_TYPE_{M}CVAR --- src/coreclr/ilasm/asmparse.y | 36 - src/coreclr/ilasm/grammar_after.cpp | 2 - src/coreclr/ilasm/prebuilt/asmparse.cpp | 9053 +++++++++++------------ src/coreclr/ildasm/dasm.cpp | 2 - src/coreclr/inc/corhdr.h | 7 +- src/coreclr/inc/corpriv.h | 4 +- src/coreclr/inc/cortypeinfo.h | 4 +- src/coreclr/inc/formattype.cpp | 4 - src/coreclr/inc/sigparser.h | 5 - src/coreclr/utilcode/sigparser.cpp | 3 - src/coreclr/vm/jitinterface.cpp | 10 +- src/coreclr/vm/methodtable.h | 2 - src/coreclr/vm/siginfo.cpp | 40 +- src/coreclr/vm/typedesc.h | 9 +- src/coreclr/vm/zapsig.cpp | 9 - 15 files changed, 4454 insertions(+), 4736 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 759a92aed4ed4..eb9431e057a32 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -1749,39 +1749,18 @@ type : CLASS_ className { if($2 == PASM->m $$->append($1); corEmitInt($$, corCountArgs($3)); $$->append($3); delete $1; delete $3; }} - | CONST_ '!' '!' int32 { - $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt($$, $4); - } | '!' '!' int32 { //if(PASM->m_pCurMethod) { // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) // PASM->report->error("Invalid method type parameter '%d'\n",$3); $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt($$, $3); //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); } - | CONST_ '!' int32 { - $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt($$, $3); - } | '!' int32 { //if(PASM->m_pCurClass) { // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) // PASM->report->error("Invalid type parameter '%d'\n",$2); $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_VAR); corEmitInt($$, $2); //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); } - | CONST_ '!' '!' dottedName { int eltype = ELEMENT_TYPE_MCVAR; - int n=-1; - if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar($4); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf($4); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH($4); - eltype = ELEMENT_TYPE_MCVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid method const type parameter '%s'\n",$4); - n = 0x1FFFFFFF; } - $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); - } | '!' '!' dottedName { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar($3); @@ -1797,21 +1776,6 @@ type : CLASS_ className { if($2 == PASM->m n = 0x1FFFFFFF; } $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); } - | CONST_ '!' dottedName { int eltype = ELEMENT_TYPE_CVAR; - int n=-1; - if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar($3); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf($3); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH($3); - eltype = ELEMENT_TYPE_CVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid const type parameter '%s'\n",$3); - n = 0x1FFFFFFF; } - $$ = new BinStr(); $$->appendInt8(eltype); corEmitInt($$,n); - } | '!' dottedName { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar($2); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 52bfa25ba81c5..b6b1164ee0a21 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1405,8 +1405,6 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: CorSigUncompressData((PCCOR_SIGNATURE&) ptr); // bound break; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 7ecb7147dd5c9..27ed475458ee8 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -416,23 +416,22 @@ static int yylhs[] = { -1, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 55, + 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 32, 32, 31, - 31, 31, 31, 31, 133, 133, 133, 133, 133, 133, - 67, 67, 67, 66, 66, 90, 90, 87, 87, 88, - 17, 17, 39, 39, 39, 39, 39, 39, 39, 39, + 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, + 133, 133, 133, 133, 133, 133, 67, 67, 67, 66, + 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, + 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 178, 178, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, - 91, 91, 92, 92, 179, 124, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 125, 125, 180, 180, - 180, 69, 69, 181, 181, 181, 181, 181, 181, 182, - 184, 183, 126, 126, 127, 127, 185, 185, 185, 185, - 128, 150, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 129, 129, 186, 186, 186, 186, 186, 186, - 186, 130, 130, 95, 95, 95, 131, 131, 187, 187, - 187, 187, + 89, 178, 178, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 123, 123, 91, 91, 92, 92, + 179, 124, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 125, 125, 180, 180, 180, 69, 69, 181, + 181, 181, 181, 181, 181, 182, 184, 183, 126, 126, + 127, 127, 185, 185, 185, 185, 128, 150, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 129, 129, + 186, 186, 186, 186, 186, 186, 186, 130, 130, 95, + 95, 95, 131, 131, 187, 187, 187, 187, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -505,561 +504,553 @@ static int yylen[] = { 2, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 2, 1, 3, 2, 2, 3, 4, 2, 2, 2, - 5, 5, 7, 4, 4, 3, 3, 2, 4, 3, - 3, 2, 1, 1, 2, 3, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, - 1, 1, 3, 2, 6, 7, 3, 3, 3, 6, - 0, 1, 3, 5, 6, 4, 4, 1, 3, 3, - 1, 1, 1, 1, 4, 1, 6, 6, 6, 4, + 5, 5, 7, 4, 3, 2, 3, 2, 1, 1, + 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, + 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, + 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, + 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, - 4, 7, 6, 7, 6, 9, 8, 3, 8, 4, - 0, 2, 0, 1, 3, 3, 0, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 0, 2, 3, 1, - 1, 1, 1, 3, 8, 2, 3, 1, 1, 3, - 3, 3, 4, 6, 0, 2, 3, 1, 3, 1, - 4, 3, 0, 2, 2, 2, 3, 3, 3, 3, - 3, 3, 0, 2, 2, 3, 3, 4, 2, 1, - 1, 3, 5, 0, 2, 2, 0, 2, 4, 3, - 1, 1, + 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, + 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, + 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, + 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, + 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, + 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, + 2, 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 786, - 787, 0, 0, 0, 0, 0, 0, 864, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 782, + 783, 0, 0, 0, 0, 0, 0, 860, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 843, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 771, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, - 785, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 839, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, + 781, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 807, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 557, 737, 0, 714, 722, - 720, 0, 723, 724, 725, 726, 727, 728, 733, 734, - 735, 736, 692, 721, 0, 713, 0, 0, 0, 495, + 0, 0, 0, 803, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 557, 733, 0, 710, 718, + 716, 0, 719, 720, 721, 722, 723, 724, 729, 730, + 731, 732, 692, 717, 0, 709, 0, 0, 0, 495, 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, - 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 817, 835, 853, 867, 0, 0, 0, 0, 0, + 0, 813, 831, 849, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 802, 0, 0, 808, - 809, 810, 812, 0, 813, 814, 815, 816, 0, 865, - 866, 0, 0, 0, 729, 730, 731, 732, 691, 0, - 694, 0, 715, 717, 237, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 695, 0, 0, 0, 0, 0, 0, 708, 0, - 700, 0, 0, 0, 0, 0, 699, 698, 0, 0, - 0, 0, 0, 234, 0, 0, 0, 64, 440, 68, - 748, 0, 0, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 0, 375, 0, 338, - 346, 347, 0, 0, 0, 0, 368, 5, 0, 510, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 348, 352, 351, 354, 353, 355, 0, - 340, 342, 349, 361, 339, 0, 0, 0, 0, 0, - 0, 102, 0, 111, 132, 109, 110, 113, 114, 0, - 115, 116, 117, 118, 119, 120, 121, 122, 112, 131, - 124, 123, 133, 0, 136, 0, 107, 0, 281, 276, - 277, 278, 279, 280, 284, 282, 292, 283, 285, 286, - 287, 288, 289, 290, 291, 0, 293, 317, 0, 0, - 0, 416, 0, 415, 0, 414, 0, 413, 0, 411, - 0, 412, 436, 0, 0, 0, 0, 798, 788, 0, - 0, 846, 845, 844, 0, 0, 0, 213, 0, 199, - 193, 194, 195, 196, 201, 202, 203, 204, 198, 205, - 206, 197, 0, 0, 391, 0, 0, 0, 0, 0, - 757, 0, 756, 0, 0, 0, 0, 0, 314, 315, - 0, 0, 0, 0, 75, 69, 0, 96, 804, 0, - 0, 811, 0, 693, 716, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 0, 0, 0, 0, - 0, 706, 0, 0, 0, 0, 741, 696, 0, 738, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 27, 0, 105, 242, 256, 0, 0, 843, 0, 0, - 3, 0, 339, 174, 175, 177, 176, 178, 184, 185, - 140, 0, 0, 0, 4, 341, 343, 0, 0, 0, - 0, 0, 0, 0, 350, 512, 511, 513, 514, 44, - 0, 0, 509, 515, 516, 519, 518, 520, 524, 525, - 0, 523, 526, 0, 0, 0, 0, 531, 0, 0, - 0, 0, 0, 385, 0, 383, 386, 369, 0, 0, - 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, - 0, 12, 820, 828, 829, 818, 821, 0, 0, 840, - 0, 0, 13, 0, 838, 0, 836, 0, 0, 0, - 0, 14, 860, 861, 854, 0, 0, 15, 871, 872, - 868, 0, 125, 126, 127, 128, 129, 130, 0, 106, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 396, 0, 0, 404, 0, 0, 847, - 848, 849, 850, 851, 852, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 0, 0, 0, 32, - 0, 224, 233, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 761, 762, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 705, 0, 0, 0, - 0, 0, 0, 0, 0, 697, 704, 0, 0, 0, - 0, 0, 179, 180, 0, 0, 0, 0, 0, 139, - 0, 245, 259, 853, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 517, 0, 548, 0, 0, 0, 546, - 367, 384, 370, 0, 387, 376, 377, 378, 379, 381, - 382, 380, 0, 0, 0, 0, 823, 822, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 859, - 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, - 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, - 398, 403, 0, 790, 0, 0, 583, 621, 575, 576, - 0, 610, 577, 578, 579, 580, 581, 582, 612, 588, - 589, 590, 591, 0, 0, 0, 618, 0, 0, 0, - 0, 573, 574, 597, 598, 599, 616, 600, 601, 602, - 603, 0, 0, 606, 0, 614, 620, 273, 0, 0, - 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, - 750, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 444, 0, - 77, 0, 97, 98, 0, 99, 100, 101, 0, 0, - 0, 690, 689, 0, 0, 0, 0, 680, 679, 678, - 677, 675, 673, 674, 676, 688, 687, 686, 685, 0, - 701, 702, 743, 739, 0, 0, 0, 244, 243, 0, - 0, 258, 257, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 0, 0, 0, 358, 0, 0, 0, - 0, 0, 0, 359, 0, 0, 0, 0, 529, 0, - 0, 532, 0, 0, 0, 344, 0, 0, 0, 373, - 374, 819, 830, 0, 832, 824, 827, 805, 831, 837, - 839, 0, 0, 0, 0, 0, 134, 0, 0, 0, - 0, 157, 0, 0, 0, 148, 141, 294, 0, 0, - 0, 305, 306, 307, 308, 300, 301, 302, 299, 303, - 304, 0, 0, 297, 0, 0, 0, 0, 0, 0, - 402, 410, 409, 408, 407, 405, 406, 0, 0, 207, - 611, 584, 585, 586, 587, 0, 607, 613, 615, 619, - 0, 0, 0, 617, 604, 605, 659, 628, 629, 0, - 656, 630, 631, 632, 633, 634, 635, 658, 640, 641, - 642, 643, 626, 627, 648, 649, 650, 651, 652, 653, - 654, 655, 625, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 644, 0, 0, 592, - 200, 0, 209, 0, 191, 0, 764, 763, 0, 760, - 0, 759, 746, 0, 753, 78, 75, 70, 0, 0, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, - 82, 0, 80, 0, 95, 0, 684, 683, 682, 681, - 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 172, 251, 252, 253, 254, - 246, 0, 0, 0, 173, 265, 264, 266, 267, 260, - 181, 0, 362, 0, 365, 366, 0, 45, 46, 0, - 528, 0, 534, 535, 345, 0, 547, 0, 0, 0, - 858, 869, 0, 0, 160, 0, 0, 0, 145, 0, - 163, 0, 0, 296, 0, 0, 0, 318, 319, 320, - 321, 0, 0, 794, 0, 792, 0, 0, 0, 0, - 657, 636, 637, 638, 639, 646, 0, 0, 647, 0, - 593, 0, 272, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 211, 441, - 0, 0, 78, 0, 0, 0, 217, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 88, 0, 87, 86, 0, 435, 799, - 703, 0, 186, 0, 189, 0, 0, 247, 248, 249, - 250, 263, 261, 262, 357, 0, 0, 530, 550, 388, - 389, 0, 155, 0, 0, 166, 0, 165, 162, 0, - 0, 309, 310, 311, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 594, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 754, 67, 169, - 0, 0, 434, 0, 433, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 424, 0, 423, 0, 422, 0, - 421, 0, 419, 417, 0, 418, 420, 0, 432, 0, - 431, 0, 430, 0, 429, 0, 450, 0, 446, 445, - 0, 449, 0, 448, 0, 0, 90, 0, 0, 0, - 0, 0, 0, 364, 0, 0, 158, 161, 146, 295, - 313, 270, 0, 796, 0, 0, 570, 0, 596, 0, - 765, 0, 0, 0, 770, 755, 215, 214, 484, 480, - 428, 0, 427, 0, 426, 0, 425, 0, 482, 480, - 478, 476, 470, 473, 482, 480, 478, 476, 493, 486, - 447, 489, 89, 91, 0, 0, 188, 0, 0, 0, - 0, 168, 0, 0, 623, 0, 569, 0, 595, 0, - 0, 0, 0, 0, 482, 480, 478, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 0, 0, 0, 0, 825, 322, 0, 767, - 768, 769, 466, 485, 465, 481, 0, 0, 0, 0, - 456, 483, 455, 454, 479, 453, 477, 451, 472, 471, - 452, 474, 475, 460, 459, 458, 457, 469, 494, 488, - 487, 467, 490, 0, 468, 492, 255, 0, 0, 0, - 0, 0, 464, 463, 462, 461, 491, 0, 0, 360, - 0, 327, 323, 332, 333, 334, 335, 336, 324, 325, - 326, 328, 329, 330, 331, 274, 0, 0, 0, 0, - 568, 0, 0, 0, 0, 182, 337, 0, 0, 0, - 0, 0, 0, 0, 0, 183, + 73, 0, 0, 103, 0, 21, 798, 0, 0, 804, + 805, 806, 808, 0, 809, 810, 811, 812, 0, 861, + 862, 0, 0, 0, 725, 726, 727, 728, 691, 0, + 694, 0, 711, 713, 237, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 695, 0, 0, 0, 0, 0, 0, 706, 0, 700, + 0, 0, 0, 0, 0, 699, 698, 0, 0, 0, + 0, 0, 234, 0, 0, 0, 64, 440, 68, 744, + 0, 0, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 0, 375, 0, 338, 346, + 347, 0, 0, 0, 0, 368, 5, 0, 510, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, + 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, + 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, + 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, + 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, + 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, + 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, + 412, 436, 0, 0, 0, 0, 794, 784, 0, 0, + 842, 841, 840, 0, 0, 0, 213, 0, 199, 193, + 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, + 197, 0, 0, 391, 0, 0, 0, 0, 0, 753, + 0, 752, 0, 0, 0, 0, 0, 314, 315, 0, + 0, 0, 0, 75, 69, 0, 96, 800, 0, 0, + 807, 0, 693, 712, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 705, 0, 0, + 0, 0, 737, 696, 0, 734, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, + 256, 0, 0, 839, 0, 0, 3, 0, 339, 174, + 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, + 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, + 350, 512, 511, 513, 514, 44, 0, 0, 509, 515, + 516, 519, 518, 520, 524, 525, 0, 523, 526, 0, + 0, 0, 0, 531, 0, 0, 0, 0, 0, 385, + 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, + 0, 0, 372, 0, 0, 0, 0, 12, 816, 824, + 825, 814, 817, 0, 0, 836, 0, 0, 13, 0, + 834, 0, 832, 0, 0, 0, 0, 14, 856, 857, + 850, 0, 0, 15, 867, 868, 864, 0, 125, 126, + 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, + 0, 0, 404, 0, 0, 843, 844, 845, 846, 847, + 848, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 757, 758, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, + 704, 0, 0, 0, 0, 0, 179, 180, 0, 0, + 0, 0, 0, 139, 0, 245, 259, 849, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 517, 0, 548, + 0, 0, 0, 546, 367, 384, 370, 0, 387, 376, + 377, 378, 379, 381, 382, 380, 0, 0, 0, 0, + 819, 818, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 855, 0, 0, 0, 0, 0, 0, + 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, + 0, 0, 0, 0, 398, 403, 0, 786, 0, 0, + 583, 621, 575, 576, 0, 610, 577, 578, 579, 580, + 581, 582, 612, 588, 589, 590, 591, 0, 0, 0, + 618, 0, 0, 0, 0, 573, 574, 597, 598, 599, + 616, 600, 601, 602, 603, 0, 0, 606, 0, 614, + 620, 273, 0, 0, 0, 0, 0, 0, 0, 741, + 0, 0, 0, 0, 746, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 444, 0, 77, 0, 97, 98, 0, 99, + 100, 101, 0, 0, 0, 690, 689, 0, 0, 0, + 0, 680, 679, 678, 677, 675, 673, 674, 676, 688, + 687, 686, 685, 0, 701, 702, 739, 735, 0, 0, + 0, 244, 243, 0, 0, 258, 257, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, + 358, 0, 0, 0, 0, 0, 0, 359, 0, 0, + 0, 0, 529, 0, 0, 532, 0, 0, 0, 344, + 0, 0, 0, 373, 374, 815, 826, 0, 828, 820, + 823, 801, 827, 833, 835, 0, 0, 0, 0, 0, + 134, 0, 0, 0, 0, 157, 0, 0, 0, 148, + 141, 294, 0, 0, 0, 305, 306, 307, 308, 300, + 301, 302, 299, 303, 304, 0, 0, 297, 0, 0, + 0, 0, 0, 0, 402, 410, 409, 408, 407, 405, + 406, 0, 0, 207, 611, 584, 585, 586, 587, 0, + 607, 613, 615, 619, 0, 0, 0, 617, 604, 605, + 659, 628, 629, 0, 656, 630, 631, 632, 633, 634, + 635, 658, 640, 641, 642, 643, 626, 627, 648, 649, + 650, 651, 652, 653, 654, 655, 625, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, + 644, 0, 0, 592, 200, 0, 209, 0, 191, 0, + 760, 759, 0, 756, 0, 755, 742, 0, 749, 78, + 75, 70, 0, 0, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 81, 82, 0, 80, 0, 95, 0, + 684, 683, 682, 681, 0, 0, 190, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, + 251, 252, 253, 254, 246, 0, 0, 0, 173, 265, + 264, 266, 267, 260, 181, 0, 362, 0, 365, 366, + 0, 45, 46, 0, 528, 0, 534, 535, 345, 0, + 547, 0, 0, 0, 854, 865, 0, 0, 160, 0, + 0, 0, 145, 0, 163, 0, 0, 296, 0, 0, + 0, 318, 319, 320, 321, 0, 0, 790, 0, 788, + 0, 0, 0, 0, 657, 636, 637, 638, 639, 646, + 0, 0, 647, 0, 593, 0, 272, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 211, 441, 0, 0, 78, 0, 0, 0, + 217, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 0, 87, + 86, 0, 435, 795, 703, 0, 186, 0, 189, 0, + 0, 247, 248, 249, 250, 263, 261, 262, 357, 0, + 0, 530, 550, 388, 389, 0, 155, 0, 0, 166, + 0, 165, 162, 0, 0, 309, 310, 311, 312, 0, + 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, + 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 750, 67, 169, 0, 0, 434, 0, 433, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, + 423, 0, 422, 0, 421, 0, 419, 417, 0, 418, + 420, 0, 432, 0, 431, 0, 430, 0, 429, 0, + 450, 0, 446, 445, 0, 449, 0, 448, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 364, 0, 0, + 158, 161, 146, 295, 313, 270, 0, 792, 0, 0, + 570, 0, 596, 0, 761, 0, 0, 0, 766, 751, + 215, 214, 484, 480, 428, 0, 427, 0, 426, 0, + 425, 0, 482, 480, 478, 476, 470, 473, 482, 480, + 478, 476, 493, 486, 447, 489, 89, 91, 0, 0, + 188, 0, 0, 0, 0, 168, 0, 0, 623, 0, + 569, 0, 595, 0, 0, 0, 0, 0, 482, 480, + 478, 476, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, + 821, 322, 0, 763, 764, 765, 466, 485, 465, 481, + 0, 0, 0, 0, 456, 483, 455, 454, 479, 453, + 477, 451, 472, 471, 452, 474, 475, 460, 459, 458, + 457, 469, 494, 488, 487, 467, 490, 0, 468, 492, + 255, 0, 0, 0, 0, 0, 464, 463, 462, 461, + 491, 0, 0, 360, 0, 327, 323, 332, 333, 334, + 335, 336, 324, 325, 326, 328, 329, 330, 331, 274, + 0, 0, 0, 0, 568, 0, 0, 0, 0, 182, + 337, 0, 0, 0, 0, 0, 0, 0, 0, 183, }; static int yydgoto[] = { 1, - 158, 71, 483, 903, 159, 782, 105, 106, 808, 35, - 36, 711, 787, 422, 1138, 73, 718, 834, 835, 1040, - 1041, 1087, 1551, 1552, 584, 1607, 788, 789, 790, 211, - 530, 531, 175, 176, 899, 900, 1145, 691, 1150, 1070, - 1319, 938, 939, 282, 1573, 1574, 1569, 1564, 1571, 1572, - 1563, 1580, 1581, 1579, 161, 707, 533, 534, 1267, 1268, - 1045, 709, 1378, 710, 940, 697, 698, 1202, 809, 1271, - 836, 660, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1631, 751, 752, 840, 692, 693, 92, 37, - 113, 490, 115, 205, 116, 38, 39, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 40, 41, 312, 42, 43, 181, 44, 354, 46, - 47, 355, 49, 50, 368, 51, 369, 52, 370, 53, - 371, 54, 356, 357, 358, 58, 359, 306, 60, 61, - 62, 189, 397, 662, 561, 562, 994, 563, 995, 564, - 215, 1231, 1240, 63, 901, 360, 361, 362, 363, 795, - 365, 366, 608, 609, 367, 610, 796, 611, 612, 613, - 614, 64, 201, 76, 434, 435, 942, 65, 634, 626, - 627, 628, 629, 636, 637, 645, 651, + 158, 71, 482, 897, 159, 776, 105, 106, 802, 35, + 36, 707, 781, 421, 1132, 73, 714, 828, 829, 1034, + 1035, 1081, 1545, 1546, 580, 1601, 782, 783, 784, 211, + 526, 527, 175, 176, 893, 894, 1139, 687, 1144, 1064, + 1313, 932, 933, 281, 1567, 1568, 1563, 1558, 1565, 1566, + 1557, 1574, 1575, 1573, 161, 703, 529, 530, 1261, 1262, + 1039, 705, 1372, 706, 934, 693, 694, 1196, 803, 1265, + 830, 656, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1625, 745, 746, 834, 688, 689, 92, 37, + 113, 489, 115, 205, 116, 38, 39, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 40, 41, 311, 42, 43, 181, 44, 353, 46, + 47, 354, 49, 50, 367, 51, 368, 52, 369, 53, + 370, 54, 355, 356, 357, 58, 358, 305, 60, 61, + 62, 189, 396, 658, 557, 558, 988, 559, 989, 560, + 215, 1225, 1234, 63, 895, 359, 360, 361, 362, 789, + 364, 365, 604, 605, 366, 606, 790, 607, 608, 609, + 610, 64, 201, 76, 433, 434, 936, 65, 630, 622, + 623, 624, 625, 632, 633, 641, 647, }; static int yysindex[] = { 0, - 1268, 0, -347, 637, 0, 88, -221, 1813, 1813, 0, - 0, -117, 3147, 127, 149, -373, -226, 0, -42, 158, - 158, 480, 480,10333, 134, 0, 637, 637, 637, 637, - 0, 0, 98, 0, -3, -3, -3, 0, 0, 0, - 306, 421, 0, 0, 0, 0, 0, 0, 0, 453, - 496, 515, 564, 0, 0, 0, 0, 0, 0, -3, - 0, 288, 0, 1056, 158, 0, 0, 0, 0, 417, - 0, 158, 0, 0, 0, 368, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12328, 55, 590, 0, 0, 642, 689, 0, 0, - 848, 1026, 1026,12234, 8263, 0, 672, 0, 0, 697, - 158, 158, -24, 0, 2401, -135, 637, 417, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8263, 0, 0, - 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1138, 0, 451, 1138, 510, 0, - 6011, 0, 0, 0, 1641, 31, 39, 417, 716, 178, - 0, 380, 384, 0, 389, 401, 2050, 1138, 62, 417, - 417, 417, 0, 0, 747, 540, 815, 820, 0, 0, -13655, 0, 0, 0, 0, 830, 5887,12328, 576, 6920, - 840, 50, 79, 80, 93, 107, 109, 856, 964, 885, - 0, 0, -3, 131, 829, 637, 827,11830, 908, 96, - 567, 0, 475, 0, 1026, 0, 901, 70, 946, 764, - 158, 158, 0, 0, 0, 0, 0, 0, 0, 969, - 0, 1870, 54, 0, 954, 0, 0, 12, 2401, 0, - 0, 0, 0, 575, 0, 0, 0, 0, 417, 0, - 0, 14, 417, 0, 0, 0, 0, 0, 0, 1138, - 0, 773, 0, 0, 0, 0,11960, 1016, 1024, 931, - 1039, 1044, 1048, 1053, 1055, 1057, 1059, 1062, 1064, 1071, - 300, 0, 637, 1020, 76, 1023, 687, 417, 0, 637, - 0, 1081, 1091, 637, 266, 8263, 0, 0, 637, 637, - 637, 637, 8263, 0, 1138, 1008, 946, 0, 0, 0, - 0, 7154,14674, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 0, 158, 0, - 0, 0, 158, 1045, -57,12413, 0, 0, 1077, 0, - 782, 158, 480, 568, 782, 2050, 5701,12328, -174, 1026, -12234, 1098, -3, 0, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 0, 0, 1082, 230, 15, 273, 246, - 340, 0, 1099, 0, 0, 0, 0, 0, 0, 578, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 367, 0,12328, 0, 1110, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1123, 0, 0, 1124, 158, - 158, 0, 158, 0, 158, 0, 480, 0, 414, 0, - 414, 0, 0, 1031, 1097, 368, 1131, 0, 0, 158, - 158, 0, 0, 0, 936, 417, 0, 0, 1133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1134, 1116, 0, 637, 179, 915, 1058, 8263, - 0,12602, 0, 916, 1147, 1141, 1152, 2050, 0, 0, - 106, 417, 1136, 920, 0, 0, 946, 0, 0, 734, - 30, 0, 637, 0, 0, 417, 925, 520, 158, 1161, - 1162, 1164, 1168, 158, 158, 158, 480, 692, 572, 158, - 158, 158, 480, 687, 417, 0, 180, 637, 637, 637, - 417, 0, 417,12328,12328, 417, 0, 0, 934, 0, - 118, 567, 1157, 1184, 417, 417, 417, 417,11622, 0, - 0, 868, 0, 0, 0, 158, 158, 0, -274,12687, - 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1112, 1114, 1118, 0, 0, 0, 1181, 158, 516, - 542, 158, 0, 979, 0, 0, 0, 0, 0, 0, - 1203, 1204, 0, 0, 0, 0, 0, 0, 0, 0, -11960, 0, 0, 1224, 946, -3, 8263, 0, 782, 1228, - 1225, 0,13822, 0,12328, 0, 0, 0, 1082, -46, - -46, -46, -46, 230, 966, 967, 0, 819, 1229, 42, - -7, 0, 0, 0, 0, 0, 0, -3, -3, 0, - 1236, 1237, 0, -3, 0, -3, 0, 1260, -209, 637, - 838, 0, 0, 0, 0, 637, 839, 0, 0, 0, - 0, 158, 0, 0, 0, 0, 0, 0, 58, 0, - 0, 1266, 158, 915, 6321, 915, 1278, 1227, 1288, 1289, - 1290, 1295, 1304, 0, 964, 1307, 0, 1291, 1319, 0, - 0, 0, 0, 0, 0, 158,15061, 13, 511, 0, - 456, 1310, 1322, 0, 614, 1370, 1324, 1245, 1312, 0, - 1117, 0, 0, 1314, 6631, 1341, 1344, -124, 1261, 3441, - 405, -3, 637, 417, 637, 0, 0, 1349, 1359, 158, - 158, 158, 480, 1362, 1363, 1364, 1367, 1375, 1389, 1401, - 1403, 1405, 1407, 1414, 1415, 417, 0, 637, 716, 716, - 716, 1416, 1417, 158, 266, 0, 0, 8263, 1419,12328, -12134, 1192, 0, 0, 829, 607, 625, 0, 1195, 0, -13905, 0, 0, 0, 158, 1377, 158, 417, 158, 754, - 1379, 8263, -124, 158, 480, 417, 1199, 915, 1433, 220, - 1431, 1438, 1436, 0, 0, 0, 6321, 1440, 1446, 0, - 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, - 0, 0, 368, 158, 158, 1455, 0, 0, 1441, 1456, - 946, 1450, 1459, 1462, 1463, 1465, 1466, 158, 637, 0, - 417, 637, 24, 637, 1469, 1472, 0, 0, 0, 0, - 1226, 0, 0, 545, 182, 1464,12328, 1486, 10, 1876, - -130, 152, 864, 1439, 0, 1439, 1439, 1439, 1439, 1439, - 0, 0, 158, 0, 158, 1490, 0, 0, 0, 0, - 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1492, 1046, 1049, 0, 1047, 1506, -387, - 1270, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1492, 1492, 0,15144, 0, 0, 0, 155, 1508, - -3, 368, 1494, 0, 2547, 0, 915, 1426, 0,12602, - 0, 1434, 0, 111, 158, 1496, 0, 0, 417, 1136, - 0, 124, 132, 1139, 136, 142, 163, 349, 397, 441, - 442, 457, 471, 503, 507, 509, 549, 0, 0, 289, - 0, -3, 0, 0, 368, 0, 0, 0, 1515, 417, - 417, 0, 0, 1518, 1519, 1520, 1525, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, - 0, 0, 0, 0, 567, 0, 1119, 0, 0, 417, - 637, 0, 0, 8263, 417, 158, 417, 158, 880, 8263, - -124,14825, 0, 719, 776, 587, 0, 1177, 1476, 1480, -12328, 1494,11960, 0, 1533, 1534, 637, 912, 0, 0, - 782, 0, 782, 1535, 152, 0, 0, 1262, 1264, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, - 0, 1536, 716, 417, 158, 417, 0, 158, 1538, 1226, -12328, 0,12328, 970, 637, 0, 0, 0, 915, 2200, - 1543, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1537, 1539, 0, 1498, 1500, 1501, 1503, 1558, -124, - 0, 0, 0, 0, 0, 0, 0, 1557, 0, 0, - 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, - 915, 1514, 1527, 0, 0, 0, 0, 0, 0, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 99, 0, - 0, -54, 0, 2535, 0, 1576, 0, 0, 946, 0, - 1579, 0, 0, 1504, 0, 0, 0, 0, 946, 1528, - 0, 1587, 1591, 1594, 1595, 520, 158, 158, 158, 553, - 556, 559, 566, 158, 158, 158, 158, 158, 158, 480, - 158, 692, 158, 572, 158, 158, 158, 158, 158, 158, - 158, 480, 158, 3441, 158, -139, 158, 802, 158, 0, - 0, 3743, 0, 1596, 0, 1215, 0, 0, 0, 0, - 1598, 2050, 0, 417, 1116, 1547, 1552,12328,11960, 1137, - 0, 2050, 2050, 2050, 2050, 0, 0, 0, 0, 0, - 0, 2050, 2050, 2050, 0, 0, 0, 0, 0, 0, - 0, 368, 0, 1604, 0, 0, 1380, 0, 0, 417, - 0, 1614, 0, 0, 0, 368, 0, 368, 158, 1599, - 0, 0, 1615, 158, 0, 637, 1617, 1616, 0, 58, - 0, 970, 946, 0, 158, 541, 646, 0, 0, 0, - 0,15061, 1601, 0, 158, 0, 1603, 1017, 158, 158, - 0, 0, 0, 0, 0, 0, 915, 1566, 0, 158, - 0, 148, 0, 1622, 1625, 1169, 1630, 1642, 1643, 1644, - 1645, 1646, 1647, 1652, 1657, 1666, 0, 946, 0, 0, - 158, 635, 0, 85, 1578, 1648, 0, 0, 0, 0, - 1667, 1621, 1668, 1628, 158, 158, 158, 158, 158, 158, - 480, 158, 1674, 1632, 1685, 1634, 1687, 1637, 1690, 1640, - 1694, 1695, 1649, 1696, 1697, 1650, 1700, 1651, 1704, 1653, - 1706, 1659, 1709, 1661, 1712, 1662, 1715, 1716, 1665, 1718, - 1497, 1720, 1672, 0, 1101, 0, 0, 677, 0, 0, - 0, 488, 0, 1724, 0, 1509, 1026, 0, 0, 0, - 0, 0, 0, 0, 0,12328, -124, 0, 0, 0, - 0, 42, 0, 1731, 970, 0,12328, 0, 0, 5408, - 1741, 0, 0, 0, 0, 1746, 1749, 0, 158, 915, - 1698, 1699, 946, 0, 1703, 158, 0, 1750, 1753, 1770, - 1775, 1776, 1758, 1760, 1764, 1783, 128, 0, 0, 0, - 1787, 1788, 0, 1790, 0, 1791, 1792, 1739, 1793, 1742, - 1795, 1744, 1797, 1747, 0, 1799, 0, 1801, 0, 1806, - 0, 1811, 0, 0, 1812, 0, 0, 1814, 0, 1822, - 0, 1827, 0, 1831, 0, 1836, 0, 1837, 0, 0, - 1842, 0, 1843, 0, 1845, 1620, 0, 1794, 440, 0, -12328, -124, 8263, 0, 1826, 1833, 0, 0, 0, 0, - 0, 0, 0, 0, 1848, 941, 0,15226, 0, 1802, - 0, 158, 158, 158, 0, 0, 0, 0, 0, 0, - 0, 1852, 0, 1854, 0, 1856, 0, 1859, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3441, 1860, 0, 1826,11960, 1818, - 1862, 0, 42, 1872, 0, 915, 0, 0, 0, 1873, - 1874, 1875, 16, 21, 0, 0, 0, 0, 45, 48, - 64, 11, 529, 608, 77, 91, 94, 115, 2831, 41, - 643, 0, 1494, 1871, 1655, 0, 0, 0, 1028, 0, - 0, 0, 0, 0, 0, 0, 104, 120, 139, 126, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1676, 0, 0, 0, 0, -124, 1885, - 3401, 915, 0, 0, 0, 0, 0, 1894, 1897, 0, - 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 982, 1435, 0, 158, - 0, 1592, 1908, 1910, 1026, 0, 0, 8263,11960, 1678, - -124, 1826, 1913, 0, 1914, 0, +14223, 0, -338, 550, 0, 138, -218, 1833, 1833, 0, + 0, -105, 1360, 139, 161, -310, -245, 0, 266, 82, + 82, 537, 537, 9462, 286, 0, 550, 550, 550, 550, + 0, 0, 179, 0, 203, 203, 203, 0, 0, 0, + 355, 371, 0, 0, 0, 0, 0, 0, 0, 393, + 417, 436, 510, 0, 0, 0, 0, 0, 0, 203, + 0, -53, 0, 982, 82, 0, 0, 0, 0, 526, + 0, 82, 0, 0, 0, 470, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1670, 73, 629, 0, 0, 662, 666, 0, 0, + 707, 522, 522,11884, 7392, 0, 651, 0, 0, 685, + 82, 82, -2, 0, 753, 490, 550, 526, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7392, 0, 0, + 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 451, 185, 615, 0, + 1148, 0, 0, 0, 2631, 42, 363, 526, 725, 76, + 0, 391, 399, 0, 439, 442, 1568, 185, 144, 526, + 526, 526, 0, 0, 721, 527, 796, 802, 0, 0, +13248, 0, 0, 0, 0, 814, 5016, 1670, 575, 6049, + 861, 70, 106, 119, 126, 132, 135, 893, 815, 929, + 0, 0, 203, 164, 881, 550, 896,11441, 913, 134, + 1168, 0, 220, 0, 522, 0, 962, 59, 961, 758, + 82, 82, 0, 0, 0, 0, 0, 0, 0, 985, + 0,11030, 108, 0, 935, 0, 0, 2, 753, 0, + 0, 0, 0, 563, 0, 0, 0, 0, 526, 0, + 0, 10, 526, 0, 0, 0, 0, 0, 0, 185, + 0, 757, 0, 0, 0, 0,11603, 1003, 1004, 864, + 1010, 1021, 1037, 1060, 1064, 1066, 1075, 1076, 1077, 1080, + 0, 550, 947, 127, 996, 868, 526, 0, 550, 0, + 1099, 1111, 550, 465, 7392, 0, 0, 550, 550, 550, + 550, 7392, 0, 185, 1027, 961, 0, 0, 0, 0, + 6283,14197, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, 0, 82, 0, 0, + 0, 82, 1069, -56,12052, 0, 0, 1109, 0, 479, + 82, 537, 163, 479, 1568, 4830, 1670, -137, 522,11884, + 1145, 203, 0, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 774, 387, 376, 129, 834, 403, + 0, 1147, 0, 0, 0, 0, 0, 0, 715, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 420, 0, 1670, 0, 1167, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1173, 0, 0, 1174, 82, 82, + 0, 82, 0, 82, 0, 537, 0, 246, 0, 246, + 0, 0, 1063, 1164, 470, 1179, 0, 0, 82, 82, + 0, 0, 0, 791, 526, 0, 0, 1181, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1182, 994, 0, 550, 145, 972, 1114, 7392, 0, +12125, 0, 978, 1197, 1201, 1203, 1568, 0, 0, 118, + 526, 1192, 979, 0, 0, 961, 0, 0, 795, 14, + 0, 550, 0, 0, 526, 987, 625, 82, 1227, 1231, + 1238, 1239, 82, 82, 82, 537, 509, 700, 82, 82, + 82, 537, 406, 550, 550, 550, 526, 0, 526, 1670, + 1670, 526, 0, 0, 999, 0, 72, 1168, 1219, 1240, + 526, 526, 526, 526,11172, 0, 0, 921, 0, 0, + 0, 82, 82, 0, -308,12194, 0, 1159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1165, 1166, 1171, + 0, 0, 0, 1241, 82, 474, 543, 82, 0, 1043, + 0, 0, 0, 0, 0, 0, 1257, 1278, 0, 0, + 0, 0, 0, 0, 0, 0,11603, 0, 0, 1280, + 961, 203, 7392, 0, 479, 1287, 1281, 0,13331, 0, + 1670, 0, 0, 0, 774, -62, -62, -62, -62, 387, + 1017, 1019, 0, 870, 1282, 147, -9, 0, 0, 0, + 0, 0, 0, 203, 203, 0, 1283, 1284, 0, 203, + 0, 203, 0, 1299, -215, 550, 871, 0, 0, 0, + 0, 550, 872, 0, 0, 0, 0, 82, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 1302, 82, 972, + 5140, 972, 1306, 1256, 1309, 1310, 1312, 1317, 1321, 0, + 815, 1323, 0, 1307, 1332, 0, 0, 0, 0, 0, + 0, 82,14558, 32, 449, 0, 576, 1326, 1333, 0, + 1529, 1711, 1338, 1258, 1324, 0, 1121, 0, 0, 1325, + 5450, 1348, 1349, 314, 1265, 2266, 327, 203, 550, 526, + 550, 0, 0, 1350, 1351, 82, 82, 82, 537, 1354, + 1363, 1366, 1367, 1375, 1380, 1387, 1392, 1395, 1396, 1406, + 1408, 550, 725, 725, 725, 1411, 1414, 82, 465, 0, + 0, 7392, 1417, 1670,11782, -132, 0, 0, 881, 555, + 586, 0, 1184, 0,13482, 0, 0, 0, 82, 1369, + 82, 526, 82, 792, 1373, 7392, 314, 82, 537, 526, + 1185, 972, 1422, 208, 1423, 1427, 1425, 0, 0, 0, + 5140, 1429, 1431, 0, 0, 0, 0, 479, 0, 0, + 0, 0, 0, 0, 0, 0, 470, 82, 82, 1436, + 0, 0, 1419, 1438, 961, 1439, 1440, 1443, 1444, 1445, + 1446, 82, 550, 0, 526, 550, 40, 550, 1447, 1450, + 0, 0, 0, 0, 1191, 0, 0, 83, 229, 1430, + 1670, 1452, 12, 748, 1, 3, 809, 1388, 0, 1388, + 1388, 1388, 1388, 1388, 0, 0, 82, 0, 82, 1453, + 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1451, 998, 1007, + 0, 997, 1457, 201, 1225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1451, 1451, 0,10342, 0, + 0, 0, 89, 1462, 203, 470, 1449, 0, 664, 0, + 972, 1379, 0,12125, 0, 1382, 0, 275, 82, 1461, + 0, 0, 526, 1192, 0, 153, 156, 966, 173, 418, + 432, 447, 475, 482, 516, 524, 545, 549, 562, 581, + 590, 0, 0, 321, 0, 203, 0, 0, 470, 0, + 0, 0, 1466, 526, 526, 0, 0, 1467, 1473, 1478, + 1492, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 725, 0, 0, 0, 0, 1168, 0, + 1083, 0, 0, 526, 550, 0, 0, 7392, 526, 82, + 526, 82, 885, 7392, 314,12789, 0, 1384, 349, 1000, + 0, 1151, 1455, 1456, 1670, 1449,11603, 0, 1502, 1503, + 550, 912, 0, 0, 479, 0, 479, 1504, 3, 0, + 0, 1229, 1235, 0, 0, 0, 0, 147, 0, 0, + 0, 0, 0, 0, 0, 1512, 725, 526, 82, 526, + 0, 82, 1515, 1191, 1670, 0, 1670, 917, 550, 0, + 0, 0, 972, 1370, 1519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1507, 1508, 0, 1479, 1481, + 1482, 1483, 1537, 314, 0, 0, 0, 0, 0, 0, + 0, 1534, 0, 0, 0, 0, 0, 0, 0, 1079, + 0, 0, 0, 0, 972, 1497, 1500, 0, 0, 0, + 0, 0, 0, 1023, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -5, 37, 0, 0, -30, 0, 2572, 0, 1564, + 0, 0, 961, 0, 1573, 0, 0, 1485, 0, 0, + 0, 0, 961, 1521, 0, 1580, 1581, 1583, 1584, 625, + 82, 82, 82, 591, 595, 602, 604, 82, 82, 82, + 82, 82, 82, 537, 82, 509, 82, 700, 82, 82, + 82, 82, 82, 82, 82, 537, 82, 2266, 82, -197, + 82, 1606, 82, 0, 0, 3480, 0, 1585, 0, 1207, + 0, 0, 0, 0, 1590, 1568, 0, 526, 994, 1543, + 1545, 1670,11603, 1129, 0, 1568, 1568, 1568, 1568, 0, + 0, 0, 0, 0, 0, 1568, 1568, 1568, 0, 0, + 0, 0, 0, 0, 0, 470, 0, 1601, 0, 0, + 1372, 0, 0, 526, 0, 1607, 0, 0, 0, 470, + 0, 470, 82, 1591, 0, 0, 1609, 82, 0, 550, + 1610, 1608, 0, 36, 0, 917, 961, 0, 82, 472, + 513, 0, 0, 0, 0,14558, 1593, 0, 82, 0, + 1598, 914, 82, 82, 0, 0, 0, 0, 0, 0, + 972, 1561, 0, 82, 0, 92, 0, 1623, 1625, 1049, + 1626, 1628, 1630, 1632, 1636, 1642, 1645, 1647, 1648, 1649, + 0, 961, 0, 0, 82, 433, 0, 8, 1565, 1633, + 0, 0, 0, 0, 1651, 1603, 1657, 1611, 82, 82, + 82, 82, 82, 82, 537, 82, 1658, 1612, 1659, 1613, + 1661, 1614, 1667, 1616, 1712, 1713, 1618, 1714, 1716, 1671, + 1722, 1673, 1730, 1683, 1736, 1686, 1740, 1693, 1752, 1702, + 1760, 1763, 1719, 1764, 1489, 1765, 1720, 0, 1827, 0, + 0, 674, 0, 0, 0, 264, 0, 1770, 0, 1533, + 522, 0, 0, 0, 0, 0, 0, 0, 0, 1670, + 314, 0, 0, 0, 0, 147, 0, 1779, 917, 0, + 1670, 0, 0, 1592, 1780, 0, 0, 0, 0, 1783, + 1782, 0, 82, 972, 1732, 1733, 961, 0, 1737, 82, + 0, 1791, 1796, 1798, 1799, 1801, 1785, 1786, 1793, 1820, + 120, 0, 0, 0, 1824, 1830, 0, 1835, 0, 1838, + 1832, 1787, 1841, 1790, 1843, 1792, 1846, 1795, 0, 1852, + 0, 1858, 0, 1859, 0, 1860, 0, 0, 1861, 0, + 0, 1863, 0, 1864, 0, 1866, 0, 1867, 0, 1868, + 0, 1870, 0, 0, 1871, 0, 1872, 0, 1874, 1652, + 0, 1823, 166, 0, 1670, 314, 7392, 0, 1816, 1869, + 0, 0, 0, 0, 0, 0, 0, 0, 1876, 855, + 0,14641, 0, 1839, 0, 82, 82, 82, 0, 0, + 0, 0, 0, 0, 0, 1886, 0, 1888, 0, 1889, + 0, 1897, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2266, 1898, + 0, 1816,11603, 1849, 1902, 0, 147, 1903, 0, 972, + 0, 0, 0, 1909, 1914, 1917, 34, 13, 0, 0, + 0, 0, 44, 47, 62, 67, 27, 178, 98, 102, + 104, 157, 1234, 23, 1154, 0, 1449, 1919, 1669, 0, + 0, 0, 939, 0, 0, 0, 0, 0, 0, 0, + 140, 170, 175, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, + 0, 0, 314, 1924, 2226, 972, 0, 0, 0, 0, + 0, 1928, 1930, 0, 1933, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 927, 1465, 0, 82, 0, 1619, 1942, 1944, 522, 0, + 0, 7392,11603, 1715, 314, 1816, 1946, 0, 1947, 0, }; static int yyrindex[] = { 0, - 0, 0, 6197, 0, 0,12011, 2235, 0, 0, 0, - 0, 0,12533, 0, 0, 311, 2705, 0, 9154, 0, + 0, 0, 5326, 0, 0,11662, 1971, 0, 0, 0, + 0, 0,11982, 0, 0, 357, 1836, 0, 663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1917, 1917, 1917, 0, 0, 0, + 0, 0, 0, 0, 1949, 1949, 1949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917, - 0, -60, 0, 0, 0, 0, 0, 0, 0, 1839, - 0, 0, 0, 0, 0, 1072, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1949, + 0, -46, 0, 0, 0, 0, 0, 0, 0, 1873, + 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8564, 0, 0, 0, 0, 0, 0, -12982,13038,13038, 0, 0, 0, 7083, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10602, 0, 0, + 0, 0, 0, 7693, 0, 0, 0, 0, 0, 0, + 5760,11552,11552, 0, 0, 0, 6212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2019, 2627, 0, - 0, 0, 0, 0, 0, 0,12533, 1829, 5664, 5974, - 6284, 6594, 0, 0, 0, 1919, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1840,13038, - 0,10267,10267,10267,10267,10267,10267, 0, 0, 0, - 0, 0, 1917, 8939, 0, 0, 0, 0, 0, 0, - 7956, 0, 9874, 0,12533, 0, 0, 0,10047, 0, + 0, 0, 0, 0, 0, 0, 0, 1756, 2364, 0, + 0, 0, 0, 0, 0, 0,11982, 1875, 4793, 5103, + 5413, 5723, 0, 0, 0, 1950, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1878,11552, + 0, 9396, 9396, 9396, 9396, 9396, 9396, 0, 0, 0, + 0, 0, 1949, 8068, 0, 0, 0, 0, 0, 0, + 7085, 0, 9003, 0,11982, 0, 0, 0, 9176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1073, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1841, 0, - 0, 1844,10736, 5363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8283, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1879, 0, + 0, 1880,10008, 4492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4147, 0, 0, - 0, 0, 0, 0, 1921, 1904, 0, 0, 0, 0, - 0, 0, 0, 0, 1829, 0, 6904, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, + 0, 0, 0, 1948, 1935, 0, 0, 0, 0, 0, + 0, 0, 0, 1875, 0, 6033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,12533, 0, 0, 0,12533, - 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,11982, 0, 0, 0,11982, 0, + 0, 1949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, + 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1847, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1846, 1582, 0, 0, 0, + 0, 0, 0, 1881, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1882, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1849, 0, 0, 8766, 0, 0,12533, 0, 0, - 1921, 40, 1928, 0, 0, 0, 7338, 0, 0,10767, - 1853, 0, 0, 0, 0,13338, 0, 0, 0, 0, + 1883, 0, 0, 7895, 0, 0,11982, 0, 0, 1948, + 109, 1958, 0, 0, 0, 6467, 0, 0,10141, 1887, + 0, 0, 0, 0,12745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4451, 0, 0, 0, 0, 0, - 4755, 0, 2323, 0, 0,10879, 0, 0, 137, 0, - 0, 597, 0, 1915,11041,11068,11201,11312, 0, 0, + 0, 0, 0, 0, 0, 0, 4188, 0, 2060, 0, + 0,10252, 0, 0, 511, 0, 0, 646, 0, 1937, +10283,10438,10579,10610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,13988, 1917, 0, 0, 1929, 0, - 0,13131, 0, 0, 0, 0, 0, 0,14139, 0, +13581, 1949, 0, 0, 1963, 0, 0,12497, 0, 0, + 0, 0, 0, 0,13732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1917, 1917, 0, - 0, 0, 0, 1917, 0, 1917, 0, 0, 0, 0, + 0, 0, 0, 1949, 1949, 0, 0, 0, 0, 1949, + 0, 1949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, - 0, 1892, 0, 5543, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9123, 0, - 0, 0, 0, 0, 0, 0, 116, 1240, 0, 8207, - 0, 0, 1934, 0, 0, 0, 1891, 0, 0, 0, - 0, 0, 0, 7517, 1904, 0, 0, 0, 0, -75, - 0, 1917, 0, 1895, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 1890, 0, 4537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5059, 0, 0, 2931, 3235, - 3539, 0, 0, 185, 362, 0, 0, 0,11771, 0, - 0,12533, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14306, 0, 0, - 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, - 1976, 0, 1982, 0,13131, 0, 0, 0, 1983, 0, + 0, 0, 0, 0, 8252, 0, 0, 0, 0, 0, + 0, 0, 113, 9704, 0, 7336, 0, 0, 1970, 0, + 0, 0, 1893, 0, 0, 0, 0, 0, 0, 6646, + 1935, 0, 0, 0, 0, -52, 0, 1949, 0, 1891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12760, 0, 0, 191, 0, 0, 0, 0, 5543, 0, - 0, 585, 0,10267, 0,10267,10267,10267,10267,10267, + 0, 0, 2668, 2972, 3276, 0, 0, 569, 585, 0, + 0, 0,11329, 0, 0,11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13815, 0, 0, 0, 0, 0, 0, 0,13150, + 0, 0, 0, 0, 1974, 0, 1984, 0,12497, 0, + 0, 0, 1985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 427, 427, 0, 2, 0, 0, 0, 1984, 0, - 0, 0,10575, 8391, 0, 0, 0, 0, 1451, 1849, - 0, 0, 0, 0, 0, 0,13131,13131,13187, 1928, + 0, 0, 0, 0, 1964, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2574, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12288, 0, 0, 258, 0, 0, + 0, 0, 4537, 0, 0, 689, 0, 9396, 0, 9396, + 9396, 9396, 9396, 9396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1901, - 0, 1917, 0, 0, 0, 0, 0, 0, 0, 1905, -13421, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3843, - 0, 0, 0, 0, 678,13131, 0, 0, 0, 720, - 0, 0, 0, 0, 1906, 0,14876, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14389, 0, 0, - 0,14472, 0, 0, 0, 0, 0, 0, 0,13131, - 1929, 0, 1929, 0, 63, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 215, 215, 0, 9, 0, + 0, 0, 1995, 0, 0, 0, 9865, 7520, 0, 0, + 0, 0, 863, 1883, 0, 0, 0, 0, 0, 0, +12497,12497,12647, 1958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1675, 2115, 0, 927, 0, 0, 0,12760, - 0, 0, 1986, 1972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1916, 0, 1949, 0, 0, 0, 0, + 0, 0, 0, 1921,12828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3580, 0, 0, 0, 0, 655,12497, + 0, 0, 0, 458, 0, 0, 0, 0, 1922, 0, +14370, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13912, 0, 0, 0,14085, 0, 0, 0, 0, + 0, 0, 0,12497, 1963, 0, 1963, 0, 441, 0, +12559, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2878, 3182, 0, 775, + 0, 0, 0,12288, 0, 0, 2009, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9315, 9499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8444, 8628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1041, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 992, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,11423, 0, 0, 0, 0, - 0,12533, 0, 1916, 0, 0, 0, 0, 0, 0, - 0,12533,12533,12533,12533, 0, 0, 0, 0, 0, - 0,12533,12533,12533, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,14623, - 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1999, 0, 191, - 0, 1972, 5543, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 2002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,10721, + 0, 0, 0, 0, 0,11982, 0, 1934, 0, 0, + 0, 0, 0, 0, 0,11982,11982,11982,11982, 0, + 0, 0, 0, 0, 0,11982,11982,11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10434, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,13131,13131, + 0, 0, 0,14168, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2015, 0, 258, 0, 1989, 4537, 0, 0, 0, + 0, 0, 0, 0, 0, 113, 1972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9563, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12497,12497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,12533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1972, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9672, 0, 0, - 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8801, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,13131, - 0, 0, 0, 0, 2004, 0, 0, 0, 0, 0, - 0, 0,13131, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2004, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1933, 0, 0,13131, 0, 0, 0, 0, + 0, 0, 0,12497, 0, 0, 0, 0, 2018, 0, + 0, 0, 0, 0, 0, 0,12497, 0, 0, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13131, 0, 0, + 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1936, 0, 0,12497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,13131, 0, - 0, 0, 0, 0,12533, 0, 0, 0, 0, 0, - 0, 2004, 0,13131, 0, 0, -}; -static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12497, 0, 0, 0, 0, 0,11982, 0, + 0, 0, 0, 0, 0, 2018, 0,12497, 0, 0, +}; +static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1072,24 +1063,24 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,13504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1100,44 +1091,44 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1807, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1807, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,12926, 0, 0, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1145,34 +1136,35 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2023, 0, 0, 0, 0, 0, - 0, 0, 0, 846, 0, 0, 0, 0, 2013, 0, - 0, 0, 0, 0, 0, 0, 1800, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2029, 0, + 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, + 0, 0, 2012, 0, 0, 0, 0, 0, 0, 0, + 1808, 1817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, - 0, 0, 0, 0, 0, 0, 1820, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1831, 0, 0, 0, 0, 0, 0, + 1834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1823, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1811, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1188,3229 +1180,3115 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1821, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1837, 1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1853, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1880, 0, 0, + 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1865, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1905, 0, 0, }; -static int yygindex[] = { 1896, - -4, 129, -698, 0, -13, 56, -98, 0, 250, 0, - 0, 0, 1664, -129, 0, 0, -884, 0, 1243, 0, - 1061, 227,-1463, -447, -412, -9, -744, 0, 1080, -22, - 1343, 0, 1, 1188, 591, 816, -973, -48, 0, 1087, - 0,-1145, 960, 0, 0, 0, -951, -713, -922, -866, - 0, 0, 0, 0, 903, 1186, 1423, 0, 0, 0, - 0, -662, 0, 0,-1078, 0, 1219, 0, -994,-1191, - 865, 851, -18, -89, 1786, 1680, 2126, -147, -2, 0, - 0, 0, 0, 0, 0, -806, 1252, 0, 2155, 0, - 0, 959, 2055, 1623, 0, -16, 2148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -311, 1413, 0, -300, -286, -296, 8, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 1411, 0, - 0, 0, 6, 26, 38, 0, 17, 1877, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 0, 0, 0, 0, 0, 0, 0, 0, -150, - 0, 0, 1574, 0, 0, 0, 82, 0, 0, 0, - 0, 0, 0, 0, 1510, 2120, -36, 0, 1701, 0, - 1817, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1911, + -4, -17, -693, 0, -444, -14, -98, 0, -7, 0, + 0, 0, 1688, -74, 0, 0, -870, 0, 1285, 0, + 1074, 137,-1445, -445, -418, 5, -771, 0, 1100, -22, + 1371, 0, -16, 1243, 622, 858, -965, -76, 0, 1126, + 0,-1148, 1001, 0, 0, 0,-1422,-1386,-1001, -975, + 0, 0, 0, 0, 940, 1230, 1448, 0, 0, 0, + 0, -658, 0, 0,-1074, 0, 1242, 0, -980,-1175, + 884, 873, -21, 4, 1844, 1668, 2157, -161, 74, 0, + 0, 0, 0, 0, 0, -790, 1288, 0, 2173, 0, + 0, 986, 2076, 1653, 0, -23, 2171, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -302, 1442, 0, -295, -249, -292, 45, 0, + 0, 29, 0, 0, 0, 0, 0, 0, 1441, 0, + 0, 0, 33, 6, 41, 0, 17, 1894, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, -159, + 0, 0, 1595, 0, 0, 0, 268, 0, 0, 0, + 0, 0, 0, 0, 1530, 2138, -28, 0, 1725, 0, + 1850, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 15729 +#define YYTABLESIZE 15144 static int yytable[] = { 70, - 552, 160, 213, 227, 228, 162, 55, 165, 45, 920, - 109, 553, 124, 125, 118, 554, 672, 59, 673, 304, - 1148, 164, 169, 170, 171, 172, 56, 203, 1246, 1260, - 364, 908, 1050, 572, 48, 706, 177, 178, 57, 624, - 1014, 1299, 624, 91, 219, 624, 602, 1297, 1365, 78, - 167, 1606, 474, 810, 119, 147, 1593, 206, 206, 206, - 186, 1595, 135, 424, 426, 428, 430, 432, 303, 206, - 1303, 287, 284, 34, 1004, 206, 337, 1324, 603, 316, - 1409, 1622, 232, 807, 1584, 1601, 561, 216, 1603, 420, - 756, 418, 624, 486, 1092, 729, 730, 74, 395, 316, - 832, 164, 833, 269, 1604, 254, 269, 206, 238, 473, - 249, 252, 253, 198, 1093, 218, 470, 1614, 423, 425, - 307, 206, 66, 1367, 67, 68, 259, 69, 267, 261, - 167, 1615, 427, 119, 1616, 67, 68, 284, 69, 622, - 421, 1300, 484, 34, 1633, 94, 429, 284, 431, 305, - 1158, 285, 288, 286, 112, 1617, 567, 567, 75, 1368, - 1634, 745, 203, 1166, 109, 317, 1636, 594, 519, 421, - 421, 1168, 1162, 1163, 440, 1174, 485, 497, 72, 1635, - 742, 1176, 394, 421, 487, 464, 34, 110, 441, 298, - 1426, 1301, 472, 297, 250, 251, 1140, 421, 588, 421, - 446, 447, 1178, 437, 209, 467, 567, 286, 1673, 1438, - 746, 296, 309, 1498, 1167, 298, 617, 67, 68, 297, - 69, 1043, 1169, 317, 206, 206, 1175, 482, 744, 742, - 156, 1211, 1177, 1157, 491, 67, 68, 296, 69, 111, - 1427, 494, 295, 114, 1437, 1139, 574, 147, 147, 479, - 480, 597, 1516, 1179, 216, 135, 168, 298, 593, 1010, - 819, 297, 496, 174, 794, 1252, 761, 757, 295, 120, - 121, 690, 738, 532, 122, 123, 515, 744, 517, 296, - 539, 1331, 521, 78, 119, 523, 305, 2, 78, 526, - 67, 68, 1220, 69, 535, 536, 537, 538, 67, 68, - 595, 69, 119, 1620, 34, 119, 661, 570, 119, 339, - 295, 119, 596, 561, 204, 216, 216, 557, 55, 555, - 45, 207, 269, 216, 591, 269, 98, 119, 560, 59, - 902, 34, 514, 579, 585, 716, 717, 558, 56, 1621, - 119, 1035, 217, 109, 592, 556, 48, 34, 164, 559, - 57, 826, 337, 600, 119, 67, 68, 119, 69, 173, - 235, 236, 119, 827, 828, 67, 68, 119, 69, 119, - 642, 1283, 216, 623, 1065, 1066, 1067, 167, 122, 123, - 527, 829, 699, 119, 625, 625, 644, 650, 1180, 122, - 123, 98, 438, 624, 624, 643, 649, 633, 34, 1582, - 1049, 98, 119, 317, 493, 740, 289, 1496, 317, 317, - 317, 317, 206, 317, 317, 317, 317, 671, 317, 317, - 713, 119, 317, 317, 317, 317, 659, 117, 179, 317, - 317, 830, 489, 1619, 742, 743, 1182, 237, 317, 1181, - 317, 67, 68, 1200, 69, 8, 9, 695, 1201, 484, - 156, 156, 364, 156, 740, 317, 317, 317, 601, 688, - 759, 689, 206, 802, 648, 13, 1410, 622, 622, 576, - 476, 477, 1164, 586, 772, 109, 467, 618, 286, 619, - 1184, 1186, 620, 621, 571, 206, 1200, 1183, 714, 67, - 317, 1201, 69, 119, 1325, 615, 1188, 727, 474, 731, - 1545, 777, 283, 735, 739, 740, 741, 572, 572, 736, - 1190, 291, 292, 293, 468, 792, 905, 622, 2, 70, - 73, 76, 79, 82, 85, 88, 624, 1490, 1296, 119, - 516, 1185, 1187, 206, 482, 469, 522, 291, 292, 293, - 527, 638, 1192, 180, 529, 2, 1194, 1189, 1196, 27, - 28, 29, 30, 31, 32, 33, 206, 572, 1587, 67, - 68, 1191, 69, 119, 676, 768, 770, 466, 294, 1608, - 801, 801, 811, 801, 780, 182, 566, 466, 567, 291, - 292, 293, 568, 1575, 1441, 1442, 776, 832, 1198, 833, - 577, 578, 1335, 1193, 587, 1337, 779, 1195, 1339, 1197, - 831, 124, 188, 904, 298, 1341, 767, 583, 297, 1627, - 364, 630, 2, 1597, 1577, 839, 616, 843, 183, 27, - 28, 29, 30, 31, 32, 33, 296, 67, 812, 813, - 69, 1069, 769, 220, 816, 821, 817, 184, 203, 1199, - 542, 823, 842, 1336, 1599, 34, 1338, 1200, 1611, 1340, - 121, 298, 1201, 984, 639, 749, 1342, 295, 542, 990, - 977, 981, 27, 28, 29, 30, 31, 32, 33, 667, - 668, 1578, 669, 296, 670, 317, 740, 259, 1594, 580, - 552, 221, 532, 1625, 609, 609, 185, 943, 944, 678, - 679, 553, 797, 798, 799, 554, 13, 986, 1495, 581, - 582, 1600, 766, 919, 295, 766, 640, 826, 950, 641, - 951, 1241, 949, 957, 1072, 988, 1073, 1074, 1075, 1076, - 1077, 543, 945, 13, 970, 975, 941, 781, 222, 1008, - 529, 339, 233, 156, 609, 631, 234, 619, 632, 543, - 620, 621, 800, 122, 123, 1546, 980, 1047, 719, 1003, - 985, 987, 989, 724, 725, 726, 260, 728, 1554, 732, - 733, 734, 290, 737, 1015, 1006, 561, 1488, 919, 1352, - 299, 1354, 801, 826, 300, 67, 68, 34, 69, 301, - 27, 28, 29, 30, 31, 32, 33, 308, 262, 263, - 13, 302, 119, 1548, 580, 753, 754, 1001, 264, 206, - 646, 67, 68, 647, 69, 1033, 309, 27, 28, 29, - 30, 31, 32, 33, 581, 582, 1570, 1034, 766, 1036, - 699, 771, 1576, 27, 28, 29, 30, 31, 32, 33, - 1044, 122, 123, 580, 34, 122, 123, 580, 826, 716, - 717, 1630, 241, 1226, 269, 269, 549, 269, 783, 549, - 827, 828, 1598, 581, 582, 310, 1149, 581, 582, 2, - 311, 946, 947, 801, 948, 1159, 67, 68, 829, 69, - 372, 122, 123, 580, 27, 28, 29, 30, 31, 32, - 33, 419, 638, 1638, 67, 68, 1151, 69, 820, 339, - 970, 396, 156, 581, 582, 433, 67, 68, 119, 69, - 1235, 825, 67, 68, 1071, 69, 474, 653, 654, 655, - 126, 1245, 838, 1247, 1663, 1433, 1434, 1435, 830, 448, - 561, 826, 1018, 1218, 436, 206, 291, 292, 293, 1675, - 1639, 1020, 522, 1412, 1413, 856, 67, 68, 98, 69, - 471, 1623, 1204, 656, 657, 658, 67, 68, 1624, 69, - 119, 1266, 1251, 1269, 474, 119, 1203, 580, 269, 269, - 1213, 1215, 1081, 1082, 1083, 1084, 1085, 1219, 465, 954, - 955, 956, 1672, 291, 292, 293, 1214, 581, 582, 561, - 561, 1557, 561, 474, 1556, 870, 919, 826, 474, 61, - 64, 2, 67, 973, 529, 639, 522, 557, 522, 555, - 1273, 200, 1250, 1291, 1292, 1293, 1294, 1295, 560, 478, - 1230, 1239, 644, 1270, 997, 206, 999, 558, 1000, 1228, - 1237, 643, 1661, 1005, 474, 556, 475, 1227, 1236, 559, - 1143, 1229, 1238, 255, 256, 257, 258, 13, 1414, 1415, - 1272, 67, 1288, 1019, 69, 119, 488, 640, 2, 492, - 641, 870, 495, 1021, 1022, 498, 152, 153, 154, 474, - 1420, 67, 68, 499, 69, 919, 1253, 1032, 1254, 126, - 474, 1632, 803, 1205, 1388, 1389, 1390, 1391, 504, 826, - 826, 608, 608, 505, 1392, 1393, 1394, 506, 67, 68, - 1068, 69, 507, 200, 508, 1318, 509, 98, 510, 826, - 1370, 511, 1078, 512, 1079, 97, 100, 1371, 103, 392, - 513, 826, 518, 826, 826, 520, 826, 826, 1095, 1096, - 524, 27, 28, 29, 30, 31, 32, 33, 1385, 1386, - 525, 803, 541, 522, 575, 569, 522, 599, 652, 781, - 675, 781, 1222, 1223, 1224, 1225, 522, 561, 223, 663, - 224, 225, 226, 298, 1147, 674, 442, 297, 443, 444, - 1610, 1612, 664, 666, 1160, 445, 10, 11, 12, 13, - 1349, 677, 686, 687, 1355, 296, 216, 700, 199, 1372, - 694, 702, 1363, 826, 826, 826, 826, 826, 826, 826, - 701, 156, 703, 708, 392, 705, 631, 803, 715, 870, - 720, 721, 1232, 722, 1233, 1234, 295, 723, 744, 109, - 1382, 500, 501, 502, 503, 152, 153, 154, 747, 109, - 109, 109, 109, 10, 11, 12, 13, 748, 156, 109, - 109, 109, 750, 760, 762, 1216, 763, 1217, 765, 208, - 764, 191, 774, 775, 192, 193, 194, 195, 1423, 196, - 197, 198, 773, 27, 28, 29, 30, 31, 32, 33, - 783, 1405, 783, 778, 785, 680, 681, 682, 784, 522, - 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 803, 804, 1262, 805, 522, 1263, 1493, 806, - 522, 522, 522, 522, 522, 522, 814, 815, 208, 818, - 208, 683, 684, 685, 522, 522, 1494, 822, 824, 837, - 27, 28, 29, 30, 31, 32, 33, 1499, 844, 845, - 97, 522, 522, 522, 522, 99, 34, 100, 846, 847, - 848, 1453, 522, 191, 101, 849, 192, 193, 194, 195, - 1203, 196, 197, 198, 850, 803, 522, 852, 853, 392, - 906, 102, 392, 392, 392, 392, 1487, 392, 392, 392, - 67, 68, 855, 69, 208, 907, 103, 910, 126, 911, - 1395, 1506, 912, 1489, 914, 67, 68, 870, 69, 913, - 917, 522, 522, 918, 1399, 921, 1400, 870, 1302, 952, - 870, 604, 919, 605, 606, 607, 98, 67, 68, 953, - 69, 1547, 958, 959, 960, 126, 1486, 961, 522, 522, - 522, 522, 522, 522, 522, 962, 1332, 1333, 1334, 1170, - 1171, 1172, 1173, 1343, 1344, 1345, 1346, 1347, 1348, 963, - 1350, 1351, 1353, 98, 1356, 1357, 1358, 1359, 1360, 1361, - 1362, 964, 1364, 965, 1366, 966, 1369, 967, 1373, 1428, - 1429, 1430, 1431, 1203, 968, 969, 971, 972, 976, 1585, - 156, 870, 870, 870, 870, 870, 870, 870, 991, 998, - 1549, 1002, 1007, 1009, 1011, 291, 292, 293, 1012, 1013, - 1016, 803, 803, 803, 803, 803, 97, 919, 37, 1017, - 1026, 99, 37, 100, 1023, 1025, 37, 37, 1024, 1027, - 101, 1028, 1029, 803, 803, 1030, 1031, 1589, 1401, 1037, - 37, 1038, 208, 1404, 152, 153, 154, 102, 982, 1039, - 803, 803, 803, 803, 1411, 1046, 1048, 803, 803, 421, - 1080, 1086, 103, 803, 1418, 803, 803, 1089, 1421, 1422, - 2, 37, 1088, 803, 803, 1091, 1094, 1090, 1141, 1425, - 1153, 152, 153, 154, 1144, 1206, 1156, 1161, 1207, 1208, - 1209, 208, 1626, 983, 1613, 1210, 1668, 1242, 1243, 1212, - 1432, 1436, 1244, 1248, 1249, 1255, 1261, 1264, 1258, 1670, - 1259, 40, 1275, 1657, 1447, 1448, 1449, 1450, 1451, 1452, - 1278, 1454, 1279, 1280, 1276, 1281, 1277, 1282, 803, 803, - 1285, 803, 803, 803, 1289, 803, 803, 803, 803, 803, - 803, 803, 803, 803, 40, 1321, 1287, 1290, 1322, 40, - 1326, 40, 40, 40, 919, 40, 1323, 1327, 40, 67, - 68, 1328, 909, 1329, 1330, 489, 1379, 126, 1381, 1383, - 40, 40, 40, 40, 1384, 1669, 1387, 1396, 208, 208, - 208, 208, 208, 1397, 1398, 1403, 1402, 1406, 1424, 1407, - 659, 1166, 208, 1419, 1168, 98, 919, 208, 1505, 1174, - 208, 208, 40, 281, 40, 1510, 3, 4, 5, 6, - 7, 1176, 1178, 1180, 1182, 1184, 1186, 208, 208, 208, - 208, 1188, 208, 208, 208, 208, 1190, 25, 8, 9, - 208, 22, 1439, 208, 40, 1192, 40, 1443, 1445, 1440, - 208, 208, 208, 1444, 1455, 10, 11, 12, 13, 19, - 1446, 855, 14, 15, 1456, 1457, 1458, 1459, 16, 1460, - 1461, 17, 1462, 856, 1463, 1464, 1466, 1467, 18, 19, - 1469, 1465, 1468, 1470, 1471, 1472, 1473, 208, 208, 1475, - 16, 1474, 1477, 1476, 1478, 1479, 1480, 1481, 1482, 1483, - 1484, 1560, 1561, 1562, 1485, 208, 208, 1491, 208, 208, - 208, 1497, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 1501, 1492, 152, 153, 154, 1502, 855, 1503, 1335, - 1507, 1508, 1337, 20, 21, 1509, 22, 23, 24, 856, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 1339, - 37, 37, 37, 1596, 1341, 1512, 1511, 1513, 1602, 1596, - 1605, 1514, 1609, 1515, 1602, 1596, 1605, 1517, 1518, 1519, - 1520, 1522, 1521, 1523, 1524, 1525, 1526, 1527, 1529, 1528, - 1530, 40, 40, 40, 40, 1531, 1602, 1596, 1605, 40, - 1532, 1533, 40, 1534, 40, 40, 40, 40, 40, 40, - 40, 1535, 40, 40, 40, 40, 1536, 40, 40, 40, - 1537, 40, 40, 40, 40, 1538, 1539, 40, 40, 40, - 40, 1540, 1543, 1541, 1542, 1550, 1544, 40, 1555, 40, - 1553, 1565, 40, 1566, 1559, 1567, 40, 40, 1568, 40, - 1583, 1586, 157, 40, 40, 40, 40, 298, 915, 1664, - 1628, 297, 1588, 1590, 1591, 1592, 1064, 268, 269, 270, - 40, 271, 272, 273, 274, 1640, 275, 276, 1629, 296, - 277, 278, 279, 280, 1658, 855, 1659, 1660, 1637, 40, - 40, 40, 40, 40, 1662, 40, 40, 856, 1666, 1665, - 1667, 1671, 1674, 29, 1676, 40, 40, 437, 855, 438, - 481, 104, 137, 806, 740, 540, 862, 538, 841, 533, - 856, 399, 40, 751, 758, 833, 541, 40, 40, 40, + 165, 160, 162, 227, 228, 303, 56, 1008, 548, 668, + 914, 669, 120, 121, 118, 549, 219, 59, 550, 177, + 178, 363, 169, 170, 171, 172, 124, 125, 1142, 48, + 1240, 902, 1293, 55, 568, 203, 702, 1254, 1291, 1359, + 297, 57, 1044, 186, 296, 45, 624, 206, 119, 624, + 598, 804, 624, 1589, 473, 206, 750, 204, 209, 206, + 336, 167, 295, 1616, 207, 1361, 34, 1602, 302, 733, + 734, 735, 78, 998, 1587, 1318, 135, 206, 826, 1294, + 827, 147, 232, 283, 1595, 206, 109, 1597, 725, 726, + 1403, 417, 306, 294, 1297, 213, 1578, 164, 472, 624, + 74, 1362, 1598, 235, 236, 254, 1569, 1600, 238, 419, + 249, 252, 253, 297, 599, 739, 469, 296, 423, 425, + 427, 429, 431, 259, 216, 826, 261, 827, 267, 1295, + 1134, 66, 1432, 218, 1420, 295, 1591, 1564, 1608, 1156, + 1157, 167, 1609, 1570, 1610, 422, 304, 485, 316, 288, + 198, 284, 287, 567, 567, 561, 486, 94, 424, 283, + 420, 75, 97, 338, 740, 426, 294, 99, 316, 100, + 203, 428, 206, 1592, 430, 283, 101, 164, 34, 1133, + 1627, 471, 393, 584, 1421, 463, 436, 34, 801, 206, + 206, 394, 1160, 102, 976, 1162, 420, 1611, 1205, 110, + 445, 446, 579, 567, 590, 466, 613, 439, 103, 420, + 1628, 206, 1168, 475, 476, 1629, 420, 112, 1605, 515, + 1667, 440, 420, 1492, 114, 420, 1539, 481, 72, 285, + 484, 1630, 1246, 751, 490, 483, 308, 686, 493, 977, + 109, 734, 1431, 1161, 1510, 297, 1163, 1004, 788, 296, + 593, 111, 216, 629, 813, 622, 622, 67, 68, 467, + 69, 188, 495, 1169, 119, 572, 572, 295, 1037, 135, + 496, 591, 528, 147, 147, 156, 119, 513, 518, 535, + 468, 517, 304, 285, 519, 1614, 525, 964, 522, 1325, + 119, 1214, 576, 531, 532, 533, 534, 156, 294, 755, + 119, 67, 68, 1484, 69, 622, 78, 119, 566, 206, + 119, 78, 577, 578, 1152, 572, 554, 56, 562, 592, + 563, 1615, 572, 587, 564, 119, 582, 556, 59, 820, + 122, 123, 573, 574, 216, 596, 583, 98, 570, 552, + 48, 821, 822, 553, 55, 119, 575, 581, 611, 896, + 589, 555, 57, 712, 713, 551, 45, 1029, 612, 823, + 217, 119, 290, 291, 292, 119, 1194, 119, 1027, 216, + 1277, 1195, 620, 620, 639, 645, 820, 67, 68, 34, + 69, 119, 561, 621, 621, 640, 646, 167, 821, 822, + 1576, 91, 523, 67, 68, 286, 69, 1151, 657, 619, + 492, 2, 1043, 119, 709, 216, 823, 34, 168, 824, + 119, 663, 664, 98, 665, 1490, 666, 672, 109, 588, + 122, 123, 488, 164, 1613, 437, 122, 123, 576, 98, + 667, 674, 675, 119, 34, 290, 291, 292, 119, 363, + 173, 122, 123, 576, 67, 68, 691, 69, 577, 578, + 796, 206, 126, 964, 122, 123, 824, 1170, 684, 237, + 685, 34, 597, 577, 578, 206, 293, 626, 1158, 174, + 766, 1172, 525, 1229, 695, 466, 1404, 179, 1194, 655, + 98, 269, 1063, 1195, 269, 567, 1174, 710, 67, 68, + 715, 69, 1319, 180, 206, 720, 721, 722, 732, 724, + 618, 728, 729, 730, 561, 1059, 1060, 1061, 1171, 336, + 723, 576, 727, 282, 1176, 182, 731, 156, 156, 1290, + 156, 1178, 1173, 736, 737, 67, 68, 644, 69, 1571, + 481, 577, 578, 624, 747, 748, 216, 1175, 483, 183, + 805, 898, 27, 28, 29, 30, 31, 32, 33, 753, + 109, 1435, 1436, 285, 738, 1180, 1572, 760, 184, 1593, + 765, 762, 764, 1182, 761, 1177, 1581, 290, 291, 292, + 774, 206, 1179, 67, 68, 773, 69, 775, 825, 13, + 241, 338, 770, 833, 1184, 837, 1594, 777, 1186, 465, + 771, 627, 794, 615, 628, 363, 616, 617, 152, 153, + 154, 1188, 795, 738, 786, 465, 1181, 806, 807, 937, + 938, 1621, 740, 810, 1183, 811, 797, 797, 473, 797, + 1190, 2, 67, 68, 124, 69, 119, 814, 736, 1192, + 1329, 815, 185, 763, 1331, 1185, 899, 817, 836, 1187, + 819, 1333, 203, 1335, 939, 980, 67, 978, 2, 69, + 119, 832, 1189, 984, 27, 28, 29, 30, 31, 32, + 33, 740, 92, 27, 28, 29, 30, 31, 32, 33, + 259, 1191, 220, 121, 850, 2, 982, 736, 528, 1194, + 1193, 1330, 1086, 548, 1195, 1332, 1588, 478, 479, 542, + 549, 943, 1334, 550, 1336, 1002, 119, 1489, 543, 913, + 269, 221, 1087, 269, 944, 222, 945, 542, 948, 949, + 950, 233, 1540, 1427, 1428, 1429, 543, 561, 561, 969, + 561, 92, 935, 951, 234, 1548, 609, 609, 119, 67, + 967, 525, 69, 67, 68, 117, 69, 338, 67, 523, + 974, 69, 119, 997, 979, 981, 983, 971, 975, 67, + 68, 991, 69, 993, 156, 994, 260, 1346, 1009, 1348, + 999, 307, 913, 1066, 1482, 1067, 1068, 1069, 1070, 1071, + 1012, 289, 119, 1000, 576, 1226, 609, 1227, 1228, 1014, + 1013, 298, 762, 940, 941, 762, 942, 92, 1058, 299, + 1015, 1016, 1542, 308, 577, 578, 10, 11, 12, 13, + 122, 123, 67, 68, 1026, 69, 8, 9, 1624, 67, + 68, 1028, 69, 1030, 67, 68, 97, 69, 797, 250, + 251, 99, 1143, 100, 1038, 549, 13, 1062, 549, 300, + 101, 1153, 301, 866, 1041, 995, 309, 206, 614, 1072, + 615, 1073, 310, 616, 617, 67, 68, 102, 69, 1065, + 1632, 473, 200, 13, 371, 27, 28, 29, 30, 31, + 32, 33, 103, 642, 1406, 1407, 643, 70, 73, 76, + 79, 82, 85, 88, 791, 792, 793, 1145, 1137, 61, + 64, 1657, 67, 27, 28, 29, 30, 31, 32, 33, + 395, 1141, 34, 262, 263, 1551, 1669, 473, 1550, 866, + 37, 1154, 418, 264, 37, 1408, 1409, 695, 37, 37, + 27, 28, 29, 30, 31, 32, 33, 97, 100, 1198, + 103, 1199, 37, 67, 68, 216, 69, 119, 1212, 1633, + 206, 126, 432, 67, 68, 92, 69, 27, 28, 29, + 30, 31, 32, 33, 712, 713, 1140, 1207, 269, 269, + 1197, 269, 1245, 37, 473, 1209, 473, 1414, 638, 98, + 1264, 1213, 206, 122, 123, 576, 1267, 1655, 435, 473, + 1208, 1666, 1210, 464, 1211, 1075, 1076, 1077, 1078, 1079, + 913, 473, 1626, 712, 713, 577, 578, 775, 447, 775, + 1247, 554, 1248, 1222, 1231, 639, 1244, 777, 1239, 777, + 1241, 470, 556, 473, 1224, 1233, 640, 223, 1282, 224, + 225, 226, 67, 68, 552, 69, 1221, 1230, 553, 200, + 474, 1256, 1089, 1090, 1257, 477, 555, 487, 1223, 1232, + 551, 297, 608, 608, 1266, 296, 494, 491, 1260, 514, + 1263, 1045, 497, 498, 649, 650, 651, 866, 1046, 503, + 1047, 1048, 1049, 295, 1382, 1383, 1384, 1385, 34, 913, + 504, 1312, 269, 269, 1386, 1387, 1388, 255, 256, 257, + 258, 92, 92, 92, 92, 92, 505, 152, 153, 154, + 652, 653, 654, 600, 294, 601, 602, 603, 516, 1050, + 1051, 1052, 191, 92, 92, 192, 193, 194, 195, 506, + 196, 197, 198, 507, 199, 508, 2, 240, 241, 242, + 92, 92, 92, 92, 509, 510, 511, 92, 92, 512, + 676, 677, 678, 92, 1235, 1296, 92, 67, 68, 634, + 69, 119, 243, 92, 92, 1053, 1054, 1055, 520, 1056, + 67, 68, 1057, 69, 499, 500, 501, 502, 1604, 1606, + 521, 537, 392, 1326, 1327, 1328, 679, 680, 681, 565, + 1337, 1338, 1339, 1340, 1341, 1342, 571, 1344, 1345, 1347, + 1366, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1343, 1358, + 157, 1360, 1349, 1363, 595, 1367, 648, 670, 92, 92, + 1357, 92, 92, 92, 1619, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 1376, 297, 659, 671, 441, 296, + 442, 443, 660, 662, 1417, 1379, 1380, 444, 1389, 673, + 682, 683, 37, 37, 37, 866, 244, 295, 245, 246, + 247, 248, 1393, 216, 1394, 866, 690, 392, 866, 696, + 697, 698, 635, 699, 156, 1395, 1164, 1165, 1166, 1167, + 1398, 701, 704, 67, 68, 1399, 69, 627, 294, 191, + 711, 1405, 192, 193, 194, 195, 716, 196, 197, 198, + 717, 1412, 2, 738, 1612, 1415, 1416, 718, 719, 109, + 741, 754, 1487, 742, 13, 744, 1419, 756, 757, 109, + 109, 109, 109, 758, 636, 634, 768, 637, 759, 109, + 109, 109, 1285, 1286, 1287, 1288, 1289, 1426, 1430, 866, + 866, 866, 866, 866, 866, 866, 767, 769, 40, 772, + 779, 1441, 1442, 1443, 1444, 1445, 1446, 778, 1448, 1422, + 1423, 1424, 1425, 797, 1197, 798, 799, 1500, 812, 1447, + 816, 818, 800, 808, 809, 831, 838, 1481, 839, 840, + 841, 40, 842, 290, 291, 292, 40, 843, 40, 40, + 40, 844, 40, 846, 847, 40, 900, 1483, 27, 28, + 29, 30, 31, 32, 33, 849, 901, 40, 40, 40, + 40, 904, 905, 907, 906, 908, 913, 911, 912, 915, + 946, 947, 392, 1488, 952, 392, 392, 392, 392, 104, + 392, 392, 392, 953, 1493, 1499, 954, 955, 635, 40, + 1268, 40, 1504, 67, 68, 956, 69, 265, 127, 266, + 957, 126, 128, 129, 130, 131, 132, 958, 133, 134, + 135, 136, 959, 137, 138, 960, 961, 139, 140, 141, + 142, 40, 34, 40, 143, 144, 962, 1197, 963, 98, + 13, 965, 1617, 145, 966, 146, 970, 985, 1001, 1618, + 636, 992, 1003, 637, 1543, 996, 1005, 1006, 1007, 1010, + 147, 148, 149, 1583, 1011, 1017, 1018, 1019, 420, 1020, + 1021, 913, 1022, 1023, 1033, 1024, 1025, 1031, 1541, 1032, + 1080, 1040, 1042, 1074, 1082, 1083, 1085, 1084, 1554, 1555, + 1556, 1088, 1135, 1147, 1150, 150, 1200, 1201, 1220, 1138, + 916, 917, 918, 1202, 919, 920, 921, 922, 1203, 923, + 924, 198, 1155, 925, 926, 927, 928, 290, 291, 292, + 929, 930, 1204, 1206, 27, 28, 29, 30, 31, 32, + 33, 1236, 1242, 1243, 1249, 1252, 1579, 1237, 1238, 1651, + 1590, 1253, 1255, 1620, 1258, 1596, 1590, 1599, 1269, 1603, + 1662, 1596, 1590, 1599, 1270, 1271, 297, 152, 153, 154, + 743, 1272, 1607, 1273, 1274, 1275, 1276, 1279, 40, 40, + 40, 40, 1281, 1596, 1590, 1599, 40, 1283, 295, 40, + 1284, 40, 40, 40, 40, 40, 40, 40, 931, 40, + 40, 40, 40, 1315, 40, 40, 40, 1317, 40, 40, + 40, 40, 1316, 1320, 40, 40, 40, 40, 913, 294, + 1321, 1322, 1323, 1324, 40, 1373, 40, 488, 95, 40, + 1375, 96, 1494, 40, 40, 1377, 40, 1378, 1381, 1663, + 40, 40, 40, 40, 1390, 1391, 1658, 1392, 1396, 1397, + 1400, 1401, 655, 1418, 97, 98, 2, 40, 1413, 99, + 913, 100, 1160, 1045, 1162, 1168, 1664, 1170, 101, 1172, + 1046, 1174, 1047, 1048, 1049, 1176, 40, 40, 40, 40, + 40, 1178, 40, 40, 1180, 102, 1182, 1184, 1186, 1433, + 155, 1437, 40, 40, 1434, 1438, 156, 1439, 1449, 1451, + 103, 1453, 157, 1440, 1450, 1452, 1454, 1455, 1456, 40, + 1459, 1050, 1051, 1052, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 138, 752, 536, 863, 561, 7, - 10, 13, 537, 545, 271, 74, 143, 834, 842, 40, - 40, 40, 40, 164, 40, 40, 40, 40, 240, 144, - 40, 147, 40, 167, 40, 40, 40, 40, 571, 40, - 40, 561, 40, 40, 40, 210, 561, 28, 561, 561, - 561, 40, 561, 31, 94, 561, 4, 28, 115, 58, - 55, 855, 55, 106, 55, 313, 1042, 561, 561, 561, - 561, 665, 55, 856, 55, 109, 112, 974, 1142, 40, - 40, 40, 118, 55, 55, 55, 1257, 1416, 1558, 55, - 1265, 1256, 55, 1320, 1377, 1165, 55, 40, 40, 561, - 40, 40, 40, 855, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 855, 40, 856, 855, 916, 1155, 67, - 68, 55, 69, 1417, 1408, 856, 598, 126, 856, 55, - 127, 561, 55, 561, 128, 129, 130, 131, 132, 163, - 133, 134, 135, 136, 55, 137, 138, 704, 1152, 139, - 140, 141, 142, 93, 1380, 98, 143, 144, 239, 1051, - 755, 166, 992, 857, 996, 145, 1052, 146, 1053, 1054, - 1055, 540, 793, 202, 851, 635, 0, 0, 0, 0, - 712, 0, 147, 148, 149, 0, 0, 855, 855, 855, - 855, 855, 855, 855, 0, 0, 0, 0, 0, 856, - 856, 856, 856, 856, 856, 856, 0, 1056, 1057, 1058, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 291, - 292, 293, 0, 0, 0, 0, 0, 0, 0, 857, - 1274, 0, 0, 479, 480, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 0, 0, 0, 1059, 1060, 1061, 0, 1062, 0, 0, - 1063, 0, 393, 0, 0, 0, 0, 0, 561, 561, - 0, 561, 0, 152, 153, 154, 561, 0, 0, 561, - 0, 561, 561, 561, 561, 561, 561, 561, 0, 561, - 561, 561, 561, 0, 561, 561, 0, 0, 561, 561, - 561, 561, 0, 0, 561, 561, 561, 561, 95, 0, - 0, 96, 562, 0, 561, 0, 561, 0, 0, 561, - 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, - 561, 561, 561, 561, 97, 98, 0, 0, 0, 99, - 0, 100, 0, 0, 0, 562, 0, 393, 101, 0, - 562, 0, 562, 562, 562, 0, 562, 0, 0, 562, - 0, 0, 0, 0, 0, 102, 561, 0, 561, 561, - 561, 562, 562, 562, 562, 0, 0, 857, 0, 0, - 103, 0, 561, 561, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, - 857, 0, 155, 562, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 40, 1477, 1457, 1458, 1460, 561, 1461, 1053, 1054, 1055, + 210, 1056, 1463, 1462, 1057, 1464, 40, 40, 40, 40, + 1465, 40, 40, 40, 40, 1466, 1467, 40, 1468, 40, + 1469, 40, 40, 40, 40, 1470, 40, 40, 561, 40, + 40, 40, 1471, 561, 1472, 561, 561, 561, 40, 561, + 1473, 156, 561, 1474, 1476, 1478, 1486, 1216, 1217, 1218, + 1219, 1475, 1479, 1485, 561, 561, 561, 561, 25, 1491, + 1495, 1497, 22, 1496, 1501, 1502, 40, 40, 40, 1503, + 1329, 10, 11, 12, 13, 1331, 95, 1333, 1335, 96, + 19, 1505, 1506, 1507, 40, 40, 561, 40, 40, 40, + 1508, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 1509, 40, 97, 98, 1511, 67, 68, 99, 69, 100, + 1512, 16, 1515, 126, 1513, 1544, 101, 1514, 561, 1516, + 561, 1517, 1518, 1519, 1520, 1045, 1521, 1522, 290, 291, + 292, 1523, 1046, 102, 1047, 1048, 1049, 1524, 1525, 1526, + 1527, 98, 1528, 1529, 1364, 1530, 1531, 1532, 103, 1533, + 1534, 1365, 1535, 1536, 1537, 1538, 1549, 156, 27, 28, + 29, 30, 31, 32, 33, 1559, 1547, 1560, 1561, 67, + 68, 1553, 69, 1050, 1051, 1052, 1562, 126, 1577, 909, + 127, 1580, 1623, 1582, 128, 129, 130, 131, 132, 1584, + 133, 134, 135, 136, 1585, 137, 138, 1586, 1622, 139, + 140, 141, 142, 1631, 1634, 98, 143, 144, 1652, 1653, + 67, 68, 1654, 903, 1656, 145, 1659, 146, 126, 1053, + 1054, 1055, 1660, 1056, 1661, 1668, 1057, 1670, 1665, 437, + 438, 736, 147, 148, 149, 104, 540, 538, 541, 29, + 137, 802, 858, 533, 837, 399, 98, 747, 393, 829, + 754, 147, 138, 859, 536, 561, 561, 748, 561, 152, + 153, 154, 822, 561, 537, 545, 561, 150, 561, 561, + 561, 561, 561, 561, 561, 271, 561, 561, 561, 561, + 74, 561, 561, 830, 838, 561, 561, 561, 561, 143, + 164, 561, 561, 561, 561, 144, 240, 167, 210, 562, + 571, 561, 4, 561, 31, 28, 561, 28, 55, 58, + 94, 561, 106, 109, 112, 118, 55, 561, 561, 561, + 561, 115, 55, 152, 153, 154, 67, 68, 822, 69, + 312, 55, 562, 393, 126, 803, 803, 562, 803, 562, + 562, 562, 55, 562, 661, 55, 562, 1259, 55, 968, + 1251, 55, 1036, 561, 55, 561, 561, 561, 562, 562, + 562, 562, 98, 1552, 152, 153, 154, 55, 55, 561, + 561, 55, 1480, 1410, 1250, 1371, 55, 1136, 1314, 55, + 7, 10, 13, 1159, 700, 1149, 561, 1402, 910, 1411, + 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 0, 0, 0, 562, 561, 562, 0, 561, - 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 561, 561, 561, 561, - 0, 561, 561, 561, 561, 0, 0, 561, 0, 561, - 0, 561, 561, 561, 0, 0, 561, 561, 0, 561, - 561, 561, 0, 1051, 393, 0, 0, 393, 561, 0, - 1052, 0, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 393, 0, 0, 393, 393, 393, 393, 0, - 393, 393, 393, 857, 0, 0, 561, 561, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1056, 1057, 1058, 561, 561, 0, 561, 561, 561, - 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 0, 561, 0, 0, 0, 857, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 857, 0, 0, 857, 0, - 0, 0, 562, 562, 0, 562, 0, 1059, 1060, 1061, - 562, 1062, 0, 562, 1063, 562, 562, 562, 562, 562, - 562, 562, 0, 562, 562, 562, 562, 0, 562, 562, - 0, 0, 562, 562, 562, 562, 0, 0, 562, 562, - 562, 562, 0, 0, 0, 0, 555, 0, 562, 0, - 562, 0, 0, 562, 0, 0, 0, 156, 562, 0, - 0, 0, 0, 0, 562, 562, 562, 562, 0, 857, - 857, 857, 857, 857, 857, 857, 0, 0, 0, 555, - 67, 68, 0, 69, 555, 0, 555, 555, 555, 0, - 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 0, 562, 562, 562, 555, 555, 555, 555, 0, - 0, 0, 0, 0, 0, 0, 562, 562, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 0, 0, 0, 555, 562, 562, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 55, + 163, 93, 562, 561, 562, 1374, 561, 561, 1146, 239, + 803, 803, 803, 594, 166, 986, 749, 536, 990, 787, + 845, 202, 0, 561, 561, 561, 561, 0, 561, 561, + 561, 561, 155, 708, 561, 803, 561, 631, 561, 561, + 561, 0, 0, 561, 561, 0, 561, 561, 561, 0, + 393, 0, 0, 393, 0, 561, 822, 0, 0, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 393, 0, + 0, 393, 393, 393, 393, 0, 393, 393, 393, 0, + 0, 0, 0, 561, 561, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 0, 561, 561, 0, 561, 561, 561, 0, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 0, 561, 0, + 0, 0, 822, 0, 0, 0, 0, 0, 0, 803, + 0, 803, 803, 803, 803, 0, 0, 0, 0, 562, + 562, 0, 562, 0, 0, 0, 0, 562, 0, 0, + 562, 0, 562, 562, 562, 562, 562, 562, 562, 0, + 562, 562, 562, 562, 0, 562, 562, 0, 1650, 562, + 562, 562, 562, 0, 0, 562, 562, 562, 562, 0, + 0, 0, 0, 555, 0, 562, 0, 562, 0, 0, + 562, 0, 0, 0, 0, 562, 0, 0, 0, 0, + 0, 562, 562, 562, 562, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 822, 822, 555, 0, 0, 0, + 0, 555, 0, 555, 555, 555, 0, 555, 0, 0, + 0, 0, 0, 0, 822, 0, 0, 562, 0, 562, + 562, 562, 555, 555, 555, 555, 822, 0, 822, 822, + 0, 822, 822, 562, 562, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 0, 0, 0, 555, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 0, 0, 0, 555, - 562, 555, 0, 562, 562, 240, 241, 242, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 562, 562, 562, 0, 562, 562, 562, 562, 0, - 243, 562, 0, 562, 0, 562, 562, 562, 0, 0, - 562, 562, 0, 562, 562, 562, 216, 0, 0, 0, - 0, 0, 562, 0, 0, 0, 67, 68, 216, 69, - 119, 1304, 1305, 1306, 126, 1307, 1308, 1309, 1310, 0, - 1311, 1312, 198, 0, 1313, 1314, 1315, 1316, 0, 1146, - 562, 562, 0, 1317, 0, 0, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 0, 0, 0, 562, 562, - 0, 562, 562, 562, 0, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 0, 562, 716, 717, 0, 0, - 0, 1618, 0, 0, 244, 0, 245, 246, 247, 248, - 0, 0, 0, 0, 0, 0, 555, 555, 0, 555, - 0, 0, 0, 0, 555, 0, 0, 555, 0, 555, - 555, 555, 555, 555, 555, 555, 0, 555, 555, 555, - 555, 0, 555, 555, 0, 0, 555, 555, 555, 555, - 0, 0, 555, 555, 555, 555, 0, 0, 0, 0, - 553, 0, 555, 0, 555, 0, 0, 555, 0, 0, - 0, 0, 555, 0, 0, 0, 0, 0, 555, 555, - 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 553, 807, 807, 0, 807, 553, 0, - 553, 553, 553, 0, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 0, 555, 555, 555, 553, - 553, 553, 553, 0, 0, 0, 0, 0, 0, 0, - 555, 555, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, - 0, 553, 555, 555, 555, 555, 555, 555, 555, 555, + 562, 562, 562, 0, 0, 0, 555, 562, 555, 0, + 562, 562, 0, 0, 0, 0, 0, 0, 822, 822, + 822, 822, 822, 822, 822, 0, 0, 562, 562, 562, + 562, 0, 562, 562, 562, 562, 0, 0, 562, 1635, + 562, 0, 562, 562, 562, 0, 0, 562, 562, 0, + 562, 562, 562, 0, 1636, 0, 0, 0, 0, 562, + 0, 0, 916, 917, 918, 0, 919, 920, 921, 922, + 1637, 923, 924, 198, 0, 925, 926, 927, 928, 1638, + 0, 0, 929, 930, 0, 0, 0, 562, 562, 0, + 0, 0, 0, 1639, 1640, 1641, 1642, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 562, 0, 562, 562, + 562, 0, 562, 562, 562, 562, 562, 562, 562, 562, + 562, 0, 562, 0, 0, 1643, 1644, 1645, 1646, 1647, + 1648, 1649, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 555, 555, 0, 555, 0, 0, 0, + 931, 555, 851, 0, 555, 0, 555, 555, 555, 555, + 555, 555, 555, 0, 555, 555, 555, 555, 0, 555, + 555, 0, 0, 555, 555, 555, 555, 0, 0, 555, + 555, 555, 555, 0, 0, 0, 0, 553, 0, 555, + 0, 555, 0, 0, 555, 0, 0, 0, 0, 555, + 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 851, 0, + 553, 0, 0, 0, 0, 553, 0, 553, 553, 553, + 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 0, 555, 555, 555, 553, 553, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 555, 555, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 0, 0, 0, 553, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 0, 0, 0, 553, 555, 553, 0, 555, 555, 807, - 807, 807, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 555, 555, 555, 0, 555, - 555, 555, 555, 0, 807, 555, 0, 555, 0, 555, - 555, 555, 0, 0, 555, 555, 0, 555, 555, 555, - 0, 0, 0, 0, 0, 0, 555, 922, 923, 924, - 0, 925, 926, 927, 928, 0, 929, 930, 198, 0, - 931, 932, 933, 934, 0, 0, 0, 935, 936, 0, - 0, 0, 0, 0, 555, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 555, 555, 0, 555, 555, 555, 0, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 0, 555, - 0, 0, 0, 0, 0, 0, 0, 0, 807, 0, - 807, 807, 807, 807, 0, 0, 104, 0, 0, 0, - 553, 553, 0, 553, 0, 937, 0, 0, 553, 0, - 0, 553, 0, 553, 553, 553, 553, 553, 553, 553, - 0, 553, 553, 553, 553, 0, 553, 553, 0, 0, - 553, 553, 553, 553, 0, 0, 553, 553, 553, 553, - 0, 0, 0, 0, 551, 0, 553, 0, 553, 0, - 0, 553, 0, 0, 0, 0, 553, 0, 0, 0, - 0, 0, 553, 553, 553, 553, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, - 0, 0, 551, 0, 551, 551, 551, 0, 551, 0, + 555, 555, 555, 555, 555, 555, 555, 0, 0, 0, + 553, 555, 553, 0, 555, 555, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 555, 555, 555, 0, 555, 555, 555, 555, + 0, 0, 555, 0, 555, 0, 555, 555, 555, 0, + 0, 555, 555, 216, 555, 555, 555, 0, 0, 0, + 0, 0, 0, 555, 0, 0, 851, 0, 1298, 1299, + 1300, 0, 1301, 1302, 1303, 1304, 0, 1305, 1306, 198, + 0, 1307, 1308, 1309, 1310, 0, 0, 0, 0, 851, + 1311, 555, 555, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, + 555, 0, 555, 555, 555, 0, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 0, 555, 268, 269, 270, + 0, 271, 272, 273, 274, 0, 275, 276, 0, 0, + 277, 278, 279, 280, 0, 0, 0, 553, 553, 0, + 553, 0, 0, 0, 0, 553, 852, 0, 553, 0, + 553, 553, 553, 553, 553, 553, 553, 0, 553, 553, + 553, 553, 0, 553, 553, 0, 0, 553, 553, 553, + 553, 0, 0, 553, 553, 553, 553, 0, 0, 0, + 0, 551, 0, 553, 0, 553, 0, 0, 553, 0, + 0, 0, 851, 553, 0, 0, 0, 0, 0, 553, + 553, 553, 553, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 852, 0, 551, 0, 0, 0, 0, 551, + 0, 551, 551, 551, 0, 551, 0, 0, 0, 0, + 0, 0, 0, 0, 851, 553, 0, 553, 553, 553, + 551, 551, 551, 551, 851, 0, 0, 851, 0, 0, + 0, 553, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, - 553, 553, 553, 551, 551, 551, 551, 0, 0, 0, - 0, 0, 0, 0, 553, 553, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 553, 0, 0, 0, 551, 553, 553, 553, 553, + 0, 0, 551, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 0, 0, 0, 551, 553, 551, - 0, 553, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, - 553, 553, 0, 553, 553, 553, 553, 0, 0, 553, - 0, 553, 0, 553, 553, 553, 0, 0, 553, 553, - 0, 553, 553, 553, 0, 0, 0, 0, 0, 0, - 553, 0, 0, 0, 0, 95, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, - 0, 97, 98, 0, 0, 0, 99, 0, 100, 0, - 0, 0, 0, 0, 0, 101, 553, 553, 0, 553, - 553, 553, 0, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 102, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 0, 551, 551, 0, 551, 0, 0, - 0, 0, 551, 0, 0, 551, 0, 551, 551, 551, - 551, 551, 551, 551, 0, 551, 551, 551, 551, 0, - 551, 551, 0, 1656, 551, 551, 551, 551, 0, 0, - 551, 551, 551, 551, 0, 0, 0, 0, 552, 0, - 551, 0, 551, 0, 0, 551, 0, 0, 0, 0, - 551, 0, 0, 0, 0, 0, 551, 551, 551, 551, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 552, 0, 0, 0, 0, 552, 0, 552, 552, - 552, 0, 552, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 551, 0, 551, 551, 551, 552, 552, 552, - 552, 0, 0, 0, 0, 0, 0, 0, 551, 551, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 0, 0, 0, 552, + 553, 0, 0, 0, 551, 553, 551, 0, 553, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 851, 851, + 851, 851, 851, 851, 851, 553, 553, 553, 553, 0, + 553, 553, 553, 553, 0, 0, 553, 0, 553, 0, + 553, 553, 553, 0, 0, 553, 553, 0, 553, 553, + 553, 0, 0, 0, 0, 0, 0, 553, 0, 0, + 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 852, 0, 553, 553, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 553, 553, 0, 553, 553, 553, 0, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 0, + 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 551, 551, 0, 551, 0, 0, 0, 0, 551, + 853, 0, 551, 0, 551, 551, 551, 551, 551, 551, + 551, 0, 551, 551, 551, 551, 0, 551, 551, 0, + 0, 551, 551, 551, 551, 0, 0, 551, 551, 551, + 551, 0, 0, 0, 0, 552, 0, 551, 0, 551, + 0, 0, 551, 0, 0, 0, 852, 551, 0, 0, + 0, 0, 0, 551, 551, 551, 551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 853, 0, 552, 0, + 0, 0, 0, 552, 0, 552, 552, 552, 0, 552, + 0, 0, 0, 0, 0, 0, 0, 0, 852, 551, + 0, 551, 551, 551, 552, 552, 552, 552, 852, 0, + 0, 852, 0, 0, 0, 551, 551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 551, 0, 0, 0, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 0, 0, - 0, 552, 551, 552, 0, 551, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 551, 551, 551, 551, 0, 551, 551, 551, - 551, 0, 0, 551, 1641, 551, 0, 551, 551, 551, - 0, 0, 551, 551, 0, 551, 551, 551, 0, 1642, - 0, 0, 0, 0, 551, 0, 0, 922, 923, 924, - 0, 925, 926, 927, 928, 1643, 929, 930, 198, 0, - 931, 932, 933, 934, 1644, 0, 0, 935, 936, 0, - 0, 0, 551, 551, 0, 0, 0, 0, 1645, 1646, - 1647, 1648, 0, 0, 0, 0, 0, 0, 0, 0, - 551, 551, 0, 551, 551, 551, 0, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 0, 551, 0, 0, - 1649, 1650, 1651, 1652, 1653, 1654, 1655, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 552, 552, - 0, 552, 0, 0, 0, 937, 552, 0, 0, 552, - 0, 552, 552, 552, 552, 552, 552, 552, 0, 552, - 552, 552, 552, 0, 552, 552, 0, 0, 552, 552, - 552, 552, 0, 0, 552, 552, 552, 552, 0, 0, - 0, 0, 554, 0, 552, 0, 552, 0, 0, 552, - 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, - 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, - 554, 0, 554, 554, 554, 0, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 552, 0, 552, 552, - 552, 554, 554, 554, 554, 0, 0, 0, 0, 0, - 0, 0, 552, 552, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, - 0, 0, 0, 554, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 0, 0, 0, 554, 552, 554, 0, 552, + 551, 551, 551, 551, 551, 0, 0, 0, 552, 551, + 552, 0, 551, 551, 0, 0, 0, 0, 0, 0, + 0, 0, 852, 852, 852, 852, 852, 852, 852, 551, + 551, 551, 551, 0, 551, 551, 551, 551, 0, 0, + 551, 0, 551, 0, 551, 551, 551, 0, 0, 551, + 551, 0, 551, 551, 551, 0, 0, 0, 0, 0, + 0, 551, 0, 0, 853, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 853, 0, 551, + 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 551, 551, 0, + 551, 551, 551, 0, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 0, 551, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 552, 552, 0, 552, 0, + 0, 0, 0, 552, 0, 0, 552, 0, 552, 552, + 552, 552, 552, 552, 552, 0, 552, 552, 552, 552, + 0, 552, 552, 0, 0, 552, 552, 552, 552, 0, + 0, 552, 552, 552, 552, 0, 0, 0, 0, 554, + 0, 552, 0, 552, 0, 0, 552, 0, 0, 0, + 853, 552, 0, 0, 0, 0, 0, 552, 552, 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 552, 552, 552, 552, - 0, 552, 552, 552, 552, 0, 0, 552, 0, 552, - 0, 552, 552, 552, 0, 0, 552, 552, 0, 552, - 552, 552, 0, 127, 0, 0, 0, 0, 552, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 1374, - 144, 0, 0, 0, 0, 0, 552, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 552, 0, 552, 552, 552, - 0, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 0, 552, 0, 0, 0, 0, 0, 0, 1375, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 554, 0, 554, 0, 1376, 0, 0, - 554, 0, 0, 554, 0, 554, 554, 554, 554, 554, - 554, 554, 0, 554, 554, 554, 554, 0, 554, 554, - 0, 0, 554, 554, 554, 554, 0, 0, 554, 554, - 554, 554, 0, 0, 0, 0, 712, 0, 554, 0, - 554, 0, 0, 554, 0, 0, 0, 0, 554, 0, - 0, 0, 0, 0, 554, 554, 554, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, - 0, 0, 0, 0, 712, 0, 712, 712, 712, 0, - 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 0, 554, 554, 554, 712, 712, 712, 712, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 0, 712, 554, 554, + 0, 0, 554, 0, 0, 0, 0, 554, 0, 554, + 554, 554, 0, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 853, 552, 0, 552, 552, 552, 554, 554, + 554, 554, 853, 0, 0, 853, 0, 0, 0, 552, + 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, + 554, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 0, + 0, 0, 554, 552, 554, 0, 552, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 853, 853, 853, 853, + 853, 853, 853, 552, 552, 552, 552, 0, 552, 552, + 552, 552, 0, 0, 552, 0, 552, 0, 552, 552, + 552, 0, 0, 552, 552, 0, 552, 552, 552, 0, + 127, 0, 0, 0, 0, 552, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 1368, 144, 0, 0, + 0, 0, 0, 552, 552, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 552, 552, 0, 552, 552, 552, 0, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 0, 552, 0, + 0, 0, 0, 0, 0, 1369, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, + 554, 0, 554, 0, 1370, 0, 0, 554, 0, 0, + 554, 0, 554, 554, 554, 554, 554, 554, 554, 0, + 554, 554, 554, 554, 0, 554, 554, 0, 0, 554, + 554, 554, 554, 0, 0, 554, 554, 554, 554, 0, + 0, 0, 0, 708, 0, 554, 0, 554, 0, 0, + 554, 0, 0, 0, 0, 554, 0, 0, 0, 0, + 0, 554, 554, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, + 0, 708, 0, 708, 708, 708, 0, 708, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 554, 0, 554, + 554, 554, 708, 708, 708, 708, 0, 0, 0, 0, + 0, 0, 0, 554, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 0, 0, 0, 708, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 0, 0, 0, 712, - 554, 712, 0, 554, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 554, 554, 554, 0, 554, 554, 554, 554, 0, - 0, 554, 0, 554, 0, 554, 554, 554, 0, 0, - 554, 554, 0, 554, 554, 554, 0, 0, 0, 0, - 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 554, 554, 0, 0, 0, 708, 554, 708, 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, - 0, 554, 554, 554, 0, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 0, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 712, 712, 0, 712, - 0, 0, 0, 0, 712, 0, 0, 712, 0, 712, - 712, 712, 712, 712, 712, 712, 0, 712, 712, 712, - 712, 0, 712, 712, 0, 0, 712, 712, 712, 712, - 0, 0, 712, 712, 712, 0, 0, 0, 0, 0, - 711, 0, 712, 0, 712, 0, 0, 712, 0, 0, - 0, 0, 712, 0, 0, 0, 0, 0, 712, 712, - 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 711, 0, 0, 0, 0, 711, 0, - 711, 711, 711, 0, 711, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 712, 0, 712, 712, 712, 711, - 711, 711, 711, 0, 0, 0, 0, 0, 0, 0, - 712, 712, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, - 0, 711, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 0, 0, 0, 711, 712, 711, 0, 712, 712, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 712, 712, 712, 712, 0, 712, - 712, 712, 712, 0, 0, 712, 0, 712, 0, 712, - 712, 712, 0, 0, 712, 712, 0, 712, 712, 712, - 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 712, 712, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 712, 712, 0, 712, 712, 712, 0, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 0, 712, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 711, 711, 0, 711, 0, 0, 0, 0, 711, 0, - 0, 711, 0, 711, 711, 711, 711, 711, 711, 711, - 0, 711, 711, 711, 711, 0, 711, 711, 0, 0, - 711, 711, 711, 711, 0, 0, 711, 711, 711, 0, - 0, 0, 0, 0, 710, 0, 711, 0, 711, 0, - 0, 711, 0, 0, 0, 0, 711, 0, 0, 0, - 0, 0, 711, 711, 711, 711, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 710, 0, 0, - 0, 0, 710, 0, 710, 710, 710, 0, 710, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 711, 0, - 711, 711, 711, 710, 710, 710, 710, 0, 0, 0, - 0, 0, 0, 0, 711, 711, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 711, 0, 0, 0, 710, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 0, 0, 0, 710, 711, 710, - 0, 711, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 711, 711, - 711, 711, 0, 711, 711, 711, 711, 0, 0, 711, - 0, 711, 0, 711, 711, 711, 0, 0, 711, 711, - 0, 711, 711, 711, 0, 0, 0, 0, 0, 0, - 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 711, 711, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 711, 711, 0, 711, - 711, 711, 0, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 0, 711, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 710, 710, 0, 710, 0, 0, - 0, 0, 710, 0, 0, 710, 0, 710, 710, 710, - 710, 710, 710, 710, 0, 710, 710, 710, 710, 0, - 710, 710, 0, 0, 710, 710, 710, 710, 0, 0, - 710, 710, 710, 0, 0, 0, 0, 0, 709, 0, - 710, 0, 710, 0, 0, 710, 0, 0, 0, 0, - 710, 0, 0, 0, 0, 0, 710, 710, 710, 710, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 709, 0, 0, 0, 0, 709, 0, 709, 709, - 709, 0, 709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 710, 0, 710, 710, 710, 709, 709, 709, - 709, 0, 0, 0, 0, 0, 0, 0, 710, 710, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 710, 0, 0, 0, 709, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 0, 0, - 0, 709, 710, 709, 0, 710, 710, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 710, 710, 710, 710, 0, 710, 710, 710, - 710, 0, 0, 710, 0, 710, 0, 710, 710, 710, - 0, 0, 710, 710, 0, 710, 710, 710, 0, 0, - 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 710, 710, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 710, 710, 0, 710, 710, 710, 0, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 0, 710, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 709, 709, - 0, 709, 0, 0, 0, 0, 709, 0, 0, 709, - 0, 709, 709, 709, 709, 709, 709, 709, 0, 709, - 709, 709, 709, 0, 709, 709, 0, 0, 709, 709, - 709, 709, 0, 0, 709, 709, 709, 0, 0, 0, - 0, 0, 719, 0, 709, 0, 709, 0, 0, 709, - 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, - 709, 709, 709, 709, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, - 0, 0, 719, 719, 0, 0, 719, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 709, 0, 709, 709, - 709, 719, 0, 719, 719, 0, 0, 0, 0, 0, - 0, 0, 709, 709, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1500, 709, - 0, 0, 0, 0, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 0, 0, 0, 719, 709, 719, 0, 709, - 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 709, 709, 709, 709, - 0, 709, 709, 709, 709, 0, 0, 709, 0, 709, - 0, 709, 709, 709, 0, 0, 709, 709, 0, 709, - 709, 709, 0, 0, 0, 0, 0, 0, 709, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 709, 709, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 298, 709, 709, 0, 709, 709, 709, - 0, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 719, 719, 0, 719, 0, 0, 0, 0, - 719, 0, 0, 719, 0, 719, 719, 719, 719, 719, - 719, 719, 0, 719, 719, 719, 719, 0, 719, 719, - 0, 0, 719, 719, 719, 719, 0, 0, 719, 719, - 719, 0, 0, 52, 0, 0, 0, 0, 719, 0, - 719, 0, 0, 719, 0, 0, 0, 0, 719, 0, - 0, 0, 0, 0, 719, 719, 719, 719, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1051, 0, 0, 0, 0, 0, 0, 1052, 0, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 719, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 719, 719, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1056, - 1057, 1058, 0, 719, 0, 0, 0, 0, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 52, 0, 52, 0, - 719, 0, 0, 719, 719, 1059, 1060, 1061, 0, 1062, - 0, 0, 1063, 0, 0, 0, 0, 0, 0, 0, - 719, 719, 719, 719, 0, 719, 719, 719, 719, 0, - 0, 719, 0, 719, 0, 719, 719, 719, 0, 0, - 719, 719, 0, 719, 719, 719, 298, 0, 0, 0, - 0, 0, 719, 298, 0, 298, 298, 298, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 719, 719, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 298, 298, 298, 0, 719, 719, - 0, 719, 719, 719, 0, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 0, 719, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 52, 0, 0, 0, - 298, 298, 298, 0, 298, 0, 52, 298, 0, 0, - 52, 52, 52, 0, 52, 52, 52, 52, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, - 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 589, 127, 590, 54, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 52, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 0, 52, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 147, 148, 149, 0, 52, 52, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 52, + 0, 0, 0, 0, 0, 0, 0, 554, 554, 554, + 554, 0, 554, 554, 554, 554, 0, 0, 554, 0, + 554, 0, 554, 554, 554, 0, 0, 554, 554, 0, + 554, 554, 554, 0, 0, 0, 0, 0, 0, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 554, 554, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 554, 554, 0, 554, 554, + 554, 0, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 0, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 708, 708, 0, 708, 0, 0, 0, + 0, 708, 0, 0, 708, 0, 708, 708, 708, 708, + 708, 708, 708, 0, 708, 708, 708, 708, 0, 708, + 708, 0, 0, 708, 708, 708, 708, 0, 0, 708, + 708, 708, 0, 0, 0, 0, 0, 707, 0, 708, + 0, 708, 0, 0, 708, 0, 0, 0, 0, 708, + 0, 0, 0, 0, 0, 708, 708, 708, 708, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 707, 0, 0, 0, 0, 707, 0, 707, 707, 707, + 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 0, 708, 708, 708, 707, 707, 707, 707, + 0, 0, 0, 0, 0, 0, 0, 708, 708, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 708, 0, 0, 0, 707, 708, + 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 708, 708, 0, 0, 0, + 707, 708, 707, 0, 708, 708, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 708, 708, 708, 0, 708, 708, 708, 708, + 0, 0, 708, 0, 708, 0, 708, 708, 708, 0, + 0, 708, 708, 0, 708, 708, 708, 0, 0, 0, + 0, 0, 0, 708, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 708, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 708, 0, 708, 708, 708, 0, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 0, 708, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 707, 707, 0, + 707, 0, 0, 0, 0, 707, 0, 0, 707, 0, + 707, 707, 707, 707, 707, 707, 707, 0, 707, 707, + 707, 707, 0, 707, 707, 0, 0, 707, 707, 707, + 707, 0, 0, 707, 707, 707, 0, 0, 0, 0, + 0, 715, 0, 707, 0, 707, 0, 0, 707, 0, + 0, 0, 0, 707, 0, 0, 0, 0, 0, 707, + 707, 707, 707, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, + 0, 715, 715, 0, 0, 715, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 0, 707, 707, 707, + 715, 0, 715, 715, 0, 0, 0, 0, 0, 0, + 0, 707, 707, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 707, 0, + 0, 0, 0, 707, 707, 707, 707, 707, 707, 707, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + 707, 0, 0, 0, 715, 707, 715, 0, 707, 707, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 707, 707, 707, 0, + 707, 707, 707, 707, 0, 0, 707, 0, 707, 0, + 707, 707, 707, 0, 0, 707, 707, 0, 707, 707, + 707, 0, 0, 0, 0, 0, 0, 707, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 707, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 707, 707, 0, 707, 707, 707, 0, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 0, + 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 715, 715, 0, 715, 0, 0, 0, 0, 715, + 0, 0, 715, 0, 715, 715, 715, 715, 715, 715, + 715, 0, 715, 715, 715, 715, 0, 715, 715, 0, + 0, 715, 715, 715, 715, 0, 0, 715, 715, 715, + 0, 0, 52, 0, 0, 0, 0, 715, 0, 715, + 0, 0, 715, 0, 0, 0, 0, 715, 0, 0, + 0, 0, 0, 715, 715, 715, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 0, 0, 0, 0, 0, 298, 0, 298, + 298, 298, 0, 0, 0, 0, 0, 0, 0, 715, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 715, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, + 298, 0, 715, 0, 0, 0, 0, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 52, 0, 52, 0, 715, + 0, 0, 715, 715, 298, 298, 298, 0, 298, 0, + 0, 298, 0, 0, 0, 0, 0, 0, 0, 715, + 715, 715, 715, 0, 715, 715, 715, 715, 0, 0, + 715, 0, 715, 0, 715, 715, 715, 0, 0, 715, + 715, 0, 715, 715, 715, 0, 0, 0, 0, 0, + 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 715, 715, 0, + 715, 715, 715, 0, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 0, 715, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 585, + 127, 586, 54, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, + 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 54, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 52, 52, 52, 0, 52, 52, 52, 52, - 0, 0, 52, 0, 52, 0, 52, 52, 52, 52, - 0, 52, 52, 0, 52, 52, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, - 373, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 52, 0, 52, 52, 52, 0, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 0, 0, 0, 0, 374, - 0, 0, 0, 375, 0, 0, 376, 377, 0, 0, - 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 54, 0, 0, 54, 0, 0, 390, - 0, 0, 391, 155, 0, 0, 54, 0, 0, 392, - 54, 54, 54, 0, 54, 54, 54, 54, 393, 54, - 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 127, 266, 55, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 54, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 0, 54, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 147, 148, 149, 0, 54, 54, 0, - 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 54, + 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, + 835, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, + 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, + 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 0, 0, 0, 0, 0, 0, 0, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 0, 0, 0, 0, 373, 0, + 0, 0, 374, 0, 0, 375, 376, 0, 0, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 54, 0, 0, 54, 0, 0, 389, 0, + 0, 390, 155, 0, 0, 54, 0, 0, 391, 54, + 54, 54, 0, 54, 54, 54, 54, 392, 54, 54, + 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 55, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 54, 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 55, 0, 55, 0, - 0, 841, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, - 0, 0, 54, 0, 54, 0, 54, 54, 54, 54, - 0, 54, 54, 0, 54, 54, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 105, 105, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 54, 0, 0, 0, 0, 0, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 0, 54, 54, 54, 0, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 0, 0, 0, 0, 105, - 0, 0, 0, 105, 0, 0, 105, 105, 0, 0, - 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 55, 0, 0, 55, 0, 0, 105, - 0, 0, 105, 155, 0, 0, 55, 0, 0, 105, - 55, 55, 55, 0, 55, 55, 55, 55, 105, 55, - 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 56, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 55, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 0, 55, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 147, 148, 149, 0, 55, 55, 0, - 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 55, + 54, 54, 54, 54, 54, 55, 0, 55, 0, 0, + 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 54, 54, 0, 54, 54, 54, 54, 0, + 0, 54, 0, 54, 0, 54, 54, 54, 54, 0, + 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, + 0, 54, 54, 54, 0, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 0, 105, 0, + 0, 0, 105, 0, 0, 105, 105, 0, 0, 0, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 55, 0, 0, 55, 0, 0, 105, 0, + 0, 105, 155, 0, 0, 55, 0, 0, 105, 55, + 55, 55, 0, 55, 55, 55, 55, 105, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 56, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 55, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 55, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 147, 148, 149, 0, 55, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 56, 0, 56, 0, - 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, - 0, 0, 55, 0, 55, 0, 55, 55, 55, 55, - 0, 55, 55, 0, 55, 55, 55, 0, 0, 0, + 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, + 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, + 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 56, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 56, 0, 0, 0, - 56, 56, 56, 0, 56, 56, 56, 56, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, - 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 53, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 56, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 0, 56, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 232, 0, 53, 0, 232, 232, 232, 232, 232, 0, + 232, 232, 232, 232, 56, 232, 232, 0, 0, 232, + 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, + 0, 56, 0, 0, 0, 232, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 147, 148, 149, 0, 56, 56, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 232, 232, 232, 0, 56, 56, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 56, + 0, 0, 0, 0, 0, 0, 0, 232, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, + 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 53, 0, 53, 0, + 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 56, 56, 56, 0, 56, 56, 56, 56, - 0, 0, 56, 0, 56, 0, 56, 56, 56, 56, - 0, 56, 56, 0, 56, 56, 56, 0, 0, 0, + 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, + 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, + 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 56, 0, 56, 56, 56, 0, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 53, 0, 0, 0, - 53, 53, 53, 0, 53, 53, 53, 53, 0, 53, - 53, 53, 0, 53, 53, 53, 53, 0, 0, 53, - 53, 53, 0, 0, 0, 61, 0, 61, 0, 0, - 0, 0, 34, 398, 97, 0, 0, 0, 0, 99, - 0, 100, 0, 0, 0, 53, 0, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 102, 399, 0, 400, 401, - 402, 403, 404, 0, 0, 0, 0, 405, 0, 0, - 103, 0, 53, 0, 0, 0, 406, 53, 53, 0, - 0, 407, 0, 408, 0, 0, 0, 0, 551, 0, - 0, 0, 0, 0, 0, 409, 410, 411, 412, 413, - 414, 415, 416, 0, 0, 0, 0, 0, 417, 53, + 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 53, 0, 0, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, + 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, + 53, 0, 0, 0, 61, 0, 61, 0, 0, 0, + 0, 34, 397, 97, 0, 0, 0, 0, 99, 0, + 100, 0, 0, 0, 53, 0, 0, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 102, 398, 0, 399, 400, 401, + 402, 403, 0, 0, 0, 0, 404, 0, 0, 103, + 0, 53, 0, 0, 0, 405, 53, 53, 0, 0, + 406, 0, 407, 0, 0, 0, 0, 547, 0, 0, + 0, 0, 0, 0, 408, 409, 410, 411, 412, 413, + 414, 415, 0, 0, 0, 0, 0, 416, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, + 53, 53, 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 0, 62, 0, 0, - 0, 0, 61, 0, 0, 61, 0, 0, 0, 0, - 0, 53, 53, 53, 53, 61, 53, 53, 53, 53, - 0, 0, 53, 0, 53, 0, 53, 53, 53, 53, - 0, 53, 53, 0, 53, 53, 53, 0, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 2, 0, 0, 53, - 53, 0, 53, 53, 53, 0, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 542, 0, 0, 61, 61, + 53, 53, 53, 53, 53, 0, 62, 0, 0, 0, + 0, 61, 0, 0, 61, 0, 0, 0, 0, 0, + 53, 53, 53, 53, 61, 53, 53, 53, 53, 0, + 0, 53, 0, 53, 0, 53, 53, 53, 53, 0, + 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, + 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 2, 0, 0, 53, 53, + 0, 53, 53, 53, 0, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 538, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 0, 0, 0, 61, + 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 61, 61, 61, 0, 61, 61, 61, 61, 0, - 0, 61, 0, 61, 0, 61, 61, 61, 61, 0, - 61, 61, 0, 61, 61, 61, 0, 0, 0, 0, - 0, 0, 543, 0, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 544, 0, 0, 0, - 0, 545, 0, 0, 8, 9, 0, 0, 0, 0, - 61, 61, 0, 0, 0, 0, 0, 62, 0, 0, - 62, 10, 11, 12, 13, 0, 546, 547, 61, 61, - 62, 61, 61, 61, 0, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 0, 0, 548, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 65, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 549, 550, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 61, 61, 61, 61, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, + 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, + 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, + 0, 539, 0, 5, 6, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 540, 0, 0, 0, 0, + 541, 0, 0, 8, 9, 0, 0, 0, 0, 61, + 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, + 10, 11, 12, 13, 0, 542, 543, 61, 61, 62, + 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 0, 0, 544, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 65, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 0, 66, 0, 0, 0, 0, 65, 0, 0, 65, - 0, 0, 0, 0, 0, 62, 62, 62, 62, 65, - 62, 62, 62, 62, 0, 0, 62, 0, 62, 0, - 62, 62, 62, 62, 0, 62, 62, 0, 62, 62, - 62, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 0, 62, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 62, 62, 0, 62, 62, 62, 0, + 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 66, 0, 0, 0, + 66, 0, 0, 0, 0, 65, 0, 0, 65, 0, + 0, 0, 0, 0, 62, 62, 62, 62, 65, 62, + 62, 62, 62, 0, 0, 62, 0, 62, 0, 62, + 62, 62, 62, 0, 62, 62, 0, 62, 62, 62, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, + 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 62, 62, 0, 62, 62, 62, 0, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, - 0, 0, 0, 0, 0, 566, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 65, 65, 65, 0, 65, - 65, 65, 65, 0, 0, 65, 0, 65, 0, 65, - 65, 65, 65, 0, 65, 65, 0, 65, 65, 65, - 0, 0, 0, 0, 0, 566, 566, 0, 0, 566, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 566, 0, 566, 0, 0, 0, - 0, 0, 0, 0, 65, 65, 0, 0, 0, 0, - 0, 66, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 65, 65, 66, 65, 65, 65, 0, 65, + 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, - 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 65, 65, 0, 65, 65, + 65, 65, 0, 0, 65, 0, 65, 0, 65, 65, + 65, 65, 0, 65, 65, 0, 65, 65, 65, 0, + 0, 0, 0, 0, 566, 566, 0, 0, 566, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 0, 566, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 0, 0, 0, 0, 0, + 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 66, 65, 65, 65, 0, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 566, 0, 566, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 66, 66, 66, + 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 0, 0, 0, 66, 66, + 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 0, 0, 564, 0, 0, 0, - 0, 0, 0, 0, 0, 566, 566, 0, 566, 66, - 66, 66, 66, 0, 66, 66, 66, 66, 566, 566, - 66, 0, 66, 0, 66, 66, 66, 66, 0, 66, - 66, 0, 66, 66, 66, 0, 564, 564, 0, 0, + 66, 66, 66, 0, 0, 564, 0, 0, 0, 0, + 0, 0, 0, 0, 566, 566, 0, 566, 66, 66, + 66, 66, 0, 66, 66, 66, 66, 566, 566, 66, + 0, 66, 0, 66, 66, 66, 66, 0, 66, 66, + 0, 66, 66, 66, 0, 564, 564, 0, 0, 564, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 564, 566, 564, 0, 0, 0, + 566, 0, 0, 0, 0, 0, 566, 0, 66, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 66, 66, 0, 66, + 66, 66, 0, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 564, 566, 564, 0, 0, - 0, 566, 0, 0, 0, 0, 0, 566, 0, 66, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 0, 66, 66, 0, - 66, 66, 66, 0, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, - 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 0, - 0, 0, 566, 566, 566, 566, 566, 566, 566, 0, - 0, 0, 0, 566, 0, 0, 566, 566, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 0, 0, + 0, 566, 566, 566, 566, 566, 566, 566, 0, 0, + 0, 0, 566, 0, 0, 566, 566, 0, 0, 565, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 566, 566, 566, 566, 0, 566, 566, 566, + 566, 0, 0, 566, 0, 566, 0, 566, 566, 566, + 0, 0, 566, 566, 0, 566, 566, 566, 0, 565, + 565, 0, 0, 565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 566, 566, 566, 566, 0, 566, 566, - 566, 566, 0, 0, 566, 0, 566, 0, 566, 566, - 566, 0, 0, 566, 566, 0, 566, 566, 566, 0, - 565, 565, 0, 0, 565, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, - 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 566, 566, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, - 564, 566, 566, 0, 566, 566, 566, 0, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 565, 0, 565, 0, 564, 0, 0, - 0, 0, 564, 0, 0, 0, 0, 0, 564, 0, - 0, 0, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 143, - 144, 0, 0, 33, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 566, 566, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, + 566, 566, 0, 566, 566, 566, 0, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 565, 0, 565, 0, 564, 0, 0, 0, + 0, 564, 0, 0, 0, 0, 0, 564, 0, 0, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, + 0, 0, 33, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 150, 0, 33, 564, 564, 564, 564, 564, 564, 564, - 0, 0, 0, 0, 564, 0, 0, 564, 564, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 564, 564, 564, 564, 0, 564, - 564, 564, 564, 565, 565, 564, 0, 564, 0, 564, - 564, 564, 0, 0, 564, 564, 0, 564, 564, 564, - 0, 0, 0, 0, 0, 0, 33, 0, 33, 0, + 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 150, + 0, 33, 564, 564, 564, 564, 564, 564, 564, 0, + 0, 0, 0, 564, 0, 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 0, 0, 0, 0, 565, 0, 0, 0, - 0, 0, 565, 0, 564, 564, 0, 0, 0, 0, + 0, 0, 0, 564, 564, 564, 564, 0, 564, 564, + 564, 564, 565, 565, 564, 0, 564, 0, 564, 564, + 564, 0, 0, 564, 564, 0, 564, 564, 564, 0, + 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 564, 564, 0, 564, 564, 564, 0, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 0, 0, + 565, 0, 0, 0, 0, 565, 0, 0, 0, 0, + 0, 565, 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 564, 564, 0, 564, 564, 564, 0, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 565, 565, 565, 565, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 0, 155, 0, 565, 565, 565, - 565, 565, 565, 565, 0, 0, 0, 0, 565, 0, - 0, 565, 565, 33, 34, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 565, 565, - 565, 565, 0, 565, 565, 565, 565, 0, 0, 565, - 0, 565, 0, 565, 565, 565, 0, 0, 565, 565, - 0, 565, 565, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 34, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 565, 565, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 565, 565, 0, 565, - 565, 565, 0, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 0, 0, 0, 0, 0, 0, 789, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 565, 565, 565, 0, 155, 0, 565, 565, 565, 565, + 565, 565, 565, 0, 0, 0, 0, 565, 0, 0, + 565, 565, 33, 34, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 565, 565, 565, + 565, 0, 565, 565, 565, 565, 0, 0, 565, 0, + 565, 0, 565, 565, 565, 0, 0, 565, 565, 0, + 565, 565, 565, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 34, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 565, 565, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 565, 565, 0, 565, 565, + 565, 0, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 0, 0, 0, 0, 0, 0, 785, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, + 33, 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 0, 789, 0, 0, + 33, 33, 33, 33, 33, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 33, 33, 33, 0, 33, 33, 33, 33, - 0, 0, 33, 0, 33, 34, 0, 33, 34, 0, - 0, 0, 0, 0, 33, 33, 33, 0, 34, 0, + 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, + 0, 33, 0, 33, 34, 0, 33, 34, 0, 0, + 0, 0, 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 789, 0, 789, 0, 0, 0, 0, 0, 0, - 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 33, - 33, 0, 33, 33, 33, 0, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, + 785, 0, 785, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 33, 33, + 0, 33, 33, 33, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, - 0, 791, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 789, 0, + 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, + 787, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 789, 92, 34, 34, 34, 34, 0, 34, 34, - 34, 34, 0, 0, 34, 0, 34, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, - 0, 0, 0, 0, 0, 791, 0, 791, 0, 0, + 785, 799, 34, 34, 34, 34, 0, 34, 34, 34, + 34, 0, 0, 34, 0, 34, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, + 0, 0, 0, 0, 787, 0, 787, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 34, 0, 0, 0, 92, 0, + 0, 0, 34, 34, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 0, 34, 34, 34, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, - 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, + 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, + 0, 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 789, 789, 789, 789, 789, 789, + 0, 0, 0, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, + 785, 0, 0, 0, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, + 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 0, 0, 785, 785, 785, 785, 0, + 785, 785, 785, 785, 787, 0, 785, 0, 785, 0, + 0, 785, 0, 0, 0, 0, 0, 0, 785, 785, + 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 791, 0, 791, 0, + 0, 0, 0, 787, 0, 785, 785, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 785, 785, 0, 785, 785, 785, 0, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 0, 0, 0, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 0, 0, 789, 0, 0, 0, + 0, 799, 799, 799, 799, 799, 0, 0, 0, 787, + 787, 787, 787, 791, 787, 787, 787, 787, 0, 0, + 787, 0, 787, 799, 799, 787, 791, 0, 0, 0, + 0, 0, 787, 787, 787, 0, 0, 0, 0, 0, + 799, 799, 799, 799, 0, 0, 0, 799, 799, 0, + 0, 0, 0, 799, 0, 799, 799, 0, 0, 0, + 789, 0, 789, 799, 799, 0, 0, 0, 0, 787, + 787, 0, 0, 0, 0, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 787, 787, 0, + 787, 787, 787, 0, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 0, 0, 0, 0, 0, 0, 0, + 793, 0, 0, 0, 0, 0, 0, 0, 799, 799, + 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 0, 0, 793, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, + 0, 791, 791, 791, 791, 0, 791, 791, 791, 791, + 789, 0, 791, 0, 791, 0, 0, 791, 0, 0, + 0, 0, 0, 0, 791, 791, 791, 0, 0, 0, + 0, 0, 0, 793, 0, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, + 0, 791, 791, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, + 791, 0, 791, 791, 791, 0, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 789, 789, 0, 0, 0, 789, 789, 789, 789, 789, + 789, 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 789, 0, 0, 795, 0, 0, 0, 0, 0, 0, - 0, 0, 791, 0, 0, 0, 789, 789, 789, 789, - 0, 789, 789, 789, 789, 791, 0, 789, 0, 789, - 0, 0, 789, 0, 0, 0, 0, 0, 0, 789, - 789, 789, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 795, 0, 795, - 0, 0, 0, 0, 791, 0, 789, 789, 0, 0, + 793, 743, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 0, 789, 789, 789, 789, 0, + 789, 789, 789, 789, 0, 0, 789, 0, 789, 0, + 0, 789, 0, 0, 0, 0, 0, 0, 789, 789, + 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 789, 789, 0, 789, 789, 789, - 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 0, 0, 793, 0, 0, 743, 0, 743, 0, 0, + 0, 0, 0, 0, 0, 789, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, + 0, 0, 0, 789, 789, 0, 789, 789, 789, 0, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 0, + 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 0, 0, 0, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 0, 0, 793, 0, 0, - 0, 0, 92, 92, 92, 92, 92, 0, 0, 0, - 791, 791, 791, 791, 795, 791, 791, 791, 791, 0, - 0, 791, 0, 791, 92, 92, 791, 795, 0, 0, - 0, 0, 0, 791, 791, 791, 0, 0, 0, 0, - 0, 92, 92, 92, 92, 0, 0, 0, 92, 92, - 0, 0, 0, 0, 92, 0, 0, 92, 0, 0, - 0, 793, 0, 793, 92, 92, 0, 0, 0, 0, - 791, 791, 0, 0, 0, 0, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 791, 791, - 0, 791, 791, 791, 0, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 0, 0, 0, 0, 0, 0, - 0, 797, 0, 0, 0, 0, 0, 0, 0, 92, - 92, 0, 92, 92, 92, 0, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 0, 0, - 797, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 0, 795, 795, 795, 795, 0, 795, 795, 795, - 795, 793, 0, 795, 0, 795, 0, 0, 795, 0, - 0, 0, 0, 0, 0, 795, 795, 795, 0, 0, - 0, 0, 0, 0, 797, 0, 797, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 793, 0, 795, 795, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 795, 795, 0, 795, 795, 795, 0, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 793, 793, 793, 793, 793, + 0, 0, 0, 0, 0, 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 0, 0, 0, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 0, 0, 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 797, 747, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 797, 0, 793, 793, 793, 793, - 0, 793, 793, 793, 793, 0, 0, 793, 0, 793, - 0, 0, 793, 0, 0, 0, 0, 0, 0, 793, + 793, 793, 793, 0, 745, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 793, 793, + 793, 793, 0, 793, 793, 793, 793, 0, 0, 793, + 0, 793, 743, 0, 793, 743, 0, 0, 0, 0, + 0, 793, 793, 793, 0, 743, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, + 745, 0, 0, 0, 0, 0, 0, 0, 793, 793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 743, 0, 793, 793, 0, 793, + 793, 793, 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 797, 0, 0, 747, 0, 747, 0, - 0, 0, 0, 0, 0, 0, 793, 793, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 793, 0, 793, 793, 793, - 0, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 0, 0, 0, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 0, 749, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, - 797, 797, 797, 0, 797, 797, 797, 797, 0, 0, - 797, 0, 797, 747, 0, 797, 747, 0, 0, 0, - 0, 0, 797, 797, 797, 0, 747, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, - 0, 749, 0, 0, 0, 0, 0, 0, 0, 797, - 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 747, 0, 797, 797, 0, - 797, 797, 797, 0, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 0, 0, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 0, 0, 0, - 747, 747, 747, 747, 747, 747, 747, 0, 0, 0, - 0, 747, 0, 0, 747, 747, 749, 0, 0, 749, - 400, 0, 0, 0, 0, 0, 0, 0, 0, 749, - 0, 747, 747, 747, 747, 400, 747, 747, 747, 747, - 0, 0, 747, 0, 747, 0, 747, 747, 747, 0, - 0, 747, 747, 0, 747, 747, 747, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 0, 0, 749, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 747, 747, 0, 0, 0, 0, 0, 0, 400, - 0, 400, 0, 0, 0, 0, 0, 0, 0, 747, - 747, 0, 747, 747, 747, 0, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, - 0, 0, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 0, 0, 0, 749, 749, 749, 749, 749, 749, 749, - 0, 0, 0, 0, 749, 0, 0, 749, 749, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 749, 749, 749, 749, 0, 749, - 749, 749, 749, 0, 0, 749, 0, 749, 0, 749, - 749, 749, 0, 0, 749, 749, 0, 749, 749, 749, - 0, 0, 0, 0, 0, 0, 400, 0, 0, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 749, 749, 442, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 749, 749, 210, 749, 749, 749, 0, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 400, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 93, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 210, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 93, 0, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 0, 0, 0, 400, 400, 400, 400, 400, 400, 400, - 150, 151, 0, 442, 400, 0, 442, 400, 400, 210, - 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 400, 400, 400, 400, 0, 400, - 400, 400, 400, 0, 0, 400, 93, 400, 0, 0, - 400, 0, 0, 0, 0, 94, 0, 400, 400, 400, - 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, - 0, 0, 0, 0, 400, 400, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 400, 400, 94, 400, 400, 400, 0, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 800, 0, 0, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 0, 0, 0, 743, + 743, 743, 743, 743, 743, 743, 0, 0, 0, 0, + 743, 0, 0, 743, 743, 745, 0, 0, 745, 400, + 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, + 743, 743, 743, 743, 400, 743, 743, 743, 743, 0, + 0, 743, 0, 743, 0, 743, 743, 743, 0, 0, + 743, 743, 0, 743, 743, 743, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 745, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 743, 743, 0, 0, 0, 0, 0, 0, 400, 0, + 400, 0, 0, 0, 0, 0, 0, 0, 743, 743, + 0, 743, 743, 743, 0, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 0, + 0, 0, 745, 745, 745, 745, 745, 745, 745, 0, + 0, 0, 0, 745, 0, 0, 745, 745, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 442, 0, 745, 745, 745, 745, 0, 745, 745, + 745, 745, 0, 0, 745, 0, 745, 0, 745, 745, + 745, 0, 0, 745, 745, 0, 745, 745, 745, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 745, 745, 442, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 745, 208, 745, 745, 745, 0, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 400, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 208, 0, 208, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 0, + 0, 0, 400, 400, 400, 400, 400, 400, 400, 150, + 151, 0, 442, 400, 0, 442, 400, 400, 208, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 0, 0, 400, 400, 400, 400, 0, 400, 400, + 400, 400, 0, 0, 400, 0, 400, 0, 0, 400, + 0, 0, 0, 0, 210, 0, 400, 400, 400, 0, + 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 400, 400, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 400, 400, 210, 400, 400, 400, 0, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 210, 0, 0, - 442, 442, 442, 442, 442, 442, 442, 0, 0, 0, - 94, 442, 0, 0, 442, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 155, 0, 0, 47, 0, - 0, 442, 442, 442, 442, 0, 442, 442, 442, 442, - 0, 800, 442, 0, 442, 0, 210, 442, 0, 0, - 0, 0, 0, 0, 442, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, - 0, 442, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 442, 0, 442, 442, 442, 0, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 210, 47, 0, 210, 210, 0, 94, 0, - 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 210, 210, 0, 210, 210, 210, - 210, 0, 93, 93, 0, 210, 0, 0, 210, 800, - 48, 0, 0, 0, 0, 210, 210, 210, 0, 93, - 93, 93, 93, 0, 0, 0, 93, 93, 0, 0, - 0, 0, 93, 0, 0, 93, 0, 49, 0, 0, - 0, 0, 93, 93, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 93, 93, 0, - 93, 93, 93, 0, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 0, 94, 94, 94, 94, 94, 0, + 442, 442, 442, 442, 442, 442, 208, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 0, 0, 0, 210, + 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 94, 0, 0, + 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, + 93, 442, 0, 442, 0, 208, 442, 0, 0, 0, + 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, + 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, + 0, 442, 442, 442, 0, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 208, 208, 208, 208, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, + 0, 208, 94, 0, 208, 208, 0, 210, 0, 0, + 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 208, 208, 208, 0, 208, 208, 208, 208, + 0, 0, 0, 0, 208, 0, 0, 208, 93, 0, + 0, 0, 0, 0, 208, 208, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 208, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 208, 0, 208, 208, 208, 0, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 94, 94, 0, 0, - 0, 0, 0, 0, 0, 800, 800, 800, 800, 800, - 0, 0, 0, 94, 94, 94, 94, 0, 0, 0, - 94, 94, 49, 0, 0, 0, 94, 800, 800, 94, - 50, 0, 0, 0, 0, 0, 94, 94, 0, 0, - 0, 0, 0, 0, 800, 800, 800, 800, 0, 0, - 0, 800, 800, 0, 0, 0, 0, 800, 0, 0, - 800, 0, 0, 0, 0, 0, 0, 800, 800, 0, + 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, + 94, 0, 48, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 210, 0, 0, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 93, 93, 93, 93, 93, 0, + 47, 0, 210, 210, 210, 210, 0, 210, 210, 210, + 210, 0, 0, 0, 0, 210, 93, 93, 210, 0, + 0, 0, 0, 0, 0, 210, 210, 210, 0, 0, + 0, 48, 0, 93, 93, 93, 93, 0, 0, 0, + 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, + 0, 0, 210, 210, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 94, 94, 0, 94, 94, 94, 0, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, - 47, 47, 800, 800, 0, 800, 800, 800, 0, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 0, 47, - 47, 51, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 47, 47, 47, 47, - 0, 0, 0, 47, 47, 0, 0, 0, 0, 47, - 49, 0, 47, 0, 0, 0, 0, 0, 0, 47, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 47, 47, 47, - 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 50, 0, 0, 49, 49, 49, 49, - 49, 803, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 0, 0, 0, 48, 48, 0, 49, 49, - 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 0, 49, 49, 49, 49, 0, + 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 0, 48, 0, 0, + 0, 0, 0, 796, 0, 0, 94, 94, 94, 94, + 94, 93, 93, 0, 93, 93, 93, 0, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 49, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, + 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 796, + 796, 796, 796, 796, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 796, 796, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 796, 796, + 796, 796, 0, 0, 0, 796, 796, 0, 1091, 0, + 0, 796, 0, 0, 796, 0, 0, 0, 0, 51, + 0, 796, 796, 0, 0, 0, 0, 1092, 1093, 0, + 1094, 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, + 1102, 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 47, 47, 47, 0, 796, 796, 51, 796, + 796, 796, 0, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 47, 47, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 0, 0, 0, 47, + 47, 47, 47, 50, 0, 0, 47, 47, 0, 0, + 49, 0, 47, 48, 48, 47, 0, 0, 0, 0, + 799, 0, 47, 47, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 51, 0, 0, 48, 48, 0, + 0, 0, 0, 48, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 47, 799, + 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, + 1111, 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, + 0, 0, 0, 0, 0, 799, 49, 49, 49, 49, + 49, 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 0, 0, 49, 49, 49, 49, 0, 0, 0, 49, 49, 0, 0, 0, 0, 49, 0, 0, 49, 0, 0, 0, 0, 0, 0, 49, 49, - 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, - 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, 49, 49, 49, 0, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, - 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, - 50, 50, 0, 0, 157, 50, 50, 0, 0, 298, - 0, 50, 0, 749, 50, 0, 0, 0, 0, 0, - 0, 50, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, - 51, 51, 51, 51, 51, 0, 50, 50, 0, 50, - 50, 50, 0, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 51, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 51, 51, 51, 0, 0, 0, 51, 51, 0, 0, - 0, 0, 51, 0, 0, 51, 0, 0, 0, 0, - 0, 0, 51, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 699, 0, 0, 0, 0, 699, 0, - 0, 0, 699, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 699, 803, 803, 803, 803, 803, 0, 51, 51, 0, - 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 803, 803, 0, 0, 0, 0, 0, - 0, 699, 157, 0, 0, 0, 0, 0, 0, 0, - 803, 803, 803, 803, 0, 0, 0, 803, 803, 0, - 0, 67, 68, 803, 69, 0, 803, 0, 0, 126, - 0, 0, 127, 803, 803, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, + 50, 50, 0, 799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 50, 0, 0, 0, 0, 0, 0, 0, 51, 51, + 51, 51, 51, 0, 0, 0, 50, 50, 50, 50, + 0, 0, 0, 50, 50, 0, 0, 0, 0, 50, + 51, 51, 50, 0, 0, 0, 0, 0, 0, 50, + 50, 0, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 0, 157, 0, 51, 51, 0, 297, 0, 0, + 51, 296, 0, 51, 0, 0, 0, 0, 0, 0, + 51, 51, 0, 0, 0, 0, 0, 0, 0, 295, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 50, 0, 50, 50, 50, + 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 799, + 799, 799, 799, 799, 0, 51, 51, 0, 51, 51, + 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 799, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 799, 799, + 799, 799, 0, 0, 0, 799, 799, 0, 0, 0, + 0, 799, 0, 0, 799, 0, 0, 0, 0, 0, + 0, 799, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 297, + 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 799, 799, 0, 799, + 799, 799, 0, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 803, 803, - 0, 803, 803, 803, 0, 803, 803, 803, 803, 803, - 803, 803, 803, 803, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 291, 292, 293, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 479, 480, 298, 0, 0, - 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 699, 699, 0, 699, 0, 152, 153, 154, 699, 0, - 0, 699, 0, 212, 0, 699, 699, 699, 699, 699, - 481, 699, 699, 699, 699, 0, 699, 699, 0, 0, - 699, 699, 699, 699, 0, 0, 699, 699, 699, 0, - 0, 0, 0, 0, 0, 0, 699, 0, 699, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 699, 699, 699, 0, 0, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 449, 0, 0, 143, 144, 699, 0, - 699, 699, 699, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 699, 699, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 450, 0, 451, 452, - 453, 454, 0, 0, 155, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 699, 699, 699, 150, 0, 0, - 0, 0, 0, 0, 0, 455, 456, 457, 458, 0, - 0, 459, 0, 0, 0, 460, 461, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 69, 0, 210, 0, 0, 126, 0, 0, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 157, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 212, 147, 148, 149, 212, 212, 212, 212, 212, - 0, 212, 212, 212, 212, 0, 212, 212, 0, 0, - 212, 212, 212, 212, 212, 0, 0, 212, 212, 463, - 0, 0, 0, 699, 0, 0, 212, 150, 212, 291, - 292, 293, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 212, 212, 212, 0, 212, 0, 212, - 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 212, 0, - 0, 0, 155, 152, 153, 154, 212, 212, 212, 212, - 0, 0, 212, 0, 0, 0, 212, 212, 212, 0, - 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 210, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 150, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 155, 210, 127, 979, 0, 0, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 212, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, - 69, 150, 151, 0, 0, 126, 0, 0, 127, 0, - 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, - 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, - 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 145, 157, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 68, 0, 69, 155, 0, 0, 0, - 126, 0, 0, 127, 0, 150, 0, 128, 129, 130, - 131, 132, 210, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 157, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 699, 0, 0, 0, 0, 699, 0, 0, 0, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 699, 290, + 291, 292, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 478, 479, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 573, 0, 0, 0, 0, 0, 155, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 0, 0, 225, 225, 225, - 225, 225, 0, 225, 225, 225, 225, 0, 225, 225, - 0, 0, 225, 225, 225, 225, 152, 153, 154, 225, - 225, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 225, 225, 225, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 155, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 33, - 225, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 696, 0, 146, + 0, 0, 127, 152, 153, 154, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 157, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 155, 0, 127, 33, 150, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 232, 152, 153, 154, 0, 159, - 159, 0, 159, 0, 0, 0, 0, 159, 0, 0, - 159, 0, 0, 0, 159, 159, 159, 159, 159, 0, - 159, 159, 159, 159, 758, 159, 159, 0, 0, 159, - 159, 159, 159, 0, 0, 159, 159, 159, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 159, 0, 0, - 225, 0, 232, 0, 0, 225, 0, 0, 0, 0, - 0, 0, 159, 159, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 225, 0, - 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, - 33, 0, 33, 33, 155, 0, 33, 33, 33, 33, - 0, 37, 0, 33, 33, 0, 40, 0, 43, 0, - 0, 0, 33, 317, 33, 46, 0, 0, 0, 0, - 0, 544, 0, 159, 159, 159, 0, 0, 0, 33, - 33, 33, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 52, 0, 0, - 33, 33, 33, 33, 33, 0, 33, 33, 33, 33, - 0, 33, 33, 0, 33, 33, 33, 33, 33, 0, - 37, 317, 33, 33, 0, 40, 316, 43, 0, 155, - 0, 33, 0, 33, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 316, 316, 0, 33, 33, - 33, 49, 232, 0, 0, 0, 232, 232, 232, 232, - 232, 0, 232, 232, 232, 232, 52, 232, 232, 0, - 0, 232, 232, 232, 232, 0, 0, 0, 232, 232, - 0, 0, 0, 33, 0, 0, 0, 232, 0, 232, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 232, 232, 232, 0, 225, 316, - 0, 316, 225, 225, 225, 225, 225, 0, 225, 225, - 225, 225, 0, 225, 225, 0, 0, 225, 225, 225, - 225, 0, 0, 0, 225, 225, 0, 0, 0, 232, - 0, 0, 0, 225, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, - 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 236, 0, 0, 33, - 0, 317, 0, 0, 0, 0, 317, 317, 317, 317, - 0, 317, 317, 317, 317, 0, 317, 317, 0, 0, - 317, 317, 317, 317, 0, 0, 0, 317, 317, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 317, 0, - 0, 0, 0, 0, 0, 0, 316, 0, 0, 316, - 0, 0, 0, 317, 317, 317, 0, 0, 0, 316, - 236, 235, 236, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 290, 291, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 478, 479, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 152, 153, 154, 699, 699, + 0, 699, 0, 0, 0, 0, 699, 0, 0, 699, + 0, 0, 0, 699, 699, 699, 699, 699, 0, 699, + 699, 699, 699, 0, 699, 699, 0, 0, 699, 699, + 699, 699, 0, 0, 699, 699, 699, 0, 0, 0, + 0, 0, 0, 0, 699, 157, 699, 0, 0, 0, + 297, 0, 225, 0, 296, 0, 0, 0, 0, 0, + 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, + 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 699, 0, 699, 699, + 699, 0, 0, 480, 212, 0, 0, 0, 0, 0, + 0, 0, 699, 699, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 0, 155, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 448, 0, 0, 143, 144, 0, + 0, 0, 699, 699, 699, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 449, 0, 450, + 451, 452, 453, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 0, 0, 0, 0, 0, 454, 455, 456, 457, + 0, 0, 458, 0, 157, 0, 459, 460, 461, 0, + 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, + 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, + 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 225, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 699, 210, 127, 225, 225, 225, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 225, + 146, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 462, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 212, 0, 0, 0, 212, 212, 212, 212, + 212, 0, 212, 212, 212, 212, 0, 212, 212, 0, + 0, 212, 212, 212, 212, 212, 0, 0, 212, 212, + 150, 0, 290, 291, 292, 0, 0, 212, 0, 212, + 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 212, 212, 212, 0, 212, 0, + 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 152, 153, 154, 212, + 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, + 212, 0, 0, 212, 0, 0, 0, 212, 212, 212, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 157, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 212, 210, 67, 68, 155, 69, 0, 0, 0, + 0, 126, 0, 973, 127, 0, 0, 157, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 212, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, + 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, + 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, + 0, 0, 0, 0, 210, 0, 0, 225, 0, 225, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 225, 225, 225, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 159, 0, 127, 0, 155, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 225, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 0, 0, 236, 0, 316, - 236, 0, 0, 316, 316, 316, 316, 316, 316, 0, - 236, 561, 0, 0, 0, 0, 0, 316, 316, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 159, 33, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 569, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 155, 0, 0, 0, + 692, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 152, 153, 154, 128, 129, + 130, 131, 132, 33, 133, 134, 135, 136, 0, 137, + 138, 0, 150, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 317, + 0, 0, 0, 0, 0, 0, 0, 544, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 159, 159, 0, + 159, 752, 0, 0, 0, 159, 0, 0, 159, 0, + 0, 0, 159, 159, 159, 159, 159, 0, 159, 159, + 159, 159, 0, 159, 159, 0, 0, 159, 159, 159, + 159, 0, 0, 159, 159, 159, 0, 317, 0, 0, + 0, 317, 0, 159, 155, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 159, 159, 159, 0, 0, 0, 0, 33, 0, 0, + 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, + 33, 0, 33, 33, 0, 0, 33, 33, 33, 33, + 0, 37, 0, 33, 33, 159, 40, 0, 43, 317, + 0, 0, 33, 0, 33, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 33, + 33, 33, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 316, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 159, 159, 33, 316, 316, 0, 0, 0, + 0, 33, 0, 0, 0, 33, 33, 33, 33, 33, + 0, 33, 33, 33, 33, 0, 33, 33, 0, 0, + 33, 33, 33, 33, 0, 37, 155, 33, 33, 0, + 40, 0, 43, 0, 0, 0, 33, 0, 33, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 49, 317, 0, 316, + 0, 316, 317, 317, 317, 317, 0, 317, 317, 317, + 317, 52, 317, 317, 0, 236, 317, 317, 317, 317, + 0, 561, 0, 317, 317, 0, 0, 0, 33, 0, + 0, 0, 317, 236, 317, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, + 317, 317, 0, 0, 0, 0, 0, 0, 0, 317, + 159, 0, 0, 0, 317, 317, 317, 317, 0, 317, + 317, 317, 317, 0, 317, 317, 0, 34, 317, 317, + 317, 317, 0, 0, 317, 317, 317, 0, 0, 0, + 0, 0, 0, 0, 317, 0, 317, 236, 235, 236, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 317, 317, 0, 0, 235, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 316, 316, 316, 316, 0, 0, - 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, + 0, 0, 0, 0, 0, 0, 316, 0, 0, 316, + 0, 0, 0, 1215, 0, 0, 317, 0, 0, 316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 0, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 236, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 561, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, + 0, 0, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 0, 0, 0, 0, 316, + 0, 2, 0, 316, 316, 316, 316, 316, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 235, 0, 0, 0, 316, 316, 316, 316, 0, 0, + 235, 317, 0, 0, 0, 316, 0, 0, 0, 0, + 538, 0, 0, 0, 0, 0, 0, 0, 0, 316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 0, 316, 316, 316, 236, 0, 0, + 0, 236, 236, 236, 236, 236, 236, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 0, 0, 0, + 0, 316, 316, 316, 316, 316, 316, 316, 0, 0, + 0, 0, 236, 236, 236, 236, 561, 539, 0, 5, + 6, 7, 0, 236, 0, 0, 0, 0, 522, 0, + 0, 540, 0, 0, 0, 0, 541, 236, 235, 8, + 9, 0, 0, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 10, 11, 12, 13, + 235, 542, 543, 0, 235, 235, 235, 235, 235, 235, + 0, 0, 236, 236, 0, 0, 0, 0, 235, 235, + 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 0, 522, 235, 235, 235, 235, 236, + 236, 236, 236, 236, 236, 236, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 545, 546, 0, 0, + 235, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, + 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 785, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 0, 0, + 0, 0, 522, 0, 0, 0, 522, 522, 522, 522, + 522, 522, 0, 0, 0, 0, 0, 0, 0, 0, + 522, 522, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 0, 0, 69, 0, 0, 0, 522, 522, 522, + 522, 0, 0, 2, 336, 0, 987, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, + 0, 0, 0, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 0, 522, 522, 0, + 7, 0, 0, 0, 326, 327, 328, 329, 330, 331, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, + 522, 0, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 0, 0, 527, 0, 527, 332, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 67, 0, 7, 69, 0, 0, 326, 327, 328, + 329, 330, 331, 0, 2, 334, 335, 0, 0, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 27, 28, 29, 30, 31, 32, 33, 332, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 334, 335, + 527, 0, 0, 527, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 527, 371, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 363, 0, 0, 0, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 0, 0, 0, 0, 7, 0, 0, 0, 326, 327, + 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 0, 363, 0, 363, + 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 0, 0, 0, 0, 0, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 334, + 335, 371, 0, 527, 371, 0, 0, 527, 527, 527, + 527, 527, 527, 0, 371, 0, 0, 0, 0, 0, + 0, 527, 527, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 527, 527, + 527, 527, 0, 0, 356, 0, 356, 0, 0, 527, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 0, 0, 363, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 527, 527, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 527, 527, 527, 527, 527, + 527, 527, 0, 0, 0, 0, 0, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 0, 0, 0, 210, 371, 0, 0, 0, 371, 371, + 371, 371, 371, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 371, 371, 0, 0, 0, 0, 0, 0, + 0, 356, 0, 0, 356, 0, 0, 0, 0, 371, + 371, 371, 371, 0, 356, 0, 0, 0, 0, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 371, 0, 0, 210, 0, 210, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 0, 0, 0, 521, 363, 0, 0, + 0, 363, 363, 363, 363, 363, 363, 0, 0, 371, + 371, 0, 0, 0, 0, 363, 363, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 363, 363, 363, 363, 371, 371, 371, 371, + 371, 371, 371, 363, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 363, 0, 0, + 521, 0, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 0, 561, 363, 363, 356, 0, 0, 0, 356, 356, + 356, 356, 356, 356, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 356, 210, 0, 0, 210, 0, 363, + 363, 363, 363, 363, 363, 363, 0, 210, 0, 356, + 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, + 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 235, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 316, 316, 316, 316, 316, 316, 316, 236, 0, - 0, 0, 0, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 0, 0, 0, 0, - 236, 0, 0, 0, 236, 236, 236, 236, 236, 236, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 236, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 338, - 0, 0, 0, 0, 0, 236, 236, 236, 236, 0, - 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 235, 0, 0, 0, 0, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 0, - 0, 0, 0, 235, 0, 0, 0, 235, 235, 235, - 235, 235, 235, 0, 0, 236, 236, 0, 0, 0, - 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 235, 235, 236, 236, 236, 236, 236, 236, 236, 235, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 235, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 791, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, - 235, 235, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 993, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 0, 0, 0, 0, 7, 0, 0, - 0, 327, 328, 329, 330, 331, 332, 0, 0, 0, - 0, 67, 0, 0, 69, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 0, 0, 0, - 527, 0, 527, 333, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 335, 336, 67, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 0, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 0, 0, 0, 0, 7, 0, 0, 0, 327, 328, - 329, 330, 331, 332, 0, 0, 0, 527, 0, 0, - 527, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 527, 371, 0, 371, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 0, 0, 0, 0, 7, 0, 0, - 0, 327, 328, 329, 330, 331, 332, 0, 0, 335, - 336, 0, 0, 0, 0, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 27, 28, 29, 30, - 31, 32, 33, 333, 363, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, - 0, 0, 0, 527, 527, 527, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 527, 0, 0, 371, 0, - 527, 371, 0, 0, 527, 527, 527, 527, 527, 527, - 0, 371, 335, 336, 0, 0, 0, 0, 527, 527, - 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, - 363, 0, 0, 0, 0, 527, 527, 527, 527, 27, - 28, 29, 30, 31, 32, 33, 527, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 527, 527, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 0, 356, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 527, 527, 527, 527, 527, 527, 0, - 210, 0, 0, 0, 371, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 0, 0, 0, - 0, 371, 0, 0, 0, 371, 371, 371, 371, 371, - 371, 0, 0, 0, 0, 363, 0, 0, 363, 371, - 371, 0, 0, 0, 0, 0, 0, 0, 363, 0, - 0, 0, 0, 0, 0, 0, 371, 371, 371, 371, - 0, 0, 0, 0, 210, 0, 210, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 371, 356, 0, - 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, - 0, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 363, 363, 0, 0, 0, 0, 363, 0, - 0, 0, 363, 363, 363, 363, 363, 363, 0, 0, - 0, 210, 34, 0, 210, 0, 363, 363, 0, 0, - 0, 0, 0, 0, 210, 521, 0, 521, 0, 0, - 0, 0, 0, 363, 363, 363, 363, 0, 0, 0, - 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, - 0, 0, 0, 0, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 0, 565, 0, - 0, 356, 0, 0, 0, 356, 356, 356, 356, 356, - 356, 0, 0, 363, 363, 0, 0, 0, 0, 356, - 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 356, 356, 356, 356, - 363, 363, 363, 363, 363, 363, 363, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 356, 0, 0, 0, 0, 0, 0, 521, 187, 0, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 521, 0, 0, 0, 0, 0, 356, 356, 356, 356, + 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 0, 0, 521, 34, 210, 521, 0, 0, 210, 210, - 210, 210, 210, 210, 0, 521, 356, 356, 0, 0, - 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 210, 210, 210, 356, 356, 356, 356, 356, 356, 356, - 210, 0, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 0, 2, 0, 0, 1221, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 0, 210, 210, 210, 210, - 210, 210, 210, 0, 0, 0, 0, 0, 521, 521, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 0, 0, 0, 0, 521, 0, 0, 0, 521, - 521, 521, 521, 521, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 521, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, - 0, 521, 3, 4, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 521, 0, 2, 0, 0, - 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 0, 0, 0, 14, 15, - 521, 521, 0, 0, 16, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 19, 542, 0, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, - 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 898, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 20, - 21, 0, 22, 23, 24, 0, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 543, 0, 5, 6, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, - 0, 0, 545, 0, 0, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 546, 547, 0, - 0, 0, 0, 0, 187, 0, 187, 187, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 548, 187, 0, - 0, 0, 0, 187, 0, 0, 187, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 857, 0, 0, - 0, 0, 0, 187, 187, 187, 187, 0, 187, 187, - 0, 858, 549, 550, 0, 0, 859, 860, 0, 861, - 862, 863, 864, 865, 866, 0, 867, 868, 187, 869, - 870, 871, 872, 873, 0, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 874, 0, 875, 0, 0, - 1097, 0, 876, 0, 0, 0, 0, 0, 0, 0, - 187, 187, 187, 187, 187, 187, 187, 0, 877, 1098, - 1099, 0, 1100, 1101, 1102, 1103, 1104, 1105, 0, 1106, - 1107, 0, 1108, 1109, 1110, 1111, 1112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 878, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 857, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 858, 0, 0, 0, - 0, 859, 860, 0, 861, 862, 863, 864, 865, 866, - 0, 867, 868, 0, 869, 870, 871, 872, 873, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 879, 0, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, - 874, 0, 875, 897, 0, 0, 0, 876, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 878, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1113, 1114, 0, - 1115, 1116, 1117, 0, 1118, 1119, 0, 0, 1120, 1121, - 0, 1122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1123, 1124, 1125, 1126, 1127, 1128, - 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 879, 0, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 0, 0, 0, 897, + 210, 210, 210, 0, 187, 2, 0, 210, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, + 521, 0, 0, 0, 521, 521, 521, 521, 521, 521, + 0, 0, 210, 210, 0, 0, 0, 0, 521, 521, + 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, + 0, 0, 0, 0, 0, 521, 521, 521, 521, 210, + 210, 210, 210, 210, 210, 210, 521, 8, 9, 0, + 0, 3, 4, 5, 6, 7, 0, 0, 0, 0, + 521, 0, 187, 0, 10, 11, 12, 13, 0, 0, + 0, 14, 15, 8, 9, 0, 0, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, + 10, 11, 12, 13, 0, 521, 521, 14, 15, 0, + 892, 0, 0, 16, 0, 0, 17, 0, 0, 0, + 0, 187, 0, 18, 19, 0, 0, 0, 0, 0, + 0, 0, 521, 521, 521, 521, 521, 521, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 22, 23, 24, 0, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, + 0, 22, 23, 24, 0, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 187, 187, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 187, 0, 0, + 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 851, 0, 0, 187, 187, 187, + 187, 0, 187, 187, 0, 0, 0, 0, 852, 0, + 0, 0, 0, 853, 854, 0, 855, 856, 857, 858, + 859, 860, 187, 861, 862, 0, 863, 864, 865, 866, + 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 868, 0, 869, 0, 0, 851, 0, 870, + 0, 0, 0, 0, 187, 187, 187, 187, 187, 187, + 187, 852, 0, 0, 0, 871, 853, 854, 0, 855, + 856, 857, 858, 859, 860, 0, 861, 862, 0, 863, + 864, 865, 866, 867, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 872, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 868, 0, 869, 0, 0, + 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 872, 0, 0, 0, 0, 0, 0, 873, 0, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 888, 889, 890, 0, 0, 0, + 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 873, 0, 874, 875, 876, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, + 0, 0, 0, 891, }; static int yycheck[] = { 4, - 312, 24, 92, 102, 103, 24, 1, 24, 1, 708, - 13, 312, 22, 23, 19, 312, 429, 1, 431, 167, - 905, 24, 27, 28, 29, 30, 1, 64, 1002, 1024, - 181, 694, 839, 91, 1, 483, 36, 37, 1, 38, - 785, 38, 41, 59, 93, 44, 40, 44, 1194, 125, - 24, 41, 43, 61, 264, 123, 41, 46, 46, 46, - 60, 41, 123, 193, 194, 195, 196, 197, 167, 46, - 125, 33, 42, 59, 773, 46, 123, 1156, 365, 40, - 1272, 41, 105, 42, 1548, 41, 47, 262, 41, 40, - 365, 190, 91, 40, 482, 508, 509, 319, 188, 60, - 43, 104, 45, 41, 41, 128, 44, 46, 113, 40, - 115, 116, 117, 288, 502, 61, 215, 41, 40, 40, - 169, 46, 470, 263, 260, 261, 145, 263, 151, 148, - 104, 41, 40, 264, 41, 260, 261, 42, 263, 125, - 91, 43, 232, 59, 41, 263, 40, 42, 40, 168, - 40, 156, 157, 156, 528, 41, 41, 42, 380, 299, - 41, 44, 199, 40, 167, 33, 41, 342, 93, 91, - 91, 40, 917, 918, 44, 40, 123, 267, 91, 41, - 44, 40, 187, 91, 233, 208, 59, 61, 58, 38, - 43, 93, 123, 42, 330, 331, 42, 91, 346, 91, - 205, 206, 40, 203, 76, 210, 91, 210, 1672, 125, - 93, 60, 267, 1405, 91, 38, 367, 260, 261, 42, - 263, 40, 91, 91, 46, 46, 91, 232, 44, 93, - 40, 976, 91, 123, 239, 260, 261, 60, 263, 91, - 93, 260, 91, 470, 1323, 91, 336, 315, 316, 374, - 375, 350, 125, 91, 262, 316, 123, 38, 348, 40, - 470, 42, 267, 267, 311, 1010, 553, 542, 91, 20, - 21, 93, 93, 296, 264, 265, 281, 93, 283, 60, - 303, 1166, 287, 359, 264, 290, 305, 273, 364, 294, - 260, 261, 991, 263, 299, 300, 301, 302, 260, 261, - 349, 263, 264, 263, 59, 264, 396, 365, 264, 181, - 91, 264, 349, 274, 65, 262, 262, 312, 313, 312, - 313, 72, 260, 262, 347, 263, 296, 264, 312, 313, - 318, 59, 33, 343, 344, 320, 321, 312, 313, 299, - 264, 318, 288, 346, 347, 312, 313, 59, 351, 312, - 313, 294, 123, 353, 264, 260, 261, 264, 263, 262, - 111, 112, 264, 306, 307, 260, 261, 264, 263, 264, - 125, 1070, 262, 368, 505, 506, 507, 351, 264, 265, - 275, 324, 472, 264, 368, 369, 370, 371, 40, 264, - 265, 296, 262, 368, 369, 370, 371, 125, 59, 1545, - 391, 296, 264, 271, 391, 44, 157, 1402, 276, 277, - 278, 279, 46, 281, 282, 283, 284, 427, 286, 287, - 391, 264, 290, 291, 292, 293, 60, 470, 123, 297, - 298, 374, 421, 1579, 524, 525, 40, 462, 306, 91, - 308, 260, 261, 359, 263, 431, 432, 470, 364, 539, - 260, 261, 603, 263, 93, 323, 324, 325, 452, 464, - 550, 466, 46, 614, 125, 451, 1273, 41, 42, 341, - 221, 222, 920, 345, 573, 478, 481, 463, 481, 465, - 40, 40, 468, 469, 542, 46, 359, 91, 493, 260, - 358, 364, 263, 264, 1157, 367, 40, 507, 43, 509, - 61, 591, 472, 513, 518, 519, 520, 41, 42, 514, - 40, 360, 361, 362, 40, 605, 61, 91, 273, 535, - 536, 537, 538, 539, 540, 541, 525, 40, 525, 264, - 281, 91, 91, 46, 539, 61, 287, 360, 361, 362, - 275, 296, 40, 123, 295, 273, 40, 91, 40, 535, - 536, 537, 538, 539, 540, 541, 46, 91, 1553, 260, - 261, 91, 263, 264, 436, 570, 571, 472, 391, 41, - 260, 261, 621, 263, 597, 123, 327, 472, 329, 360, - 361, 362, 333, 1535, 1329, 1330, 591, 43, 40, 45, - 341, 342, 40, 91, 345, 40, 596, 91, 40, 91, - 543, 42, 315, 93, 38, 40, 91, 40, 42, 1583, - 761, 339, 273, 1565, 1537, 664, 367, 666, 123, 535, - 536, 537, 538, 539, 540, 541, 60, 260, 628, 629, - 263, 480, 91, 44, 634, 640, 636, 123, 675, 91, - 44, 646, 665, 91, 1567, 59, 91, 359, 41, 91, - 91, 38, 364, 752, 409, 42, 91, 91, 62, 758, - 750, 751, 535, 536, 537, 538, 539, 540, 541, 420, - 421, 1538, 423, 60, 425, 543, 690, 696, 1563, 266, - 992, 40, 705, 41, 41, 42, 123, 283, 284, 440, - 441, 992, 611, 612, 613, 992, 451, 91, 1397, 286, - 287, 1568, 41, 708, 91, 44, 461, 59, 713, 464, - 715, 125, 712, 723, 844, 91, 846, 847, 848, 849, - 850, 44, 318, 451, 738, 748, 710, 599, 40, 778, - 481, 603, 61, 91, 91, 463, 40, 465, 466, 62, - 468, 469, 614, 264, 265, 1490, 751, 837, 499, 772, - 755, 756, 757, 504, 505, 506, 306, 508, 1503, 510, - 511, 512, 47, 514, 787, 775, 47, 91, 773, 1182, - 391, 1184, 462, 125, 391, 260, 261, 59, 263, 391, - 535, 536, 537, 538, 539, 540, 541, 41, 279, 280, - 451, 391, 264, 1492, 266, 546, 547, 44, 289, 46, - 461, 260, 261, 464, 263, 819, 267, 535, 536, 537, - 538, 539, 540, 541, 286, 287, 1530, 822, 569, 824, - 910, 572, 1536, 535, 536, 537, 538, 539, 540, 541, - 835, 264, 265, 266, 59, 264, 265, 266, 294, 320, - 321, 1586, 123, 125, 260, 261, 41, 263, 599, 44, - 306, 307, 1566, 286, 287, 41, 905, 286, 287, 273, - 41, 457, 458, 614, 460, 914, 260, 261, 324, 263, - 41, 264, 265, 266, 535, 536, 537, 538, 539, 540, - 541, 42, 296, 1628, 260, 261, 905, 263, 639, 761, - 904, 316, 91, 286, 287, 40, 260, 261, 264, 263, - 125, 652, 260, 261, 41, 263, 43, 330, 331, 332, - 268, 1001, 663, 1003, 1659, 281, 282, 283, 374, 93, - 47, 273, 794, 44, 40, 46, 360, 361, 362, 1674, - 1629, 803, 59, 393, 394, 686, 260, 261, 296, 263, - 40, 299, 942, 366, 367, 368, 260, 261, 306, 263, - 264, 1041, 41, 1043, 43, 264, 940, 266, 374, 375, - 977, 984, 280, 281, 282, 283, 284, 990, 61, 720, - 721, 722, 1671, 360, 361, 362, 981, 286, 287, 260, - 261, 41, 263, 43, 44, 59, 991, 339, 43, 260, - 261, 273, 263, 744, 745, 409, 123, 992, 125, 992, - 1049, 38, 1007, 280, 281, 282, 283, 284, 992, 41, - 994, 995, 996, 44, 765, 46, 767, 992, 769, 994, - 995, 996, 41, 774, 43, 992, 263, 994, 995, 992, - 902, 994, 995, 281, 282, 283, 284, 451, 393, 394, - 1045, 260, 1091, 794, 263, 264, 93, 461, 273, 475, - 464, 125, 280, 804, 805, 40, 414, 415, 416, 43, - 44, 260, 261, 40, 263, 1070, 1011, 818, 1013, 268, - 43, 44, 0, 945, 1222, 1223, 1224, 1225, 40, 431, - 432, 41, 42, 40, 1232, 1233, 1234, 40, 260, 261, - 841, 263, 40, 38, 40, 1144, 40, 296, 40, 451, - 299, 40, 853, 40, 855, 260, 261, 306, 263, 38, - 40, 463, 93, 465, 466, 93, 468, 469, 892, 893, - 40, 535, 536, 537, 538, 539, 540, 541, 1218, 1219, - 40, 59, 125, 260, 58, 91, 263, 40, 40, 1011, - 44, 1013, 424, 425, 426, 427, 273, 274, 301, 40, - 303, 304, 305, 38, 905, 125, 328, 42, 330, 331, - 1573, 1574, 40, 40, 915, 337, 448, 449, 450, 451, - 1180, 41, 40, 40, 1184, 60, 262, 262, 123, 1198, - 123, 41, 1192, 535, 536, 537, 538, 539, 540, 541, - 44, 91, 41, 274, 123, 60, 463, 125, 274, 273, - 40, 40, 427, 40, 429, 430, 91, 40, 275, 1212, - 1215, 281, 282, 283, 284, 414, 415, 416, 62, 1222, - 1223, 1224, 1225, 448, 449, 450, 451, 44, 91, 1232, - 1233, 1234, 365, 123, 123, 986, 123, 988, 58, 0, - 123, 278, 40, 40, 281, 282, 283, 284, 1297, 286, - 287, 288, 274, 535, 536, 537, 538, 539, 540, 541, - 1011, 1266, 1013, 40, 40, 330, 331, 332, 41, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 317, 317, 1035, 467, 413, 1038, 1387, 61, - 417, 418, 419, 420, 421, 422, 61, 61, 59, 40, - 61, 366, 367, 368, 431, 432, 1396, 470, 470, 44, - 535, 536, 537, 538, 539, 540, 541, 1407, 41, 93, - 295, 448, 449, 450, 451, 300, 59, 302, 41, 41, - 41, 1341, 459, 278, 309, 41, 281, 282, 283, 284, - 1324, 286, 287, 288, 41, 273, 473, 41, 58, 278, - 41, 326, 281, 282, 283, 284, 1375, 286, 287, 288, - 260, 261, 44, 263, 125, 44, 341, 44, 268, 125, - 1242, 1420, 61, 1378, 61, 260, 261, 451, 263, 263, - 40, 508, 509, 40, 1256, 125, 1258, 461, 1139, 41, - 464, 310, 1397, 312, 313, 314, 296, 260, 261, 41, - 263, 1491, 41, 41, 41, 268, 306, 41, 535, 536, - 537, 538, 539, 540, 541, 41, 1167, 1168, 1169, 281, - 282, 283, 284, 1174, 1175, 1176, 1177, 1178, 1179, 41, - 1181, 1182, 1183, 296, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 41, 1193, 41, 1195, 41, 1197, 41, 1199, 281, - 282, 283, 284, 1437, 41, 41, 41, 41, 40, 1549, - 91, 535, 536, 537, 538, 539, 540, 541, 274, 93, - 1493, 93, 274, 41, 44, 360, 361, 362, 41, 44, - 41, 409, 410, 411, 412, 413, 295, 1492, 38, 44, - 41, 300, 42, 302, 40, 40, 46, 47, 58, 41, - 309, 40, 40, 431, 432, 41, 41, 1556, 1259, 41, - 60, 40, 273, 1264, 414, 415, 416, 326, 327, 294, - 448, 449, 450, 451, 1275, 62, 41, 455, 456, 91, - 41, 40, 341, 461, 1285, 463, 464, 489, 1289, 1290, - 273, 91, 497, 471, 472, 40, 277, 501, 41, 1300, - 125, 414, 415, 416, 61, 41, 123, 62, 41, 41, - 41, 322, 1581, 372, 1574, 41, 1665, 391, 93, 451, - 1321, 1322, 93, 41, 41, 41, 41, 40, 317, 1669, - 317, 0, 40, 1632, 1335, 1336, 1337, 1338, 1339, 1340, - 93, 1342, 93, 93, 58, 93, 58, 40, 526, 527, - 44, 529, 530, 531, 91, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 33, 40, 504, 91, 40, 38, - 93, 40, 41, 42, 1629, 44, 123, 41, 47, 260, - 261, 41, 263, 40, 40, 421, 41, 268, 41, 93, - 59, 60, 61, 62, 93, 1668, 510, 44, 409, 410, - 411, 412, 413, 274, 41, 41, 58, 41, 93, 44, - 60, 40, 423, 61, 40, 296, 1671, 428, 1419, 40, - 431, 432, 91, 33, 93, 1426, 409, 410, 411, 412, - 413, 40, 40, 40, 40, 40, 40, 448, 449, 450, - 451, 40, 453, 454, 455, 456, 40, 38, 431, 432, - 461, 42, 125, 464, 123, 40, 125, 41, 41, 62, - 471, 472, 473, 93, 41, 448, 449, 450, 451, 60, - 93, 59, 455, 456, 93, 41, 93, 41, 461, 93, - 41, 464, 93, 59, 41, 41, 41, 41, 471, 472, - 41, 93, 93, 93, 41, 93, 41, 508, 509, 41, - 91, 93, 41, 93, 93, 41, 41, 93, 41, 263, - 41, 1512, 1513, 1514, 93, 526, 527, 44, 529, 530, - 531, 41, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 41, 274, 414, 415, 416, 41, 125, 40, 40, - 93, 93, 40, 526, 527, 93, 529, 530, 531, 125, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 40, - 360, 361, 362, 1564, 40, 58, 41, 58, 1569, 1570, - 1571, 58, 1573, 41, 1575, 1576, 1577, 41, 41, 40, - 40, 93, 41, 41, 93, 41, 93, 41, 40, 93, - 40, 260, 261, 262, 263, 40, 1597, 1598, 1599, 268, - 40, 40, 271, 40, 273, 274, 275, 276, 277, 278, - 279, 40, 281, 282, 283, 284, 40, 286, 287, 288, - 40, 290, 291, 292, 293, 40, 40, 296, 297, 298, - 299, 40, 263, 41, 40, 60, 93, 306, 41, 308, - 58, 40, 311, 40, 93, 40, 315, 316, 40, 318, - 41, 40, 33, 322, 323, 324, 325, 38, 91, 1660, - 40, 42, 41, 41, 41, 41, 41, 277, 278, 279, - 339, 281, 282, 283, 284, 41, 286, 287, 274, 60, - 290, 291, 292, 293, 41, 273, 40, 40, 263, 358, - 359, 360, 361, 362, 510, 364, 365, 273, 41, 358, - 41, 274, 40, 125, 41, 374, 375, 41, 296, 41, - 91, 123, 123, 123, 44, 62, 123, 40, 123, 41, - 296, 125, 391, 125, 41, 123, 62, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 123, 125, 41, 123, 0, 360, - 361, 362, 41, 41, 41, 125, 41, 123, 123, 448, - 449, 450, 451, 62, 453, 454, 455, 456, 123, 41, - 459, 40, 461, 40, 463, 464, 465, 466, 41, 468, - 469, 33, 471, 472, 473, 123, 38, 93, 40, 41, - 42, 480, 44, 46, 42, 47, 263, 93, 91, 263, - 275, 409, 275, 61, 275, 180, 834, 59, 60, 61, - 62, 418, 275, 409, 275, 263, 263, 745, 901, 508, - 509, 510, 263, 275, 275, 275, 1017, 1282, 1508, 275, - 1040, 1015, 275, 1144, 1202, 920, 275, 526, 527, 91, - 529, 530, 531, 451, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 461, 543, 451, 464, 705, 910, 260, - 261, 275, 263, 1283, 1270, 461, 351, 268, 464, 275, - 271, 123, 275, 125, 275, 276, 277, 278, 279, 24, - 281, 282, 283, 284, 275, 286, 287, 478, 907, 290, - 291, 292, 293, 9, 1206, 296, 297, 298, 114, 294, - 548, 24, 760, 59, 764, 306, 301, 308, 303, 304, - 305, 305, 609, 64, 675, 369, -1, -1, -1, -1, - 490, -1, 323, 324, 325, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, 342, 343, 344, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, 125, - 41, -1, -1, 374, 375, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - -1, -1, -1, 388, 389, 390, -1, 392, -1, -1, - 395, -1, 38, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, 414, 415, 416, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, 269, -1, - -1, 272, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, 295, 296, -1, -1, -1, 300, - -1, 302, -1, -1, -1, 33, -1, 123, 309, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, 47, - -1, -1, -1, -1, -1, 326, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, 273, -1, -1, - 341, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - 296, -1, 543, 91, 396, 397, 398, 399, 400, 401, + 24, 24, 24, 102, 103, 167, 1, 779, 311, 428, + 704, 430, 20, 21, 19, 311, 93, 1, 311, 36, + 37, 181, 27, 28, 29, 30, 22, 23, 899, 1, + 996, 690, 38, 1, 91, 64, 482, 1018, 44, 1188, + 38, 1, 833, 60, 42, 1, 38, 46, 264, 41, + 40, 61, 44, 41, 43, 46, 365, 65, 76, 46, + 123, 24, 60, 41, 72, 263, 59, 41, 167, 514, + 515, 516, 125, 767, 41, 1150, 123, 46, 43, 43, + 45, 123, 105, 42, 41, 46, 13, 41, 507, 508, + 1266, 190, 169, 91, 125, 92, 1542, 24, 40, 91, + 319, 299, 41, 111, 112, 128, 1529, 41, 113, 40, + 115, 116, 117, 38, 364, 44, 215, 42, 193, 194, + 195, 196, 197, 145, 262, 43, 148, 45, 151, 93, + 42, 470, 125, 61, 43, 60, 1559, 1524, 41, 911, + 912, 104, 41, 1530, 41, 40, 168, 40, 40, 157, + 288, 156, 157, 41, 42, 47, 233, 263, 40, 42, + 91, 380, 295, 181, 93, 40, 91, 300, 60, 302, + 199, 40, 46, 1560, 40, 42, 309, 104, 59, 91, + 41, 123, 187, 345, 93, 208, 203, 59, 42, 46, + 46, 188, 40, 326, 327, 40, 91, 41, 970, 61, + 205, 206, 40, 91, 342, 210, 366, 44, 341, 91, + 41, 46, 40, 221, 222, 41, 91, 528, 41, 93, + 1666, 58, 91, 1399, 470, 91, 61, 232, 91, 156, + 123, 41, 1004, 542, 239, 232, 267, 93, 260, 372, + 167, 686, 1317, 91, 125, 38, 91, 40, 311, 42, + 349, 91, 262, 125, 470, 41, 42, 260, 261, 40, + 263, 315, 267, 91, 264, 41, 42, 60, 40, 316, + 267, 348, 295, 315, 316, 91, 264, 282, 286, 302, + 61, 286, 304, 210, 289, 263, 294, 732, 293, 1160, + 264, 985, 266, 298, 299, 300, 301, 40, 91, 549, + 264, 260, 261, 40, 263, 91, 359, 264, 365, 46, + 264, 364, 286, 287, 40, 91, 311, 312, 326, 348, + 328, 299, 340, 346, 332, 264, 344, 311, 312, 294, + 264, 265, 340, 341, 262, 352, 344, 296, 335, 311, + 312, 306, 307, 311, 312, 264, 342, 343, 366, 318, + 347, 311, 312, 320, 321, 311, 312, 318, 366, 324, + 288, 264, 360, 361, 362, 264, 359, 264, 813, 262, + 1064, 364, 367, 368, 369, 370, 294, 260, 261, 59, + 263, 264, 274, 367, 368, 369, 370, 350, 306, 307, + 1539, 59, 275, 260, 261, 33, 263, 123, 395, 367, + 391, 273, 391, 264, 391, 262, 324, 59, 123, 374, + 264, 419, 420, 296, 422, 1396, 424, 435, 345, 346, + 264, 265, 421, 350, 1573, 262, 264, 265, 266, 296, + 426, 439, 440, 264, 59, 360, 361, 362, 264, 599, + 262, 264, 265, 266, 260, 261, 469, 263, 286, 287, + 610, 46, 268, 898, 264, 265, 374, 40, 463, 462, + 465, 59, 452, 286, 287, 46, 391, 339, 914, 267, + 569, 40, 480, 125, 471, 480, 1267, 123, 359, 60, + 296, 41, 480, 364, 44, 542, 40, 492, 260, 261, + 498, 263, 1151, 123, 46, 503, 504, 505, 93, 507, + 125, 509, 510, 511, 47, 505, 506, 507, 91, 123, + 506, 266, 508, 472, 40, 123, 512, 260, 261, 525, + 263, 40, 91, 520, 521, 260, 261, 125, 263, 1531, + 535, 286, 287, 525, 542, 543, 262, 91, 535, 123, + 617, 93, 535, 536, 537, 538, 539, 540, 541, 546, + 477, 1323, 1324, 480, 44, 40, 1532, 565, 123, 1561, + 568, 566, 567, 40, 91, 91, 1547, 360, 361, 362, + 593, 46, 91, 260, 261, 592, 263, 595, 543, 451, + 123, 599, 587, 660, 40, 662, 1562, 595, 40, 472, + 587, 463, 610, 465, 466, 755, 468, 469, 414, 415, + 416, 40, 610, 93, 601, 472, 91, 624, 625, 283, + 284, 1577, 44, 630, 91, 632, 260, 261, 43, 263, + 40, 273, 260, 261, 42, 263, 264, 635, 44, 40, + 40, 636, 123, 91, 40, 91, 61, 642, 661, 91, + 648, 40, 671, 40, 318, 91, 260, 746, 273, 263, + 264, 659, 91, 752, 535, 536, 537, 538, 539, 540, + 541, 93, 0, 535, 536, 537, 538, 539, 540, 541, + 692, 91, 44, 91, 682, 273, 91, 93, 701, 359, + 91, 91, 482, 986, 364, 91, 1557, 374, 375, 44, + 986, 708, 91, 986, 91, 772, 264, 1391, 44, 704, + 260, 40, 502, 263, 709, 40, 711, 62, 716, 717, + 718, 61, 1484, 281, 282, 283, 62, 260, 261, 742, + 263, 59, 706, 719, 40, 1497, 41, 42, 264, 260, + 738, 739, 263, 260, 261, 470, 263, 755, 260, 275, + 745, 263, 264, 766, 749, 750, 751, 744, 745, 260, + 261, 759, 263, 761, 91, 763, 306, 1176, 781, 1178, + 768, 41, 767, 838, 91, 840, 841, 842, 843, 844, + 788, 47, 264, 769, 266, 427, 91, 429, 430, 797, + 788, 391, 41, 457, 458, 44, 460, 125, 41, 391, + 798, 799, 1486, 267, 286, 287, 448, 449, 450, 451, + 264, 265, 260, 261, 812, 263, 431, 432, 1580, 260, + 261, 816, 263, 818, 260, 261, 295, 263, 462, 330, + 331, 300, 899, 302, 829, 41, 451, 835, 44, 391, + 309, 908, 391, 59, 831, 44, 41, 46, 463, 847, + 465, 849, 41, 468, 469, 260, 261, 326, 263, 41, + 1622, 43, 38, 451, 41, 535, 536, 537, 538, 539, + 540, 541, 341, 461, 393, 394, 464, 535, 536, 537, + 538, 539, 540, 541, 607, 608, 609, 899, 896, 260, + 261, 1653, 263, 535, 536, 537, 538, 539, 540, 541, + 316, 899, 59, 279, 280, 41, 1668, 43, 44, 125, + 38, 909, 42, 289, 42, 393, 394, 904, 46, 47, + 535, 536, 537, 538, 539, 540, 541, 260, 261, 936, + 263, 939, 60, 260, 261, 262, 263, 264, 44, 1623, + 46, 268, 40, 260, 261, 273, 263, 535, 536, 537, + 538, 539, 540, 541, 320, 321, 283, 971, 260, 261, + 934, 263, 41, 91, 43, 978, 43, 44, 125, 296, + 44, 984, 46, 264, 265, 266, 1043, 41, 40, 43, + 975, 1665, 980, 61, 982, 280, 281, 282, 283, 284, + 985, 43, 44, 320, 321, 286, 287, 1005, 93, 1007, + 1005, 986, 1007, 988, 989, 990, 1001, 1005, 995, 1007, + 997, 40, 986, 43, 988, 989, 990, 301, 1085, 303, + 304, 305, 260, 261, 986, 263, 988, 989, 986, 38, + 263, 1029, 886, 887, 1032, 41, 986, 93, 988, 989, + 986, 38, 41, 42, 1039, 42, 280, 475, 1035, 93, + 1037, 294, 40, 40, 330, 331, 332, 273, 301, 40, + 303, 304, 305, 60, 1216, 1217, 1218, 1219, 59, 1064, + 40, 1138, 374, 375, 1226, 1227, 1228, 281, 282, 283, + 284, 409, 410, 411, 412, 413, 40, 414, 415, 416, + 366, 367, 368, 310, 91, 312, 313, 314, 93, 342, + 343, 344, 278, 431, 432, 281, 282, 283, 284, 40, + 286, 287, 288, 40, 123, 40, 273, 355, 356, 357, + 448, 449, 450, 451, 40, 40, 40, 455, 456, 40, + 330, 331, 332, 461, 125, 1133, 464, 260, 261, 296, + 263, 264, 380, 471, 472, 388, 389, 390, 40, 392, + 260, 261, 395, 263, 281, 282, 283, 284, 1567, 1568, + 40, 125, 38, 1161, 1162, 1163, 366, 367, 368, 91, + 1168, 1169, 1170, 1171, 1172, 1173, 58, 1175, 1176, 1177, + 1192, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1174, 1187, + 33, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, + 1186, 529, 530, 531, 41, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 1209, 38, 40, 44, 328, 42, + 330, 331, 40, 40, 1291, 1212, 1213, 337, 1236, 41, + 40, 40, 360, 361, 362, 451, 474, 60, 476, 477, + 478, 479, 1250, 262, 1252, 461, 123, 123, 464, 262, + 44, 41, 409, 41, 91, 1253, 281, 282, 283, 284, + 1258, 60, 274, 260, 261, 1260, 263, 463, 91, 278, + 274, 1269, 281, 282, 283, 284, 40, 286, 287, 288, + 40, 1279, 273, 275, 41, 1283, 1284, 40, 40, 1206, + 62, 123, 1381, 44, 451, 365, 1294, 123, 123, 1216, + 1217, 1218, 1219, 123, 461, 296, 40, 464, 58, 1226, + 1227, 1228, 280, 281, 282, 283, 284, 1315, 1316, 535, + 536, 537, 538, 539, 540, 541, 274, 40, 0, 40, + 40, 1329, 1330, 1331, 1332, 1333, 1334, 41, 1336, 281, + 282, 283, 284, 317, 1318, 317, 467, 1414, 40, 1335, + 470, 470, 61, 61, 61, 44, 41, 1369, 93, 41, + 41, 33, 41, 360, 361, 362, 38, 41, 40, 41, + 42, 41, 44, 41, 58, 47, 41, 1372, 535, 536, + 537, 538, 539, 540, 541, 44, 44, 59, 60, 61, + 62, 44, 125, 263, 61, 61, 1391, 40, 40, 125, + 41, 41, 278, 1390, 41, 281, 282, 283, 284, 40, + 286, 287, 288, 41, 1401, 1413, 41, 41, 409, 91, + 41, 93, 1420, 260, 261, 41, 263, 270, 271, 272, + 41, 268, 275, 276, 277, 278, 279, 41, 281, 282, + 283, 284, 41, 286, 287, 41, 41, 290, 291, 292, + 293, 123, 59, 125, 297, 298, 41, 1431, 41, 296, + 451, 41, 299, 306, 41, 308, 40, 274, 274, 306, + 461, 93, 41, 464, 1487, 93, 44, 41, 44, 41, + 323, 324, 325, 1550, 44, 40, 58, 40, 91, 41, + 41, 1486, 40, 40, 294, 41, 41, 41, 1485, 40, + 40, 62, 41, 41, 497, 489, 40, 501, 1506, 1507, + 1508, 277, 41, 125, 123, 358, 41, 41, 125, 61, + 277, 278, 279, 41, 281, 282, 283, 284, 41, 286, + 287, 288, 62, 290, 291, 292, 293, 360, 361, 362, + 297, 298, 41, 451, 535, 536, 537, 538, 539, 540, + 541, 391, 41, 41, 41, 317, 1543, 93, 93, 1626, + 1558, 317, 41, 1575, 40, 1563, 1564, 1565, 40, 1567, + 1659, 1569, 1570, 1571, 58, 58, 38, 414, 415, 416, + 42, 93, 1568, 93, 93, 93, 40, 44, 260, 261, + 262, 263, 504, 1591, 1592, 1593, 268, 91, 60, 271, + 91, 273, 274, 275, 276, 277, 278, 279, 365, 281, + 282, 283, 284, 40, 286, 287, 288, 123, 290, 291, + 292, 293, 40, 93, 296, 297, 298, 299, 1623, 91, + 41, 41, 40, 40, 306, 41, 308, 421, 269, 311, + 41, 272, 41, 315, 316, 93, 318, 93, 510, 1662, + 322, 323, 324, 325, 44, 274, 1654, 41, 58, 41, + 41, 44, 60, 93, 295, 296, 273, 339, 61, 300, + 1665, 302, 40, 294, 40, 40, 1663, 40, 309, 40, + 301, 40, 303, 304, 305, 40, 358, 359, 360, 361, + 362, 40, 364, 365, 40, 326, 40, 40, 40, 125, + 543, 41, 374, 375, 62, 93, 91, 41, 41, 41, + 341, 41, 33, 93, 93, 93, 93, 41, 93, 391, + 93, 342, 343, 344, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, 294, 260, -1, -1, 263, 480, -1, - 301, -1, 303, 304, 305, -1, -1, -1, -1, -1, - -1, -1, 278, -1, -1, 281, 282, 283, 284, -1, - 286, 287, 288, 409, -1, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 342, 343, 344, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, 451, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 461, -1, -1, 464, -1, - -1, -1, 260, 261, -1, 263, -1, 388, 389, 390, - 268, 392, -1, 271, 395, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, 91, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, 33, - 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, 262, -1, -1, -1, - -1, -1, 480, -1, -1, -1, 260, 261, 262, 263, - 264, 277, 278, 279, 268, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, 283, - 508, 509, -1, 299, -1, -1, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, 320, 321, -1, -1, - -1, 41, -1, -1, 474, -1, 476, 477, 478, 479, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, 33, 260, 261, -1, 263, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, 355, - 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, 380, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 480, 277, 278, 279, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 263, 41, 41, 41, 0, 41, 388, 389, 390, + 91, 392, 41, 93, 395, 93, 448, 449, 450, 451, + 41, 453, 454, 455, 456, 93, 41, 459, 93, 461, + 41, 463, 464, 465, 466, 93, 468, 469, 33, 471, + 472, 473, 41, 38, 93, 40, 41, 42, 480, 44, + 41, 91, 47, 41, 41, 41, 274, 424, 425, 426, + 427, 93, 93, 44, 59, 60, 61, 62, 38, 41, + 41, 40, 42, 41, 93, 93, 508, 509, 510, 93, + 40, 448, 449, 450, 451, 40, 269, 40, 40, 272, + 60, 41, 58, 58, 526, 527, 91, 529, 530, 531, + 58, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 41, 543, 295, 296, 41, 260, 261, 300, 263, 302, + 41, 91, 41, 268, 40, 60, 309, 40, 123, 93, + 125, 41, 93, 41, 93, 294, 41, 93, 360, 361, + 362, 40, 301, 326, 303, 304, 305, 40, 40, 40, + 40, 296, 40, 40, 299, 40, 40, 40, 341, 40, + 40, 306, 41, 40, 263, 93, 41, 91, 535, 536, + 537, 538, 539, 540, 541, 40, 58, 40, 40, 260, + 261, 93, 263, 342, 343, 344, 40, 268, 41, 91, + 271, 40, 274, 41, 275, 276, 277, 278, 279, 41, + 281, 282, 283, 284, 41, 286, 287, 41, 40, 290, + 291, 292, 293, 263, 41, 296, 297, 298, 41, 40, + 260, 261, 40, 263, 510, 306, 358, 308, 268, 388, + 389, 390, 41, 392, 41, 40, 395, 41, 274, 41, + 41, 44, 323, 324, 325, 123, 62, 40, 62, 125, + 123, 123, 123, 41, 123, 125, 296, 125, 38, 123, + 41, 40, 123, 123, 41, 260, 261, 125, 263, 414, + 415, 416, 59, 268, 41, 41, 271, 358, 273, 274, + 275, 276, 277, 278, 279, 41, 281, 282, 283, 284, + 125, 286, 287, 123, 123, 290, 291, 292, 293, 41, + 62, 296, 297, 298, 299, 41, 123, 40, 123, 0, + 41, 306, 263, 308, 46, 93, 311, 93, 275, 263, + 42, 316, 61, 263, 263, 263, 275, 322, 323, 324, + 325, 91, 275, 414, 415, 416, 260, 261, 125, 263, + 180, 275, 33, 123, 268, 260, 261, 38, 263, 40, + 41, 42, 275, 44, 417, 275, 47, 1034, 275, 739, + 1011, 275, 828, 358, 275, 360, 361, 362, 59, 60, + 61, 62, 296, 1502, 414, 415, 416, 275, 275, 374, + 375, 275, 306, 1276, 1009, 1196, 275, 895, 1138, 275, + 360, 361, 362, 914, 477, 904, 391, 1264, 701, 1277, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 275, + 24, 9, 123, 428, 125, 1200, 431, 432, 901, 114, + 355, 356, 357, 350, 24, 754, 544, 304, 758, 605, + 671, 64, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 543, 489, 459, 380, 461, 368, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + 260, -1, -1, 263, -1, 480, 273, -1, -1, -1, + 414, 415, 416, -1, -1, -1, -1, -1, 278, -1, -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, 508, 509, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, + -1, -1, 339, -1, -1, -1, -1, -1, -1, 474, + -1, 476, 477, 478, 479, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, 123, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, 451, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, 463, -1, 465, 466, + -1, 468, 469, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, 294, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, 309, -1, -1, -1, -1, 480, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + 325, 286, 287, 288, -1, 290, 291, 292, 293, 334, + -1, -1, 297, 298, -1, -1, -1, 508, 509, -1, + -1, -1, -1, 348, 349, 350, 351, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, 543, -1, -1, 380, 381, 382, 383, 384, + 385, 386, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + 365, 268, 59, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, + 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, - 476, 477, 478, 479, -1, -1, 40, -1, -1, -1, - 260, 261, -1, 263, -1, 365, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, 262, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, 273, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, -1, -1, 296, + 299, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 543, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, 269, -1, -1, 272, -1, + 290, 291, 292, 293, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, 59, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, 409, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 125, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, 451, 358, -1, 360, 361, 362, + 59, 60, 61, 62, 461, -1, -1, 464, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, 295, 296, -1, -1, -1, 300, -1, 302, -1, - -1, -1, -1, -1, -1, 309, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 326, 543, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, 123, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 296, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, 294, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, 309, - -1, -1, -1, -1, 480, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, 325, 286, 287, 288, -1, - 290, 291, 292, 293, 334, -1, -1, 297, 298, -1, - -1, -1, 508, 509, -1, -1, -1, -1, 348, 349, - 350, 351, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, - 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, 365, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, 271, -1, -1, -1, -1, 480, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, 346, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + 59, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, 409, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, 33, -1, + -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, 451, 358, + -1, 360, 361, 362, 59, 60, 61, 62, 461, -1, + -1, 464, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, 365, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + 409, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, 451, 358, -1, 360, 361, 362, 59, 60, + 61, 62, 461, -1, -1, 464, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + 271, -1, -1, -1, -1, 480, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, + -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, 365, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 41, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, -1, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + 294, -1, -1, -1, -1, -1, -1, 301, -1, 303, + 304, 305, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, + 344, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 123, -1, 125, -1, 428, + -1, -1, 431, 432, 388, 389, 390, -1, 392, -1, + -1, 395, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, 0, -1, -1, -1, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 294, -1, -1, -1, -1, -1, -1, 301, -1, - 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, - 343, 344, -1, 391, -1, -1, -1, -1, 396, 397, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, 270, + 271, 272, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 123, -1, 125, -1, - 428, -1, -1, 431, 432, 388, 389, 390, -1, 392, - -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, 294, -1, -1, -1, - -1, -1, 480, 301, -1, 303, 304, 305, -1, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 342, 343, 344, -1, 526, 527, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - 388, 389, 390, -1, 392, -1, 273, 395, -1, -1, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - 270, 271, 272, 0, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - 294, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, 323, - -1, -1, -1, 327, -1, -1, 330, 331, -1, -1, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 260, -1, -1, 263, -1, -1, 353, - -1, -1, 356, 543, -1, -1, 273, -1, -1, 363, - 277, 278, 279, -1, 281, 282, 283, 284, 372, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - 270, 271, 272, 0, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, - -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - 294, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, 323, - -1, -1, -1, 327, -1, -1, 330, 331, -1, -1, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 260, -1, -1, 263, -1, -1, 353, - -1, -1, 356, 543, -1, -1, 273, -1, -1, 363, - 277, 278, 279, -1, 281, 282, 283, 284, 372, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 271, -1, 0, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, - -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, + -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, + -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, + 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, 543, -1, -1, 273, -1, -1, -1, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 271, -1, 0, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, 322, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, 339, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 359, 323, 324, 325, -1, 364, 365, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, + -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, + -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, + 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, 543, -1, -1, 273, -1, -1, -1, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, 288, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, 59, 294, 295, -1, -1, -1, -1, 300, - -1, 302, -1, -1, -1, 322, -1, -1, 309, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 339, -1, -1, 326, 327, -1, 329, 330, - 331, 332, 333, -1, -1, -1, -1, 338, -1, -1, - 341, -1, 359, -1, -1, -1, 347, 364, 365, -1, - -1, 352, -1, 354, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 366, 367, 368, 369, 370, - 371, 372, 373, -1, -1, -1, -1, -1, 379, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, - -1, 468, 469, -1, 471, 472, 473, -1, 296, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, -1, -1, 273, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, 322, -1, -1, 396, 397, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 409, -1, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, 260, -1, -1, - 263, 448, 449, 450, 451, -1, 453, 454, 526, 527, - 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, 473, -1, -1, -1, - -1, -1, -1, 296, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, 0, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, 448, 449, 450, 451, 273, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, 322, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 59, 294, 295, -1, -1, -1, -1, 300, -1, + 302, -1, -1, -1, 322, -1, -1, 309, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, 326, 327, -1, 329, 330, 331, + 332, 333, -1, -1, -1, -1, 338, -1, -1, 341, + -1, 359, -1, -1, -1, 347, 364, 365, -1, -1, + 352, -1, 354, -1, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, 366, 367, 368, 369, 370, 371, + 372, 373, -1, -1, -1, -1, -1, 379, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, 273, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, 322, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, 260, -1, -1, 263, + 448, 449, 450, 451, -1, 453, 454, 526, 527, 273, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, 473, -1, -1, -1, -1, + -1, -1, 296, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 0, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, 40, 41, -1, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, + -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, 526, 527, 273, 529, 530, 531, -1, 533, + -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, 448, - 449, 450, 451, -1, 453, 454, 455, 456, 273, 274, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, 40, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 311, 61, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - 274, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, - -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, 0, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 358, -1, 59, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, 273, 274, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, 543, -1, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, - -1, 431, 432, 260, 59, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 273, 274, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 311, 61, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, 260, -1, 464, 263, -1, - -1, -1, -1, -1, 471, 472, 473, -1, 273, -1, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, 59, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 260, -1, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 358, + -1, 59, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, 59, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, 125, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, 273, -1, 459, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, 260, 59, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, 322, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, -1, 59, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, - 448, 449, 450, 451, 260, 453, 454, 455, 456, -1, - -1, 459, -1, 461, 431, 432, 464, 273, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, - -1, 123, -1, 125, 471, 472, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, 260, -1, 464, 263, -1, -1, + -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, 273, -1, 459, -1, 461, -1, -1, 464, -1, + 426, 427, 428, 429, 430, 431, 432, 260, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, 59, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 260, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 273, -1, 459, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, 260, -1, 464, 263, -1, -1, -1, - -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, 526, 527, -1, + 429, 430, 431, 432, -1, -1, 59, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, + 449, 450, 451, 260, 453, 454, 455, 456, -1, -1, + 459, -1, 461, 431, 432, 464, 273, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, 463, 464, -1, -1, -1, + 123, -1, 125, 471, 472, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 273, -1, 459, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 260, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, 260, -1, -1, 263, - 44, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, 448, 449, 450, 451, 59, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, 322, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, + -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, 123, -1, 125, -1, + -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, 0, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 322, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, 0, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, 59, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - 59, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 358, 359, -1, 260, 428, -1, 263, 431, 432, 125, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, 125, 461, -1, -1, - 464, -1, -1, -1, -1, 0, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 414, 415, 416, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, 451, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, 59, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 273, -1, -1, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 125, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, 273, 543, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, 260, -1, -1, 263, 44, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 448, 449, 450, 451, 59, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, 322, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 0, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, 59, -1, 61, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 358, + 359, -1, 260, 428, -1, 263, 431, 432, 125, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, 0, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 414, 415, 416, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 451, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 273, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 125, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 543, -1, -1, 0, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 125, 459, -1, 461, -1, 322, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, 125, -1, 431, 432, -1, 273, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, 125, 459, -1, 461, -1, 322, 464, -1, -1, + -1, -1, -1, -1, 461, -1, -1, 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, - -1, -1, 428, 125, -1, 431, 432, -1, 273, -1, - 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 431, 432, -1, 461, -1, -1, 464, 273, - 0, -1, -1, -1, -1, 471, 472, 473, -1, 448, - 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, - -1, -1, 461, -1, -1, 464, -1, 0, -1, -1, - -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 273, -1, 0, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, + 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, -1, -1, 461, 431, 432, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + -1, 59, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, 508, 509, -1, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 409, 410, 411, 412, 413, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, 431, 432, -1, -1, - -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, 125, -1, -1, -1, 461, 431, 432, 464, - 0, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, + 536, 537, 538, 539, 540, 541, -1, 125, -1, -1, + -1, -1, -1, 273, -1, -1, 409, 410, 411, 412, + 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 431, - 432, 0, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - 273, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, + 410, 411, 412, 413, -1, 273, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, 257, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, + -1, 471, 472, -1, -1, -1, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, + 289, 290, 291, 292, 293, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, 273, -1, -1, 409, 410, 411, 412, - 413, 59, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, 431, 432, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, 526, 527, 59, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, + 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, + 273, -1, 461, 431, 432, 464, -1, -1, -1, -1, + 0, -1, 471, 472, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 125, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, 59, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 484, 485, -1, 487, 488, + 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, + -1, -1, -1, -1, -1, 125, 409, 410, 411, 412, + 413, 273, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, - 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 33, -1, 455, 456, -1, 38, -1, -1, + 461, 42, -1, 464, -1, -1, -1, -1, -1, -1, + 471, 472, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 91, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, 33, 455, 456, -1, -1, 38, - -1, 461, -1, 42, 464, -1, -1, -1, -1, -1, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, 526, 527, -1, 529, + -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, - -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, + 540, 541, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 60, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, 409, 410, 411, 412, 413, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 431, 432, -1, -1, -1, -1, -1, - -1, 91, 33, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, - -1, 260, 261, 461, 263, -1, 464, -1, -1, 268, - -1, -1, 271, 471, 472, -1, 275, 276, 277, 278, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, 414, 415, 416, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, 33, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, 374, 375, 38, -1, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, 414, 415, 416, 268, -1, - -1, 271, -1, 33, -1, 275, 276, 277, 278, 279, - 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, 294, -1, -1, 297, 298, 358, -1, - 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, - 331, 332, -1, -1, 543, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, 415, 416, 358, -1, -1, - -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, - -1, 372, -1, -1, -1, 376, 377, 378, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, 91, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, + -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, 414, 415, 416, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, + 38, -1, 91, -1, 42, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 271, 323, 324, 325, 275, 276, 277, 278, 279, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, 91, 33, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, 271, -1, -1, 543, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 294, -1, -1, 297, 298, 480, - -1, -1, -1, 543, -1, -1, 306, 358, 308, 360, - 361, 362, -1, -1, 91, -1, -1, -1, -1, -1, + 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, + -1, -1, 414, 415, 416, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, -1, 358, -1, - -1, -1, 543, 414, 415, 416, 366, 367, 368, 369, - -1, -1, 372, -1, -1, -1, 376, 377, 378, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, 91, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, + -1, -1, 372, -1, 33, -1, 376, 377, 378, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, 543, 91, 271, 323, 324, 325, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, 358, + 308, -1, -1, -1, -1, -1, 33, -1, -1, -1, + 480, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, + 358, -1, 360, 361, 362, -1, -1, 306, -1, 308, + -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, + -1, -1, -1, 543, 323, 324, 325, -1, 327, -1, + 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, 414, 415, 416, 358, + -1, -1, -1, -1, -1, -1, -1, 366, 367, 368, + 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, 33, -1, -1, 306, -1, 308, + -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 480, 358, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, 543, 91, 271, 372, -1, -1, 275, 276, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 480, 91, 260, 261, 543, 263, -1, -1, -1, + -1, 268, -1, 372, 271, -1, -1, 33, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, 414, 415, 416, - -1, -1, -1, 543, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, 308, -1, -1, -1, 414, 415, 416, -1, -1, + -1, -1, -1, -1, 543, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, 358, 359, -1, -1, 268, -1, -1, 271, -1, + -1, 358, 359, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, 91, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + 33, -1, 271, -1, 543, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 358, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, 91, 33, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, 543, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, 414, 415, 416, 275, 276, + 277, 278, 279, 33, 281, 282, 283, 284, -1, 286, + 287, -1, 358, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, 543, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, -1, 41, 414, 415, + 416, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, 358, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, + 293, -1, -1, 296, 297, 298, -1, 91, -1, -1, + -1, 33, -1, 306, 543, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + 323, 324, 325, -1, -1, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, 295, -1, 297, 298, 358, 300, -1, 302, 91, + -1, -1, 306, -1, 308, 309, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 543, -1, 323, + 324, 325, 326, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, 543, -1, -1, -1, - 268, -1, -1, 271, -1, 358, -1, 275, 276, 277, - 278, 279, 91, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, 33, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, 414, 415, 416, -1, -1, -1, -1, -1, -1, + -1, 414, 415, 416, 358, 59, 60, -1, -1, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, 295, 543, 297, 298, -1, + 300, -1, 302, -1, -1, -1, 306, -1, 308, 309, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, 326, 271, -1, 123, + -1, 125, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 341, 286, 287, -1, 41, 290, 291, 292, 293, + -1, 47, -1, 297, 298, -1, -1, -1, 358, -1, + -1, -1, 306, 59, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, 271, + 543, -1, -1, -1, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, 59, 290, 291, + 292, 293, -1, -1, 358, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, 123, 41, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, 59, -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, -1, -1, -1, 543, 91, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, 125, -1, -1, 358, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, 414, 415, 416, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - 543, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 33, - 358, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, 543, -1, 271, 33, 358, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, 33, 414, 415, 416, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 358, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - 33, -1, 91, -1, -1, 543, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, 91, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 543, -1, 290, 291, 292, 293, - -1, 295, -1, 297, 298, -1, 300, -1, 302, -1, - -1, -1, 306, 33, 308, 309, -1, -1, -1, -1, - -1, 41, -1, 414, 415, 416, -1, -1, -1, 323, - 324, 325, 326, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, 341, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, 358, 290, 291, 292, 293, -1, - 295, 91, 297, 298, -1, 300, 40, 302, -1, 543, - -1, 306, -1, 308, 309, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 60, -1, 323, 324, - 325, 326, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, 341, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, 358, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, -1, 323, 324, 325, -1, 271, 123, - -1, 125, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, -1, 297, 298, -1, -1, -1, 358, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, - -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, 59, -1, -1, 543, - -1, 271, -1, -1, -1, -1, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, 323, 324, 325, -1, -1, -1, 273, - 123, 41, 125, -1, -1, -1, -1, -1, 543, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 543, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, 59, -1, -1, 413, + -1, 273, -1, 417, 418, 419, 420, 421, 422, -1, + -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, 448, 449, 450, 451, -1, -1, + 273, 543, -1, -1, -1, 459, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, 473, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 508, 509, 510, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, 448, 449, 450, 451, 47, 409, -1, 411, + 412, 413, -1, 459, -1, -1, -1, -1, 59, -1, + -1, 423, -1, -1, -1, -1, 428, 473, 391, 431, + 432, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 448, 449, 450, 451, + 413, 453, 454, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 508, 509, -1, -1, -1, 260, 431, 432, + 263, 473, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, 123, -1, 125, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + 473, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, 41, 125, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, 59, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, 260, + 413, -1, 263, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 273, 274, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 543, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, - 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, - 273, 274, -1, -1, -1, -1, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 508, 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, 391, -1, + -1, -1, -1, -1, -1, 508, 509, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, 448, 449, 450, + 451, -1, -1, 273, 123, -1, 125, -1, 459, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 403, 404, 405, 406, 407, 408, -1, 508, 509, -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, 260, -1, -1, 263, -1, 431, 432, - -1, -1, -1, -1, -1, -1, 273, 123, -1, 125, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, -1, -1, 508, 509, -1, -1, -1, + -1, 260, -1, 413, 263, -1, -1, 417, 418, 419, + 420, 421, 422, -1, 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, 391, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, 260, -1, 413, 263, -1, -1, - 417, 418, 419, 420, 421, 422, -1, 273, 508, 509, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, - 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, 59, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, -1, 123, -1, 125, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, 260, -1, -1, 263, 431, 432, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + 59, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 508, + 509, 260, -1, 413, 263, -1, -1, 417, 418, 419, + 420, 421, 422, -1, 273, -1, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, 123, -1, 125, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, -1, 260, -1, -1, - 263, -1, 431, 432, -1, -1, -1, -1, -1, -1, - 273, 123, -1, 125, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 273, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, 123, -1, 125, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + 406, 407, 408, -1, -1, -1, 59, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, - 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 260, -1, - 413, 263, -1, -1, 417, 418, 419, 420, 421, 422, - -1, 273, 508, 509, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, 448, 449, 450, 451, 535, - 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - 59, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, -1, -1, 260, -1, -1, 263, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 273, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, -1, 123, -1, 125, 459, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - -1, 260, 59, -1, 263, -1, 431, 432, -1, -1, - -1, -1, -1, -1, 273, 123, -1, 125, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, 125, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, 508, 509, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - 535, 536, 537, 538, 539, 540, 541, 459, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, + 539, 540, 541, 459, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 473, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 260, 59, 413, 263, -1, -1, 417, 418, - 419, 420, 421, 422, -1, 273, 508, 509, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, - 459, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, 273, -1, -1, 125, + -1, 125, 508, 509, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, 260, -1, -1, 263, -1, 535, + 536, 537, 538, 539, 540, 541, -1, 273, -1, 448, + 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 509, -1, -1, -1, -1, -1, -1, 260, 59, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, - -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, - -1, 459, 409, 410, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, 273, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - 508, 509, -1, -1, 461, -1, -1, 464, -1, -1, - -1, -1, -1, -1, 471, 472, 322, -1, 273, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 125, 273, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, + -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, 431, 432, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, + 473, -1, 273, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, 431, 432, -1, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, + 448, 449, 450, 451, -1, 508, 509, 455, 456, -1, + 123, -1, -1, 461, -1, -1, 464, -1, -1, -1, + -1, 322, -1, 471, 472, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 409, -1, 411, 412, 413, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 409, -1, + 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 257, -1, -1, 448, 449, 450, + 451, -1, 453, 454, -1, -1, -1, -1, 271, -1, + -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, + 283, 284, 473, 286, 287, -1, 289, 290, 291, 292, + 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 335, -1, 337, -1, -1, 257, -1, 342, + -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, + 541, 271, -1, -1, -1, 358, 276, 277, -1, 279, + 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, + 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, -1, - -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, - -1, -1, -1, -1, -1, -1, -1, 473, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - -1, 271, 508, 509, -1, -1, 276, 277, -1, 279, - 280, 281, 282, 283, 284, -1, 286, 287, 473, 289, - 290, 291, 292, 293, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 335, -1, 337, -1, -1, - 257, -1, 342, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, 358, 276, - 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, - 287, -1, 289, 290, 291, 292, 293, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, - -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, - -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, + -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 335, -1, 337, 503, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, -1, -1, 481, -1, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, -1, -1, + 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 484, 485, -1, - 487, 488, 489, -1, 491, 492, -1, -1, 495, 496, - -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 481, -1, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, -1, -1, -1, 503, + -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, -1, -1, 503, }; static int yyctable[] = { -1, - 239, 556, -1, 439, 789, -1, 291, 719, -1, 292, - 719, -1, 293, 719, -1, 295, 719, -1, 296, 719, - -1, 297, 719, -1, 298, 719, -1, 528, 740, -1, + 239, 556, -1, 438, 785, -1, 290, 715, -1, 291, + 715, -1, 292, 715, -1, 294, 715, -1, 295, 715, + -1, 296, 715, -1, 297, 715, -1, 524, 736, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 786, 317, -1, 854, 791, -1, + -1, 103, 495, -1, 780, 317, -1, 848, 787, -1, 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1137, 624, -1, 67, 565, -1, 68, - 565, -1, 69, 565, -1, 1154, 37, -1, 1284, 795, - -1, 1286, 793, -1, 1298, 608, -1, 1504, 797, -1, - 1139, 571, -1, 1140, 571, -1, + 34, 78, -1, 1131, 624, -1, 67, 565, -1, 68, + 565, -1, 69, 565, -1, 1148, 37, -1, 1278, 791, + -1, 1280, 789, -1, 1292, 608, -1, 1498, 793, -1, + 1133, 571, -1, 1134, 571, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, @@ -4442,146 +4320,145 @@ static int yyastable[] = { 0, 76, 310, 310, 339, 26, 27, 28, 29, 382, 51, 382, 24, 25, 34, 15, 17, 339, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 307, 353, 217, 304, 310, 388, 307, 310, 318, 306, - 105, 106, 107, 136, 298, 300, 304, 305, 136, 136, - 136, 136, 316, 387, 382, 447, 347, 295, 12, 295, - 295, 423, 309, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 162, 163, 164, 165, - 166, 167, 204, 218, 253, 254, 289, 290, 311, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 428, 431, 442, 443, 444, 446, 465, - 466, 467, 468, 469, 470, 471, 474, 434, 436, 438, - 440, 295, 39, 68, 72, 75, 76, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 98, - 101, 108, 117, 310, 383, 61, 452, 39, 72, 74, - 75, 76, 77, 78, 83, 92, 97, 99, 111, 112, - 113, 114, 115, 116, 117, 118, 124, 316, 304, 294, - 298, 323, 294, 323, 294, 323, 294, 323, 294, 323, - 294, 323, 294, 484, 485, 294, 342, 7, 8, 292, - 303, 73, 75, 76, 82, 310, 310, 299, 39, 72, - 74, 75, 76, 77, 111, 112, 113, 114, 117, 121, - 122, 123, 225, 339, 297, 217, 310, 294, 297, 316, - 294, 289, 294, 291, 8, 318, 318, 295, 119, 120, - 298, 310, 312, 383, 289, 294, 347, 299, 166, 401, - 310, 220, 136, 382, 25, 310, 383, 294, 294, 26, - 27, 28, 29, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 307, 310, 318, 310, 299, 299, 299, - 310, 318, 310, 294, 294, 310, 20, 299, 318, 340, - 341, 339, 366, 367, 310, 310, 310, 310, 339, 447, - 290, 67, 154, 168, 173, 198, 199, 218, 253, 254, - 290, 422, 425, 427, 428, 431, 442, 443, 444, 446, - 454, 455, 457, 459, 290, 318, 318, 318, 298, 110, - 287, 298, 103, 383, 303, 311, 318, 318, 335, 11, - 31, 32, 294, 334, 335, 311, 318, 387, 15, 17, - 339, 388, 383, 87, 347, 486, 316, 384, 294, 342, - 197, 294, 426, 55, 57, 58, 59, 472, 473, 475, - 477, 478, 479, 480, 311, 318, 469, 208, 210, 213, - 214, 290, 442, 443, 446, 489, 490, 491, 492, 84, - 208, 211, 290, 488, 490, 493, 494, 41, 154, 206, - 209, 290, 443, 446, 495, 206, 209, 290, 443, 446, - 496, 294, 75, 76, 77, 111, 112, 113, 300, 381, - 383, 453, 294, 294, 322, 294, 318, 318, 318, 318, - 335, 334, 334, 290, 292, 311, 295, 318, 318, 75, - 76, 77, 111, 112, 113, 294, 294, 310, 310, 299, - 347, 396, 397, 289, 339, 51, 375, 376, 383, 7, - 292, 295, 295, 385, 300, 333, 365, 19, 371, 373, - 321, 488, 136, 310, 19, 65, 66, 326, 318, 294, - 294, 294, 294, 318, 318, 318, 335, 318, 334, 334, - 335, 318, 318, 318, 335, 310, 318, 299, 314, 314, - 314, 383, 383, 20, 292, 299, 301, 292, 304, 110, - 393, 394, 318, 318, 403, 110, 287, 103, 383, 289, - 426, 289, 289, 289, 303, 318, 298, 310, 298, 310, - 318, 316, 19, 294, 294, 310, 383, 294, 342, 339, - 311, 315, 318, 295, 294, 20, 322, 336, 337, 338, - 290, 383, 472, 56, 469, 476, 476, 476, 476, 311, - 318, 469, 62, 62, 212, 297, 304, 318, 378, 297, - 347, 342, 342, 297, 297, 342, 342, 294, 215, 318, - 310, 215, 310, 215, 318, 39, 51, 52, 69, 119, - 288, 291, 302, 327, 328, 380, 292, 318, 347, 395, - 298, 339, 347, 295, 299, 295, 295, 295, 295, 295, - 484, 295, 303, 8, 292, 318, 2, 16, 21, 22, - 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, - 36, 37, 38, 80, 82, 87, 103, 136, 226, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 248, 289, 344, 345, - 464, 63, 313, 299, 297, 295, 292, 371, 8, 292, - 290, 297, 8, 297, 298, 366, 294, 294, 310, 312, - 290, 22, 23, 24, 26, 27, 28, 29, 31, 32, - 35, 36, 37, 38, 42, 43, 110, 351, 352, 374, - 446, 486, 28, 29, 63, 202, 203, 205, 342, 310, - 310, 295, 295, 318, 318, 318, 335, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 314, - 295, 295, 318, 340, 339, 294, 383, 72, 117, 310, - 383, 72, 117, 316, 310, 298, 310, 298, 310, 316, - 19, 423, 290, 456, 458, 438, 318, 299, 318, 318, - 292, 299, 339, 312, 318, 335, 19, 347, 295, 294, - 292, 295, 292, 336, 339, 295, 292, 311, 318, 311, - 318, 318, 294, 303, 294, 295, 295, 294, 294, 295, - 295, 318, 314, 310, 63, 310, 295, 294, 39, 329, - 330, 328, 294, 310, 370, 301, 383, 295, 136, 395, - 39, 46, 48, 49, 50, 87, 88, 89, 133, 134, - 135, 137, 140, 295, 250, 251, 252, 318, 225, 349, - 295, 323, 323, 323, 323, 323, 323, 318, 318, 295, - 25, 26, 27, 28, 29, 294, 331, 242, 234, 246, - 294, 227, 247, 22, 331, 331, 2, 21, 22, 24, - 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, - 37, 38, 229, 230, 232, 233, 234, 236, 237, 240, - 241, 243, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 304, 324, 298, 304, - 295, 343, 311, 297, 346, 28, 318, 326, 347, 348, - 382, 396, 290, 297, 376, 289, 289, 294, 347, 318, - 301, 336, 336, 333, 365, 294, 298, 294, 298, 26, - 27, 28, 29, 294, 298, 294, 298, 294, 298, 294, + 353, 217, 304, 310, 388, 307, 310, 318, 306, 105, + 106, 107, 136, 298, 300, 304, 305, 136, 136, 136, + 136, 316, 387, 382, 447, 347, 295, 12, 295, 295, + 423, 309, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 162, 163, 164, 165, 166, + 167, 204, 218, 253, 254, 289, 290, 311, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 428, 431, 442, 443, 444, 446, 465, 466, + 467, 468, 469, 470, 471, 474, 434, 436, 438, 440, + 295, 39, 68, 72, 75, 76, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 98, 101, + 108, 117, 310, 383, 61, 452, 39, 72, 74, 75, + 76, 77, 78, 83, 92, 97, 99, 111, 112, 113, + 114, 115, 116, 117, 118, 124, 316, 304, 294, 298, + 323, 294, 323, 294, 323, 294, 323, 294, 323, 294, + 323, 294, 484, 485, 294, 342, 7, 8, 292, 303, + 73, 75, 76, 82, 310, 310, 299, 39, 72, 74, + 75, 76, 77, 111, 112, 113, 114, 117, 121, 122, + 123, 225, 339, 297, 217, 310, 294, 297, 316, 294, + 289, 294, 291, 8, 318, 318, 295, 119, 120, 298, + 310, 312, 383, 289, 294, 347, 299, 166, 401, 310, + 220, 136, 382, 25, 310, 383, 294, 294, 26, 27, + 28, 29, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 310, 299, 299, 299, 310, 318, 310, 294, + 294, 310, 20, 299, 318, 340, 341, 339, 366, 367, + 310, 310, 310, 310, 339, 447, 290, 67, 154, 168, + 173, 198, 199, 218, 253, 254, 290, 422, 425, 427, + 428, 431, 442, 443, 444, 446, 454, 455, 457, 459, + 290, 318, 318, 318, 298, 110, 287, 298, 103, 383, + 303, 311, 318, 318, 335, 11, 31, 32, 294, 334, + 335, 311, 318, 387, 15, 17, 339, 388, 383, 87, + 347, 486, 316, 384, 294, 342, 197, 294, 426, 55, + 57, 58, 59, 472, 473, 475, 477, 478, 479, 480, + 311, 318, 469, 208, 210, 213, 214, 290, 442, 443, + 446, 489, 490, 491, 492, 84, 208, 211, 290, 488, + 490, 493, 494, 41, 154, 206, 209, 290, 443, 446, + 495, 206, 209, 290, 443, 446, 496, 294, 75, 76, + 77, 111, 112, 113, 300, 381, 383, 453, 294, 294, + 322, 294, 318, 318, 318, 318, 335, 334, 334, 290, + 292, 311, 295, 318, 318, 75, 76, 77, 111, 112, + 113, 294, 294, 310, 310, 299, 347, 396, 397, 289, + 339, 51, 375, 376, 383, 7, 292, 295, 295, 385, + 300, 333, 365, 19, 371, 373, 321, 488, 136, 310, + 19, 65, 66, 326, 318, 294, 294, 294, 294, 318, + 318, 318, 335, 318, 334, 334, 335, 318, 318, 318, + 335, 299, 314, 314, 314, 383, 383, 20, 292, 299, + 301, 292, 304, 110, 393, 394, 318, 318, 403, 110, + 287, 103, 383, 289, 426, 289, 289, 289, 303, 318, + 298, 310, 298, 310, 318, 316, 19, 294, 294, 310, + 383, 294, 342, 339, 311, 315, 318, 295, 294, 20, + 322, 336, 337, 338, 290, 383, 472, 56, 469, 476, + 476, 476, 476, 311, 318, 469, 62, 62, 212, 297, + 304, 318, 378, 297, 347, 342, 342, 297, 297, 342, + 342, 294, 215, 318, 310, 215, 310, 215, 318, 39, + 51, 52, 69, 119, 288, 291, 302, 327, 328, 380, + 292, 318, 347, 395, 298, 339, 347, 295, 299, 295, + 295, 295, 295, 295, 484, 295, 303, 8, 292, 318, + 2, 16, 21, 22, 24, 25, 26, 27, 28, 29, + 31, 32, 34, 35, 36, 37, 38, 80, 82, 87, + 103, 136, 226, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 248, 289, 344, 345, 464, 63, 313, 299, 297, 295, + 292, 371, 8, 292, 290, 297, 8, 297, 298, 366, + 294, 294, 310, 312, 290, 22, 23, 24, 26, 27, + 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, + 110, 351, 352, 374, 446, 486, 28, 29, 63, 202, + 203, 205, 342, 310, 310, 295, 295, 318, 318, 318, + 335, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 314, 295, 295, 318, 340, 339, 294, + 383, 72, 117, 310, 383, 72, 117, 316, 310, 298, + 310, 298, 310, 316, 19, 423, 290, 456, 458, 438, + 318, 299, 318, 318, 292, 299, 339, 312, 318, 335, + 19, 347, 295, 294, 292, 295, 292, 336, 339, 295, + 292, 311, 318, 311, 318, 318, 294, 303, 294, 295, + 295, 294, 294, 295, 295, 318, 314, 310, 63, 310, + 295, 294, 39, 329, 330, 328, 294, 310, 370, 301, + 383, 295, 136, 395, 39, 46, 48, 49, 50, 87, + 88, 89, 133, 134, 135, 137, 140, 295, 250, 251, + 252, 318, 225, 349, 295, 323, 323, 323, 323, 323, + 323, 318, 318, 295, 25, 26, 27, 28, 29, 294, + 331, 242, 234, 246, 294, 227, 247, 22, 331, 331, + 2, 21, 22, 24, 25, 26, 27, 28, 29, 31, + 32, 34, 35, 36, 37, 38, 229, 230, 232, 233, + 234, 236, 237, 240, 241, 243, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 304, 324, 298, 304, 295, 343, 311, 297, 346, 28, + 318, 326, 347, 348, 382, 396, 290, 297, 376, 289, + 289, 294, 347, 318, 301, 336, 336, 333, 365, 294, + 298, 294, 298, 26, 27, 28, 29, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, - 298, 294, 298, 294, 298, 294, 298, 294, 298, 104, - 109, 377, 446, 342, 311, 295, 295, 295, 295, 295, - 336, 196, 405, 310, 339, 318, 318, 292, 339, 312, - 290, 169, 170, 171, 172, 290, 431, 443, 444, 446, - 461, 172, 174, 175, 290, 431, 443, 444, 446, 462, - 290, 136, 299, 299, 383, 346, 383, 295, 295, 310, - 295, 336, 315, 315, 295, 349, 338, 62, 62, 378, - 295, 318, 318, 294, 330, 383, 368, 369, 383, 292, - 379, 310, 347, 295, 294, 303, 303, 299, 299, 299, - 299, 294, 312, 8, 292, 8, 249, 347, 298, 298, - 25, 26, 27, 28, 29, 270, 292, 298, 305, 291, - 299, 318, 290, 22, 23, 24, 26, 27, 28, 29, - 31, 32, 35, 36, 37, 38, 44, 347, 350, 352, - 294, 294, 289, 374, 371, 299, 295, 295, 294, 294, - 326, 318, 318, 318, 294, 298, 294, 298, 294, 298, - 294, 298, 318, 318, 318, 318, 318, 318, 335, 318, - 318, 334, 318, 334, 335, 318, 318, 318, 318, 318, - 318, 318, 335, 318, 351, 318, 8, 44, 318, 44, - 51, 382, 318, 42, 91, 110, 364, 372, 295, 401, - 295, 310, 299, 299, 383, 383, 255, 387, 387, 387, - 387, 387, 387, 387, 311, 292, 19, 295, 311, 311, - 318, 303, 295, 318, 310, 295, 292, 380, 379, 395, - 318, 138, 139, 138, 139, 345, 381, 318, 297, 292, - 318, 318, 347, 299, 318, 291, 299, 26, 27, 28, - 29, 318, 26, 27, 28, 318, 374, 290, 290, 301, - 336, 336, 295, 299, 295, 299, 318, 318, 318, 318, - 318, 318, 335, 318, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 295, 299, 295, 295, 299, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 295, - 299, 295, 8, 295, 299, 51, 382, 298, 310, 294, - 292, 19, 316, 383, 312, 378, 295, 379, 383, 295, - 295, 295, 294, 8, 318, 347, 299, 299, 299, 318, - 295, 303, 303, 303, 295, 290, 295, 295, 294, 294, - 295, 299, 295, 299, 295, 299, 295, 299, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 295, 294, 8, 299, 297, 336, 383, 312, 339, 300, - 332, 333, 303, 336, 295, 292, 295, 344, 299, 318, - 318, 318, 360, 357, 294, 294, 294, 294, 356, 357, - 358, 359, 354, 355, 356, 357, 358, 359, 363, 361, - 362, 351, 295, 332, 383, 294, 378, 295, 347, 295, - 295, 295, 295, 326, 295, 318, 356, 357, 358, 359, - 295, 318, 295, 295, 318, 295, 335, 295, 318, 334, - 295, 334, 335, 295, 295, 295, 295, 295, 351, 8, - 44, 295, 44, 51, 295, 382, 346, 294, 19, 336, - 392, 292, 295, 295, 295, 295, 8, 336, 312, 295, - 39, 54, 70, 79, 93, 94, 95, 96, 125, 126, - 127, 128, 129, 130, 131, 289, 347, 295, 294, 294, - 295, 255, 336, 318, 103, 295, 295, 316, 339, 383, - 19, 312, 332, 294, 336, 295, + 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, + 298, 294, 298, 104, 109, 377, 446, 342, 311, 295, + 295, 295, 295, 295, 336, 196, 405, 310, 339, 318, + 318, 292, 339, 312, 290, 169, 170, 171, 172, 290, + 431, 443, 444, 446, 461, 172, 174, 175, 290, 431, + 443, 444, 446, 462, 290, 136, 299, 299, 383, 346, + 383, 295, 295, 310, 295, 336, 315, 315, 295, 349, + 338, 62, 62, 378, 295, 318, 318, 294, 330, 383, + 368, 369, 383, 292, 379, 310, 347, 295, 294, 303, + 303, 299, 299, 299, 299, 294, 312, 8, 292, 8, + 249, 347, 298, 298, 25, 26, 27, 28, 29, 270, + 292, 298, 305, 291, 299, 318, 290, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, + 44, 347, 350, 352, 294, 294, 289, 374, 371, 299, + 295, 295, 294, 294, 326, 318, 318, 318, 294, 298, + 294, 298, 294, 298, 294, 298, 318, 318, 318, 318, + 318, 318, 335, 318, 318, 334, 318, 334, 335, 318, + 318, 318, 318, 318, 318, 318, 335, 318, 351, 318, + 8, 44, 318, 44, 51, 382, 318, 42, 91, 110, + 364, 372, 295, 401, 295, 310, 299, 299, 383, 383, + 255, 387, 387, 387, 387, 387, 387, 387, 311, 292, + 19, 295, 311, 311, 318, 303, 295, 318, 310, 295, + 292, 380, 379, 395, 318, 138, 139, 138, 139, 345, + 381, 318, 297, 292, 318, 318, 347, 299, 318, 291, + 299, 26, 27, 28, 29, 318, 26, 27, 28, 318, + 374, 290, 290, 301, 336, 336, 295, 299, 295, 299, + 318, 318, 318, 318, 318, 318, 335, 318, 295, 299, + 295, 299, 295, 299, 295, 299, 295, 295, 299, 295, + 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, + 295, 299, 295, 295, 299, 295, 8, 295, 299, 51, + 382, 298, 310, 294, 292, 19, 316, 383, 312, 378, + 295, 379, 383, 295, 295, 295, 294, 8, 318, 347, + 299, 299, 299, 318, 295, 303, 303, 303, 295, 290, + 295, 295, 294, 294, 295, 299, 295, 299, 295, 299, + 295, 299, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 295, 294, 8, 299, 297, 336, + 383, 312, 339, 300, 332, 333, 303, 336, 295, 292, + 295, 344, 299, 318, 318, 318, 360, 357, 294, 294, + 294, 294, 356, 357, 358, 359, 354, 355, 356, 357, + 358, 359, 363, 361, 362, 351, 295, 332, 383, 294, + 378, 295, 347, 295, 295, 295, 295, 326, 295, 318, + 356, 357, 358, 359, 295, 318, 295, 295, 318, 295, + 335, 295, 318, 334, 295, 334, 335, 295, 295, 295, + 295, 295, 351, 8, 44, 295, 44, 51, 295, 382, + 346, 294, 19, 336, 392, 292, 295, 295, 295, 295, + 8, 336, 312, 295, 39, 54, 70, 79, 93, 94, + 95, 96, 125, 126, 127, 128, 129, 130, 131, 289, + 347, 295, 294, 294, 295, 255, 336, 318, 103, 295, + 295, 316, 339, 383, 19, 312, 332, 294, 336, 295, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -5350,13 +5227,9 @@ static const char *yyrule[] = { "type : type MODOPT_ '(' typeSpec ')'", "type : methodSpec callConv type '*' '(' sigArgs0 ')'", "type : type '<' tyArgs1 '>'", -"type : CONST_ '!' '!' int32", "type : '!' '!' int32", -"type : CONST_ '!' int32", "type : '!' int32", -"type : CONST_ '!' '!' dottedName", "type : '!' '!' dottedName", -"type : CONST_ '!' dottedName", "type : '!' dottedName", "type : TYPEDREF_", "type : VOID_", @@ -5822,11 +5695,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2148 "asmparse.y" +#line 2112 "asmparse.y" #include "grammar_after.cpp" -#line 5830 "asmparse.cpp.tab.c" +#line 5703 "asmparse.cpp.tab.c" #line 354 "btyaccpa.ske" /* @@ -6279,13 +6152,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6283 "asmparse.cpp.tab.c" +#line 6156 "asmparse.cpp.tab.c" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6289 "asmparse.cpp.tab.c" +#line 6162 "asmparse.cpp.tab.c" break; case 5: if (!yytrial) @@ -6294,31 +6167,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6298 "asmparse.cpp.tab.c" +#line 6171 "asmparse.cpp.tab.c" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6304 "asmparse.cpp.tab.c" +#line 6177 "asmparse.cpp.tab.c" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6310 "asmparse.cpp.tab.c" +#line 6183 "asmparse.cpp.tab.c" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6316 "asmparse.cpp.tab.c" +#line 6189 "asmparse.cpp.tab.c" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6322 "asmparse.cpp.tab.c" +#line 6195 "asmparse.cpp.tab.c" break; case 19: if (!yytrial) @@ -6333,13 +6206,13 @@ case 19: #pragma warning(pop) #endif } -#line 6337 "asmparse.cpp.tab.c" +#line 6210 "asmparse.cpp.tab.c" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6343 "asmparse.cpp.tab.c" +#line 6216 "asmparse.cpp.tab.c" break; case 21: if (!yytrial) @@ -6347,7 +6220,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6351 "asmparse.cpp.tab.c" +#line 6224 "asmparse.cpp.tab.c" break; case 22: if (!yytrial) @@ -6355,44 +6228,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6359 "asmparse.cpp.tab.c" +#line 6232 "asmparse.cpp.tab.c" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6365 "asmparse.cpp.tab.c" +#line 6238 "asmparse.cpp.tab.c" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6371 "asmparse.cpp.tab.c" +#line 6244 "asmparse.cpp.tab.c" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6377 "asmparse.cpp.tab.c" +#line 6250 "asmparse.cpp.tab.c" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6383 "asmparse.cpp.tab.c" +#line 6256 "asmparse.cpp.tab.c" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6389 "asmparse.cpp.tab.c" +#line 6262 "asmparse.cpp.tab.c" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6396 "asmparse.cpp.tab.c" +#line 6269 "asmparse.cpp.tab.c" break; case 35: if (!yytrial) @@ -6400,121 +6273,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6404 "asmparse.cpp.tab.c" +#line 6277 "asmparse.cpp.tab.c" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6410 "asmparse.cpp.tab.c" +#line 6283 "asmparse.cpp.tab.c" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6416 "asmparse.cpp.tab.c" +#line 6289 "asmparse.cpp.tab.c" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6422 "asmparse.cpp.tab.c" +#line 6295 "asmparse.cpp.tab.c" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6428 "asmparse.cpp.tab.c" +#line 6301 "asmparse.cpp.tab.c" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6434 "asmparse.cpp.tab.c" +#line 6307 "asmparse.cpp.tab.c" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6440 "asmparse.cpp.tab.c" +#line 6313 "asmparse.cpp.tab.c" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6446 "asmparse.cpp.tab.c" +#line 6319 "asmparse.cpp.tab.c" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6452 "asmparse.cpp.tab.c" +#line 6325 "asmparse.cpp.tab.c" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6458 "asmparse.cpp.tab.c" +#line 6331 "asmparse.cpp.tab.c" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6464 "asmparse.cpp.tab.c" +#line 6337 "asmparse.cpp.tab.c" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6470 "asmparse.cpp.tab.c" +#line 6343 "asmparse.cpp.tab.c" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6476 "asmparse.cpp.tab.c" +#line 6349 "asmparse.cpp.tab.c" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6482 "asmparse.cpp.tab.c" +#line 6355 "asmparse.cpp.tab.c" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6488 "asmparse.cpp.tab.c" +#line 6361 "asmparse.cpp.tab.c" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6494 "asmparse.cpp.tab.c" +#line 6367 "asmparse.cpp.tab.c" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6500 "asmparse.cpp.tab.c" +#line 6373 "asmparse.cpp.tab.c" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6506 "asmparse.cpp.tab.c" +#line 6379 "asmparse.cpp.tab.c" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6512 "asmparse.cpp.tab.c" +#line 6385 "asmparse.cpp.tab.c" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6518 "asmparse.cpp.tab.c" +#line 6391 "asmparse.cpp.tab.c" break; case 55: if (!yytrial) @@ -6522,7 +6395,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6526 "asmparse.cpp.tab.c" +#line 6399 "asmparse.cpp.tab.c" break; case 56: if (!yytrial) @@ -6530,13 +6403,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6534 "asmparse.cpp.tab.c" +#line 6407 "asmparse.cpp.tab.c" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6540 "asmparse.cpp.tab.c" +#line 6413 "asmparse.cpp.tab.c" break; case 58: if (!yytrial) @@ -6545,73 +6418,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6549 "asmparse.cpp.tab.c" +#line 6422 "asmparse.cpp.tab.c" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6555 "asmparse.cpp.tab.c" +#line 6428 "asmparse.cpp.tab.c" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6561 "asmparse.cpp.tab.c" +#line 6434 "asmparse.cpp.tab.c" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6567 "asmparse.cpp.tab.c" +#line 6440 "asmparse.cpp.tab.c" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6573 "asmparse.cpp.tab.c" +#line 6446 "asmparse.cpp.tab.c" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6579 "asmparse.cpp.tab.c" +#line 6452 "asmparse.cpp.tab.c" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6585 "asmparse.cpp.tab.c" +#line 6458 "asmparse.cpp.tab.c" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6591 "asmparse.cpp.tab.c" +#line 6464 "asmparse.cpp.tab.c" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6597 "asmparse.cpp.tab.c" +#line 6470 "asmparse.cpp.tab.c" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6603 "asmparse.cpp.tab.c" +#line 6476 "asmparse.cpp.tab.c" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6609 "asmparse.cpp.tab.c" +#line 6482 "asmparse.cpp.tab.c" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6615 "asmparse.cpp.tab.c" +#line 6488 "asmparse.cpp.tab.c" break; case 70: if (!yytrial) @@ -6619,25 +6492,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6623 "asmparse.cpp.tab.c" +#line 6496 "asmparse.cpp.tab.c" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6629 "asmparse.cpp.tab.c" +#line 6502 "asmparse.cpp.tab.c" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6635 "asmparse.cpp.tab.c" +#line 6508 "asmparse.cpp.tab.c" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6641 "asmparse.cpp.tab.c" +#line 6514 "asmparse.cpp.tab.c" break; case 74: if (!yytrial) @@ -6646,32 +6519,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6650 "asmparse.cpp.tab.c" +#line 6523 "asmparse.cpp.tab.c" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6656 "asmparse.cpp.tab.c" +#line 6529 "asmparse.cpp.tab.c" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6663 "asmparse.cpp.tab.c" +#line 6536 "asmparse.cpp.tab.c" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6669 "asmparse.cpp.tab.c" +#line 6542 "asmparse.cpp.tab.c" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6675 "asmparse.cpp.tab.c" +#line 6548 "asmparse.cpp.tab.c" break; case 79: if (!yytrial) @@ -6681,25 +6554,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6685 "asmparse.cpp.tab.c" +#line 6558 "asmparse.cpp.tab.c" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6691 "asmparse.cpp.tab.c" +#line 6564 "asmparse.cpp.tab.c" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6697 "asmparse.cpp.tab.c" +#line 6570 "asmparse.cpp.tab.c" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6703 "asmparse.cpp.tab.c" +#line 6576 "asmparse.cpp.tab.c" break; case 83: if (!yytrial) @@ -6708,13 +6581,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6712 "asmparse.cpp.tab.c" +#line 6585 "asmparse.cpp.tab.c" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6718 "asmparse.cpp.tab.c" +#line 6591 "asmparse.cpp.tab.c" break; case 85: if (!yytrial) @@ -6725,57 +6598,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6729 "asmparse.cpp.tab.c" +#line 6602 "asmparse.cpp.tab.c" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6735 "asmparse.cpp.tab.c" +#line 6608 "asmparse.cpp.tab.c" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6741 "asmparse.cpp.tab.c" +#line 6614 "asmparse.cpp.tab.c" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6747 "asmparse.cpp.tab.c" +#line 6620 "asmparse.cpp.tab.c" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6754 "asmparse.cpp.tab.c" +#line 6627 "asmparse.cpp.tab.c" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6761 "asmparse.cpp.tab.c" +#line 6634 "asmparse.cpp.tab.c" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6767 "asmparse.cpp.tab.c" +#line 6640 "asmparse.cpp.tab.c" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6773 "asmparse.cpp.tab.c" +#line 6646 "asmparse.cpp.tab.c" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6779 "asmparse.cpp.tab.c" +#line 6652 "asmparse.cpp.tab.c" break; case 94: if (!yytrial) @@ -6784,74 +6657,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6788 "asmparse.cpp.tab.c" +#line 6661 "asmparse.cpp.tab.c" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6795 "asmparse.cpp.tab.c" +#line 6668 "asmparse.cpp.tab.c" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6801 "asmparse.cpp.tab.c" +#line 6674 "asmparse.cpp.tab.c" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6807 "asmparse.cpp.tab.c" +#line 6680 "asmparse.cpp.tab.c" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6813 "asmparse.cpp.tab.c" +#line 6686 "asmparse.cpp.tab.c" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6819 "asmparse.cpp.tab.c" +#line 6692 "asmparse.cpp.tab.c" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6825 "asmparse.cpp.tab.c" +#line 6698 "asmparse.cpp.tab.c" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6831 "asmparse.cpp.tab.c" +#line 6704 "asmparse.cpp.tab.c" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6837 "asmparse.cpp.tab.c" +#line 6710 "asmparse.cpp.tab.c" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6843 "asmparse.cpp.tab.c" +#line 6716 "asmparse.cpp.tab.c" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6849 "asmparse.cpp.tab.c" +#line 6722 "asmparse.cpp.tab.c" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6855 "asmparse.cpp.tab.c" +#line 6728 "asmparse.cpp.tab.c" break; case 106: if (!yytrial) @@ -6861,355 +6734,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6865 "asmparse.cpp.tab.c" +#line 6738 "asmparse.cpp.tab.c" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6871 "asmparse.cpp.tab.c" +#line 6744 "asmparse.cpp.tab.c" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6877 "asmparse.cpp.tab.c" +#line 6750 "asmparse.cpp.tab.c" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6883 "asmparse.cpp.tab.c" +#line 6756 "asmparse.cpp.tab.c" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6889 "asmparse.cpp.tab.c" +#line 6762 "asmparse.cpp.tab.c" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6895 "asmparse.cpp.tab.c" +#line 6768 "asmparse.cpp.tab.c" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6901 "asmparse.cpp.tab.c" +#line 6774 "asmparse.cpp.tab.c" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6907 "asmparse.cpp.tab.c" +#line 6780 "asmparse.cpp.tab.c" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6913 "asmparse.cpp.tab.c" +#line 6786 "asmparse.cpp.tab.c" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6919 "asmparse.cpp.tab.c" +#line 6792 "asmparse.cpp.tab.c" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6925 "asmparse.cpp.tab.c" +#line 6798 "asmparse.cpp.tab.c" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6931 "asmparse.cpp.tab.c" +#line 6804 "asmparse.cpp.tab.c" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6937 "asmparse.cpp.tab.c" +#line 6810 "asmparse.cpp.tab.c" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6943 "asmparse.cpp.tab.c" +#line 6816 "asmparse.cpp.tab.c" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6949 "asmparse.cpp.tab.c" +#line 6822 "asmparse.cpp.tab.c" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6955 "asmparse.cpp.tab.c" +#line 6828 "asmparse.cpp.tab.c" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6961 "asmparse.cpp.tab.c" +#line 6834 "asmparse.cpp.tab.c" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6967 "asmparse.cpp.tab.c" +#line 6840 "asmparse.cpp.tab.c" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6973 "asmparse.cpp.tab.c" +#line 6846 "asmparse.cpp.tab.c" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6979 "asmparse.cpp.tab.c" +#line 6852 "asmparse.cpp.tab.c" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6985 "asmparse.cpp.tab.c" +#line 6858 "asmparse.cpp.tab.c" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6991 "asmparse.cpp.tab.c" +#line 6864 "asmparse.cpp.tab.c" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6997 "asmparse.cpp.tab.c" +#line 6870 "asmparse.cpp.tab.c" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 7003 "asmparse.cpp.tab.c" +#line 6876 "asmparse.cpp.tab.c" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 7009 "asmparse.cpp.tab.c" +#line 6882 "asmparse.cpp.tab.c" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 7015 "asmparse.cpp.tab.c" +#line 6888 "asmparse.cpp.tab.c" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 7021 "asmparse.cpp.tab.c" +#line 6894 "asmparse.cpp.tab.c" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 7027 "asmparse.cpp.tab.c" +#line 6900 "asmparse.cpp.tab.c" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 7033 "asmparse.cpp.tab.c" +#line 6906 "asmparse.cpp.tab.c" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 7039 "asmparse.cpp.tab.c" +#line 6912 "asmparse.cpp.tab.c" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7045 "asmparse.cpp.tab.c" +#line 6918 "asmparse.cpp.tab.c" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 7051 "asmparse.cpp.tab.c" +#line 6924 "asmparse.cpp.tab.c" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 7057 "asmparse.cpp.tab.c" +#line 6930 "asmparse.cpp.tab.c" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7063 "asmparse.cpp.tab.c" +#line 6936 "asmparse.cpp.tab.c" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7069 "asmparse.cpp.tab.c" +#line 6942 "asmparse.cpp.tab.c" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 7075 "asmparse.cpp.tab.c" +#line 6948 "asmparse.cpp.tab.c" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 7081 "asmparse.cpp.tab.c" +#line 6954 "asmparse.cpp.tab.c" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 7087 "asmparse.cpp.tab.c" +#line 6960 "asmparse.cpp.tab.c" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 7093 "asmparse.cpp.tab.c" +#line 6966 "asmparse.cpp.tab.c" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 7099 "asmparse.cpp.tab.c" +#line 6972 "asmparse.cpp.tab.c" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 7105 "asmparse.cpp.tab.c" +#line 6978 "asmparse.cpp.tab.c" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 7111 "asmparse.cpp.tab.c" +#line 6984 "asmparse.cpp.tab.c" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 7117 "asmparse.cpp.tab.c" +#line 6990 "asmparse.cpp.tab.c" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 7123 "asmparse.cpp.tab.c" +#line 6996 "asmparse.cpp.tab.c" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7129 "asmparse.cpp.tab.c" +#line 7002 "asmparse.cpp.tab.c" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7135 "asmparse.cpp.tab.c" +#line 7008 "asmparse.cpp.tab.c" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7141 "asmparse.cpp.tab.c" +#line 7014 "asmparse.cpp.tab.c" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7147 "asmparse.cpp.tab.c" +#line 7020 "asmparse.cpp.tab.c" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7153 "asmparse.cpp.tab.c" +#line 7026 "asmparse.cpp.tab.c" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7159 "asmparse.cpp.tab.c" +#line 7032 "asmparse.cpp.tab.c" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7165 "asmparse.cpp.tab.c" +#line 7038 "asmparse.cpp.tab.c" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7171 "asmparse.cpp.tab.c" +#line 7044 "asmparse.cpp.tab.c" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7177 "asmparse.cpp.tab.c" +#line 7050 "asmparse.cpp.tab.c" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7183 "asmparse.cpp.tab.c" +#line 7056 "asmparse.cpp.tab.c" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7189 "asmparse.cpp.tab.c" +#line 7062 "asmparse.cpp.tab.c" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7195 "asmparse.cpp.tab.c" +#line 7068 "asmparse.cpp.tab.c" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7201 "asmparse.cpp.tab.c" +#line 7074 "asmparse.cpp.tab.c" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7207 "asmparse.cpp.tab.c" +#line 7080 "asmparse.cpp.tab.c" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7213 "asmparse.cpp.tab.c" +#line 7086 "asmparse.cpp.tab.c" break; case 170: if (!yytrial) @@ -7218,43 +7091,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7222 "asmparse.cpp.tab.c" +#line 7095 "asmparse.cpp.tab.c" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7228 "asmparse.cpp.tab.c" +#line 7101 "asmparse.cpp.tab.c" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7234 "asmparse.cpp.tab.c" +#line 7107 "asmparse.cpp.tab.c" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7240 "asmparse.cpp.tab.c" +#line 7113 "asmparse.cpp.tab.c" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7246 "asmparse.cpp.tab.c" +#line 7119 "asmparse.cpp.tab.c" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7252 "asmparse.cpp.tab.c" +#line 7125 "asmparse.cpp.tab.c" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7258 "asmparse.cpp.tab.c" +#line 7131 "asmparse.cpp.tab.c" break; case 182: if (!yytrial) @@ -7264,7 +7137,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7268 "asmparse.cpp.tab.c" +#line 7141 "asmparse.cpp.tab.c" break; case 183: if (!yytrial) @@ -7277,7 +7150,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7281 "asmparse.cpp.tab.c" +#line 7154 "asmparse.cpp.tab.c" break; case 186: if (!yytrial) @@ -7287,7 +7160,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7291 "asmparse.cpp.tab.c" +#line 7164 "asmparse.cpp.tab.c" break; case 187: if (!yytrial) @@ -7298,19 +7171,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7302 "asmparse.cpp.tab.c" +#line 7175 "asmparse.cpp.tab.c" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7308 "asmparse.cpp.tab.c" +#line 7181 "asmparse.cpp.tab.c" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7314 "asmparse.cpp.tab.c" +#line 7187 "asmparse.cpp.tab.c" break; case 190: if (!yytrial) @@ -7319,146 +7192,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7323 "asmparse.cpp.tab.c" +#line 7196 "asmparse.cpp.tab.c" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7330 "asmparse.cpp.tab.c" +#line 7203 "asmparse.cpp.tab.c" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7336 "asmparse.cpp.tab.c" +#line 7209 "asmparse.cpp.tab.c" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7342 "asmparse.cpp.tab.c" +#line 7215 "asmparse.cpp.tab.c" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7348 "asmparse.cpp.tab.c" +#line 7221 "asmparse.cpp.tab.c" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7354 "asmparse.cpp.tab.c" +#line 7227 "asmparse.cpp.tab.c" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7360 "asmparse.cpp.tab.c" +#line 7233 "asmparse.cpp.tab.c" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7366 "asmparse.cpp.tab.c" +#line 7239 "asmparse.cpp.tab.c" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7372 "asmparse.cpp.tab.c" +#line 7245 "asmparse.cpp.tab.c" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7378 "asmparse.cpp.tab.c" +#line 7251 "asmparse.cpp.tab.c" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7384 "asmparse.cpp.tab.c" +#line 7257 "asmparse.cpp.tab.c" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7390 "asmparse.cpp.tab.c" +#line 7263 "asmparse.cpp.tab.c" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7396 "asmparse.cpp.tab.c" +#line 7269 "asmparse.cpp.tab.c" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7402 "asmparse.cpp.tab.c" +#line 7275 "asmparse.cpp.tab.c" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7408 "asmparse.cpp.tab.c" +#line 7281 "asmparse.cpp.tab.c" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7414 "asmparse.cpp.tab.c" +#line 7287 "asmparse.cpp.tab.c" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7420 "asmparse.cpp.tab.c" +#line 7293 "asmparse.cpp.tab.c" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7426 "asmparse.cpp.tab.c" +#line 7299 "asmparse.cpp.tab.c" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7432 "asmparse.cpp.tab.c" +#line 7305 "asmparse.cpp.tab.c" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7438 "asmparse.cpp.tab.c" +#line 7311 "asmparse.cpp.tab.c" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7444 "asmparse.cpp.tab.c" +#line 7317 "asmparse.cpp.tab.c" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7450 "asmparse.cpp.tab.c" +#line 7323 "asmparse.cpp.tab.c" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7456 "asmparse.cpp.tab.c" +#line 7329 "asmparse.cpp.tab.c" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7462 "asmparse.cpp.tab.c" +#line 7335 "asmparse.cpp.tab.c" break; case 214: if (!yytrial) @@ -7479,7 +7352,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7483 "asmparse.cpp.tab.c" +#line 7356 "asmparse.cpp.tab.c" break; case 215: if (!yytrial) @@ -7489,7 +7362,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7493 "asmparse.cpp.tab.c" +#line 7366 "asmparse.cpp.tab.c" break; case 216: if (!yytrial) @@ -7509,7 +7382,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7513 "asmparse.cpp.tab.c" +#line 7386 "asmparse.cpp.tab.c" break; case 217: if (!yytrial) @@ -7518,103 +7391,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7522 "asmparse.cpp.tab.c" +#line 7395 "asmparse.cpp.tab.c" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7528 "asmparse.cpp.tab.c" +#line 7401 "asmparse.cpp.tab.c" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7534 "asmparse.cpp.tab.c" +#line 7407 "asmparse.cpp.tab.c" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7540 "asmparse.cpp.tab.c" +#line 7413 "asmparse.cpp.tab.c" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7546 "asmparse.cpp.tab.c" +#line 7419 "asmparse.cpp.tab.c" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7552 "asmparse.cpp.tab.c" +#line 7425 "asmparse.cpp.tab.c" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7558 "asmparse.cpp.tab.c" +#line 7431 "asmparse.cpp.tab.c" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7564 "asmparse.cpp.tab.c" +#line 7437 "asmparse.cpp.tab.c" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7570 "asmparse.cpp.tab.c" +#line 7443 "asmparse.cpp.tab.c" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7576 "asmparse.cpp.tab.c" +#line 7449 "asmparse.cpp.tab.c" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7582 "asmparse.cpp.tab.c" +#line 7455 "asmparse.cpp.tab.c" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7588 "asmparse.cpp.tab.c" +#line 7461 "asmparse.cpp.tab.c" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7594 "asmparse.cpp.tab.c" +#line 7467 "asmparse.cpp.tab.c" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7600 "asmparse.cpp.tab.c" +#line 7473 "asmparse.cpp.tab.c" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7606 "asmparse.cpp.tab.c" +#line 7479 "asmparse.cpp.tab.c" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7612 "asmparse.cpp.tab.c" +#line 7485 "asmparse.cpp.tab.c" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7618 "asmparse.cpp.tab.c" +#line 7491 "asmparse.cpp.tab.c" break; case 234: if (!yytrial) @@ -7624,7 +7497,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7628 "asmparse.cpp.tab.c" +#line 7501 "asmparse.cpp.tab.c" break; case 235: if (!yytrial) @@ -7632,7 +7505,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7636 "asmparse.cpp.tab.c" +#line 7509 "asmparse.cpp.tab.c" break; case 236: if (!yytrial) @@ -7640,82 +7513,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7644 "asmparse.cpp.tab.c" +#line 7517 "asmparse.cpp.tab.c" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7651 "asmparse.cpp.tab.c" +#line 7524 "asmparse.cpp.tab.c" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7658 "asmparse.cpp.tab.c" +#line 7531 "asmparse.cpp.tab.c" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7665 "asmparse.cpp.tab.c" +#line 7538 "asmparse.cpp.tab.c" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7671 "asmparse.cpp.tab.c" +#line 7544 "asmparse.cpp.tab.c" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7677 "asmparse.cpp.tab.c" +#line 7550 "asmparse.cpp.tab.c" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7683 "asmparse.cpp.tab.c" +#line 7556 "asmparse.cpp.tab.c" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7689 "asmparse.cpp.tab.c" +#line 7562 "asmparse.cpp.tab.c" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7695 "asmparse.cpp.tab.c" +#line 7568 "asmparse.cpp.tab.c" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7701 "asmparse.cpp.tab.c" +#line 7574 "asmparse.cpp.tab.c" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7707 "asmparse.cpp.tab.c" +#line 7580 "asmparse.cpp.tab.c" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7713 "asmparse.cpp.tab.c" +#line 7586 "asmparse.cpp.tab.c" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7719 "asmparse.cpp.tab.c" +#line 7592 "asmparse.cpp.tab.c" break; case 255: if (!yytrial) @@ -7723,43 +7596,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7727 "asmparse.cpp.tab.c" +#line 7600 "asmparse.cpp.tab.c" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7733 "asmparse.cpp.tab.c" +#line 7606 "asmparse.cpp.tab.c" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7739 "asmparse.cpp.tab.c" +#line 7612 "asmparse.cpp.tab.c" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7745 "asmparse.cpp.tab.c" +#line 7618 "asmparse.cpp.tab.c" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7751 "asmparse.cpp.tab.c" +#line 7624 "asmparse.cpp.tab.c" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7757 "asmparse.cpp.tab.c" +#line 7630 "asmparse.cpp.tab.c" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7763 "asmparse.cpp.tab.c" +#line 7636 "asmparse.cpp.tab.c" break; case 268: if (!yytrial) @@ -7768,37 +7641,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7772 "asmparse.cpp.tab.c" +#line 7645 "asmparse.cpp.tab.c" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7778 "asmparse.cpp.tab.c" +#line 7651 "asmparse.cpp.tab.c" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7784 "asmparse.cpp.tab.c" +#line 7657 "asmparse.cpp.tab.c" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7790 "asmparse.cpp.tab.c" +#line 7663 "asmparse.cpp.tab.c" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7796 "asmparse.cpp.tab.c" +#line 7669 "asmparse.cpp.tab.c" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7802 "asmparse.cpp.tab.c" +#line 7675 "asmparse.cpp.tab.c" break; case 274: if (!yytrial) @@ -7816,420 +7689,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7820 "asmparse.cpp.tab.c" +#line 7693 "asmparse.cpp.tab.c" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7826 "asmparse.cpp.tab.c" +#line 7699 "asmparse.cpp.tab.c" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7832 "asmparse.cpp.tab.c" +#line 7705 "asmparse.cpp.tab.c" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7838 "asmparse.cpp.tab.c" +#line 7711 "asmparse.cpp.tab.c" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7844 "asmparse.cpp.tab.c" +#line 7717 "asmparse.cpp.tab.c" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7850 "asmparse.cpp.tab.c" +#line 7723 "asmparse.cpp.tab.c" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7856 "asmparse.cpp.tab.c" +#line 7729 "asmparse.cpp.tab.c" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7862 "asmparse.cpp.tab.c" +#line 7735 "asmparse.cpp.tab.c" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7868 "asmparse.cpp.tab.c" +#line 7741 "asmparse.cpp.tab.c" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7874 "asmparse.cpp.tab.c" +#line 7747 "asmparse.cpp.tab.c" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7880 "asmparse.cpp.tab.c" +#line 7753 "asmparse.cpp.tab.c" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7886 "asmparse.cpp.tab.c" +#line 7759 "asmparse.cpp.tab.c" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7892 "asmparse.cpp.tab.c" +#line 7765 "asmparse.cpp.tab.c" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7898 "asmparse.cpp.tab.c" +#line 7771 "asmparse.cpp.tab.c" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7904 "asmparse.cpp.tab.c" +#line 7777 "asmparse.cpp.tab.c" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7910 "asmparse.cpp.tab.c" +#line 7783 "asmparse.cpp.tab.c" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7916 "asmparse.cpp.tab.c" +#line 7789 "asmparse.cpp.tab.c" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 7922 "asmparse.cpp.tab.c" +#line 7795 "asmparse.cpp.tab.c" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7928 "asmparse.cpp.tab.c" +#line 7801 "asmparse.cpp.tab.c" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7934 "asmparse.cpp.tab.c" +#line 7807 "asmparse.cpp.tab.c" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7940 "asmparse.cpp.tab.c" +#line 7813 "asmparse.cpp.tab.c" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7947 "asmparse.cpp.tab.c" +#line 7820 "asmparse.cpp.tab.c" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7954 "asmparse.cpp.tab.c" +#line 7827 "asmparse.cpp.tab.c" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7961 "asmparse.cpp.tab.c" +#line 7834 "asmparse.cpp.tab.c" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7967 "asmparse.cpp.tab.c" +#line 7840 "asmparse.cpp.tab.c" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7973 "asmparse.cpp.tab.c" +#line 7846 "asmparse.cpp.tab.c" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7979 "asmparse.cpp.tab.c" +#line 7852 "asmparse.cpp.tab.c" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7985 "asmparse.cpp.tab.c" +#line 7858 "asmparse.cpp.tab.c" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7991 "asmparse.cpp.tab.c" +#line 7864 "asmparse.cpp.tab.c" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7997 "asmparse.cpp.tab.c" +#line 7870 "asmparse.cpp.tab.c" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 8003 "asmparse.cpp.tab.c" +#line 7876 "asmparse.cpp.tab.c" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 8009 "asmparse.cpp.tab.c" +#line 7882 "asmparse.cpp.tab.c" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 8015 "asmparse.cpp.tab.c" +#line 7888 "asmparse.cpp.tab.c" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 8021 "asmparse.cpp.tab.c" +#line 7894 "asmparse.cpp.tab.c" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 8027 "asmparse.cpp.tab.c" +#line 7900 "asmparse.cpp.tab.c" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 8033 "asmparse.cpp.tab.c" +#line 7906 "asmparse.cpp.tab.c" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 8039 "asmparse.cpp.tab.c" +#line 7912 "asmparse.cpp.tab.c" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 8045 "asmparse.cpp.tab.c" +#line 7918 "asmparse.cpp.tab.c" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 8051 "asmparse.cpp.tab.c" +#line 7924 "asmparse.cpp.tab.c" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 8057 "asmparse.cpp.tab.c" +#line 7930 "asmparse.cpp.tab.c" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 8063 "asmparse.cpp.tab.c" +#line 7936 "asmparse.cpp.tab.c" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 8069 "asmparse.cpp.tab.c" +#line 7942 "asmparse.cpp.tab.c" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 8075 "asmparse.cpp.tab.c" +#line 7948 "asmparse.cpp.tab.c" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 8081 "asmparse.cpp.tab.c" +#line 7954 "asmparse.cpp.tab.c" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 8087 "asmparse.cpp.tab.c" +#line 7960 "asmparse.cpp.tab.c" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 8093 "asmparse.cpp.tab.c" +#line 7966 "asmparse.cpp.tab.c" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 8099 "asmparse.cpp.tab.c" +#line 7972 "asmparse.cpp.tab.c" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 8105 "asmparse.cpp.tab.c" +#line 7978 "asmparse.cpp.tab.c" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 8111 "asmparse.cpp.tab.c" +#line 7984 "asmparse.cpp.tab.c" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 8117 "asmparse.cpp.tab.c" +#line 7990 "asmparse.cpp.tab.c" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 8123 "asmparse.cpp.tab.c" +#line 7996 "asmparse.cpp.tab.c" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8129 "asmparse.cpp.tab.c" +#line 8002 "asmparse.cpp.tab.c" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8135 "asmparse.cpp.tab.c" +#line 8008 "asmparse.cpp.tab.c" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8141 "asmparse.cpp.tab.c" +#line 8014 "asmparse.cpp.tab.c" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8147 "asmparse.cpp.tab.c" +#line 8020 "asmparse.cpp.tab.c" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8153 "asmparse.cpp.tab.c" +#line 8026 "asmparse.cpp.tab.c" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8159 "asmparse.cpp.tab.c" +#line 8032 "asmparse.cpp.tab.c" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8165 "asmparse.cpp.tab.c" +#line 8038 "asmparse.cpp.tab.c" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8171 "asmparse.cpp.tab.c" +#line 8044 "asmparse.cpp.tab.c" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8177 "asmparse.cpp.tab.c" +#line 8050 "asmparse.cpp.tab.c" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8183 "asmparse.cpp.tab.c" +#line 8056 "asmparse.cpp.tab.c" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8189 "asmparse.cpp.tab.c" +#line 8062 "asmparse.cpp.tab.c" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8195 "asmparse.cpp.tab.c" +#line 8068 "asmparse.cpp.tab.c" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8201 "asmparse.cpp.tab.c" +#line 8074 "asmparse.cpp.tab.c" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8208 "asmparse.cpp.tab.c" +#line 8081 "asmparse.cpp.tab.c" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8214 "asmparse.cpp.tab.c" +#line 8087 "asmparse.cpp.tab.c" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8220 "asmparse.cpp.tab.c" +#line 8093 "asmparse.cpp.tab.c" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8226 "asmparse.cpp.tab.c" +#line 8099 "asmparse.cpp.tab.c" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8233 "asmparse.cpp.tab.c" +#line 8106 "asmparse.cpp.tab.c" break; case 345: if (!yytrial) @@ -8237,25 +8110,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8241 "asmparse.cpp.tab.c" +#line 8114 "asmparse.cpp.tab.c" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8247 "asmparse.cpp.tab.c" +#line 8120 "asmparse.cpp.tab.c" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8253 "asmparse.cpp.tab.c" +#line 8126 "asmparse.cpp.tab.c" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8259 "asmparse.cpp.tab.c" +#line 8132 "asmparse.cpp.tab.c" break; case 356: if (!yytrial) @@ -8270,7 +8143,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8274 "asmparse.cpp.tab.c" +#line 8147 "asmparse.cpp.tab.c" break; case 357: if (!yytrial) @@ -8285,20 +8158,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8289 "asmparse.cpp.tab.c" +#line 8162 "asmparse.cpp.tab.c" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8296 "asmparse.cpp.tab.c" +#line 8169 "asmparse.cpp.tab.c" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8302 "asmparse.cpp.tab.c" +#line 8175 "asmparse.cpp.tab.c" break; case 360: if (!yytrial) @@ -8309,7 +8182,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8313 "asmparse.cpp.tab.c" +#line 8186 "asmparse.cpp.tab.c" break; case 362: if (!yytrial) @@ -8319,7 +8192,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8323 "asmparse.cpp.tab.c" +#line 8196 "asmparse.cpp.tab.c" break; case 363: if (!yytrial) @@ -8330,19 +8203,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8334 "asmparse.cpp.tab.c" +#line 8207 "asmparse.cpp.tab.c" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8340 "asmparse.cpp.tab.c" +#line 8213 "asmparse.cpp.tab.c" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8346 "asmparse.cpp.tab.c" +#line 8219 "asmparse.cpp.tab.c" break; case 366: if (!yytrial) @@ -8365,96 +8238,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8369 "asmparse.cpp.tab.c" +#line 8242 "asmparse.cpp.tab.c" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8375 "asmparse.cpp.tab.c" +#line 8248 "asmparse.cpp.tab.c" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8381 "asmparse.cpp.tab.c" +#line 8254 "asmparse.cpp.tab.c" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8387 "asmparse.cpp.tab.c" +#line 8260 "asmparse.cpp.tab.c" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8393 "asmparse.cpp.tab.c" +#line 8266 "asmparse.cpp.tab.c" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8400 "asmparse.cpp.tab.c" +#line 8273 "asmparse.cpp.tab.c" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8407 "asmparse.cpp.tab.c" +#line 8280 "asmparse.cpp.tab.c" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8413 "asmparse.cpp.tab.c" +#line 8286 "asmparse.cpp.tab.c" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8419 "asmparse.cpp.tab.c" +#line 8292 "asmparse.cpp.tab.c" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8425 "asmparse.cpp.tab.c" +#line 8298 "asmparse.cpp.tab.c" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8431 "asmparse.cpp.tab.c" +#line 8304 "asmparse.cpp.tab.c" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8437 "asmparse.cpp.tab.c" +#line 8310 "asmparse.cpp.tab.c" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8444 "asmparse.cpp.tab.c" +#line 8317 "asmparse.cpp.tab.c" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8451 "asmparse.cpp.tab.c" +#line 8324 "asmparse.cpp.tab.c" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8458 "asmparse.cpp.tab.c" +#line 8331 "asmparse.cpp.tab.c" break; case 384: if (!yytrial) @@ -8462,70 +8335,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8466 "asmparse.cpp.tab.c" +#line 8339 "asmparse.cpp.tab.c" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8473 "asmparse.cpp.tab.c" +#line 8346 "asmparse.cpp.tab.c" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8480 "asmparse.cpp.tab.c" +#line 8353 "asmparse.cpp.tab.c" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8486 "asmparse.cpp.tab.c" +#line 8359 "asmparse.cpp.tab.c" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8492 "asmparse.cpp.tab.c" +#line 8365 "asmparse.cpp.tab.c" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8499 "asmparse.cpp.tab.c" +#line 8372 "asmparse.cpp.tab.c" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8505 "asmparse.cpp.tab.c" +#line 8378 "asmparse.cpp.tab.c" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8511 "asmparse.cpp.tab.c" +#line 8384 "asmparse.cpp.tab.c" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8517 "asmparse.cpp.tab.c" +#line 8390 "asmparse.cpp.tab.c" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8523 "asmparse.cpp.tab.c" +#line 8396 "asmparse.cpp.tab.c" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8529 "asmparse.cpp.tab.c" +#line 8402 "asmparse.cpp.tab.c" break; case 401: if (!yytrial) @@ -8533,25 +8406,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8537 "asmparse.cpp.tab.c" +#line 8410 "asmparse.cpp.tab.c" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8543 "asmparse.cpp.tab.c" +#line 8416 "asmparse.cpp.tab.c" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8549 "asmparse.cpp.tab.c" +#line 8422 "asmparse.cpp.tab.c" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8555 "asmparse.cpp.tab.c" +#line 8428 "asmparse.cpp.tab.c" break; case 405: if (!yytrial) @@ -8562,7 +8435,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8566 "asmparse.cpp.tab.c" +#line 8439 "asmparse.cpp.tab.c" break; case 406: if (!yytrial) @@ -8573,7 +8446,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8577 "asmparse.cpp.tab.c" +#line 8450 "asmparse.cpp.tab.c" break; case 407: if (!yytrial) @@ -8584,7 +8457,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8588 "asmparse.cpp.tab.c" +#line 8461 "asmparse.cpp.tab.c" break; case 408: if (!yytrial) @@ -8595,7 +8468,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8599 "asmparse.cpp.tab.c" +#line 8472 "asmparse.cpp.tab.c" break; case 409: if (!yytrial) @@ -8607,7 +8480,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8611 "asmparse.cpp.tab.c" +#line 8484 "asmparse.cpp.tab.c" break; case 410: if (!yytrial) @@ -8619,43 +8492,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8623 "asmparse.cpp.tab.c" +#line 8496 "asmparse.cpp.tab.c" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8629 "asmparse.cpp.tab.c" +#line 8502 "asmparse.cpp.tab.c" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8635 "asmparse.cpp.tab.c" +#line 8508 "asmparse.cpp.tab.c" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8641 "asmparse.cpp.tab.c" +#line 8514 "asmparse.cpp.tab.c" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8647 "asmparse.cpp.tab.c" +#line 8520 "asmparse.cpp.tab.c" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8653 "asmparse.cpp.tab.c" +#line 8526 "asmparse.cpp.tab.c" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8659 "asmparse.cpp.tab.c" +#line 8532 "asmparse.cpp.tab.c" break; case 417: if (!yytrial) @@ -8663,227 +8536,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8667 "asmparse.cpp.tab.c" +#line 8540 "asmparse.cpp.tab.c" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8674 "asmparse.cpp.tab.c" +#line 8547 "asmparse.cpp.tab.c" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8681 "asmparse.cpp.tab.c" +#line 8554 "asmparse.cpp.tab.c" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8688 "asmparse.cpp.tab.c" +#line 8561 "asmparse.cpp.tab.c" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8695 "asmparse.cpp.tab.c" +#line 8568 "asmparse.cpp.tab.c" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8702 "asmparse.cpp.tab.c" +#line 8575 "asmparse.cpp.tab.c" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8709 "asmparse.cpp.tab.c" +#line 8582 "asmparse.cpp.tab.c" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8716 "asmparse.cpp.tab.c" +#line 8589 "asmparse.cpp.tab.c" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8723 "asmparse.cpp.tab.c" +#line 8596 "asmparse.cpp.tab.c" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8730 "asmparse.cpp.tab.c" +#line 8603 "asmparse.cpp.tab.c" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8737 "asmparse.cpp.tab.c" +#line 8610 "asmparse.cpp.tab.c" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8744 "asmparse.cpp.tab.c" +#line 8617 "asmparse.cpp.tab.c" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8751 "asmparse.cpp.tab.c" +#line 8624 "asmparse.cpp.tab.c" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8758 "asmparse.cpp.tab.c" +#line 8631 "asmparse.cpp.tab.c" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8765 "asmparse.cpp.tab.c" +#line 8638 "asmparse.cpp.tab.c" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8772 "asmparse.cpp.tab.c" +#line 8645 "asmparse.cpp.tab.c" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8779 "asmparse.cpp.tab.c" +#line 8652 "asmparse.cpp.tab.c" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8786 "asmparse.cpp.tab.c" +#line 8659 "asmparse.cpp.tab.c" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8793 "asmparse.cpp.tab.c" +#line 8666 "asmparse.cpp.tab.c" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8799 "asmparse.cpp.tab.c" +#line 8672 "asmparse.cpp.tab.c" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8805 "asmparse.cpp.tab.c" +#line 8678 "asmparse.cpp.tab.c" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8811 "asmparse.cpp.tab.c" +#line 8684 "asmparse.cpp.tab.c" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8817 "asmparse.cpp.tab.c" +#line 8690 "asmparse.cpp.tab.c" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8823 "asmparse.cpp.tab.c" +#line 8696 "asmparse.cpp.tab.c" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8829 "asmparse.cpp.tab.c" +#line 8702 "asmparse.cpp.tab.c" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8835 "asmparse.cpp.tab.c" +#line 8708 "asmparse.cpp.tab.c" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8842 "asmparse.cpp.tab.c" +#line 8715 "asmparse.cpp.tab.c" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8848 "asmparse.cpp.tab.c" +#line 8721 "asmparse.cpp.tab.c" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8854 "asmparse.cpp.tab.c" +#line 8727 "asmparse.cpp.tab.c" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8861 "asmparse.cpp.tab.c" +#line 8734 "asmparse.cpp.tab.c" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8868 "asmparse.cpp.tab.c" +#line 8741 "asmparse.cpp.tab.c" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8875 "asmparse.cpp.tab.c" +#line 8748 "asmparse.cpp.tab.c" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8881 "asmparse.cpp.tab.c" +#line 8754 "asmparse.cpp.tab.c" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8887 "asmparse.cpp.tab.c" +#line 8760 "asmparse.cpp.tab.c" break; case 451: if (!yytrial) @@ -8891,7 +8764,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8895 "asmparse.cpp.tab.c" +#line 8768 "asmparse.cpp.tab.c" break; case 452: if (!yytrial) @@ -8899,7 +8772,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8903 "asmparse.cpp.tab.c" +#line 8776 "asmparse.cpp.tab.c" break; case 453: if (!yytrial) @@ -8907,7 +8780,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8911 "asmparse.cpp.tab.c" +#line 8784 "asmparse.cpp.tab.c" break; case 454: if (!yytrial) @@ -8915,7 +8788,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8919 "asmparse.cpp.tab.c" +#line 8792 "asmparse.cpp.tab.c" break; case 455: if (!yytrial) @@ -8923,7 +8796,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8927 "asmparse.cpp.tab.c" +#line 8800 "asmparse.cpp.tab.c" break; case 456: if (!yytrial) @@ -8931,7 +8804,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8935 "asmparse.cpp.tab.c" +#line 8808 "asmparse.cpp.tab.c" break; case 457: if (!yytrial) @@ -8939,7 +8812,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8943 "asmparse.cpp.tab.c" +#line 8816 "asmparse.cpp.tab.c" break; case 458: if (!yytrial) @@ -8947,7 +8820,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8951 "asmparse.cpp.tab.c" +#line 8824 "asmparse.cpp.tab.c" break; case 459: if (!yytrial) @@ -8955,7 +8828,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8959 "asmparse.cpp.tab.c" +#line 8832 "asmparse.cpp.tab.c" break; case 460: if (!yytrial) @@ -8963,7 +8836,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8967 "asmparse.cpp.tab.c" +#line 8840 "asmparse.cpp.tab.c" break; case 461: if (!yytrial) @@ -8971,7 +8844,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8975 "asmparse.cpp.tab.c" +#line 8848 "asmparse.cpp.tab.c" break; case 462: if (!yytrial) @@ -8979,7 +8852,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8983 "asmparse.cpp.tab.c" +#line 8856 "asmparse.cpp.tab.c" break; case 463: if (!yytrial) @@ -8987,7 +8860,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8991 "asmparse.cpp.tab.c" +#line 8864 "asmparse.cpp.tab.c" break; case 464: if (!yytrial) @@ -8995,7 +8868,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8999 "asmparse.cpp.tab.c" +#line 8872 "asmparse.cpp.tab.c" break; case 465: if (!yytrial) @@ -9003,7 +8876,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9007 "asmparse.cpp.tab.c" +#line 8880 "asmparse.cpp.tab.c" break; case 466: if (!yytrial) @@ -9011,7 +8884,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9015 "asmparse.cpp.tab.c" +#line 8888 "asmparse.cpp.tab.c" break; case 467: if (!yytrial) @@ -9019,7 +8892,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9023 "asmparse.cpp.tab.c" +#line 8896 "asmparse.cpp.tab.c" break; case 468: if (!yytrial) @@ -9027,7 +8900,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9031 "asmparse.cpp.tab.c" +#line 8904 "asmparse.cpp.tab.c" break; case 469: if (!yytrial) @@ -9035,166 +8908,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9039 "asmparse.cpp.tab.c" +#line 8912 "asmparse.cpp.tab.c" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9045 "asmparse.cpp.tab.c" +#line 8918 "asmparse.cpp.tab.c" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 9052 "asmparse.cpp.tab.c" +#line 8925 "asmparse.cpp.tab.c" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 9059 "asmparse.cpp.tab.c" +#line 8932 "asmparse.cpp.tab.c" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9065 "asmparse.cpp.tab.c" +#line 8938 "asmparse.cpp.tab.c" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 9072 "asmparse.cpp.tab.c" +#line 8945 "asmparse.cpp.tab.c" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9079 "asmparse.cpp.tab.c" +#line 8952 "asmparse.cpp.tab.c" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9085 "asmparse.cpp.tab.c" +#line 8958 "asmparse.cpp.tab.c" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 9092 "asmparse.cpp.tab.c" +#line 8965 "asmparse.cpp.tab.c" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9098 "asmparse.cpp.tab.c" +#line 8971 "asmparse.cpp.tab.c" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 9104 "asmparse.cpp.tab.c" +#line 8977 "asmparse.cpp.tab.c" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9110 "asmparse.cpp.tab.c" +#line 8983 "asmparse.cpp.tab.c" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 9116 "asmparse.cpp.tab.c" +#line 8989 "asmparse.cpp.tab.c" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9122 "asmparse.cpp.tab.c" +#line 8995 "asmparse.cpp.tab.c" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9128 "asmparse.cpp.tab.c" +#line 9001 "asmparse.cpp.tab.c" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9134 "asmparse.cpp.tab.c" +#line 9007 "asmparse.cpp.tab.c" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9141 "asmparse.cpp.tab.c" +#line 9014 "asmparse.cpp.tab.c" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9147 "asmparse.cpp.tab.c" +#line 9020 "asmparse.cpp.tab.c" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9153 "asmparse.cpp.tab.c" +#line 9026 "asmparse.cpp.tab.c" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9160 "asmparse.cpp.tab.c" +#line 9033 "asmparse.cpp.tab.c" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9166 "asmparse.cpp.tab.c" +#line 9039 "asmparse.cpp.tab.c" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9172 "asmparse.cpp.tab.c" +#line 9045 "asmparse.cpp.tab.c" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9179 "asmparse.cpp.tab.c" +#line 9052 "asmparse.cpp.tab.c" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9186 "asmparse.cpp.tab.c" +#line 9059 "asmparse.cpp.tab.c" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9192 "asmparse.cpp.tab.c" +#line 9065 "asmparse.cpp.tab.c" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9198 "asmparse.cpp.tab.c" +#line 9071 "asmparse.cpp.tab.c" break; case 495: if (!yytrial) @@ -9203,43 +9076,43 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9207 "asmparse.cpp.tab.c" +#line 9080 "asmparse.cpp.tab.c" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9213 "asmparse.cpp.tab.c" +#line 9086 "asmparse.cpp.tab.c" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9219 "asmparse.cpp.tab.c" +#line 9092 "asmparse.cpp.tab.c" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9225 "asmparse.cpp.tab.c" +#line 9098 "asmparse.cpp.tab.c" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9231 "asmparse.cpp.tab.c" +#line 9104 "asmparse.cpp.tab.c" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9237 "asmparse.cpp.tab.c" +#line 9110 "asmparse.cpp.tab.c" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9243 "asmparse.cpp.tab.c" +#line 9116 "asmparse.cpp.tab.c" break; case 502: if (!yytrial) @@ -9250,91 +9123,91 @@ case 502: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9254 "asmparse.cpp.tab.c" +#line 9127 "asmparse.cpp.tab.c" break; case 503: if (!yytrial) #line 1354 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9260 "asmparse.cpp.tab.c" +#line 9133 "asmparse.cpp.tab.c" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9266 "asmparse.cpp.tab.c" +#line 9139 "asmparse.cpp.tab.c" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9272 "asmparse.cpp.tab.c" +#line 9145 "asmparse.cpp.tab.c" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9278 "asmparse.cpp.tab.c" +#line 9151 "asmparse.cpp.tab.c" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9284 "asmparse.cpp.tab.c" +#line 9157 "asmparse.cpp.tab.c" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9290 "asmparse.cpp.tab.c" +#line 9163 "asmparse.cpp.tab.c" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9296 "asmparse.cpp.tab.c" +#line 9169 "asmparse.cpp.tab.c" break; case 510: if (!yytrial) #line 1376 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9302 "asmparse.cpp.tab.c" +#line 9175 "asmparse.cpp.tab.c" break; case 511: if (!yytrial) #line 1377 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9308 "asmparse.cpp.tab.c" +#line 9181 "asmparse.cpp.tab.c" break; case 512: if (!yytrial) #line 1378 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9314 "asmparse.cpp.tab.c" +#line 9187 "asmparse.cpp.tab.c" break; case 513: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9320 "asmparse.cpp.tab.c" +#line 9193 "asmparse.cpp.tab.c" break; case 514: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9326 "asmparse.cpp.tab.c" +#line 9199 "asmparse.cpp.tab.c" break; case 515: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9332 "asmparse.cpp.tab.c" +#line 9205 "asmparse.cpp.tab.c" break; case 516: if (!yytrial) #line 1382 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9338 "asmparse.cpp.tab.c" +#line 9211 "asmparse.cpp.tab.c" break; case 517: if (!yytrial) @@ -9348,19 +9221,19 @@ case 517: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9352 "asmparse.cpp.tab.c" +#line 9225 "asmparse.cpp.tab.c" break; case 518: if (!yytrial) #line 1392 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9358 "asmparse.cpp.tab.c" +#line 9231 "asmparse.cpp.tab.c" break; case 519: if (!yytrial) #line 1393 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9364 "asmparse.cpp.tab.c" +#line 9237 "asmparse.cpp.tab.c" break; case 520: if (!yytrial) @@ -9371,7 +9244,7 @@ case 520: PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9375 "asmparse.cpp.tab.c" +#line 9248 "asmparse.cpp.tab.c" break; case 521: if (!yytrial) @@ -9383,7 +9256,7 @@ case 521: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9387 "asmparse.cpp.tab.c" +#line 9260 "asmparse.cpp.tab.c" break; case 522: if (!yytrial) @@ -9395,7 +9268,7 @@ case 522: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9399 "asmparse.cpp.tab.c" +#line 9272 "asmparse.cpp.tab.c" break; case 523: if (!yytrial) @@ -9406,7 +9279,7 @@ case 523: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9410 "asmparse.cpp.tab.c" +#line 9283 "asmparse.cpp.tab.c" break; case 524: if (!yytrial) @@ -9417,7 +9290,7 @@ case 524: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9421 "asmparse.cpp.tab.c" +#line 9294 "asmparse.cpp.tab.c" break; case 525: if (!yytrial) @@ -9428,7 +9301,7 @@ case 525: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9432 "asmparse.cpp.tab.c" +#line 9305 "asmparse.cpp.tab.c" break; case 526: if (!yytrial) @@ -9437,25 +9310,25 @@ case 526: PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9441 "asmparse.cpp.tab.c" +#line 9314 "asmparse.cpp.tab.c" break; case 527: if (!yytrial) #line 1439 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9447 "asmparse.cpp.tab.c" +#line 9320 "asmparse.cpp.tab.c" break; case 528: if (!yytrial) #line 1441 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9453 "asmparse.cpp.tab.c" +#line 9326 "asmparse.cpp.tab.c" break; case 529: if (!yytrial) #line 1443 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9459 "asmparse.cpp.tab.c" +#line 9332 "asmparse.cpp.tab.c" break; case 530: if (!yytrial) @@ -9463,7 +9336,7 @@ case 530: { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9467 "asmparse.cpp.tab.c" +#line 9340 "asmparse.cpp.tab.c" break; case 531: if (!yytrial) @@ -9473,163 +9346,163 @@ case 531: PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9477 "asmparse.cpp.tab.c" +#line 9350 "asmparse.cpp.tab.c" break; case 532: if (!yytrial) #line 1454 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9483 "asmparse.cpp.tab.c" +#line 9356 "asmparse.cpp.tab.c" break; case 533: if (!yytrial) #line 1457 "asmparse.y" { yyval.labels = 0; } -#line 9489 "asmparse.cpp.tab.c" +#line 9362 "asmparse.cpp.tab.c" break; case 534: if (!yytrial) #line 1458 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9495 "asmparse.cpp.tab.c" +#line 9368 "asmparse.cpp.tab.c" break; case 535: if (!yytrial) #line 1459 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9501 "asmparse.cpp.tab.c" +#line 9374 "asmparse.cpp.tab.c" break; case 536: if (!yytrial) #line 1460 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9507 "asmparse.cpp.tab.c" +#line 9380 "asmparse.cpp.tab.c" break; case 537: if (!yytrial) #line 1461 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9513 "asmparse.cpp.tab.c" +#line 9386 "asmparse.cpp.tab.c" break; case 538: if (!yytrial) #line 1465 "asmparse.y" { yyval.binstr = NULL; } -#line 9519 "asmparse.cpp.tab.c" +#line 9392 "asmparse.cpp.tab.c" break; case 539: if (!yytrial) #line 1466 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9525 "asmparse.cpp.tab.c" +#line 9398 "asmparse.cpp.tab.c" break; case 540: if (!yytrial) #line 1469 "asmparse.y" { yyval.binstr = NULL; } -#line 9531 "asmparse.cpp.tab.c" +#line 9404 "asmparse.cpp.tab.c" break; case 541: if (!yytrial) #line 1470 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9537 "asmparse.cpp.tab.c" +#line 9410 "asmparse.cpp.tab.c" break; case 542: if (!yytrial) #line 1473 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9543 "asmparse.cpp.tab.c" +#line 9416 "asmparse.cpp.tab.c" break; case 543: if (!yytrial) #line 1474 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9549 "asmparse.cpp.tab.c" +#line 9422 "asmparse.cpp.tab.c" break; case 544: if (!yytrial) #line 1478 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9555 "asmparse.cpp.tab.c" +#line 9428 "asmparse.cpp.tab.c" break; case 545: if (!yytrial) #line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9561 "asmparse.cpp.tab.c" +#line 9434 "asmparse.cpp.tab.c" break; case 546: if (!yytrial) #line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9567 "asmparse.cpp.tab.c" +#line 9440 "asmparse.cpp.tab.c" break; case 547: if (!yytrial) #line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9573 "asmparse.cpp.tab.c" +#line 9446 "asmparse.cpp.tab.c" break; case 548: if (!yytrial) #line 1486 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9579 "asmparse.cpp.tab.c" +#line 9452 "asmparse.cpp.tab.c" break; case 549: if (!yytrial) #line 1487 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9585 "asmparse.cpp.tab.c" +#line 9458 "asmparse.cpp.tab.c" break; case 550: if (!yytrial) #line 1488 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9591 "asmparse.cpp.tab.c" +#line 9464 "asmparse.cpp.tab.c" break; case 551: if (!yytrial) #line 1492 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9597 "asmparse.cpp.tab.c" +#line 9470 "asmparse.cpp.tab.c" break; case 552: if (!yytrial) #line 1493 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9603 "asmparse.cpp.tab.c" +#line 9476 "asmparse.cpp.tab.c" break; case 553: if (!yytrial) #line 1494 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9609 "asmparse.cpp.tab.c" +#line 9482 "asmparse.cpp.tab.c" break; case 554: if (!yytrial) #line 1495 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9615 "asmparse.cpp.tab.c" +#line 9488 "asmparse.cpp.tab.c" break; case 555: if (!yytrial) #line 1496 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9621 "asmparse.cpp.tab.c" +#line 9494 "asmparse.cpp.tab.c" break; case 556: if (!yytrial) #line 1497 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9627 "asmparse.cpp.tab.c" +#line 9500 "asmparse.cpp.tab.c" break; case 557: if (!yytrial) #line 1498 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9633 "asmparse.cpp.tab.c" +#line 9506 "asmparse.cpp.tab.c" break; case 558: if (!yytrial) @@ -9637,7 +9510,7 @@ case 558: { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9641 "asmparse.cpp.tab.c" +#line 9514 "asmparse.cpp.tab.c" break; case 559: if (!yytrial) @@ -9648,7 +9521,7 @@ case 559: PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9652 "asmparse.cpp.tab.c" +#line 9525 "asmparse.cpp.tab.c" break; case 560: if (!yytrial) @@ -9658,49 +9531,49 @@ case 560: else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9662 "asmparse.cpp.tab.c" +#line 9535 "asmparse.cpp.tab.c" break; case 561: if (!yytrial) #line 1515 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9668 "asmparse.cpp.tab.c" +#line 9541 "asmparse.cpp.tab.c" break; case 562: if (!yytrial) #line 1516 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9674 "asmparse.cpp.tab.c" +#line 9547 "asmparse.cpp.tab.c" break; case 563: if (!yytrial) #line 1519 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9680 "asmparse.cpp.tab.c" +#line 9553 "asmparse.cpp.tab.c" break; case 564: if (!yytrial) #line 1520 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9686 "asmparse.cpp.tab.c" +#line 9559 "asmparse.cpp.tab.c" break; case 565: if (!yytrial) #line 1521 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9692 "asmparse.cpp.tab.c" +#line 9565 "asmparse.cpp.tab.c" break; case 566: if (!yytrial) #line 1522 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9698 "asmparse.cpp.tab.c" +#line 9571 "asmparse.cpp.tab.c" break; case 567: if (!yytrial) #line 1526 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9704 "asmparse.cpp.tab.c" +#line 9577 "asmparse.cpp.tab.c" break; case 568: if (!yytrial) @@ -9711,7 +9584,7 @@ case 568: corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9715 "asmparse.cpp.tab.c" +#line 9588 "asmparse.cpp.tab.c" break; case 569: if (!yytrial) @@ -9721,158 +9594,158 @@ case 569: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9725 "asmparse.cpp.tab.c" +#line 9598 "asmparse.cpp.tab.c" break; case 570: if (!yytrial) #line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9732 "asmparse.cpp.tab.c" +#line 9605 "asmparse.cpp.tab.c" break; case 571: if (!yytrial) #line 1543 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9739 "asmparse.cpp.tab.c" +#line 9612 "asmparse.cpp.tab.c" break; case 572: if (!yytrial) #line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9746 "asmparse.cpp.tab.c" +#line 9619 "asmparse.cpp.tab.c" break; case 573: if (!yytrial) #line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9752 "asmparse.cpp.tab.c" +#line 9625 "asmparse.cpp.tab.c" break; case 574: if (!yytrial) #line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9759 "asmparse.cpp.tab.c" +#line 9632 "asmparse.cpp.tab.c" break; case 575: if (!yytrial) #line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9766 "asmparse.cpp.tab.c" +#line 9639 "asmparse.cpp.tab.c" break; case 576: if (!yytrial) #line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9772 "asmparse.cpp.tab.c" +#line 9645 "asmparse.cpp.tab.c" break; case 577: if (!yytrial) #line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9778 "asmparse.cpp.tab.c" +#line 9651 "asmparse.cpp.tab.c" break; case 578: if (!yytrial) #line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9784 "asmparse.cpp.tab.c" +#line 9657 "asmparse.cpp.tab.c" break; case 579: if (!yytrial) #line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9790 "asmparse.cpp.tab.c" +#line 9663 "asmparse.cpp.tab.c" break; case 580: if (!yytrial) #line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9796 "asmparse.cpp.tab.c" +#line 9669 "asmparse.cpp.tab.c" break; case 581: if (!yytrial) #line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9802 "asmparse.cpp.tab.c" +#line 9675 "asmparse.cpp.tab.c" break; case 582: if (!yytrial) #line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9808 "asmparse.cpp.tab.c" +#line 9681 "asmparse.cpp.tab.c" break; case 583: if (!yytrial) #line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9814 "asmparse.cpp.tab.c" +#line 9687 "asmparse.cpp.tab.c" break; case 584: if (!yytrial) #line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9820 "asmparse.cpp.tab.c" +#line 9693 "asmparse.cpp.tab.c" break; case 585: if (!yytrial) #line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9826 "asmparse.cpp.tab.c" +#line 9699 "asmparse.cpp.tab.c" break; case 586: if (!yytrial) #line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9832 "asmparse.cpp.tab.c" +#line 9705 "asmparse.cpp.tab.c" break; case 587: if (!yytrial) #line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9838 "asmparse.cpp.tab.c" +#line 9711 "asmparse.cpp.tab.c" break; case 588: if (!yytrial) #line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9844 "asmparse.cpp.tab.c" +#line 9717 "asmparse.cpp.tab.c" break; case 589: if (!yytrial) #line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9850 "asmparse.cpp.tab.c" +#line 9723 "asmparse.cpp.tab.c" break; case 590: if (!yytrial) #line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9856 "asmparse.cpp.tab.c" +#line 9729 "asmparse.cpp.tab.c" break; case 591: if (!yytrial) #line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9862 "asmparse.cpp.tab.c" +#line 9735 "asmparse.cpp.tab.c" break; case 592: if (!yytrial) #line 1568 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 9869 "asmparse.cpp.tab.c" +#line 9742 "asmparse.cpp.tab.c" break; case 593: if (!yytrial) #line 1570 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9876 "asmparse.cpp.tab.c" +#line 9749 "asmparse.cpp.tab.c" break; case 594: if (!yytrial) @@ -9882,7 +9755,7 @@ case 594: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 9886 "asmparse.cpp.tab.c" +#line 9759 "asmparse.cpp.tab.c" break; case 595: if (!yytrial) @@ -9892,7 +9765,7 @@ case 595: corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9896 "asmparse.cpp.tab.c" +#line 9769 "asmparse.cpp.tab.c" break; case 596: if (!yytrial) @@ -9900,79 +9773,79 @@ case 596: { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9904 "asmparse.cpp.tab.c" +#line 9777 "asmparse.cpp.tab.c" break; case 597: if (!yytrial) #line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9911 "asmparse.cpp.tab.c" +#line 9784 "asmparse.cpp.tab.c" break; case 598: if (!yytrial) #line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9918 "asmparse.cpp.tab.c" +#line 9791 "asmparse.cpp.tab.c" break; case 599: if (!yytrial) #line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9924 "asmparse.cpp.tab.c" +#line 9797 "asmparse.cpp.tab.c" break; case 600: if (!yytrial) #line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9930 "asmparse.cpp.tab.c" +#line 9803 "asmparse.cpp.tab.c" break; case 601: if (!yytrial) #line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9936 "asmparse.cpp.tab.c" +#line 9809 "asmparse.cpp.tab.c" break; case 602: if (!yytrial) #line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9942 "asmparse.cpp.tab.c" +#line 9815 "asmparse.cpp.tab.c" break; case 603: if (!yytrial) #line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9949 "asmparse.cpp.tab.c" +#line 9822 "asmparse.cpp.tab.c" break; case 604: if (!yytrial) #line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9956 "asmparse.cpp.tab.c" +#line 9829 "asmparse.cpp.tab.c" break; case 605: if (!yytrial) #line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9963 "asmparse.cpp.tab.c" +#line 9836 "asmparse.cpp.tab.c" break; case 606: if (!yytrial) #line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9969 "asmparse.cpp.tab.c" +#line 9842 "asmparse.cpp.tab.c" break; case 607: if (!yytrial) #line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9976 "asmparse.cpp.tab.c" +#line 9849 "asmparse.cpp.tab.c" break; case 608: if (!yytrial) @@ -9980,7 +9853,7 @@ case 608: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 9984 "asmparse.cpp.tab.c" +#line 9857 "asmparse.cpp.tab.c" break; case 609: if (!yytrial) @@ -9988,386 +9861,386 @@ case 609: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9992 "asmparse.cpp.tab.c" +#line 9865 "asmparse.cpp.tab.c" break; case 610: if (!yytrial) #line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9998 "asmparse.cpp.tab.c" +#line 9871 "asmparse.cpp.tab.c" break; case 611: if (!yytrial) #line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10004 "asmparse.cpp.tab.c" +#line 9877 "asmparse.cpp.tab.c" break; case 612: if (!yytrial) #line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 10010 "asmparse.cpp.tab.c" +#line 9883 "asmparse.cpp.tab.c" break; case 613: if (!yytrial) #line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 10017 "asmparse.cpp.tab.c" +#line 9890 "asmparse.cpp.tab.c" break; case 614: if (!yytrial) #line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 10023 "asmparse.cpp.tab.c" +#line 9896 "asmparse.cpp.tab.c" break; case 615: if (!yytrial) #line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 10029 "asmparse.cpp.tab.c" +#line 9902 "asmparse.cpp.tab.c" break; case 616: if (!yytrial) #line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 10035 "asmparse.cpp.tab.c" +#line 9908 "asmparse.cpp.tab.c" break; case 617: if (!yytrial) #line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 10041 "asmparse.cpp.tab.c" +#line 9914 "asmparse.cpp.tab.c" break; case 618: if (!yytrial) #line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 10047 "asmparse.cpp.tab.c" +#line 9920 "asmparse.cpp.tab.c" break; case 619: if (!yytrial) #line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 10053 "asmparse.cpp.tab.c" +#line 9926 "asmparse.cpp.tab.c" break; case 620: if (!yytrial) #line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 10059 "asmparse.cpp.tab.c" +#line 9932 "asmparse.cpp.tab.c" break; case 621: if (!yytrial) #line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10065 "asmparse.cpp.tab.c" +#line 9938 "asmparse.cpp.tab.c" break; case 622: if (!yytrial) #line 1624 "asmparse.y" { yyval.int32 = -1; } -#line 10071 "asmparse.cpp.tab.c" +#line 9944 "asmparse.cpp.tab.c" break; case 623: if (!yytrial) #line 1625 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 10077 "asmparse.cpp.tab.c" +#line 9950 "asmparse.cpp.tab.c" break; case 624: if (!yytrial) #line 1628 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 10083 "asmparse.cpp.tab.c" +#line 9956 "asmparse.cpp.tab.c" break; case 625: if (!yytrial) #line 1629 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 10089 "asmparse.cpp.tab.c" +#line 9962 "asmparse.cpp.tab.c" break; case 626: if (!yytrial) #line 1630 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 10095 "asmparse.cpp.tab.c" +#line 9968 "asmparse.cpp.tab.c" break; case 627: if (!yytrial) #line 1631 "asmparse.y" { yyval.int32 = VT_CY; } -#line 10101 "asmparse.cpp.tab.c" +#line 9974 "asmparse.cpp.tab.c" break; case 628: if (!yytrial) #line 1632 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 10107 "asmparse.cpp.tab.c" +#line 9980 "asmparse.cpp.tab.c" break; case 629: if (!yytrial) #line 1633 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 10113 "asmparse.cpp.tab.c" +#line 9986 "asmparse.cpp.tab.c" break; case 630: if (!yytrial) #line 1634 "asmparse.y" { yyval.int32 = VT_I1; } -#line 10119 "asmparse.cpp.tab.c" +#line 9992 "asmparse.cpp.tab.c" break; case 631: if (!yytrial) #line 1635 "asmparse.y" { yyval.int32 = VT_I2; } -#line 10125 "asmparse.cpp.tab.c" +#line 9998 "asmparse.cpp.tab.c" break; case 632: if (!yytrial) #line 1636 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10131 "asmparse.cpp.tab.c" +#line 10004 "asmparse.cpp.tab.c" break; case 633: if (!yytrial) #line 1637 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10137 "asmparse.cpp.tab.c" +#line 10010 "asmparse.cpp.tab.c" break; case 634: if (!yytrial) #line 1638 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10143 "asmparse.cpp.tab.c" +#line 10016 "asmparse.cpp.tab.c" break; case 635: if (!yytrial) #line 1639 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10149 "asmparse.cpp.tab.c" +#line 10022 "asmparse.cpp.tab.c" break; case 636: if (!yytrial) #line 1640 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10155 "asmparse.cpp.tab.c" +#line 10028 "asmparse.cpp.tab.c" break; case 637: if (!yytrial) #line 1641 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10161 "asmparse.cpp.tab.c" +#line 10034 "asmparse.cpp.tab.c" break; case 638: if (!yytrial) #line 1642 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10167 "asmparse.cpp.tab.c" +#line 10040 "asmparse.cpp.tab.c" break; case 639: if (!yytrial) #line 1643 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10173 "asmparse.cpp.tab.c" +#line 10046 "asmparse.cpp.tab.c" break; case 640: if (!yytrial) #line 1644 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10179 "asmparse.cpp.tab.c" +#line 10052 "asmparse.cpp.tab.c" break; case 641: if (!yytrial) #line 1645 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10185 "asmparse.cpp.tab.c" +#line 10058 "asmparse.cpp.tab.c" break; case 642: if (!yytrial) #line 1646 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10191 "asmparse.cpp.tab.c" +#line 10064 "asmparse.cpp.tab.c" break; case 643: if (!yytrial) #line 1647 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10197 "asmparse.cpp.tab.c" +#line 10070 "asmparse.cpp.tab.c" break; case 644: if (!yytrial) #line 1648 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10203 "asmparse.cpp.tab.c" +#line 10076 "asmparse.cpp.tab.c" break; case 645: if (!yytrial) #line 1649 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10209 "asmparse.cpp.tab.c" +#line 10082 "asmparse.cpp.tab.c" break; case 646: if (!yytrial) #line 1650 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10215 "asmparse.cpp.tab.c" +#line 10088 "asmparse.cpp.tab.c" break; case 647: if (!yytrial) #line 1651 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10221 "asmparse.cpp.tab.c" +#line 10094 "asmparse.cpp.tab.c" break; case 648: if (!yytrial) #line 1652 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10227 "asmparse.cpp.tab.c" +#line 10100 "asmparse.cpp.tab.c" break; case 649: if (!yytrial) #line 1653 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10233 "asmparse.cpp.tab.c" +#line 10106 "asmparse.cpp.tab.c" break; case 650: if (!yytrial) #line 1654 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10239 "asmparse.cpp.tab.c" +#line 10112 "asmparse.cpp.tab.c" break; case 651: if (!yytrial) #line 1655 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10245 "asmparse.cpp.tab.c" +#line 10118 "asmparse.cpp.tab.c" break; case 652: if (!yytrial) #line 1656 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10251 "asmparse.cpp.tab.c" +#line 10124 "asmparse.cpp.tab.c" break; case 653: if (!yytrial) #line 1657 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10257 "asmparse.cpp.tab.c" +#line 10130 "asmparse.cpp.tab.c" break; case 654: if (!yytrial) #line 1658 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10263 "asmparse.cpp.tab.c" +#line 10136 "asmparse.cpp.tab.c" break; case 655: if (!yytrial) #line 1659 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10269 "asmparse.cpp.tab.c" +#line 10142 "asmparse.cpp.tab.c" break; case 656: if (!yytrial) #line 1660 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10275 "asmparse.cpp.tab.c" +#line 10148 "asmparse.cpp.tab.c" break; case 657: if (!yytrial) #line 1661 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10281 "asmparse.cpp.tab.c" +#line 10154 "asmparse.cpp.tab.c" break; case 658: if (!yytrial) #line 1662 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10287 "asmparse.cpp.tab.c" +#line 10160 "asmparse.cpp.tab.c" break; case 659: if (!yytrial) #line 1663 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 10293 "asmparse.cpp.tab.c" +#line 10166 "asmparse.cpp.tab.c" break; case 660: if (!yytrial) #line 1664 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 10299 "asmparse.cpp.tab.c" +#line 10172 "asmparse.cpp.tab.c" break; case 661: if (!yytrial) #line 1665 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 10305 "asmparse.cpp.tab.c" +#line 10178 "asmparse.cpp.tab.c" break; case 662: if (!yytrial) #line 1666 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 10311 "asmparse.cpp.tab.c" +#line 10184 "asmparse.cpp.tab.c" break; case 663: if (!yytrial) #line 1667 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 10317 "asmparse.cpp.tab.c" +#line 10190 "asmparse.cpp.tab.c" break; case 664: if (!yytrial) #line 1668 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 10323 "asmparse.cpp.tab.c" +#line 10196 "asmparse.cpp.tab.c" break; case 665: if (!yytrial) #line 1669 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 10329 "asmparse.cpp.tab.c" +#line 10202 "asmparse.cpp.tab.c" break; case 666: if (!yytrial) #line 1670 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 10335 "asmparse.cpp.tab.c" +#line 10208 "asmparse.cpp.tab.c" break; case 667: if (!yytrial) #line 1671 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 10341 "asmparse.cpp.tab.c" +#line 10214 "asmparse.cpp.tab.c" break; case 668: if (!yytrial) #line 1672 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 10347 "asmparse.cpp.tab.c" +#line 10220 "asmparse.cpp.tab.c" break; case 669: if (!yytrial) #line 1673 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 10353 "asmparse.cpp.tab.c" +#line 10226 "asmparse.cpp.tab.c" break; case 670: if (!yytrial) #line 1674 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 10359 "asmparse.cpp.tab.c" +#line 10232 "asmparse.cpp.tab.c" break; case 671: if (!yytrial) #line 1675 "asmparse.y" { yyval.int32 = VT_CF; } -#line 10365 "asmparse.cpp.tab.c" +#line 10238 "asmparse.cpp.tab.c" break; case 672: if (!yytrial) #line 1676 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 10371 "asmparse.cpp.tab.c" +#line 10244 "asmparse.cpp.tab.c" break; case 673: if (!yytrial) @@ -10375,126 +10248,126 @@ case 673: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 10379 "asmparse.cpp.tab.c" +#line 10252 "asmparse.cpp.tab.c" break; case 674: if (!yytrial) #line 1682 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 10386 "asmparse.cpp.tab.c" +#line 10259 "asmparse.cpp.tab.c" break; case 675: if (!yytrial) #line 1684 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10393 "asmparse.cpp.tab.c" +#line 10266 "asmparse.cpp.tab.c" break; case 676: if (!yytrial) #line 1686 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10400 "asmparse.cpp.tab.c" +#line 10273 "asmparse.cpp.tab.c" break; case 677: if (!yytrial) #line 1688 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10407 "asmparse.cpp.tab.c" +#line 10280 "asmparse.cpp.tab.c" break; case 678: if (!yytrial) #line 1690 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10414 "asmparse.cpp.tab.c" +#line 10287 "asmparse.cpp.tab.c" break; case 679: if (!yytrial) #line 1692 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10421 "asmparse.cpp.tab.c" +#line 10294 "asmparse.cpp.tab.c" break; case 680: if (!yytrial) #line 1694 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10428 "asmparse.cpp.tab.c" +#line 10301 "asmparse.cpp.tab.c" break; case 681: if (!yytrial) #line 1696 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10435 "asmparse.cpp.tab.c" +#line 10308 "asmparse.cpp.tab.c" break; case 682: if (!yytrial) #line 1698 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10442 "asmparse.cpp.tab.c" +#line 10315 "asmparse.cpp.tab.c" break; case 683: if (!yytrial) #line 1700 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10449 "asmparse.cpp.tab.c" +#line 10322 "asmparse.cpp.tab.c" break; case 684: if (!yytrial) #line 1702 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10456 "asmparse.cpp.tab.c" +#line 10329 "asmparse.cpp.tab.c" break; case 685: if (!yytrial) #line 1704 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10463 "asmparse.cpp.tab.c" +#line 10336 "asmparse.cpp.tab.c" break; case 686: if (!yytrial) #line 1706 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10470 "asmparse.cpp.tab.c" +#line 10343 "asmparse.cpp.tab.c" break; case 687: if (!yytrial) #line 1708 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10477 "asmparse.cpp.tab.c" +#line 10350 "asmparse.cpp.tab.c" break; case 688: if (!yytrial) #line 1710 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10484 "asmparse.cpp.tab.c" +#line 10357 "asmparse.cpp.tab.c" break; case 689: if (!yytrial) #line 1712 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10491 "asmparse.cpp.tab.c" +#line 10364 "asmparse.cpp.tab.c" break; case 690: if (!yytrial) #line 1714 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 10498 "asmparse.cpp.tab.c" +#line 10371 "asmparse.cpp.tab.c" break; case 691: if (!yytrial) @@ -10505,75 +10378,75 @@ case 691: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10509 "asmparse.cpp.tab.c" +#line 10382 "asmparse.cpp.tab.c" break; case 692: if (!yytrial) #line 1725 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10515 "asmparse.cpp.tab.c" +#line 10388 "asmparse.cpp.tab.c" break; case 693: if (!yytrial) #line 1726 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10521 "asmparse.cpp.tab.c" +#line 10394 "asmparse.cpp.tab.c" break; case 694: if (!yytrial) #line 1727 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10527 "asmparse.cpp.tab.c" +#line 10400 "asmparse.cpp.tab.c" break; case 695: if (!yytrial) #line 1728 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 10533 "asmparse.cpp.tab.c" +#line 10406 "asmparse.cpp.tab.c" break; case 696: if (!yytrial) #line 1729 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10539 "asmparse.cpp.tab.c" +#line 10412 "asmparse.cpp.tab.c" break; case 697: if (!yytrial) #line 1730 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10545 "asmparse.cpp.tab.c" +#line 10418 "asmparse.cpp.tab.c" break; case 698: if (!yytrial) #line 1731 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10551 "asmparse.cpp.tab.c" +#line 10424 "asmparse.cpp.tab.c" break; case 699: if (!yytrial) #line 1732 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10557 "asmparse.cpp.tab.c" +#line 10430 "asmparse.cpp.tab.c" break; case 700: if (!yytrial) #line 1733 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10563 "asmparse.cpp.tab.c" +#line 10436 "asmparse.cpp.tab.c" break; case 701: if (!yytrial) #line 1734 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10570 "asmparse.cpp.tab.c" +#line 10443 "asmparse.cpp.tab.c" break; case 702: if (!yytrial) #line 1736 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10577 "asmparse.cpp.tab.c" +#line 10450 "asmparse.cpp.tab.c" break; case 703: if (!yytrial) @@ -10584,7 +10457,7 @@ case 703: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10588 "asmparse.cpp.tab.c" +#line 10461 "asmparse.cpp.tab.c" break; case 704: if (!yytrial) @@ -10596,69 +10469,33 @@ case 704: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10600 "asmparse.cpp.tab.c" +#line 10473 "asmparse.cpp.tab.c" break; case 705: if (!yytrial) #line 1752 "asmparse.y" -{ - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MCVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); - } -#line 10608 "asmparse.cpp.tab.c" -break; -case 706: - if (!yytrial) -#line 1755 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10619 "asmparse.cpp.tab.c" -break; -case 707: - if (!yytrial) -#line 1761 "asmparse.y" -{ - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); - } -#line 10627 "asmparse.cpp.tab.c" +#line 10484 "asmparse.cpp.tab.c" break; -case 708: +case 706: if (!yytrial) -#line 1764 "asmparse.y" +#line 1758 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10638 "asmparse.cpp.tab.c" -break; -case 709: - if (!yytrial) -#line 1770 "asmparse.y" -{ int eltype = ELEMENT_TYPE_MCVAR; - int n=-1; - if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yyvsp[0].string); - eltype = ELEMENT_TYPE_MCVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid method const type parameter '%s'\n",yyvsp[0].string); - n = 0x1FFFFFFF; } - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } -#line 10658 "asmparse.cpp.tab.c" +#line 10495 "asmparse.cpp.tab.c" break; -case 710: +case 707: if (!yytrial) -#line 1785 "asmparse.y" +#line 1764 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10674,31 +10511,11 @@ case 710: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10678 "asmparse.cpp.tab.c" -break; -case 711: - if (!yytrial) -#line 1800 "asmparse.y" -{ int eltype = ELEMENT_TYPE_CVAR; - int n=-1; - if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yyvsp[0].string); - eltype = ELEMENT_TYPE_CVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid const type parameter '%s'\n",yyvsp[0].string); - n = 0x1FFFFFFF; } - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } -#line 10698 "asmparse.cpp.tab.c" +#line 10515 "asmparse.cpp.tab.c" break; -case 712: +case 708: if (!yytrial) -#line 1815 "asmparse.y" +#line 1779 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10714,924 +10531,924 @@ case 712: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10718 "asmparse.cpp.tab.c" +#line 10535 "asmparse.cpp.tab.c" break; -case 713: +case 709: if (!yytrial) -#line 1830 "asmparse.y" +#line 1794 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10724 "asmparse.cpp.tab.c" +#line 10541 "asmparse.cpp.tab.c" break; -case 714: +case 710: if (!yytrial) -#line 1831 "asmparse.y" +#line 1795 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10730 "asmparse.cpp.tab.c" +#line 10547 "asmparse.cpp.tab.c" break; -case 715: +case 711: if (!yytrial) -#line 1832 "asmparse.y" +#line 1796 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10736 "asmparse.cpp.tab.c" +#line 10553 "asmparse.cpp.tab.c" break; -case 716: +case 712: if (!yytrial) -#line 1833 "asmparse.y" +#line 1797 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10742 "asmparse.cpp.tab.c" +#line 10559 "asmparse.cpp.tab.c" break; -case 717: +case 713: if (!yytrial) -#line 1834 "asmparse.y" +#line 1798 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10748 "asmparse.cpp.tab.c" +#line 10565 "asmparse.cpp.tab.c" break; -case 718: +case 714: if (!yytrial) -#line 1835 "asmparse.y" +#line 1799 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10754 "asmparse.cpp.tab.c" +#line 10571 "asmparse.cpp.tab.c" break; -case 719: +case 715: if (!yytrial) -#line 1836 "asmparse.y" +#line 1800 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10760 "asmparse.cpp.tab.c" +#line 10577 "asmparse.cpp.tab.c" break; -case 720: +case 716: if (!yytrial) -#line 1839 "asmparse.y" +#line 1803 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10766 "asmparse.cpp.tab.c" +#line 10583 "asmparse.cpp.tab.c" break; -case 721: +case 717: if (!yytrial) -#line 1840 "asmparse.y" +#line 1804 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10772 "asmparse.cpp.tab.c" +#line 10589 "asmparse.cpp.tab.c" break; -case 722: +case 718: if (!yytrial) -#line 1841 "asmparse.y" +#line 1805 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10778 "asmparse.cpp.tab.c" +#line 10595 "asmparse.cpp.tab.c" break; -case 723: +case 719: if (!yytrial) -#line 1842 "asmparse.y" +#line 1806 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10784 "asmparse.cpp.tab.c" +#line 10601 "asmparse.cpp.tab.c" break; -case 724: +case 720: if (!yytrial) -#line 1843 "asmparse.y" +#line 1807 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10790 "asmparse.cpp.tab.c" +#line 10607 "asmparse.cpp.tab.c" break; -case 725: +case 721: if (!yytrial) -#line 1844 "asmparse.y" +#line 1808 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10796 "asmparse.cpp.tab.c" +#line 10613 "asmparse.cpp.tab.c" break; -case 726: +case 722: if (!yytrial) -#line 1845 "asmparse.y" +#line 1809 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10802 "asmparse.cpp.tab.c" +#line 10619 "asmparse.cpp.tab.c" break; -case 727: +case 723: if (!yytrial) -#line 1846 "asmparse.y" +#line 1810 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10808 "asmparse.cpp.tab.c" +#line 10625 "asmparse.cpp.tab.c" break; -case 728: +case 724: if (!yytrial) -#line 1847 "asmparse.y" +#line 1811 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10814 "asmparse.cpp.tab.c" +#line 10631 "asmparse.cpp.tab.c" break; -case 729: +case 725: if (!yytrial) -#line 1848 "asmparse.y" +#line 1812 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10820 "asmparse.cpp.tab.c" +#line 10637 "asmparse.cpp.tab.c" break; -case 730: +case 726: if (!yytrial) -#line 1849 "asmparse.y" +#line 1813 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10826 "asmparse.cpp.tab.c" +#line 10643 "asmparse.cpp.tab.c" break; -case 731: +case 727: if (!yytrial) -#line 1850 "asmparse.y" +#line 1814 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10832 "asmparse.cpp.tab.c" +#line 10649 "asmparse.cpp.tab.c" break; -case 732: +case 728: if (!yytrial) -#line 1851 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10838 "asmparse.cpp.tab.c" +#line 10655 "asmparse.cpp.tab.c" break; -case 733: +case 729: if (!yytrial) -#line 1852 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10844 "asmparse.cpp.tab.c" +#line 10661 "asmparse.cpp.tab.c" break; -case 734: +case 730: if (!yytrial) -#line 1853 "asmparse.y" +#line 1817 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10850 "asmparse.cpp.tab.c" +#line 10667 "asmparse.cpp.tab.c" break; -case 735: +case 731: if (!yytrial) -#line 1854 "asmparse.y" +#line 1818 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10856 "asmparse.cpp.tab.c" +#line 10673 "asmparse.cpp.tab.c" break; -case 736: +case 732: if (!yytrial) -#line 1855 "asmparse.y" +#line 1819 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10862 "asmparse.cpp.tab.c" +#line 10679 "asmparse.cpp.tab.c" break; -case 737: +case 733: if (!yytrial) -#line 1856 "asmparse.y" +#line 1820 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10868 "asmparse.cpp.tab.c" +#line 10685 "asmparse.cpp.tab.c" break; -case 738: +case 734: if (!yytrial) -#line 1859 "asmparse.y" +#line 1823 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10874 "asmparse.cpp.tab.c" +#line 10691 "asmparse.cpp.tab.c" break; -case 739: +case 735: if (!yytrial) -#line 1860 "asmparse.y" +#line 1824 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10880 "asmparse.cpp.tab.c" +#line 10697 "asmparse.cpp.tab.c" break; -case 740: +case 736: if (!yytrial) -#line 1863 "asmparse.y" +#line 1827 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10886 "asmparse.cpp.tab.c" +#line 10703 "asmparse.cpp.tab.c" break; -case 741: +case 737: if (!yytrial) -#line 1864 "asmparse.y" +#line 1828 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10892 "asmparse.cpp.tab.c" +#line 10709 "asmparse.cpp.tab.c" break; -case 742: +case 738: if (!yytrial) -#line 1865 "asmparse.y" +#line 1829 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10898 "asmparse.cpp.tab.c" +#line 10715 "asmparse.cpp.tab.c" break; -case 743: +case 739: if (!yytrial) -#line 1866 "asmparse.y" +#line 1830 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10906 "asmparse.cpp.tab.c" +#line 10723 "asmparse.cpp.tab.c" break; -case 744: +case 740: if (!yytrial) -#line 1869 "asmparse.y" +#line 1833 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10912 "asmparse.cpp.tab.c" +#line 10729 "asmparse.cpp.tab.c" break; -case 745: +case 741: if (!yytrial) -#line 1874 "asmparse.y" +#line 1838 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10918 "asmparse.cpp.tab.c" +#line 10735 "asmparse.cpp.tab.c" break; -case 746: +case 742: if (!yytrial) -#line 1876 "asmparse.y" +#line 1840 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10924 "asmparse.cpp.tab.c" +#line 10741 "asmparse.cpp.tab.c" break; -case 747: +case 743: if (!yytrial) -#line 1877 "asmparse.y" +#line 1841 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10930 "asmparse.cpp.tab.c" +#line 10747 "asmparse.cpp.tab.c" break; -case 748: +case 744: if (!yytrial) -#line 1878 "asmparse.y" +#line 1842 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10936 "asmparse.cpp.tab.c" +#line 10753 "asmparse.cpp.tab.c" break; -case 749: +case 745: if (!yytrial) -#line 1880 "asmparse.y" +#line 1844 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10942 "asmparse.cpp.tab.c" +#line 10759 "asmparse.cpp.tab.c" break; -case 750: +case 746: if (!yytrial) -#line 1882 "asmparse.y" +#line 1846 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10953 "asmparse.cpp.tab.c" +#line 10770 "asmparse.cpp.tab.c" break; -case 751: +case 747: if (!yytrial) -#line 1890 "asmparse.y" +#line 1854 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10959 "asmparse.cpp.tab.c" +#line 10776 "asmparse.cpp.tab.c" break; -case 752: +case 748: if (!yytrial) -#line 1891 "asmparse.y" +#line 1855 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10965 "asmparse.cpp.tab.c" +#line 10782 "asmparse.cpp.tab.c" break; -case 753: +case 749: if (!yytrial) -#line 1892 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10971 "asmparse.cpp.tab.c" +#line 10788 "asmparse.cpp.tab.c" break; -case 754: +case 750: if (!yytrial) -#line 1896 "asmparse.y" +#line 1860 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10978 "asmparse.cpp.tab.c" +#line 10795 "asmparse.cpp.tab.c" break; -case 755: +case 751: if (!yytrial) -#line 1899 "asmparse.y" +#line 1863 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10985 "asmparse.cpp.tab.c" +#line 10802 "asmparse.cpp.tab.c" break; -case 756: +case 752: if (!yytrial) -#line 1903 "asmparse.y" +#line 1867 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10991 "asmparse.cpp.tab.c" +#line 10808 "asmparse.cpp.tab.c" break; -case 757: +case 753: if (!yytrial) -#line 1905 "asmparse.y" +#line 1869 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10997 "asmparse.cpp.tab.c" +#line 10814 "asmparse.cpp.tab.c" break; -case 758: +case 754: if (!yytrial) -#line 1908 "asmparse.y" +#line 1872 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 11003 "asmparse.cpp.tab.c" +#line 10820 "asmparse.cpp.tab.c" break; -case 759: +case 755: if (!yytrial) -#line 1909 "asmparse.y" +#line 1873 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 11009 "asmparse.cpp.tab.c" +#line 10826 "asmparse.cpp.tab.c" break; -case 760: +case 756: if (!yytrial) -#line 1912 "asmparse.y" +#line 1876 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 11015 "asmparse.cpp.tab.c" +#line 10832 "asmparse.cpp.tab.c" break; -case 761: +case 757: if (!yytrial) -#line 1915 "asmparse.y" +#line 1879 "asmparse.y" { yyval.int32 = 1; } -#line 11021 "asmparse.cpp.tab.c" +#line 10838 "asmparse.cpp.tab.c" break; -case 762: +case 758: if (!yytrial) -#line 1916 "asmparse.y" +#line 1880 "asmparse.y" { yyval.int32 = 0; } -#line 11027 "asmparse.cpp.tab.c" +#line 10844 "asmparse.cpp.tab.c" break; -case 763: +case 759: if (!yytrial) -#line 1919 "asmparse.y" +#line 1883 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 11035 "asmparse.cpp.tab.c" +#line 10852 "asmparse.cpp.tab.c" break; -case 764: +case 760: if (!yytrial) -#line 1922 "asmparse.y" +#line 1886 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 11043 "asmparse.cpp.tab.c" +#line 10860 "asmparse.cpp.tab.c" break; -case 765: +case 761: if (!yytrial) -#line 1925 "asmparse.y" +#line 1889 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11051 "asmparse.cpp.tab.c" +#line 10868 "asmparse.cpp.tab.c" break; -case 766: +case 762: if (!yytrial) -#line 1928 "asmparse.y" +#line 1892 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 11060 "asmparse.cpp.tab.c" +#line 10877 "asmparse.cpp.tab.c" break; -case 767: +case 763: if (!yytrial) -#line 1932 "asmparse.y" +#line 1896 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11071 "asmparse.cpp.tab.c" +#line 10888 "asmparse.cpp.tab.c" break; -case 768: +case 764: if (!yytrial) -#line 1938 "asmparse.y" +#line 1902 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11082 "asmparse.cpp.tab.c" +#line 10899 "asmparse.cpp.tab.c" break; -case 769: +case 765: if (!yytrial) -#line 1944 "asmparse.y" +#line 1908 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11093 "asmparse.cpp.tab.c" +#line 10910 "asmparse.cpp.tab.c" break; -case 770: +case 766: if (!yytrial) -#line 1950 "asmparse.y" +#line 1914 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 11104 "asmparse.cpp.tab.c" +#line 10921 "asmparse.cpp.tab.c" break; -case 771: +case 767: if (!yytrial) -#line 1958 "asmparse.y" +#line 1922 "asmparse.y" { yyval.secAct = dclRequest; } -#line 11110 "asmparse.cpp.tab.c" +#line 10927 "asmparse.cpp.tab.c" break; -case 772: +case 768: if (!yytrial) -#line 1959 "asmparse.y" +#line 1923 "asmparse.y" { yyval.secAct = dclDemand; } -#line 11116 "asmparse.cpp.tab.c" +#line 10933 "asmparse.cpp.tab.c" break; -case 773: +case 769: if (!yytrial) -#line 1960 "asmparse.y" +#line 1924 "asmparse.y" { yyval.secAct = dclAssert; } -#line 11122 "asmparse.cpp.tab.c" +#line 10939 "asmparse.cpp.tab.c" break; -case 774: +case 770: if (!yytrial) -#line 1961 "asmparse.y" +#line 1925 "asmparse.y" { yyval.secAct = dclDeny; } -#line 11128 "asmparse.cpp.tab.c" +#line 10945 "asmparse.cpp.tab.c" break; -case 775: +case 771: if (!yytrial) -#line 1962 "asmparse.y" +#line 1926 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 11134 "asmparse.cpp.tab.c" +#line 10951 "asmparse.cpp.tab.c" break; -case 776: +case 772: if (!yytrial) -#line 1963 "asmparse.y" +#line 1927 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 11140 "asmparse.cpp.tab.c" +#line 10957 "asmparse.cpp.tab.c" break; -case 777: +case 773: if (!yytrial) -#line 1964 "asmparse.y" +#line 1928 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 11146 "asmparse.cpp.tab.c" +#line 10963 "asmparse.cpp.tab.c" break; -case 778: +case 774: if (!yytrial) -#line 1965 "asmparse.y" +#line 1929 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 11152 "asmparse.cpp.tab.c" +#line 10969 "asmparse.cpp.tab.c" break; -case 779: +case 775: if (!yytrial) -#line 1966 "asmparse.y" +#line 1930 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 11158 "asmparse.cpp.tab.c" +#line 10975 "asmparse.cpp.tab.c" break; -case 780: +case 776: if (!yytrial) -#line 1967 "asmparse.y" +#line 1931 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 11164 "asmparse.cpp.tab.c" +#line 10981 "asmparse.cpp.tab.c" break; -case 781: +case 777: if (!yytrial) -#line 1968 "asmparse.y" +#line 1932 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 11170 "asmparse.cpp.tab.c" +#line 10987 "asmparse.cpp.tab.c" break; -case 782: +case 778: if (!yytrial) -#line 1969 "asmparse.y" +#line 1933 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 11176 "asmparse.cpp.tab.c" +#line 10993 "asmparse.cpp.tab.c" break; -case 783: +case 779: if (!yytrial) -#line 1970 "asmparse.y" +#line 1934 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 11182 "asmparse.cpp.tab.c" +#line 10999 "asmparse.cpp.tab.c" break; -case 784: +case 780: if (!yytrial) -#line 1971 "asmparse.y" +#line 1935 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11188 "asmparse.cpp.tab.c" +#line 11005 "asmparse.cpp.tab.c" break; -case 785: +case 781: if (!yytrial) -#line 1972 "asmparse.y" +#line 1936 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11194 "asmparse.cpp.tab.c" +#line 11011 "asmparse.cpp.tab.c" break; -case 786: +case 782: if (!yytrial) -#line 1976 "asmparse.y" +#line 1940 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11200 "asmparse.cpp.tab.c" +#line 11017 "asmparse.cpp.tab.c" break; -case 787: +case 783: if (!yytrial) -#line 1977 "asmparse.y" +#line 1941 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11206 "asmparse.cpp.tab.c" +#line 11023 "asmparse.cpp.tab.c" break; -case 788: +case 784: if (!yytrial) -#line 1980 "asmparse.y" +#line 1944 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11214 "asmparse.cpp.tab.c" +#line 11031 "asmparse.cpp.tab.c" break; -case 789: +case 785: if (!yytrial) -#line 1983 "asmparse.y" +#line 1947 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11221 "asmparse.cpp.tab.c" +#line 11038 "asmparse.cpp.tab.c" break; -case 790: +case 786: if (!yytrial) -#line 1985 "asmparse.y" +#line 1949 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11229 "asmparse.cpp.tab.c" +#line 11046 "asmparse.cpp.tab.c" break; -case 791: +case 787: if (!yytrial) -#line 1988 "asmparse.y" +#line 1952 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11236 "asmparse.cpp.tab.c" +#line 11053 "asmparse.cpp.tab.c" break; -case 792: +case 788: if (!yytrial) -#line 1991 "asmparse.y" +#line 1955 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11244 "asmparse.cpp.tab.c" +#line 11061 "asmparse.cpp.tab.c" break; -case 793: +case 789: if (!yytrial) -#line 1995 "asmparse.y" +#line 1959 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11251 "asmparse.cpp.tab.c" +#line 11068 "asmparse.cpp.tab.c" break; -case 794: +case 790: if (!yytrial) -#line 1998 "asmparse.y" +#line 1962 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11259 "asmparse.cpp.tab.c" +#line 11076 "asmparse.cpp.tab.c" break; -case 795: +case 791: if (!yytrial) -#line 2002 "asmparse.y" +#line 1966 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11266 "asmparse.cpp.tab.c" +#line 11083 "asmparse.cpp.tab.c" break; -case 796: +case 792: if (!yytrial) -#line 2005 "asmparse.y" +#line 1969 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11274 "asmparse.cpp.tab.c" +#line 11091 "asmparse.cpp.tab.c" break; -case 797: +case 793: if (!yytrial) -#line 2009 "asmparse.y" +#line 1973 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11281 "asmparse.cpp.tab.c" +#line 11098 "asmparse.cpp.tab.c" break; -case 798: +case 794: if (!yytrial) -#line 2011 "asmparse.y" +#line 1975 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11289 "asmparse.cpp.tab.c" +#line 11106 "asmparse.cpp.tab.c" break; -case 799: +case 795: if (!yytrial) -#line 2018 "asmparse.y" +#line 1982 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11295 "asmparse.cpp.tab.c" +#line 11112 "asmparse.cpp.tab.c" break; -case 800: +case 796: if (!yytrial) -#line 2019 "asmparse.y" +#line 1983 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11301 "asmparse.cpp.tab.c" +#line 11118 "asmparse.cpp.tab.c" break; -case 801: +case 797: if (!yytrial) -#line 2022 "asmparse.y" +#line 1986 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11307 "asmparse.cpp.tab.c" +#line 11124 "asmparse.cpp.tab.c" break; -case 802: +case 798: if (!yytrial) -#line 2023 "asmparse.y" +#line 1987 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11313 "asmparse.cpp.tab.c" +#line 11130 "asmparse.cpp.tab.c" break; -case 803: +case 799: if (!yytrial) -#line 2026 "asmparse.y" +#line 1990 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11319 "asmparse.cpp.tab.c" +#line 11136 "asmparse.cpp.tab.c" break; -case 804: +case 800: if (!yytrial) -#line 2027 "asmparse.y" +#line 1991 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11325 "asmparse.cpp.tab.c" +#line 11142 "asmparse.cpp.tab.c" break; -case 805: +case 801: if (!yytrial) -#line 2030 "asmparse.y" +#line 1994 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11331 "asmparse.cpp.tab.c" +#line 11148 "asmparse.cpp.tab.c" break; -case 806: +case 802: if (!yytrial) -#line 2033 "asmparse.y" +#line 1997 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11337 "asmparse.cpp.tab.c" +#line 11154 "asmparse.cpp.tab.c" break; -case 807: +case 803: if (!yytrial) -#line 2036 "asmparse.y" +#line 2000 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11343 "asmparse.cpp.tab.c" +#line 11160 "asmparse.cpp.tab.c" break; -case 808: +case 804: if (!yytrial) -#line 2037 "asmparse.y" +#line 2001 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11349 "asmparse.cpp.tab.c" +#line 11166 "asmparse.cpp.tab.c" break; -case 809: +case 805: if (!yytrial) -#line 2038 "asmparse.y" +#line 2002 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11355 "asmparse.cpp.tab.c" +#line 11172 "asmparse.cpp.tab.c" break; -case 810: +case 806: if (!yytrial) -#line 2039 "asmparse.y" +#line 2003 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11361 "asmparse.cpp.tab.c" +#line 11178 "asmparse.cpp.tab.c" break; -case 811: +case 807: if (!yytrial) -#line 2040 "asmparse.y" +#line 2004 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11367 "asmparse.cpp.tab.c" +#line 11184 "asmparse.cpp.tab.c" break; -case 812: +case 808: if (!yytrial) -#line 2041 "asmparse.y" +#line 2005 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11373 "asmparse.cpp.tab.c" +#line 11190 "asmparse.cpp.tab.c" break; -case 813: +case 809: if (!yytrial) -#line 2042 "asmparse.y" +#line 2006 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11379 "asmparse.cpp.tab.c" +#line 11196 "asmparse.cpp.tab.c" break; -case 814: +case 810: if (!yytrial) -#line 2043 "asmparse.y" +#line 2007 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11385 "asmparse.cpp.tab.c" +#line 11202 "asmparse.cpp.tab.c" break; -case 815: +case 811: if (!yytrial) -#line 2044 "asmparse.y" +#line 2008 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11391 "asmparse.cpp.tab.c" +#line 11208 "asmparse.cpp.tab.c" break; -case 816: +case 812: if (!yytrial) -#line 2045 "asmparse.y" +#line 2009 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11397 "asmparse.cpp.tab.c" +#line 11214 "asmparse.cpp.tab.c" break; -case 819: +case 815: if (!yytrial) -#line 2052 "asmparse.y" +#line 2016 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11403 "asmparse.cpp.tab.c" +#line 11220 "asmparse.cpp.tab.c" break; -case 822: +case 818: if (!yytrial) -#line 2057 "asmparse.y" +#line 2021 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11409 "asmparse.cpp.tab.c" +#line 11226 "asmparse.cpp.tab.c" break; -case 823: +case 819: if (!yytrial) -#line 2058 "asmparse.y" +#line 2022 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11415 "asmparse.cpp.tab.c" +#line 11232 "asmparse.cpp.tab.c" break; -case 824: +case 820: if (!yytrial) -#line 2061 "asmparse.y" +#line 2025 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11421 "asmparse.cpp.tab.c" +#line 11238 "asmparse.cpp.tab.c" break; -case 825: +case 821: if (!yytrial) -#line 2063 "asmparse.y" +#line 2027 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11427 "asmparse.cpp.tab.c" +#line 11244 "asmparse.cpp.tab.c" break; -case 826: +case 822: if (!yytrial) -#line 2064 "asmparse.y" +#line 2028 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11433 "asmparse.cpp.tab.c" +#line 11250 "asmparse.cpp.tab.c" break; -case 827: +case 823: if (!yytrial) -#line 2065 "asmparse.y" +#line 2029 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11439 "asmparse.cpp.tab.c" +#line 11256 "asmparse.cpp.tab.c" break; -case 830: +case 826: if (!yytrial) -#line 2070 "asmparse.y" +#line 2034 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11445 "asmparse.cpp.tab.c" +#line 11262 "asmparse.cpp.tab.c" break; -case 831: +case 827: if (!yytrial) -#line 2073 "asmparse.y" +#line 2037 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11451 "asmparse.cpp.tab.c" +#line 11268 "asmparse.cpp.tab.c" break; -case 832: +case 828: if (!yytrial) -#line 2076 "asmparse.y" +#line 2040 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11457 "asmparse.cpp.tab.c" +#line 11274 "asmparse.cpp.tab.c" break; -case 833: +case 829: if (!yytrial) -#line 2080 "asmparse.y" +#line 2044 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11463 "asmparse.cpp.tab.c" +#line 11280 "asmparse.cpp.tab.c" break; -case 834: +case 830: if (!yytrial) -#line 2082 "asmparse.y" +#line 2046 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11469 "asmparse.cpp.tab.c" +#line 11286 "asmparse.cpp.tab.c" break; -case 837: +case 833: if (!yytrial) -#line 2089 "asmparse.y" +#line 2053 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11475 "asmparse.cpp.tab.c" +#line 11292 "asmparse.cpp.tab.c" break; -case 839: +case 835: if (!yytrial) -#line 2091 "asmparse.y" +#line 2055 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11481 "asmparse.cpp.tab.c" +#line 11298 "asmparse.cpp.tab.c" break; -case 840: +case 836: if (!yytrial) -#line 2092 "asmparse.y" +#line 2056 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11487 "asmparse.cpp.tab.c" +#line 11304 "asmparse.cpp.tab.c" break; -case 841: +case 837: if (!yytrial) -#line 2095 "asmparse.y" +#line 2059 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11493 "asmparse.cpp.tab.c" +#line 11310 "asmparse.cpp.tab.c" break; -case 842: +case 838: if (!yytrial) -#line 2098 "asmparse.y" +#line 2062 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11499 "asmparse.cpp.tab.c" +#line 11316 "asmparse.cpp.tab.c" break; -case 843: +case 839: if (!yytrial) -#line 2101 "asmparse.y" +#line 2065 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11505 "asmparse.cpp.tab.c" +#line 11322 "asmparse.cpp.tab.c" break; -case 844: +case 840: if (!yytrial) -#line 2102 "asmparse.y" +#line 2066 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11511 "asmparse.cpp.tab.c" +#line 11328 "asmparse.cpp.tab.c" break; -case 845: +case 841: if (!yytrial) -#line 2103 "asmparse.y" +#line 2067 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11517 "asmparse.cpp.tab.c" +#line 11334 "asmparse.cpp.tab.c" break; -case 846: +case 842: if (!yytrial) -#line 2104 "asmparse.y" +#line 2068 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11523 "asmparse.cpp.tab.c" +#line 11340 "asmparse.cpp.tab.c" break; -case 847: +case 843: if (!yytrial) -#line 2105 "asmparse.y" +#line 2069 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11529 "asmparse.cpp.tab.c" +#line 11346 "asmparse.cpp.tab.c" break; -case 848: +case 844: if (!yytrial) -#line 2106 "asmparse.y" +#line 2070 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11535 "asmparse.cpp.tab.c" +#line 11352 "asmparse.cpp.tab.c" break; -case 849: +case 845: if (!yytrial) -#line 2107 "asmparse.y" +#line 2071 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11541 "asmparse.cpp.tab.c" +#line 11358 "asmparse.cpp.tab.c" break; -case 850: +case 846: if (!yytrial) -#line 2108 "asmparse.y" +#line 2072 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11547 "asmparse.cpp.tab.c" +#line 11364 "asmparse.cpp.tab.c" break; -case 851: +case 847: if (!yytrial) -#line 2109 "asmparse.y" +#line 2073 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11553 "asmparse.cpp.tab.c" +#line 11370 "asmparse.cpp.tab.c" break; -case 852: +case 848: if (!yytrial) -#line 2110 "asmparse.y" +#line 2074 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11559 "asmparse.cpp.tab.c" +#line 11376 "asmparse.cpp.tab.c" break; -case 855: +case 851: if (!yytrial) -#line 2117 "asmparse.y" +#line 2081 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11565 "asmparse.cpp.tab.c" +#line 11382 "asmparse.cpp.tab.c" break; -case 856: +case 852: if (!yytrial) -#line 2118 "asmparse.y" +#line 2082 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11571 "asmparse.cpp.tab.c" +#line 11388 "asmparse.cpp.tab.c" break; -case 857: +case 853: if (!yytrial) -#line 2119 "asmparse.y" +#line 2083 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11577 "asmparse.cpp.tab.c" +#line 11394 "asmparse.cpp.tab.c" break; -case 858: +case 854: if (!yytrial) -#line 2120 "asmparse.y" +#line 2084 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11584 "asmparse.cpp.tab.c" +#line 11401 "asmparse.cpp.tab.c" break; -case 859: +case 855: if (!yytrial) -#line 2122 "asmparse.y" +#line 2086 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11591 "asmparse.cpp.tab.c" +#line 11408 "asmparse.cpp.tab.c" break; -case 862: +case 858: if (!yytrial) -#line 2128 "asmparse.y" +#line 2092 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11597 "asmparse.cpp.tab.c" +#line 11414 "asmparse.cpp.tab.c" break; -case 863: +case 859: if (!yytrial) -#line 2130 "asmparse.y" +#line 2094 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11603 "asmparse.cpp.tab.c" +#line 11420 "asmparse.cpp.tab.c" break; -case 864: +case 860: if (!yytrial) -#line 2133 "asmparse.y" +#line 2097 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11609 "asmparse.cpp.tab.c" +#line 11426 "asmparse.cpp.tab.c" break; -case 865: +case 861: if (!yytrial) -#line 2134 "asmparse.y" +#line 2098 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11615 "asmparse.cpp.tab.c" +#line 11432 "asmparse.cpp.tab.c" break; -case 866: +case 862: if (!yytrial) -#line 2135 "asmparse.y" +#line 2099 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11621 "asmparse.cpp.tab.c" +#line 11438 "asmparse.cpp.tab.c" break; -case 869: +case 865: if (!yytrial) -#line 2142 "asmparse.y" +#line 2106 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11627 "asmparse.cpp.tab.c" +#line 11444 "asmparse.cpp.tab.c" break; -case 870: +case 866: if (!yytrial) -#line 2143 "asmparse.y" +#line 2107 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11633 "asmparse.cpp.tab.c" +#line 11450 "asmparse.cpp.tab.c" break; -#line 11635 "asmparse.cpp.tab.c" +#line 11452 "asmparse.cpp.tab.c" #line 802 "btyaccpa.ske" default: diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index e48fa77f0708d..acbb27c279210 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -1722,8 +1722,6 @@ BYTE* skipType(BYTE* ptr) case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: CorSigUncompressData((PCCOR_SIGNATURE&) ptr); // bound break; diff --git a/src/coreclr/inc/corhdr.h b/src/coreclr/inc/corhdr.h index 01c4bdda75c1b..3d98d2df451b7 100644 --- a/src/coreclr/inc/corhdr.h +++ b/src/coreclr/inc/corhdr.h @@ -912,12 +912,9 @@ typedef enum CorElementType // This is for signatures generated internally (which will not be persisted in any way). ELEMENT_TYPE_INTERNAL = 0x21, // INTERNAL - ELEMENT_TYPE_CVAR = 0x22, // a class const type variable CVAR - ELEMENT_TYPE_MCVAR = 0x23, // a method const type variable MCVAR - - ELEMENT_TYPE_CTARG = 0x24, // const + ELEMENT_TYPE_CTARG = 0x22, // const // Note that this is the max of base type excluding modifiers - ELEMENT_TYPE_MAX = 0x25, // first invalid element type + ELEMENT_TYPE_MAX = 0x23, // first invalid element type ELEMENT_TYPE_MODIFIER = 0x40, diff --git a/src/coreclr/inc/corpriv.h b/src/coreclr/inc/corpriv.h index 531eb801b3e6b..fe55945240083 100644 --- a/src/coreclr/inc/corpriv.h +++ b/src/coreclr/inc/corpriv.h @@ -218,9 +218,7 @@ typedef enum CorElementTypeZapSig // by the RID of a GenericParam token, encoded as a compressed integer. ELEMENT_TYPE_VAR_ZAPSIG = 0x3b, - // ZapSig encoding for ELEMENT_TYPE_CVAR and ELEMENT_TYPE_MCVAR. It is always followed - // by the RID of a GenericParam token, encoded as a compressed integer. - ELEMENT_TYPE_CVAR_ZAPSIG = 0x3c, + // ELEMENT_TYPE_UNUSED = 0x3c, // ZapSig encoding for native value types in IL stubs. IL stub signatures may contain // ELEMENT_TYPE_INTERNAL followed by ParamTypeDesc with ELEMENT_TYPE_VALUETYPE element diff --git a/src/coreclr/inc/cortypeinfo.h b/src/coreclr/inc/cortypeinfo.h index ede6fa0d7c3ee..44cae0d3fd46b 100644 --- a/src/coreclr/inc/cortypeinfo.h +++ b/src/coreclr/inc/cortypeinfo.h @@ -55,6 +55,4 @@ TYPEINFO(ELEMENT_TYPE_CMOD_REQD, NULL, NULL, 0, TYPEINFO(ELEMENT_TYPE_CMOD_OPT, NULL, NULL, 0, TYPE_GC_NONE, false, false, false, false, false, false) // 0x20 TYPEINFO(ELEMENT_TYPE_INTERNAL, NULL, NULL, 0, TYPE_GC_OTHER, false, false, false, false, false, false) // 0x21 -TYPEINFO(ELEMENT_TYPE_CVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, true) // 0x22 -TYPEINFO(ELEMENT_TYPE_MCVAR, NULL, NULL, TARGET_POINTER_SIZE, TYPE_GC_OTHER, false, false, false, false, true, true) // 0x23 -TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, 8, TYPE_GC_OTHER, false, false, false, false, false, true) // 0x24 +TYPEINFO(ELEMENT_TYPE_CTARG, NULL, NULL, 8, TYPE_GC_OTHER, false, false, false, false, false, true) // 0x22 diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index 7c19500373c69..d2395c3a7035d 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -690,8 +690,6 @@ PCCOR_SIGNATURE PrettyPrintType( } } break; - case ELEMENT_TYPE_CVAR : - appendStr(out, KEYWORD("const ")); case ELEMENT_TYPE_VAR : appendChar(out, '!'); n = CorSigUncompressData(typePtr); @@ -701,8 +699,6 @@ PCCOR_SIGNATURE PrettyPrintType( appendStrNum(out, n); break; - case ELEMENT_TYPE_MCVAR : - appendStr(out, KEYWORD("const ")); case ELEMENT_TYPE_MVAR : appendChar(out, '!'); appendChar(out, '!'); diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 69be0139abe2b..016f808ed4361 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -293,8 +293,6 @@ class SigParser CorElementType typ = (CorElementType) * m_ptr; if (typ < ELEMENT_TYPE_CMOD_REQD - || typ == ELEMENT_TYPE_CVAR - || typ == ELEMENT_TYPE_MCVAR || typ == ELEMENT_TYPE_CTARG) // fast path with no modifiers: single byte { if (etype != NULL) @@ -403,8 +401,6 @@ class SigParser CorElementType typ = (CorElementType) * m_ptr; if (typ < ELEMENT_TYPE_CMOD_REQD - || typ == ELEMENT_TYPE_CVAR - || typ == ELEMENT_TYPE_MCVAR || typ == ELEMENT_TYPE_CTARG) // fast path with no modifiers: single byte { if ((typ == ELEMENT_TYPE_STRING) || (typ == ELEMENT_TYPE_OBJECT)) @@ -654,7 +650,6 @@ class SigParser switch (bElementType) { case ELEMENT_TYPE_VAR_ZAPSIG: - case ELEMENT_TYPE_CVAR_ZAPSIG: case ELEMENT_TYPE_NATIVE_VALUETYPE_ZAPSIG: case ELEMENT_TYPE_CANON_ZAPSIG: case ELEMENT_TYPE_MODULE_ZAPSIG: diff --git a/src/coreclr/utilcode/sigparser.cpp b/src/coreclr/utilcode/sigparser.cpp index 119dbfaa40219..e1336590976c9 100644 --- a/src/coreclr/utilcode/sigparser.cpp +++ b/src/coreclr/utilcode/sigparser.cpp @@ -38,15 +38,12 @@ HRESULT SigParser::SkipExactlyOne() break; case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: IfFailRet(GetData(NULL)); // Skip variable number break; case ELEMENT_TYPE_CTARG: IfFailRet(GetConstArgData(NULL, NULL)); break; case ELEMENT_TYPE_VAR_ZAPSIG: - case ELEMENT_TYPE_CVAR_ZAPSIG: IfFailRet(GetData(NULL)); // Skip RID break; case ELEMENT_TYPE_OBJECT: diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 0894c53b13a36..a2e80cd0d5074 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -3056,13 +3056,11 @@ static bool IsSignatureForTypicalInstantiation(SigPointer sigptr, CorElementType { STANDARD_VM_CONTRACT; - CorElementType alternativeVarType = varType == ELEMENT_TYPE_VAR ? ELEMENT_TYPE_CVAR : ELEMENT_TYPE_MCVAR; - for (uint32_t i = 0; i < ntypars; i++) { CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type != varType || type != alternativeVarType) + if (type != varType) return false; uint32_t data; @@ -3179,7 +3177,7 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type == ELEMENT_TYPE_MVAR || type == ELEMENT_TYPE_MCVAR) + if (type == ELEMENT_TYPE_MVAR) { pResult->indirections = 2; pResult->testForNull = 0; @@ -3254,7 +3252,7 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); - if (type == ELEMENT_TYPE_VAR || type == ELEMENT_TYPE_CVAR) + if (type == ELEMENT_TYPE_VAR) { pResult->indirections = 3; pResult->testForNull = 0; @@ -9571,8 +9569,6 @@ CorInfoTypeWithMod CEEInfo::getArgType ( switch (type) { case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : - case ELEMENT_TYPE_CVAR : - case ELEMENT_TYPE_MCVAR : case ELEMENT_TYPE_VALUETYPE : case ELEMENT_TYPE_TYPEDBYREF : case ELEMENT_TYPE_INTERNAL : diff --git a/src/coreclr/vm/methodtable.h b/src/coreclr/vm/methodtable.h index fb29231714d7a..c735f809571b6 100644 --- a/src/coreclr/vm/methodtable.h +++ b/src/coreclr/vm/methodtable.h @@ -441,8 +441,6 @@ SystemVClassificationType CorInfoType2UnixAmd64Classification(CorElementType eeT SystemVClassificationTypeUnknown, // ELEMENT_TYPE_CMOD_OPT SystemVClassificationTypeUnknown, // ELEMENT_TYPE_INTERNAL - SystemVClassificationTypeIntegerReference, // ELEMENT_TYPE_CVAR - SystemVClassificationTypeIntegerReference, // ELEMENT_TYPE_MCVAR SystemVClassificationTypeStruct, // ELEMENT_TYPE_CTARG }; diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index c54b7690cd658..77c2d82c491ad 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -127,8 +127,6 @@ DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CMOD_REQD, -1, TYPE_GC DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CMOD_OPT, -1, TYPE_GC_NONE, 1) DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_INTERNAL, -1, TYPE_GC_NONE, 0) -DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CVAR, -1, TYPE_GC_OTHER, 1) -DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_MCVAR, -1, TYPE_GC_OTHER, 1) DEFINEELEMENTTYPEINFO(ELEMENT_TYPE_CTARG, 8, TYPE_GC_OTHER, 0) }; @@ -187,7 +185,7 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext if (pTypeContext != NULL) { uint32_t varNum; - if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_CVAR) + if (typ == ELEMENT_TYPE_VAR) { IfFailThrowBF(GetData(&varNum), BFA_BAD_COMPLUS_SIG, pSigModule); THROW_BAD_FORMAT_MAYBE(varNum < pTypeContext->m_classInst.GetNumArgs(), BFA_BAD_COMPLUS_SIG, pSigModule); @@ -196,7 +194,7 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext pSigBuilder->AppendPointer(pTypeContext->m_classInst[varNum].AsPtr()); return; } - if (typ == ELEMENT_TYPE_MVAR || typ == ELEMENT_TYPE_MCVAR) + if (typ == ELEMENT_TYPE_MVAR) { IfFailThrowBF(GetData(&varNum), BFA_BAD_COMPLUS_SIG, pSigModule); THROW_BAD_FORMAT_MAYBE(varNum < pTypeContext->m_methodInst.GetNumArgs(), BFA_BAD_COMPLUS_SIG, pSigModule); @@ -218,8 +216,6 @@ void SigPointer::ConvertToInternalExactlyOne(Module* pSigModule, SigTypeContext break; case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: { uint32_t varNum; // Skip variable number @@ -1255,7 +1251,6 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_VAR_ZAPSIG: - case ELEMENT_TYPE_CVAR_ZAPSIG: { #ifndef DACCESS_COMPILE RID rid; @@ -1300,7 +1295,6 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_VAR: - case ELEMENT_TYPE_CVAR: { if ((pSubst != NULL) && !pSubst->GetInst().IsNull()) { @@ -1335,7 +1329,6 @@ TypeHandle SigPointer::GetTypeHandleThrowing( } case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_MCVAR: { thRet = (psig.GetTypeVariableThrowing(pModule, typ, fLoadTypes, pTypeContext)); if (fLoadTypes == ClassLoader::LoadTypes) @@ -1484,7 +1477,7 @@ TypeHandle SigPointer::GetTypeHandleThrowing( for (uint32_t iInstantiation = 0; iInstantiation < instantiationCount; iInstantiation++) { IfFailThrowBF(tempsig.GetElemType(&elemType), BFA_BAD_SIGNATURE, pOrigModule); - if (elemType != ELEMENT_TYPE_VAR && elemType != ELEMENT_TYPE_CVAR) + if (elemType != ELEMENT_TYPE_VAR) { exactSelfRecursionDetected = false; break; @@ -2047,10 +2040,10 @@ TypeHandle SigPointer::GetTypeVariable(CorElementType et, if (!pTypeContext || - ((et == ELEMENT_TYPE_VAR || et == ELEMENT_TYPE_CVAR) && + ((et == ELEMENT_TYPE_VAR) && (index >= pTypeContext->m_classInst.GetNumArgs())) || - ((et == ELEMENT_TYPE_MVAR || et == ELEMENT_TYPE_MCVAR ) && + ((et == ELEMENT_TYPE_MVAR) && (index >= pTypeContext->m_methodInst.GetNumArgs()))) { LOG((LF_ALWAYS, LL_INFO1000, "GENERICS: Error: GetTypeVariable on out-of-range type variable\n")); @@ -2058,7 +2051,7 @@ TypeHandle SigPointer::GetTypeVariable(CorElementType et, TypeHandle thNull; RETURN(thNull); } - if (et == ELEMENT_TYPE_VAR || et == ELEMENT_TYPE_CVAR) + if (et == ELEMENT_TYPE_VAR) { RETURN(pTypeContext->m_classInst[index]); } @@ -2264,13 +2257,12 @@ BOOL SigPointer::IsClassHelper(Module* pModule, LPCUTF8 szClassName, const SigTy } BAD_FORMAT_NOTHROW_ASSERT((typ == ELEMENT_TYPE_VAR) || (typ == ELEMENT_TYPE_MVAR) || - (typ == ELEMENT_TYPE_CVAR) || (typ == ELEMENT_TYPE_MCVAR) || (typ == ELEMENT_TYPE_CLASS) || (typ == ELEMENT_TYPE_VALUETYPE) || (typ == ELEMENT_TYPE_OBJECT) || (typ == ELEMENT_TYPE_STRING) || (typ == ELEMENT_TYPE_INTERNAL) || (typ == ELEMENT_TYPE_GENERICINST)); - if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_MVAR || typ == ELEMENT_TYPE_CVAR || typ == ELEMENT_TYPE_MCVAR) + if (typ == ELEMENT_TYPE_VAR || typ == ELEMENT_TYPE_MVAR) { TypeHandle ty; @@ -2491,8 +2483,6 @@ SigPointer::PeekElemTypeClosed( if ((type == ELEMENT_TYPE_GENERICINST) || (type == ELEMENT_TYPE_VAR) || (type == ELEMENT_TYPE_MVAR) || - (type == ELEMENT_TYPE_CVAR) || - (type == ELEMENT_TYPE_MCVAR) || (type == ELEMENT_TYPE_INTERNAL)) { SigPointer sp(*this); @@ -2535,8 +2525,6 @@ SigPointer::PeekElemTypeClosed( } case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : - case ELEMENT_TYPE_CVAR : - case ELEMENT_TYPE_MCVAR : { TypeHandle th = sp.GetTypeVariable(type, pTypeContext); if (th.IsNull()) @@ -2602,8 +2590,6 @@ mdTypeRef SigPointer::PeekValueTypeTokenClosed(Module *pModule, const SigTypeCon } case ELEMENT_TYPE_VAR : case ELEMENT_TYPE_MVAR : - case ELEMENT_TYPE_CVAR : - case ELEMENT_TYPE_MCVAR : { SigPointer sp(*this); @@ -2660,7 +2646,7 @@ UINT MetaSig::GetElemSize(CorElementType etype, TypeHandle thValueType) if (!thValueType.IsNull()) return thValueType.GetSize(); - if (etype == ELEMENT_TYPE_VAR || etype == ELEMENT_TYPE_MVAR || etype == ELEMENT_TYPE_CVAR || etype == ELEMENT_TYPE_MCVAR) + if (etype == ELEMENT_TYPE_VAR || etype == ELEMENT_TYPE_MVAR) { LOG((LF_ALWAYS, LL_INFO1000, "GENERICS: Warning: SizeOf on VAR without instantiation\n")); return(sizeof(LPVOID)); @@ -3726,7 +3712,7 @@ MetaSig::CompareElementType( return FALSE; } - if ((*pSig2 == ELEMENT_TYPE_VAR || *pSig2 == ELEMENT_TYPE_CVAR) && (pSubst2 != NULL) && !pSubst2->GetInst().IsNull()) + if ((*pSig2 == ELEMENT_TYPE_VAR) && (pSubst2 != NULL) && !pSubst2->GetInst().IsNull()) { SigPointer inst = pSubst2->GetInst(); pSig2++; @@ -3753,7 +3739,7 @@ MetaSig::CompareElementType( state); } - if ((*pSig1 == ELEMENT_TYPE_VAR || *pSig1 == ELEMENT_TYPE_CVAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) + if ((*pSig1 == ELEMENT_TYPE_VAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) { SigPointer inst = pSubst1->GetInst(); pSig1++; @@ -3916,8 +3902,6 @@ MetaSig::CompareElementType( case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: { DWORD varNum1; IfFailThrow(CorSigUncompressData_EndPtr(pSig1, pEndSig1, &varNum1)); @@ -4644,7 +4628,7 @@ MetaSig::CompareElementTypeToToken( return FALSE; } - if ((*pSig1 == ELEMENT_TYPE_VAR || *pSig1 == ELEMENT_TYPE_CVAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) + if ((*pSig1 == ELEMENT_TYPE_VAR) && (pSubst1 != NULL) && !pSubst1->GetInst().IsNull()) { SigPointer inst = pSubst1->GetInst(); pSig1++; @@ -4717,8 +4701,6 @@ MetaSig::CompareElementTypeToToken( case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_CVAR: - case ELEMENT_TYPE_MCVAR: { return FALSE; } diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 4b5a4e24561fe..c73c47e4b8b71 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -413,14 +413,7 @@ class TypeVarTypeDesc : public TypeDesc LIMITED_METHOD_CONTRACT; BOOL isTypeDef = TypeFromToken(typeOrMethodDef) == mdtTypeDef; - if (RidFromToken(type)) - { - return isTypeDef ? ELEMENT_TYPE_CVAR : ELEMENT_TYPE_MCVAR; - } - else - { - return isTypeDef ? ELEMENT_TYPE_VAR : ELEMENT_TYPE_MVAR; - } + return isTypeDef ? ELEMENT_TYPE_VAR : ELEMENT_TYPE_MVAR; } #endif // #ifndef DACCESS_COMPILE diff --git a/src/coreclr/vm/zapsig.cpp b/src/coreclr/vm/zapsig.cpp index b56984accfdab..4addf89cb02f7 100644 --- a/src/coreclr/vm/zapsig.cpp +++ b/src/coreclr/vm/zapsig.cpp @@ -43,12 +43,6 @@ BOOL ZapSig::GetSignatureForTypeDesc(TypeDesc * desc, SigBuilder * pSigBuilder) if (context.externalTokens == ZapSig::NormalTokens) elemType = (CorElementType) ELEMENT_TYPE_VAR_ZAPSIG; } - else if (elemType == ELEMENT_TYPE_CVAR || elemType == ELEMENT_TYPE_MCVAR) - { - // Enable encoding of const type variables for NGen signature only. IBC toolchain is not aware of them yet. - if (context.externalTokens == ZapSig::NormalTokens) - elemType = (CorElementType) ELEMENT_TYPE_CVAR_ZAPSIG; - } pSigBuilder->AppendElementType(elemType); @@ -86,17 +80,14 @@ BOOL ZapSig::GetSignatureForTypeDesc(TypeDesc * desc, SigBuilder * pSigBuilder) break; case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_MCVAR: // _ASSERTE(!"Cannot encode ET_M(C)VAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR: - case ELEMENT_TYPE_CVAR: // _ASSERTE(!"Cannot encode ET_(C)VAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR_ZAPSIG: - case ELEMENT_TYPE_CVAR_ZAPSIG: { TypeVarTypeDesc * pTypeVarDesc = dac_cast(desc); Module * pVarTypeModule = pTypeVarDesc->GetModule(); From 66393999d7f080630a030efad03c53cc83a2cdc9 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 14:19:47 +0900 Subject: [PATCH 43/80] Clean up --- src/coreclr/ilasm/assembler.cpp | 26 -------------------------- src/coreclr/ilasm/assembler.h | 1 - src/coreclr/ilasm/grammar_after.cpp | 2 -- src/coreclr/ilasm/grammar_before.cpp | 2 -- src/coreclr/inc/corinfo.h | 3 +-- src/coreclr/inc/corpriv.h | 4 ++-- src/coreclr/inc/sigparser.h | 18 ++---------------- src/coreclr/jit/utils.cpp | 4 ---- src/coreclr/vm/jitinterface.cpp | 2 -- src/coreclr/vm/siginfo.cpp | 8 ++++---- src/coreclr/vm/typectxt.h | 2 +- src/coreclr/vm/typedesc.cpp | 6 ------ src/coreclr/vm/typedesc.h | 3 --- src/coreclr/vm/typedesc.inl | 2 +- src/coreclr/vm/typehandle.cpp | 6 ------ src/coreclr/vm/typehandle.h | 5 +---- src/coreclr/vm/typestring.cpp | 16 +--------------- src/coreclr/vm/zapsig.cpp | 4 ++-- 18 files changed, 15 insertions(+), 99 deletions(-) diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index a04c8d1ba327c..1bd1500980490 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -1613,32 +1613,6 @@ void Assembler::EmitInstrVarByName(Instr* instr, _In_ __nullterminated char* lab instr->opcode = -1; // in case we got here with error } -/**************************************************************************/ -void Assembler::EmitInstrTypeVar(Instr* instr, CorElementType type, int var) -{ - unsigned opc = instr->opcode; - if(m_fOptimize) - { - if(var <= 0xFF) - { - opc = instr->opcode = ShortOf(opc); - } - } - EmitOpcode(instr); - if (isShort(opc)) - { - EmitByte(type); - EmitByte(var); - } - else - { - short sh = (short)type; - EmitBytes((BYTE *)&sh,2); - sh = (short)var; - EmitBytes((BYTE *)&sh,2); - } -} - /**************************************************************************/ void Assembler::EmitInstrI(Instr* instr, int val) { diff --git a/src/coreclr/ilasm/assembler.h b/src/coreclr/ilasm/assembler.h index 95b57ace26402..a335bc29a8f25 100644 --- a/src/coreclr/ilasm/assembler.h +++ b/src/coreclr/ilasm/assembler.h @@ -900,7 +900,6 @@ class Assembler { void EmitInstrVar(Instr* instr, int var); void EmitInstrVarByName(Instr* instr, _In_ __nullterminated char* label); - void EmitInstrTypeVar(Instr* instr, CorElementType type, int var); void EmitInstrI(Instr* instr, int val); void EmitInstrI8(Instr* instr, __int64* val); void EmitInstrR(Instr* instr, double* val); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index b6b1164ee0a21..5f54bca631f39 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1410,8 +1410,6 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) case ELEMENT_TYPE_VARFIXUP: case ELEMENT_TYPE_MVARFIXUP: - case ELEMENT_TYPE_CVARFIXUP: - case ELEMENT_TYPE_MCVARFIXUP: if(fFixupType) { BYTE* pb = ptr-1; // ptr incremented in switch diff --git a/src/coreclr/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp index e13f5791c870f..b49a382f7d890 100644 --- a/src/coreclr/ilasm/grammar_before.cpp +++ b/src/coreclr/ilasm/grammar_before.cpp @@ -106,8 +106,6 @@ unsigned int uMethodBeginLine,uMethodBeginColumn; #define ELEMENT_TYPE_VARFIXUP (ELEMENT_TYPE_MAX+2) #define ELEMENT_TYPE_MVARFIXUP (ELEMENT_TYPE_MAX+3) -#define ELEMENT_TYPE_CVARFIXUP (ELEMENT_TYPE_MAX+4) -#define ELEMENT_TYPE_MCVARFIXUP (ELEMENT_TYPE_MAX+5) FIFO TyParFixupList; void FixupTyPars(PCOR_SIGNATURE pSig, ULONG cSig); diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index a1ac2c7998137..14dadcd44b2a6 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -718,8 +718,7 @@ enum CorInfoType // the JIT in "import only" mode. CORINFO_TYPE_VAR = 0x16, - CORINFO_TYPE_CVAR = 0x17, - CORINFO_TYPE_CTARG = 0x18, + CORINFO_TYPE_CTARG = 0x17, CORINFO_TYPE_COUNT, // number of jit types }; diff --git a/src/coreclr/inc/corpriv.h b/src/coreclr/inc/corpriv.h index fe55945240083..9fa3fbb9f71d2 100644 --- a/src/coreclr/inc/corpriv.h +++ b/src/coreclr/inc/corpriv.h @@ -217,8 +217,8 @@ typedef enum CorElementTypeZapSig // ZapSig encoding for ELEMENT_TYPE_VAR and ELEMENT_TYPE_MVAR. It is always followed // by the RID of a GenericParam token, encoded as a compressed integer. ELEMENT_TYPE_VAR_ZAPSIG = 0x3b, - - // ELEMENT_TYPE_UNUSED = 0x3c, + + // UNUSED = 0x3c, // ZapSig encoding for native value types in IL stubs. IL stub signatures may contain // ELEMENT_TYPE_INTERNAL followed by ParamTypeDesc with ELEMENT_TYPE_VALUETYPE element diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 016f808ed4361..15d09ec7c3660 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -933,33 +933,19 @@ class CorTypeInfo return GetTypeInfo_NoThrow(type).isGenVar; } - FORCEINLINE static BOOL IsConstGenericVariable(CorElementType type) - { - WRAPPER_NO_CONTRACT; - - CorTypeInfoEntry info = GetTypeInfo(type); - return info.isGenVar && info.isConst; - } - FORCEINLINE static BOOL IsConstGenericVariable_NoThrow(CorElementType type) - { - WRAPPER_NO_CONTRACT; - - CorTypeInfoEntry info = GetTypeInfo_NoThrow(type); - return info.isGenVar && info.isConst; - } FORCEINLINE static BOOL IsConstValue(CorElementType type) { WRAPPER_NO_CONTRACT; CorTypeInfoEntry info = GetTypeInfo(type); - return !info.isGenVar && info.isConst; + return info.isConst; } FORCEINLINE static BOOL IsConstValue_NoThrow(CorElementType type) { WRAPPER_NO_CONTRACT; CorTypeInfoEntry info = GetTypeInfo_NoThrow(type); - return !info.isGenVar && info.isConst; + return info.isConst; } FORCEINLINE static BOOL IsArray(CorElementType type) { diff --git a/src/coreclr/jit/utils.cpp b/src/coreclr/jit/utils.cpp index b28a98cf19b0b..df5b9710aea6b 100644 --- a/src/coreclr/jit/utils.cpp +++ b/src/coreclr/jit/utils.cpp @@ -33,9 +33,7 @@ const signed char opcodeSizes[] = { #define InlineNone_size 0 #define ShortInlineVar_size 1 - #define ShortInlineTypeVar_size 2 #define InlineVar_size 2 - #define InlineTypeVar_size 4 #define ShortInlineI_size 1 #define InlineI_size 4 #define InlineI8_size 8 @@ -60,9 +58,7 @@ const signed char opcodeSizes[] = #undef InlineNone_size #undef ShortInlineVar_size - #undef ShortInlineTypeVar_size #undef InlineVar_size - #undef InlineTypeVar_size #undef ShortInlineI_size #undef InlineI_size #undef InlineI8_size diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index a2e80cd0d5074..bde1491320775 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -417,8 +417,6 @@ CorInfoType CEEInfo::asCorInfoType(CorElementType eeType, CORINFO_TYPE_UNDEF, // CMOD_OPT CORINFO_TYPE_UNDEF, // INTERNAL - CORINFO_TYPE_CVAR, // CVAR - CORINFO_TYPE_CVAR, // MCVAR CORINFO_TYPE_CTARG // CTARG }; diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 77c2d82c491ad..ed1e79c541874 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1982,7 +1982,7 @@ TypeHandle SigPointer::GetGenericInstType(ModuleBase * pModule, return genericType; } -// SigPointer should be just after E_T_(C)VAR or E_T_M(C)VAR +// SigPointer should be just after E_T_VAR or E_T_MVAR TypeHandle SigPointer::GetTypeVariableThrowing(ModuleBase *pModule, // unused - may be used later for better error reporting CorElementType et, ClassLoader::LoadTypesFlag fLoadTypes/*=LoadTypes*/, @@ -2011,7 +2011,7 @@ TypeHandle SigPointer::GetTypeVariableThrowing(ModuleBase *pModule, // unused - RETURN(res); } -// SigPointer should be just after E_T_(C)VAR or E_T_M(C)VAR +// SigPointer should be just after E_T_VAR or E_T_MVAR TypeHandle SigPointer::GetTypeVariable(CorElementType et, const SigTypeContext *pTypeContext) { @@ -2040,10 +2040,10 @@ TypeHandle SigPointer::GetTypeVariable(CorElementType et, if (!pTypeContext || - ((et == ELEMENT_TYPE_VAR) && + (et == ELEMENT_TYPE_VAR && (index >= pTypeContext->m_classInst.GetNumArgs())) || - ((et == ELEMENT_TYPE_MVAR) && + (et == ELEMENT_TYPE_MVAR && (index >= pTypeContext->m_methodInst.GetNumArgs()))) { LOG((LF_ALWAYS, LL_INFO1000, "GENERICS: Error: GetTypeVariable on out-of-range type variable\n")); diff --git a/src/coreclr/vm/typectxt.h b/src/coreclr/vm/typectxt.h index d0fd0f699a0a9..01bae5a42142d 100644 --- a/src/coreclr/vm/typectxt.h +++ b/src/coreclr/vm/typectxt.h @@ -11,7 +11,7 @@ //------------------------------------------------------------------------ // A signature type context gives the information necessary to interpret -// the ELEMENT_TYPE_(C)VAR and ELEMENT_TYPE_M(C)VAR elements of a regular +// the ELEMENT_TYPE_VAR and ELEMENT_TYPE_MVAR elements of a regular // metadata signature. These are usually stack allocated at appropriate // points where the SigPointer objects are created, or are allocated // inside a MetaSig (which are themselves normally stack allocated) diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index d684fbe0dcba2..ace2854bb675b 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -284,12 +284,6 @@ BOOL TypeDesc::IsGenericVariable() return CorTypeInfo::IsGenericVariable_NoThrow(GetInternalCorElementType()); } -BOOL TypeDesc::IsConstGenericVariable() -{ - LIMITED_METHOD_DAC_CONTRACT; - return CorTypeInfo::IsConstGenericVariable_NoThrow(GetInternalCorElementType()); -} - BOOL TypeDesc::IsConstValue() { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index c73c47e4b8b71..1a1811d261fe5 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -103,9 +103,6 @@ class TypeDesc // VAR, MVAR BOOL IsGenericVariable(); - // CVAR, MCVAR - BOOL IsConstGenericVariable(); - // CTARG BOOL IsConstValue(); diff --git a/src/coreclr/vm/typedesc.inl b/src/coreclr/vm/typedesc.inl index 1257c1ede6bb6..76cf1af8e7846 100644 --- a/src/coreclr/vm/typedesc.inl +++ b/src/coreclr/vm/typedesc.inl @@ -52,7 +52,7 @@ inline TypeHandle ParamTypeDesc::GetTypeParam() { inline TypeHandle TypeDesc::GetConstValueType() { LIMITED_METHOD_DAC_CONTRACT; - if (IsConstGenericVariable()) + if (IsGenericVariable()) return TypeHandle(); _ASSERTE(IsConstValue()); diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index d24f0e3771311..877d2acc2f7aa 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -93,12 +93,6 @@ BOOL TypeHandle::IsGenericVariable() const { return(IsTypeDesc() && CorTypeInfo::IsGenericVariable_NoThrow(AsTypeDesc()->GetInternalCorElementType())); } -BOOL TypeHandle::IsConstGenericVariable() const { - LIMITED_METHOD_DAC_CONTRACT; - - return(IsTypeDesc() && CorTypeInfo::IsConstGenericVariable_NoThrow(AsTypeDesc()->GetInternalCorElementType())); -} - BOOL TypeHandle::HasTypeParam() const { LIMITED_METHOD_DAC_CONTRACT; diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index 4fd6a2857985f..4ae8a40889a0a 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -476,12 +476,9 @@ class TypeHandle // ARRAY or SZARRAY BOOL IsArray() const; - // VAR or MVAR or CVAR or MCVAR + // VAR or MVAR BOOL IsGenericVariable() const; - // CVAR or MCVAR - BOOL IsConstGenericVariable() const; - // CTARG BOOL IsConstValue() const; uint64_t GetConstValue() const; diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 22c956730f0ec..bd49b92ef2772 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -767,25 +767,11 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t LPCSTR szName = NULL; mdToken mdOwner; - mdToken mdType; - IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, &mdType, &szName)); + IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, NULL, &szName)); _ASSERTE(TypeFromToken(mdOwner) == mdtTypeDef || TypeFromToken(mdOwner) == mdtMethodDef); - if (ty.IsConstGenericVariable()) - { - _ASSERTE(TypeFromToken(mdType) == mdtTypeSpec && RidFromToken(mdType)); - tnb.Append(W("const ")); - ULONG cb; - PCCOR_SIGNATURE sig; - IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &sig, &cb)); - _ASSERTE(cb == 1); - PTR_MethodTable mtType = CoreLibBinder::GetElementType((CorElementType)*sig); - AppendTypeDef(tnb, mtType->GetModule()->GetMDImport(), mtType->GetCl(), format); - tnb.Append(W(" ")); - } - LPCSTR szPrefix; if (!(format & FormatGenericParam)) szPrefix = ""; diff --git a/src/coreclr/vm/zapsig.cpp b/src/coreclr/vm/zapsig.cpp index 4addf89cb02f7..139994d3acb95 100644 --- a/src/coreclr/vm/zapsig.cpp +++ b/src/coreclr/vm/zapsig.cpp @@ -80,11 +80,11 @@ BOOL ZapSig::GetSignatureForTypeDesc(TypeDesc * desc, SigBuilder * pSigBuilder) break; case ELEMENT_TYPE_MVAR: - // _ASSERTE(!"Cannot encode ET_M(C)VAR in a ZapSig"); + // _ASSERTE(!"Cannot encode ET_MVAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR: - // _ASSERTE(!"Cannot encode ET_(C)VAR in a ZapSig"); + // _ASSERTE(!"Cannot encode ET_VAR in a ZapSig"); return FALSE; case ELEMENT_TYPE_VAR_ZAPSIG: From 9db89cfe62fc0dbbba2aee0134c316126f62f034 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 20:40:57 +0900 Subject: [PATCH 44/80] Add missing superpmi implementation --- .../superpmi-shim-collector/icorjitinfo.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp index 48790166a53eb..f6a20fecb573b 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -973,6 +973,32 @@ CorInfoIsAccessAllowedResult interceptor_ICJI::canAccessClass( return temp; } + +bool interceptor_ICJI::isConstValue(CORINFO_CLASS_HANDLE cls) +{ + mc->cr->AddCall("isConstValue"); + bool temp = original_ICorJitInfo->isConstValue(cls); + mc->recIsConstValue(cls, temp); + return temp; +} + +uint64_t interceptor_ICJI::getConstValue(CORINFO_CLASS_HANDLE cls) +{ + mc->cr->AddCall("getConstValue"); + uint64_t temp = original_ICorJitInfo->getConstValue(cls); + mc->recGetConstValue(cls, temp); + return temp; +} + +CorInfoType interceptor_ICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) +{ + mc->cr->AddCall("getConstValueType"); + CorInfoType temp = original_ICorJitInfo->getConstValueType(cls); + mc->recGetConstValueType(cls, temp); + return temp; +} + + /**********************************************************************************/ // // ICorFieldInfo From f7c68cff3b2acbb79fd406381fbd5ff745a7c9c2 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 20:47:26 +0900 Subject: [PATCH 45/80] Fix the incorrect type mapping on uint64_t --- src/coreclr/inc/jiteeversionguid.h | 10 +++++----- .../tools/Common/JitInterface/CorInfoImpl_generated.cs | 4 ++-- .../Common/JitInterface/ThunkGenerator/ThunkInput.txt | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index 62a3fb0a2444d..f92152606c668 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* 02935181-629f-418b-911f-04befa2e8e22 */ - 0x02935181, - 0x629f, - 0x418b, - {0x91, 0x1f, 0x04, 0xbe, 0xfa, 0x2e, 0x8e, 0x22} +constexpr GUID JITEEVersionIdentifier = { /* 48bfbcf3-2f3c-49a5-ba3d-1a6e37ba0ed2 */ + 0x48bfbcf3, + 0x2f3c, + 0x49a5, + {0xba, 0x3d, 0x1a, 0x6e, 0x37, 0xba, 0x0e, 0xd2} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index 505d3b5498446..68227438cc3c4 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -1301,7 +1301,7 @@ private static byte _isConstValue(IntPtr thisHandle, IntPtr* ppException, CORINF } [UnmanagedCallersOnly] - private static unsigned long long _getConstValue(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + private static ulong _getConstValue(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -2641,7 +2641,7 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[84] = (delegate* unmanaged)&_getArrayIntrinsicID; callbacks[85] = (delegate* unmanaged)&_getArrayInitializationData; callbacks[86] = (delegate* unmanaged)&_isConstValue; - callbacks[87] = (delegate* unmanaged)&_getConstValue; + callbacks[87] = (delegate* unmanaged)&_getConstValue; callbacks[88] = (delegate* unmanaged)&_getConstValueType; callbacks[89] = (delegate* unmanaged)&_canAccessClass; callbacks[90] = (delegate* unmanaged)&_printFieldName; diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 67f350772542e..1515aa42e81ab 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -54,7 +54,7 @@ uint8_t*,byte* uint8_t**,byte** GSCookie*,IntPtr* GSCookie**,IntPtr** -uint64_t,unsigned long long +uint64_t,ulong bool*,ref bool BoolStar,byte*,bool*,bool* From 8709dd8e8e1bf00e4502ecbfa966da1ae5f41d96 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 20:54:52 +0900 Subject: [PATCH 46/80] Add NYI for JIT-EE interfaces in managed type system. --- .../tools/Common/JitInterface/CorInfoImpl.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index 453e80c381e5c..ee6c290501ef3 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -2978,6 +2978,21 @@ private CorInfoIsAccessAllowedResult canAccessClass(ref CORINFO_RESOLVED_TOKEN p return CorInfoIsAccessAllowedResult.CORINFO_ACCESS_ALLOWED; } + private bool isConstValue(CORINFO_CLASS_STRUCT_* cls) + { + throw new NotImplementedException(); + } + + private ulong getConstValue(CORINFO_CLASS_STRUCT_* cls) + { + throw new NotImplementedException(); + } + + private CorInfoType getConstValueType(CORINFO_CLASS_STRUCT_* cls) + { + throw new NotImplementedException(); + } + private nuint printFieldName(CORINFO_FIELD_STRUCT_* fld, byte* buffer, nuint bufferSize, nuint* requiredBufferSize) { FieldDesc field = HandleToObject(fld); From 1bebc8d24f0b08d8b357cd657a6a15e4a7a30cc6 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 21:01:22 +0900 Subject: [PATCH 47/80] Initialize pResolvedToken correctly --- src/coreclr/vm/jitinterface.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index bde1491320775..5c355952e74c9 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -891,6 +891,9 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken pResolvedToken->cbTypeSpec = NULL; pResolvedToken->pMethodSpec = NULL; pResolvedToken->cbMethodSpec = NULL; + pResolvedToken->isConstValue = false; + pResolvedToken->constValueType = ELEMENT_TYPE_END; + pResolvedToken->constValue = 0; TypeHandle th; MethodDesc * pMD = NULL; @@ -1118,10 +1121,6 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken } else { - pResolvedToken->isConstValue = false; - pResolvedToken->constValueType = ELEMENT_TYPE_END; - pResolvedToken->constValue = 0; - switch (tokenType) { case CORINFO_TOKENKIND_Ldtoken: From 6f9db7c4db787f777c39d6d8f553440da4648967 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 21:25:20 +0900 Subject: [PATCH 48/80] Use uint64_t for all const values --- src/coreclr/vm/siginfo.cpp | 10 ++-------- src/coreclr/vm/typedesc.h | 13 +++---------- src/coreclr/vm/typedesc.inl | 2 +- src/coreclr/vm/typehash.cpp | 38 ++----------------------------------- src/coreclr/vm/typekey.h | 35 +++++----------------------------- 5 files changed, 13 insertions(+), 85 deletions(-) diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index ed1e79c541874..2f6e22b8df57f 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1343,14 +1343,8 @@ TypeHandle SigPointer::GetTypeHandleThrowing( uint32_t cb; PCCOR_SIGNATURE elem; IfFailThrowBF(psig.GetConstTypeArg(&valueType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); - uint64_t value = *(uint64_t*)elem; - uint64_t mask = 0; - for (uint32_t i = 0; i < cb; i++) - { - mask = mask << 8; - mask = mask | 0xFF; - } - value = value & mask; + uint64_t value = 0; + memcpy(&value, elem, cb); thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value, typ, fLoadTypes, level); #else DacNotImpl(); diff --git a/src/coreclr/vm/typedesc.h b/src/coreclr/vm/typedesc.h index 1a1811d261fe5..d885099c88147 100644 --- a/src/coreclr/vm/typedesc.h +++ b/src/coreclr/vm/typedesc.h @@ -333,7 +333,7 @@ class ConstValueTypeDesc : public TypeDesc } CONTRACTL_END; - m_value.asUint64 = value; + m_value = value; } #endif // #ifndef DACCESS_COMPILE @@ -354,19 +354,12 @@ class ConstValueTypeDesc : public TypeDesc LIMITED_METHOD_CONTRACT; SUPPORTS_DAC; - return m_value.asUint64; + return m_value; } protected: TypeHandle m_type; - union { - uint8_t asUint8; - uint16_t asUint16; - uint32_t asUint32; - uint64_t asUint64; - float asFloat; - double asDouble; - } m_value; + uint64_t m_value; }; /*************************************************************************/ diff --git a/src/coreclr/vm/typedesc.inl b/src/coreclr/vm/typedesc.inl index 76cf1af8e7846..cd03d3322444b 100644 --- a/src/coreclr/vm/typedesc.inl +++ b/src/coreclr/vm/typedesc.inl @@ -65,7 +65,7 @@ inline uint64_t TypeDesc::GetConstValue() { _ASSERTE(IsConstValue()); ConstValueTypeDesc* asConstValue = dac_cast(this); - return(asConstValue->m_value.asUint64); + return(asConstValue->m_value); } inline Instantiation TypeDesc::GetClassOrArrayInstantiation() { diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index b9fbd1ba9ae9c..6a2045a1db9ed 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -361,42 +361,8 @@ EETypeHashEntry_t *EETypeHashTable::FindItem(TypeKey* pKey) uint64_t sourceValue = pSearch->GetTypeHandle().GetConstValue(); uint64_t targetValue = pKey->GetConstValue(); - switch (valueType) - { - case ELEMENT_TYPE_BOOLEAN: - case ELEMENT_TYPE_CHAR: - case ELEMENT_TYPE_I1: - case ELEMENT_TYPE_U1: - if (*(uint8_t*)&sourceValue != *(uint8_t*)&targetValue) - continue; - break; - case ELEMENT_TYPE_I2: - case ELEMENT_TYPE_U2: - if (*(uint16_t*)&sourceValue != *(uint16_t*)&targetValue) - continue; - break; - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: - if (*(uint32_t*)&sourceValue != *(uint32_t*)&targetValue) - continue; - break; - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: - if (*(uint64_t*)&sourceValue != *(uint64_t*)&targetValue) - continue; - break; - case ELEMENT_TYPE_R4: - if (*(float*)&sourceValue != *(float*)&targetValue) - continue; - break; - case ELEMENT_TYPE_R8: - if (*(double*)&sourceValue != *(double*)&targetValue) - continue; - break; - default: - _ASSERTE(!"UNKNOWN CONST VALUE TYPE"); - break; - } + if (sourceValue != targetValue) + continue; result = pSearch; break; diff --git a/src/coreclr/vm/typekey.h b/src/coreclr/vm/typekey.h index 43551d78c425a..96d38384a301d 100644 --- a/src/coreclr/vm/typekey.h +++ b/src/coreclr/vm/typekey.h @@ -63,14 +63,7 @@ class TypeKey struct { TADDR m_valueType; - union { - uint8_t asUint8; - uint16_t asUint16; - uint32_t asUint32; - uint64_t asUint64; - float asFloat; - double asDouble; - } m_value; + uint64_t m_value; } asConstValue; } u; @@ -122,7 +115,7 @@ class TypeKey SUPPORTS_DAC; PRECONDITION(CheckPointer(valueType)); m_kind = ELEMENT_TYPE_CTARG; - u.asConstValue.m_value.asUint64 = value; + u.asConstValue.m_value = value; u.asConstValue.m_valueType = valueType.AsTAddr(); } @@ -163,7 +156,7 @@ class TypeKey WRAPPER_NO_CONTRACT; SUPPORTS_DAC; PRECONDITION(m_kind == ELEMENT_TYPE_CTARG); - return u.asConstValue.m_value.asUint64; + return u.asConstValue.m_value; } BOOL IsConstructed() const @@ -284,26 +277,8 @@ class TypeKey } else if (pKey1->m_kind == ELEMENT_TYPE_CTARG) { - if (pKey1->u.asConstValue.m_valueType != pKey2->u.asConstValue.m_valueType) - { - return FALSE; - } - CorElementType valueType = TypeHandle::FromTAddr(pKey1->u.asConstValue.m_valueType).GetInternalCorElementType(); - _ASSERTE(valueType > ELEMENT_TYPE_VOID); - if (valueType <= ELEMENT_TYPE_U1) - return pKey1->u.asConstValue.m_value.asUint8 == pKey2->u.asConstValue.m_value.asUint8; - if (valueType <= ELEMENT_TYPE_U2) - return pKey1->u.asConstValue.m_value.asUint16 == pKey2->u.asConstValue.m_value.asUint16; - if (valueType <= ELEMENT_TYPE_U4) - return pKey1->u.asConstValue.m_value.asUint32 == pKey2->u.asConstValue.m_value.asUint32; - if (valueType <= ELEMENT_TYPE_U8) - return pKey1->u.asConstValue.m_value.asUint64 == pKey2->u.asConstValue.m_value.asUint64; - if (valueType == ELEMENT_TYPE_R4) - return pKey1->u.asConstValue.m_value.asFloat == pKey2->u.asConstValue.m_value.asFloat; - if (valueType == ELEMENT_TYPE_R8) - return pKey1->u.asConstValue.m_value.asDouble == pKey2->u.asConstValue.m_value.asDouble; - _ASSERTE(!"INVALID CONST TYPE ARG TYPE"); - return FALSE; + return pKey1->u.asConstValue.m_valueType == pKey2->u.asConstValue.m_valueType + && pKey1->u.asConstValue.m_value == pKey2->u.asConstValue.m_value; } else { From d1a465289f9151757c70c6ee78ab54e6c0c03df1 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 28 Jul 2023 21:40:35 +0900 Subject: [PATCH 49/80] Clean up unmeaningful changes --- src/coreclr/ilasm/grammar_after.cpp | 2 +- src/coreclr/ildasm/dis.cpp | 2 +- src/coreclr/inc/formattype.cpp | 4 ++-- src/coreclr/inc/opcode.def | 14 +++++++------- src/coreclr/inc/openum.h | 3 ++- src/coreclr/inc/sigparser.h | 8 +++++--- src/coreclr/utilcode/sigparser.cpp | 2 +- src/coreclr/vm/ceeload.h | 2 +- src/coreclr/vm/methodtable.h | 2 +- src/coreclr/vm/methodtablebuilder.cpp | 4 ---- src/coreclr/vm/methodtablebuilder.h | 1 - 11 files changed, 21 insertions(+), 23 deletions(-) diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 5f54bca631f39..492411f2ae438 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1402,7 +1402,7 @@ unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType) // ptr = skipType(ptr, fFixupType); // break goto AGAIN; - + case ELEMENT_TYPE_VAR: case ELEMENT_TYPE_MVAR: CorSigUncompressData((PCCOR_SIGNATURE&) ptr); // bound diff --git a/src/coreclr/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp index 30b61dfe2f941..58c86e0e9ae74 100644 --- a/src/coreclr/ildasm/dis.cpp +++ b/src/coreclr/ildasm/dis.cpp @@ -1483,6 +1483,7 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md else szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s A_%d",pszInstrName, v); } break; + case CEE_LDLOCA: case CEE_LDLOC: case CEE_STLOC: @@ -1516,7 +1517,6 @@ BOOL Disassemble(IMDInternalImport *pImport, BYTE *ILHeader, void *GUICookie, md PadTheString; } szptr+=sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr), "%-10s 0x%x", pszInstrName, v); - break; PC += 4; break; } diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index d2395c3a7035d..b0fa9c93cd673 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -689,7 +689,7 @@ PCCOR_SIGNATURE PrettyPrintType( #endif } } break; - + case ELEMENT_TYPE_VAR : appendChar(out, '!'); n = CorSigUncompressData(typePtr); @@ -698,7 +698,7 @@ PCCOR_SIGNATURE PrettyPrintType( #endif appendStrNum(out, n); break; - + case ELEMENT_TYPE_MVAR : appendChar(out, '!'); appendChar(out, '!'); diff --git a/src/coreclr/inc/opcode.def b/src/coreclr/inc/opcode.def index 597b6561c0b75..652b959203e8e 100644 --- a/src/coreclr/inc/opcode.def +++ b/src/coreclr/inc/opcode.def @@ -200,12 +200,12 @@ OPDEF(CEE_STELEM_REF, "stelem.ref", PopRef+PopI+PopRef, Pu OPDEF(CEE_LDELEM, "ldelem", PopRef+PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0xA3, NEXT) OPDEF(CEE_STELEM, "stelem", PopRef+PopI+Pop1, Push0, InlineType, IObjModel, 1, 0xFF, 0xA4, NEXT) OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, IObjModel, 1, 0xFF, 0xA5, NEXT) -OPDEF(CEE_UNUSED05, "unused", Pop0, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xA6, NEXT) -OPDEF(CEE_UNUSED06, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) -OPDEF(CEE_UNUSED07, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) -OPDEF(CEE_UNUSED08, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) -OPDEF(CEE_UNUSED09, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAA, NEXT) -OPDEF(CEE_UNUSED10, "unused", Pop0, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) +OPDEF(CEE_UNUSED5, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA6, NEXT) +OPDEF(CEE_UNUSED6, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) +OPDEF(CEE_UNUSED7, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) +OPDEF(CEE_UNUSED8, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) +OPDEF(CEE_UNUSED9, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAA, NEXT) +OPDEF(CEE_UNUSED10, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) OPDEF(CEE_UNUSED11, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAC, NEXT) OPDEF(CEE_UNUSED12, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAD, NEXT) OPDEF(CEE_UNUSED13, "unused", Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAE, NEXT) @@ -299,7 +299,7 @@ OPDEF(CEE_CLT, "clt", Pop1+Pop1, Pu OPDEF(CEE_CLT_UN, "clt.un", Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) OPDEF(CEE_LDFTN, "ldftn", Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) OPDEF(CEE_LDVIRTFTN, "ldvirtftn", PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) -OPDEF(CEE_LDUNUSED49, "unused", Pop0, Push1, InlineNone, IPrimitive, 2, 0xFE, 0x08, NEXT) +OPDEF(CEE_UNUSED56, "unused", Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x08, NEXT) OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) OPDEF(CEE_STARG, "starg", Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) diff --git a/src/coreclr/inc/openum.h b/src/coreclr/inc/openum.h index 58da0256e7e65..730dfb017703a 100644 --- a/src/coreclr/inc/openum.h +++ b/src/coreclr/inc/openum.h @@ -18,7 +18,7 @@ typedef enum opcode_format_t { InlineNone = 0, // no inline args InlineVar = 1, // local variable (U2 (U1 if Short on)) - InlineI = 2, // a signed integer (I4 (I1 if Short on)) + InlineI = 2, // an signed integer (I4 (I1 if Short on)) InlineR = 3, // a real number (R8 (R4 if Short on)) InlineBrTarget = 4, // branch target (I4 (I1 if Short on)) InlineI8 = 5, @@ -31,6 +31,7 @@ typedef enum opcode_format_t InlineTok = 12, // a meta-data token of unknown type (U4) InlineSwitch = 13, // count (U4), pcrel1 (U4) .... pcrelN (U4) InlinePhi = 14, // count (U1), var1 (U2) ... varN (U2) + // WATCH OUT we are close to the limit here, if you add // more enumerations you need to change ShortIline definition below diff --git a/src/coreclr/inc/sigparser.h b/src/coreclr/inc/sigparser.h index 15d09ec7c3660..a8dc6255862e9 100644 --- a/src/coreclr/inc/sigparser.h +++ b/src/coreclr/inc/sigparser.h @@ -161,11 +161,11 @@ class SigParser } //------------------------------------------------------------------------ - // Remove one compressed const type argument value (using CorSigUncompressConstArgData) + // Remove one compressed const type argument value (using CorSigUncompressConstTypeArgData) // from the head of the stream and return it. //------------------------------------------------------------------------ __checkReturn - FORCEINLINE HRESULT GetConstArgData(PCCOR_SIGNATURE* pData, uint32_t* pCb) + FORCEINLINE HRESULT GetConstTypeArgData(PCCOR_SIGNATURE* pData, uint32_t* pCb) { WRAPPER_NO_CONTRACT; SUPPORTS_DAC; @@ -446,7 +446,7 @@ class SigParser } *pSize = 0; - + BYTE bElementType = 0; CHECK_SIZE: hr = sigTemp.GetByte(&bElementType); @@ -511,6 +511,7 @@ class SigParser // We need to check the next CorElementType goto CHECK_SIZE; break; + case ELEMENT_TYPE_END: case ELEMENT_TYPE_CMOD_REQD: case ELEMENT_TYPE_CMOD_OPT: @@ -520,6 +521,7 @@ class SigParser case ELEMENT_TYPE_VALUETYPE: _ASSERTE(!"Asked for the size of an element that doesn't have a size!"); return E_INVALIDARG; + default: _ASSERTE( !"CorSigGetElementTypeSize given invalid signature to size!" ); diff --git a/src/coreclr/utilcode/sigparser.cpp b/src/coreclr/utilcode/sigparser.cpp index e1336590976c9..ea1758ae2f3b1 100644 --- a/src/coreclr/utilcode/sigparser.cpp +++ b/src/coreclr/utilcode/sigparser.cpp @@ -41,7 +41,7 @@ HRESULT SigParser::SkipExactlyOne() IfFailRet(GetData(NULL)); // Skip variable number break; case ELEMENT_TYPE_CTARG: - IfFailRet(GetConstArgData(NULL, NULL)); + IfFailRet(GetConstTypeArgData(NULL, NULL)); break; case ELEMENT_TYPE_VAR_ZAPSIG: IfFailRet(GetData(NULL)); // Skip RID diff --git a/src/coreclr/vm/ceeload.h b/src/coreclr/vm/ceeload.h index c8648e6c752cc..7d8bbc07b185e 100644 --- a/src/coreclr/vm/ceeload.h +++ b/src/coreclr/vm/ceeload.h @@ -758,7 +758,7 @@ class Module : public ModuleBase // Linear mapping from GenericParam token to TypeVarTypeDesc* LookupMap m_GenericParamToDescMap; - + // Linear mapping from TypeDef token to the MethodTable * for its canonical generic instantiation // If the type is not generic, the entry is guaranteed to be NULL. This means we are paying extra // space in order to use the LookupMap infrastructure, but what it buys us is IBC support and diff --git a/src/coreclr/vm/methodtable.h b/src/coreclr/vm/methodtable.h index c735f809571b6..0409e74855dea 100644 --- a/src/coreclr/vm/methodtable.h +++ b/src/coreclr/vm/methodtable.h @@ -1015,7 +1015,7 @@ class MethodTable void DoFullyLoad(Generics::RecursionGraph * const pVisited, const ClassLoadLevel level, DFLPendingList * const pPending, BOOL * const pfBailed, const InstantiationContext * const pInstContext); - + //------------------------------------------------------------------- // METHOD TABLES AS TYPE DESCRIPTORS // diff --git a/src/coreclr/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp index bc587325829d8..9b0982149b665 100644 --- a/src/coreclr/vm/methodtablebuilder.cpp +++ b/src/coreclr/vm/methodtablebuilder.cpp @@ -72,7 +72,6 @@ MethodTableBuilder::CreateClass( Module *pModule, BOOL fHasLayout, BOOL fDelegate, BOOL fIsEnum, - BOOL fIsConstValue, const MethodTableBuilder::bmtGenericsInfo *bmtGenericsInfo, LoaderAllocator * pAllocator, AllocMemTracker *pamTracker) @@ -12372,8 +12371,6 @@ ClassLoader::CreateTypeHandleForTypeDefThrowing( // This is a delegate class if it derives from MulticastDelegate (we do not allow single cast delegates) BOOL fIsDelegate = pParentMethodTable && pParentMethodTable == g_pMulticastDelegateClass; - BOOL fIsConstValue = false; - // Create a EEClass entry for it, filling out a few fields, such as the parent class token // (and the generic type should we be creating an instantiation) EEClass * pClass = MethodTableBuilder::CreateClass( @@ -12382,7 +12379,6 @@ ClassLoader::CreateTypeHandleForTypeDefThrowing( fHasLayout, fIsDelegate, fIsEnum, - fIsConstValue, &genericsInfo, pAllocator, pamTracker); diff --git a/src/coreclr/vm/methodtablebuilder.h b/src/coreclr/vm/methodtablebuilder.h index 4462767ba7b99..29889045b4479 100644 --- a/src/coreclr/vm/methodtablebuilder.h +++ b/src/coreclr/vm/methodtablebuilder.h @@ -84,7 +84,6 @@ class MethodTableBuilder BOOL fHasLayout, BOOL fDelegate, BOOL fIsEnum, - BOOL fIsConstValue, const bmtGenericsInfo *bmtGenericsInfo, LoaderAllocator *pAllocator, AllocMemTracker *pamTracker); From 21d262f7a7656fe79e31194c8568519ef2a97929 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 20:57:14 +0900 Subject: [PATCH 50/80] Parsing bytearray and string --- src/coreclr/ilasm/asmparse.y | 43 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 9287 +++++++++++------------ 2 files changed, 4567 insertions(+), 4763 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index eb9431e057a32..fd72985d7925e 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -153,7 +153,7 @@ %type int64 %type sigArgs0 sigArgs1 sigArg type bound bounds1 bytes hexbytes nativeType marshalBlob initOpt compQstring caValue %type marshalClause -%type fieldInit serInit fieldSerInit constTypeArg +%type fieldInit serInit fieldSerInit %type f32seq f64seq i8seq i16seq i32seq i64seq boolSeq sqstringSeq classSeq objSeq %type simpleType %type tyArgs0 tyArgs1 tyArgs2 typeList typeListNotEmpty tyBound @@ -1676,45 +1676,6 @@ variantType : /* EMPTY */ { $$ = VT_EMPTY; } | CLSID_ { $$ = VT_CLSID; } ; -constTypeArg : FLOAT32_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*$3); - $$->appendInt32(*((__int32*)&f)); delete $3; } - | FLOAT64_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); - $$->appendInt64((__int64 *)$3); delete $3; } - | FLOAT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); - $$->appendInt32($3); } - | FLOAT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); - $$->appendInt64((__int64 *)$3); delete $3; } - | INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I8); - $$->appendInt64((__int64 *)$3); delete $3; } - | INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I4); - $$->appendInt32($3); } - | INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I2); - $$->appendInt16($3); } - | INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I1); - $$->appendInt8($3); } - | UNSIGNED_ INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); - $$->appendInt64((__int64 *)$4); delete $4; } - | UNSIGNED_ INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); - $$->appendInt32($4); } - | UNSIGNED_ INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); - $$->appendInt16($4); } - | UNSIGNED_ INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); - $$->appendInt8($4); } - | UINT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); - $$->appendInt64((__int64 *)$3); delete $3; } - | UINT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); - $$->appendInt32($3); } - | UINT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); - $$->appendInt16($3); } - | UINT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); - $$->appendInt8($3); } - | CHAR_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_CHAR); - $$->appendInt16($3); } - | BOOL_ '(' truefalse ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_BOOLEAN); - $$->appendInt8($3);} - ; - /* Managed types for signatures */ type : CLASS_ className { if($2 == PASM->m_tkSysString) { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_STRING); } @@ -1725,7 +1686,7 @@ type : CLASS_ className { if($2 == PASM->m | OBJECT_ { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_OBJECT); } | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } - | CONST_ constTypeArg { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } + | CONST_ fieldInit { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } | type '&' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_BYREF); } diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 27ed475458ee8..38b87e08b3701 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -55,7 +55,7 @@ typedef union { unsigned short opcode; } YYSTYPE; #define YYSTYPE YYSTYPE -#line 59 "asmparse.cpp.tab.c" +#line 59 "asmparse.cpp" #define ERROR_ 257 #define BAD_COMMENT_ 258 #define BAD_LITERAL_ 259 @@ -345,63 +345,63 @@ typedef union { #define CONST_ 543 #define YYERRCODE 256 static int yylhs[] = { -1, - 0, 0, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 138, 138, - 38, 38, 135, 135, 135, 2, 2, 1, 1, 1, - 9, 26, 26, 25, 25, 25, 136, 136, 136, 136, - 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 96, 96, 96, 96, 97, 97, 97, 97, 10, 11, - 76, 75, 75, 62, 64, 64, 64, 65, 65, 65, - 68, 68, 134, 134, 134, 63, 63, 63, 63, 63, - 63, 132, 132, 132, 121, 12, 12, 12, 12, 12, - 12, 120, 139, 115, 140, 141, 113, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 142, 142, 143, 143, 114, 114, - 144, 144, 59, 59, 60, 60, 72, 72, 18, 18, + 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 137, 137, + 38, 38, 134, 134, 134, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 135, 135, 135, 135, + 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 95, 95, 95, 95, 96, 96, 96, 96, 10, 11, + 75, 74, 74, 61, 63, 63, 63, 64, 64, 64, + 67, 67, 133, 133, 133, 62, 62, 62, 62, 62, + 62, 131, 131, 131, 120, 12, 12, 12, 12, 12, + 12, 119, 138, 114, 139, 140, 112, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 141, 141, 142, 142, 113, 113, + 143, 143, 58, 58, 59, 59, 71, 71, 18, 18, 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 71, 71, 71, 70, 70, 61, 23, 23, 24, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 118, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 4, 4, 37, - 37, 16, 16, 78, 78, 78, 78, 78, 78, 78, + 70, 70, 70, 69, 69, 60, 23, 23, 24, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 117, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 4, 4, 37, + 37, 16, 16, 77, 77, 77, 77, 77, 77, 77, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 79, 77, 77, 77, 77, 77, 77, 146, - 146, 84, 84, 84, 147, 147, 152, 152, 152, 152, - 152, 152, 152, 152, 148, 85, 85, 85, 149, 149, - 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, - 36, 36, 155, 116, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 3, 3, 3, 13, 13, 13, 13, - 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 156, 117, 117, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, - 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, - 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, - 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, - 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, + 8, 8, 78, 76, 76, 76, 76, 76, 76, 145, + 145, 83, 83, 83, 146, 146, 151, 151, 151, 151, + 151, 151, 151, 151, 147, 84, 84, 84, 148, 148, + 152, 152, 152, 152, 152, 152, 152, 153, 40, 40, + 36, 36, 154, 115, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 3, 3, 3, 13, 13, 13, 13, + 13, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 155, 116, 116, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 159, 160, 157, 162, + 162, 161, 161, 161, 164, 163, 163, 163, 163, 167, + 167, 167, 170, 165, 168, 169, 166, 166, 166, 118, + 171, 171, 173, 173, 173, 172, 172, 174, 174, 14, + 14, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, + 43, 43, 43, 43, 43, 176, 33, 33, 34, 34, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 45, - 45, 45, 46, 46, 46, 50, 50, 49, 49, 48, - 48, 47, 47, 51, 51, 52, 52, 52, 53, 53, - 53, 53, 54, 54, 151, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 6, 6, 6, 6, 6, 56, 56, 57, - 57, 58, 58, 27, 27, 28, 28, 29, 29, 29, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 5, 5, 74, 74, 74, 74, 35, 35, 35, 35, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, + 44, 44, 45, 45, 45, 49, 49, 48, 48, 47, + 47, 46, 46, 50, 50, 51, 51, 51, 52, 52, + 52, 52, 53, 53, 150, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 6, 6, 6, 6, 6, 55, 55, 56, + 56, 57, 57, 27, 27, 28, 28, 29, 29, 29, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 5, 5, 73, 73, 73, 73, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, @@ -412,26 +412,24 @@ static int yylhs[] = { -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, - 133, 133, 133, 133, 133, 133, 67, 67, 67, 66, - 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, - 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 178, 178, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 123, 123, 91, 91, 92, 92, - 179, 124, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 125, 125, 180, 180, 180, 69, 69, 181, - 181, 181, 181, 181, 181, 182, 184, 183, 126, 126, - 127, 127, 185, 185, 185, 185, 128, 150, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 129, 129, - 186, 186, 186, 186, 186, 186, 186, 130, 130, 95, - 95, 95, 131, 131, 187, 187, 187, 187, + 30, 30, 30, 30, 30, 30, 30, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 32, 32, 31, 31, 31, + 31, 31, 132, 132, 132, 132, 132, 132, 66, 66, + 66, 65, 65, 89, 89, 86, 86, 87, 17, 17, + 39, 39, 39, 39, 39, 39, 39, 39, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 177, 177, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 122, 122, 90, 90, + 91, 91, 178, 123, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 124, 124, 179, 179, 179, 68, + 68, 180, 180, 180, 180, 180, 180, 181, 183, 182, + 125, 125, 126, 126, 184, 184, 184, 184, 127, 149, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 128, 128, 185, 185, 185, 185, 185, 185, 185, 129, + 129, 94, 94, 94, 130, 130, 186, 186, 186, 186, }; static int yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -501,554 +499,534 @@ static int yylen[] = { 2, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, - 2, 1, 3, 2, 2, 3, 4, 2, 2, 2, - 5, 5, 7, 4, 3, 2, 3, 2, 1, 1, - 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, - 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, - 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, - 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, - 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, + 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, + 2, 2, 5, 5, 7, 4, 3, 2, 3, 2, + 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, + 3, 2, 6, 7, 3, 3, 3, 6, 0, 1, + 3, 5, 6, 4, 4, 1, 3, 3, 1, 1, + 1, 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, - 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, - 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, - 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, - 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, - 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, - 2, 2, 0, 2, 4, 3, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 5, 4, 7, + 6, 7, 6, 9, 8, 3, 8, 4, 0, 2, + 0, 1, 3, 3, 0, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 0, 2, 3, 1, 1, 1, + 1, 3, 8, 2, 3, 1, 1, 3, 3, 3, + 4, 6, 0, 2, 3, 1, 3, 1, 4, 3, + 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 0, 2, 2, 3, 3, 4, 2, 1, 1, 3, + 5, 0, 2, 2, 0, 2, 4, 3, 1, 1, }; static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 782, - 783, 0, 0, 0, 0, 0, 0, 860, 0, 0, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 764, + 765, 0, 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 839, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 108, 0, 275, 0, 0, 821, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 0, 0, 0, 219, 220, 0, 0, 226, 227, 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 803, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 557, 733, 0, 710, 718, - 716, 0, 719, 720, 721, 722, 723, 724, 729, 730, - 731, 732, 692, 717, 0, 709, 0, 0, 0, 495, + 0, 0, 0, 785, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 557, 715, 0, 692, 700, + 698, 0, 701, 702, 703, 704, 705, 706, 711, 712, + 713, 714, 674, 699, 0, 691, 0, 0, 0, 495, 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, - 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 813, 831, 849, 863, 0, 0, 0, 0, 0, + 0, 795, 813, 831, 845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 798, 0, 0, 804, - 805, 806, 808, 0, 809, 810, 811, 812, 0, 861, - 862, 0, 0, 0, 725, 726, 727, 728, 691, 0, - 694, 0, 711, 713, 237, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 695, 0, 0, 0, 0, 0, 0, 706, 0, 700, - 0, 0, 0, 0, 0, 699, 698, 0, 0, 0, - 0, 0, 234, 0, 0, 0, 64, 440, 68, 744, - 0, 0, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 0, 375, 0, 338, 346, - 347, 0, 0, 0, 0, 368, 5, 0, 510, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, - 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, - 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, - 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, - 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, - 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, - 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, - 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, - 412, 436, 0, 0, 0, 0, 794, 784, 0, 0, - 842, 841, 840, 0, 0, 0, 213, 0, 199, 193, - 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, - 197, 0, 0, 391, 0, 0, 0, 0, 0, 753, - 0, 752, 0, 0, 0, 0, 0, 314, 315, 0, - 0, 0, 0, 75, 69, 0, 96, 800, 0, 0, - 807, 0, 693, 712, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 705, 0, 0, - 0, 0, 737, 696, 0, 734, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, - 256, 0, 0, 839, 0, 0, 3, 0, 339, 174, - 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, - 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, - 350, 512, 511, 513, 514, 44, 0, 0, 509, 515, - 516, 519, 518, 520, 524, 525, 0, 523, 526, 0, - 0, 0, 0, 531, 0, 0, 0, 0, 0, 385, - 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, - 0, 0, 372, 0, 0, 0, 0, 12, 816, 824, - 825, 814, 817, 0, 0, 836, 0, 0, 13, 0, - 834, 0, 832, 0, 0, 0, 0, 14, 856, 857, - 850, 0, 0, 15, 867, 868, 864, 0, 125, 126, - 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, - 0, 0, 404, 0, 0, 843, 844, 845, 846, 847, - 848, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 758, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, - 704, 0, 0, 0, 0, 0, 179, 180, 0, 0, - 0, 0, 0, 139, 0, 245, 259, 849, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 517, 0, 548, - 0, 0, 0, 546, 367, 384, 370, 0, 387, 376, - 377, 378, 379, 381, 382, 380, 0, 0, 0, 0, - 819, 818, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 855, 0, 0, 0, 0, 0, 0, - 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, - 0, 0, 0, 0, 398, 403, 0, 786, 0, 0, - 583, 621, 575, 576, 0, 610, 577, 578, 579, 580, - 581, 582, 612, 588, 589, 590, 591, 0, 0, 0, - 618, 0, 0, 0, 0, 573, 574, 597, 598, 599, - 616, 600, 601, 602, 603, 0, 0, 606, 0, 614, - 620, 273, 0, 0, 0, 0, 0, 0, 0, 741, - 0, 0, 0, 0, 746, 0, 35, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 444, 0, 77, 0, 97, 98, 0, 99, - 100, 101, 0, 0, 0, 690, 689, 0, 0, 0, - 0, 680, 679, 678, 677, 675, 673, 674, 676, 688, - 687, 686, 685, 0, 701, 702, 739, 735, 0, 0, - 0, 244, 243, 0, 0, 258, 257, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, - 358, 0, 0, 0, 0, 0, 0, 359, 0, 0, - 0, 0, 529, 0, 0, 532, 0, 0, 0, 344, - 0, 0, 0, 373, 374, 815, 826, 0, 828, 820, - 823, 801, 827, 833, 835, 0, 0, 0, 0, 0, - 134, 0, 0, 0, 0, 157, 0, 0, 0, 148, - 141, 294, 0, 0, 0, 305, 306, 307, 308, 300, - 301, 302, 299, 303, 304, 0, 0, 297, 0, 0, - 0, 0, 0, 0, 402, 410, 409, 408, 407, 405, - 406, 0, 0, 207, 611, 584, 585, 586, 587, 0, - 607, 613, 615, 619, 0, 0, 0, 617, 604, 605, - 659, 628, 629, 0, 656, 630, 631, 632, 633, 634, - 635, 658, 640, 641, 642, 643, 626, 627, 648, 649, - 650, 651, 652, 653, 654, 655, 625, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, - 644, 0, 0, 592, 200, 0, 209, 0, 191, 0, - 760, 759, 0, 756, 0, 755, 742, 0, 749, 78, - 75, 70, 0, 0, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 81, 82, 0, 80, 0, 95, 0, - 684, 683, 682, 681, 0, 0, 190, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, - 251, 252, 253, 254, 246, 0, 0, 0, 173, 265, - 264, 266, 267, 260, 181, 0, 362, 0, 365, 366, - 0, 45, 46, 0, 528, 0, 534, 535, 345, 0, - 547, 0, 0, 0, 854, 865, 0, 0, 160, 0, - 0, 0, 145, 0, 163, 0, 0, 296, 0, 0, - 0, 318, 319, 320, 321, 0, 0, 790, 0, 788, - 0, 0, 0, 0, 657, 636, 637, 638, 639, 646, - 0, 0, 647, 0, 593, 0, 272, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 211, 441, 0, 0, 78, 0, 0, 0, - 217, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 0, 87, - 86, 0, 435, 795, 703, 0, 186, 0, 189, 0, - 0, 247, 248, 249, 250, 263, 261, 262, 357, 0, - 0, 530, 550, 388, 389, 0, 155, 0, 0, 166, - 0, 165, 162, 0, 0, 309, 310, 311, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 750, 67, 169, 0, 0, 434, 0, 433, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, - 423, 0, 422, 0, 421, 0, 419, 417, 0, 418, - 420, 0, 432, 0, 431, 0, 430, 0, 429, 0, - 450, 0, 446, 445, 0, 449, 0, 448, 0, 0, - 90, 0, 0, 0, 0, 0, 0, 364, 0, 0, - 158, 161, 146, 295, 313, 270, 0, 792, 0, 0, - 570, 0, 596, 0, 761, 0, 0, 0, 766, 751, - 215, 214, 484, 480, 428, 0, 427, 0, 426, 0, - 425, 0, 482, 480, 478, 476, 470, 473, 482, 480, - 478, 476, 493, 486, 447, 489, 89, 91, 0, 0, - 188, 0, 0, 0, 0, 168, 0, 0, 623, 0, - 569, 0, 595, 0, 0, 0, 0, 0, 482, 480, - 478, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, - 821, 322, 0, 763, 764, 765, 466, 485, 465, 481, - 0, 0, 0, 0, 456, 483, 455, 454, 479, 453, - 477, 451, 472, 471, 452, 474, 475, 460, 459, 458, - 457, 469, 494, 488, 487, 467, 490, 0, 468, 492, - 255, 0, 0, 0, 0, 0, 464, 463, 462, 461, - 491, 0, 0, 360, 0, 327, 323, 332, 333, 334, - 335, 336, 324, 325, 326, 328, 329, 330, 331, 274, - 0, 0, 0, 0, 568, 0, 0, 0, 0, 182, - 337, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 73, 0, 0, 103, 0, 21, 780, 0, 0, 786, + 787, 788, 790, 0, 791, 792, 793, 794, 0, 843, + 844, 0, 0, 0, 707, 708, 709, 710, 673, 0, + 676, 0, 693, 695, 237, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 677, 441, 0, 0, 0, 0, 0, 0, + 0, 688, 0, 682, 0, 0, 0, 0, 0, 681, + 680, 0, 0, 0, 0, 0, 234, 0, 0, 0, + 64, 440, 68, 726, 0, 0, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 0, + 375, 0, 338, 346, 347, 0, 0, 0, 0, 368, + 5, 0, 510, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 352, 351, 354, + 353, 355, 0, 340, 342, 349, 361, 339, 0, 0, + 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, + 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, + 122, 112, 131, 124, 123, 133, 0, 136, 0, 107, + 0, 281, 276, 277, 278, 279, 280, 284, 282, 292, + 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, + 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, + 413, 0, 411, 0, 412, 436, 0, 0, 0, 0, + 776, 766, 0, 0, 824, 823, 822, 0, 0, 0, + 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, + 204, 198, 205, 206, 197, 0, 0, 391, 0, 0, + 0, 0, 0, 735, 0, 734, 0, 0, 0, 0, + 0, 314, 315, 0, 0, 0, 0, 75, 69, 0, + 96, 782, 0, 0, 789, 0, 675, 694, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 687, 0, 0, 0, 0, 719, 678, 0, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 27, 0, 105, 242, 256, 0, 0, 821, 0, + 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, + 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, + 0, 0, 0, 0, 0, 350, 512, 511, 513, 514, + 44, 0, 0, 509, 515, 516, 519, 518, 520, 524, + 525, 0, 523, 526, 0, 0, 0, 0, 531, 0, + 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, + 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, + 0, 0, 12, 798, 806, 807, 796, 799, 0, 0, + 818, 0, 0, 13, 0, 816, 0, 814, 0, 0, + 0, 0, 14, 838, 839, 832, 0, 0, 15, 849, + 850, 846, 0, 125, 126, 127, 128, 129, 130, 0, + 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 396, 0, 0, 404, 0, 0, + 825, 826, 827, 828, 829, 830, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 739, 740, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 435, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 686, 0, 0, 0, + 0, 0, 179, 180, 0, 0, 0, 0, 0, 139, + 0, 245, 259, 831, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 517, 0, 548, 0, 0, 0, 546, + 367, 384, 370, 0, 387, 376, 377, 378, 379, 381, + 382, 380, 0, 0, 0, 0, 801, 800, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 837, + 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, + 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, + 398, 403, 0, 768, 0, 0, 583, 621, 575, 576, + 0, 610, 577, 578, 579, 580, 581, 582, 612, 588, + 589, 590, 591, 0, 0, 0, 618, 0, 0, 0, + 0, 573, 574, 597, 598, 599, 616, 600, 601, 602, + 603, 0, 0, 606, 0, 614, 620, 273, 0, 0, + 0, 0, 0, 0, 0, 723, 0, 0, 0, 0, + 728, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 444, 0, + 77, 97, 98, 0, 99, 100, 101, 0, 0, 0, + 434, 433, 0, 0, 0, 0, 424, 423, 422, 421, + 419, 417, 418, 420, 432, 431, 430, 429, 0, 683, + 684, 721, 717, 0, 0, 0, 244, 243, 0, 0, + 258, 257, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 0, 0, 0, 358, 0, 0, 0, 0, + 0, 0, 359, 0, 0, 0, 0, 529, 0, 0, + 532, 0, 0, 0, 344, 0, 0, 0, 373, 374, + 797, 808, 0, 810, 802, 805, 783, 809, 815, 817, + 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, + 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, + 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, + 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, + 410, 409, 408, 407, 405, 406, 0, 0, 207, 611, + 584, 585, 586, 587, 0, 607, 613, 615, 619, 0, + 0, 0, 617, 604, 605, 659, 628, 629, 0, 656, + 630, 631, 632, 633, 634, 635, 658, 640, 641, 642, + 643, 626, 627, 648, 649, 650, 651, 652, 653, 654, + 655, 625, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 644, 0, 0, 592, 200, + 0, 209, 0, 191, 0, 742, 741, 0, 738, 0, + 737, 724, 0, 731, 78, 75, 70, 0, 0, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 81, 82, 0, 80, + 95, 0, 428, 427, 426, 425, 0, 0, 190, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 172, 251, 252, 253, 254, 246, 0, 0, 0, + 173, 265, 264, 266, 267, 260, 181, 0, 362, 0, + 365, 366, 0, 45, 46, 0, 528, 0, 534, 535, + 345, 0, 547, 0, 0, 0, 836, 847, 0, 0, + 160, 0, 0, 0, 145, 0, 163, 0, 0, 296, + 0, 0, 0, 318, 319, 320, 321, 0, 0, 772, + 0, 770, 0, 0, 0, 0, 657, 636, 637, 638, + 639, 646, 0, 0, 647, 0, 593, 0, 272, 211, + 0, 0, 78, 0, 0, 0, 217, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 0, 87, 86, 0, + 777, 685, 0, 186, 0, 189, 0, 0, 247, 248, + 249, 250, 263, 261, 262, 357, 0, 0, 530, 550, + 388, 389, 0, 155, 0, 0, 166, 0, 165, 162, + 0, 0, 309, 310, 311, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 594, 0, 0, + 0, 0, 0, 0, 732, 67, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 450, 0, 446, 445, 0, + 449, 0, 448, 0, 0, 90, 0, 0, 0, 0, + 0, 0, 364, 0, 0, 158, 161, 146, 295, 313, + 270, 0, 774, 0, 0, 570, 0, 596, 0, 743, + 0, 0, 0, 748, 733, 215, 214, 484, 480, 0, + 0, 0, 0, 482, 480, 478, 476, 470, 473, 482, + 480, 478, 476, 493, 486, 447, 489, 89, 91, 0, + 0, 188, 0, 0, 0, 0, 168, 0, 0, 623, + 0, 569, 0, 595, 0, 0, 0, 0, 0, 482, + 480, 478, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, + 0, 803, 322, 0, 745, 746, 747, 466, 485, 465, + 481, 0, 0, 0, 0, 456, 483, 455, 454, 479, + 453, 477, 451, 472, 471, 452, 474, 475, 460, 459, + 458, 457, 469, 494, 488, 487, 467, 490, 0, 468, + 492, 255, 0, 0, 0, 0, 0, 464, 463, 462, + 461, 491, 0, 0, 360, 0, 327, 323, 332, 333, + 334, 335, 336, 324, 325, 326, 328, 329, 330, 331, + 274, 0, 0, 0, 0, 568, 0, 0, 0, 0, + 182, 337, 0, 0, 0, 0, 0, 0, 0, 0, + 183, }; static int yydgoto[] = { 1, - 158, 71, 482, 897, 159, 776, 105, 106, 802, 35, - 36, 707, 781, 421, 1132, 73, 714, 828, 829, 1034, - 1035, 1081, 1545, 1546, 580, 1601, 782, 783, 784, 211, - 526, 527, 175, 176, 893, 894, 1139, 687, 1144, 1064, - 1313, 932, 933, 281, 1567, 1568, 1563, 1558, 1565, 1566, - 1557, 1574, 1575, 1573, 161, 703, 529, 530, 1261, 1262, - 1039, 705, 1372, 706, 934, 693, 694, 1196, 803, 1265, - 830, 656, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1625, 745, 746, 834, 688, 689, 92, 37, - 113, 489, 115, 205, 116, 38, 39, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 40, 41, 311, 42, 43, 181, 44, 353, 46, - 47, 354, 49, 50, 367, 51, 368, 52, 369, 53, - 370, 54, 355, 356, 357, 58, 358, 305, 60, 61, - 62, 189, 396, 658, 557, 558, 988, 559, 989, 560, - 215, 1225, 1234, 63, 895, 359, 360, 361, 362, 789, - 364, 365, 604, 605, 366, 606, 790, 607, 608, 609, - 610, 64, 201, 76, 433, 434, 936, 65, 630, 622, - 623, 624, 625, 632, 633, 641, 647, + 158, 71, 486, 903, 159, 782, 105, 106, 808, 35, + 36, 712, 787, 425, 1137, 73, 719, 834, 835, 1039, + 1040, 1086, 1476, 1477, 585, 1532, 788, 789, 790, 211, + 531, 532, 175, 176, 899, 900, 1144, 282, 1149, 1069, + 283, 938, 939, 1498, 1499, 1494, 1489, 1496, 1497, 1488, + 1505, 1506, 1504, 161, 708, 534, 535, 1253, 1254, 1044, + 710, 1330, 711, 940, 698, 699, 1189, 809, 1257, 836, + 661, 212, 229, 230, 107, 231, 108, 214, 187, 190, + 208, 1556, 751, 752, 840, 693, 694, 92, 37, 113, + 493, 115, 205, 116, 38, 39, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 40, 41, 315, 42, 43, 181, 44, 357, 46, 47, + 358, 49, 50, 371, 51, 372, 52, 373, 53, 374, + 54, 359, 360, 361, 58, 362, 309, 60, 61, 62, + 189, 400, 663, 562, 563, 993, 564, 994, 565, 215, + 1217, 1226, 63, 901, 363, 364, 365, 366, 795, 368, + 369, 609, 610, 370, 611, 796, 612, 613, 614, 615, + 64, 201, 76, 437, 438, 285, 65, 635, 627, 628, + 629, 630, 637, 638, 646, 652, }; static int yysindex[] = { 0, -14223, 0, -338, 550, 0, 138, -218, 1833, 1833, 0, - 0, -105, 1360, 139, 161, -310, -245, 0, 266, 82, - 82, 537, 537, 9462, 286, 0, 550, 550, 550, 550, - 0, 0, 179, 0, 203, 203, 203, 0, 0, 0, - 355, 371, 0, 0, 0, 0, 0, 0, 0, 393, - 417, 436, 510, 0, 0, 0, 0, 0, 0, 203, - 0, -53, 0, 982, 82, 0, 0, 0, 0, 526, - 0, 82, 0, 0, 0, 470, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1670, 73, 629, 0, 0, 662, 666, 0, 0, - 707, 522, 522,11884, 7392, 0, 651, 0, 0, 685, - 82, 82, -2, 0, 753, 490, 550, 526, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7392, 0, 0, - 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 451, 185, 615, 0, - 1148, 0, 0, 0, 2631, 42, 363, 526, 725, 76, - 0, 391, 399, 0, 439, 442, 1568, 185, 144, 526, - 526, 526, 0, 0, 721, 527, 796, 802, 0, 0, -13248, 0, 0, 0, 0, 814, 5016, 1670, 575, 6049, - 861, 70, 106, 119, 126, 132, 135, 893, 815, 929, - 0, 0, 203, 164, 881, 550, 896,11441, 913, 134, - 1168, 0, 220, 0, 522, 0, 962, 59, 961, 758, - 82, 82, 0, 0, 0, 0, 0, 0, 0, 985, - 0,11030, 108, 0, 935, 0, 0, 2, 753, 0, - 0, 0, 0, 563, 0, 0, 0, 0, 526, 0, - 0, 10, 526, 0, 0, 0, 0, 0, 0, 185, - 0, 757, 0, 0, 0, 0,11603, 1003, 1004, 864, - 1010, 1021, 1037, 1060, 1064, 1066, 1075, 1076, 1077, 1080, - 0, 550, 947, 127, 996, 868, 526, 0, 550, 0, - 1099, 1111, 550, 465, 7392, 0, 0, 550, 550, 550, - 550, 7392, 0, 185, 1027, 961, 0, 0, 0, 0, - 6283,14197, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 82, 0, 0, - 0, 82, 1069, -56,12052, 0, 0, 1109, 0, 479, - 82, 537, 163, 479, 1568, 4830, 1670, -137, 522,11884, - 1145, 203, 0, 0, 0, 0, 0, 0, 11, 0, - 0, 0, 0, 0, 774, 387, 376, 129, 834, 403, - 0, 1147, 0, 0, 0, 0, 0, 0, 715, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 420, 0, 1670, 0, 1167, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1173, 0, 0, 1174, 82, 82, - 0, 82, 0, 82, 0, 537, 0, 246, 0, 246, - 0, 0, 1063, 1164, 470, 1179, 0, 0, 82, 82, - 0, 0, 0, 791, 526, 0, 0, 1181, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1182, 994, 0, 550, 145, 972, 1114, 7392, 0, -12125, 0, 978, 1197, 1201, 1203, 1568, 0, 0, 118, - 526, 1192, 979, 0, 0, 961, 0, 0, 795, 14, - 0, 550, 0, 0, 526, 987, 625, 82, 1227, 1231, - 1238, 1239, 82, 82, 82, 537, 509, 700, 82, 82, - 82, 537, 406, 550, 550, 550, 526, 0, 526, 1670, - 1670, 526, 0, 0, 999, 0, 72, 1168, 1219, 1240, - 526, 526, 526, 526,11172, 0, 0, 921, 0, 0, - 0, 82, 82, 0, -308,12194, 0, 1159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1165, 1166, 1171, - 0, 0, 0, 1241, 82, 474, 543, 82, 0, 1043, - 0, 0, 0, 0, 0, 0, 1257, 1278, 0, 0, - 0, 0, 0, 0, 0, 0,11603, 0, 0, 1280, - 961, 203, 7392, 0, 479, 1287, 1281, 0,13331, 0, - 1670, 0, 0, 0, 774, -62, -62, -62, -62, 387, - 1017, 1019, 0, 870, 1282, 147, -9, 0, 0, 0, - 0, 0, 0, 203, 203, 0, 1283, 1284, 0, 203, - 0, 203, 0, 1299, -215, 550, 871, 0, 0, 0, - 0, 550, 872, 0, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 1302, 82, 972, - 5140, 972, 1306, 1256, 1309, 1310, 1312, 1317, 1321, 0, - 815, 1323, 0, 1307, 1332, 0, 0, 0, 0, 0, - 0, 82,14558, 32, 449, 0, 576, 1326, 1333, 0, - 1529, 1711, 1338, 1258, 1324, 0, 1121, 0, 0, 1325, - 5450, 1348, 1349, 314, 1265, 2266, 327, 203, 550, 526, - 550, 0, 0, 1350, 1351, 82, 82, 82, 537, 1354, - 1363, 1366, 1367, 1375, 1380, 1387, 1392, 1395, 1396, 1406, - 1408, 550, 725, 725, 725, 1411, 1414, 82, 465, 0, - 0, 7392, 1417, 1670,11782, -132, 0, 0, 881, 555, - 586, 0, 1184, 0,13482, 0, 0, 0, 82, 1369, - 82, 526, 82, 792, 1373, 7392, 314, 82, 537, 526, - 1185, 972, 1422, 208, 1423, 1427, 1425, 0, 0, 0, - 5140, 1429, 1431, 0, 0, 0, 0, 479, 0, 0, - 0, 0, 0, 0, 0, 0, 470, 82, 82, 1436, - 0, 0, 1419, 1438, 961, 1439, 1440, 1443, 1444, 1445, - 1446, 82, 550, 0, 526, 550, 40, 550, 1447, 1450, - 0, 0, 0, 0, 1191, 0, 0, 83, 229, 1430, - 1670, 1452, 12, 748, 1, 3, 809, 1388, 0, 1388, - 1388, 1388, 1388, 1388, 0, 0, 82, 0, 82, 1453, - 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1451, 998, 1007, - 0, 997, 1457, 201, 1225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1451, 1451, 0,10342, 0, - 0, 0, 89, 1462, 203, 470, 1449, 0, 664, 0, - 972, 1379, 0,12125, 0, 1382, 0, 275, 82, 1461, - 0, 0, 526, 1192, 0, 153, 156, 966, 173, 418, - 432, 447, 475, 482, 516, 524, 545, 549, 562, 581, - 590, 0, 0, 321, 0, 203, 0, 0, 470, 0, - 0, 0, 1466, 526, 526, 0, 0, 1467, 1473, 1478, - 1492, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 725, 0, 0, 0, 0, 1168, 0, - 1083, 0, 0, 526, 550, 0, 0, 7392, 526, 82, - 526, 82, 885, 7392, 314,12789, 0, 1384, 349, 1000, - 0, 1151, 1455, 1456, 1670, 1449,11603, 0, 1502, 1503, - 550, 912, 0, 0, 479, 0, 479, 1504, 3, 0, - 0, 1229, 1235, 0, 0, 0, 0, 147, 0, 0, - 0, 0, 0, 0, 0, 1512, 725, 526, 82, 526, - 0, 82, 1515, 1191, 1670, 0, 1670, 917, 550, 0, - 0, 0, 972, 1370, 1519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1507, 1508, 0, 1479, 1481, - 1482, 1483, 1537, 314, 0, 0, 0, 0, 0, 0, - 0, 1534, 0, 0, 0, 0, 0, 0, 0, 1079, - 0, 0, 0, 0, 972, 1497, 1500, 0, 0, 0, - 0, 0, 0, 1023, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -5, 37, 0, 0, -30, 0, 2572, 0, 1564, - 0, 0, 961, 0, 1573, 0, 0, 1485, 0, 0, - 0, 0, 961, 1521, 0, 1580, 1581, 1583, 1584, 625, - 82, 82, 82, 591, 595, 602, 604, 82, 82, 82, - 82, 82, 82, 537, 82, 509, 82, 700, 82, 82, - 82, 82, 82, 82, 82, 537, 82, 2266, 82, -197, - 82, 1606, 82, 0, 0, 3480, 0, 1585, 0, 1207, - 0, 0, 0, 0, 1590, 1568, 0, 526, 994, 1543, - 1545, 1670,11603, 1129, 0, 1568, 1568, 1568, 1568, 0, - 0, 0, 0, 0, 0, 1568, 1568, 1568, 0, 0, - 0, 0, 0, 0, 0, 470, 0, 1601, 0, 0, - 1372, 0, 0, 526, 0, 1607, 0, 0, 0, 470, - 0, 470, 82, 1591, 0, 0, 1609, 82, 0, 550, - 1610, 1608, 0, 36, 0, 917, 961, 0, 82, 472, - 513, 0, 0, 0, 0,14558, 1593, 0, 82, 0, - 1598, 914, 82, 82, 0, 0, 0, 0, 0, 0, - 972, 1561, 0, 82, 0, 92, 0, 1623, 1625, 1049, - 1626, 1628, 1630, 1632, 1636, 1642, 1645, 1647, 1648, 1649, - 0, 961, 0, 0, 82, 433, 0, 8, 1565, 1633, - 0, 0, 0, 0, 1651, 1603, 1657, 1611, 82, 82, - 82, 82, 82, 82, 537, 82, 1658, 1612, 1659, 1613, - 1661, 1614, 1667, 1616, 1712, 1713, 1618, 1714, 1716, 1671, - 1722, 1673, 1730, 1683, 1736, 1686, 1740, 1693, 1752, 1702, - 1760, 1763, 1719, 1764, 1489, 1765, 1720, 0, 1827, 0, - 0, 674, 0, 0, 0, 264, 0, 1770, 0, 1533, - 522, 0, 0, 0, 0, 0, 0, 0, 0, 1670, - 314, 0, 0, 0, 0, 147, 0, 1779, 917, 0, - 1670, 0, 0, 1592, 1780, 0, 0, 0, 0, 1783, - 1782, 0, 82, 972, 1732, 1733, 961, 0, 1737, 82, - 0, 1791, 1796, 1798, 1799, 1801, 1785, 1786, 1793, 1820, - 120, 0, 0, 0, 1824, 1830, 0, 1835, 0, 1838, - 1832, 1787, 1841, 1790, 1843, 1792, 1846, 1795, 0, 1852, - 0, 1858, 0, 1859, 0, 1860, 0, 0, 1861, 0, - 0, 1863, 0, 1864, 0, 1866, 0, 1867, 0, 1868, - 0, 1870, 0, 0, 1871, 0, 1872, 0, 1874, 1652, - 0, 1823, 166, 0, 1670, 314, 7392, 0, 1816, 1869, - 0, 0, 0, 0, 0, 0, 0, 0, 1876, 855, - 0,14641, 0, 1839, 0, 82, 82, 82, 0, 0, - 0, 0, 0, 0, 0, 1886, 0, 1888, 0, 1889, - 0, 1897, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2266, 1898, - 0, 1816,11603, 1849, 1902, 0, 147, 1903, 0, 972, - 0, 0, 0, 1909, 1914, 1917, 34, 13, 0, 0, - 0, 0, 44, 47, 62, 67, 27, 178, 98, 102, - 104, 157, 1234, 23, 1154, 0, 1449, 1919, 1669, 0, - 0, 0, 939, 0, 0, 0, 0, 0, 0, 0, - 140, 170, 175, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, - 0, 0, 314, 1924, 2226, 972, 0, 0, 0, 0, - 0, 1928, 1930, 0, 1933, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 927, 1465, 0, 82, 0, 1619, 1942, 1944, 522, 0, - 0, 7392,11603, 1715, 314, 1816, 1946, 0, 1947, 0, +14374, 0, -380, 757, 0, 72, -233, 1501, 1501, 0, + 0, -88, 366, 200, 189, -330, -144, 0, -164, 71, + 71, 264, 264,11730, 306, 0, 757, 757, 757, 757, + 0, 0, 177, 0, 191, 191, 191, 0, 0, 0, + 322, 397, 0, 0, 0, 0, 0, 0, 0, 428, + 501, 522, 541, 0, 0, 0, 0, 0, 0, 191, + 0, 174, 0, 1242, 71, 0, 0, 0, 0, 420, + 0, 71, 0, 0, 0, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12011, 150, 557, 0, 0, 662, 666, 0, 0, + 952, 1232, 1232,11911, 7697, 0, 628, 0, 0, 671, + 71, 71, 9, 0, 2139, 869, 757, 420, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7697, 0, 0, + 0, 1031, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 422, 0, 418, 422, -21, 0, + 5135, 0, 0, 0, 3173, 114, 107, 420, 680, 196, + 0, 342, 357, 0, 370, 375, 1788, 422, 13, 420, + 420, 420, 0, 0, 689, 503, 775, 800, 0, 0, +13239, 0, 0, 0, 0, 804, 5321,12011, 468, 6354, + 760, 91, 96, 104, 121, 138, 141, 770, 1197, 813, + 0, 0, 191, 149, 496, 757, 765,11377, 806, 134, + 384, 0, 206, 0, 1232, 0, 835, 76, 844, 643, + 71, 71, 0, 0, 0, 0, 0, 0, 0, 873, + 0, 1608, 74, 0, 833, 0, 0, -1, 2139, 0, + 0, 0, 0, 455, 0, 0, 0, 0, 420, 0, + 0, 16, 420, 0, 0, 0, 0, 0, 0, 422, + 0, 668, 0, 0, 0, 0,11552, 916, 928, 1057, + 941, 944, 961, 969, 975, 988, 999, 1036, 1042, 1056, + 0, 844, 0, 0, 191, 757, 967, 45, 973, 1002, + 420, 0, 757, 0, 1058, 1063, 757, 351, 7697, 0, + 0, 757, 757, 757, 757, 7697, 0, 422, 984, 844, + 0, 0, 0, 0, 6588,14241, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, + 0, 71, 0, 0, 0, 71, 996, -54,12122, 0, + 0, 1055, 0, 544, 71, 264, 788, 544, 1788, 641, +12011, -134, 1232,11911, 1080, 191, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 962, -23, + 354, 1223, 345, 8, 0, 1084, 0, 0, 0, 0, + 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 302, 0,12011, 0, + 1102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1106, 0, + 0, 1116, 71, 71, 0, 71, 0, 71, 0, 264, + 0, 649, 0, 649, 0, 0, 1049, 1113, 371, 1120, + 0, 0, 71, 71, 0, 0, 0, 823, 420, 0, + 0, 1152, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1161, 1145, 0, 757, 157, + 940, 1086, 7697, 0,12192, 0, 948, 1159, 1177, 1178, + 1788, 0, 0, 118, 420, 1151, 963, 0, 0, 844, + 0, 0, 778, 18, 0, 757, 0, 0, 420, 986, + 589, 71, 1227, 1237, 1241, 1243, 71, 71, 71, 264, + 769, 942, 71, 71, 71, 264, 1250, 339, 757, 757, + 757, 420, 0, 420,12011,12011, 420, 0, 0, 1033, + 0, 75, 384, 1245, 1266, 420, 420, 420, 420,11217, + 0, 0, 954, 0, 0, 0, 71, 71, 0, -291, +12280, 0, 1194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1195, 1198, 1200, 0, 0, 0, 1267, 71, + 369, 518, 71, 0, 1054, 0, 0, 0, 0, 0, + 0, 1289, 1290, 0, 0, 0, 0, 0, 0, 0, + 0,11552, 0, 0, 1302, 844, 191, 7697, 0, 544, + 1308, 1303, 0,13390, 0,12011, 0, 0, 0, 962, + -47, -47, -47, -47, -23, 1051, 1052, 0, 883, 1298, + 21, 26, 0, 0, 0, 0, 0, 0, 191, 191, + 0, 1305, 1311, 0, 191, 0, 191, 0, 1333, -210, + 757, 904, 0, 0, 0, 0, 757, 905, 0, 0, + 0, 0, 71, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 1332, 71, 940, 5445, 940, 1336, 1291, 1346, + 1350, 1351, 1352, 1353, 0, 1197, 1354, 0, 1339, 1358, + 0, 0, 0, 0, 0, 0, 71,14729, 24, 400, + 0, 604, 1357, 1359, 0, 631, 1010, 1360, 1282, 1348, + 0, 1153, 0, 0, 1362, 5755, 1374, 1375, 389, 1293, + 2571, 556, 191, 757, 420, 757, 0, 0, 1378, 1379, + 71, 71, 71, 264, 1380, 1386, 1387, 1388, 1398, 1403, + 1405, 1406, 1407, 1408, 1409, 1410, 0, 757, 680, 680, + 680, 1411, 1412, 71, 351, 0, 0, 7697, 1422,12011, +11833, 886, 0, 0, 496, 644, 709, 0, 1180, 0, +13473, 0, 0, 0, 71, 1370, 71, 420, 71, 612, + 1371, 7697, 389, 71, 264, 420, 1191, 940, 1426, 761, + 1424, 1429, 1427, 0, 0, 0, 5445, 1431, 1430, 0, + 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, + 0, 0, 371, 71, 71, 1437, 0, 0, 1428, 1450, + 844, 1456, 1457, 1459, 1460, 1461, 1467, 71, 757, 0, + 420, 757, 29, 757, 1468, 1470, 0, 0, 0, 0, + 1207, 0, 0, 228, 193, 1449,12011, 1471, 14, 1619, + -187, 171, 789, 1423, 0, 1423, 1423, 1423, 1423, 1423, + 0, 0, 71, 0, 71, 1477, 0, 0, 0, 0, + 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1479, 1024, 1044, 0, 1021, 1491, -311, + 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1479, 1479, 0,10832, 0, 0, 0, 109, 1496, + 191, 371, 1481, 0, 1026, 0, 940, 1413, 0,12192, + 0, 1417, 0, 130, 71, 1483, 0, 0, 420, 1151, + 0, 145, 156, 1073, 187, 305, 343, 412, 427, 433, + 451, 470, 471, 474, 537, 549, 551, 0, 0, 253, + 0, 0, 0, 371, 0, 0, 0, 1502, 420, 420, + 0, 0, 1507, 1508, 1510, 1512, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, + 0, 0, 0, 384, 0, 1104, 0, 0, 420, 757, + 0, 0, 7697, 420, 71, 420, 71, 853, 7697, 389, +14444, 0, 796, 1117, 405, 0, 1163, 1463, 1464,12011, + 1481,11552, 0, 1518, 1519, 757, 912, 0, 0, 544, + 0, 544, 1520, 171, 0, 0, 1247, 1252, 0, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 1529, 680, 420, 71, 420, 0, 71, 1532, 1207,12011, + 0,12011, 931, 757, 0, 0, 0, 940, 1938, 1534, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1517, 1521, 0, 1516, 1522, 1527, 1528, 1536, 389, 0, + 0, 0, 0, 0, 0, 0, 1545, 0, 0, 0, + 0, 0, 0, 0, 1096, 0, 0, 0, 0, 940, + 1514, 1523, 0, 0, 0, 0, 0, 0, 1020, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2, 39, 0, 0, + -41, 0, 3173, 0, 1582, 0, 0, 844, 0, 1583, + 0, 0, 1504, 0, 0, 0, 0, 844, 1531, 0, + 1584, 1588, 1590, 1592, 71, 71, 576, 585, 596, 613, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 2571, 71, -105, 71, 1170, 71, 0, 0, 2873, 0, + 0, 1212, 0, 0, 0, 0, 1593, 1788, 0, 420, + 1145, 1544, 1546,12011,11552, 1130, 0, 1788, 1788, 1788, + 1788, 0, 0, 0, 0, 0, 0, 1788, 1788, 1788, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 1603, + 0, 0, 1377, 0, 0, 420, 0, 1628, 0, 0, + 0, 371, 0, 371, 71, 1591, 0, 0, 1629, 71, + 0, 757, 1630, 1631, 0, 10, 0, 931, 844, 0, + 71, 478, 669, 0, 0, 0, 0,14729, 1612, 0, + 71, 0, 1615, 1028, 71, 71, 0, 0, 0, 0, + 0, 0, 940, 1580, 0, 71, 0, 137, 0, 0, + 71, 743, 0, 44, 1552, 1621, 0, 0, 0, 0, + 1597, 1600, 71, 71, 71, 71, 1604, 1605, 1607, 1609, + 1610, 1611, 1613, 1614, 1616, 1620, 1655, 1622, 1660, 1664, + 1661, 1667, 1451, 1671, 1663, 0, 435, 0, 0, 722, + 0, 0, 126, 0, 1709, 0, 1492, 1232, 0, 0, + 0, 0, 0, 0, 0, 0,12011, 389, 0, 0, + 0, 0, 21, 0, 1724, 931, 0,12011, 0, 0, + 4842, 1726, 0, 0, 0, 0, 1731, 1737, 0, 71, + 940, 1685, 1687, 844, 0, 1689, 71, 0, 1746, 1736, + 1738, 1744, 1764, 59, 0, 0, 0, 1769, 1773, 1775, + 1780, 1728, 1729, 1732, 1733, 1784, 1787, 1791, 1792, 1793, + 1794, 1795, 1796, 1797, 1798, 0, 1799, 0, 0, 1801, + 0, 1802, 0, 1804, 1579, 0, 1752, 609, 0,12011, + 389, 7697, 0, 1806, 1809, 0, 0, 0, 0, 0, + 0, 0, 0, 1811, 699, 0,14757, 0, 1771, 0, + 71, 71, 71, 0, 0, 0, 0, 0, 0, 1822, + 1830, 1832, 1833, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571, + 1836, 0, 1806,11552, 1783, 1841, 0, 21, 1847, 0, + 940, 0, 0, 0, 1852, 1855, 1856, 19, 57, 0, + 0, 0, 0, 60, 86, 100, 30, 273, 578, 116, + 123, 151, 108, 2265, 11, 691, 0, 1481, 1862, 1633, + 0, 0, 0, 1047, 0, 0, 0, 0, 0, 0, + 0, 178, 179, 183, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1640, 0, + 0, 0, 0, 389, 1867, 2531, 940, 0, 0, 0, + 0, 0, 1868, 1870, 0, 1871, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 953, 1415, 0, 71, 0, 1557, 1876, 1877, 1232, + 0, 0, 7697,11552, 1645, 389, 1806, 1881, 0, 1885, + 0, }; static int yyrindex[] = { 0, - 0, 0, 5326, 0, 0,11662, 1971, 0, 0, 0, - 0, 0,11982, 0, 0, 357, 1836, 0, 663, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1949, 1949, 1949, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1949, - 0, -46, 0, 0, 0, 0, 0, 0, 0, 1873, - 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7693, 0, 0, 0, 0, 0, 0, - 5760,11552,11552, 0, 0, 0, 6212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9896, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1756, 2364, 0, - 0, 0, 0, 0, 0, 0,11982, 1875, 4793, 5103, - 5413, 5723, 0, 0, 0, 1950, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1878,11552, - 0, 9396, 9396, 9396, 9396, 9396, 9396, 0, 0, 0, - 0, 0, 1949, 8068, 0, 0, 0, 0, 0, 0, - 7085, 0, 9003, 0,11982, 0, 0, 0, 9176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8283, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1879, 0, - 0, 1880,10008, 4492, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5631, 0, 0,11611, 1717, 0, 0, 0, + 0, 0,12576, 0, 0, 350, 2747, 0,10028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, - 0, 0, 0, 1948, 1935, 0, 0, 0, 0, 0, - 0, 0, 0, 1875, 0, 6033, 0, 0, 0, 0, + 0, 0, 0, 0, 1886, 1886, 1886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1886, + 0, -62, 0, 0, 0, 0, 0, 0, 0, 1805, + 0, 0, 0, 0, 0, 1525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7998, 0, 0, 0, 0, 0, 0, + 6065, 9759, 9759, 0, 0, 0, 6517, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,11982, 0, 0, 0,11982, 0, - 0, 1949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1757, 2365, 0, + 0, 0, 0, 0, 0, 0,12576, 1831, 5098, 5408, + 5718, 6028, 0, 0, 0, 1888, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1807, 9759, + 0, 9701, 9701, 9701, 9701, 9701, 9701, 0, 0, 0, + 0, 0, 1886, 8373, 0, 0, 0, 0, 0, 0, + 7390, 0, 9308, 0,12576, 0, 0, 0, 9481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8588, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1834, 0, + 0, 1835,10189, 4797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3885, 0, 0, 1886, 0, 0, 0, 0, 0, + 4189, 0, 0, 0, 0, 0, 0, 1915, 1898, 0, + 0, 0, 0, 0, 0, 0, 0, 1831, 0, 6338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1881, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1882, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1883, 0, 0, 7895, 0, 0,11982, 0, 0, 1948, - 109, 1958, 0, 0, 0, 6467, 0, 0,10141, 1887, - 0, 0, 0, 0,12745, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12576, 0, + 0, 0,12576, 0, 0, 1886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4188, 0, 2060, 0, - 0,10252, 0, 0, 511, 0, 0, 646, 0, 1937, -10283,10438,10579,10610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13581, 1949, 0, 0, 1963, 0, 0,12497, 0, 0, - 0, 0, 0, 0,13732, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1839, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1842, 1320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1949, 1949, 0, 0, 0, 0, 1949, - 0, 1949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 258, 0, 0, 1890, 0, 4537, + 0, 0, 0, 0, 1846, 0, 0, 8200, 0, 0, +12576, 0, 0, 1915, 48, 1927, 0, 0, 0, 6772, + 0, 0,10342, 1849, 0, 0, 0, 0,12703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8252, 0, 0, 0, 0, 0, - 0, 0, 113, 9704, 0, 7336, 0, 0, 1970, 0, - 0, 0, 1893, 0, 0, 0, 0, 0, 0, 6646, - 1935, 0, 0, 0, 0, -52, 0, 1949, 0, 1891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4493, 0, 2061, 0, 0,10368, 0, 0, 111, + 0, 0, 115, 0, 1911,10511,10623,10735,10766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2668, 2972, 3276, 0, 0, 569, 585, 0, - 0, 0,11329, 0, 0,11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13815, 0, 0, 0, 0, 0, 0, 0,13150, - 0, 0, 0, 0, 1974, 0, 1984, 0,12497, 0, - 0, 0, 1985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1964, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2574, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12288, 0, 0, 258, 0, 0, - 0, 0, 4537, 0, 0, 689, 0, 9396, 0, 9396, - 9396, 9396, 9396, 9396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 215, 215, 0, 9, 0, - 0, 0, 1995, 0, 0, 0, 9865, 7520, 0, 0, - 0, 0, 863, 1883, 0, 0, 0, 0, 0, 0, -12497,12497,12647, 1958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1916, 0, 1949, 0, 0, 0, 0, - 0, 0, 0, 1921,12828, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,13640, 1886, 0, 0, 1933, + 0, 0,12519, 0, 0, 0, 0, 0, 0,13723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3580, 0, 0, 0, 0, 655,12497, - 0, 0, 0, 458, 0, 0, 0, 0, 1922, 0, -14370, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13912, 0, 0, 0,14085, 0, 0, 0, 0, - 0, 0, 0,12497, 1963, 0, 1963, 0, 441, 0, -12559, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2878, 3182, 0, 775, - 0, 0, 0,12288, 0, 0, 2009, 1989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1886, 1886, + 0, 0, 0, 0, 1886, 0, 1886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 0, 0, 1858, 0, 4977, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8557, + 0, 0, 0, 0, 0, 0, 0, 201, 9855, 0, + 7641, 0, 0, 1934, 0, 0, 0, 1851, 0, 0, + 0, 0, 0, 0, 6951, 1898, 0, 0, 0, 0, + -57, 0, 1886, 0, 1861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2669, 2973, + 3277, 0, 0, 222, 332, 0, 0, 0,11276, 0, + 0,12576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13874, 0, 0, + 0, 0, 0, 0, 0,13156, 0, 0, 0, 0, + 1944, 0, 1945, 0,12519, 0, 0, 0, 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8444, 8628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 920, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12353, 0, 0, 236, 0, 0, 0, 0, 4977, 0, + 0, 599, 0, 9701, 0, 9701, 9701, 9701, 9701, 9701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 859, 0, 0, 0, 0, 0, 0, + 947, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 859, 859, 0, -6, 0, 0, 0, 1947, 0, + 0, 0,10000, 7825, 0, 0, 0, 0, 88, 1846, + 0, 0, 0, 0, 0, 0,12519,12519,12620, 1927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1864, + 0, 0, 0, 0, 0, 0, 0, 0, 1869,12906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 992, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6901, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3581, 0, + 0, 0, 0, 637,12519, 0, 0, 0, 616, 0, + 0, 0, 0, 1873, 0,14517, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13957, 0, 0, 0, +14124, 0, 0, 0, 0, 0, 0, 0,12519, 1933, + 0, 1933, 0, 437, 0,12634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1414, 1853, 0, 600, 0, 0, 0,12353, 0, + 0, 1949, 1929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,10721, - 0, 0, 0, 0, 0,11982, 0, 1934, 0, 0, - 0, 0, 0, 0, 0,11982,11982,11982,11982, 0, - 0, 0, 0, 0, 0,11982,11982,11982, 0, 0, + 0, 0, 0, 0, 0, 0, 8749, 8933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,14168, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2015, 0, 258, 0, 1989, 4537, 0, 0, 0, - 0, 0, 0, 0, 0, 113, 1972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9563, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12497,12497, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,10928, 0, 0, 0, 0, 0,12576, 0, 1874, + 0, 0, 0, 0, 0, 0, 0,12576,12576,12576, +12576, 0, 0, 0, 0, 0, 0,12576,12576,12576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,14207, 0, 0, 0, 0, + 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1952, 0, 236, 0, 1929, 4977, 0, + 0, 0, 0, 0, 0, 0, 0, 201, 1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8801, 0, 0, 0, 0, 686, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12519,12519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,12576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1929, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9106, 0, + 0, 0, 0, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12497, 0, 0, 0, 0, 2018, 0, - 0, 0, 0, 0, 0, 0,12497, 0, 0, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12519, 0, + 0, 0, 0, 1962, 0, 0, 0, 0, 0, 0, + 0,12519, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1936, 0, 0,12497, + 0, 0, 1962, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1887, 0, 0, +12519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12497, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12497, 0, 0, 0, 0, 0,11982, 0, - 0, 0, 0, 0, 0, 2018, 0,12497, 0, 0, + 0, 0, 0,12519, 0, 0, 0, 0, 0,12576, + 0, 0, 0, 0, 0, 0, 1962, 0,12519, 0, + 0, }; static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1067,20 +1045,20 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12998, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1800, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1781, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1973, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1095,11 +1073,11 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2019, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1107,29 +1085,29 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1807, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12441, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,12431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1139,33 +1117,32 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2029, 0, - 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, - 0, 0, 2012, 0, 0, 0, 0, 0, 0, 0, - 1808, 1817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1979, 0, 0, 0, 0, 0, + 0, 0, 0, 1032, 0, 0, 0, 0, 1966, 0, + 0, 0, 0, 0, 0, 0, 1762, 1767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1831, 0, 0, 0, 0, 0, 0, - 1834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1776, 0, + 0, 0, 0, 0, 0, 1777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1811, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1803, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1181,3284 +1158,3295 @@ static int yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1789, 1800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1837, 1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1853, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1857, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1865, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1905, 0, 0, + 0, 0, 0, 1817, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1818, 0, + 0, }; -static int yygindex[] = { 1911, - -4, -17, -693, 0, -444, -14, -98, 0, -7, 0, - 0, 0, 1688, -74, 0, 0, -870, 0, 1285, 0, - 1074, 137,-1445, -445, -418, 5, -771, 0, 1100, -22, - 1371, 0, -16, 1243, 622, 858, -965, -76, 0, 1126, - 0,-1148, 1001, 0, 0, 0,-1422,-1386,-1001, -975, - 0, 0, 0, 0, 940, 1230, 1448, 0, 0, 0, - 0, -658, 0, 0,-1074, 0, 1242, 0, -980,-1175, - 884, 873, -21, 4, 1844, 1668, 2157, -161, 74, 0, - 0, 0, 0, 0, 0, -790, 1288, 0, 2173, 0, - 0, 986, 2076, 1653, 0, -23, 2171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -302, 1442, 0, -295, -249, -292, 45, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 1441, 0, - 0, 0, 33, 6, 41, 0, 17, 1894, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, -159, - 0, 0, 1595, 0, 0, 0, 268, 0, 0, 0, - 0, 0, 0, 0, 1530, 2138, -28, 0, 1725, 0, - 1850, 0, 0, 0, 0, 0, 0, +static int yygindex[] = { 1878, + -4, 168, -700, 0, -473, 186, -98, 0, -7, 0, + 0, 0, 1638, -73, 0, 0, -883, 0, 1228, 0, + 1030, 241,-1358, -446, -431, 5, -696, 0, 1061, -22, + 1322, 0, 42, 1169, 635, 810, -981, -44, 0, 1060, + 943,-1042, -148, 0, 0,-1323, -742, -937, -871, 0, + 0, 0, 0, 906, 1176, 1392, 0, 0, 0, 0, + -662, 0, 0,-1083, 0, 1190, 0, -992,-1151, 848, + 837, -3, -42, 1753, 1632, 2085, -161, 6, 0, 0, + 0, 0, 0, 0, -798, 1203, 0, 2102, 0, 0, + 924, 1998, 1575, 0, -13, 2101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -305, 1367, 0, -303, -302, -298, 50, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 1364, 0, 0, + 0, 15, 28, 43, 0, 17, 1825, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, + 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, + 0, 1524, 0, 0, 0, 430, 0, 0, 0, 0, + 0, 0, 0, 1454, 2071, -56, 0, 1643, 0, 1765, + 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 15144 +#define YYTABLESIZE 15260 static int yytable[] = { 70, - 165, 160, 162, 227, 228, 303, 56, 1008, 548, 668, - 914, 669, 120, 121, 118, 549, 219, 59, 550, 177, - 178, 363, 169, 170, 171, 172, 124, 125, 1142, 48, - 1240, 902, 1293, 55, 568, 203, 702, 1254, 1291, 1359, - 297, 57, 1044, 186, 296, 45, 624, 206, 119, 624, - 598, 804, 624, 1589, 473, 206, 750, 204, 209, 206, - 336, 167, 295, 1616, 207, 1361, 34, 1602, 302, 733, - 734, 735, 78, 998, 1587, 1318, 135, 206, 826, 1294, - 827, 147, 232, 283, 1595, 206, 109, 1597, 725, 726, - 1403, 417, 306, 294, 1297, 213, 1578, 164, 472, 624, - 74, 1362, 1598, 235, 236, 254, 1569, 1600, 238, 419, - 249, 252, 253, 297, 599, 739, 469, 296, 423, 425, - 427, 429, 431, 259, 216, 826, 261, 827, 267, 1295, - 1134, 66, 1432, 218, 1420, 295, 1591, 1564, 1608, 1156, - 1157, 167, 1609, 1570, 1610, 422, 304, 485, 316, 288, - 198, 284, 287, 567, 567, 561, 486, 94, 424, 283, - 420, 75, 97, 338, 740, 426, 294, 99, 316, 100, - 203, 428, 206, 1592, 430, 283, 101, 164, 34, 1133, - 1627, 471, 393, 584, 1421, 463, 436, 34, 801, 206, - 206, 394, 1160, 102, 976, 1162, 420, 1611, 1205, 110, - 445, 446, 579, 567, 590, 466, 613, 439, 103, 420, - 1628, 206, 1168, 475, 476, 1629, 420, 112, 1605, 515, - 1667, 440, 420, 1492, 114, 420, 1539, 481, 72, 285, - 484, 1630, 1246, 751, 490, 483, 308, 686, 493, 977, - 109, 734, 1431, 1161, 1510, 297, 1163, 1004, 788, 296, - 593, 111, 216, 629, 813, 622, 622, 67, 68, 467, - 69, 188, 495, 1169, 119, 572, 572, 295, 1037, 135, - 496, 591, 528, 147, 147, 156, 119, 513, 518, 535, - 468, 517, 304, 285, 519, 1614, 525, 964, 522, 1325, - 119, 1214, 576, 531, 532, 533, 534, 156, 294, 755, - 119, 67, 68, 1484, 69, 622, 78, 119, 566, 206, - 119, 78, 577, 578, 1152, 572, 554, 56, 562, 592, - 563, 1615, 572, 587, 564, 119, 582, 556, 59, 820, - 122, 123, 573, 574, 216, 596, 583, 98, 570, 552, - 48, 821, 822, 553, 55, 119, 575, 581, 611, 896, - 589, 555, 57, 712, 713, 551, 45, 1029, 612, 823, - 217, 119, 290, 291, 292, 119, 1194, 119, 1027, 216, - 1277, 1195, 620, 620, 639, 645, 820, 67, 68, 34, - 69, 119, 561, 621, 621, 640, 646, 167, 821, 822, - 1576, 91, 523, 67, 68, 286, 69, 1151, 657, 619, - 492, 2, 1043, 119, 709, 216, 823, 34, 168, 824, - 119, 663, 664, 98, 665, 1490, 666, 672, 109, 588, - 122, 123, 488, 164, 1613, 437, 122, 123, 576, 98, - 667, 674, 675, 119, 34, 290, 291, 292, 119, 363, - 173, 122, 123, 576, 67, 68, 691, 69, 577, 578, - 796, 206, 126, 964, 122, 123, 824, 1170, 684, 237, - 685, 34, 597, 577, 578, 206, 293, 626, 1158, 174, - 766, 1172, 525, 1229, 695, 466, 1404, 179, 1194, 655, - 98, 269, 1063, 1195, 269, 567, 1174, 710, 67, 68, - 715, 69, 1319, 180, 206, 720, 721, 722, 732, 724, - 618, 728, 729, 730, 561, 1059, 1060, 1061, 1171, 336, - 723, 576, 727, 282, 1176, 182, 731, 156, 156, 1290, - 156, 1178, 1173, 736, 737, 67, 68, 644, 69, 1571, - 481, 577, 578, 624, 747, 748, 216, 1175, 483, 183, - 805, 898, 27, 28, 29, 30, 31, 32, 33, 753, - 109, 1435, 1436, 285, 738, 1180, 1572, 760, 184, 1593, - 765, 762, 764, 1182, 761, 1177, 1581, 290, 291, 292, - 774, 206, 1179, 67, 68, 773, 69, 775, 825, 13, - 241, 338, 770, 833, 1184, 837, 1594, 777, 1186, 465, - 771, 627, 794, 615, 628, 363, 616, 617, 152, 153, - 154, 1188, 795, 738, 786, 465, 1181, 806, 807, 937, - 938, 1621, 740, 810, 1183, 811, 797, 797, 473, 797, - 1190, 2, 67, 68, 124, 69, 119, 814, 736, 1192, - 1329, 815, 185, 763, 1331, 1185, 899, 817, 836, 1187, - 819, 1333, 203, 1335, 939, 980, 67, 978, 2, 69, - 119, 832, 1189, 984, 27, 28, 29, 30, 31, 32, - 33, 740, 92, 27, 28, 29, 30, 31, 32, 33, - 259, 1191, 220, 121, 850, 2, 982, 736, 528, 1194, - 1193, 1330, 1086, 548, 1195, 1332, 1588, 478, 479, 542, - 549, 943, 1334, 550, 1336, 1002, 119, 1489, 543, 913, - 269, 221, 1087, 269, 944, 222, 945, 542, 948, 949, - 950, 233, 1540, 1427, 1428, 1429, 543, 561, 561, 969, - 561, 92, 935, 951, 234, 1548, 609, 609, 119, 67, - 967, 525, 69, 67, 68, 117, 69, 338, 67, 523, - 974, 69, 119, 997, 979, 981, 983, 971, 975, 67, - 68, 991, 69, 993, 156, 994, 260, 1346, 1009, 1348, - 999, 307, 913, 1066, 1482, 1067, 1068, 1069, 1070, 1071, - 1012, 289, 119, 1000, 576, 1226, 609, 1227, 1228, 1014, - 1013, 298, 762, 940, 941, 762, 942, 92, 1058, 299, - 1015, 1016, 1542, 308, 577, 578, 10, 11, 12, 13, - 122, 123, 67, 68, 1026, 69, 8, 9, 1624, 67, - 68, 1028, 69, 1030, 67, 68, 97, 69, 797, 250, - 251, 99, 1143, 100, 1038, 549, 13, 1062, 549, 300, - 101, 1153, 301, 866, 1041, 995, 309, 206, 614, 1072, - 615, 1073, 310, 616, 617, 67, 68, 102, 69, 1065, - 1632, 473, 200, 13, 371, 27, 28, 29, 30, 31, - 32, 33, 103, 642, 1406, 1407, 643, 70, 73, 76, - 79, 82, 85, 88, 791, 792, 793, 1145, 1137, 61, - 64, 1657, 67, 27, 28, 29, 30, 31, 32, 33, - 395, 1141, 34, 262, 263, 1551, 1669, 473, 1550, 866, - 37, 1154, 418, 264, 37, 1408, 1409, 695, 37, 37, - 27, 28, 29, 30, 31, 32, 33, 97, 100, 1198, - 103, 1199, 37, 67, 68, 216, 69, 119, 1212, 1633, - 206, 126, 432, 67, 68, 92, 69, 27, 28, 29, - 30, 31, 32, 33, 712, 713, 1140, 1207, 269, 269, - 1197, 269, 1245, 37, 473, 1209, 473, 1414, 638, 98, - 1264, 1213, 206, 122, 123, 576, 1267, 1655, 435, 473, - 1208, 1666, 1210, 464, 1211, 1075, 1076, 1077, 1078, 1079, - 913, 473, 1626, 712, 713, 577, 578, 775, 447, 775, - 1247, 554, 1248, 1222, 1231, 639, 1244, 777, 1239, 777, - 1241, 470, 556, 473, 1224, 1233, 640, 223, 1282, 224, - 225, 226, 67, 68, 552, 69, 1221, 1230, 553, 200, - 474, 1256, 1089, 1090, 1257, 477, 555, 487, 1223, 1232, - 551, 297, 608, 608, 1266, 296, 494, 491, 1260, 514, - 1263, 1045, 497, 498, 649, 650, 651, 866, 1046, 503, - 1047, 1048, 1049, 295, 1382, 1383, 1384, 1385, 34, 913, - 504, 1312, 269, 269, 1386, 1387, 1388, 255, 256, 257, - 258, 92, 92, 92, 92, 92, 505, 152, 153, 154, - 652, 653, 654, 600, 294, 601, 602, 603, 516, 1050, - 1051, 1052, 191, 92, 92, 192, 193, 194, 195, 506, - 196, 197, 198, 507, 199, 508, 2, 240, 241, 242, - 92, 92, 92, 92, 509, 510, 511, 92, 92, 512, - 676, 677, 678, 92, 1235, 1296, 92, 67, 68, 634, - 69, 119, 243, 92, 92, 1053, 1054, 1055, 520, 1056, - 67, 68, 1057, 69, 499, 500, 501, 502, 1604, 1606, - 521, 537, 392, 1326, 1327, 1328, 679, 680, 681, 565, - 1337, 1338, 1339, 1340, 1341, 1342, 571, 1344, 1345, 1347, - 1366, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1343, 1358, - 157, 1360, 1349, 1363, 595, 1367, 648, 670, 92, 92, - 1357, 92, 92, 92, 1619, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 1376, 297, 659, 671, 441, 296, - 442, 443, 660, 662, 1417, 1379, 1380, 444, 1389, 673, - 682, 683, 37, 37, 37, 866, 244, 295, 245, 246, - 247, 248, 1393, 216, 1394, 866, 690, 392, 866, 696, - 697, 698, 635, 699, 156, 1395, 1164, 1165, 1166, 1167, - 1398, 701, 704, 67, 68, 1399, 69, 627, 294, 191, - 711, 1405, 192, 193, 194, 195, 716, 196, 197, 198, - 717, 1412, 2, 738, 1612, 1415, 1416, 718, 719, 109, - 741, 754, 1487, 742, 13, 744, 1419, 756, 757, 109, - 109, 109, 109, 758, 636, 634, 768, 637, 759, 109, - 109, 109, 1285, 1286, 1287, 1288, 1289, 1426, 1430, 866, - 866, 866, 866, 866, 866, 866, 767, 769, 40, 772, - 779, 1441, 1442, 1443, 1444, 1445, 1446, 778, 1448, 1422, - 1423, 1424, 1425, 797, 1197, 798, 799, 1500, 812, 1447, - 816, 818, 800, 808, 809, 831, 838, 1481, 839, 840, - 841, 40, 842, 290, 291, 292, 40, 843, 40, 40, - 40, 844, 40, 846, 847, 40, 900, 1483, 27, 28, - 29, 30, 31, 32, 33, 849, 901, 40, 40, 40, - 40, 904, 905, 907, 906, 908, 913, 911, 912, 915, - 946, 947, 392, 1488, 952, 392, 392, 392, 392, 104, - 392, 392, 392, 953, 1493, 1499, 954, 955, 635, 40, - 1268, 40, 1504, 67, 68, 956, 69, 265, 127, 266, - 957, 126, 128, 129, 130, 131, 132, 958, 133, 134, - 135, 136, 959, 137, 138, 960, 961, 139, 140, 141, - 142, 40, 34, 40, 143, 144, 962, 1197, 963, 98, - 13, 965, 1617, 145, 966, 146, 970, 985, 1001, 1618, - 636, 992, 1003, 637, 1543, 996, 1005, 1006, 1007, 1010, - 147, 148, 149, 1583, 1011, 1017, 1018, 1019, 420, 1020, - 1021, 913, 1022, 1023, 1033, 1024, 1025, 1031, 1541, 1032, - 1080, 1040, 1042, 1074, 1082, 1083, 1085, 1084, 1554, 1555, - 1556, 1088, 1135, 1147, 1150, 150, 1200, 1201, 1220, 1138, - 916, 917, 918, 1202, 919, 920, 921, 922, 1203, 923, - 924, 198, 1155, 925, 926, 927, 928, 290, 291, 292, - 929, 930, 1204, 1206, 27, 28, 29, 30, 31, 32, - 33, 1236, 1242, 1243, 1249, 1252, 1579, 1237, 1238, 1651, - 1590, 1253, 1255, 1620, 1258, 1596, 1590, 1599, 1269, 1603, - 1662, 1596, 1590, 1599, 1270, 1271, 297, 152, 153, 154, - 743, 1272, 1607, 1273, 1274, 1275, 1276, 1279, 40, 40, - 40, 40, 1281, 1596, 1590, 1599, 40, 1283, 295, 40, - 1284, 40, 40, 40, 40, 40, 40, 40, 931, 40, - 40, 40, 40, 1315, 40, 40, 40, 1317, 40, 40, - 40, 40, 1316, 1320, 40, 40, 40, 40, 913, 294, - 1321, 1322, 1323, 1324, 40, 1373, 40, 488, 95, 40, - 1375, 96, 1494, 40, 40, 1377, 40, 1378, 1381, 1663, - 40, 40, 40, 40, 1390, 1391, 1658, 1392, 1396, 1397, - 1400, 1401, 655, 1418, 97, 98, 2, 40, 1413, 99, - 913, 100, 1160, 1045, 1162, 1168, 1664, 1170, 101, 1172, - 1046, 1174, 1047, 1048, 1049, 1176, 40, 40, 40, 40, - 40, 1178, 40, 40, 1180, 102, 1182, 1184, 1186, 1433, - 155, 1437, 40, 40, 1434, 1438, 156, 1439, 1449, 1451, - 103, 1453, 157, 1440, 1450, 1452, 1454, 1455, 1456, 40, - 1459, 1050, 1051, 1052, 40, 40, 40, 40, 40, 40, + 673, 160, 674, 227, 228, 307, 284, 203, 920, 553, + 165, 554, 120, 121, 118, 55, 555, 59, 109, 1232, + 162, 1147, 169, 170, 171, 172, 124, 125, 56, 164, + 1246, 624, 908, 367, 624, 1285, 573, 624, 48, 707, + 1049, 1283, 603, 57, 206, 739, 740, 741, 219, 213, + 45, 1547, 832, 119, 833, 147, 477, 204, 206, 1518, + 135, 206, 807, 206, 207, 604, 34, 78, 306, 206, + 1531, 1294, 1003, 756, 206, 340, 119, 177, 178, 730, + 731, 1286, 232, 1289, 624, 74, 810, 316, 1013, 66, + 206, 421, 91, 167, 561, 67, 68, 1520, 69, 340, + 1526, 186, 34, 235, 236, 254, 1360, 316, 238, 164, + 249, 252, 253, 489, 1509, 476, 473, 34, 745, 427, + 429, 431, 433, 435, 310, 37, 1528, 216, 267, 37, + 423, 1287, 649, 37, 37, 426, 1500, 520, 1317, 290, + 1529, 259, 203, 428, 261, 398, 75, 37, 1542, 292, + 1139, 288, 291, 198, 720, 287, 1539, 1319, 542, 287, + 430, 289, 72, 1540, 308, 1419, 1522, 746, 1385, 1157, + 1091, 206, 109, 167, 94, 287, 542, 432, 37, 1377, + 434, 424, 397, 1445, 501, 467, 424, 589, 490, 487, + 1092, 1541, 443, 1320, 424, 502, 488, 112, 475, 1138, + 449, 450, 206, 720, 1427, 470, 444, 595, 301, 1384, + 218, 424, 300, 479, 480, 289, 1561, 740, 1558, 1559, + 1161, 1162, 618, 1560, 500, 312, 507, 485, 424, 1378, + 299, 424, 1042, 301, 494, 1165, 67, 300, 1598, 69, + 119, 567, 567, 209, 440, 471, 1166, 147, 147, 691, + 757, 761, 1156, 135, 598, 299, 497, 262, 263, 819, + 110, 298, 499, 794, 969, 722, 472, 264, 67, 68, + 832, 69, 833, 1545, 216, 156, 533, 1171, 1197, 111, + 2, 518, 523, 540, 119, 522, 298, 216, 524, 1206, + 530, 567, 527, 122, 123, 597, 575, 536, 537, 538, + 539, 78, 119, 826, 308, 117, 78, 596, 594, 1546, + 571, 34, 1238, 1533, 722, 827, 828, 1064, 1065, 1066, + 119, 561, 567, 119, 568, 114, 517, 592, 569, 558, + 55, 561, 59, 829, 119, 216, 578, 579, 717, 718, + 588, 902, 559, 56, 508, 1032, 1034, 206, 342, 119, + 580, 586, 557, 48, 109, 593, 662, 560, 57, 164, + 1425, 660, 617, 119, 556, 45, 67, 68, 1269, 69, + 119, 122, 123, 67, 68, 718, 69, 67, 68, 119, + 69, 119, 509, 830, 206, 624, 119, 626, 626, 645, + 651, 216, 528, 67, 68, 1172, 69, 601, 625, 625, + 644, 650, 1187, 34, 1048, 104, 496, 1188, 714, 98, + 441, 216, 34, 98, 119, 668, 669, 1187, 670, 492, + 671, 301, 1188, 167, 718, 300, 692, 1507, 168, 98, + 969, 738, 700, 1173, 672, 679, 680, 217, 173, 122, + 123, 119, 119, 299, 179, 206, 119, 37, 37, 37, + 696, 510, 67, 68, 602, 69, 367, 174, 13, 767, + 1361, 1544, 689, 34, 690, 206, 511, 802, 647, 643, + 237, 648, 512, 1163, 298, 772, 530, 269, 623, 470, + 269, 744, 742, 743, 744, 1512, 109, 572, 188, 289, + 513, 715, 904, 1295, 720, 156, 156, 487, 156, 725, + 726, 727, 1174, 729, 124, 733, 734, 735, 759, 514, + 515, 577, 156, 516, 728, 587, 732, 1175, 624, 180, + 736, 826, 1282, 1176, 1502, 156, 1552, 122, 123, 1227, + 294, 295, 296, 827, 828, 485, 119, 616, 581, 753, + 754, 1177, 27, 28, 29, 30, 31, 32, 33, 777, + 182, 829, 831, 121, 1524, 294, 295, 296, 582, 583, + 1178, 1179, 766, 792, 1180, 771, 768, 770, 70, 73, + 76, 79, 82, 85, 88, 780, 1181, 811, 27, 28, + 29, 30, 31, 32, 33, 286, 297, 776, 1183, 469, + 1185, 1503, 783, 27, 28, 29, 30, 31, 32, 33, + 220, 830, 1388, 1389, 1519, 469, 677, 801, 769, 779, + 779, 1187, 779, 367, 119, 721, 1188, 2, 1536, 203, + 839, 1525, 843, 183, 722, 528, 2, 1182, 67, 68, + 67, 69, 820, 69, 95, 723, 821, 96, 779, 1184, + 639, 1186, 823, 842, 184, 825, 477, 1424, 67, 68, + 1068, 69, 724, 983, 206, 1000, 838, 206, 848, 989, + 97, 98, 561, 185, 905, 99, 1303, 100, 301, 1470, + 812, 813, 749, 157, 101, 1304, 816, 2, 817, 856, + 543, 67, 68, 533, 69, 553, 1305, 554, 233, 126, + 299, 102, 555, 259, 67, 68, 269, 69, 543, 269, + 639, 221, 126, 1306, 919, 222, 103, 976, 980, 949, + 234, 950, 1495, 953, 954, 955, 549, 98, 1501, 549, + 1473, 298, 1471, 260, 848, 974, 293, 941, 956, 311, + 98, 1550, 302, 1007, 985, 1479, 972, 530, 241, 1482, + 1415, 477, 1481, 294, 295, 296, 979, 303, 1523, 1002, + 984, 986, 988, 640, 948, 67, 68, 996, 69, 998, + 304, 999, 482, 483, 1014, 305, 1004, 781, 919, 312, + 1071, 342, 1072, 1073, 1074, 1075, 1076, 67, 68, 1005, + 69, 156, 800, 399, 8, 9, 1018, 27, 28, 29, + 30, 31, 32, 33, 1046, 13, 1020, 1021, 301, 987, + 1009, 422, 300, 67, 13, 641, 69, 119, 642, 436, + 1031, 779, 1417, 640, 1555, 313, 619, 1033, 620, 1035, + 299, 621, 622, 445, 25, 446, 447, 584, 22, 1070, + 1043, 477, 448, 1067, 33, 152, 153, 154, 942, 943, + 314, 122, 123, 581, 375, 1077, 19, 1078, 152, 153, + 154, 298, 439, 1564, 34, 13, 1563, 451, 269, 269, + 1148, 269, 692, 582, 583, 641, 468, 700, 642, 1158, + 1363, 1364, 848, 944, 474, 561, 561, 16, 561, 27, + 28, 29, 30, 31, 32, 33, 477, 1588, 27, 28, + 29, 30, 31, 32, 33, 1597, 1204, 1146, 206, 622, + 622, 1150, 1600, 67, 68, 478, 69, 1159, 717, 718, + 590, 127, 591, 481, 581, 128, 129, 130, 131, 132, + 1212, 133, 134, 135, 136, 491, 137, 138, 342, 495, + 139, 140, 141, 142, 582, 583, 98, 143, 144, 27, + 28, 29, 30, 31, 32, 33, 145, 498, 146, 622, + 67, 68, 1237, 69, 477, 501, 1190, 1231, 126, 1233, + 1201, 1017, 1199, 147, 148, 149, 1205, 502, 67, 68, + 1019, 69, 269, 269, 1256, 1200, 206, 1202, 804, 1203, + 507, 67, 68, 508, 69, 919, 98, 572, 572, 1548, + 294, 295, 296, 1586, 284, 477, 1549, 1252, 150, 1255, + 509, 1236, 783, 1259, 783, 558, 119, 561, 510, 1216, + 1225, 645, 945, 946, 511, 947, 67, 68, 559, 69, + 1214, 1223, 644, 1380, 1381, 1382, 1248, 512, 557, 1249, + 1213, 1222, 119, 560, 581, 1215, 1224, 572, 513, 1258, + 556, 797, 798, 799, 804, 1274, 1339, 1340, 1341, 1342, + 848, 122, 123, 581, 582, 583, 1343, 1344, 1345, 519, + 848, 1365, 1366, 848, 919, 521, 1535, 1537, 2, 1142, + 477, 1371, 33, 582, 583, 514, 33, 33, 33, 33, + 33, 515, 33, 33, 33, 33, 570, 33, 33, 477, + 1557, 33, 33, 33, 33, 516, 37, 525, 33, 33, + 156, 40, 526, 43, 152, 153, 154, 33, 542, 33, + 46, 1191, 576, 654, 655, 656, 156, 608, 608, 600, + 294, 295, 296, 653, 33, 33, 33, 49, 67, 68, + 1288, 69, 1094, 1095, 848, 848, 848, 848, 848, 848, + 848, 664, 52, 609, 609, 665, 7, 10, 13, 657, + 658, 659, 681, 682, 683, 667, 676, 1301, 1302, 33, + 678, 1336, 1337, 1307, 1308, 1309, 1310, 1311, 1312, 1313, + 1314, 1315, 1316, 675, 1318, 34, 1321, 781, 1325, 781, + 97, 1324, 301, 155, 833, 99, 300, 100, 684, 685, + 686, 687, 804, 609, 101, 1239, 1333, 1240, 250, 251, + 688, 216, 702, 109, 299, 122, 123, 581, 695, 701, + 706, 102, 981, 109, 109, 109, 109, 703, 704, 1208, + 1209, 1210, 1211, 109, 109, 109, 103, 582, 583, 1080, + 1081, 1082, 1083, 1084, 200, 298, 709, 1352, 1374, 1422, + 632, 1221, 1355, 10, 11, 12, 13, 1356, 61, 64, + 833, 67, 223, 1362, 224, 225, 226, 982, 804, 716, + 156, 67, 68, 1369, 69, 119, 721, 1372, 1373, 67, + 68, 605, 909, 606, 607, 608, 722, 126, 1376, 200, + 723, 34, 724, 1379, 1383, 67, 68, 216, 69, 119, + 737, 97, 100, 126, 103, 1392, 1393, 1394, 1395, 1277, + 1278, 1279, 1280, 1281, 1423, 98, 747, 744, 1145, 748, + 1190, 255, 256, 257, 258, 1428, 760, 762, 750, 40, + 763, 98, 764, 1416, 765, 1418, 1435, 773, 774, 775, + 27, 28, 29, 30, 31, 32, 33, 503, 504, 505, + 506, 778, 785, 919, 33, 717, 718, 634, 784, 805, + 804, 804, 40, 1167, 1168, 1169, 1170, 40, 806, 40, + 40, 40, 1434, 40, 199, 814, 40, 803, 804, 1439, + 804, 815, 818, 822, 824, 837, 844, 1472, 40, 40, + 40, 40, 804, 845, 804, 804, 846, 804, 804, 2, + 847, 848, 849, 850, 852, 1346, 853, 906, 833, 1474, + 1190, 855, 907, 910, 67, 68, 911, 69, 912, 1350, + 40, 1351, 40, 917, 918, 913, 919, 921, 951, 952, + 957, 833, 914, 152, 153, 154, 958, 959, 960, 67, + 68, 1510, 69, 1485, 1486, 1487, 1514, 126, 961, 152, + 153, 154, 40, 962, 40, 963, 964, 965, 966, 967, + 968, 970, 971, 990, 804, 804, 804, 804, 804, 804, + 804, 975, 997, 1001, 1006, 98, 1008, 1010, 1322, 1011, + 1012, 1015, 834, 1016, 191, 1323, 1022, 192, 193, 194, + 195, 1521, 196, 197, 198, 1023, 1527, 1521, 1530, 1024, + 1534, 1593, 1527, 1521, 1530, 2, 1025, 1026, 1027, 1028, + 1038, 1029, 1551, 1538, 294, 295, 296, 1030, 1036, 1037, + 1045, 1047, 1582, 424, 1527, 1521, 1530, 1079, 1085, 191, + 1087, 1089, 192, 193, 194, 195, 97, 196, 197, 198, + 1090, 99, 1088, 100, 833, 1093, 1140, 1152, 834, 1155, + 101, 1143, 1192, 1218, 1160, 1219, 1220, 1193, 1194, 919, + 1195, 1595, 1196, 1228, 1198, 1229, 1230, 102, 1234, 1235, + 1241, 631, 392, 1244, 10, 11, 12, 13, 1245, 1247, + 1594, 1250, 103, 1261, 1262, 1268, 833, 1589, 1263, 40, + 40, 40, 40, 152, 153, 154, 833, 40, 1271, 833, + 40, 919, 40, 40, 40, 40, 40, 40, 40, 1273, + 40, 40, 40, 40, 1275, 40, 40, 40, 1264, 40, + 40, 40, 40, 1276, 1265, 40, 40, 40, 40, 1266, + 1267, 1291, 1292, 1296, 1297, 40, 1293, 40, 1298, 1299, + 40, 1300, 492, 1332, 40, 40, 1334, 40, 1335, 1338, + 157, 40, 40, 40, 40, 301, 1347, 392, 1353, 300, + 1348, 27, 28, 29, 30, 31, 32, 33, 40, 1063, + 833, 833, 833, 833, 833, 833, 833, 299, 1349, 1354, + 1357, 660, 1375, 13, 1358, 1370, 1386, 40, 40, 40, + 40, 40, 1387, 40, 40, 632, 834, 620, 633, 1390, + 621, 622, 1391, 40, 40, 1406, 1396, 1397, 484, 1398, + 1408, 1399, 1400, 1401, 1409, 1402, 1403, 1411, 1404, 834, + 40, 1413, 1405, 1412, 1407, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 1477, 1457, 1458, 1460, 561, 1461, 1053, 1054, 1055, - 210, 1056, 1463, 1462, 1057, 1464, 40, 40, 40, 40, - 1465, 40, 40, 40, 40, 1466, 1467, 40, 1468, 40, - 1469, 40, 40, 40, 40, 1470, 40, 40, 561, 40, - 40, 40, 1471, 561, 1472, 561, 561, 561, 40, 561, - 1473, 156, 561, 1474, 1476, 1478, 1486, 1216, 1217, 1218, - 1219, 1475, 1479, 1485, 561, 561, 561, 561, 25, 1491, - 1495, 1497, 22, 1496, 1501, 1502, 40, 40, 40, 1503, - 1329, 10, 11, 12, 13, 1331, 95, 1333, 1335, 96, - 19, 1505, 1506, 1507, 40, 40, 561, 40, 40, 40, - 1508, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 1509, 40, 97, 98, 1511, 67, 68, 99, 69, 100, - 1512, 16, 1515, 126, 1513, 1544, 101, 1514, 561, 1516, - 561, 1517, 1518, 1519, 1520, 1045, 1521, 1522, 290, 291, - 292, 1523, 1046, 102, 1047, 1048, 1049, 1524, 1525, 1526, - 1527, 98, 1528, 1529, 1364, 1530, 1531, 1532, 103, 1533, - 1534, 1365, 1535, 1536, 1537, 1538, 1549, 156, 27, 28, - 29, 30, 31, 32, 33, 1559, 1547, 1560, 1561, 67, - 68, 1553, 69, 1050, 1051, 1052, 1562, 126, 1577, 909, - 127, 1580, 1623, 1582, 128, 129, 130, 131, 132, 1584, - 133, 134, 135, 136, 1585, 137, 138, 1586, 1622, 139, - 140, 141, 142, 1631, 1634, 98, 143, 144, 1652, 1653, - 67, 68, 1654, 903, 1656, 145, 1659, 146, 126, 1053, - 1054, 1055, 1660, 1056, 1661, 1668, 1057, 1670, 1665, 437, - 438, 736, 147, 148, 149, 104, 540, 538, 541, 29, - 137, 802, 858, 533, 837, 399, 98, 747, 393, 829, - 754, 147, 138, 859, 536, 561, 561, 748, 561, 152, - 153, 154, 822, 561, 537, 545, 561, 150, 561, 561, - 561, 561, 561, 561, 561, 271, 561, 561, 561, 561, - 74, 561, 561, 830, 838, 561, 561, 561, 561, 143, - 164, 561, 561, 561, 561, 144, 240, 167, 210, 562, - 571, 561, 4, 561, 31, 28, 561, 28, 55, 58, - 94, 561, 106, 109, 112, 118, 55, 561, 561, 561, - 561, 115, 55, 152, 153, 154, 67, 68, 822, 69, - 312, 55, 562, 393, 126, 803, 803, 562, 803, 562, - 562, 562, 55, 562, 661, 55, 562, 1259, 55, 968, - 1251, 55, 1036, 561, 55, 561, 561, 561, 562, 562, - 562, 562, 98, 1552, 152, 153, 154, 55, 55, 561, - 561, 55, 1480, 1410, 1250, 1371, 55, 1136, 1314, 55, - 7, 10, 13, 1159, 700, 1149, 561, 1402, 910, 1411, - 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 40, 40, 1420, 1410, 393, 1414, 561, 27, 28, 29, + 30, 31, 32, 33, 1426, 1421, 1430, 40, 40, 40, + 40, 1431, 40, 40, 40, 40, 1432, 1436, 40, 1437, + 40, 1438, 40, 40, 40, 40, 1440, 40, 40, 561, + 40, 40, 40, 1441, 561, 1442, 561, 561, 561, 40, + 561, 1443, 392, 561, 1444, 392, 392, 392, 392, 1446, + 392, 392, 392, 1447, 1448, 561, 561, 561, 561, 1449, + 1450, 1451, 834, 1454, 1452, 1453, 1455, 40, 40, 40, + 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 393, + 1465, 1468, 1466, 1467, 1469, 40, 40, 561, 40, 40, + 40, 1480, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 1490, 40, 1484, 834, 1475, 1478, 67, 68, 1491, + 69, 1492, 1493, 915, 834, 126, 1508, 834, 127, 561, + 1511, 561, 128, 129, 130, 131, 132, 1513, 133, 134, + 135, 136, 1515, 137, 138, 1516, 1517, 139, 140, 141, + 142, 1553, 1562, 98, 143, 144, 1554, 1565, 1583, 1584, + 1585, 835, 1050, 145, 1590, 146, 1591, 1592, 1596, 1051, + 1599, 1052, 1053, 1054, 1587, 1601, 437, 104, 438, 137, + 147, 148, 149, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 834, 834, + 834, 834, 834, 834, 834, 29, 784, 840, 718, 540, + 1055, 1056, 1057, 399, 819, 150, 538, 294, 295, 296, + 729, 811, 541, 533, 736, 730, 393, 835, 1260, 393, + 138, 482, 483, 841, 536, 537, 545, 271, 74, 143, + 164, 812, 144, 147, 393, 820, 240, 393, 393, 393, + 393, 167, 393, 393, 393, 571, 1058, 1059, 1060, 210, + 1061, 4, 28, 1062, 31, 28, 561, 561, 58, 561, + 94, 152, 153, 154, 561, 55, 106, 561, 55, 561, + 561, 561, 561, 561, 561, 561, 55, 561, 561, 561, + 561, 55, 561, 561, 55, 115, 561, 561, 561, 561, + 55, 55, 561, 561, 561, 561, 95, 316, 666, 96, + 562, 1041, 561, 55, 561, 109, 973, 561, 1251, 1141, + 112, 1483, 561, 1242, 55, 118, 1243, 1367, 561, 561, + 561, 561, 97, 98, 55, 1290, 55, 99, 55, 100, + 55, 55, 55, 562, 1329, 1164, 101, 916, 562, 1154, + 562, 562, 562, 1359, 562, 1368, 599, 562, 163, 1151, + 93, 239, 705, 102, 561, 1331, 561, 561, 561, 562, + 562, 562, 562, 755, 166, 835, 991, 995, 103, 851, + 561, 561, 541, 793, 202, 713, 636, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 561, 835, 0, + 155, 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 55, - 163, 93, 562, 561, 562, 1374, 561, 561, 1146, 239, - 803, 803, 803, 594, 166, 986, 749, 536, 990, 787, - 845, 202, 0, 561, 561, 561, 561, 0, 561, 561, - 561, 561, 155, 708, 561, 803, 561, 631, 561, 561, - 561, 0, 0, 561, 561, 0, 561, 561, 561, 0, - 393, 0, 0, 393, 0, 561, 822, 0, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 393, 0, - 0, 393, 393, 393, 393, 0, 393, 393, 393, 0, - 0, 0, 0, 561, 561, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 0, 561, 561, 0, 561, 561, 561, 0, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 0, 561, 0, - 0, 0, 822, 0, 0, 0, 0, 0, 0, 803, - 0, 803, 803, 803, 803, 0, 0, 0, 0, 562, - 562, 0, 562, 0, 0, 0, 0, 562, 0, 0, - 562, 0, 562, 562, 562, 562, 562, 562, 562, 0, - 562, 562, 562, 562, 0, 562, 562, 0, 1650, 562, - 562, 562, 562, 0, 0, 562, 562, 562, 562, 0, - 0, 0, 0, 555, 0, 562, 0, 562, 0, 0, - 562, 0, 0, 0, 0, 562, 0, 0, 0, 0, - 0, 562, 562, 562, 562, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 822, 822, 555, 0, 0, 0, - 0, 555, 0, 555, 555, 555, 0, 555, 0, 0, - 0, 0, 0, 0, 822, 0, 0, 562, 0, 562, - 562, 562, 555, 555, 555, 555, 822, 0, 822, 822, - 0, 822, 822, 562, 562, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 0, 0, 0, 555, 562, 562, 562, 562, 562, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 0, 0, 0, 562, 561, 562, 0, 561, 561, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 561, 561, 561, 561, 0, 561, + 561, 561, 561, 0, 0, 561, 0, 561, 0, 561, + 561, 561, 0, 0, 561, 561, 0, 561, 561, 561, + 0, 1050, 0, 0, 0, 0, 561, 0, 1051, 0, + 1052, 1053, 1054, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 835, 0, 0, 561, 561, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1055, + 1056, 1057, 561, 561, 0, 561, 561, 561, 0, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 0, 561, + 0, 0, 0, 835, 0, 1543, 0, 0, 0, 0, + 0, 0, 0, 835, 0, 0, 835, 0, 0, 0, + 562, 562, 0, 562, 0, 1058, 1059, 1060, 562, 1061, + 0, 562, 1062, 562, 562, 562, 562, 562, 562, 562, + 0, 562, 562, 562, 562, 0, 562, 562, 0, 0, + 562, 562, 562, 562, 0, 0, 562, 562, 562, 562, + 0, 0, 0, 0, 555, 0, 562, 0, 562, 0, + 0, 562, 0, 0, 0, 0, 562, 0, 0, 0, + 0, 0, 562, 562, 562, 562, 0, 835, 835, 835, + 835, 835, 835, 835, 0, 0, 0, 555, 67, 68, + 0, 69, 555, 0, 555, 555, 555, 0, 555, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, + 562, 562, 562, 555, 555, 555, 555, 0, 0, 0, + 0, 0, 0, 0, 562, 562, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 0, 0, 0, 555, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 0, 0, 0, 555, 562, 555, 0, - 562, 562, 0, 0, 0, 0, 0, 0, 822, 822, - 822, 822, 822, 822, 822, 0, 0, 562, 562, 562, - 562, 0, 562, 562, 562, 562, 0, 0, 562, 1635, - 562, 0, 562, 562, 562, 0, 0, 562, 562, 0, - 562, 562, 562, 0, 1636, 0, 0, 0, 0, 562, - 0, 0, 916, 917, 918, 0, 919, 920, 921, 922, - 1637, 923, 924, 198, 0, 925, 926, 927, 928, 1638, - 0, 0, 929, 930, 0, 0, 0, 562, 562, 0, - 0, 0, 0, 1639, 1640, 1641, 1642, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 562, 0, 562, 562, - 562, 0, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 0, 562, 0, 0, 1643, 1644, 1645, 1646, 1647, - 1648, 1649, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 555, 0, 555, 0, 0, 0, - 931, 555, 851, 0, 555, 0, 555, 555, 555, 555, - 555, 555, 555, 0, 555, 555, 555, 555, 0, 555, - 555, 0, 0, 555, 555, 555, 555, 0, 0, 555, - 555, 555, 555, 0, 0, 0, 0, 553, 0, 555, - 0, 555, 0, 0, 555, 0, 0, 0, 0, 555, - 0, 0, 0, 0, 0, 555, 555, 555, 555, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 851, 0, - 553, 0, 0, 0, 0, 553, 0, 553, 553, 553, - 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 0, 555, 555, 555, 553, 553, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 555, 555, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 0, 0, 0, 553, 555, + 562, 562, 562, 562, 0, 0, 0, 555, 562, 555, + 0, 562, 562, 240, 241, 242, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 562, + 562, 562, 0, 562, 562, 562, 562, 0, 243, 562, + 0, 562, 0, 562, 562, 562, 0, 0, 562, 562, + 0, 562, 562, 562, 0, 0, 0, 0, 0, 0, + 562, 922, 923, 924, 0, 925, 926, 927, 928, 0, + 929, 930, 198, 0, 931, 932, 933, 934, 0, 0, + 0, 935, 936, 0, 0, 0, 0, 0, 562, 562, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 562, 0, 562, + 562, 562, 0, 562, 562, 562, 562, 562, 562, 562, + 562, 562, 0, 562, 0, 0, 0, 0, 0, 0, + 0, 0, 244, 0, 245, 246, 247, 248, 0, 0, + 0, 0, 0, 0, 555, 555, 0, 555, 0, 937, + 0, 0, 555, 0, 0, 555, 0, 555, 555, 555, + 555, 555, 555, 555, 0, 555, 555, 555, 555, 0, + 555, 555, 0, 1581, 555, 555, 555, 555, 0, 0, + 555, 555, 555, 555, 0, 0, 0, 0, 553, 0, + 555, 0, 555, 0, 0, 555, 0, 0, 0, 0, + 555, 0, 0, 0, 0, 0, 555, 555, 555, 555, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 553, 0, 0, 0, 0, 553, 0, 553, 553, + 553, 0, 553, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 0, 555, 555, 555, 553, 553, 553, + 553, 0, 0, 0, 0, 0, 0, 0, 555, 555, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 555, 0, 0, 0, 553, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 0, 0, 0, - 553, 555, 553, 0, 555, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 555, 555, 555, 0, 555, 555, 555, 555, - 0, 0, 555, 0, 555, 0, 555, 555, 555, 0, - 0, 555, 555, 216, 555, 555, 555, 0, 0, 0, - 0, 0, 0, 555, 0, 0, 851, 0, 1298, 1299, - 1300, 0, 1301, 1302, 1303, 1304, 0, 1305, 1306, 198, - 0, 1307, 1308, 1309, 1310, 0, 0, 0, 0, 851, - 1311, 555, 555, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 555, 0, 555, 555, 555, 0, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 0, 555, 268, 269, 270, - 0, 271, 272, 273, 274, 0, 275, 276, 0, 0, - 277, 278, 279, 280, 0, 0, 0, 553, 553, 0, - 553, 0, 0, 0, 0, 553, 852, 0, 553, 0, - 553, 553, 553, 553, 553, 553, 553, 0, 553, 553, - 553, 553, 0, 553, 553, 0, 0, 553, 553, 553, - 553, 0, 0, 553, 553, 553, 553, 0, 0, 0, - 0, 551, 0, 553, 0, 553, 0, 0, 553, 0, - 0, 0, 851, 553, 0, 0, 0, 0, 0, 553, - 553, 553, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 852, 0, 551, 0, 0, 0, 0, 551, - 0, 551, 551, 551, 0, 551, 0, 0, 0, 0, - 0, 0, 0, 0, 851, 553, 0, 553, 553, 553, - 551, 551, 551, 551, 851, 0, 0, 851, 0, 0, - 0, 553, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, - 0, 0, 551, 553, 553, 553, 553, 553, 553, 553, + 555, 555, 555, 555, 555, 555, 555, 555, 0, 0, + 0, 553, 555, 553, 0, 555, 555, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 555, 555, 555, 0, 555, 555, 555, + 555, 0, 0, 555, 1566, 555, 0, 555, 555, 555, + 0, 0, 555, 555, 0, 555, 555, 555, 0, 1567, + 0, 0, 0, 0, 555, 0, 0, 922, 923, 924, + 0, 925, 926, 927, 928, 1568, 929, 930, 198, 0, + 931, 932, 933, 934, 1569, 0, 0, 935, 936, 0, + 0, 0, 555, 555, 0, 0, 0, 0, 1570, 1571, + 1572, 1573, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 555, 0, 555, 555, 555, 0, 555, 555, 555, + 555, 555, 555, 555, 555, 555, 0, 555, 0, 0, + 1574, 1575, 1576, 1577, 1578, 1579, 1580, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, + 0, 553, 0, 0, 0, 937, 553, 0, 0, 553, + 0, 553, 553, 553, 553, 553, 553, 553, 0, 553, + 553, 553, 553, 0, 553, 553, 0, 0, 553, 553, + 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, + 0, 0, 551, 0, 553, 0, 553, 0, 0, 553, + 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, + 553, 553, 553, 553, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 551, 785, 785, 0, 785, + 551, 0, 551, 551, 551, 0, 551, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 553, 0, 553, 553, + 553, 551, 551, 551, 551, 0, 0, 0, 0, 0, + 0, 0, 553, 553, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, + 0, 0, 0, 551, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 0, 0, 0, 551, 553, 551, 0, 553, 553, - 0, 0, 0, 0, 0, 0, 0, 0, 851, 851, - 851, 851, 851, 851, 851, 553, 553, 553, 553, 0, - 553, 553, 553, 553, 0, 0, 553, 0, 553, 0, - 553, 553, 553, 0, 0, 553, 553, 0, 553, 553, - 553, 0, 0, 0, 0, 0, 0, 553, 0, 0, - 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 852, 0, 553, 553, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 553, 0, 553, 553, 553, 0, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 0, - 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 551, 551, 0, 551, 0, 0, 0, 0, 551, - 853, 0, 551, 0, 551, 551, 551, 551, 551, 551, - 551, 0, 551, 551, 551, 551, 0, 551, 551, 0, - 0, 551, 551, 551, 551, 0, 0, 551, 551, 551, - 551, 0, 0, 0, 0, 552, 0, 551, 0, 551, - 0, 0, 551, 0, 0, 0, 852, 551, 0, 0, - 0, 0, 0, 551, 551, 551, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 853, 0, 552, 0, - 0, 0, 0, 552, 0, 552, 552, 552, 0, 552, - 0, 0, 0, 0, 0, 0, 0, 0, 852, 551, - 0, 551, 551, 551, 552, 552, 552, 552, 852, 0, - 0, 852, 0, 0, 0, 551, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 551, 0, 0, 0, 552, 551, 551, 551, + 553, 553, 0, 0, 0, 551, 553, 551, 0, 553, + 553, 785, 785, 785, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 553, 553, 553, 553, + 0, 553, 553, 553, 553, 0, 785, 553, 0, 553, + 0, 553, 553, 553, 0, 0, 553, 553, 0, 553, + 553, 553, 0, 127, 0, 0, 0, 0, 553, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 0, 1326, + 144, 0, 0, 0, 0, 0, 553, 553, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 553, 553, 0, 553, 553, 553, + 0, 553, 553, 553, 553, 553, 553, 553, 553, 553, + 0, 553, 0, 0, 0, 0, 0, 0, 1327, 0, + 785, 0, 785, 785, 785, 785, 0, 0, 0, 0, + 0, 0, 551, 551, 0, 551, 0, 1328, 0, 0, + 551, 0, 0, 551, 0, 551, 551, 551, 551, 551, + 551, 551, 0, 551, 551, 551, 551, 0, 551, 551, + 0, 0, 551, 551, 551, 551, 0, 0, 551, 551, + 551, 551, 0, 0, 0, 0, 552, 0, 551, 0, + 551, 0, 0, 551, 0, 0, 0, 0, 551, 0, + 0, 0, 0, 0, 551, 551, 551, 551, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, + 0, 0, 0, 0, 552, 0, 552, 552, 552, 0, + 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 0, 551, 551, 551, 552, 552, 552, 552, 0, + 0, 0, 0, 0, 0, 0, 551, 551, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 551, 0, 0, 0, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 0, 0, 0, 552, 551, - 552, 0, 551, 551, 0, 0, 0, 0, 0, 0, - 0, 0, 852, 852, 852, 852, 852, 852, 852, 551, - 551, 551, 551, 0, 551, 551, 551, 551, 0, 0, - 551, 0, 551, 0, 551, 551, 551, 0, 0, 551, - 551, 0, 551, 551, 551, 0, 0, 0, 0, 0, - 0, 551, 0, 0, 853, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 853, 0, 551, - 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 551, 551, 0, - 551, 551, 551, 0, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 0, 551, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 552, 552, 0, 552, 0, - 0, 0, 0, 552, 0, 0, 552, 0, 552, 552, - 552, 552, 552, 552, 552, 0, 552, 552, 552, 552, - 0, 552, 552, 0, 0, 552, 552, 552, 552, 0, - 0, 552, 552, 552, 552, 0, 0, 0, 0, 554, - 0, 552, 0, 552, 0, 0, 552, 0, 0, 0, - 853, 552, 0, 0, 0, 0, 0, 552, 552, 552, - 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 554, 0, 0, 0, 0, 554, 0, 554, - 554, 554, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 853, 552, 0, 552, 552, 552, 554, 554, - 554, 554, 853, 0, 0, 853, 0, 0, 0, 552, - 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, - 554, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 551, 551, 551, 551, 551, 551, 0, 0, 0, 552, + 551, 552, 0, 551, 551, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 551, 551, 551, 0, 551, 551, 551, 551, 0, + 0, 551, 0, 551, 216, 551, 551, 551, 0, 0, + 551, 551, 0, 551, 551, 551, 0, 0, 0, 268, + 269, 270, 551, 271, 272, 273, 274, 0, 275, 276, + 198, 0, 277, 278, 279, 280, 0, 0, 0, 0, + 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 551, 551, + 0, 551, 551, 551, 0, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 0, 551, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 552, 552, 0, 552, + 0, 0, 0, 0, 552, 0, 0, 552, 0, 552, + 552, 552, 552, 552, 552, 552, 0, 552, 552, 552, + 552, 0, 552, 552, 0, 0, 552, 552, 552, 552, + 0, 0, 552, 552, 552, 552, 0, 0, 0, 0, + 554, 0, 552, 0, 552, 0, 0, 552, 0, 0, + 0, 0, 552, 0, 0, 0, 0, 0, 552, 552, + 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 554, 0, 0, 0, 0, 554, 0, + 554, 554, 554, 0, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 552, 0, 552, 552, 552, 554, + 554, 554, 554, 0, 0, 0, 0, 0, 0, 0, + 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, + 0, 554, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 0, - 0, 0, 554, 552, 554, 0, 552, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 853, 853, 853, 853, - 853, 853, 853, 552, 552, 552, 552, 0, 552, 552, - 552, 552, 0, 0, 552, 0, 552, 0, 552, 552, - 552, 0, 0, 552, 552, 0, 552, 552, 552, 0, - 127, 0, 0, 0, 0, 552, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 1368, 144, 0, 0, - 0, 0, 0, 552, 552, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 552, 552, 0, 552, 552, 552, 0, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 0, 552, 0, - 0, 0, 0, 0, 0, 1369, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, - 554, 0, 554, 0, 1370, 0, 0, 554, 0, 0, - 554, 0, 554, 554, 554, 554, 554, 554, 554, 0, - 554, 554, 554, 554, 0, 554, 554, 0, 0, 554, - 554, 554, 554, 0, 0, 554, 554, 554, 554, 0, - 0, 0, 0, 708, 0, 554, 0, 554, 0, 0, - 554, 0, 0, 0, 0, 554, 0, 0, 0, 0, - 0, 554, 554, 554, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, - 0, 708, 0, 708, 708, 708, 0, 708, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 0, 554, - 554, 554, 708, 708, 708, 708, 0, 0, 0, 0, - 0, 0, 0, 554, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 0, 0, 0, 708, 554, 554, 554, 554, 554, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 0, 0, 0, 554, 552, 554, 0, 552, 552, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 552, 552, 552, 552, 0, 552, + 552, 552, 552, 0, 0, 552, 0, 552, 0, 552, + 552, 552, 0, 0, 552, 552, 0, 552, 552, 552, + 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 552, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 552, 552, 0, 552, 552, 552, 0, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 0, 552, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 554, 554, 0, 554, 0, 0, 0, 0, 554, 0, + 0, 554, 0, 554, 554, 554, 554, 554, 554, 554, + 0, 554, 554, 554, 554, 0, 554, 554, 0, 0, + 554, 554, 554, 554, 0, 0, 554, 554, 554, 554, + 0, 0, 0, 0, 442, 0, 554, 0, 554, 0, + 0, 554, 0, 0, 0, 0, 554, 0, 0, 0, + 0, 0, 554, 554, 554, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 442, 0, 442, 442, 442, 0, 442, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, + 554, 554, 554, 442, 442, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 554, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 554, 0, 0, 0, 442, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 0, 0, 0, 708, 554, 708, 0, - 554, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 554, 554, - 554, 0, 554, 554, 554, 554, 0, 0, 554, 0, - 554, 0, 554, 554, 554, 0, 0, 554, 554, 0, - 554, 554, 554, 0, 0, 0, 0, 0, 0, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 554, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 554, 554, 0, 554, 554, - 554, 0, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 0, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 708, 708, 0, 708, 0, 0, 0, - 0, 708, 0, 0, 708, 0, 708, 708, 708, 708, - 708, 708, 708, 0, 708, 708, 708, 708, 0, 708, - 708, 0, 0, 708, 708, 708, 708, 0, 0, 708, - 708, 708, 0, 0, 0, 0, 0, 707, 0, 708, - 0, 708, 0, 0, 708, 0, 0, 0, 0, 708, - 0, 0, 0, 0, 0, 708, 708, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 707, 0, 0, 0, 0, 707, 0, 707, 707, 707, - 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 0, 708, 708, 708, 707, 707, 707, 707, - 0, 0, 0, 0, 0, 0, 0, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 0, 0, 707, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 0, 0, 0, - 707, 708, 707, 0, 708, 708, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 708, 708, 708, 0, 708, 708, 708, 708, - 0, 0, 708, 0, 708, 0, 708, 708, 708, 0, - 0, 708, 708, 0, 708, 708, 708, 0, 0, 0, - 0, 0, 0, 708, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 708, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, - 708, 0, 708, 708, 708, 0, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 0, 708, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 707, 707, 0, - 707, 0, 0, 0, 0, 707, 0, 0, 707, 0, - 707, 707, 707, 707, 707, 707, 707, 0, 707, 707, - 707, 707, 0, 707, 707, 0, 0, 707, 707, 707, - 707, 0, 0, 707, 707, 707, 0, 0, 0, 0, - 0, 715, 0, 707, 0, 707, 0, 0, 707, 0, - 0, 0, 0, 707, 0, 0, 0, 0, 0, 707, - 707, 707, 707, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, - 0, 715, 715, 0, 0, 715, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 0, 707, 707, 707, - 715, 0, 715, 715, 0, 0, 0, 0, 0, 0, - 0, 707, 707, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 298, 707, 0, - 0, 0, 0, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 0, 0, 0, 715, 707, 715, 0, 707, 707, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 707, 707, 707, 0, - 707, 707, 707, 707, 0, 0, 707, 0, 707, 0, - 707, 707, 707, 0, 0, 707, 707, 0, 707, 707, - 707, 0, 0, 0, 0, 0, 0, 707, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 707, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 707, 707, 0, 707, 707, 707, 0, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 0, - 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 715, 715, 0, 715, 0, 0, 0, 0, 715, - 0, 0, 715, 0, 715, 715, 715, 715, 715, 715, - 715, 0, 715, 715, 715, 715, 0, 715, 715, 0, - 0, 715, 715, 715, 715, 0, 0, 715, 715, 715, - 0, 0, 52, 0, 0, 0, 0, 715, 0, 715, - 0, 0, 715, 0, 0, 0, 0, 715, 0, 0, - 0, 0, 0, 715, 715, 715, 715, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 298, 0, 0, 0, 0, 0, 0, 298, 0, 298, - 298, 298, 0, 0, 0, 0, 0, 0, 0, 715, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 715, 715, 0, 0, 0, + 554, 554, 554, 554, 0, 0, 0, 442, 554, 442, + 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, + 554, 554, 0, 554, 554, 554, 554, 0, 0, 554, + 0, 554, 0, 554, 554, 554, 0, 0, 554, 554, + 0, 554, 554, 554, 0, 0, 0, 0, 0, 0, + 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 554, 554, 0, 554, + 554, 554, 0, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 0, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 442, 0, 442, 0, 0, + 0, 0, 442, 0, 0, 442, 0, 442, 442, 442, + 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, + 442, 442, 0, 0, 442, 442, 442, 442, 0, 0, + 442, 442, 442, 0, 0, 0, 0, 0, 690, 0, + 442, 0, 442, 0, 0, 442, 0, 0, 0, 0, + 442, 0, 0, 0, 0, 0, 442, 442, 442, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 690, 0, 0, 0, 0, 690, 0, 690, 690, + 690, 0, 690, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 0, 442, 442, 442, 690, 690, 690, + 690, 0, 0, 0, 0, 0, 0, 0, 442, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 690, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 0, 0, + 0, 690, 442, 690, 0, 442, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 442, 442, 0, 442, 442, 442, + 442, 0, 0, 442, 0, 442, 0, 442, 442, 442, + 0, 0, 442, 442, 0, 442, 442, 442, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 442, 0, 442, 442, 442, 0, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 690, 690, + 0, 690, 0, 0, 0, 0, 690, 0, 0, 690, + 0, 690, 690, 690, 690, 690, 690, 690, 0, 690, + 690, 690, 690, 0, 690, 690, 0, 0, 690, 690, + 690, 690, 0, 0, 690, 690, 690, 0, 0, 0, + 0, 0, 689, 0, 690, 0, 690, 0, 0, 690, + 0, 0, 0, 0, 690, 0, 0, 0, 0, 0, + 690, 690, 690, 690, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 689, 0, 0, 0, 0, + 689, 0, 689, 689, 689, 0, 689, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 690, 0, 690, 690, + 690, 689, 689, 689, 689, 0, 0, 0, 0, 0, + 0, 0, 690, 690, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, + 0, 0, 0, 689, 690, 690, 690, 690, 690, 690, + 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, + 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, + 690, 690, 0, 0, 0, 689, 690, 689, 0, 690, + 690, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 690, 690, 690, 690, + 0, 690, 690, 690, 690, 0, 0, 690, 0, 690, + 0, 690, 690, 690, 0, 0, 690, 690, 0, 690, + 690, 690, 0, 0, 0, 0, 0, 0, 690, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 690, 690, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 690, 690, 0, 690, 690, 690, + 0, 690, 690, 690, 690, 690, 690, 690, 690, 690, + 0, 690, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 689, 689, 0, 689, 0, 0, 0, 0, + 689, 0, 0, 689, 0, 689, 689, 689, 689, 689, + 689, 689, 0, 689, 689, 689, 689, 0, 689, 689, + 0, 0, 689, 689, 689, 689, 0, 0, 689, 689, + 689, 0, 0, 0, 0, 0, 697, 0, 689, 0, + 689, 0, 0, 689, 0, 0, 0, 0, 689, 0, + 0, 0, 0, 0, 689, 689, 689, 689, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, + 0, 0, 0, 0, 0, 0, 697, 697, 0, 0, + 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 689, 0, 689, 689, 689, 697, 0, 697, 697, 0, + 0, 0, 0, 0, 0, 0, 689, 689, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1429, 689, 0, 0, 0, 0, 689, 689, + 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 689, 689, 0, 0, 0, 697, + 689, 697, 0, 689, 689, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 689, 689, 689, 689, 0, 689, 689, 689, 689, 0, + 0, 689, 0, 689, 0, 689, 689, 689, 0, 0, + 689, 689, 0, 689, 689, 689, 0, 0, 0, 0, + 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 689, 689, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 689, 689, + 0, 689, 689, 689, 0, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 0, 689, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 697, 697, 0, 697, + 0, 0, 0, 0, 697, 0, 0, 697, 0, 697, + 697, 697, 697, 697, 697, 697, 0, 697, 697, 697, + 697, 0, 697, 697, 0, 0, 697, 697, 697, 697, + 0, 0, 697, 697, 697, 0, 0, 52, 0, 0, + 0, 0, 697, 0, 697, 0, 0, 697, 0, 0, + 0, 0, 697, 0, 0, 0, 0, 0, 697, 697, + 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1050, 0, 0, 0, 0, + 0, 0, 1051, 0, 1052, 1053, 1054, 0, 0, 0, + 0, 0, 0, 0, 697, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1055, 1056, 1057, 0, 697, 0, 0, + 0, 0, 697, 697, 697, 697, 697, 697, 697, 697, + 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, + 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, + 52, 0, 52, 0, 697, 0, 0, 697, 697, 1058, + 1059, 1060, 0, 1061, 0, 0, 1062, 0, 0, 0, + 0, 0, 0, 0, 697, 697, 697, 697, 0, 697, + 697, 697, 697, 0, 0, 697, 0, 697, 0, 697, + 697, 697, 0, 0, 697, 697, 0, 697, 697, 697, + 298, 0, 0, 0, 0, 0, 697, 298, 0, 298, + 298, 298, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, - 298, 0, 715, 0, 0, 0, 0, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 52, 0, 52, 0, 715, - 0, 0, 715, 715, 298, 298, 298, 0, 298, 0, - 0, 298, 0, 0, 0, 0, 0, 0, 0, 715, - 715, 715, 715, 0, 715, 715, 715, 715, 0, 0, - 715, 0, 715, 0, 715, 715, 715, 0, 0, 715, - 715, 0, 715, 715, 715, 0, 0, 0, 0, 0, - 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, - 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 715, 715, 0, - 715, 715, 715, 0, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 0, 715, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 585, - 127, 586, 54, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, + 298, 0, 697, 697, 0, 697, 697, 697, 0, 697, + 697, 697, 697, 697, 697, 697, 697, 697, 0, 697, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 52, 0, 0, 0, 298, 298, 298, 0, 298, 0, + 52, 298, 0, 0, 52, 52, 52, 0, 52, 52, + 52, 52, 0, 52, 52, 52, 0, 52, 52, 52, + 52, 0, 0, 52, 52, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 127, 266, 54, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 52, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 0, 52, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 147, 148, 149, + 0, 52, 52, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, - 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, + 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, + 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, - 835, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, - 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, - 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 0, 0, 0, 0, 0, 0, 0, 372, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 0, 0, 0, 0, 373, 0, - 0, 0, 374, 0, 0, 375, 376, 0, 0, 0, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 54, 0, 0, 54, 0, 0, 389, 0, - 0, 390, 155, 0, 0, 54, 0, 0, 391, 54, - 54, 54, 0, 54, 54, 54, 54, 392, 54, 54, - 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 55, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, + 54, 0, 54, 0, 0, 841, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 0, 52, 0, 52, 0, + 52, 52, 52, 52, 0, 52, 52, 0, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, + 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 52, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 0, 0, 0, 377, 0, 0, 0, 378, 0, 0, + 379, 380, 0, 0, 0, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 54, 0, 0, + 54, 0, 0, 393, 0, 0, 394, 155, 0, 0, + 54, 0, 0, 395, 54, 54, 54, 0, 54, 54, + 54, 54, 396, 54, 54, 54, 0, 54, 54, 54, + 54, 0, 0, 54, 54, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 127, 0, 55, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 54, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 0, 54, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 147, 148, 149, + 0, 54, 54, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, + 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 0, 0, 0, 54, + 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 55, 0, 55, 0, 0, - 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 54, 54, 54, 0, 54, 54, 54, 54, 0, - 0, 54, 0, 54, 0, 54, 54, 54, 54, 0, - 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 0, 54, 54, 54, 0, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 0, 0, 0, 0, 105, 0, - 0, 0, 105, 0, 0, 105, 105, 0, 0, 0, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 55, 0, 0, 55, 0, 0, 105, 0, - 0, 105, 155, 0, 0, 55, 0, 0, 105, 55, - 55, 55, 0, 55, 55, 55, 55, 105, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 56, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 55, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 55, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 147, 148, 149, 0, 55, 55, 0, 0, - 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 55, 55, + 55, 0, 55, 0, 0, 915, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 54, 54, 54, 0, + 54, 54, 54, 54, 0, 0, 54, 0, 54, 0, + 54, 54, 54, 54, 0, 54, 54, 0, 54, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 105, 105, 0, 105, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 54, 0, 54, 54, 54, 0, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, + 0, 0, 0, 105, 0, 0, 0, 105, 0, 0, + 105, 105, 0, 0, 0, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 55, 0, 0, + 55, 0, 0, 105, 0, 0, 105, 155, 0, 0, + 55, 0, 0, 105, 55, 55, 55, 0, 55, 55, + 55, 55, 105, 55, 55, 55, 0, 55, 55, 55, + 55, 0, 0, 55, 55, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 127, 0, 56, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 55, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 143, 144, 0, 0, 0, 55, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 147, 148, 149, + 0, 55, 55, 0, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, + 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, - 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, - 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, + 56, 0, 56, 0, 0, 232, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, + 55, 55, 55, 55, 0, 0, 55, 0, 55, 0, + 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 55, 0, 55, 55, 55, 0, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 0, 53, 0, 232, 232, 232, 232, 232, 0, - 232, 232, 232, 232, 56, 232, 232, 0, 0, 232, - 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, - 0, 56, 0, 0, 0, 232, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 56, 0, 0, 0, 56, 56, 56, 0, 56, 56, + 56, 56, 0, 56, 56, 56, 0, 56, 56, 56, + 56, 0, 0, 56, 56, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 232, 0, 53, 0, 232, + 232, 232, 232, 232, 0, 232, 232, 232, 232, 56, + 232, 232, 0, 0, 232, 232, 232, 232, 0, 0, + 0, 232, 232, 0, 0, 0, 56, 0, 0, 0, + 232, 0, 232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 232, 232, 232, + 0, 56, 56, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 232, 232, 232, 0, 56, 56, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 232, 56, 56, + 0, 0, 232, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, + 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, - 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, - 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 232, 0, 0, 53, 0, 0, 0, 53, - 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, - 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, - 53, 0, 0, 0, 61, 0, 61, 0, 0, 0, - 0, 34, 397, 97, 0, 0, 0, 0, 99, 0, - 100, 0, 0, 0, 53, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 102, 398, 0, 399, 400, 401, - 402, 403, 0, 0, 0, 0, 404, 0, 0, 103, - 0, 53, 0, 0, 0, 405, 53, 53, 0, 0, - 406, 0, 407, 0, 0, 0, 0, 547, 0, 0, - 0, 0, 0, 0, 408, 409, 410, 411, 412, 413, - 414, 415, 0, 0, 0, 0, 0, 416, 53, 53, + 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 56, 56, 56, 0, + 56, 56, 56, 56, 0, 0, 56, 0, 56, 0, + 56, 56, 56, 56, 0, 56, 56, 0, 56, 56, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 56, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 53, 0, 0, 0, 53, 53, 53, 0, 53, 53, + 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, + 53, 0, 0, 53, 53, 53, 0, 0, 0, 61, + 0, 61, 0, 0, 0, 0, 34, 401, 97, 0, + 0, 0, 0, 99, 0, 100, 0, 0, 0, 53, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 102, + 402, 0, 403, 404, 405, 406, 407, 0, 0, 0, + 0, 408, 0, 0, 103, 0, 53, 0, 0, 0, + 409, 53, 53, 0, 0, 410, 0, 411, 0, 0, + 0, 0, 552, 0, 0, 0, 0, 0, 0, 412, + 413, 414, 415, 416, 417, 418, 419, 0, 0, 0, + 0, 0, 420, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 0, 0, 0, 53, + 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 62, 0, 0, 0, - 0, 61, 0, 0, 61, 0, 0, 0, 0, 0, - 53, 53, 53, 53, 61, 53, 53, 53, 53, 0, - 0, 53, 0, 53, 0, 53, 53, 53, 53, 0, - 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, - 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 2, 0, 0, 53, 53, - 0, 53, 53, 53, 0, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 538, 0, 0, 61, 61, 61, + 0, 62, 0, 0, 0, 0, 61, 0, 0, 61, + 0, 0, 0, 0, 0, 53, 53, 53, 53, 61, + 53, 53, 53, 53, 0, 0, 53, 0, 53, 0, + 53, 53, 53, 53, 0, 53, 53, 0, 53, 53, + 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 2, 0, 0, 53, 53, 0, 53, 53, 53, 0, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 0, 543, + 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, - 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, - 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, - 0, 539, 0, 5, 6, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 540, 0, 0, 0, 0, - 541, 0, 0, 8, 9, 0, 0, 0, 0, 61, - 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, - 10, 11, 12, 13, 0, 542, 543, 61, 61, 62, - 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 0, 0, 544, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, - 66, 0, 0, 0, 0, 65, 0, 0, 65, 0, - 0, 0, 0, 0, 62, 62, 62, 62, 65, 62, - 62, 62, 62, 0, 0, 62, 0, 62, 0, 62, - 62, 62, 62, 0, 62, 62, 0, 62, 62, 62, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 62, 62, 0, 62, 62, 62, 0, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, - 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, - 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 65, 65, 65, 0, 65, 65, - 65, 65, 0, 0, 65, 0, 65, 0, 65, 65, - 65, 65, 0, 65, 65, 0, 65, 65, 65, 0, - 0, 0, 0, 0, 566, 566, 0, 0, 566, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 566, 0, 566, 0, 0, 0, 0, - 0, 0, 0, 65, 65, 0, 0, 0, 0, 0, - 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 65, 65, 66, 65, 65, 65, 0, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 566, 0, 566, + 0, 0, 0, 0, 61, 61, 61, 61, 0, 61, + 61, 61, 61, 0, 0, 61, 0, 61, 0, 61, + 61, 61, 61, 0, 61, 61, 0, 61, 61, 61, + 0, 0, 0, 0, 0, 0, 544, 0, 5, 6, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 545, 0, 0, 0, 0, 546, 0, 0, 8, 9, + 0, 0, 0, 0, 61, 61, 0, 0, 0, 0, + 0, 62, 0, 0, 62, 10, 11, 12, 13, 0, + 547, 548, 61, 61, 62, 61, 61, 61, 0, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, + 549, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 65, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 62, 0, 550, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 0, 0, 0, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 0, 66, 0, 0, 0, 0, + 65, 0, 0, 65, 0, 0, 0, 0, 0, 62, + 62, 62, 62, 65, 62, 62, 62, 62, 0, 0, + 62, 0, 62, 0, 62, 62, 62, 62, 0, 62, + 62, 0, 62, 62, 62, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 0, 0, 0, 0, 0, 62, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 62, 62, 0, + 62, 62, 62, 0, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 0, 0, 0, 0, 0, 0, 566, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 65, + 65, 65, 0, 65, 65, 65, 65, 0, 0, 65, + 0, 65, 0, 65, 65, 65, 65, 0, 65, 65, + 0, 65, 65, 65, 0, 0, 0, 0, 0, 566, + 566, 0, 0, 566, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, + 566, 0, 0, 0, 0, 0, 0, 0, 65, 65, + 0, 0, 0, 0, 0, 66, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 65, 65, 66, 65, + 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 566, 0, 566, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 0, 0, 564, 0, 0, 0, 0, - 0, 0, 0, 0, 566, 566, 0, 566, 66, 66, - 66, 66, 0, 66, 66, 66, 66, 566, 566, 66, - 0, 66, 0, 66, 66, 66, 66, 0, 66, 66, - 0, 66, 66, 66, 0, 564, 564, 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 564, 566, 564, 0, 0, 0, - 566, 0, 0, 0, 0, 0, 566, 0, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 66, 66, 0, 66, - 66, 66, 0, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, + 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 566, + 566, 0, 566, 66, 66, 66, 66, 0, 66, 66, + 66, 66, 566, 566, 66, 0, 66, 0, 66, 66, + 66, 66, 0, 66, 66, 0, 66, 66, 66, 0, + 564, 564, 0, 0, 564, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, + 566, 564, 0, 0, 0, 566, 0, 0, 0, 0, + 0, 566, 0, 66, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 66, 66, 0, 66, 66, 66, 0, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 564, 0, 564, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 0, 0, - 0, 566, 566, 566, 566, 566, 566, 566, 0, 0, - 0, 0, 566, 0, 0, 566, 566, 0, 0, 565, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 566, 566, 566, 0, 566, 566, 566, - 566, 0, 0, 566, 0, 566, 0, 566, 566, 566, - 0, 0, 566, 566, 0, 566, 566, 566, 0, 565, - 565, 0, 0, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, - 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 566, 0, 0, 0, 0, 0, 0, + 566, 566, 566, 0, 0, 0, 566, 566, 566, 566, + 566, 566, 566, 0, 0, 0, 0, 566, 0, 0, + 566, 566, 0, 0, 565, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 566, 566, 566, + 566, 0, 566, 566, 566, 566, 0, 0, 566, 0, + 566, 0, 566, 566, 566, 0, 0, 566, 566, 0, + 566, 566, 566, 0, 565, 565, 0, 0, 565, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 565, 0, 565, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 566, 566, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 564, 564, 566, 566, 0, 566, 566, + 566, 0, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 565, 0, 565, + 0, 564, 0, 0, 0, 0, 564, 0, 0, 0, + 0, 0, 564, 0, 0, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 143, 144, 0, 0, 33, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 564, 564, 564, 564, + 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 564, 564, 150, 0, 33, 564, 564, 564, + 564, 564, 564, 564, 0, 0, 0, 0, 564, 0, + 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, - 566, 566, 0, 566, 566, 566, 0, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 565, 0, 565, 0, 564, 0, 0, 0, - 0, 564, 0, 0, 0, 0, 0, 564, 0, 0, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, - 0, 0, 33, 0, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 150, - 0, 33, 564, 564, 564, 564, 564, 564, 564, 0, - 0, 0, 0, 564, 0, 0, 564, 564, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 564, 564, 564, 564, 0, 564, 564, - 564, 564, 565, 565, 564, 0, 564, 0, 564, 564, - 564, 0, 0, 564, 564, 0, 564, 564, 564, 0, - 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 565, 0, 0, 0, 0, 565, 0, 0, 0, 0, - 0, 565, 0, 564, 564, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 564, 0, 564, 564, 564, 0, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 0, 0, 0, + 564, 564, 0, 564, 564, 564, 564, 565, 565, 564, + 0, 564, 0, 564, 564, 564, 0, 0, 564, 564, + 0, 564, 564, 564, 0, 0, 0, 0, 0, 0, + 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, + 565, 0, 0, 0, 0, 0, 565, 0, 564, 564, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 564, 564, 0, 564, + 564, 564, 0, 564, 564, 564, 564, 564, 564, 564, + 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 0, 155, 0, 565, 565, 565, 565, - 565, 565, 565, 0, 0, 0, 0, 565, 0, 0, - 565, 565, 33, 34, 0, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 565, 565, 565, - 565, 0, 565, 565, 565, 565, 0, 0, 565, 0, - 565, 0, 565, 565, 565, 0, 0, 565, 565, 0, - 565, 565, 565, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 34, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 565, 565, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 565, 0, 565, 565, - 565, 0, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 0, 0, 0, 0, 0, 0, 785, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 565, 565, 565, 565, 565, 565, 565, 565, 0, 155, + 0, 565, 565, 565, 565, 565, 565, 565, 0, 0, + 0, 0, 565, 0, 0, 565, 565, 33, 34, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 565, 565, 565, 565, 0, 565, 565, 565, + 565, 0, 0, 565, 0, 565, 0, 565, 565, 565, + 0, 0, 565, 565, 0, 565, 565, 565, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 34, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 565, 565, 0, 565, 565, 565, 0, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 0, 0, 0, 0, + 0, 0, 767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 0, 0, 0, 33, + 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, - 0, 33, 0, 33, 34, 0, 33, 34, 0, 0, - 0, 0, 0, 33, 33, 33, 0, 34, 0, 0, + 0, 767, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 33, 33, 0, + 33, 33, 33, 33, 0, 0, 33, 0, 33, 34, + 0, 33, 34, 0, 0, 0, 0, 0, 33, 33, + 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 0, 767, 0, 0, + 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 785, 0, 785, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 33, 33, - 0, 33, 33, 33, 0, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 33, 33, 0, 33, 33, 33, 0, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 781, 0, 0, + 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, - 787, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 785, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 785, 799, 34, 34, 34, 34, 0, 34, 34, 34, - 34, 0, 0, 34, 0, 34, 0, 0, 34, 0, - 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, - 0, 0, 0, 0, 787, 0, 787, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 0, 0, 0, 799, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, - 0, 0, 0, 791, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 785, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, - 785, 0, 0, 0, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, - 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, - 0, 787, 0, 0, 0, 785, 785, 785, 785, 0, - 785, 785, 785, 785, 787, 0, 785, 0, 785, 0, - 0, 785, 0, 0, 0, 0, 0, 0, 785, 785, - 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 791, 0, 791, 0, - 0, 0, 0, 787, 0, 785, 785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 785, 785, 0, 785, 785, 785, 0, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 787, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 787, 787, 0, 0, 0, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 787, 0, 0, 789, 0, 0, 0, - 0, 799, 799, 799, 799, 799, 0, 0, 0, 787, - 787, 787, 787, 791, 787, 787, 787, 787, 0, 0, - 787, 0, 787, 799, 799, 787, 791, 0, 0, 0, - 0, 0, 787, 787, 787, 0, 0, 0, 0, 0, - 799, 799, 799, 799, 0, 0, 0, 799, 799, 0, - 0, 0, 0, 799, 0, 799, 799, 0, 0, 0, - 789, 0, 789, 799, 799, 0, 0, 0, 0, 787, - 787, 0, 0, 0, 0, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 787, 787, 0, - 787, 787, 787, 0, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 0, 0, 0, 0, 0, 0, 0, - 793, 0, 0, 0, 0, 0, 0, 0, 799, 799, - 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 0, 0, 793, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, - 0, 791, 791, 791, 791, 0, 791, 791, 791, 791, - 789, 0, 791, 0, 791, 0, 0, 791, 0, 0, - 0, 0, 0, 0, 791, 791, 791, 0, 0, 0, - 0, 0, 0, 793, 0, 793, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, - 0, 791, 791, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, - 791, 0, 791, 791, 791, 0, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 789, 0, 0, 0, 789, 789, 789, 789, 789, 789, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 793, 743, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 789, 789, 789, 789, 0, - 789, 789, 789, 789, 0, 0, 789, 0, 789, 0, - 0, 789, 0, 0, 0, 0, 0, 0, 789, 789, - 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 793, 0, 0, 743, 0, 743, 0, 0, - 0, 0, 0, 0, 0, 789, 789, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 789, 789, 0, 789, 789, 789, 0, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 0, - 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 0, 0, 0, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 0, 745, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 793, - 793, 793, 0, 793, 793, 793, 793, 0, 0, 793, - 0, 793, 743, 0, 793, 743, 0, 0, 0, 0, - 0, 793, 793, 793, 0, 743, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, - 745, 0, 0, 0, 0, 0, 0, 0, 793, 793, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 743, 0, 793, 793, 0, 793, - 793, 793, 0, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 0, 0, 0, 743, - 743, 743, 743, 743, 743, 743, 0, 0, 0, 0, - 743, 0, 0, 743, 743, 745, 0, 0, 745, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, - 743, 743, 743, 743, 400, 743, 743, 743, 743, 0, - 0, 743, 0, 743, 0, 743, 743, 743, 0, 0, - 743, 743, 0, 743, 743, 743, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 745, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 743, 743, 0, 0, 0, 0, 0, 0, 400, 0, - 400, 0, 0, 0, 0, 0, 0, 0, 743, 743, - 0, 743, 743, 743, 0, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 0, - 0, 0, 745, 745, 745, 745, 745, 745, 745, 0, - 0, 0, 0, 745, 0, 0, 745, 745, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 0, 745, 745, 745, 745, 0, 745, 745, - 745, 745, 0, 0, 745, 0, 745, 0, 745, 745, - 745, 0, 0, 745, 745, 0, 745, 745, 745, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 745, 745, 442, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 745, 745, 208, 745, 745, 745, 0, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 400, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 208, 0, 208, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 0, - 0, 0, 400, 400, 400, 400, 400, 400, 400, 150, - 151, 0, 442, 400, 0, 442, 400, 400, 208, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 400, 400, 400, 400, 0, 400, 400, - 400, 400, 0, 0, 400, 0, 400, 0, 0, 400, - 0, 0, 0, 0, 210, 0, 400, 400, 400, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 0, 0, 0, 400, 400, 0, 0, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 400, 210, 400, 400, 400, 0, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, + 34, 34, 34, 0, 0, 769, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 781, 34, 34, 34, + 34, 0, 34, 34, 34, 34, 0, 0, 34, 0, + 34, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 0, 0, 0, 0, 0, 0, 769, + 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, + 0, 0, 781, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 34, 0, 34, 34, + 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 0, 0, 0, 0, 0, 0, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 0, 0, 0, 767, + 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 0, 0, 773, 0, 0, + 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, + 767, 767, 767, 767, 0, 767, 767, 767, 767, 769, + 0, 767, 0, 767, 0, 0, 767, 0, 0, 0, + 0, 0, 0, 767, 767, 767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 773, 0, 773, 0, 0, 0, 0, 769, 0, + 767, 767, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 767, 767, + 0, 767, 767, 767, 0, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, + 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, + 0, 771, 0, 0, 0, 0, 781, 781, 781, 781, + 781, 0, 0, 0, 769, 769, 769, 769, 773, 769, + 769, 769, 769, 0, 0, 769, 0, 769, 781, 781, + 769, 773, 0, 0, 0, 0, 0, 769, 769, 769, + 0, 0, 0, 0, 0, 781, 781, 781, 781, 0, + 0, 0, 781, 781, 0, 0, 0, 0, 781, 0, + 781, 781, 0, 0, 0, 771, 0, 771, 781, 781, + 0, 0, 0, 0, 769, 769, 0, 0, 0, 0, + 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 769, 0, 769, 769, 769, 0, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, + 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, + 0, 0, 0, 781, 781, 0, 781, 781, 781, 0, + 781, 781, 781, 781, 781, 781, 781, 781, 781, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 0, 0, 775, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 771, 0, 0, 0, 773, 773, 773, 773, + 0, 773, 773, 773, 773, 771, 0, 773, 0, 773, + 0, 0, 773, 0, 0, 0, 0, 0, 0, 773, + 773, 773, 0, 0, 0, 0, 0, 0, 775, 0, + 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 771, 0, 773, 773, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 773, 773, 0, 773, 773, 773, + 0, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 0, 0, 0, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 775, 725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 775, 0, + 771, 771, 771, 771, 0, 771, 771, 771, 771, 0, + 0, 771, 0, 771, 0, 0, 771, 0, 0, 0, + 0, 0, 0, 771, 771, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 775, 0, 0, + 725, 0, 725, 0, 0, 0, 0, 0, 0, 0, + 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 771, 771, + 0, 771, 771, 771, 0, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 0, 0, 0, 0, 0, 0, + 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, + 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 0, 727, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 775, 775, 775, 775, 0, 775, 775, + 775, 775, 0, 0, 775, 0, 775, 725, 0, 775, + 725, 0, 0, 0, 0, 0, 775, 775, 775, 0, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 727, 0, 727, 0, 0, 0, 0, + 0, 0, 0, 775, 775, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, + 0, 775, 775, 0, 775, 775, 775, 0, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 400, 0, 0, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 0, 0, 0, 725, 725, 725, 725, 725, 725, + 725, 0, 0, 0, 0, 725, 0, 0, 725, 725, + 727, 0, 0, 727, 400, 0, 0, 0, 0, 0, + 0, 0, 0, 727, 0, 725, 725, 725, 725, 400, + 725, 725, 725, 725, 0, 0, 725, 0, 725, 0, + 725, 725, 725, 0, 0, 725, 725, 0, 725, 725, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 725, 725, 0, 0, 0, + 0, 0, 0, 400, 0, 400, 0, 0, 0, 0, + 0, 0, 0, 725, 725, 0, 725, 725, 725, 0, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 225, + 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 727, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 727, 727, 0, 0, 0, 727, 727, 727, + 727, 727, 727, 727, 0, 0, 0, 0, 727, 0, + 0, 727, 727, 208, 0, 208, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 727, 727, + 727, 727, 0, 727, 727, 727, 727, 0, 0, 727, + 0, 727, 0, 727, 727, 727, 0, 0, 727, 727, + 0, 727, 727, 727, 0, 0, 0, 0, 0, 0, + 400, 0, 0, 400, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 400, 0, 0, 0, 0, 0, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 727, 727, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 727, 727, 0, 727, + 727, 727, 0, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 400, 0, 0, 0, 0, 92, 0, 225, + 0, 0, 0, 225, 225, 225, 225, 225, 0, 225, + 225, 225, 225, 0, 225, 225, 0, 0, 225, 225, + 225, 225, 0, 0, 0, 225, 225, 0, 210, 0, + 0, 0, 0, 0, 225, 0, 225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 225, 225, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 0, 0, 225, 400, 400, 400, + 400, 400, 400, 400, 210, 0, 0, 208, 400, 0, + 0, 400, 400, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, + 400, 400, 92, 400, 400, 400, 400, 0, 0, 400, + 0, 400, 93, 0, 400, 0, 0, 0, 0, 0, + 0, 400, 400, 400, 0, 0, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 400, 400, 0, 400, + 400, 400, 0, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 0, 0, 0, 0, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 208, 208, 208, 208, 208, 0, 0, + 0, 0, 210, 0, 0, 0, 0, 208, 0, 0, + 0, 0, 208, 0, 0, 208, 208, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 225, 208, 208, 208, 208, 0, 208, 208, 208, + 208, 0, 0, 94, 0, 208, 0, 0, 208, 0, + 0, 210, 0, 0, 0, 208, 208, 208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 208, 208, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 208, 208, 0, 208, 208, 208, 0, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 0, 0, 0, 0, + 778, 0, 0, 0, 0, 0, 0, 0, 210, 210, + 210, 210, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 0, 0, 0, 47, 210, 0, 0, + 210, 210, 0, 0, 0, 93, 92, 92, 92, 92, + 92, 0, 0, 0, 0, 0, 0, 210, 210, 210, + 210, 0, 210, 210, 210, 210, 0, 0, 92, 92, + 210, 94, 0, 210, 0, 0, 778, 0, 0, 0, + 210, 210, 210, 0, 0, 92, 92, 92, 92, 0, + 0, 0, 92, 92, 0, 0, 0, 0, 92, 0, + 0, 92, 47, 0, 0, 0, 0, 0, 92, 92, + 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 210, 0, 210, 210, + 210, 0, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 92, 0, 92, 92, 92, 0, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 48, + 0, 93, 93, 93, 93, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 93, 0, 0, 94, 94, 94, + 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 93, 93, 93, 778, 0, 0, 93, 93, 94, + 94, 0, 49, 93, 0, 0, 93, 0, 0, 0, + 0, 0, 0, 93, 93, 48, 94, 94, 94, 94, + 47, 0, 0, 94, 94, 0, 0, 0, 0, 94, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 94, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 93, 93, + 0, 93, 93, 93, 0, 93, 93, 93, 93, 93, + 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 0, 94, 94, 94, + 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, + 778, 778, 778, 778, 778, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, + 0, 0, 778, 778, 0, 0, 47, 47, 47, 47, + 47, 0, 0, 48, 0, 0, 0, 0, 0, 778, + 778, 778, 778, 50, 0, 0, 778, 778, 47, 47, + 0, 0, 778, 0, 0, 778, 0, 0, 0, 0, + 0, 0, 778, 778, 0, 47, 47, 47, 47, 0, + 0, 0, 47, 47, 51, 0, 0, 0, 47, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 0, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 208, 0, 0, 442, - 442, 442, 442, 442, 442, 442, 0, 0, 0, 210, - 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 94, 0, 0, - 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, - 93, 442, 0, 442, 0, 208, 442, 0, 0, 0, - 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, - 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, - 0, 442, 442, 442, 0, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 208, 208, 208, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, - 0, 208, 94, 0, 208, 208, 0, 210, 0, 0, - 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 208, 208, 208, 0, 208, 208, 208, 208, - 0, 0, 0, 0, 208, 0, 0, 208, 93, 0, - 0, 0, 0, 0, 208, 208, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 208, 0, 208, 208, 208, 0, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, - 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, - 94, 0, 48, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 210, 0, 0, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 93, 93, 93, 93, 93, 0, - 47, 0, 210, 210, 210, 210, 0, 210, 210, 210, - 210, 0, 0, 0, 0, 210, 93, 93, 210, 0, - 0, 0, 0, 0, 0, 210, 210, 210, 0, 0, - 0, 48, 0, 93, 93, 93, 93, 0, 0, 0, - 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, - 0, 0, 210, 210, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 0, 48, 0, 0, - 0, 0, 0, 796, 0, 0, 94, 94, 94, 94, - 94, 93, 93, 0, 93, 93, 93, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 49, 94, 94, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, - 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 796, - 796, 796, 796, 796, 0, 48, 0, 0, 0, 0, - 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 796, 796, 0, 0, 0, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 796, 796, - 796, 796, 0, 0, 0, 796, 796, 0, 1091, 0, - 0, 796, 0, 0, 796, 0, 0, 0, 0, 51, - 0, 796, 796, 0, 0, 0, 0, 1092, 1093, 0, - 1094, 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, - 1102, 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 47, 47, 47, 0, 796, 796, 51, 796, - 796, 796, 0, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 47, 47, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 48, 48, 48, 0, 0, 0, 47, - 47, 47, 47, 50, 0, 0, 47, 47, 0, 0, - 49, 0, 47, 48, 48, 47, 0, 0, 0, 0, - 799, 0, 47, 47, 0, 0, 0, 0, 0, 0, - 48, 48, 48, 48, 51, 0, 0, 48, 48, 0, - 0, 0, 0, 48, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 47, 799, - 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 0, 0, 0, 0, 0, 778, 778, 0, + 778, 778, 778, 0, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 0, 47, 47, 49, 47, 47, 47, 0, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 48, 0, 0, 0, 781, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, - 1111, 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, - 0, 0, 0, 0, 0, 799, 49, 49, 49, 49, - 49, 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 49, 49, 49, 49, 0, - 0, 0, 49, 49, 0, 0, 0, 0, 49, 0, - 0, 49, 0, 0, 0, 0, 0, 0, 49, 49, + 48, 48, 0, 0, 0, 48, 48, 0, 0, 0, + 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 0, 0, 781, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 49, 49, 49, 49, 48, 48, 51, 48, + 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 781, 49, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 49, 49, 49, 0, 0, 0, 49, 49, 0, + 0, 0, 0, 49, 0, 0, 49, 0, 1096, 0, + 0, 0, 0, 49, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1097, 1098, 0, + 1099, 1100, 1101, 1102, 1103, 1104, 0, 1105, 1106, 0, + 1107, 1108, 1109, 1110, 1111, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 50, 50, 50, 50, 49, 49, + 0, 49, 49, 49, 0, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 0, 50, 50, 0, 0, 0, + 0, 0, 0, 0, 51, 51, 51, 51, 51, 0, + 0, 0, 50, 50, 50, 50, 0, 0, 0, 50, + 50, 0, 0, 0, 0, 50, 51, 51, 50, 0, + 781, 0, 0, 0, 0, 50, 50, 0, 0, 0, + 0, 0, 0, 51, 51, 51, 51, 0, 0, 0, + 51, 51, 0, 0, 0, 0, 51, 0, 0, 51, + 0, 0, 0, 0, 0, 0, 51, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 301, 0, 0, 0, 749, 0, + 50, 50, 0, 50, 50, 50, 0, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 51, 0, 51, 51, 51, 0, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 484, 681, 0, + 0, 0, 0, 681, 0, 1112, 1113, 681, 1114, 1115, + 1116, 0, 1117, 1118, 0, 0, 1119, 1120, 0, 1121, + 0, 0, 0, 0, 0, 681, 781, 781, 781, 781, + 781, 0, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, + 1130, 1131, 1132, 1133, 1134, 1135, 0, 0, 781, 781, + 0, 0, 0, 0, 0, 0, 681, 0, 0, 0, + 0, 0, 0, 0, 0, 781, 781, 781, 781, 0, + 0, 0, 781, 781, 0, 0, 0, 0, 781, 0, + 0, 781, 0, 0, 0, 0, 0, 0, 781, 781, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 781, 781, 0, 781, 781, 781, 0, + 781, 781, 781, 781, 781, 781, 781, 781, 781, 0, + 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 681, 681, 0, 681, 147, + 148, 149, 0, 681, 0, 0, 681, 0, 0, 0, + 681, 681, 681, 681, 681, 0, 681, 681, 681, 681, + 0, 681, 681, 0, 0, 681, 681, 681, 681, 0, + 0, 681, 681, 681, 150, 0, 294, 295, 296, 0, + 0, 681, 0, 681, 157, 0, 0, 0, 0, 301, + 482, 483, 0, 300, 0, 0, 0, 0, 681, 681, + 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 153, 154, 681, 0, 681, 681, 681, 0, 0, + 0, 0, 484, 212, 0, 0, 0, 127, 0, 681, + 681, 128, 129, 130, 131, 132, 0, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 452, 0, 0, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 681, + 681, 681, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 0, 453, 0, 454, 455, 456, 457, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, + 0, 0, 458, 459, 460, 461, 0, 0, 462, 0, + 0, 0, 463, 464, 465, 0, 0, 0, 0, 155, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 681, 126, + 156, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 466, 145, 0, 146, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 212, 0, 0, 0, 212, 212, 212, 212, 212, + 0, 212, 212, 212, 212, 0, 212, 212, 0, 0, + 212, 212, 212, 212, 212, 0, 0, 212, 212, 150, + 0, 294, 295, 296, 0, 0, 212, 0, 212, 155, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 212, 212, 212, 0, 212, 0, 212, + 212, 212, 212, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 49, 0, 49, 49, 49, 0, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, - 50, 50, 0, 799, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 50, 0, 0, 0, 0, 0, 0, 0, 51, 51, - 51, 51, 51, 0, 0, 0, 50, 50, 50, 50, - 0, 0, 0, 50, 50, 0, 0, 0, 0, 50, - 51, 51, 50, 0, 0, 0, 0, 0, 0, 50, - 50, 0, 0, 0, 0, 0, 0, 51, 51, 51, - 51, 0, 157, 0, 51, 51, 0, 297, 0, 0, - 51, 296, 0, 51, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 0, 0, 0, 295, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 50, 0, 50, 50, 50, - 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 480, 0, 0, 0, 0, 0, 0, 0, 0, 799, - 799, 799, 799, 799, 0, 51, 51, 0, 51, 51, - 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 799, 799, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 799, 799, - 799, 799, 0, 0, 0, 799, 799, 0, 0, 0, - 0, 799, 0, 0, 799, 0, 0, 0, 0, 0, - 0, 799, 799, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 297, - 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 799, 799, 0, 799, - 799, 799, 0, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 480, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 0, 0, 0, 152, 153, 154, 212, 0, + 0, 0, 0, 0, 0, 0, 212, 212, 212, 212, + 0, 0, 212, 0, 0, 0, 212, 212, 212, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 127, 210, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 699, 0, 0, 0, 0, 699, 0, 0, 0, - 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 699, 290, - 291, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 478, 479, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 152, 153, 154, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 157, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 290, 291, 292, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 479, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 152, 153, 154, 699, 699, - 0, 699, 0, 0, 0, 0, 699, 0, 0, 699, - 0, 0, 0, 699, 699, 699, 699, 699, 0, 699, - 699, 699, 699, 0, 699, 699, 0, 0, 699, 699, - 699, 699, 0, 0, 699, 699, 699, 0, 0, 0, - 0, 0, 0, 0, 699, 157, 699, 0, 0, 0, - 297, 0, 225, 0, 296, 0, 0, 0, 0, 0, - 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, - 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 699, 0, 699, 699, - 699, 0, 0, 480, 212, 0, 0, 0, 0, 0, - 0, 0, 699, 699, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 0, 155, 128, 129, 130, 131, 132, + 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, + 212, 0, 67, 68, 155, 69, 0, 0, 0, 0, + 126, 210, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 212, 157, 147, 148, 149, 0, 977, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 13, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 150, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 978, 0, 98, 143, 144, 0, + 0, 0, 210, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, + 67, 68, 155, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 210, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 448, 0, 0, 143, 144, 0, - 0, 0, 699, 699, 699, 0, 145, 0, 146, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 0, 157, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 449, 0, 450, - 451, 452, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 454, 455, 456, 457, - 0, 0, 458, 0, 157, 0, 459, 460, 461, 0, - 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, - 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, - 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 225, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 699, 210, 127, 225, 225, 225, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 225, - 146, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 462, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 212, 0, 0, 0, 212, 212, 212, 212, - 212, 0, 212, 212, 212, 212, 0, 212, 212, 0, - 0, 212, 212, 212, 212, 212, 0, 0, 212, 212, - 150, 0, 290, 291, 292, 0, 0, 212, 0, 212, - 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 212, 212, 212, 0, 212, 0, - 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 152, 153, 154, 212, - 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, - 212, 0, 0, 212, 0, 0, 0, 212, 212, 212, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 210, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 159, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 157, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 212, 210, 67, 68, 155, 69, 0, 0, 0, - 0, 126, 0, 973, 127, 0, 0, 157, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 212, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, - 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, - 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, - 0, 0, 0, 0, 210, 0, 0, 225, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 225, 225, 225, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 159, 0, 127, 0, 155, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 225, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 159, 33, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 569, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 155, 0, 0, 0, - 692, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 152, 153, 154, 128, 129, - 130, 131, 132, 33, 133, 134, 135, 136, 0, 137, - 138, 0, 150, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 544, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 159, 159, 0, - 159, 752, 0, 0, 0, 159, 0, 0, 159, 0, - 0, 0, 159, 159, 159, 159, 159, 0, 159, 159, - 159, 159, 0, 159, 159, 0, 0, 159, 159, 159, - 159, 0, 0, 159, 159, 159, 0, 317, 0, 0, - 0, 317, 0, 159, 155, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 159, 159, 159, 0, 0, 0, 0, 33, 0, 0, - 0, 33, 33, 33, 33, 33, 0, 33, 33, 33, - 33, 0, 33, 33, 0, 0, 33, 33, 33, 33, - 0, 37, 0, 33, 33, 159, 40, 0, 43, 317, - 0, 0, 33, 0, 33, 46, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 33, - 33, 33, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 316, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 159, 159, 33, 316, 316, 0, 0, 0, - 0, 33, 0, 0, 0, 33, 33, 33, 33, 33, - 0, 33, 33, 33, 33, 0, 33, 33, 0, 0, - 33, 33, 33, 33, 0, 37, 155, 33, 33, 0, - 40, 0, 43, 0, 0, 0, 33, 0, 33, 46, + 0, 0, 0, 0, 152, 153, 154, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 49, 317, 0, 316, - 0, 316, 317, 317, 317, 317, 0, 317, 317, 317, - 317, 52, 317, 317, 0, 236, 317, 317, 317, 317, - 0, 561, 0, 317, 317, 0, 0, 0, 33, 0, - 0, 0, 317, 236, 317, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 317, 317, 0, 0, 0, 0, 0, 0, 0, 317, - 159, 0, 0, 0, 317, 317, 317, 317, 0, 317, - 317, 317, 317, 0, 317, 317, 0, 34, 317, 317, - 317, 317, 0, 0, 317, 317, 317, 0, 0, 0, - 0, 0, 0, 0, 317, 0, 317, 236, 235, 236, + 0, 0, 0, 159, 147, 148, 149, 0, 0, 0, + 0, 67, 68, 155, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 33, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 574, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 697, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 317, 317, 0, 0, 235, 0, 0, 33, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 316, 0, 0, 316, - 0, 0, 0, 1215, 0, 0, 317, 0, 0, 316, + 0, 0, 0, 0, 0, 152, 153, 154, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 150, + 127, 317, 0, 155, 128, 129, 130, 131, 132, 544, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 152, 153, 154, 225, 317, + 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, + 159, 0, 0, 159, 0, 0, 0, 159, 159, 159, + 159, 159, 0, 159, 159, 159, 159, 758, 159, 159, + 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, + 159, 0, 0, 0, 0, 0, 0, 0, 159, 316, + 159, 0, 0, 0, 155, 0, 317, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 159, 159, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 33, 33, 33, 33, 33, + 159, 33, 33, 33, 33, 0, 33, 33, 0, 0, + 33, 33, 33, 33, 317, 37, 0, 33, 33, 0, + 40, 0, 43, 0, 155, 0, 33, 0, 33, 46, + 0, 0, 316, 236, 316, 0, 0, 0, 0, 561, + 0, 0, 0, 33, 33, 33, 49, 0, 0, 0, + 0, 236, 0, 0, 0, 0, 159, 159, 159, 0, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 317, + 0, 0, 0, 0, 317, 317, 317, 317, 0, 317, + 317, 317, 317, 0, 317, 317, 0, 0, 317, 317, + 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, + 0, 0, 155, 0, 317, 236, 317, 236, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 317, 317, 0, 0, 225, 0, 0, 0, + 225, 225, 225, 225, 225, 0, 225, 225, 225, 225, + 0, 225, 225, 0, 0, 225, 225, 225, 225, 0, + 0, 0, 225, 225, 0, 0, 317, 0, 0, 316, + 0, 225, 316, 225, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 0, 0, 159, 0, 0, 225, 225, + 225, 0, 0, 0, 317, 0, 0, 0, 0, 317, + 317, 317, 317, 0, 317, 317, 317, 317, 0, 317, + 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, + 317, 317, 0, 225, 0, 0, 0, 0, 0, 317, + 0, 317, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 317, 317, 0, + 0, 0, 236, 0, 235, 236, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 236, 561, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 235, 0, + 235, 0, 316, 0, 0, 0, 316, 316, 316, 316, + 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, + 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 0, 0, 0, 0, 0, 316, 316, 316, + 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 236, 0, 0, 0, 0, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 0, 0, 0, 0, 236, 0, 0, 225, 236, + 236, 236, 236, 236, 236, 0, 0, 316, 316, 316, + 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 0, 235, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 236, 236, 316, 316, 316, 316, 316, 316, + 316, 236, 0, 0, 0, 235, 0, 0, 235, 0, + 0, 0, 0, 0, 0, 236, 317, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 236, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 561, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 236, + 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 0, 0, 0, 0, 316, - 0, 2, 0, 316, 316, 316, 316, 316, 316, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 316, 0, - 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, - 235, 0, 0, 0, 316, 316, 316, 316, 0, 0, - 235, 317, 0, 0, 0, 316, 0, 0, 0, 0, - 538, 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 0, 316, 316, 316, 236, 0, 0, - 0, 236, 236, 236, 236, 236, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 236, 0, 0, 0, - 0, 316, 316, 316, 316, 316, 316, 316, 0, 0, - 0, 0, 236, 236, 236, 236, 561, 539, 0, 5, - 6, 7, 0, 236, 0, 0, 0, 0, 522, 0, - 0, 540, 0, 0, 0, 0, 541, 236, 235, 8, - 9, 0, 0, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 10, 11, 12, 13, - 235, 542, 543, 0, 235, 235, 235, 235, 235, 235, - 0, 0, 236, 236, 0, 0, 0, 0, 235, 235, - 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 522, 0, 522, 235, 235, 235, 235, 236, - 236, 236, 236, 236, 236, 236, 235, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 545, 546, 0, 0, - 235, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 34, 0, 0, + 0, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 0, 0, 0, 0, 235, 0, + 0, 0, 235, 235, 235, 235, 235, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, + 0, 0, 0, 235, 235, 235, 235, 0, 0, 0, + 0, 340, 0, 341, 235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 235, 235, 235, 235, 235, 235, 235, 0, - 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, - 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 522, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 235, 522, 0, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 235, 235, 235, 235, 235, 235, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 340, 0, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 522, 522, 522, 522, 522, - 522, 522, 522, 522, 522, 522, 522, 522, 0, 0, - 0, 0, 522, 0, 0, 0, 522, 522, 522, 522, - 522, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 522, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 69, 0, 0, 0, 522, 522, 522, - 522, 0, 0, 2, 336, 0, 987, 0, 522, 0, + 0, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 0, 0, 0, 0, 522, 0, + 0, 0, 522, 522, 522, 522, 522, 522, 0, 0, + 0, 0, 0, 0, 0, 0, 522, 522, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 992, 0, 0, + 0, 0, 0, 522, 522, 522, 522, 0, 0, 0, + 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 0, 0, 0, 0, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 0, 0, 67, + 0, 7, 69, 0, 0, 330, 331, 332, 333, 334, + 335, 0, 2, 522, 522, 0, 0, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 522, 522, 522, 522, 522, 522, 522, 336, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, - 0, 0, 0, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 522, 522, 0, - 7, 0, 0, 0, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, - 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, - 522, 0, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 0, 0, 527, 0, 527, 332, 0, 0, 0, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 67, 0, 7, 69, 0, 0, 326, 327, 328, - 329, 330, 331, 0, 2, 334, 335, 0, 0, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 27, 28, 29, 30, 31, 32, 33, 332, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 334, 335, - 527, 0, 0, 527, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 527, 371, 0, 371, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 0, 363, 0, 0, 0, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 7, 0, 0, 0, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 0, 363, 0, 363, - 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 356, 0, 0, 0, 0, 0, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 527, 527, 527, 527, 334, - 335, 371, 0, 527, 371, 0, 0, 527, 527, 527, - 527, 527, 527, 0, 371, 0, 0, 0, 0, 0, - 0, 527, 527, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 527, 527, - 527, 527, 0, 0, 356, 0, 356, 0, 0, 527, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 0, 0, 363, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 363, 527, 527, + 0, 0, 67, 0, 0, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 338, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 527, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 0, 371, 0, 0, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 0, 0, + 0, 0, 7, 0, 0, 0, 330, 331, 332, 333, + 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, + 13, 0, 0, 0, 0, 371, 0, 371, 336, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 0, 0, 0, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 0, 0, 0, 0, 7, 0, 0, 0, 330, + 331, 332, 333, 334, 335, 0, 0, 338, 339, 527, + 0, 0, 527, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, + 10, 11, 12, 13, 27, 28, 29, 30, 31, 32, + 33, 336, 363, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 338, 339, 371, 0, 0, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 371, 363, 0, 363, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, 527, 527, - 527, 527, 0, 0, 0, 0, 0, 371, 371, 371, + 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, + 0, 0, 527, 0, 0, 0, 527, 527, 527, 527, + 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, + 527, 527, 0, 0, 0, 0, 0, 0, 0, 356, + 0, 356, 0, 0, 0, 0, 0, 527, 527, 527, + 527, 0, 0, 0, 0, 0, 0, 0, 527, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 0, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 0, 0, 0, 210, 371, 0, 0, 0, 371, 371, - 371, 371, 371, 371, 0, 0, 0, 0, 0, 0, - 0, 0, 371, 371, 0, 0, 0, 0, 0, 0, - 0, 356, 0, 0, 356, 0, 0, 0, 0, 371, - 371, 371, 371, 0, 356, 0, 0, 0, 0, 0, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 371, 0, 0, 210, 0, 210, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 363, 0, 0, 0, 521, 363, 0, 0, - 0, 363, 363, 363, 363, 363, 363, 0, 0, 371, - 371, 0, 0, 0, 0, 363, 363, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 363, 363, 363, 363, 371, 371, 371, 371, - 371, 371, 371, 363, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 363, 0, 0, - 521, 0, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 0, 561, 363, 363, 356, 0, 0, 0, 356, 356, - 356, 356, 356, 356, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 356, 210, 0, 0, 210, 0, 363, - 363, 363, 363, 363, 363, 363, 0, 210, 0, 356, - 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, - 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, + 371, 0, 0, 363, 0, 371, 363, 0, 0, 371, + 371, 371, 371, 371, 371, 0, 363, 527, 527, 0, + 0, 0, 0, 371, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 371, 371, 371, 527, 527, 527, 527, 527, 527, + 527, 371, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 0, 0, 356, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 371, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 210, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, + 371, 371, 371, 371, 0, 521, 0, 0, 0, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 0, 0, 0, 0, 363, 0, 0, 0, + 363, 363, 363, 363, 363, 363, 0, 0, 0, 34, + 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 363, 363, 363, 363, 0, 0, 0, 0, 521, + 0, 521, 363, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, + 0, 0, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 566, 0, 0, 0, 356, + 0, 0, 0, 356, 356, 356, 356, 356, 356, 0, + 0, 363, 363, 210, 0, 0, 210, 356, 356, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 356, 356, 356, 356, 363, 363, + 363, 363, 363, 363, 363, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 356, 0, 0, 0, 0, 0, 0, 521, 187, 0, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 521, 0, 0, 0, 0, 0, 356, 356, 356, 356, - 356, 356, 356, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 356, 356, 521, 0, 0, 521, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 356, 356, 356, 356, 356, 356, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 0, 187, 2, 0, 210, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, + 210, 210, 0, 0, 0, 0, 210, 0, 0, 0, + 210, 210, 210, 210, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, + 0, 210, 210, 210, 210, 187, 0, 0, 0, 0, + 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, + 0, 0, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 0, 0, 0, 0, 521, + 0, 0, 0, 521, 521, 521, 521, 521, 521, 0, + 0, 210, 210, 0, 0, 0, 0, 521, 521, 0, + 0, 187, 0, 0, 0, 0, 2, 0, 0, 3, + 4, 5, 6, 7, 521, 521, 521, 521, 210, 210, + 210, 210, 210, 210, 210, 521, 0, 0, 0, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 521, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 0, 0, 14, 15, 0, 0, 0, + 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 18, 19, 0, 521, 521, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 0, 0, 0, 0, - 521, 0, 0, 0, 521, 521, 521, 521, 521, 521, - 0, 0, 210, 210, 0, 0, 0, 0, 521, 521, - 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, - 0, 0, 0, 0, 0, 521, 521, 521, 521, 210, - 210, 210, 210, 210, 210, 210, 521, 8, 9, 0, - 0, 3, 4, 5, 6, 7, 0, 0, 0, 0, - 521, 0, 187, 0, 10, 11, 12, 13, 0, 0, - 0, 14, 15, 8, 9, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 19, 0, - 10, 11, 12, 13, 0, 521, 521, 14, 15, 0, - 892, 0, 0, 16, 0, 0, 17, 0, 0, 0, - 0, 187, 0, 18, 19, 0, 0, 0, 0, 0, - 0, 0, 521, 521, 521, 521, 521, 521, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 0, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, - 0, 22, 23, 24, 0, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 187, 187, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 187, 0, 0, - 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 851, 0, 0, 187, 187, 187, - 187, 0, 187, 187, 0, 0, 0, 0, 852, 0, - 0, 0, 0, 853, 854, 0, 855, 856, 857, 858, - 859, 860, 187, 861, 862, 0, 863, 864, 865, 866, - 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 868, 0, 869, 0, 0, 851, 0, 870, - 0, 0, 0, 0, 187, 187, 187, 187, 187, 187, - 187, 852, 0, 0, 0, 871, 853, 854, 0, 855, - 856, 857, 858, 859, 860, 0, 861, 862, 0, 863, - 864, 865, 866, 867, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 872, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 868, 0, 869, 0, 0, - 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 872, 0, 0, 0, 0, 0, 0, 873, 0, - 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, - 884, 885, 886, 887, 888, 889, 890, 0, 0, 0, - 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 873, 0, 874, 875, 876, 877, 878, 879, 880, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 521, 521, 521, 521, 521, 521, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 543, 20, 21, 0, 22, + 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 3, 4, 5, 6, 7, 0, 0, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 0, 0, 0, 14, 15, + 0, 0, 0, 0, 16, 0, 0, 17, 187, 0, + 0, 0, 0, 0, 18, 19, 0, 0, 0, 0, + 0, 898, 544, 0, 5, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, + 0, 546, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 0, 547, 548, 0, 20, + 21, 0, 22, 23, 24, 0, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 549, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 187, 187, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, + 0, 550, 551, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, + 187, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 857, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 858, + 0, 0, 0, 0, 859, 860, 0, 861, 862, 863, + 864, 865, 866, 857, 867, 868, 0, 869, 870, 871, + 872, 873, 0, 0, 187, 187, 0, 858, 0, 0, + 0, 0, 859, 860, 0, 861, 862, 863, 864, 865, + 866, 0, 867, 868, 0, 869, 870, 871, 872, 873, + 0, 187, 187, 187, 187, 187, 187, 187, 0, 0, + 0, 0, 0, 874, 0, 875, 0, 0, 0, 0, + 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, + 0, 874, 0, 875, 0, 0, 0, 0, 876, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 877, 0, 0, 0, 0, 878, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 878, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 879, + 0, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 0, 0, + 0, 897, 0, 0, 0, 0, 0, 879, 0, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 0, 0, 0, 891, + 891, 892, 893, 894, 895, 896, 0, 0, 0, 897, }; static int yycheck[] = { 4, - 24, 24, 24, 102, 103, 167, 1, 779, 311, 428, - 704, 430, 20, 21, 19, 311, 93, 1, 311, 36, - 37, 181, 27, 28, 29, 30, 22, 23, 899, 1, - 996, 690, 38, 1, 91, 64, 482, 1018, 44, 1188, - 38, 1, 833, 60, 42, 1, 38, 46, 264, 41, - 40, 61, 44, 41, 43, 46, 365, 65, 76, 46, - 123, 24, 60, 41, 72, 263, 59, 41, 167, 514, - 515, 516, 125, 767, 41, 1150, 123, 46, 43, 43, - 45, 123, 105, 42, 41, 46, 13, 41, 507, 508, - 1266, 190, 169, 91, 125, 92, 1542, 24, 40, 91, - 319, 299, 41, 111, 112, 128, 1529, 41, 113, 40, - 115, 116, 117, 38, 364, 44, 215, 42, 193, 194, - 195, 196, 197, 145, 262, 43, 148, 45, 151, 93, - 42, 470, 125, 61, 43, 60, 1559, 1524, 41, 911, - 912, 104, 41, 1530, 41, 40, 168, 40, 40, 157, - 288, 156, 157, 41, 42, 47, 233, 263, 40, 42, - 91, 380, 295, 181, 93, 40, 91, 300, 60, 302, - 199, 40, 46, 1560, 40, 42, 309, 104, 59, 91, - 41, 123, 187, 345, 93, 208, 203, 59, 42, 46, - 46, 188, 40, 326, 327, 40, 91, 41, 970, 61, - 205, 206, 40, 91, 342, 210, 366, 44, 341, 91, - 41, 46, 40, 221, 222, 41, 91, 528, 41, 93, - 1666, 58, 91, 1399, 470, 91, 61, 232, 91, 156, - 123, 41, 1004, 542, 239, 232, 267, 93, 260, 372, - 167, 686, 1317, 91, 125, 38, 91, 40, 311, 42, - 349, 91, 262, 125, 470, 41, 42, 260, 261, 40, - 263, 315, 267, 91, 264, 41, 42, 60, 40, 316, - 267, 348, 295, 315, 316, 91, 264, 282, 286, 302, - 61, 286, 304, 210, 289, 263, 294, 732, 293, 1160, - 264, 985, 266, 298, 299, 300, 301, 40, 91, 549, - 264, 260, 261, 40, 263, 91, 359, 264, 365, 46, - 264, 364, 286, 287, 40, 91, 311, 312, 326, 348, - 328, 299, 340, 346, 332, 264, 344, 311, 312, 294, - 264, 265, 340, 341, 262, 352, 344, 296, 335, 311, - 312, 306, 307, 311, 312, 264, 342, 343, 366, 318, - 347, 311, 312, 320, 321, 311, 312, 318, 366, 324, - 288, 264, 360, 361, 362, 264, 359, 264, 813, 262, - 1064, 364, 367, 368, 369, 370, 294, 260, 261, 59, - 263, 264, 274, 367, 368, 369, 370, 350, 306, 307, - 1539, 59, 275, 260, 261, 33, 263, 123, 395, 367, - 391, 273, 391, 264, 391, 262, 324, 59, 123, 374, - 264, 419, 420, 296, 422, 1396, 424, 435, 345, 346, - 264, 265, 421, 350, 1573, 262, 264, 265, 266, 296, - 426, 439, 440, 264, 59, 360, 361, 362, 264, 599, - 262, 264, 265, 266, 260, 261, 469, 263, 286, 287, - 610, 46, 268, 898, 264, 265, 374, 40, 463, 462, - 465, 59, 452, 286, 287, 46, 391, 339, 914, 267, - 569, 40, 480, 125, 471, 480, 1267, 123, 359, 60, - 296, 41, 480, 364, 44, 542, 40, 492, 260, 261, - 498, 263, 1151, 123, 46, 503, 504, 505, 93, 507, - 125, 509, 510, 511, 47, 505, 506, 507, 91, 123, - 506, 266, 508, 472, 40, 123, 512, 260, 261, 525, - 263, 40, 91, 520, 521, 260, 261, 125, 263, 1531, - 535, 286, 287, 525, 542, 543, 262, 91, 535, 123, - 617, 93, 535, 536, 537, 538, 539, 540, 541, 546, - 477, 1323, 1324, 480, 44, 40, 1532, 565, 123, 1561, - 568, 566, 567, 40, 91, 91, 1547, 360, 361, 362, - 593, 46, 91, 260, 261, 592, 263, 595, 543, 451, - 123, 599, 587, 660, 40, 662, 1562, 595, 40, 472, - 587, 463, 610, 465, 466, 755, 468, 469, 414, 415, - 416, 40, 610, 93, 601, 472, 91, 624, 625, 283, - 284, 1577, 44, 630, 91, 632, 260, 261, 43, 263, - 40, 273, 260, 261, 42, 263, 264, 635, 44, 40, - 40, 636, 123, 91, 40, 91, 61, 642, 661, 91, - 648, 40, 671, 40, 318, 91, 260, 746, 273, 263, - 264, 659, 91, 752, 535, 536, 537, 538, 539, 540, - 541, 93, 0, 535, 536, 537, 538, 539, 540, 541, - 692, 91, 44, 91, 682, 273, 91, 93, 701, 359, - 91, 91, 482, 986, 364, 91, 1557, 374, 375, 44, - 986, 708, 91, 986, 91, 772, 264, 1391, 44, 704, - 260, 40, 502, 263, 709, 40, 711, 62, 716, 717, - 718, 61, 1484, 281, 282, 283, 62, 260, 261, 742, - 263, 59, 706, 719, 40, 1497, 41, 42, 264, 260, - 738, 739, 263, 260, 261, 470, 263, 755, 260, 275, - 745, 263, 264, 766, 749, 750, 751, 744, 745, 260, - 261, 759, 263, 761, 91, 763, 306, 1176, 781, 1178, - 768, 41, 767, 838, 91, 840, 841, 842, 843, 844, - 788, 47, 264, 769, 266, 427, 91, 429, 430, 797, - 788, 391, 41, 457, 458, 44, 460, 125, 41, 391, - 798, 799, 1486, 267, 286, 287, 448, 449, 450, 451, - 264, 265, 260, 261, 812, 263, 431, 432, 1580, 260, - 261, 816, 263, 818, 260, 261, 295, 263, 462, 330, - 331, 300, 899, 302, 829, 41, 451, 835, 44, 391, - 309, 908, 391, 59, 831, 44, 41, 46, 463, 847, - 465, 849, 41, 468, 469, 260, 261, 326, 263, 41, - 1622, 43, 38, 451, 41, 535, 536, 537, 538, 539, - 540, 541, 341, 461, 393, 394, 464, 535, 536, 537, - 538, 539, 540, 541, 607, 608, 609, 899, 896, 260, - 261, 1653, 263, 535, 536, 537, 538, 539, 540, 541, - 316, 899, 59, 279, 280, 41, 1668, 43, 44, 125, - 38, 909, 42, 289, 42, 393, 394, 904, 46, 47, - 535, 536, 537, 538, 539, 540, 541, 260, 261, 936, - 263, 939, 60, 260, 261, 262, 263, 264, 44, 1623, - 46, 268, 40, 260, 261, 273, 263, 535, 536, 537, - 538, 539, 540, 541, 320, 321, 283, 971, 260, 261, - 934, 263, 41, 91, 43, 978, 43, 44, 125, 296, - 44, 984, 46, 264, 265, 266, 1043, 41, 40, 43, - 975, 1665, 980, 61, 982, 280, 281, 282, 283, 284, - 985, 43, 44, 320, 321, 286, 287, 1005, 93, 1007, - 1005, 986, 1007, 988, 989, 990, 1001, 1005, 995, 1007, - 997, 40, 986, 43, 988, 989, 990, 301, 1085, 303, - 304, 305, 260, 261, 986, 263, 988, 989, 986, 38, - 263, 1029, 886, 887, 1032, 41, 986, 93, 988, 989, - 986, 38, 41, 42, 1039, 42, 280, 475, 1035, 93, - 1037, 294, 40, 40, 330, 331, 332, 273, 301, 40, - 303, 304, 305, 60, 1216, 1217, 1218, 1219, 59, 1064, - 40, 1138, 374, 375, 1226, 1227, 1228, 281, 282, 283, - 284, 409, 410, 411, 412, 413, 40, 414, 415, 416, - 366, 367, 368, 310, 91, 312, 313, 314, 93, 342, - 343, 344, 278, 431, 432, 281, 282, 283, 284, 40, - 286, 287, 288, 40, 123, 40, 273, 355, 356, 357, - 448, 449, 450, 451, 40, 40, 40, 455, 456, 40, - 330, 331, 332, 461, 125, 1133, 464, 260, 261, 296, - 263, 264, 380, 471, 472, 388, 389, 390, 40, 392, - 260, 261, 395, 263, 281, 282, 283, 284, 1567, 1568, - 40, 125, 38, 1161, 1162, 1163, 366, 367, 368, 91, - 1168, 1169, 1170, 1171, 1172, 1173, 58, 1175, 1176, 1177, - 1192, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1174, 1187, - 33, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, - 1186, 529, 530, 531, 41, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 1209, 38, 40, 44, 328, 42, - 330, 331, 40, 40, 1291, 1212, 1213, 337, 1236, 41, - 40, 40, 360, 361, 362, 451, 474, 60, 476, 477, - 478, 479, 1250, 262, 1252, 461, 123, 123, 464, 262, - 44, 41, 409, 41, 91, 1253, 281, 282, 283, 284, - 1258, 60, 274, 260, 261, 1260, 263, 463, 91, 278, - 274, 1269, 281, 282, 283, 284, 40, 286, 287, 288, - 40, 1279, 273, 275, 41, 1283, 1284, 40, 40, 1206, - 62, 123, 1381, 44, 451, 365, 1294, 123, 123, 1216, - 1217, 1218, 1219, 123, 461, 296, 40, 464, 58, 1226, - 1227, 1228, 280, 281, 282, 283, 284, 1315, 1316, 535, - 536, 537, 538, 539, 540, 541, 274, 40, 0, 40, - 40, 1329, 1330, 1331, 1332, 1333, 1334, 41, 1336, 281, - 282, 283, 284, 317, 1318, 317, 467, 1414, 40, 1335, - 470, 470, 61, 61, 61, 44, 41, 1369, 93, 41, - 41, 33, 41, 360, 361, 362, 38, 41, 40, 41, - 42, 41, 44, 41, 58, 47, 41, 1372, 535, 536, - 537, 538, 539, 540, 541, 44, 44, 59, 60, 61, - 62, 44, 125, 263, 61, 61, 1391, 40, 40, 125, - 41, 41, 278, 1390, 41, 281, 282, 283, 284, 40, - 286, 287, 288, 41, 1401, 1413, 41, 41, 409, 91, - 41, 93, 1420, 260, 261, 41, 263, 270, 271, 272, - 41, 268, 275, 276, 277, 278, 279, 41, 281, 282, - 283, 284, 41, 286, 287, 41, 41, 290, 291, 292, - 293, 123, 59, 125, 297, 298, 41, 1431, 41, 296, - 451, 41, 299, 306, 41, 308, 40, 274, 274, 306, - 461, 93, 41, 464, 1487, 93, 44, 41, 44, 41, - 323, 324, 325, 1550, 44, 40, 58, 40, 91, 41, - 41, 1486, 40, 40, 294, 41, 41, 41, 1485, 40, - 40, 62, 41, 41, 497, 489, 40, 501, 1506, 1507, - 1508, 277, 41, 125, 123, 358, 41, 41, 125, 61, - 277, 278, 279, 41, 281, 282, 283, 284, 41, 286, - 287, 288, 62, 290, 291, 292, 293, 360, 361, 362, - 297, 298, 41, 451, 535, 536, 537, 538, 539, 540, - 541, 391, 41, 41, 41, 317, 1543, 93, 93, 1626, - 1558, 317, 41, 1575, 40, 1563, 1564, 1565, 40, 1567, - 1659, 1569, 1570, 1571, 58, 58, 38, 414, 415, 416, - 42, 93, 1568, 93, 93, 93, 40, 44, 260, 261, - 262, 263, 504, 1591, 1592, 1593, 268, 91, 60, 271, - 91, 273, 274, 275, 276, 277, 278, 279, 365, 281, - 282, 283, 284, 40, 286, 287, 288, 123, 290, 291, - 292, 293, 40, 93, 296, 297, 298, 299, 1623, 91, - 41, 41, 40, 40, 306, 41, 308, 421, 269, 311, - 41, 272, 41, 315, 316, 93, 318, 93, 510, 1662, - 322, 323, 324, 325, 44, 274, 1654, 41, 58, 41, - 41, 44, 60, 93, 295, 296, 273, 339, 61, 300, - 1665, 302, 40, 294, 40, 40, 1663, 40, 309, 40, - 301, 40, 303, 304, 305, 40, 358, 359, 360, 361, - 362, 40, 364, 365, 40, 326, 40, 40, 40, 125, - 543, 41, 374, 375, 62, 93, 91, 41, 41, 41, - 341, 41, 33, 93, 93, 93, 93, 41, 93, 391, - 93, 342, 343, 344, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 263, 41, 41, 41, 0, 41, 388, 389, 390, - 91, 392, 41, 93, 395, 93, 448, 449, 450, 451, - 41, 453, 454, 455, 456, 93, 41, 459, 93, 461, - 41, 463, 464, 465, 466, 93, 468, 469, 33, 471, - 472, 473, 41, 38, 93, 40, 41, 42, 480, 44, - 41, 91, 47, 41, 41, 41, 274, 424, 425, 426, - 427, 93, 93, 44, 59, 60, 61, 62, 38, 41, - 41, 40, 42, 41, 93, 93, 508, 509, 510, 93, - 40, 448, 449, 450, 451, 40, 269, 40, 40, 272, - 60, 41, 58, 58, 526, 527, 91, 529, 530, 531, - 58, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 41, 543, 295, 296, 41, 260, 261, 300, 263, 302, - 41, 91, 41, 268, 40, 60, 309, 40, 123, 93, - 125, 41, 93, 41, 93, 294, 41, 93, 360, 361, - 362, 40, 301, 326, 303, 304, 305, 40, 40, 40, - 40, 296, 40, 40, 299, 40, 40, 40, 341, 40, - 40, 306, 41, 40, 263, 93, 41, 91, 535, 536, - 537, 538, 539, 540, 541, 40, 58, 40, 40, 260, - 261, 93, 263, 342, 343, 344, 40, 268, 41, 91, - 271, 40, 274, 41, 275, 276, 277, 278, 279, 41, - 281, 282, 283, 284, 41, 286, 287, 41, 40, 290, - 291, 292, 293, 263, 41, 296, 297, 298, 41, 40, - 260, 261, 40, 263, 510, 306, 358, 308, 268, 388, - 389, 390, 41, 392, 41, 40, 395, 41, 274, 41, - 41, 44, 323, 324, 325, 123, 62, 40, 62, 125, - 123, 123, 123, 41, 123, 125, 296, 125, 38, 123, - 41, 40, 123, 123, 41, 260, 261, 125, 263, 414, - 415, 416, 59, 268, 41, 41, 271, 358, 273, 274, - 275, 276, 277, 278, 279, 41, 281, 282, 283, 284, - 125, 286, 287, 123, 123, 290, 291, 292, 293, 41, - 62, 296, 297, 298, 299, 41, 123, 40, 123, 0, - 41, 306, 263, 308, 46, 93, 311, 93, 275, 263, - 42, 316, 61, 263, 263, 263, 275, 322, 323, 324, - 325, 91, 275, 414, 415, 416, 260, 261, 125, 263, - 180, 275, 33, 123, 268, 260, 261, 38, 263, 40, - 41, 42, 275, 44, 417, 275, 47, 1034, 275, 739, - 1011, 275, 828, 358, 275, 360, 361, 362, 59, 60, - 61, 62, 296, 1502, 414, 415, 416, 275, 275, 374, - 375, 275, 306, 1276, 1009, 1196, 275, 895, 1138, 275, - 360, 361, 362, 914, 477, 904, 391, 1264, 701, 1277, - 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 275, - 24, 9, 123, 428, 125, 1200, 431, 432, 901, 114, - 355, 356, 357, 350, 24, 754, 544, 304, 758, 605, - 671, 64, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 543, 489, 459, 380, 461, 368, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - 260, -1, -1, 263, -1, 480, 273, -1, -1, -1, - 414, 415, 416, -1, -1, -1, -1, -1, 278, -1, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - -1, -1, -1, 508, 509, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, - -1, -1, 339, -1, -1, -1, -1, -1, -1, 474, - -1, 476, 477, 478, 479, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, 123, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, - -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, - -1, -1, -1, -1, 451, -1, -1, 358, -1, 360, - 361, 362, 59, 60, 61, 62, 463, -1, 465, 466, - -1, 468, 469, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 432, 24, 434, 102, 103, 167, 155, 64, 709, 315, + 24, 315, 20, 21, 19, 1, 315, 1, 13, 1001, + 24, 905, 27, 28, 29, 30, 22, 23, 1, 24, + 1023, 38, 695, 181, 41, 38, 91, 44, 1, 486, + 839, 44, 40, 1, 46, 519, 520, 521, 93, 92, + 1, 41, 43, 264, 45, 123, 43, 65, 46, 41, + 123, 46, 42, 46, 72, 368, 59, 125, 167, 46, + 41, 1155, 773, 365, 46, 123, 264, 36, 37, 511, + 512, 43, 105, 125, 91, 319, 61, 40, 785, 470, + 46, 190, 59, 24, 47, 260, 261, 41, 263, 123, + 41, 60, 59, 111, 112, 128, 1258, 60, 113, 104, + 115, 116, 117, 40, 1473, 40, 215, 59, 44, 193, + 194, 195, 196, 197, 169, 38, 41, 262, 151, 42, + 40, 93, 125, 46, 47, 40, 1460, 93, 1181, 33, + 41, 145, 199, 40, 148, 188, 380, 60, 41, 157, + 42, 156, 157, 288, 44, 42, 41, 263, 44, 42, + 40, 156, 91, 41, 168, 40, 1490, 93, 125, 40, + 482, 46, 167, 104, 263, 42, 62, 40, 91, 43, + 40, 91, 187, 125, 40, 208, 91, 349, 233, 232, + 502, 41, 44, 299, 91, 40, 123, 528, 123, 91, + 205, 206, 46, 93, 1356, 210, 58, 342, 38, 1293, + 61, 91, 42, 221, 222, 210, 41, 691, 41, 41, + 917, 918, 370, 41, 267, 267, 40, 232, 91, 93, + 60, 91, 40, 38, 239, 91, 260, 42, 1597, 263, + 264, 41, 42, 76, 203, 40, 91, 315, 316, 93, + 542, 554, 123, 316, 353, 60, 260, 279, 280, 470, + 61, 91, 267, 311, 738, 44, 61, 289, 260, 261, + 43, 263, 45, 263, 262, 40, 299, 91, 975, 91, + 273, 286, 290, 306, 264, 290, 91, 262, 293, 990, + 298, 91, 297, 264, 265, 352, 339, 302, 303, 304, + 305, 359, 264, 294, 308, 470, 364, 352, 351, 299, + 365, 59, 1009, 41, 93, 306, 307, 505, 506, 507, + 264, 274, 330, 264, 332, 470, 285, 350, 336, 315, + 316, 315, 316, 324, 264, 262, 344, 345, 320, 321, + 348, 318, 315, 316, 40, 819, 318, 46, 181, 264, + 346, 347, 315, 316, 349, 350, 399, 315, 316, 354, + 1353, 60, 370, 264, 315, 316, 260, 261, 1069, 263, + 264, 264, 265, 260, 261, 44, 263, 260, 261, 264, + 263, 264, 40, 374, 46, 371, 264, 371, 372, 373, + 374, 262, 275, 260, 261, 91, 263, 356, 371, 372, + 373, 374, 359, 59, 391, 40, 391, 364, 391, 296, + 262, 262, 59, 296, 264, 423, 424, 359, 426, 421, + 428, 38, 364, 354, 93, 42, 471, 1470, 123, 296, + 904, 93, 475, 91, 430, 443, 444, 288, 262, 264, + 265, 264, 264, 60, 123, 46, 264, 360, 361, 362, + 473, 40, 260, 261, 452, 263, 604, 267, 451, 91, + 1259, 1504, 467, 59, 469, 46, 40, 615, 461, 125, + 462, 464, 40, 920, 91, 574, 484, 41, 125, 484, + 44, 41, 525, 526, 44, 1478, 481, 542, 315, 484, + 40, 496, 93, 1156, 502, 260, 261, 540, 263, 507, + 508, 509, 91, 511, 42, 513, 514, 515, 551, 40, + 40, 344, 91, 40, 510, 348, 512, 91, 525, 123, + 516, 294, 525, 91, 1462, 91, 1508, 264, 265, 125, + 360, 361, 362, 306, 307, 540, 264, 370, 266, 547, + 548, 91, 535, 536, 537, 538, 539, 540, 541, 592, + 123, 324, 543, 91, 1492, 360, 361, 362, 286, 287, + 91, 91, 570, 606, 91, 573, 571, 572, 535, 536, + 537, 538, 539, 540, 541, 598, 40, 622, 535, 536, + 537, 538, 539, 540, 541, 472, 391, 592, 40, 472, + 40, 1463, 600, 535, 536, 537, 538, 539, 540, 541, + 44, 374, 1299, 1300, 1488, 472, 439, 615, 91, 260, + 261, 359, 263, 761, 264, 40, 364, 273, 41, 676, + 665, 1493, 667, 123, 40, 275, 273, 91, 260, 261, + 260, 263, 640, 263, 269, 40, 641, 272, 597, 91, + 296, 91, 647, 666, 123, 653, 43, 1348, 260, 261, + 480, 263, 40, 752, 46, 44, 664, 46, 59, 758, + 295, 296, 47, 123, 61, 300, 91, 302, 38, 61, + 629, 630, 42, 33, 309, 91, 635, 273, 637, 687, + 44, 260, 261, 706, 263, 991, 91, 991, 61, 268, + 60, 326, 991, 697, 260, 261, 260, 263, 62, 263, + 296, 40, 268, 91, 709, 40, 341, 750, 751, 714, + 40, 716, 1455, 721, 722, 723, 41, 296, 1461, 44, + 1421, 91, 1419, 306, 125, 748, 47, 711, 724, 41, + 296, 41, 391, 778, 91, 1432, 744, 745, 123, 41, + 306, 43, 44, 360, 361, 362, 751, 391, 1491, 772, + 755, 756, 757, 409, 713, 260, 261, 765, 263, 767, + 391, 769, 374, 375, 787, 391, 774, 600, 773, 267, + 844, 604, 846, 847, 848, 849, 850, 260, 261, 775, + 263, 91, 615, 316, 431, 432, 794, 535, 536, 537, + 538, 539, 540, 541, 837, 451, 804, 805, 38, 91, + 40, 42, 42, 260, 451, 461, 263, 264, 464, 40, + 818, 462, 91, 409, 1511, 41, 463, 822, 465, 824, + 60, 468, 469, 328, 38, 330, 331, 40, 42, 41, + 835, 43, 337, 841, 33, 414, 415, 416, 283, 284, + 41, 264, 265, 266, 41, 853, 60, 855, 414, 415, + 416, 91, 40, 1554, 59, 451, 1553, 93, 260, 261, + 905, 263, 907, 286, 287, 461, 61, 910, 464, 914, + 393, 394, 273, 318, 40, 260, 261, 91, 263, 535, + 536, 537, 538, 539, 540, 541, 43, 1584, 535, 536, + 537, 538, 539, 540, 541, 1596, 44, 905, 46, 41, + 42, 905, 1599, 260, 261, 263, 263, 915, 320, 321, + 270, 271, 272, 41, 266, 275, 276, 277, 278, 279, + 125, 281, 282, 283, 284, 93, 286, 287, 761, 475, + 290, 291, 292, 293, 286, 287, 296, 297, 298, 535, + 536, 537, 538, 539, 540, 541, 306, 280, 308, 91, + 260, 261, 41, 263, 43, 40, 940, 1000, 268, 1002, + 983, 794, 976, 323, 324, 325, 989, 40, 260, 261, + 803, 263, 374, 375, 44, 980, 46, 985, 59, 987, + 40, 260, 261, 40, 263, 990, 296, 41, 42, 299, + 360, 361, 362, 41, 1143, 43, 306, 1040, 358, 1042, + 40, 1006, 1010, 1048, 1012, 991, 264, 991, 40, 993, + 994, 995, 457, 458, 40, 460, 260, 261, 991, 263, + 993, 994, 995, 281, 282, 283, 1034, 40, 991, 1037, + 993, 994, 264, 991, 266, 993, 994, 91, 40, 1044, + 991, 612, 613, 614, 125, 1090, 1208, 1209, 1210, 1211, + 451, 264, 265, 266, 286, 287, 1218, 1219, 1220, 93, + 461, 393, 394, 464, 1069, 93, 1498, 1499, 273, 902, + 43, 44, 271, 286, 287, 40, 275, 276, 277, 278, + 279, 40, 281, 282, 283, 284, 91, 286, 287, 43, + 44, 290, 291, 292, 293, 40, 295, 40, 297, 298, + 91, 300, 40, 302, 414, 415, 416, 306, 125, 308, + 309, 944, 58, 330, 331, 332, 91, 41, 42, 40, + 360, 361, 362, 40, 323, 324, 325, 326, 260, 261, + 1138, 263, 892, 893, 535, 536, 537, 538, 539, 540, + 541, 40, 341, 41, 42, 40, 360, 361, 362, 366, + 367, 368, 330, 331, 332, 40, 44, 1165, 1166, 358, + 41, 1204, 1205, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 125, 1182, 59, 1184, 1010, 1186, 1012, + 295, 1185, 38, 543, 59, 300, 42, 302, 366, 367, + 368, 40, 273, 91, 309, 1010, 1201, 1012, 330, 331, + 40, 262, 44, 1198, 60, 264, 265, 266, 123, 262, + 60, 326, 327, 1208, 1209, 1210, 1211, 41, 41, 424, + 425, 426, 427, 1218, 1219, 1220, 341, 286, 287, 280, + 281, 282, 283, 284, 38, 91, 274, 1245, 1283, 1338, + 463, 125, 1250, 448, 449, 450, 451, 1252, 260, 261, + 125, 263, 301, 1261, 303, 304, 305, 372, 339, 274, + 91, 260, 261, 1271, 263, 264, 40, 1275, 1276, 260, + 261, 310, 263, 312, 313, 314, 40, 268, 1286, 38, + 40, 59, 40, 1291, 1292, 260, 261, 262, 263, 264, + 41, 260, 261, 268, 263, 1303, 1304, 1305, 1306, 280, + 281, 282, 283, 284, 1347, 296, 62, 275, 283, 44, + 1294, 281, 282, 283, 284, 1358, 123, 123, 365, 0, + 123, 296, 123, 1327, 58, 1330, 1371, 274, 40, 40, + 535, 536, 537, 538, 539, 540, 541, 281, 282, 283, + 284, 40, 40, 1348, 543, 320, 321, 125, 41, 467, + 431, 432, 33, 281, 282, 283, 284, 38, 61, 40, + 41, 42, 1370, 44, 123, 61, 47, 317, 317, 1377, + 451, 61, 40, 470, 470, 44, 41, 1420, 59, 60, + 61, 62, 463, 93, 465, 466, 41, 468, 469, 273, + 41, 41, 41, 41, 41, 1228, 58, 41, 273, 1422, + 1384, 44, 44, 44, 260, 261, 125, 263, 61, 1242, + 91, 1244, 93, 40, 40, 263, 1421, 125, 41, 41, + 41, 296, 61, 414, 415, 416, 41, 41, 41, 260, + 261, 1474, 263, 1441, 1442, 1443, 1481, 268, 41, 414, + 415, 416, 123, 41, 125, 41, 41, 41, 41, 41, + 41, 41, 41, 274, 535, 536, 537, 538, 539, 540, + 541, 40, 93, 93, 274, 296, 41, 44, 299, 41, + 44, 41, 59, 44, 278, 306, 40, 281, 282, 283, + 284, 1489, 286, 287, 288, 58, 1494, 1495, 1496, 40, + 1498, 1590, 1500, 1501, 1502, 273, 41, 41, 40, 40, + 294, 41, 1506, 1499, 360, 361, 362, 41, 41, 40, + 62, 41, 1557, 91, 1522, 1523, 1524, 41, 40, 278, + 497, 501, 281, 282, 283, 284, 295, 286, 287, 288, + 40, 300, 489, 302, 409, 277, 41, 125, 125, 123, + 309, 61, 41, 427, 62, 429, 430, 41, 41, 1554, + 41, 1594, 41, 391, 451, 93, 93, 326, 41, 41, + 41, 339, 38, 317, 448, 449, 450, 451, 317, 41, + 1593, 40, 341, 40, 58, 40, 451, 1585, 58, 260, + 261, 262, 263, 414, 415, 416, 461, 268, 44, 464, + 271, 1596, 273, 274, 275, 276, 277, 278, 279, 504, + 281, 282, 283, 284, 91, 286, 287, 288, 93, 290, + 291, 292, 293, 91, 93, 296, 297, 298, 299, 93, + 93, 40, 40, 93, 41, 306, 123, 308, 41, 40, + 311, 40, 421, 41, 315, 316, 93, 318, 93, 510, + 33, 322, 323, 324, 325, 38, 44, 123, 58, 42, + 274, 535, 536, 537, 538, 539, 540, 541, 339, 41, + 535, 536, 537, 538, 539, 540, 541, 60, 41, 41, + 41, 60, 93, 451, 44, 61, 125, 358, 359, 360, + 361, 362, 62, 364, 365, 463, 273, 465, 466, 93, + 468, 469, 93, 374, 375, 41, 93, 93, 91, 93, + 41, 93, 93, 93, 41, 93, 93, 41, 93, 296, + 391, 41, 93, 263, 93, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, - 431, 432, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, 294, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, 309, -1, -1, -1, -1, 480, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - 325, 286, 287, 288, -1, 290, 291, 292, 293, 334, - -1, -1, 297, 298, -1, -1, -1, 508, 509, -1, - -1, -1, -1, 348, 349, 350, 351, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, 543, -1, -1, 380, 381, 382, 383, 384, - 385, 386, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - 365, 268, 59, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 44, 93, 38, 93, 0, 535, 536, 537, + 538, 539, 540, 541, 41, 274, 41, 448, 449, 450, + 451, 41, 453, 454, 455, 456, 40, 93, 459, 93, + 461, 93, 463, 464, 465, 466, 41, 468, 469, 33, + 471, 472, 473, 58, 38, 58, 40, 41, 42, 480, + 44, 58, 278, 47, 41, 281, 282, 283, 284, 41, + 286, 287, 288, 41, 40, 59, 60, 61, 62, 40, + 93, 93, 409, 40, 93, 93, 40, 508, 509, 510, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 123, + 40, 263, 41, 40, 93, 526, 527, 91, 529, 530, + 531, 41, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 40, 543, 93, 451, 60, 58, 260, 261, 40, + 263, 40, 40, 91, 461, 268, 41, 464, 271, 123, + 40, 125, 275, 276, 277, 278, 279, 41, 281, 282, + 283, 284, 41, 286, 287, 41, 41, 290, 291, 292, + 293, 40, 263, 296, 297, 298, 274, 41, 41, 40, + 40, 59, 294, 306, 358, 308, 41, 41, 274, 301, + 40, 303, 304, 305, 510, 41, 41, 123, 41, 123, + 323, 324, 325, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 535, 536, + 537, 538, 539, 540, 541, 125, 123, 123, 44, 62, + 342, 343, 344, 125, 123, 358, 40, 360, 361, 362, + 125, 123, 62, 41, 41, 125, 260, 125, 41, 263, + 123, 374, 375, 123, 41, 41, 41, 41, 125, 41, + 62, 123, 41, 40, 278, 123, 123, 281, 282, 283, + 284, 40, 286, 287, 288, 41, 388, 389, 390, 123, + 392, 263, 93, 395, 46, 93, 260, 261, 263, 263, + 42, 414, 415, 416, 268, 275, 61, 271, 275, 273, + 274, 275, 276, 277, 278, 279, 275, 281, 282, 283, + 284, 275, 286, 287, 275, 91, 290, 291, 292, 293, + 275, 275, 296, 297, 298, 299, 269, 180, 421, 272, + 0, 834, 306, 275, 308, 263, 745, 311, 1039, 901, + 263, 1437, 316, 1014, 275, 263, 1016, 1268, 322, 323, + 324, 325, 295, 296, 275, 1143, 275, 300, 275, 302, + 275, 275, 275, 33, 1189, 920, 309, 706, 38, 910, + 40, 41, 42, 1256, 44, 1269, 354, 47, 24, 907, + 9, 114, 481, 326, 358, 1192, 360, 361, 362, 59, + 60, 61, 62, 549, 24, 273, 760, 764, 341, 676, + 374, 375, 308, 610, 64, 493, 372, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, 296, -1, + 543, 91, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, 262, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 480, -1, -1, 273, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, -1, -1, 296, - 299, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 543, 277, 278, 279, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, 294, -1, -1, -1, -1, 480, -1, 301, -1, + 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 409, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, + 343, 344, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + -1, -1, -1, 451, -1, 41, -1, -1, -1, -1, + -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, + 260, 261, -1, 263, -1, 388, 389, 390, 268, 392, + -1, 271, 395, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, 59, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, 409, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 125, -1, 33, -1, -1, -1, -1, 38, - -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, 451, 358, -1, 360, 361, 362, - 59, 60, 61, 62, 461, -1, -1, 464, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, 33, 260, 261, + -1, 263, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, -1, 508, 509, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, 355, 356, 357, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 380, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, + -1, -1, 474, -1, 476, 477, 478, 479, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, 123, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - 59, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, 409, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 125, -1, 33, -1, - -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 451, 358, - -1, 360, 361, 362, 59, 60, 61, 62, 461, -1, - -1, 464, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, - 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 480, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, 294, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, 309, + -1, -1, -1, -1, 480, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, 325, 286, 287, 288, -1, + 290, 291, 292, 293, 334, -1, -1, 297, 298, -1, + -1, -1, 508, 509, -1, -1, -1, -1, 348, 349, + 350, 351, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, 365, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, 260, 261, -1, 263, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, 355, 356, 357, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, 380, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, 271, -1, -1, -1, -1, 480, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - 409, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, - 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, 451, 358, -1, 360, 361, 362, 59, 60, - 61, 62, 461, -1, -1, 464, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - 271, -1, -1, -1, -1, 480, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, -1, 346, -1, + 474, -1, 476, 477, 478, 479, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, 365, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, - -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, 365, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, - 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, 262, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, 277, + 278, 279, 480, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, -1, -1, + -1, 299, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 294, -1, -1, -1, -1, -1, -1, 301, -1, 303, - 304, 305, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, - 344, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 123, -1, 125, -1, 428, - -1, -1, 431, 432, 388, 389, 390, -1, 392, -1, - -1, 395, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, - -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, - -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, - 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, - -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, - -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, - 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, -1, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, -1, -1, -1, -1, -1, -1, 41, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, 0, -1, -1, + -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, + -1, -1, 301, -1, 303, 304, 305, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 342, 343, 344, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 123, -1, 125, -1, 428, -1, -1, 431, 432, 388, + 389, 390, -1, 392, -1, -1, 395, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + 294, -1, -1, -1, -1, -1, 480, 301, -1, 303, + 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, + 344, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, 388, 389, 390, -1, 392, -1, + 273, 395, -1, -1, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 0, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, + -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, + 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 260, -1, -1, + 263, -1, -1, 353, -1, -1, 356, 543, -1, -1, + 273, -1, -1, 363, 277, 278, 279, -1, 281, 282, + 283, 284, 372, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, + -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, 59, 294, 295, -1, -1, -1, -1, 300, -1, - 302, -1, -1, -1, 322, -1, -1, 309, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, 326, 327, -1, 329, 330, 331, - 332, 333, -1, -1, -1, -1, 338, -1, -1, 341, - -1, 359, -1, -1, -1, 347, 364, 365, -1, -1, - 352, -1, 354, -1, -1, -1, -1, 125, -1, -1, - -1, -1, -1, -1, 366, 367, 368, 369, 370, 371, - 372, 373, -1, -1, -1, -1, -1, 379, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, + 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 260, -1, -1, + 263, -1, -1, 353, -1, -1, 356, 543, -1, -1, + 273, -1, -1, 363, 277, 278, 279, -1, 281, 282, + 283, 284, 372, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, + -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, 543, -1, -1, + 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, + -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, 273, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, 322, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, 260, -1, -1, 263, - 448, 449, 450, 451, -1, 453, 454, 526, 527, 273, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, 473, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, 543, -1, -1, + 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, 59, 294, 295, -1, + -1, -1, -1, 300, -1, 302, -1, -1, -1, 322, + -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 339, -1, -1, 326, + 327, -1, 329, 330, 331, 332, 333, -1, -1, -1, + -1, 338, -1, -1, 341, -1, 359, -1, -1, -1, + 347, 364, 365, -1, -1, 352, -1, 354, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, 366, + 367, 368, 369, 370, 371, 372, 373, -1, -1, -1, + -1, -1, 379, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, 0, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, 448, 449, 450, 451, 273, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, + 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + 273, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, 322, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - 0, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, 448, 449, 450, 451, 273, 453, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 409, -1, 411, 412, + 413, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, 260, -1, -1, 263, 448, 449, 450, 451, -1, + 453, 454, 526, 527, 273, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + 473, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, 526, 527, 273, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 273, 529, 530, 531, -1, 533, 534, + 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 311, 61, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + -1, -1, -1, 273, 274, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, 0, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, 448, 449, + 410, 411, 412, 413, 358, -1, 59, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, 274, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 311, 61, -1, -1, -1, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 526, 527, -1, 529, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + 406, 407, 408, 409, 410, 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + -1, -1, 428, -1, -1, 431, 432, 260, 59, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 358, - -1, 59, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, 260, + -1, 464, 263, -1, -1, -1, -1, -1, 471, 472, + 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, 260, 59, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, + 411, 412, 413, -1, -1, 59, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 260, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, 59, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, 123, -1, 125, + 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, + 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, 260, -1, 464, 263, -1, -1, - -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 428, 429, 430, 431, 432, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, 526, 527, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 260, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, 59, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 59, -1, -1, -1, -1, 409, 410, 411, 412, + 413, -1, -1, -1, 448, 449, 450, 451, 260, 453, + 454, 455, 456, -1, -1, 459, -1, 461, 431, 432, + 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + 463, 464, -1, -1, -1, 123, -1, 125, 471, 472, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, 59, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 273, -1, 459, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, 273, -1, 459, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 59, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, - 449, 450, 451, 260, 453, 454, 455, 456, -1, -1, - 459, -1, 461, 431, 432, 464, 273, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, 463, 464, -1, -1, -1, - 123, -1, 125, 471, 472, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 260, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - 273, -1, 459, -1, 461, -1, -1, 464, -1, -1, - -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, 260, -1, 464, + 263, -1, -1, -1, -1, -1, 471, 472, 473, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 260, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, + 260, -1, -1, 263, 44, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, 448, 449, 450, 451, 59, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 91, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, + 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, - -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 322, -1, -1, -1, -1, 0, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, 59, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, 323, 324, 325, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, 358, 417, 418, 419, + 420, 421, 422, 423, 125, -1, -1, 273, 428, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 125, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 0, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, + -1, 59, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 540, 541, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, + -1, -1, 273, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, 543, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 125, -1, 461, -1, -1, 464, -1, + -1, 322, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, 260, -1, -1, 263, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - 448, 449, 450, 451, 59, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, 322, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 423, -1, -1, -1, 59, 428, -1, -1, + 431, 432, -1, -1, -1, 273, 409, 410, 411, 412, + 413, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 431, 432, + 461, 273, -1, 464, -1, -1, 125, -1, -1, -1, + 471, 472, 473, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, 125, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 59, + -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, -1, -1, 431, 432, -1, -1, 409, 410, 411, + 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 273, -1, -1, 455, 456, 431, + 432, -1, 0, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 125, 448, 449, 450, 451, + 273, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, + 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, 409, 410, 411, 412, + 413, -1, -1, 273, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 59, -1, -1, 455, 456, 431, 432, + -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, 59, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + 125, -1, -1, 526, 527, 273, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, 123, -1, 125, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 0, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, 59, -1, 61, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 358, - 359, -1, 260, 428, -1, 263, 431, 432, 125, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, - -1, -1, -1, -1, 0, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 414, 415, 416, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, 451, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 273, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 125, - 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 543, -1, -1, 0, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 125, 459, -1, 461, -1, 322, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, 526, 527, 273, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 125, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, -1, 464, -1, 257, -1, + -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, + 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, -1, -1, 409, 410, 411, 412, 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, 125, -1, 431, 432, -1, 273, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, 273, -1, - -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, - 273, -1, 0, -1, -1, -1, -1, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + 538, 539, 540, 541, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, 431, 432, 464, -1, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, - -1, 59, -1, 448, 449, 450, 451, -1, -1, -1, + 273, -1, -1, -1, -1, 471, 472, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, 508, 509, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, 38, -1, -1, -1, 42, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 125, -1, -1, - -1, -1, -1, 273, -1, -1, 409, 410, 411, 412, - 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 0, 431, 432, + 536, 537, 538, 539, 540, 541, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 91, 33, -1, + -1, -1, -1, 38, -1, 484, 485, 42, 487, 488, + 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, + -1, -1, -1, -1, -1, 60, 409, 410, 411, 412, + 413, -1, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, - 410, 411, 412, 413, -1, 273, -1, -1, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, 257, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, - -1, 471, 472, -1, -1, -1, -1, 276, 277, -1, - 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, - 289, 290, 291, 292, 293, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, 526, 527, 59, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, - 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, - 273, -1, 461, 431, 432, 464, -1, -1, -1, -1, - 0, -1, 471, 472, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 125, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, 59, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 484, 485, -1, 487, 488, - 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, - -1, -1, -1, -1, -1, 125, 409, 410, 411, 412, - 413, 273, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, 323, + 324, 325, -1, 268, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 358, -1, 360, 361, 362, -1, + -1, 306, -1, 308, 33, -1, -1, -1, -1, 38, + 374, 375, -1, 42, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 414, 415, 416, 358, -1, 360, 361, 362, -1, -1, + -1, -1, 91, 33, -1, -1, -1, 271, -1, 374, + 375, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + 294, -1, -1, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, 414, + 415, 416, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, 366, 367, 368, 369, -1, -1, 372, -1, + -1, -1, 376, 377, 378, -1, -1, -1, -1, 543, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 33, -1, 455, 456, -1, 38, -1, -1, - 461, 42, -1, 464, -1, -1, -1, -1, -1, -1, - 471, 472, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 91, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 91, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, 543, 268, + 91, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, 480, 306, -1, 308, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 294, -1, -1, 297, 298, 358, + -1, 360, 361, 362, -1, -1, 306, -1, 308, 543, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, + 330, 331, 332, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, -1, -1, -1, 414, 415, 416, 358, -1, + -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, + -1, -1, 372, -1, -1, -1, 376, 377, 378, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 271, 91, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 60, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, 414, 415, 416, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, 33, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 359, -1, + 480, -1, 260, 261, 543, 263, -1, -1, -1, -1, + 268, 91, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, 414, 415, 416, -1, -1, -1, -1, + -1, -1, -1, 543, 33, 323, 324, 325, -1, 327, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + 451, 271, -1, -1, -1, 275, 276, 277, 278, 279, + 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 372, -1, 296, 297, 298, -1, + -1, -1, 91, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, 414, 415, 416, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, - 38, -1, 91, -1, 42, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, 91, 33, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, 271, -1, -1, 543, 275, 276, 277, 278, 279, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, + 260, 261, 543, 263, -1, -1, -1, -1, 268, -1, + -1, 271, 91, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, - -1, -1, 414, 415, 416, -1, 306, -1, 308, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, 33, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, - 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, - -1, -1, 372, -1, 33, -1, 376, 377, 378, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, 543, 91, 271, 323, 324, 325, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, 358, - 308, -1, -1, -1, -1, -1, 33, -1, -1, -1, - 480, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, - 358, -1, 360, 361, 362, -1, -1, 306, -1, 308, - -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1, -1, -1, 543, 323, 324, 325, -1, 327, -1, - 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 414, 415, 416, 358, - -1, -1, -1, -1, -1, -1, -1, 366, 367, 368, - 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + 91, -1, -1, -1, -1, 543, -1, -1, -1, -1, + -1, 260, 261, -1, 263, 33, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, 33, -1, -1, 306, -1, 308, - -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, + -1, -1, -1, -1, 414, 415, 416, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 480, 91, 260, 261, 543, 263, -1, -1, -1, - -1, 268, -1, 372, 271, -1, -1, 33, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, 414, 415, 416, -1, -1, - -1, -1, -1, -1, 543, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, 359, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, 91, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - 33, -1, 271, -1, 543, -1, 275, 276, 277, 278, + -1, -1, -1, 91, 323, 324, 325, -1, -1, -1, + -1, 260, 261, 543, 263, -1, -1, -1, -1, 268, + -1, -1, 271, 33, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, 358, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, 91, 33, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, 543, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, 414, 415, 416, 275, 276, - 277, 278, 279, 33, 281, 282, 283, 284, -1, 286, - 287, -1, 358, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, 543, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, -1, 41, 414, 415, - 416, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, 358, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, 91, -1, -1, - -1, 33, -1, 306, 543, 308, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - 323, 324, 325, -1, -1, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, 295, -1, 297, 298, 358, 300, -1, 302, 91, - -1, -1, 306, -1, 308, 309, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 543, -1, 323, - 324, 325, 326, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 40, 341, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 414, 415, 416, 358, 59, 60, -1, -1, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, 295, 543, 297, 298, -1, - 300, -1, 302, -1, -1, -1, 306, -1, 308, 309, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, 326, 271, -1, 123, - -1, 125, 276, 277, 278, 279, -1, 281, 282, 283, - 284, 341, 286, 287, -1, 41, 290, 291, 292, 293, - -1, 47, -1, 297, 298, -1, -1, -1, 358, -1, - -1, -1, 306, 59, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, 271, - 543, -1, -1, -1, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, 59, 290, 291, - 292, 293, -1, -1, 358, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, 123, 41, 125, + -1, -1, -1, -1, -1, 414, 415, 416, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, 358, + 271, 33, -1, 543, 275, 276, 277, 278, 279, 41, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, 59, -1, -1, 543, + -1, -1, 323, 324, 325, 414, 415, 416, 33, 91, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 358, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, 40, + 308, -1, -1, -1, 543, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, 125, -1, -1, 358, -1, -1, 273, + -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 91, 295, -1, 297, 298, -1, + 300, -1, 302, -1, 543, -1, 306, -1, 308, 309, + -1, -1, 123, 41, 125, -1, -1, -1, -1, 47, + -1, -1, -1, 323, 324, 325, 326, -1, -1, -1, + -1, 59, -1, -1, -1, -1, 414, 415, 416, -1, + -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, 271, + -1, -1, -1, -1, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + -1, -1, 543, -1, 306, 123, 308, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, 271, -1, -1, -1, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, 358, -1, -1, 260, + -1, 306, 263, 308, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, 543, -1, -1, 323, 324, + 325, -1, -1, -1, 271, -1, -1, -1, -1, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, -1, 358, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, 260, -1, 59, 263, -1, -1, -1, -1, + -1, -1, -1, 543, -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 123, 41, + 125, -1, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, -1, -1, -1, -1, -1, 59, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 543, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, 391, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 123, -1, 125, -1, 413, -1, -1, 543, 417, + 418, 419, 420, 421, 422, -1, -1, 508, 509, 510, + -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, + 541, 459, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, 473, 543, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, 543, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, 59, -1, -1, 413, - -1, 273, -1, 417, 418, 419, 420, 421, 422, -1, - -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, 448, 449, 450, 451, -1, -1, - 273, 543, -1, -1, -1, 459, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, 473, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, 508, 509, 510, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, 448, 449, 450, 451, 47, 409, -1, 411, - 412, 413, -1, 459, -1, -1, -1, -1, 59, -1, - -1, 423, -1, -1, -1, -1, 428, 473, 391, 431, - 432, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 448, 449, 450, 451, - 413, 453, 454, -1, 417, 418, 419, 420, 421, 422, - -1, -1, 508, 509, -1, -1, -1, 260, 431, 432, - 263, 473, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, 123, -1, 125, 448, 449, 450, 451, 535, - 536, 537, 538, 539, 540, 541, 459, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, - 473, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, 59, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, 508, 509, 260, -1, -1, 263, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 273, 274, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 260, + -1, 413, 263, -1, -1, 417, 418, 419, 420, 421, + 422, -1, 273, 508, 509, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, 59, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, 260, - 413, -1, 263, -1, 417, 418, 419, 420, 421, 422, - -1, -1, 273, 274, -1, -1, -1, -1, 431, 432, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, -1, -1, 508, 509, 260, + -1, -1, 263, 431, 432, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, + 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - 59, -1, -1, -1, -1, 396, 397, 398, 399, 400, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, 448, 449, 450, - 451, -1, -1, 273, 123, -1, 125, -1, 459, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, 508, 509, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, 260, -1, 413, 263, -1, -1, 417, 418, 419, - 420, 421, 422, -1, 273, 508, 509, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, + 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, + -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, + 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, -1, 59, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, -1, 123, -1, 125, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 508, - 509, 260, -1, 413, 263, -1, -1, 417, 418, 419, - 420, 421, 422, -1, 273, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, 123, -1, 125, -1, -1, 459, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, -1, 59, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 273, -1, -1, -1, -1, -1, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, 123, -1, 125, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, 59, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, 508, - 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, 535, 536, 537, 538, - 539, 540, 541, 459, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 473, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, 125, 508, 509, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, 260, -1, -1, 263, -1, 535, - 536, 537, 538, 539, 540, 541, -1, 273, -1, 448, - 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, 59, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, + -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 125, -1, -1, -1, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, + -1, 508, 509, 260, -1, -1, 263, 431, 432, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, + 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, 260, 59, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, 125, 273, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, + -1, 448, 449, 450, 451, 59, -1, -1, -1, -1, + -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, + -1, 508, 509, -1, -1, -1, -1, 431, 432, -1, + -1, 125, -1, -1, -1, -1, 273, -1, -1, 409, + 410, 411, 412, 413, 448, 449, 450, 451, 535, 536, + 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, 508, 509, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, - -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, 409, 410, 411, 412, 413, - -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, - 536, 537, 538, 539, 540, 541, 459, 431, 432, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, - 473, -1, 273, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, 431, 432, -1, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, - 448, 449, 450, 451, -1, 508, 509, 455, 456, -1, - 123, -1, -1, 461, -1, -1, 464, -1, -1, -1, - -1, 322, -1, 471, 472, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 409, -1, - 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 257, -1, -1, 448, 449, 450, - 451, -1, 453, 454, -1, -1, -1, -1, 271, -1, - -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, - 283, 284, 473, 286, 287, -1, 289, 290, 291, 292, - 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, 322, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 409, 410, 411, 412, 413, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 335, -1, 337, -1, -1, 257, -1, 342, - -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, - 541, 271, -1, -1, -1, 358, 276, 277, -1, 279, - 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, - 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, 322, -1, + -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, + -1, 123, 409, -1, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 335, -1, 337, -1, -1, - -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, 448, 449, 450, 451, -1, 453, 454, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, 409, -1, 411, 412, 413, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, + -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, 257, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, + 282, 283, 284, 257, 286, 287, -1, 289, 290, 291, + 292, 293, -1, -1, 508, 509, -1, 271, -1, -1, + -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, + 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, + 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + -1, 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, -1, -1, 481, -1, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, -1, -1, -1, - 503, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - -1, -1, -1, 503, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 481, + -1, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, -1, -1, + -1, 503, -1, -1, -1, -1, -1, 481, -1, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, -1, -1, 503, }; static int yyctable[] = { -1, - 239, 556, -1, 438, 785, -1, 290, 715, -1, 291, - 715, -1, 292, 715, -1, 294, 715, -1, 295, 715, - -1, 296, 715, -1, 297, 715, -1, 524, 736, -1, + 239, 556, -1, 442, 767, -1, 294, 697, -1, 295, + 697, -1, 296, 697, -1, 298, 697, -1, 299, 697, + -1, 300, 697, -1, 301, 697, -1, 529, 718, -1, 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 780, 317, -1, 848, 787, -1, + -1, 103, 495, -1, 786, 317, -1, 854, 769, -1, 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1131, 624, -1, 67, 565, -1, 68, - 565, -1, 69, 565, -1, 1148, 37, -1, 1278, 791, - -1, 1280, 789, -1, 1292, 608, -1, 1498, 793, -1, - 1133, 571, -1, 1134, 571, -1, + 34, 78, -1, 1136, 624, -1, 67, 565, -1, 68, + 565, -1, 69, 565, -1, 1153, 37, -1, 1270, 773, + -1, 1272, 771, -1, 1284, 608, -1, 1433, 775, -1, + 1138, 571, -1, 1139, 571, -1, }; #ifdef YYDESTRUCT static int yyastable[] = { 0, 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 296, 319, 320, 399, 405, 406, 421, - 422, 424, 425, 427, 428, 429, 430, 431, 432, 433, - 435, 437, 439, 441, 442, 443, 444, 445, 446, 448, - 449, 450, 463, 481, 487, 215, 5, 6, 8, 310, - 311, 298, 325, 64, 125, 483, 178, 179, 180, 181, + 284, 285, 286, 296, 319, 320, 398, 404, 405, 420, + 421, 423, 424, 426, 427, 428, 429, 430, 431, 432, + 434, 436, 438, 440, 441, 442, 443, 444, 445, 447, + 448, 449, 462, 480, 486, 215, 5, 6, 8, 310, + 311, 298, 325, 64, 125, 482, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 398, 398, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 294, 316, 317, 385, 387, 388, 297, - 298, 273, 400, 215, 402, 404, 215, 310, 9, 318, + 192, 397, 397, 8, 14, 17, 40, 41, 45, 47, + 54, 71, 86, 294, 316, 317, 384, 386, 387, 297, + 298, 273, 399, 215, 401, 403, 215, 310, 9, 318, 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, 104, 159, 160, 161, 288, 298, 307, 310, 314, 339, - 364, 382, 386, 388, 405, 406, 460, 289, 310, 310, + 363, 381, 385, 387, 404, 405, 459, 289, 310, 310, 310, 310, 7, 12, 342, 343, 342, 342, 289, 289, - 426, 289, 289, 289, 289, 342, 389, 60, 451, 390, + 425, 289, 289, 289, 289, 342, 388, 60, 450, 389, 23, 26, 27, 28, 29, 31, 32, 33, 289, 305, - 482, 485, 486, 318, 403, 293, 318, 391, 311, 298, - 339, 382, 383, 388, 460, 7, 33, 297, 347, 292, - 294, 294, 46, 48, 49, 50, 316, 316, 383, 384, - 386, 339, 297, 294, 318, 318, 207, 310, 402, 100, + 481, 484, 485, 318, 402, 293, 318, 390, 311, 298, + 339, 381, 382, 387, 459, 7, 33, 297, 347, 292, + 294, 294, 46, 48, 49, 50, 316, 316, 382, 383, + 385, 339, 297, 294, 318, 318, 207, 310, 401, 100, 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, - 76, 310, 310, 339, 26, 27, 28, 29, 382, 51, - 382, 24, 25, 34, 15, 17, 339, 22, 23, 24, + 76, 310, 310, 339, 26, 27, 28, 29, 381, 51, + 381, 24, 25, 34, 15, 17, 339, 22, 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 353, 217, 304, 310, 388, 307, 310, 318, 306, 105, - 106, 107, 136, 298, 300, 304, 305, 136, 136, 136, - 136, 316, 387, 382, 447, 347, 295, 12, 295, 295, - 423, 309, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 162, 163, 164, 165, 166, - 167, 204, 218, 253, 254, 289, 290, 311, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 428, 431, 442, 443, 444, 446, 465, 466, - 467, 468, 469, 470, 471, 474, 434, 436, 438, 440, - 295, 39, 68, 72, 75, 76, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 98, 101, - 108, 117, 310, 383, 61, 452, 39, 72, 74, 75, - 76, 77, 78, 83, 92, 97, 99, 111, 112, 113, - 114, 115, 116, 117, 118, 124, 316, 304, 294, 298, - 323, 294, 323, 294, 323, 294, 323, 294, 323, 294, - 323, 294, 484, 485, 294, 342, 7, 8, 292, 303, - 73, 75, 76, 82, 310, 310, 299, 39, 72, 74, - 75, 76, 77, 111, 112, 113, 114, 117, 121, 122, - 123, 225, 339, 297, 217, 310, 294, 297, 316, 294, - 289, 294, 291, 8, 318, 318, 295, 119, 120, 298, - 310, 312, 383, 289, 294, 347, 299, 166, 401, 310, - 220, 136, 382, 25, 310, 383, 294, 294, 26, 27, - 28, 29, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 310, 299, 299, 299, 310, 318, 310, 294, - 294, 310, 20, 299, 318, 340, 341, 339, 366, 367, - 310, 310, 310, 310, 339, 447, 290, 67, 154, 168, - 173, 198, 199, 218, 253, 254, 290, 422, 425, 427, - 428, 431, 442, 443, 444, 446, 454, 455, 457, 459, - 290, 318, 318, 318, 298, 110, 287, 298, 103, 383, - 303, 311, 318, 318, 335, 11, 31, 32, 294, 334, - 335, 311, 318, 387, 15, 17, 339, 388, 383, 87, - 347, 486, 316, 384, 294, 342, 197, 294, 426, 55, - 57, 58, 59, 472, 473, 475, 477, 478, 479, 480, - 311, 318, 469, 208, 210, 213, 214, 290, 442, 443, - 446, 489, 490, 491, 492, 84, 208, 211, 290, 488, - 490, 493, 494, 41, 154, 206, 209, 290, 443, 446, - 495, 206, 209, 290, 443, 446, 496, 294, 75, 76, - 77, 111, 112, 113, 300, 381, 383, 453, 294, 294, - 322, 294, 318, 318, 318, 318, 335, 334, 334, 290, - 292, 311, 295, 318, 318, 75, 76, 77, 111, 112, - 113, 294, 294, 310, 310, 299, 347, 396, 397, 289, - 339, 51, 375, 376, 383, 7, 292, 295, 295, 385, - 300, 333, 365, 19, 371, 373, 321, 488, 136, 310, - 19, 65, 66, 326, 318, 294, 294, 294, 294, 318, - 318, 318, 335, 318, 334, 334, 335, 318, 318, 318, - 335, 299, 314, 314, 314, 383, 383, 20, 292, 299, - 301, 292, 304, 110, 393, 394, 318, 318, 403, 110, - 287, 103, 383, 289, 426, 289, 289, 289, 303, 318, - 298, 310, 298, 310, 318, 316, 19, 294, 294, 310, - 383, 294, 342, 339, 311, 315, 318, 295, 294, 20, - 322, 336, 337, 338, 290, 383, 472, 56, 469, 476, - 476, 476, 476, 311, 318, 469, 62, 62, 212, 297, - 304, 318, 378, 297, 347, 342, 342, 297, 297, 342, - 342, 294, 215, 318, 310, 215, 310, 215, 318, 39, - 51, 52, 69, 119, 288, 291, 302, 327, 328, 380, - 292, 318, 347, 395, 298, 339, 347, 295, 299, 295, - 295, 295, 295, 295, 484, 295, 303, 8, 292, 318, - 2, 16, 21, 22, 24, 25, 26, 27, 28, 29, - 31, 32, 34, 35, 36, 37, 38, 80, 82, 87, - 103, 136, 226, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 248, 289, 344, 345, 464, 63, 313, 299, 297, 295, - 292, 371, 8, 292, 290, 297, 8, 297, 298, 366, - 294, 294, 310, 312, 290, 22, 23, 24, 26, 27, - 28, 29, 31, 32, 35, 36, 37, 38, 42, 43, - 110, 351, 352, 374, 446, 486, 28, 29, 63, 202, - 203, 205, 342, 310, 310, 295, 295, 318, 318, 318, - 335, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 314, 295, 295, 318, 340, 339, 294, - 383, 72, 117, 310, 383, 72, 117, 316, 310, 298, - 310, 298, 310, 316, 19, 423, 290, 456, 458, 438, - 318, 299, 318, 318, 292, 299, 339, 312, 318, 335, - 19, 347, 295, 294, 292, 295, 292, 336, 339, 295, - 292, 311, 318, 311, 318, 318, 294, 303, 294, 295, - 295, 294, 294, 295, 295, 318, 314, 310, 63, 310, - 295, 294, 39, 329, 330, 328, 294, 310, 370, 301, - 383, 295, 136, 395, 39, 46, 48, 49, 50, 87, - 88, 89, 133, 134, 135, 137, 140, 295, 250, 251, - 252, 318, 225, 349, 295, 323, 323, 323, 323, 323, - 323, 318, 318, 295, 25, 26, 27, 28, 29, 294, - 331, 242, 234, 246, 294, 227, 247, 22, 331, 331, - 2, 21, 22, 24, 25, 26, 27, 28, 29, 31, - 32, 34, 35, 36, 37, 38, 229, 230, 232, 233, - 234, 236, 237, 240, 241, 243, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 304, 324, 298, 304, 295, 343, 311, 297, 346, 28, - 318, 326, 347, 348, 382, 396, 290, 297, 376, 289, - 289, 294, 347, 318, 301, 336, 336, 333, 365, 294, - 298, 294, 298, 26, 27, 28, 29, 294, 298, 294, - 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, - 298, 294, 298, 294, 298, 294, 298, 294, 298, 294, - 298, 294, 298, 104, 109, 377, 446, 342, 311, 295, - 295, 295, 295, 295, 336, 196, 405, 310, 339, 318, - 318, 292, 339, 312, 290, 169, 170, 171, 172, 290, - 431, 443, 444, 446, 461, 172, 174, 175, 290, 431, - 443, 444, 446, 462, 290, 136, 299, 299, 383, 346, - 383, 295, 295, 310, 295, 336, 315, 315, 295, 349, - 338, 62, 62, 378, 295, 318, 318, 294, 330, 383, - 368, 369, 383, 292, 379, 310, 347, 295, 294, 303, - 303, 299, 299, 299, 299, 294, 312, 8, 292, 8, - 249, 347, 298, 298, 25, 26, 27, 28, 29, 270, - 292, 298, 305, 291, 299, 318, 290, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 44, 347, 350, 352, 294, 294, 289, 374, 371, 299, - 295, 295, 294, 294, 326, 318, 318, 318, 294, 298, - 294, 298, 294, 298, 294, 298, 318, 318, 318, 318, - 318, 318, 335, 318, 318, 334, 318, 334, 335, 318, - 318, 318, 318, 318, 318, 318, 335, 318, 351, 318, - 8, 44, 318, 44, 51, 382, 318, 42, 91, 110, - 364, 372, 295, 401, 295, 310, 299, 299, 383, 383, - 255, 387, 387, 387, 387, 387, 387, 387, 311, 292, - 19, 295, 311, 311, 318, 303, 295, 318, 310, 295, - 292, 380, 379, 395, 318, 138, 139, 138, 139, 345, - 381, 318, 297, 292, 318, 318, 347, 299, 318, 291, - 299, 26, 27, 28, 29, 318, 26, 27, 28, 318, - 374, 290, 290, 301, 336, 336, 295, 299, 295, 299, - 318, 318, 318, 318, 318, 318, 335, 318, 295, 299, - 295, 299, 295, 299, 295, 299, 295, 295, 299, 295, - 295, 299, 295, 299, 295, 299, 295, 299, 295, 299, - 295, 299, 295, 295, 299, 295, 8, 295, 299, 51, - 382, 298, 310, 294, 292, 19, 316, 383, 312, 378, - 295, 379, 383, 295, 295, 295, 294, 8, 318, 347, - 299, 299, 299, 318, 295, 303, 303, 303, 295, 290, - 295, 295, 294, 294, 295, 299, 295, 299, 295, 299, - 295, 299, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 295, 294, 8, 299, 297, 336, - 383, 312, 339, 300, 332, 333, 303, 336, 295, 292, - 295, 344, 299, 318, 318, 318, 360, 357, 294, 294, - 294, 294, 356, 357, 358, 359, 354, 355, 356, 357, - 358, 359, 363, 361, 362, 351, 295, 332, 383, 294, - 378, 295, 347, 295, 295, 295, 295, 326, 295, 318, - 356, 357, 358, 359, 295, 318, 295, 295, 318, 295, - 335, 295, 318, 334, 295, 334, 335, 295, 295, 295, - 295, 295, 351, 8, 44, 295, 44, 51, 295, 382, - 346, 294, 19, 336, 392, 292, 295, 295, 295, 295, - 8, 336, 312, 295, 39, 54, 70, 79, 93, 94, - 95, 96, 125, 126, 127, 128, 129, 130, 131, 289, - 347, 295, 294, 294, 295, 255, 336, 318, 103, 295, - 295, 316, 339, 383, 19, 312, 332, 294, 336, 295, + 44, 347, 350, 352, 485, 217, 304, 310, 387, 307, + 310, 318, 306, 105, 106, 107, 136, 298, 300, 304, + 305, 136, 136, 136, 136, 316, 386, 381, 446, 347, + 295, 12, 295, 295, 422, 309, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 162, + 163, 164, 165, 166, 167, 204, 218, 253, 254, 289, + 290, 311, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 427, 430, 441, 442, + 443, 445, 464, 465, 466, 467, 468, 469, 470, 473, + 433, 435, 437, 439, 295, 39, 68, 72, 75, 76, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 98, 101, 108, 117, 310, 382, 61, 451, + 39, 72, 74, 75, 76, 77, 78, 83, 92, 97, + 99, 111, 112, 113, 114, 115, 116, 117, 118, 124, + 316, 304, 294, 298, 323, 294, 323, 294, 323, 294, + 323, 294, 323, 294, 323, 294, 483, 484, 294, 342, + 7, 8, 292, 303, 73, 75, 76, 82, 310, 310, + 299, 39, 72, 74, 75, 76, 77, 111, 112, 113, + 114, 117, 121, 122, 123, 225, 339, 297, 217, 310, + 294, 297, 316, 294, 289, 294, 291, 8, 318, 318, + 295, 119, 120, 298, 310, 312, 382, 289, 294, 347, + 299, 166, 400, 310, 220, 136, 381, 25, 310, 382, + 294, 294, 26, 27, 28, 29, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 342, 310, 299, 299, + 299, 310, 318, 310, 294, 294, 310, 20, 299, 318, + 340, 341, 339, 365, 366, 310, 310, 310, 310, 339, + 446, 290, 67, 154, 168, 173, 198, 199, 218, 253, + 254, 290, 421, 424, 426, 427, 430, 441, 442, 443, + 445, 453, 454, 456, 458, 290, 318, 318, 318, 298, + 110, 287, 298, 103, 382, 303, 311, 318, 318, 335, + 11, 31, 32, 294, 334, 335, 311, 318, 386, 15, + 17, 339, 387, 382, 87, 347, 485, 316, 383, 294, + 342, 197, 294, 425, 55, 57, 58, 59, 471, 472, + 474, 476, 477, 478, 479, 311, 318, 468, 208, 210, + 213, 214, 290, 441, 442, 445, 488, 489, 490, 491, + 84, 208, 211, 290, 487, 489, 492, 493, 41, 154, + 206, 209, 290, 442, 445, 494, 206, 209, 290, 442, + 445, 495, 294, 75, 76, 77, 111, 112, 113, 300, + 380, 382, 452, 294, 294, 322, 294, 318, 318, 318, + 318, 335, 334, 334, 290, 292, 311, 295, 318, 318, + 75, 76, 77, 111, 112, 113, 294, 294, 310, 310, + 299, 347, 395, 396, 289, 339, 51, 374, 375, 382, + 7, 292, 295, 295, 384, 300, 333, 364, 19, 370, + 372, 321, 487, 136, 310, 19, 65, 66, 326, 318, + 294, 294, 294, 294, 318, 318, 318, 335, 318, 334, + 334, 335, 318, 318, 318, 335, 295, 299, 314, 314, + 314, 382, 382, 20, 292, 299, 301, 292, 304, 110, + 392, 393, 318, 318, 402, 110, 287, 103, 382, 289, + 425, 289, 289, 289, 303, 318, 298, 310, 298, 310, + 318, 316, 19, 294, 294, 310, 382, 294, 342, 339, + 311, 315, 318, 295, 294, 20, 322, 336, 337, 338, + 290, 382, 471, 56, 468, 475, 475, 475, 475, 311, + 318, 468, 62, 62, 212, 297, 304, 318, 377, 297, + 347, 342, 342, 297, 297, 342, 342, 294, 215, 318, + 310, 215, 310, 215, 318, 39, 51, 52, 69, 119, + 288, 291, 302, 327, 328, 379, 292, 318, 347, 394, + 298, 339, 347, 295, 299, 295, 295, 295, 295, 295, + 483, 295, 303, 8, 292, 318, 2, 16, 21, 22, + 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, + 36, 37, 38, 80, 82, 87, 103, 136, 226, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 248, 289, 344, 345, + 463, 63, 313, 299, 297, 295, 292, 370, 8, 292, + 290, 297, 8, 297, 298, 365, 294, 294, 310, 312, + 290, 22, 23, 24, 26, 27, 28, 29, 31, 32, + 35, 36, 37, 38, 42, 43, 110, 351, 352, 373, + 445, 28, 29, 63, 202, 203, 205, 342, 310, 310, + 295, 295, 318, 318, 318, 335, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 314, 295, + 295, 318, 340, 339, 294, 382, 72, 117, 310, 382, + 72, 117, 316, 310, 298, 310, 298, 310, 316, 19, + 422, 290, 455, 457, 437, 318, 299, 318, 318, 292, + 299, 339, 312, 318, 335, 19, 347, 295, 294, 292, + 295, 292, 336, 339, 295, 292, 311, 318, 311, 318, + 318, 294, 303, 294, 295, 295, 294, 294, 295, 295, + 318, 314, 310, 63, 310, 295, 294, 39, 329, 330, + 328, 294, 310, 369, 301, 382, 295, 136, 394, 39, + 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, + 137, 140, 295, 250, 251, 252, 318, 225, 349, 295, + 323, 323, 323, 323, 323, 323, 318, 318, 295, 25, + 26, 27, 28, 29, 294, 331, 242, 234, 246, 294, + 227, 247, 22, 331, 331, 2, 21, 22, 24, 25, + 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, + 38, 229, 230, 232, 233, 234, 236, 237, 240, 241, + 243, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 304, 324, 298, 304, 295, + 343, 311, 297, 346, 28, 318, 326, 347, 348, 381, + 395, 290, 297, 375, 289, 289, 294, 347, 318, 301, + 336, 336, 333, 364, 298, 298, 26, 27, 28, 29, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 294, 298, 294, 298, 294, 298, 104, 109, 376, 445, + 311, 295, 295, 295, 295, 295, 336, 196, 404, 310, + 339, 318, 318, 292, 339, 312, 290, 169, 170, 171, + 172, 290, 430, 442, 443, 445, 460, 172, 174, 175, + 290, 430, 442, 443, 445, 461, 290, 136, 299, 299, + 382, 346, 382, 295, 295, 310, 295, 336, 315, 315, + 295, 349, 338, 62, 62, 377, 295, 318, 318, 294, + 330, 382, 367, 368, 382, 292, 378, 310, 347, 295, + 294, 303, 303, 299, 299, 299, 299, 294, 312, 8, + 292, 8, 249, 347, 298, 298, 25, 26, 27, 28, + 29, 270, 292, 298, 305, 291, 299, 318, 290, 350, + 294, 294, 289, 373, 370, 299, 295, 295, 294, 294, + 318, 318, 298, 298, 298, 298, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 351, 318, 8, 44, + 318, 44, 51, 381, 318, 42, 91, 110, 363, 371, + 400, 295, 310, 299, 299, 382, 382, 255, 386, 386, + 386, 386, 386, 386, 386, 311, 292, 19, 295, 311, + 311, 318, 303, 295, 318, 310, 295, 292, 379, 378, + 394, 318, 138, 139, 138, 139, 345, 380, 318, 297, + 292, 318, 318, 347, 299, 318, 291, 299, 318, 26, + 27, 28, 318, 373, 290, 290, 301, 336, 336, 299, + 299, 318, 318, 318, 318, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 295, 299, 295, 295, 299, + 295, 8, 295, 299, 51, 381, 298, 310, 294, 292, + 19, 316, 382, 312, 377, 295, 378, 382, 295, 295, + 295, 294, 8, 318, 347, 299, 299, 299, 318, 295, + 303, 303, 303, 295, 290, 295, 295, 294, 294, 299, + 299, 299, 299, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 295, 294, 8, 299, 297, + 336, 382, 312, 339, 300, 332, 333, 303, 336, 295, + 292, 295, 344, 299, 318, 318, 318, 359, 356, 294, + 294, 294, 294, 355, 356, 357, 358, 353, 354, 355, + 356, 357, 358, 362, 360, 361, 351, 295, 332, 382, + 294, 377, 295, 347, 295, 295, 295, 295, 326, 295, + 318, 355, 356, 357, 358, 295, 318, 295, 295, 318, + 295, 335, 295, 318, 334, 295, 334, 335, 295, 295, + 295, 295, 295, 351, 8, 44, 295, 44, 51, 295, + 381, 346, 294, 19, 336, 391, 292, 295, 295, 295, + 295, 8, 336, 312, 295, 39, 54, 70, 79, 93, + 94, 95, 96, 125, 126, 127, 128, 129, 130, 131, + 289, 347, 295, 294, 294, 295, 255, 336, 318, 103, + 295, 295, 316, 339, 382, 19, 312, 332, 294, 336, + 295, }; #endif /* YYDESTRUCT */ #define YYFINAL 1 @@ -5195,29 +5183,11 @@ static const char *yyrule[] = { "variantType : BLOB_OBJECT_", "variantType : CF_", "variantType : CLSID_", -"constTypeArg : FLOAT32_ '(' float64 ')'", -"constTypeArg : FLOAT64_ '(' float64 ')'", -"constTypeArg : FLOAT32_ '(' int32 ')'", -"constTypeArg : FLOAT64_ '(' int64 ')'", -"constTypeArg : INT64_ '(' int64 ')'", -"constTypeArg : INT32_ '(' int32 ')'", -"constTypeArg : INT16_ '(' int32 ')'", -"constTypeArg : INT8_ '(' int32 ')'", -"constTypeArg : UNSIGNED_ INT64_ '(' int64 ')'", -"constTypeArg : UNSIGNED_ INT32_ '(' int32 ')'", -"constTypeArg : UNSIGNED_ INT16_ '(' int32 ')'", -"constTypeArg : UNSIGNED_ INT8_ '(' int32 ')'", -"constTypeArg : UINT64_ '(' int64 ')'", -"constTypeArg : UINT32_ '(' int32 ')'", -"constTypeArg : UINT16_ '(' int32 ')'", -"constTypeArg : UINT8_ '(' int32 ')'", -"constTypeArg : CHAR_ '(' int32 ')'", -"constTypeArg : BOOL_ '(' truefalse ')'", "type : CLASS_ className", "type : OBJECT_", "type : VALUE_ CLASS_ className", "type : VALUETYPE_ className", -"type : CONST_ constTypeArg", +"type : CONST_ fieldInit", "type : type '[' ']'", "type : type '[' bounds1 ']'", "type : type '&'", @@ -5695,11 +5665,11 @@ static void YYFreeState(struct yyparsestate *p) { #endif } -#line 2112 "asmparse.y" +#line 2073 "asmparse.y" #include "grammar_after.cpp" -#line 5703 "asmparse.cpp.tab.c" +#line 5673 "asmparse.cpp" #line 354 "btyaccpa.ske" /* @@ -6152,13 +6122,13 @@ case 3: if (!yytrial) #line 194 "asmparse.y" { PASM->EndClass(); } -#line 6156 "asmparse.cpp.tab.c" +#line 6126 "asmparse.cpp" break; case 4: if (!yytrial) #line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 6162 "asmparse.cpp.tab.c" +#line 6132 "asmparse.cpp" break; case 5: if (!yytrial) @@ -6167,31 +6137,31 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6171 "asmparse.cpp.tab.c" +#line 6141 "asmparse.cpp" break; case 12: if (!yytrial) #line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 6177 "asmparse.cpp.tab.c" +#line 6147 "asmparse.cpp" break; case 13: if (!yytrial) #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 6183 "asmparse.cpp.tab.c" +#line 6153 "asmparse.cpp" break; case 14: if (!yytrial) #line 208 "asmparse.y" { PASMM->EndComType(); } -#line 6189 "asmparse.cpp.tab.c" +#line 6159 "asmparse.cpp" break; case 15: if (!yytrial) #line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 6195 "asmparse.cpp.tab.c" +#line 6165 "asmparse.cpp" break; case 19: if (!yytrial) @@ -6206,13 +6176,13 @@ case 19: #pragma warning(pop) #endif } -#line 6210 "asmparse.cpp.tab.c" +#line 6180 "asmparse.cpp" break; case 20: if (!yytrial) #line 223 "asmparse.y" { PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6216 "asmparse.cpp.tab.c" +#line 6186 "asmparse.cpp" break; case 21: if (!yytrial) @@ -6220,7 +6190,7 @@ case 21: { PASM->m_dwFileAlignment = yyvsp[0].int32; if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6224 "asmparse.cpp.tab.c" +#line 6194 "asmparse.cpp" break; case 22: if (!yytrial) @@ -6228,44 +6198,44 @@ case 22: { PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6232 "asmparse.cpp.tab.c" +#line 6202 "asmparse.cpp" break; case 23: if (!yytrial) #line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6238 "asmparse.cpp.tab.c" +#line 6208 "asmparse.cpp" break; case 28: if (!yytrial) #line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 6244 "asmparse.cpp.tab.c" +#line 6214 "asmparse.cpp" break; case 31: if (!yytrial) #line 242 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6250 "asmparse.cpp.tab.c" +#line 6220 "asmparse.cpp" break; case 32: if (!yytrial) #line 243 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6256 "asmparse.cpp.tab.c" +#line 6226 "asmparse.cpp" break; case 33: if (!yytrial) #line 246 "asmparse.y" { LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6262 "asmparse.cpp.tab.c" +#line 6232 "asmparse.cpp" break; case 34: if (!yytrial) #line 247 "asmparse.y" { LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6269 "asmparse.cpp.tab.c" +#line 6239 "asmparse.cpp" break; case 35: if (!yytrial) @@ -6273,121 +6243,121 @@ case 35: { LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6277 "asmparse.cpp.tab.c" +#line 6247 "asmparse.cpp" break; case 36: if (!yytrial) #line 254 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6283 "asmparse.cpp.tab.c" +#line 6253 "asmparse.cpp" break; case 37: if (!yytrial) #line 255 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6289 "asmparse.cpp.tab.c" +#line 6259 "asmparse.cpp" break; case 38: if (!yytrial) #line 258 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6295 "asmparse.cpp.tab.c" +#line 6265 "asmparse.cpp" break; case 39: if (!yytrial) #line 259 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 6301 "asmparse.cpp.tab.c" +#line 6271 "asmparse.cpp" break; case 40: if (!yytrial) #line 260 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6307 "asmparse.cpp.tab.c" +#line 6277 "asmparse.cpp" break; case 41: if (!yytrial) #line 263 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 6313 "asmparse.cpp.tab.c" +#line 6283 "asmparse.cpp" break; case 42: if (!yytrial) #line 266 "asmparse.y" { yyval.int64 = yyvsp[0].int64; } -#line 6319 "asmparse.cpp.tab.c" +#line 6289 "asmparse.cpp" break; case 43: if (!yytrial) #line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6325 "asmparse.cpp.tab.c" +#line 6295 "asmparse.cpp" break; case 44: if (!yytrial) #line 270 "asmparse.y" { yyval.float64 = yyvsp[0].float64; } -#line 6331 "asmparse.cpp.tab.c" +#line 6301 "asmparse.cpp" break; case 45: if (!yytrial) #line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6337 "asmparse.cpp.tab.c" +#line 6307 "asmparse.cpp" break; case 46: if (!yytrial) #line 272 "asmparse.y" { yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6343 "asmparse.cpp.tab.c" +#line 6313 "asmparse.cpp" break; case 47: if (!yytrial) #line 276 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6349 "asmparse.cpp.tab.c" +#line 6319 "asmparse.cpp" break; case 48: if (!yytrial) #line 277 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6355 "asmparse.cpp.tab.c" +#line 6325 "asmparse.cpp" break; case 49: if (!yytrial) #line 278 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6361 "asmparse.cpp.tab.c" +#line 6331 "asmparse.cpp" break; case 50: if (!yytrial) #line 279 "asmparse.y" { yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6367 "asmparse.cpp.tab.c" +#line 6337 "asmparse.cpp" break; case 51: if (!yytrial) #line 280 "asmparse.y" { PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6373 "asmparse.cpp.tab.c" +#line 6343 "asmparse.cpp" break; case 52: if (!yytrial) #line 285 "asmparse.y" { DefineVar(yyvsp[0].string, NULL); } -#line 6379 "asmparse.cpp.tab.c" +#line 6349 "asmparse.cpp" break; case 53: if (!yytrial) #line 286 "asmparse.y" { DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6385 "asmparse.cpp.tab.c" +#line 6355 "asmparse.cpp" break; case 54: if (!yytrial) #line 287 "asmparse.y" { UndefVar(yyvsp[0].string); } -#line 6391 "asmparse.cpp.tab.c" +#line 6361 "asmparse.cpp" break; case 55: if (!yytrial) @@ -6395,7 +6365,7 @@ case 55: { SkipToken = !IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6399 "asmparse.cpp.tab.c" +#line 6369 "asmparse.cpp" break; case 56: if (!yytrial) @@ -6403,13 +6373,13 @@ case 56: { SkipToken = IsVarDefined(yyvsp[0].string); IfEndif++; } -#line 6407 "asmparse.cpp.tab.c" +#line 6377 "asmparse.cpp" break; case 57: if (!yytrial) #line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6413 "asmparse.cpp.tab.c" +#line 6383 "asmparse.cpp" break; case 58: if (!yytrial) @@ -6418,73 +6388,73 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6422 "asmparse.cpp.tab.c" +#line 6392 "asmparse.cpp" break; case 59: if (!yytrial) #line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 6428 "asmparse.cpp.tab.c" +#line 6398 "asmparse.cpp" break; case 60: if (!yytrial) #line 300 "asmparse.y" { } -#line 6434 "asmparse.cpp.tab.c" +#line 6404 "asmparse.cpp" break; case 61: if (!yytrial) #line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6440 "asmparse.cpp.tab.c" +#line 6410 "asmparse.cpp" break; case 62: if (!yytrial) #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6446 "asmparse.cpp.tab.c" +#line 6416 "asmparse.cpp" break; case 63: if (!yytrial) #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6452 "asmparse.cpp.tab.c" +#line 6422 "asmparse.cpp" break; case 64: if (!yytrial) #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6458 "asmparse.cpp.tab.c" +#line 6428 "asmparse.cpp" break; case 65: if (!yytrial) #line 310 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6464 "asmparse.cpp.tab.c" +#line 6434 "asmparse.cpp" break; case 66: if (!yytrial) #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6470 "asmparse.cpp.tab.c" +#line 6440 "asmparse.cpp" break; case 67: if (!yytrial) #line 313 "asmparse.y" { yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6476 "asmparse.cpp.tab.c" +#line 6446 "asmparse.cpp" break; case 68: if (!yytrial) #line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6482 "asmparse.cpp.tab.c" +#line 6452 "asmparse.cpp" break; case 69: if (!yytrial) #line 317 "asmparse.y" { yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6488 "asmparse.cpp.tab.c" +#line 6458 "asmparse.cpp" break; case 70: if (!yytrial) @@ -6492,25 +6462,25 @@ case 70: { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yyvsp[-4].token; yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6496 "asmparse.cpp.tab.c" +#line 6466 "asmparse.cpp" break; case 71: if (!yytrial) #line 326 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6502 "asmparse.cpp.tab.c" +#line 6472 "asmparse.cpp" break; case 72: if (!yytrial) #line 329 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6508 "asmparse.cpp.tab.c" +#line 6478 "asmparse.cpp" break; case 73: if (!yytrial) #line 330 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 6514 "asmparse.cpp.tab.c" +#line 6484 "asmparse.cpp" break; case 74: if (!yytrial) @@ -6519,32 +6489,32 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yyvsp[0].binstr); nCustomBlobNVPairs = 0; } -#line 6523 "asmparse.cpp.tab.c" +#line 6493 "asmparse.cpp" break; case 75: if (!yytrial) #line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6529 "asmparse.cpp.tab.c" +#line 6499 "asmparse.cpp" break; case 76: if (!yytrial) #line 341 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6536 "asmparse.cpp.tab.c" +#line 6506 "asmparse.cpp" break; case 77: if (!yytrial) #line 343 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6542 "asmparse.cpp.tab.c" +#line 6512 "asmparse.cpp" break; case 78: if (!yytrial) #line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6548 "asmparse.cpp.tab.c" +#line 6518 "asmparse.cpp" break; case 79: if (!yytrial) @@ -6554,25 +6524,25 @@ case 79: AppendStringWithLength(yyval.binstr,yyvsp[-2].string); AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); nCustomBlobNVPairs++; } -#line 6558 "asmparse.cpp.tab.c" +#line 6528 "asmparse.cpp" break; case 80: if (!yytrial) #line 353 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 6564 "asmparse.cpp.tab.c" +#line 6534 "asmparse.cpp" break; case 81: if (!yytrial) #line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6570 "asmparse.cpp.tab.c" +#line 6540 "asmparse.cpp" break; case 82: if (!yytrial) #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6576 "asmparse.cpp.tab.c" +#line 6546 "asmparse.cpp" break; case 83: if (!yytrial) @@ -6581,13 +6551,13 @@ case 83: PASM->DefineCV(yyvsp[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6585 "asmparse.cpp.tab.c" +#line 6555 "asmparse.cpp" break; case 84: if (!yytrial) #line 364 "asmparse.y" { PASM->DefineCV(yyvsp[0].cad); } -#line 6591 "asmparse.cpp.tab.c" +#line 6561 "asmparse.cpp" break; case 85: if (!yytrial) @@ -6598,57 +6568,57 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6602 "asmparse.cpp.tab.c" +#line 6572 "asmparse.cpp" break; case 86: if (!yytrial) #line 373 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6608 "asmparse.cpp.tab.c" +#line 6578 "asmparse.cpp" break; case 87: if (!yytrial) #line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6614 "asmparse.cpp.tab.c" +#line 6584 "asmparse.cpp" break; case 88: if (!yytrial) #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6620 "asmparse.cpp.tab.c" +#line 6590 "asmparse.cpp" break; case 89: if (!yytrial) #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6627 "asmparse.cpp.tab.c" +#line 6597 "asmparse.cpp" break; case 90: if (!yytrial) #line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6634 "asmparse.cpp.tab.c" +#line 6604 "asmparse.cpp" break; case 91: if (!yytrial) #line 380 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6640 "asmparse.cpp.tab.c" +#line 6610 "asmparse.cpp" break; case 92: if (!yytrial) #line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6646 "asmparse.cpp.tab.c" +#line 6616 "asmparse.cpp" break; case 93: if (!yytrial) #line 386 "asmparse.y" { PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6652 "asmparse.cpp.tab.c" +#line 6622 "asmparse.cpp" break; case 94: if (!yytrial) @@ -6657,74 +6627,74 @@ case 94: unsigned L = (unsigned)strlen(yyvsp[0].string); memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 6661 "asmparse.cpp.tab.c" +#line 6631 "asmparse.cpp" break; case 95: if (!yytrial) #line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6668 "asmparse.cpp.tab.c" +#line 6638 "asmparse.cpp" break; case 96: if (!yytrial) #line 398 "asmparse.y" { yyval.int32 = 0; } -#line 6674 "asmparse.cpp.tab.c" +#line 6644 "asmparse.cpp" break; case 97: if (!yytrial) #line 399 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6680 "asmparse.cpp.tab.c" +#line 6650 "asmparse.cpp" break; case 98: if (!yytrial) #line 400 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6686 "asmparse.cpp.tab.c" +#line 6656 "asmparse.cpp" break; case 99: if (!yytrial) #line 401 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6692 "asmparse.cpp.tab.c" +#line 6662 "asmparse.cpp" break; case 100: if (!yytrial) #line 402 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6698 "asmparse.cpp.tab.c" +#line 6668 "asmparse.cpp" break; case 101: if (!yytrial) #line 403 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6704 "asmparse.cpp.tab.c" +#line 6674 "asmparse.cpp" break; case 102: if (!yytrial) #line 406 "asmparse.y" { PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6710 "asmparse.cpp.tab.c" +#line 6680 "asmparse.cpp" break; case 103: if (!yytrial) #line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6716 "asmparse.cpp.tab.c" +#line 6686 "asmparse.cpp" break; case 104: if (!yytrial) #line 413 "asmparse.y" { PASM->StartNameSpace(yyvsp[0].string); } -#line 6722 "asmparse.cpp.tab.c" +#line 6692 "asmparse.cpp" break; case 105: if (!yytrial) #line 416 "asmparse.y" { newclass = TRUE; } -#line 6728 "asmparse.cpp.tab.c" +#line 6698 "asmparse.cpp" break; case 106: if (!yytrial) @@ -6734,355 +6704,355 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 6738 "asmparse.cpp.tab.c" +#line 6708 "asmparse.cpp" break; case 107: if (!yytrial) #line 425 "asmparse.y" { PASM->AddClass(); } -#line 6744 "asmparse.cpp.tab.c" +#line 6714 "asmparse.cpp" break; case 108: if (!yytrial) #line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6750 "asmparse.cpp.tab.c" +#line 6720 "asmparse.cpp" break; case 109: if (!yytrial) #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6756 "asmparse.cpp.tab.c" +#line 6726 "asmparse.cpp" break; case 110: if (!yytrial) #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6762 "asmparse.cpp.tab.c" +#line 6732 "asmparse.cpp" break; case 111: if (!yytrial) #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6768 "asmparse.cpp.tab.c" +#line 6738 "asmparse.cpp" break; case 112: if (!yytrial) #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6774 "asmparse.cpp.tab.c" +#line 6744 "asmparse.cpp" break; case 113: if (!yytrial) #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6780 "asmparse.cpp.tab.c" +#line 6750 "asmparse.cpp" break; case 114: if (!yytrial) #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6786 "asmparse.cpp.tab.c" +#line 6756 "asmparse.cpp" break; case 115: if (!yytrial) #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6792 "asmparse.cpp.tab.c" +#line 6762 "asmparse.cpp" break; case 116: if (!yytrial) #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6798 "asmparse.cpp.tab.c" +#line 6768 "asmparse.cpp" break; case 117: if (!yytrial) #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6804 "asmparse.cpp.tab.c" +#line 6774 "asmparse.cpp" break; case 118: if (!yytrial) #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6810 "asmparse.cpp.tab.c" +#line 6780 "asmparse.cpp" break; case 119: if (!yytrial) #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6816 "asmparse.cpp.tab.c" +#line 6786 "asmparse.cpp" break; case 120: if (!yytrial) #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6822 "asmparse.cpp.tab.c" +#line 6792 "asmparse.cpp" break; case 121: if (!yytrial) #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6828 "asmparse.cpp.tab.c" +#line 6798 "asmparse.cpp" break; case 122: if (!yytrial) #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6834 "asmparse.cpp.tab.c" +#line 6804 "asmparse.cpp" break; case 123: if (!yytrial) #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6840 "asmparse.cpp.tab.c" +#line 6810 "asmparse.cpp" break; case 124: if (!yytrial) #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6846 "asmparse.cpp.tab.c" +#line 6816 "asmparse.cpp" break; case 125: if (!yytrial) #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6852 "asmparse.cpp.tab.c" +#line 6822 "asmparse.cpp" break; case 126: if (!yytrial) #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6858 "asmparse.cpp.tab.c" +#line 6828 "asmparse.cpp" break; case 127: if (!yytrial) #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6864 "asmparse.cpp.tab.c" +#line 6834 "asmparse.cpp" break; case 128: if (!yytrial) #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6870 "asmparse.cpp.tab.c" +#line 6840 "asmparse.cpp" break; case 129: if (!yytrial) #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 6876 "asmparse.cpp.tab.c" +#line 6846 "asmparse.cpp" break; case 130: if (!yytrial) #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 6882 "asmparse.cpp.tab.c" +#line 6852 "asmparse.cpp" break; case 131: if (!yytrial) #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 6888 "asmparse.cpp.tab.c" +#line 6858 "asmparse.cpp" break; case 132: if (!yytrial) #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 6894 "asmparse.cpp.tab.c" +#line 6864 "asmparse.cpp" break; case 133: if (!yytrial) #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 6900 "asmparse.cpp.tab.c" +#line 6870 "asmparse.cpp" break; case 134: if (!yytrial) #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 6906 "asmparse.cpp.tab.c" +#line 6876 "asmparse.cpp" break; case 136: if (!yytrial) #line 458 "asmparse.y" { PASM->m_crExtends = yyvsp[0].token; } -#line 6912 "asmparse.cpp.tab.c" +#line 6882 "asmparse.cpp" break; case 141: if (!yytrial) #line 469 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6918 "asmparse.cpp.tab.c" +#line 6888 "asmparse.cpp" break; case 142: if (!yytrial) #line 470 "asmparse.y" { PASM->AddToImplList(yyvsp[0].token); } -#line 6924 "asmparse.cpp.tab.c" +#line 6894 "asmparse.cpp" break; case 143: if (!yytrial) #line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 6930 "asmparse.cpp.tab.c" +#line 6900 "asmparse.cpp" break; case 144: if (!yytrial) #line 475 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 6936 "asmparse.cpp.tab.c" +#line 6906 "asmparse.cpp" break; case 145: if (!yytrial) #line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6942 "asmparse.cpp.tab.c" +#line 6912 "asmparse.cpp" break; case 146: if (!yytrial) #line 479 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6948 "asmparse.cpp.tab.c" +#line 6918 "asmparse.cpp" break; case 147: if (!yytrial) #line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 6954 "asmparse.cpp.tab.c" +#line 6924 "asmparse.cpp" break; case 148: if (!yytrial) #line 483 "asmparse.y" { yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 6960 "asmparse.cpp.tab.c" +#line 6930 "asmparse.cpp" break; case 149: if (!yytrial) #line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 6966 "asmparse.cpp.tab.c" +#line 6936 "asmparse.cpp" break; case 150: if (!yytrial) #line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 6972 "asmparse.cpp.tab.c" +#line 6942 "asmparse.cpp" break; case 151: if (!yytrial) #line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 6978 "asmparse.cpp.tab.c" +#line 6948 "asmparse.cpp" break; case 152: if (!yytrial) #line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 6984 "asmparse.cpp.tab.c" +#line 6954 "asmparse.cpp" break; case 153: if (!yytrial) #line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 6990 "asmparse.cpp.tab.c" +#line 6960 "asmparse.cpp" break; case 154: if (!yytrial) #line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 6996 "asmparse.cpp.tab.c" +#line 6966 "asmparse.cpp" break; case 155: if (!yytrial) #line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7002 "asmparse.cpp.tab.c" +#line 6972 "asmparse.cpp" break; case 156: if (!yytrial) #line 495 "asmparse.y" { yyval.int32 = 0; } -#line 7008 "asmparse.cpp.tab.c" +#line 6978 "asmparse.cpp" break; case 157: if (!yytrial) #line 496 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7014 "asmparse.cpp.tab.c" +#line 6984 "asmparse.cpp" break; case 158: if (!yytrial) #line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 7020 "asmparse.cpp.tab.c" +#line 6990 "asmparse.cpp" break; case 159: if (!yytrial) #line 502 "asmparse.y" { yyval.int32 = 0; } -#line 7026 "asmparse.cpp.tab.c" +#line 6996 "asmparse.cpp" break; case 160: if (!yytrial) #line 503 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7032 "asmparse.cpp.tab.c" +#line 7002 "asmparse.cpp" break; case 161: if (!yytrial) #line 506 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7038 "asmparse.cpp.tab.c" +#line 7008 "asmparse.cpp" break; case 162: if (!yytrial) #line 507 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7044 "asmparse.cpp.tab.c" +#line 7014 "asmparse.cpp" break; case 163: if (!yytrial) #line 508 "asmparse.y" {yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7050 "asmparse.cpp.tab.c" +#line 7020 "asmparse.cpp" break; case 164: if (!yytrial) #line 511 "asmparse.y" { yyval.typarlist = NULL; } -#line 7056 "asmparse.cpp.tab.c" +#line 7026 "asmparse.cpp" break; case 165: if (!yytrial) #line 512 "asmparse.y" { yyval.typarlist = yyvsp[0].typarlist; } -#line 7062 "asmparse.cpp.tab.c" +#line 7032 "asmparse.cpp" break; case 166: if (!yytrial) #line 515 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7068 "asmparse.cpp.tab.c" +#line 7038 "asmparse.cpp" break; case 167: if (!yytrial) #line 518 "asmparse.y" { yyval.int32= 0; } -#line 7074 "asmparse.cpp.tab.c" +#line 7044 "asmparse.cpp" break; case 168: if (!yytrial) #line 519 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7080 "asmparse.cpp.tab.c" +#line 7050 "asmparse.cpp" break; case 169: if (!yytrial) #line 522 "asmparse.y" { yyval.int32 = yyvsp[-2].int32; } -#line 7086 "asmparse.cpp.tab.c" +#line 7056 "asmparse.cpp" break; case 170: if (!yytrial) @@ -7091,43 +7061,43 @@ case 170: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7095 "asmparse.cpp.tab.c" +#line 7065 "asmparse.cpp" break; case 171: if (!yytrial) #line 530 "asmparse.y" { PASM->EndClass(); } -#line 7101 "asmparse.cpp.tab.c" +#line 7071 "asmparse.cpp" break; case 172: if (!yytrial) #line 531 "asmparse.y" { PASM->EndEvent(); } -#line 7107 "asmparse.cpp.tab.c" +#line 7077 "asmparse.cpp" break; case 173: if (!yytrial) #line 532 "asmparse.y" { PASM->EndProp(); } -#line 7113 "asmparse.cpp.tab.c" +#line 7083 "asmparse.cpp" break; case 179: if (!yytrial) #line 538 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7119 "asmparse.cpp.tab.c" +#line 7089 "asmparse.cpp" break; case 180: if (!yytrial) #line 539 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7125 "asmparse.cpp.tab.c" +#line 7095 "asmparse.cpp" break; case 181: if (!yytrial) #line 540 "asmparse.y" { PASMM->EndComType(); } -#line 7131 "asmparse.cpp.tab.c" +#line 7101 "asmparse.cpp" break; case 182: if (!yytrial) @@ -7137,7 +7107,7 @@ case 182: PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); PASM->ResetArgNameList(); } -#line 7141 "asmparse.cpp.tab.c" +#line 7111 "asmparse.cpp" break; case 183: if (!yytrial) @@ -7150,7 +7120,7 @@ case 183: parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); PASM->ResetArgNameList(); } -#line 7154 "asmparse.cpp.tab.c" +#line 7124 "asmparse.cpp" break; case 186: if (!yytrial) @@ -7160,7 +7130,7 @@ case 186: else PASM->report->error("Type parameter index out of range\n"); } -#line 7164 "asmparse.cpp.tab.c" +#line 7134 "asmparse.cpp" break; case 187: if (!yytrial) @@ -7171,19 +7141,19 @@ case 187: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 7175 "asmparse.cpp.tab.c" +#line 7145 "asmparse.cpp" break; case 188: if (!yytrial) #line 569 "asmparse.y" { PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7181 "asmparse.cpp.tab.c" +#line 7151 "asmparse.cpp" break; case 189: if (!yytrial) #line 570 "asmparse.y" { PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7187 "asmparse.cpp.tab.c" +#line 7157 "asmparse.cpp" break; case 190: if (!yytrial) @@ -7192,146 +7162,146 @@ case 190: if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 7196 "asmparse.cpp.tab.c" +#line 7166 "asmparse.cpp" break; case 191: if (!yytrial) #line 579 "asmparse.y" { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7203 "asmparse.cpp.tab.c" +#line 7173 "asmparse.cpp" break; case 192: if (!yytrial) #line 583 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7209 "asmparse.cpp.tab.c" +#line 7179 "asmparse.cpp" break; case 193: if (!yytrial) #line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7215 "asmparse.cpp.tab.c" +#line 7185 "asmparse.cpp" break; case 194: if (!yytrial) #line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7221 "asmparse.cpp.tab.c" +#line 7191 "asmparse.cpp" break; case 195: if (!yytrial) #line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7227 "asmparse.cpp.tab.c" +#line 7197 "asmparse.cpp" break; case 196: if (!yytrial) #line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7233 "asmparse.cpp.tab.c" +#line 7203 "asmparse.cpp" break; case 197: if (!yytrial) #line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7239 "asmparse.cpp.tab.c" +#line 7209 "asmparse.cpp" break; case 198: if (!yytrial) #line 589 "asmparse.y" { yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7245 "asmparse.cpp.tab.c" +#line 7215 "asmparse.cpp" break; case 199: if (!yytrial) #line 590 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7251 "asmparse.cpp.tab.c" +#line 7221 "asmparse.cpp" break; case 200: if (!yytrial) #line 603 "asmparse.y" { PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7257 "asmparse.cpp.tab.c" +#line 7227 "asmparse.cpp" break; case 201: if (!yytrial) #line 604 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7263 "asmparse.cpp.tab.c" +#line 7233 "asmparse.cpp" break; case 202: if (!yytrial) #line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7269 "asmparse.cpp.tab.c" +#line 7239 "asmparse.cpp" break; case 203: if (!yytrial) #line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7275 "asmparse.cpp.tab.c" +#line 7245 "asmparse.cpp" break; case 204: if (!yytrial) #line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7281 "asmparse.cpp.tab.c" +#line 7251 "asmparse.cpp" break; case 205: if (!yytrial) #line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7287 "asmparse.cpp.tab.c" +#line 7257 "asmparse.cpp" break; case 206: if (!yytrial) #line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7293 "asmparse.cpp.tab.c" +#line 7263 "asmparse.cpp" break; case 207: if (!yytrial) #line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7299 "asmparse.cpp.tab.c" +#line 7269 "asmparse.cpp" break; case 208: if (!yytrial) #line 613 "asmparse.y" { yyval.string = 0; } -#line 7305 "asmparse.cpp.tab.c" +#line 7275 "asmparse.cpp" break; case 209: if (!yytrial) #line 614 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7311 "asmparse.cpp.tab.c" +#line 7281 "asmparse.cpp" break; case 210: if (!yytrial) #line 617 "asmparse.y" { yyval.binstr = NULL; } -#line 7317 "asmparse.cpp.tab.c" +#line 7287 "asmparse.cpp" break; case 211: if (!yytrial) #line 618 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7323 "asmparse.cpp.tab.c" +#line 7293 "asmparse.cpp" break; case 212: if (!yytrial) #line 621 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 7329 "asmparse.cpp.tab.c" +#line 7299 "asmparse.cpp" break; case 213: if (!yytrial) #line 622 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7335 "asmparse.cpp.tab.c" +#line 7305 "asmparse.cpp" break; case 214: if (!yytrial) @@ -7352,7 +7322,7 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7356 "asmparse.cpp.tab.c" +#line 7326 "asmparse.cpp" break; case 215: if (!yytrial) @@ -7362,7 +7332,7 @@ case 215: yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7366 "asmparse.cpp.tab.c" +#line 7336 "asmparse.cpp" break; case 216: if (!yytrial) @@ -7382,7 +7352,7 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); } } -#line 7386 "asmparse.cpp.tab.c" +#line 7356 "asmparse.cpp" break; case 217: if (!yytrial) @@ -7391,103 +7361,103 @@ case 217: if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); } -#line 7395 "asmparse.cpp.tab.c" +#line 7365 "asmparse.cpp" break; case 218: if (!yytrial) #line 670 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 7401 "asmparse.cpp.tab.c" +#line 7371 "asmparse.cpp" break; case 219: if (!yytrial) #line 671 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7407 "asmparse.cpp.tab.c" +#line 7377 "asmparse.cpp" break; case 220: if (!yytrial) #line 672 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7413 "asmparse.cpp.tab.c" +#line 7383 "asmparse.cpp" break; case 221: if (!yytrial) #line 675 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7419 "asmparse.cpp.tab.c" +#line 7389 "asmparse.cpp" break; case 222: if (!yytrial) #line 676 "asmparse.y" { yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7425 "asmparse.cpp.tab.c" +#line 7395 "asmparse.cpp" break; case 223: if (!yytrial) #line 677 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 7431 "asmparse.cpp.tab.c" +#line 7401 "asmparse.cpp" break; case 224: if (!yytrial) #line 678 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 7437 "asmparse.cpp.tab.c" +#line 7407 "asmparse.cpp" break; case 225: if (!yytrial) #line 681 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7443 "asmparse.cpp.tab.c" +#line 7413 "asmparse.cpp" break; case 226: if (!yytrial) #line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7449 "asmparse.cpp.tab.c" +#line 7419 "asmparse.cpp" break; case 227: if (!yytrial) #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7455 "asmparse.cpp.tab.c" +#line 7425 "asmparse.cpp" break; case 228: if (!yytrial) #line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7461 "asmparse.cpp.tab.c" +#line 7431 "asmparse.cpp" break; case 229: if (!yytrial) #line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7467 "asmparse.cpp.tab.c" +#line 7437 "asmparse.cpp" break; case 230: if (!yytrial) #line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7473 "asmparse.cpp.tab.c" +#line 7443 "asmparse.cpp" break; case 231: if (!yytrial) #line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7479 "asmparse.cpp.tab.c" +#line 7449 "asmparse.cpp" break; case 232: if (!yytrial) #line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7485 "asmparse.cpp.tab.c" +#line 7455 "asmparse.cpp" break; case 233: if (!yytrial) #line 691 "asmparse.y" { yyval.token = yyvsp[-1].int32; } -#line 7491 "asmparse.cpp.tab.c" +#line 7461 "asmparse.cpp" break; case 234: if (!yytrial) @@ -7497,7 +7467,7 @@ case 234: PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7501 "asmparse.cpp.tab.c" +#line 7471 "asmparse.cpp" break; case 235: if (!yytrial) @@ -7505,7 +7475,7 @@ case 235: { yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7509 "asmparse.cpp.tab.c" +#line 7479 "asmparse.cpp" break; case 236: if (!yytrial) @@ -7513,82 +7483,82 @@ case 236: { yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7517 "asmparse.cpp.tab.c" +#line 7487 "asmparse.cpp" break; case 237: if (!yytrial) #line 707 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7524 "asmparse.cpp.tab.c" +#line 7494 "asmparse.cpp" break; case 238: if (!yytrial) #line 709 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7531 "asmparse.cpp.tab.c" +#line 7501 "asmparse.cpp" break; case 239: if (!yytrial) #line 711 "asmparse.y" { yyval.token = yyvsp[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7538 "asmparse.cpp.tab.c" +#line 7508 "asmparse.cpp" break; case 240: if (!yytrial) #line 716 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7544 "asmparse.cpp.tab.c" +#line 7514 "asmparse.cpp" break; case 241: if (!yytrial) #line 717 "asmparse.y" { PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7550 "asmparse.cpp.tab.c" +#line 7520 "asmparse.cpp" break; case 242: if (!yytrial) #line 721 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 7556 "asmparse.cpp.tab.c" +#line 7526 "asmparse.cpp" break; case 243: if (!yytrial) #line 722 "asmparse.y" { yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7562 "asmparse.cpp.tab.c" +#line 7532 "asmparse.cpp" break; case 244: if (!yytrial) #line 723 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7568 "asmparse.cpp.tab.c" +#line 7538 "asmparse.cpp" break; case 247: if (!yytrial) #line 730 "asmparse.y" { PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7574 "asmparse.cpp.tab.c" +#line 7544 "asmparse.cpp" break; case 248: if (!yytrial) #line 731 "asmparse.y" { PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7580 "asmparse.cpp.tab.c" +#line 7550 "asmparse.cpp" break; case 249: if (!yytrial) #line 732 "asmparse.y" { PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7586 "asmparse.cpp.tab.c" +#line 7556 "asmparse.cpp" break; case 250: if (!yytrial) #line 733 "asmparse.y" { PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7592 "asmparse.cpp.tab.c" +#line 7562 "asmparse.cpp" break; case 255: if (!yytrial) @@ -7596,43 +7566,43 @@ case 255: { PASM->ResetProp(yyvsp[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7600 "asmparse.cpp.tab.c" +#line 7570 "asmparse.cpp" break; case 256: if (!yytrial) #line 747 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 7606 "asmparse.cpp.tab.c" +#line 7576 "asmparse.cpp" break; case 257: if (!yytrial) #line 748 "asmparse.y" { yyval.propAttr = yyvsp[-1].propAttr; } -#line 7612 "asmparse.cpp.tab.c" +#line 7582 "asmparse.cpp" break; case 258: if (!yytrial) #line 749 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7618 "asmparse.cpp.tab.c" +#line 7588 "asmparse.cpp" break; case 261: if (!yytrial) #line 757 "asmparse.y" { PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7624 "asmparse.cpp.tab.c" +#line 7594 "asmparse.cpp" break; case 262: if (!yytrial) #line 758 "asmparse.y" { PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7630 "asmparse.cpp.tab.c" +#line 7600 "asmparse.cpp" break; case 263: if (!yytrial) #line 759 "asmparse.y" { PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7636 "asmparse.cpp.tab.c" +#line 7606 "asmparse.cpp" break; case 268: if (!yytrial) @@ -7641,37 +7611,37 @@ case 268: uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 7645 "asmparse.cpp.tab.c" +#line 7615 "asmparse.cpp" break; case 269: if (!yytrial) #line 773 "asmparse.y" { yyval.binstr = NULL; } -#line 7651 "asmparse.cpp.tab.c" +#line 7621 "asmparse.cpp" break; case 270: if (!yytrial) #line 774 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7657 "asmparse.cpp.tab.c" +#line 7627 "asmparse.cpp" break; case 271: if (!yytrial) #line 777 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 7663 "asmparse.cpp.tab.c" +#line 7633 "asmparse.cpp" break; case 272: if (!yytrial) #line 778 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 7669 "asmparse.cpp.tab.c" +#line 7639 "asmparse.cpp" break; case 273: if (!yytrial) #line 781 "asmparse.y" { bParsingByteArray = TRUE; } -#line 7675 "asmparse.cpp.tab.c" +#line 7645 "asmparse.cpp" break; case 274: if (!yytrial) @@ -7689,420 +7659,420 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7693 "asmparse.cpp.tab.c" +#line 7663 "asmparse.cpp" break; case 275: if (!yytrial) #line 800 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 7699 "asmparse.cpp.tab.c" +#line 7669 "asmparse.cpp" break; case 276: if (!yytrial) #line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7705 "asmparse.cpp.tab.c" +#line 7675 "asmparse.cpp" break; case 277: if (!yytrial) #line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7711 "asmparse.cpp.tab.c" +#line 7681 "asmparse.cpp" break; case 278: if (!yytrial) #line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7717 "asmparse.cpp.tab.c" +#line 7687 "asmparse.cpp" break; case 279: if (!yytrial) #line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7723 "asmparse.cpp.tab.c" +#line 7693 "asmparse.cpp" break; case 280: if (!yytrial) #line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7729 "asmparse.cpp.tab.c" +#line 7699 "asmparse.cpp" break; case 281: if (!yytrial) #line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7735 "asmparse.cpp.tab.c" +#line 7705 "asmparse.cpp" break; case 282: if (!yytrial) #line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7741 "asmparse.cpp.tab.c" +#line 7711 "asmparse.cpp" break; case 283: if (!yytrial) #line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7747 "asmparse.cpp.tab.c" +#line 7717 "asmparse.cpp" break; case 284: if (!yytrial) #line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7753 "asmparse.cpp.tab.c" +#line 7723 "asmparse.cpp" break; case 285: if (!yytrial) #line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7759 "asmparse.cpp.tab.c" +#line 7729 "asmparse.cpp" break; case 286: if (!yytrial) #line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7765 "asmparse.cpp.tab.c" +#line 7735 "asmparse.cpp" break; case 287: if (!yytrial) #line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7771 "asmparse.cpp.tab.c" +#line 7741 "asmparse.cpp" break; case 288: if (!yytrial) #line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7777 "asmparse.cpp.tab.c" +#line 7747 "asmparse.cpp" break; case 289: if (!yytrial) #line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7783 "asmparse.cpp.tab.c" +#line 7753 "asmparse.cpp" break; case 290: if (!yytrial) #line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7789 "asmparse.cpp.tab.c" +#line 7759 "asmparse.cpp" break; case 291: if (!yytrial) #line 816 "asmparse.y" { yyval.methAttr = yyvsp[-1].methAttr; } -#line 7795 "asmparse.cpp.tab.c" +#line 7765 "asmparse.cpp" break; case 292: if (!yytrial) #line 817 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7801 "asmparse.cpp.tab.c" +#line 7771 "asmparse.cpp" break; case 293: if (!yytrial) #line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7807 "asmparse.cpp.tab.c" +#line 7777 "asmparse.cpp" break; case 294: if (!yytrial) #line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7813 "asmparse.cpp.tab.c" +#line 7783 "asmparse.cpp" break; case 295: if (!yytrial) #line 821 "asmparse.y" { PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7820 "asmparse.cpp.tab.c" +#line 7790 "asmparse.cpp" break; case 296: if (!yytrial) #line 824 "asmparse.y" { PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7827 "asmparse.cpp.tab.c" +#line 7797 "asmparse.cpp" break; case 297: if (!yytrial) #line 827 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7834 "asmparse.cpp.tab.c" +#line 7804 "asmparse.cpp" break; case 298: if (!yytrial) #line 831 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7840 "asmparse.cpp.tab.c" +#line 7810 "asmparse.cpp" break; case 299: if (!yytrial) #line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7846 "asmparse.cpp.tab.c" +#line 7816 "asmparse.cpp" break; case 300: if (!yytrial) #line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7852 "asmparse.cpp.tab.c" +#line 7822 "asmparse.cpp" break; case 301: if (!yytrial) #line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7858 "asmparse.cpp.tab.c" +#line 7828 "asmparse.cpp" break; case 302: if (!yytrial) #line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7864 "asmparse.cpp.tab.c" +#line 7834 "asmparse.cpp" break; case 303: if (!yytrial) #line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7870 "asmparse.cpp.tab.c" +#line 7840 "asmparse.cpp" break; case 304: if (!yytrial) #line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 7876 "asmparse.cpp.tab.c" +#line 7846 "asmparse.cpp" break; case 305: if (!yytrial) #line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 7882 "asmparse.cpp.tab.c" +#line 7852 "asmparse.cpp" break; case 306: if (!yytrial) #line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 7888 "asmparse.cpp.tab.c" +#line 7858 "asmparse.cpp" break; case 307: if (!yytrial) #line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 7894 "asmparse.cpp.tab.c" +#line 7864 "asmparse.cpp" break; case 308: if (!yytrial) #line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 7900 "asmparse.cpp.tab.c" +#line 7870 "asmparse.cpp" break; case 309: if (!yytrial) #line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 7906 "asmparse.cpp.tab.c" +#line 7876 "asmparse.cpp" break; case 310: if (!yytrial) #line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 7912 "asmparse.cpp.tab.c" +#line 7882 "asmparse.cpp" break; case 311: if (!yytrial) #line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 7918 "asmparse.cpp.tab.c" +#line 7888 "asmparse.cpp" break; case 312: if (!yytrial) #line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 7924 "asmparse.cpp.tab.c" +#line 7894 "asmparse.cpp" break; case 313: if (!yytrial) #line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 7930 "asmparse.cpp.tab.c" +#line 7900 "asmparse.cpp" break; case 314: if (!yytrial) #line 849 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 7936 "asmparse.cpp.tab.c" +#line 7906 "asmparse.cpp" break; case 315: if (!yytrial) #line 850 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 7942 "asmparse.cpp.tab.c" +#line 7912 "asmparse.cpp" break; case 316: if (!yytrial) #line 851 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 7948 "asmparse.cpp.tab.c" +#line 7918 "asmparse.cpp" break; case 317: if (!yytrial) #line 854 "asmparse.y" { yyval.int32 = 0; } -#line 7954 "asmparse.cpp.tab.c" +#line 7924 "asmparse.cpp" break; case 318: if (!yytrial) #line 855 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 7960 "asmparse.cpp.tab.c" +#line 7930 "asmparse.cpp" break; case 319: if (!yytrial) #line 856 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 7966 "asmparse.cpp.tab.c" +#line 7936 "asmparse.cpp" break; case 320: if (!yytrial) #line 857 "asmparse.y" { yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 7972 "asmparse.cpp.tab.c" +#line 7942 "asmparse.cpp" break; case 321: if (!yytrial) #line 858 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 + 1; } -#line 7978 "asmparse.cpp.tab.c" +#line 7948 "asmparse.cpp" break; case 322: if (!yytrial) #line 861 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 7984 "asmparse.cpp.tab.c" +#line 7954 "asmparse.cpp" break; case 323: if (!yytrial) #line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 7990 "asmparse.cpp.tab.c" +#line 7960 "asmparse.cpp" break; case 324: if (!yytrial) #line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 7996 "asmparse.cpp.tab.c" +#line 7966 "asmparse.cpp" break; case 325: if (!yytrial) #line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 8002 "asmparse.cpp.tab.c" +#line 7972 "asmparse.cpp" break; case 326: if (!yytrial) #line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 8008 "asmparse.cpp.tab.c" +#line 7978 "asmparse.cpp" break; case 327: if (!yytrial) #line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 8014 "asmparse.cpp.tab.c" +#line 7984 "asmparse.cpp" break; case 328: if (!yytrial) #line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 8020 "asmparse.cpp.tab.c" +#line 7990 "asmparse.cpp" break; case 329: if (!yytrial) #line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 8026 "asmparse.cpp.tab.c" +#line 7996 "asmparse.cpp" break; case 330: if (!yytrial) #line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8032 "asmparse.cpp.tab.c" +#line 8002 "asmparse.cpp" break; case 331: if (!yytrial) #line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8038 "asmparse.cpp.tab.c" +#line 8008 "asmparse.cpp" break; case 332: if (!yytrial) #line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8044 "asmparse.cpp.tab.c" +#line 8014 "asmparse.cpp" break; case 333: if (!yytrial) #line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8050 "asmparse.cpp.tab.c" +#line 8020 "asmparse.cpp" break; case 334: if (!yytrial) #line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8056 "asmparse.cpp.tab.c" +#line 8026 "asmparse.cpp" break; case 335: if (!yytrial) #line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8062 "asmparse.cpp.tab.c" +#line 8032 "asmparse.cpp" break; case 336: if (!yytrial) #line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8068 "asmparse.cpp.tab.c" +#line 8038 "asmparse.cpp" break; case 337: if (!yytrial) #line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8074 "asmparse.cpp.tab.c" +#line 8044 "asmparse.cpp" break; case 338: if (!yytrial) #line 879 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8081 "asmparse.cpp.tab.c" +#line 8051 "asmparse.cpp" break; case 341: if (!yytrial) #line 887 "asmparse.y" { PASM->EmitByte(yyvsp[0].int32); } -#line 8087 "asmparse.cpp.tab.c" +#line 8057 "asmparse.cpp" break; case 342: if (!yytrial) #line 888 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8093 "asmparse.cpp.tab.c" +#line 8063 "asmparse.cpp" break; case 343: if (!yytrial) #line 889 "asmparse.y" { PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8099 "asmparse.cpp.tab.c" +#line 8069 "asmparse.cpp" break; case 344: if (!yytrial) #line 890 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8106 "asmparse.cpp.tab.c" +#line 8076 "asmparse.cpp" break; case 345: if (!yytrial) @@ -8110,25 +8080,25 @@ case 345: { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); } -#line 8114 "asmparse.cpp.tab.c" +#line 8084 "asmparse.cpp" break; case 346: if (!yytrial) #line 895 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 8120 "asmparse.cpp.tab.c" +#line 8090 "asmparse.cpp" break; case 347: if (!yytrial) #line 896 "asmparse.y" { PASM->EmitZeroInit(); } -#line 8126 "asmparse.cpp.tab.c" +#line 8096 "asmparse.cpp" break; case 350: if (!yytrial) #line 899 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8132 "asmparse.cpp.tab.c" +#line 8102 "asmparse.cpp" break; case 356: if (!yytrial) @@ -8143,7 +8113,7 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8147 "asmparse.cpp.tab.c" +#line 8117 "asmparse.cpp" break; case 357: if (!yytrial) @@ -8158,20 +8128,20 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8162 "asmparse.cpp.tab.c" +#line 8132 "asmparse.cpp" break; case 358: if (!yytrial) #line 925 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8169 "asmparse.cpp.tab.c" +#line 8139 "asmparse.cpp" break; case 359: if (!yytrial) #line 928 "asmparse.y" { PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8175 "asmparse.cpp.tab.c" +#line 8145 "asmparse.cpp" break; case 360: if (!yytrial) @@ -8182,7 +8152,7 @@ case 360: ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8186 "asmparse.cpp.tab.c" +#line 8156 "asmparse.cpp" break; case 362: if (!yytrial) @@ -8192,7 +8162,7 @@ case 362: else PASM->report->error("Type parameter index out of range\n"); } -#line 8196 "asmparse.cpp.tab.c" +#line 8166 "asmparse.cpp" break; case 363: if (!yytrial) @@ -8203,19 +8173,19 @@ case 363: else PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); } -#line 8207 "asmparse.cpp.tab.c" +#line 8177 "asmparse.cpp" break; case 364: if (!yytrial) #line 949 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8213 "asmparse.cpp.tab.c" +#line 8183 "asmparse.cpp" break; case 365: if (!yytrial) #line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8219 "asmparse.cpp.tab.c" +#line 8189 "asmparse.cpp" break; case 366: if (!yytrial) @@ -8238,96 +8208,96 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 8242 "asmparse.cpp.tab.c" +#line 8212 "asmparse.cpp" break; case 367: if (!yytrial) #line 973 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 8248 "asmparse.cpp.tab.c" +#line 8218 "asmparse.cpp" break; case 368: if (!yytrial) #line 976 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 8254 "asmparse.cpp.tab.c" +#line 8224 "asmparse.cpp" break; case 372: if (!yytrial) #line 987 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8260 "asmparse.cpp.tab.c" +#line 8230 "asmparse.cpp" break; case 373: if (!yytrial) #line 988 "asmparse.y" { PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8266 "asmparse.cpp.tab.c" +#line 8236 "asmparse.cpp" break; case 374: if (!yytrial) #line 989 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8273 "asmparse.cpp.tab.c" +#line 8243 "asmparse.cpp" break; case 375: if (!yytrial) #line 993 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8280 "asmparse.cpp.tab.c" +#line 8250 "asmparse.cpp" break; case 376: if (!yytrial) #line 998 "asmparse.y" { PASM->EmitTry(); } -#line 8286 "asmparse.cpp.tab.c" +#line 8256 "asmparse.cpp" break; case 377: if (!yytrial) #line 999 "asmparse.y" { PASM->EmitTry(); } -#line 8292 "asmparse.cpp.tab.c" +#line 8262 "asmparse.cpp" break; case 378: if (!yytrial) #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 8298 "asmparse.cpp.tab.c" +#line 8268 "asmparse.cpp" break; case 379: if (!yytrial) #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 8304 "asmparse.cpp.tab.c" +#line 8274 "asmparse.cpp" break; case 380: if (!yytrial) #line 1005 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8310 "asmparse.cpp.tab.c" +#line 8280 "asmparse.cpp" break; case 381: if (!yytrial) #line 1006 "asmparse.y" { PASM->SetFilterLabel(yyvsp[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8317 "asmparse.cpp.tab.c" +#line 8287 "asmparse.cpp" break; case 382: if (!yytrial) #line 1008 "asmparse.y" { PASM->m_SEHD->sehFilter = yyvsp[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8324 "asmparse.cpp.tab.c" +#line 8294 "asmparse.cpp" break; case 383: if (!yytrial) #line 1012 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8331 "asmparse.cpp.tab.c" +#line 8301 "asmparse.cpp" break; case 384: if (!yytrial) @@ -8335,70 +8305,70 @@ case 384: { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yyvsp[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8339 "asmparse.cpp.tab.c" +#line 8309 "asmparse.cpp" break; case 385: if (!yytrial) #line 1021 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8346 "asmparse.cpp.tab.c" +#line 8316 "asmparse.cpp" break; case 386: if (!yytrial) #line 1025 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8353 "asmparse.cpp.tab.c" +#line 8323 "asmparse.cpp" break; case 387: if (!yytrial) #line 1029 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8359 "asmparse.cpp.tab.c" +#line 8329 "asmparse.cpp" break; case 388: if (!yytrial) #line 1030 "asmparse.y" { PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8365 "asmparse.cpp.tab.c" +#line 8335 "asmparse.cpp" break; case 389: if (!yytrial) #line 1031 "asmparse.y" { PASM->m_SEHD->sehHandler = yyvsp[-2].int32; PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8372 "asmparse.cpp.tab.c" +#line 8342 "asmparse.cpp" break; case 391: if (!yytrial) #line 1039 "asmparse.y" { PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8378 "asmparse.cpp.tab.c" +#line 8348 "asmparse.cpp" break; case 393: if (!yytrial) #line 1043 "asmparse.y" { PASM->SetDataSection(); } -#line 8384 "asmparse.cpp.tab.c" +#line 8354 "asmparse.cpp" break; case 394: if (!yytrial) #line 1044 "asmparse.y" { PASM->SetTLSSection(); } -#line 8390 "asmparse.cpp.tab.c" +#line 8360 "asmparse.cpp" break; case 395: if (!yytrial) #line 1045 "asmparse.y" { PASM->SetILSection(); } -#line 8396 "asmparse.cpp.tab.c" +#line 8366 "asmparse.cpp" break; case 400: if (!yytrial) #line 1056 "asmparse.y" { yyval.int32 = 1; } -#line 8402 "asmparse.cpp.tab.c" +#line 8372 "asmparse.cpp" break; case 401: if (!yytrial) @@ -8406,25 +8376,25 @@ case 401: { yyval.int32 = yyvsp[-1].int32; if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8410 "asmparse.cpp.tab.c" +#line 8380 "asmparse.cpp" break; case 402: if (!yytrial) #line 1062 "asmparse.y" { PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8416 "asmparse.cpp.tab.c" +#line 8386 "asmparse.cpp" break; case 403: if (!yytrial) #line 1063 "asmparse.y" { PASM->EmitDD(yyvsp[-1].string); } -#line 8422 "asmparse.cpp.tab.c" +#line 8392 "asmparse.cpp" break; case 404: if (!yytrial) #line 1064 "asmparse.y" { PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8428 "asmparse.cpp.tab.c" +#line 8398 "asmparse.cpp" break; case 405: if (!yytrial) @@ -8435,7 +8405,7 @@ case 405: PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yyvsp[0].int32); } -#line 8439 "asmparse.cpp.tab.c" +#line 8409 "asmparse.cpp" break; case 406: if (!yytrial) @@ -8446,7 +8416,7 @@ case 406: PASM->EmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yyvsp[0].int32); } -#line 8450 "asmparse.cpp.tab.c" +#line 8420 "asmparse.cpp" break; case 407: if (!yytrial) @@ -8457,7 +8427,7 @@ case 407: PASM->EmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yyvsp[0].int32); } -#line 8461 "asmparse.cpp.tab.c" +#line 8431 "asmparse.cpp" break; case 408: if (!yytrial) @@ -8468,7 +8438,7 @@ case 408: PASM->EmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yyvsp[0].int32); } -#line 8472 "asmparse.cpp.tab.c" +#line 8442 "asmparse.cpp" break; case 409: if (!yytrial) @@ -8480,7 +8450,7 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yyvsp[0].int32); } -#line 8484 "asmparse.cpp.tab.c" +#line 8454 "asmparse.cpp" break; case 410: if (!yytrial) @@ -8492,43 +8462,43 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yyvsp[0].int32); } -#line 8496 "asmparse.cpp.tab.c" +#line 8466 "asmparse.cpp" break; case 411: if (!yytrial) #line 1109 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8502 "asmparse.cpp.tab.c" +#line 8472 "asmparse.cpp" break; case 412: if (!yytrial) #line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8508 "asmparse.cpp.tab.c" +#line 8478 "asmparse.cpp" break; case 413: if (!yytrial) #line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8514 "asmparse.cpp.tab.c" +#line 8484 "asmparse.cpp" break; case 414: if (!yytrial) #line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8520 "asmparse.cpp.tab.c" +#line 8490 "asmparse.cpp" break; case 415: if (!yytrial) #line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8526 "asmparse.cpp.tab.c" +#line 8496 "asmparse.cpp" break; case 416: if (!yytrial) #line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8532 "asmparse.cpp.tab.c" +#line 8502 "asmparse.cpp" break; case 417: if (!yytrial) @@ -8536,227 +8506,227 @@ case 417: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yyvsp[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8540 "asmparse.cpp.tab.c" +#line 8510 "asmparse.cpp" break; case 418: if (!yytrial) #line 1121 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8547 "asmparse.cpp.tab.c" +#line 8517 "asmparse.cpp" break; case 419: if (!yytrial) #line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8554 "asmparse.cpp.tab.c" +#line 8524 "asmparse.cpp" break; case 420: if (!yytrial) #line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8561 "asmparse.cpp.tab.c" +#line 8531 "asmparse.cpp" break; case 421: if (!yytrial) #line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8568 "asmparse.cpp.tab.c" +#line 8538 "asmparse.cpp" break; case 422: if (!yytrial) #line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8575 "asmparse.cpp.tab.c" +#line 8545 "asmparse.cpp" break; case 423: if (!yytrial) #line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8582 "asmparse.cpp.tab.c" +#line 8552 "asmparse.cpp" break; case 424: if (!yytrial) #line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8589 "asmparse.cpp.tab.c" +#line 8559 "asmparse.cpp" break; case 425: if (!yytrial) #line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8596 "asmparse.cpp.tab.c" +#line 8566 "asmparse.cpp" break; case 426: if (!yytrial) #line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8603 "asmparse.cpp.tab.c" +#line 8573 "asmparse.cpp" break; case 427: if (!yytrial) #line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8610 "asmparse.cpp.tab.c" +#line 8580 "asmparse.cpp" break; case 428: if (!yytrial) #line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8617 "asmparse.cpp.tab.c" +#line 8587 "asmparse.cpp" break; case 429: if (!yytrial) #line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8624 "asmparse.cpp.tab.c" +#line 8594 "asmparse.cpp" break; case 430: if (!yytrial) #line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8631 "asmparse.cpp.tab.c" +#line 8601 "asmparse.cpp" break; case 431: if (!yytrial) #line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8638 "asmparse.cpp.tab.c" +#line 8608 "asmparse.cpp" break; case 432: if (!yytrial) #line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8645 "asmparse.cpp.tab.c" +#line 8615 "asmparse.cpp" break; case 433: if (!yytrial) #line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8652 "asmparse.cpp.tab.c" +#line 8622 "asmparse.cpp" break; case 434: if (!yytrial) #line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8659 "asmparse.cpp.tab.c" +#line 8629 "asmparse.cpp" break; case 435: if (!yytrial) #line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8666 "asmparse.cpp.tab.c" +#line 8636 "asmparse.cpp" break; case 436: if (!yytrial) #line 1159 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8672 "asmparse.cpp.tab.c" +#line 8642 "asmparse.cpp" break; case 437: if (!yytrial) #line 1162 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8678 "asmparse.cpp.tab.c" +#line 8648 "asmparse.cpp" break; case 438: if (!yytrial) #line 1163 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8684 "asmparse.cpp.tab.c" +#line 8654 "asmparse.cpp" break; case 439: if (!yytrial) #line 1166 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8690 "asmparse.cpp.tab.c" +#line 8660 "asmparse.cpp" break; case 440: if (!yytrial) #line 1167 "asmparse.y" { __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8696 "asmparse.cpp.tab.c" +#line 8666 "asmparse.cpp" break; case 441: if (!yytrial) #line 1171 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8702 "asmparse.cpp.tab.c" +#line 8672 "asmparse.cpp" break; case 442: if (!yytrial) #line 1172 "asmparse.y" { yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8708 "asmparse.cpp.tab.c" +#line 8678 "asmparse.cpp" break; case 443: if (!yytrial) #line 1173 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 8715 "asmparse.cpp.tab.c" +#line 8685 "asmparse.cpp" break; case 444: if (!yytrial) #line 1178 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 8721 "asmparse.cpp.tab.c" +#line 8691 "asmparse.cpp" break; case 445: if (!yytrial) #line 1179 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8727 "asmparse.cpp.tab.c" +#line 8697 "asmparse.cpp" break; case 446: if (!yytrial) #line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8734 "asmparse.cpp.tab.c" +#line 8704 "asmparse.cpp" break; case 447: if (!yytrial) #line 1182 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8741 "asmparse.cpp.tab.c" +#line 8711 "asmparse.cpp" break; case 448: if (!yytrial) #line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8748 "asmparse.cpp.tab.c" +#line 8718 "asmparse.cpp" break; case 449: if (!yytrial) #line 1186 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8754 "asmparse.cpp.tab.c" +#line 8724 "asmparse.cpp" break; case 450: if (!yytrial) #line 1187 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8760 "asmparse.cpp.tab.c" +#line 8730 "asmparse.cpp" break; case 451: if (!yytrial) @@ -8764,7 +8734,7 @@ case 451: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8768 "asmparse.cpp.tab.c" +#line 8738 "asmparse.cpp" break; case 452: if (!yytrial) @@ -8772,7 +8742,7 @@ case 452: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8776 "asmparse.cpp.tab.c" +#line 8746 "asmparse.cpp" break; case 453: if (!yytrial) @@ -8780,7 +8750,7 @@ case 453: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8784 "asmparse.cpp.tab.c" +#line 8754 "asmparse.cpp" break; case 454: if (!yytrial) @@ -8788,7 +8758,7 @@ case 454: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8792 "asmparse.cpp.tab.c" +#line 8762 "asmparse.cpp" break; case 455: if (!yytrial) @@ -8796,7 +8766,7 @@ case 455: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8800 "asmparse.cpp.tab.c" +#line 8770 "asmparse.cpp" break; case 456: if (!yytrial) @@ -8804,7 +8774,7 @@ case 456: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8808 "asmparse.cpp.tab.c" +#line 8778 "asmparse.cpp" break; case 457: if (!yytrial) @@ -8812,7 +8782,7 @@ case 457: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8816 "asmparse.cpp.tab.c" +#line 8786 "asmparse.cpp" break; case 458: if (!yytrial) @@ -8820,7 +8790,7 @@ case 458: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8824 "asmparse.cpp.tab.c" +#line 8794 "asmparse.cpp" break; case 459: if (!yytrial) @@ -8828,7 +8798,7 @@ case 459: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8832 "asmparse.cpp.tab.c" +#line 8802 "asmparse.cpp" break; case 460: if (!yytrial) @@ -8836,7 +8806,7 @@ case 460: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8840 "asmparse.cpp.tab.c" +#line 8810 "asmparse.cpp" break; case 461: if (!yytrial) @@ -8844,7 +8814,7 @@ case 461: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8848 "asmparse.cpp.tab.c" +#line 8818 "asmparse.cpp" break; case 462: if (!yytrial) @@ -8852,7 +8822,7 @@ case 462: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8856 "asmparse.cpp.tab.c" +#line 8826 "asmparse.cpp" break; case 463: if (!yytrial) @@ -8860,7 +8830,7 @@ case 463: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8864 "asmparse.cpp.tab.c" +#line 8834 "asmparse.cpp" break; case 464: if (!yytrial) @@ -8868,7 +8838,7 @@ case 464: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8872 "asmparse.cpp.tab.c" +#line 8842 "asmparse.cpp" break; case 465: if (!yytrial) @@ -8876,7 +8846,7 @@ case 465: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8880 "asmparse.cpp.tab.c" +#line 8850 "asmparse.cpp" break; case 466: if (!yytrial) @@ -8884,7 +8854,7 @@ case 466: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8888 "asmparse.cpp.tab.c" +#line 8858 "asmparse.cpp" break; case 467: if (!yytrial) @@ -8892,7 +8862,7 @@ case 467: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8896 "asmparse.cpp.tab.c" +#line 8866 "asmparse.cpp" break; case 468: if (!yytrial) @@ -8900,7 +8870,7 @@ case 468: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8904 "asmparse.cpp.tab.c" +#line 8874 "asmparse.cpp" break; case 469: if (!yytrial) @@ -8908,166 +8878,166 @@ case 469: { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8912 "asmparse.cpp.tab.c" +#line 8882 "asmparse.cpp" break; case 470: if (!yytrial) #line 1267 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8918 "asmparse.cpp.tab.c" +#line 8888 "asmparse.cpp" break; case 471: if (!yytrial) #line 1268 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 8925 "asmparse.cpp.tab.c" +#line 8895 "asmparse.cpp" break; case 472: if (!yytrial) #line 1270 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 8932 "asmparse.cpp.tab.c" +#line 8902 "asmparse.cpp" break; case 473: if (!yytrial) #line 1274 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8938 "asmparse.cpp.tab.c" +#line 8908 "asmparse.cpp" break; case 474: if (!yytrial) #line 1275 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 8945 "asmparse.cpp.tab.c" +#line 8915 "asmparse.cpp" break; case 475: if (!yytrial) #line 1277 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8952 "asmparse.cpp.tab.c" +#line 8922 "asmparse.cpp" break; case 476: if (!yytrial) #line 1281 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8958 "asmparse.cpp.tab.c" +#line 8928 "asmparse.cpp" break; case 477: if (!yytrial) #line 1282 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8965 "asmparse.cpp.tab.c" +#line 8935 "asmparse.cpp" break; case 478: if (!yytrial) #line 1286 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8971 "asmparse.cpp.tab.c" +#line 8941 "asmparse.cpp" break; case 479: if (!yytrial) #line 1287 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 8977 "asmparse.cpp.tab.c" +#line 8947 "asmparse.cpp" break; case 480: if (!yytrial) #line 1290 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8983 "asmparse.cpp.tab.c" +#line 8953 "asmparse.cpp" break; case 481: if (!yytrial) #line 1291 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 8989 "asmparse.cpp.tab.c" +#line 8959 "asmparse.cpp" break; case 482: if (!yytrial) #line 1294 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8995 "asmparse.cpp.tab.c" +#line 8965 "asmparse.cpp" break; case 483: if (!yytrial) #line 1295 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 9001 "asmparse.cpp.tab.c" +#line 8971 "asmparse.cpp" break; case 484: if (!yytrial) #line 1298 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9007 "asmparse.cpp.tab.c" +#line 8977 "asmparse.cpp" break; case 485: if (!yytrial) #line 1299 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 9014 "asmparse.cpp.tab.c" +#line 8984 "asmparse.cpp" break; case 486: if (!yytrial) #line 1303 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9020 "asmparse.cpp.tab.c" +#line 8990 "asmparse.cpp" break; case 487: if (!yytrial) #line 1304 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9026 "asmparse.cpp.tab.c" +#line 8996 "asmparse.cpp" break; case 488: if (!yytrial) #line 1305 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9033 "asmparse.cpp.tab.c" +#line 9003 "asmparse.cpp" break; case 489: if (!yytrial) #line 1309 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9039 "asmparse.cpp.tab.c" +#line 9009 "asmparse.cpp" break; case 490: if (!yytrial) #line 1310 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9045 "asmparse.cpp.tab.c" +#line 9015 "asmparse.cpp" break; case 491: if (!yytrial) #line 1311 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9052 "asmparse.cpp.tab.c" +#line 9022 "asmparse.cpp" break; case 492: if (!yytrial) #line 1313 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9059 "asmparse.cpp.tab.c" +#line 9029 "asmparse.cpp" break; case 493: if (!yytrial) #line 1317 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9065 "asmparse.cpp.tab.c" +#line 9035 "asmparse.cpp" break; case 494: if (!yytrial) #line 1318 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9071 "asmparse.cpp.tab.c" +#line 9041 "asmparse.cpp" break; case 495: if (!yytrial) @@ -9076,43 +9046,43 @@ case 495: parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 9080 "asmparse.cpp.tab.c" +#line 9050 "asmparse.cpp" break; case 496: if (!yytrial) #line 1328 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9086 "asmparse.cpp.tab.c" +#line 9056 "asmparse.cpp" break; case 497: if (!yytrial) #line 1331 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9092 "asmparse.cpp.tab.c" +#line 9062 "asmparse.cpp" break; case 498: if (!yytrial) #line 1334 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9098 "asmparse.cpp.tab.c" +#line 9068 "asmparse.cpp" break; case 499: if (!yytrial) #line 1337 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9104 "asmparse.cpp.tab.c" +#line 9074 "asmparse.cpp" break; case 500: if (!yytrial) #line 1340 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9110 "asmparse.cpp.tab.c" +#line 9080 "asmparse.cpp" break; case 501: if (!yytrial) #line 1343 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9116 "asmparse.cpp.tab.c" +#line 9086 "asmparse.cpp" break; case 502: if (!yytrial) @@ -9123,91 +9093,91 @@ case 502: (yyvsp[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 9127 "asmparse.cpp.tab.c" +#line 9097 "asmparse.cpp" break; case 503: if (!yytrial) #line 1354 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9133 "asmparse.cpp.tab.c" +#line 9103 "asmparse.cpp" break; case 504: if (!yytrial) #line 1357 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9139 "asmparse.cpp.tab.c" +#line 9109 "asmparse.cpp" break; case 505: if (!yytrial) #line 1360 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9145 "asmparse.cpp.tab.c" +#line 9115 "asmparse.cpp" break; case 506: if (!yytrial) #line 1363 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9151 "asmparse.cpp.tab.c" +#line 9121 "asmparse.cpp" break; case 507: if (!yytrial) #line 1366 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9157 "asmparse.cpp.tab.c" +#line 9127 "asmparse.cpp" break; case 508: if (!yytrial) #line 1369 "asmparse.y" { yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9163 "asmparse.cpp.tab.c" +#line 9133 "asmparse.cpp" break; case 509: if (!yytrial) #line 1372 "asmparse.y" { yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9169 "asmparse.cpp.tab.c" +#line 9139 "asmparse.cpp" break; case 510: if (!yytrial) #line 1376 "asmparse.y" { PASM->EmitOpcode(yyvsp[0].instr); } -#line 9175 "asmparse.cpp.tab.c" +#line 9145 "asmparse.cpp" break; case 511: if (!yytrial) #line 1377 "asmparse.y" { PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9181 "asmparse.cpp.tab.c" +#line 9151 "asmparse.cpp" break; case 512: if (!yytrial) #line 1378 "asmparse.y" { PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9187 "asmparse.cpp.tab.c" +#line 9157 "asmparse.cpp" break; case 513: if (!yytrial) #line 1379 "asmparse.y" { PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9193 "asmparse.cpp.tab.c" +#line 9163 "asmparse.cpp" break; case 514: if (!yytrial) #line 1380 "asmparse.y" { PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9199 "asmparse.cpp.tab.c" +#line 9169 "asmparse.cpp" break; case 515: if (!yytrial) #line 1381 "asmparse.y" { PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9205 "asmparse.cpp.tab.c" +#line 9175 "asmparse.cpp" break; case 516: if (!yytrial) #line 1382 "asmparse.y" { double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9211 "asmparse.cpp.tab.c" +#line 9181 "asmparse.cpp" break; case 517: if (!yytrial) @@ -9221,19 +9191,19 @@ case 517: : (double)(*(float *)(yyvsp[-1].binstr->ptr())); PASM->EmitInstrR(yyvsp[-2].instr,&f); } delete yyvsp[-1].binstr; } -#line 9225 "asmparse.cpp.tab.c" +#line 9195 "asmparse.cpp" break; case 518: if (!yytrial) #line 1392 "asmparse.y" { PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9231 "asmparse.cpp.tab.c" +#line 9201 "asmparse.cpp" break; case 519: if (!yytrial) #line 1393 "asmparse.y" { PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9237 "asmparse.cpp.tab.c" +#line 9207 "asmparse.cpp" break; case 520: if (!yytrial) @@ -9244,7 +9214,7 @@ case 520: PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 9248 "asmparse.cpp.tab.c" +#line 9218 "asmparse.cpp" break; case 521: if (!yytrial) @@ -9256,7 +9226,7 @@ case 521: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9260 "asmparse.cpp.tab.c" +#line 9230 "asmparse.cpp" break; case 522: if (!yytrial) @@ -9268,7 +9238,7 @@ case 522: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9272 "asmparse.cpp.tab.c" +#line 9242 "asmparse.cpp" break; case 523: if (!yytrial) @@ -9279,7 +9249,7 @@ case 523: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9283 "asmparse.cpp.tab.c" +#line 9253 "asmparse.cpp" break; case 524: if (!yytrial) @@ -9290,7 +9260,7 @@ case 524: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9294 "asmparse.cpp.tab.c" +#line 9264 "asmparse.cpp" break; case 525: if (!yytrial) @@ -9301,7 +9271,7 @@ case 525: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 9305 "asmparse.cpp.tab.c" +#line 9275 "asmparse.cpp" break; case 526: if (!yytrial) @@ -9310,25 +9280,25 @@ case 526: PASM->m_tkCurrentCVOwner = yyvsp[0].token; PASM->m_pCustomDescrList = NULL; } -#line 9314 "asmparse.cpp.tab.c" +#line 9284 "asmparse.cpp" break; case 527: if (!yytrial) #line 1439 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9320 "asmparse.cpp.tab.c" +#line 9290 "asmparse.cpp" break; case 528: if (!yytrial) #line 1441 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9326 "asmparse.cpp.tab.c" +#line 9296 "asmparse.cpp" break; case 529: if (!yytrial) #line 1443 "asmparse.y" { PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9332 "asmparse.cpp.tab.c" +#line 9302 "asmparse.cpp" break; case 530: if (!yytrial) @@ -9336,7 +9306,7 @@ case 530: { PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); PASM->ResetArgNameList(); } -#line 9340 "asmparse.cpp.tab.c" +#line 9310 "asmparse.cpp" break; case 531: if (!yytrial) @@ -9346,163 +9316,163 @@ case 531: PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 9350 "asmparse.cpp.tab.c" +#line 9320 "asmparse.cpp" break; case 532: if (!yytrial) #line 1454 "asmparse.y" { PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9356 "asmparse.cpp.tab.c" +#line 9326 "asmparse.cpp" break; case 533: if (!yytrial) #line 1457 "asmparse.y" { yyval.labels = 0; } -#line 9362 "asmparse.cpp.tab.c" +#line 9332 "asmparse.cpp" break; case 534: if (!yytrial) #line 1458 "asmparse.y" { yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9368 "asmparse.cpp.tab.c" +#line 9338 "asmparse.cpp" break; case 535: if (!yytrial) #line 1459 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9374 "asmparse.cpp.tab.c" +#line 9344 "asmparse.cpp" break; case 536: if (!yytrial) #line 1460 "asmparse.y" { yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9380 "asmparse.cpp.tab.c" +#line 9350 "asmparse.cpp" break; case 537: if (!yytrial) #line 1461 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9386 "asmparse.cpp.tab.c" +#line 9356 "asmparse.cpp" break; case 538: if (!yytrial) #line 1465 "asmparse.y" { yyval.binstr = NULL; } -#line 9392 "asmparse.cpp.tab.c" +#line 9362 "asmparse.cpp" break; case 539: if (!yytrial) #line 1466 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; } -#line 9398 "asmparse.cpp.tab.c" +#line 9368 "asmparse.cpp" break; case 540: if (!yytrial) #line 1469 "asmparse.y" { yyval.binstr = NULL; } -#line 9404 "asmparse.cpp.tab.c" +#line 9374 "asmparse.cpp" break; case 541: if (!yytrial) #line 1470 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9410 "asmparse.cpp.tab.c" +#line 9380 "asmparse.cpp" break; case 542: if (!yytrial) #line 1473 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9416 "asmparse.cpp.tab.c" +#line 9386 "asmparse.cpp" break; case 543: if (!yytrial) #line 1474 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9422 "asmparse.cpp.tab.c" +#line 9392 "asmparse.cpp" break; case 544: if (!yytrial) #line 1478 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9428 "asmparse.cpp.tab.c" +#line 9398 "asmparse.cpp" break; case 545: if (!yytrial) #line 1479 "asmparse.y" { yyval.binstr = yyvsp[0].binstr;} -#line 9434 "asmparse.cpp.tab.c" +#line 9404 "asmparse.cpp" break; case 546: if (!yytrial) #line 1482 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 9440 "asmparse.cpp.tab.c" +#line 9410 "asmparse.cpp" break; case 547: if (!yytrial) #line 1483 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9446 "asmparse.cpp.tab.c" +#line 9416 "asmparse.cpp" break; case 548: if (!yytrial) #line 1486 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9452 "asmparse.cpp.tab.c" +#line 9422 "asmparse.cpp" break; case 549: if (!yytrial) #line 1487 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9458 "asmparse.cpp.tab.c" +#line 9428 "asmparse.cpp" break; case 550: if (!yytrial) #line 1488 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9464 "asmparse.cpp.tab.c" +#line 9434 "asmparse.cpp" break; case 551: if (!yytrial) #line 1492 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9470 "asmparse.cpp.tab.c" +#line 9440 "asmparse.cpp" break; case 552: if (!yytrial) #line 1493 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9476 "asmparse.cpp.tab.c" +#line 9446 "asmparse.cpp" break; case 553: if (!yytrial) #line 1494 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9482 "asmparse.cpp.tab.c" +#line 9452 "asmparse.cpp" break; case 554: if (!yytrial) #line 1495 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9488 "asmparse.cpp.tab.c" +#line 9458 "asmparse.cpp" break; case 555: if (!yytrial) #line 1496 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9494 "asmparse.cpp.tab.c" +#line 9464 "asmparse.cpp" break; case 556: if (!yytrial) #line 1497 "asmparse.y" { yyval.token = yyvsp[0].token; } -#line 9500 "asmparse.cpp.tab.c" +#line 9470 "asmparse.cpp" break; case 557: if (!yytrial) #line 1498 "asmparse.y" { yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9506 "asmparse.cpp.tab.c" +#line 9476 "asmparse.cpp" break; case 558: if (!yytrial) @@ -9510,7 +9480,7 @@ case 558: { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 9514 "asmparse.cpp.tab.c" +#line 9484 "asmparse.cpp" break; case 559: if (!yytrial) @@ -9521,7 +9491,7 @@ case 559: PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 9525 "asmparse.cpp.tab.c" +#line 9495 "asmparse.cpp" break; case 560: if (!yytrial) @@ -9531,49 +9501,49 @@ case 560: else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 9535 "asmparse.cpp.tab.c" +#line 9505 "asmparse.cpp" break; case 561: if (!yytrial) #line 1515 "asmparse.y" { yyval.string = yyvsp[0].string; } -#line 9541 "asmparse.cpp.tab.c" +#line 9511 "asmparse.cpp" break; case 562: if (!yytrial) #line 1516 "asmparse.y" { yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9547 "asmparse.cpp.tab.c" +#line 9517 "asmparse.cpp" break; case 563: if (!yytrial) #line 1519 "asmparse.y" { yyval.token = yyvsp[0].token;} -#line 9553 "asmparse.cpp.tab.c" +#line 9523 "asmparse.cpp" break; case 564: if (!yytrial) #line 1520 "asmparse.y" { yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9559 "asmparse.cpp.tab.c" +#line 9529 "asmparse.cpp" break; case 565: if (!yytrial) #line 1521 "asmparse.y" { yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9565 "asmparse.cpp.tab.c" +#line 9535 "asmparse.cpp" break; case 566: if (!yytrial) #line 1522 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9571 "asmparse.cpp.tab.c" +#line 9541 "asmparse.cpp" break; case 567: if (!yytrial) #line 1526 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9577 "asmparse.cpp.tab.c" +#line 9547 "asmparse.cpp" break; case 568: if (!yytrial) @@ -9584,7 +9554,7 @@ case 568: corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9588 "asmparse.cpp.tab.c" +#line 9558 "asmparse.cpp" break; case 569: if (!yytrial) @@ -9594,158 +9564,158 @@ case 569: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9598 "asmparse.cpp.tab.c" +#line 9568 "asmparse.cpp" break; case 570: if (!yytrial) #line 1540 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9605 "asmparse.cpp.tab.c" +#line 9575 "asmparse.cpp" break; case 571: if (!yytrial) #line 1543 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9612 "asmparse.cpp.tab.c" +#line 9582 "asmparse.cpp" break; case 572: if (!yytrial) #line 1545 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9619 "asmparse.cpp.tab.c" +#line 9589 "asmparse.cpp" break; case 573: if (!yytrial) #line 1547 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9625 "asmparse.cpp.tab.c" +#line 9595 "asmparse.cpp" break; case 574: if (!yytrial) #line 1548 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9632 "asmparse.cpp.tab.c" +#line 9602 "asmparse.cpp" break; case 575: if (!yytrial) #line 1550 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9639 "asmparse.cpp.tab.c" +#line 9609 "asmparse.cpp" break; case 576: if (!yytrial) #line 1552 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9645 "asmparse.cpp.tab.c" +#line 9615 "asmparse.cpp" break; case 577: if (!yytrial) #line 1553 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9651 "asmparse.cpp.tab.c" +#line 9621 "asmparse.cpp" break; case 578: if (!yytrial) #line 1554 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9657 "asmparse.cpp.tab.c" +#line 9627 "asmparse.cpp" break; case 579: if (!yytrial) #line 1555 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9663 "asmparse.cpp.tab.c" +#line 9633 "asmparse.cpp" break; case 580: if (!yytrial) #line 1556 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9669 "asmparse.cpp.tab.c" +#line 9639 "asmparse.cpp" break; case 581: if (!yytrial) #line 1557 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9675 "asmparse.cpp.tab.c" +#line 9645 "asmparse.cpp" break; case 582: if (!yytrial) #line 1558 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9681 "asmparse.cpp.tab.c" +#line 9651 "asmparse.cpp" break; case 583: if (!yytrial) #line 1559 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9687 "asmparse.cpp.tab.c" +#line 9657 "asmparse.cpp" break; case 584: if (!yytrial) #line 1560 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9693 "asmparse.cpp.tab.c" +#line 9663 "asmparse.cpp" break; case 585: if (!yytrial) #line 1561 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9699 "asmparse.cpp.tab.c" +#line 9669 "asmparse.cpp" break; case 586: if (!yytrial) #line 1562 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9705 "asmparse.cpp.tab.c" +#line 9675 "asmparse.cpp" break; case 587: if (!yytrial) #line 1563 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9711 "asmparse.cpp.tab.c" +#line 9681 "asmparse.cpp" break; case 588: if (!yytrial) #line 1564 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9717 "asmparse.cpp.tab.c" +#line 9687 "asmparse.cpp" break; case 589: if (!yytrial) #line 1565 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9723 "asmparse.cpp.tab.c" +#line 9693 "asmparse.cpp" break; case 590: if (!yytrial) #line 1566 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9729 "asmparse.cpp.tab.c" +#line 9699 "asmparse.cpp" break; case 591: if (!yytrial) #line 1567 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9735 "asmparse.cpp.tab.c" +#line 9705 "asmparse.cpp" break; case 592: if (!yytrial) #line 1568 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 9742 "asmparse.cpp.tab.c" +#line 9712 "asmparse.cpp" break; case 593: if (!yytrial) #line 1570 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9749 "asmparse.cpp.tab.c" +#line 9719 "asmparse.cpp" break; case 594: if (!yytrial) @@ -9755,7 +9725,7 @@ case 594: corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,0); } -#line 9759 "asmparse.cpp.tab.c" +#line 9729 "asmparse.cpp" break; case 595: if (!yytrial) @@ -9765,7 +9735,7 @@ case 595: corEmitInt(yyval.binstr,yyvsp[-1].int32); corEmitInt(yyval.binstr,yyvsp[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9769 "asmparse.cpp.tab.c" +#line 9739 "asmparse.cpp" break; case 596: if (!yytrial) @@ -9773,79 +9743,79 @@ case 596: { yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9777 "asmparse.cpp.tab.c" +#line 9747 "asmparse.cpp" break; case 597: if (!yytrial) #line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9784 "asmparse.cpp.tab.c" +#line 9754 "asmparse.cpp" break; case 598: if (!yytrial) #line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9791 "asmparse.cpp.tab.c" +#line 9761 "asmparse.cpp" break; case 599: if (!yytrial) #line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9797 "asmparse.cpp.tab.c" +#line 9767 "asmparse.cpp" break; case 600: if (!yytrial) #line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9803 "asmparse.cpp.tab.c" +#line 9773 "asmparse.cpp" break; case 601: if (!yytrial) #line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9809 "asmparse.cpp.tab.c" +#line 9779 "asmparse.cpp" break; case 602: if (!yytrial) #line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9815 "asmparse.cpp.tab.c" +#line 9785 "asmparse.cpp" break; case 603: if (!yytrial) #line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9822 "asmparse.cpp.tab.c" +#line 9792 "asmparse.cpp" break; case 604: if (!yytrial) #line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9829 "asmparse.cpp.tab.c" +#line 9799 "asmparse.cpp" break; case 605: if (!yytrial) #line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9836 "asmparse.cpp.tab.c" +#line 9806 "asmparse.cpp" break; case 606: if (!yytrial) #line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9842 "asmparse.cpp.tab.c" +#line 9812 "asmparse.cpp" break; case 607: if (!yytrial) #line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9849 "asmparse.cpp.tab.c" +#line 9819 "asmparse.cpp" break; case 608: if (!yytrial) @@ -9853,7 +9823,7 @@ case 608: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[0].int32); corEmitInt(yyval.binstr,0);} -#line 9857 "asmparse.cpp.tab.c" +#line 9827 "asmparse.cpp" break; case 609: if (!yytrial) @@ -9861,607 +9831,480 @@ case 609: { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yyvsp[-2].int32); corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9865 "asmparse.cpp.tab.c" +#line 9835 "asmparse.cpp" break; case 610: if (!yytrial) #line 1609 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9871 "asmparse.cpp.tab.c" +#line 9841 "asmparse.cpp" break; case 611: if (!yytrial) #line 1610 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9877 "asmparse.cpp.tab.c" +#line 9847 "asmparse.cpp" break; case 612: if (!yytrial) #line 1611 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9883 "asmparse.cpp.tab.c" +#line 9853 "asmparse.cpp" break; case 613: if (!yytrial) #line 1612 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 9890 "asmparse.cpp.tab.c" +#line 9860 "asmparse.cpp" break; case 614: if (!yytrial) #line 1614 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 9896 "asmparse.cpp.tab.c" +#line 9866 "asmparse.cpp" break; case 615: if (!yytrial) #line 1615 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 9902 "asmparse.cpp.tab.c" +#line 9872 "asmparse.cpp" break; case 616: if (!yytrial) #line 1616 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 9908 "asmparse.cpp.tab.c" +#line 9878 "asmparse.cpp" break; case 617: if (!yytrial) #line 1617 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 9914 "asmparse.cpp.tab.c" +#line 9884 "asmparse.cpp" break; case 618: if (!yytrial) #line 1618 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 9920 "asmparse.cpp.tab.c" +#line 9890 "asmparse.cpp" break; case 619: if (!yytrial) #line 1619 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 9926 "asmparse.cpp.tab.c" +#line 9896 "asmparse.cpp" break; case 620: if (!yytrial) #line 1620 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 9932 "asmparse.cpp.tab.c" +#line 9902 "asmparse.cpp" break; case 621: if (!yytrial) #line 1621 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 9938 "asmparse.cpp.tab.c" +#line 9908 "asmparse.cpp" break; case 622: if (!yytrial) #line 1624 "asmparse.y" { yyval.int32 = -1; } -#line 9944 "asmparse.cpp.tab.c" +#line 9914 "asmparse.cpp" break; case 623: if (!yytrial) #line 1625 "asmparse.y" { yyval.int32 = yyvsp[-1].int32; } -#line 9950 "asmparse.cpp.tab.c" +#line 9920 "asmparse.cpp" break; case 624: if (!yytrial) #line 1628 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 9956 "asmparse.cpp.tab.c" +#line 9926 "asmparse.cpp" break; case 625: if (!yytrial) #line 1629 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 9962 "asmparse.cpp.tab.c" +#line 9932 "asmparse.cpp" break; case 626: if (!yytrial) #line 1630 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 9968 "asmparse.cpp.tab.c" +#line 9938 "asmparse.cpp" break; case 627: if (!yytrial) #line 1631 "asmparse.y" { yyval.int32 = VT_CY; } -#line 9974 "asmparse.cpp.tab.c" +#line 9944 "asmparse.cpp" break; case 628: if (!yytrial) #line 1632 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 9980 "asmparse.cpp.tab.c" +#line 9950 "asmparse.cpp" break; case 629: if (!yytrial) #line 1633 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 9986 "asmparse.cpp.tab.c" +#line 9956 "asmparse.cpp" break; case 630: if (!yytrial) #line 1634 "asmparse.y" { yyval.int32 = VT_I1; } -#line 9992 "asmparse.cpp.tab.c" +#line 9962 "asmparse.cpp" break; case 631: if (!yytrial) #line 1635 "asmparse.y" { yyval.int32 = VT_I2; } -#line 9998 "asmparse.cpp.tab.c" +#line 9968 "asmparse.cpp" break; case 632: if (!yytrial) #line 1636 "asmparse.y" { yyval.int32 = VT_I4; } -#line 10004 "asmparse.cpp.tab.c" +#line 9974 "asmparse.cpp" break; case 633: if (!yytrial) #line 1637 "asmparse.y" { yyval.int32 = VT_I8; } -#line 10010 "asmparse.cpp.tab.c" +#line 9980 "asmparse.cpp" break; case 634: if (!yytrial) #line 1638 "asmparse.y" { yyval.int32 = VT_R4; } -#line 10016 "asmparse.cpp.tab.c" +#line 9986 "asmparse.cpp" break; case 635: if (!yytrial) #line 1639 "asmparse.y" { yyval.int32 = VT_R8; } -#line 10022 "asmparse.cpp.tab.c" +#line 9992 "asmparse.cpp" break; case 636: if (!yytrial) #line 1640 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10028 "asmparse.cpp.tab.c" +#line 9998 "asmparse.cpp" break; case 637: if (!yytrial) #line 1641 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10034 "asmparse.cpp.tab.c" +#line 10004 "asmparse.cpp" break; case 638: if (!yytrial) #line 1642 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10040 "asmparse.cpp.tab.c" +#line 10010 "asmparse.cpp" break; case 639: if (!yytrial) #line 1643 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10046 "asmparse.cpp.tab.c" +#line 10016 "asmparse.cpp" break; case 640: if (!yytrial) #line 1644 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 10052 "asmparse.cpp.tab.c" +#line 10022 "asmparse.cpp" break; case 641: if (!yytrial) #line 1645 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 10058 "asmparse.cpp.tab.c" +#line 10028 "asmparse.cpp" break; case 642: if (!yytrial) #line 1646 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 10064 "asmparse.cpp.tab.c" +#line 10034 "asmparse.cpp" break; case 643: if (!yytrial) #line 1647 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 10070 "asmparse.cpp.tab.c" +#line 10040 "asmparse.cpp" break; case 644: if (!yytrial) #line 1648 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 10076 "asmparse.cpp.tab.c" +#line 10046 "asmparse.cpp" break; case 645: if (!yytrial) #line 1649 "asmparse.y" { yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10082 "asmparse.cpp.tab.c" +#line 10052 "asmparse.cpp" break; case 646: if (!yytrial) #line 1650 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10088 "asmparse.cpp.tab.c" +#line 10058 "asmparse.cpp" break; case 647: if (!yytrial) #line 1651 "asmparse.y" { yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10094 "asmparse.cpp.tab.c" +#line 10064 "asmparse.cpp" break; case 648: if (!yytrial) #line 1652 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 10100 "asmparse.cpp.tab.c" +#line 10070 "asmparse.cpp" break; case 649: if (!yytrial) #line 1653 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 10106 "asmparse.cpp.tab.c" +#line 10076 "asmparse.cpp" break; case 650: if (!yytrial) #line 1654 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 10112 "asmparse.cpp.tab.c" +#line 10082 "asmparse.cpp" break; case 651: if (!yytrial) #line 1655 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 10118 "asmparse.cpp.tab.c" +#line 10088 "asmparse.cpp" break; case 652: if (!yytrial) #line 1656 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 10124 "asmparse.cpp.tab.c" +#line 10094 "asmparse.cpp" break; case 653: if (!yytrial) #line 1657 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 10130 "asmparse.cpp.tab.c" +#line 10100 "asmparse.cpp" break; case 654: if (!yytrial) #line 1658 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 10136 "asmparse.cpp.tab.c" +#line 10106 "asmparse.cpp" break; case 655: if (!yytrial) #line 1659 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 10142 "asmparse.cpp.tab.c" +#line 10112 "asmparse.cpp" break; case 656: if (!yytrial) #line 1660 "asmparse.y" { yyval.int32 = VT_INT; } -#line 10148 "asmparse.cpp.tab.c" +#line 10118 "asmparse.cpp" break; case 657: if (!yytrial) #line 1661 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10154 "asmparse.cpp.tab.c" +#line 10124 "asmparse.cpp" break; case 658: if (!yytrial) #line 1662 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 10160 "asmparse.cpp.tab.c" -break; -case 659: - if (!yytrial) -#line 1663 "asmparse.y" -{ yyval.int32 = VT_ERROR; } -#line 10166 "asmparse.cpp.tab.c" -break; -case 660: - if (!yytrial) -#line 1664 "asmparse.y" -{ yyval.int32 = VT_HRESULT; } -#line 10172 "asmparse.cpp.tab.c" -break; -case 661: - if (!yytrial) -#line 1665 "asmparse.y" -{ yyval.int32 = VT_CARRAY; } -#line 10178 "asmparse.cpp.tab.c" -break; -case 662: - if (!yytrial) -#line 1666 "asmparse.y" -{ yyval.int32 = VT_USERDEFINED; } -#line 10184 "asmparse.cpp.tab.c" -break; -case 663: - if (!yytrial) -#line 1667 "asmparse.y" -{ yyval.int32 = VT_RECORD; } -#line 10190 "asmparse.cpp.tab.c" -break; -case 664: - if (!yytrial) -#line 1668 "asmparse.y" -{ yyval.int32 = VT_FILETIME; } -#line 10196 "asmparse.cpp.tab.c" -break; -case 665: - if (!yytrial) -#line 1669 "asmparse.y" -{ yyval.int32 = VT_BLOB; } -#line 10202 "asmparse.cpp.tab.c" -break; -case 666: - if (!yytrial) -#line 1670 "asmparse.y" -{ yyval.int32 = VT_STREAM; } -#line 10208 "asmparse.cpp.tab.c" -break; -case 667: - if (!yytrial) -#line 1671 "asmparse.y" -{ yyval.int32 = VT_STORAGE; } -#line 10214 "asmparse.cpp.tab.c" -break; -case 668: - if (!yytrial) -#line 1672 "asmparse.y" -{ yyval.int32 = VT_STREAMED_OBJECT; } -#line 10220 "asmparse.cpp.tab.c" -break; -case 669: - if (!yytrial) -#line 1673 "asmparse.y" -{ yyval.int32 = VT_STORED_OBJECT; } -#line 10226 "asmparse.cpp.tab.c" -break; -case 670: - if (!yytrial) -#line 1674 "asmparse.y" -{ yyval.int32 = VT_BLOB_OBJECT; } -#line 10232 "asmparse.cpp.tab.c" -break; -case 671: - if (!yytrial) -#line 1675 "asmparse.y" -{ yyval.int32 = VT_CF; } -#line 10238 "asmparse.cpp.tab.c" -break; -case 672: - if (!yytrial) -#line 1676 "asmparse.y" -{ yyval.int32 = VT_CLSID; } -#line 10244 "asmparse.cpp.tab.c" -break; -case 673: - if (!yytrial) -#line 1679 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*yyvsp[-1].float64); - yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 10252 "asmparse.cpp.tab.c" -break; -case 674: - if (!yytrial) -#line 1682 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 10259 "asmparse.cpp.tab.c" -break; -case 675: - if (!yytrial) -#line 1684 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10266 "asmparse.cpp.tab.c" -break; -case 676: - if (!yytrial) -#line 1686 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10273 "asmparse.cpp.tab.c" +#line 10130 "asmparse.cpp" break; -case 677: +case 659: if (!yytrial) -#line 1688 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10280 "asmparse.cpp.tab.c" +#line 1663 "asmparse.y" +{ yyval.int32 = VT_ERROR; } +#line 10136 "asmparse.cpp" break; -case 678: +case 660: if (!yytrial) -#line 1690 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10287 "asmparse.cpp.tab.c" +#line 1664 "asmparse.y" +{ yyval.int32 = VT_HRESULT; } +#line 10142 "asmparse.cpp" break; -case 679: +case 661: if (!yytrial) -#line 1692 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10294 "asmparse.cpp.tab.c" +#line 1665 "asmparse.y" +{ yyval.int32 = VT_CARRAY; } +#line 10148 "asmparse.cpp" break; -case 680: +case 662: if (!yytrial) -#line 1694 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10301 "asmparse.cpp.tab.c" +#line 1666 "asmparse.y" +{ yyval.int32 = VT_USERDEFINED; } +#line 10154 "asmparse.cpp" break; -case 681: +case 663: if (!yytrial) -#line 1696 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10308 "asmparse.cpp.tab.c" +#line 1667 "asmparse.y" +{ yyval.int32 = VT_RECORD; } +#line 10160 "asmparse.cpp" break; -case 682: +case 664: if (!yytrial) -#line 1698 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10315 "asmparse.cpp.tab.c" +#line 1668 "asmparse.y" +{ yyval.int32 = VT_FILETIME; } +#line 10166 "asmparse.cpp" break; -case 683: +case 665: if (!yytrial) -#line 1700 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10322 "asmparse.cpp.tab.c" +#line 1669 "asmparse.y" +{ yyval.int32 = VT_BLOB; } +#line 10172 "asmparse.cpp" break; -case 684: +case 666: if (!yytrial) -#line 1702 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10329 "asmparse.cpp.tab.c" +#line 1670 "asmparse.y" +{ yyval.int32 = VT_STREAM; } +#line 10178 "asmparse.cpp" break; -case 685: +case 667: if (!yytrial) -#line 1704 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 10336 "asmparse.cpp.tab.c" +#line 1671 "asmparse.y" +{ yyval.int32 = VT_STORAGE; } +#line 10184 "asmparse.cpp" break; -case 686: +case 668: if (!yytrial) -#line 1706 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10343 "asmparse.cpp.tab.c" +#line 1672 "asmparse.y" +{ yyval.int32 = VT_STREAMED_OBJECT; } +#line 10190 "asmparse.cpp" break; -case 687: +case 669: if (!yytrial) -#line 1708 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10350 "asmparse.cpp.tab.c" +#line 1673 "asmparse.y" +{ yyval.int32 = VT_STORED_OBJECT; } +#line 10196 "asmparse.cpp" break; -case 688: +case 670: if (!yytrial) -#line 1710 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 10357 "asmparse.cpp.tab.c" +#line 1674 "asmparse.y" +{ yyval.int32 = VT_BLOB_OBJECT; } +#line 10202 "asmparse.cpp" break; -case 689: +case 671: if (!yytrial) -#line 1712 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 10364 "asmparse.cpp.tab.c" +#line 1675 "asmparse.y" +{ yyval.int32 = VT_CF; } +#line 10208 "asmparse.cpp" break; -case 690: +case 672: if (!yytrial) -#line 1714 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); - yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 10371 "asmparse.cpp.tab.c" +#line 1676 "asmparse.y" +{ yyval.int32 = VT_CLSID; } +#line 10214 "asmparse.cpp" break; -case 691: +case 673: if (!yytrial) -#line 1719 "asmparse.y" +#line 1680 "asmparse.y" { if(yyvsp[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yyvsp[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10382 "asmparse.cpp.tab.c" +#line 10225 "asmparse.cpp" break; -case 692: +case 674: if (!yytrial) -#line 1725 "asmparse.y" +#line 1686 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10388 "asmparse.cpp.tab.c" +#line 10231 "asmparse.cpp" break; -case 693: +case 675: if (!yytrial) -#line 1726 "asmparse.y" +#line 1687 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10394 "asmparse.cpp.tab.c" +#line 10237 "asmparse.cpp" break; -case 694: +case 676: if (!yytrial) -#line 1727 "asmparse.y" +#line 1688 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10400 "asmparse.cpp.tab.c" +#line 10243 "asmparse.cpp" break; -case 695: +case 677: if (!yytrial) -#line 1728 "asmparse.y" +#line 1689 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 10406 "asmparse.cpp.tab.c" +#line 10249 "asmparse.cpp" break; -case 696: +case 678: if (!yytrial) -#line 1729 "asmparse.y" +#line 1690 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10412 "asmparse.cpp.tab.c" +#line 10255 "asmparse.cpp" break; -case 697: +case 679: if (!yytrial) -#line 1730 "asmparse.y" +#line 1691 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10418 "asmparse.cpp.tab.c" +#line 10261 "asmparse.cpp" break; -case 698: +case 680: if (!yytrial) -#line 1731 "asmparse.y" +#line 1692 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10424 "asmparse.cpp.tab.c" +#line 10267 "asmparse.cpp" break; -case 699: +case 681: if (!yytrial) -#line 1732 "asmparse.y" +#line 1693 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10430 "asmparse.cpp.tab.c" +#line 10273 "asmparse.cpp" break; -case 700: +case 682: if (!yytrial) -#line 1733 "asmparse.y" +#line 1694 "asmparse.y" { yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10436 "asmparse.cpp.tab.c" +#line 10279 "asmparse.cpp" break; -case 701: +case 683: if (!yytrial) -#line 1734 "asmparse.y" +#line 1695 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10443 "asmparse.cpp.tab.c" +#line 10286 "asmparse.cpp" break; -case 702: +case 684: if (!yytrial) -#line 1736 "asmparse.y" +#line 1697 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); yyval.binstr->append(yyvsp[-4].binstr); } -#line 10450 "asmparse.cpp.tab.c" +#line 10293 "asmparse.cpp" break; -case 703: +case 685: if (!yytrial) -#line 1739 "asmparse.y" +#line 1700 "asmparse.y" { yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 10461 "asmparse.cpp.tab.c" +#line 10304 "asmparse.cpp" break; -case 704: +case 686: if (!yytrial) -#line 1745 "asmparse.y" +#line 1706 "asmparse.y" { if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; else { yyval.binstr = new BinStr(); @@ -10469,33 +10312,33 @@ case 704: yyval.binstr->append(yyvsp[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10473 "asmparse.cpp.tab.c" +#line 10316 "asmparse.cpp" break; -case 705: +case 687: if (!yytrial) -#line 1752 "asmparse.y" +#line 1713 "asmparse.y" { /*if(PASM->m_pCurMethod) {*/ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ } -#line 10484 "asmparse.cpp.tab.c" +#line 10327 "asmparse.cpp" break; -case 706: +case 688: if (!yytrial) -#line 1758 "asmparse.y" +#line 1719 "asmparse.y" { /*if(PASM->m_pCurClass) {*/ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ } -#line 10495 "asmparse.cpp.tab.c" +#line 10338 "asmparse.cpp" break; -case 707: +case 689: if (!yytrial) -#line 1764 "asmparse.y" +#line 1725 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); @@ -10511,11 +10354,11 @@ case 707: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10515 "asmparse.cpp.tab.c" +#line 10358 "asmparse.cpp" break; -case 708: +case 690: if (!yytrial) -#line 1779 "asmparse.y" +#line 1740 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); @@ -10531,924 +10374,924 @@ case 708: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 10535 "asmparse.cpp.tab.c" +#line 10378 "asmparse.cpp" break; -case 709: +case 691: if (!yytrial) -#line 1794 "asmparse.y" +#line 1755 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10541 "asmparse.cpp.tab.c" +#line 10384 "asmparse.cpp" break; -case 710: +case 692: if (!yytrial) -#line 1795 "asmparse.y" +#line 1756 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10547 "asmparse.cpp.tab.c" +#line 10390 "asmparse.cpp" break; -case 711: +case 693: if (!yytrial) -#line 1796 "asmparse.y" +#line 1757 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10553 "asmparse.cpp.tab.c" +#line 10396 "asmparse.cpp" break; -case 712: +case 694: if (!yytrial) -#line 1797 "asmparse.y" +#line 1758 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10559 "asmparse.cpp.tab.c" +#line 10402 "asmparse.cpp" break; -case 713: +case 695: if (!yytrial) -#line 1798 "asmparse.y" +#line 1759 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10565 "asmparse.cpp.tab.c" +#line 10408 "asmparse.cpp" break; -case 714: +case 696: if (!yytrial) -#line 1799 "asmparse.y" +#line 1760 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10571 "asmparse.cpp.tab.c" +#line 10414 "asmparse.cpp" break; -case 715: +case 697: if (!yytrial) -#line 1800 "asmparse.y" +#line 1761 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10577 "asmparse.cpp.tab.c" +#line 10420 "asmparse.cpp" break; -case 716: +case 698: if (!yytrial) -#line 1803 "asmparse.y" +#line 1764 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10583 "asmparse.cpp.tab.c" +#line 10426 "asmparse.cpp" break; -case 717: +case 699: if (!yytrial) -#line 1804 "asmparse.y" +#line 1765 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10589 "asmparse.cpp.tab.c" +#line 10432 "asmparse.cpp" break; -case 718: +case 700: if (!yytrial) -#line 1805 "asmparse.y" +#line 1766 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10595 "asmparse.cpp.tab.c" +#line 10438 "asmparse.cpp" break; -case 719: +case 701: if (!yytrial) -#line 1806 "asmparse.y" +#line 1767 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10601 "asmparse.cpp.tab.c" +#line 10444 "asmparse.cpp" break; -case 720: +case 702: if (!yytrial) -#line 1807 "asmparse.y" +#line 1768 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10607 "asmparse.cpp.tab.c" +#line 10450 "asmparse.cpp" break; -case 721: +case 703: if (!yytrial) -#line 1808 "asmparse.y" +#line 1769 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10613 "asmparse.cpp.tab.c" +#line 10456 "asmparse.cpp" break; -case 722: +case 704: if (!yytrial) -#line 1809 "asmparse.y" +#line 1770 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10619 "asmparse.cpp.tab.c" +#line 10462 "asmparse.cpp" break; -case 723: +case 705: if (!yytrial) -#line 1810 "asmparse.y" +#line 1771 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10625 "asmparse.cpp.tab.c" +#line 10468 "asmparse.cpp" break; -case 724: +case 706: if (!yytrial) -#line 1811 "asmparse.y" +#line 1772 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10631 "asmparse.cpp.tab.c" +#line 10474 "asmparse.cpp" break; -case 725: +case 707: if (!yytrial) -#line 1812 "asmparse.y" +#line 1773 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10637 "asmparse.cpp.tab.c" +#line 10480 "asmparse.cpp" break; -case 726: +case 708: if (!yytrial) -#line 1813 "asmparse.y" +#line 1774 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10643 "asmparse.cpp.tab.c" +#line 10486 "asmparse.cpp" break; -case 727: +case 709: if (!yytrial) -#line 1814 "asmparse.y" +#line 1775 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10649 "asmparse.cpp.tab.c" +#line 10492 "asmparse.cpp" break; -case 728: +case 710: if (!yytrial) -#line 1815 "asmparse.y" +#line 1776 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10655 "asmparse.cpp.tab.c" +#line 10498 "asmparse.cpp" break; -case 729: +case 711: if (!yytrial) -#line 1816 "asmparse.y" +#line 1777 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10661 "asmparse.cpp.tab.c" +#line 10504 "asmparse.cpp" break; -case 730: +case 712: if (!yytrial) -#line 1817 "asmparse.y" +#line 1778 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10667 "asmparse.cpp.tab.c" +#line 10510 "asmparse.cpp" break; -case 731: +case 713: if (!yytrial) -#line 1818 "asmparse.y" +#line 1779 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10673 "asmparse.cpp.tab.c" +#line 10516 "asmparse.cpp" break; -case 732: +case 714: if (!yytrial) -#line 1819 "asmparse.y" +#line 1780 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10679 "asmparse.cpp.tab.c" +#line 10522 "asmparse.cpp" break; -case 733: +case 715: if (!yytrial) -#line 1820 "asmparse.y" +#line 1781 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10685 "asmparse.cpp.tab.c" +#line 10528 "asmparse.cpp" break; -case 734: +case 716: if (!yytrial) -#line 1823 "asmparse.y" +#line 1784 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; } -#line 10691 "asmparse.cpp.tab.c" +#line 10534 "asmparse.cpp" break; -case 735: +case 717: if (!yytrial) -#line 1824 "asmparse.y" +#line 1785 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10697 "asmparse.cpp.tab.c" +#line 10540 "asmparse.cpp" break; -case 736: +case 718: if (!yytrial) -#line 1827 "asmparse.y" +#line 1788 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10703 "asmparse.cpp.tab.c" +#line 10546 "asmparse.cpp" break; -case 737: +case 719: if (!yytrial) -#line 1828 "asmparse.y" +#line 1789 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10709 "asmparse.cpp.tab.c" +#line 10552 "asmparse.cpp" break; -case 738: +case 720: if (!yytrial) -#line 1829 "asmparse.y" +#line 1790 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10715 "asmparse.cpp.tab.c" +#line 10558 "asmparse.cpp" break; -case 739: +case 721: if (!yytrial) -#line 1830 "asmparse.y" +#line 1791 "asmparse.y" { FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10723 "asmparse.cpp.tab.c" +#line 10566 "asmparse.cpp" break; -case 740: +case 722: if (!yytrial) -#line 1833 "asmparse.y" +#line 1794 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10729 "asmparse.cpp.tab.c" +#line 10572 "asmparse.cpp" break; -case 741: +case 723: if (!yytrial) -#line 1838 "asmparse.y" +#line 1799 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10735 "asmparse.cpp.tab.c" +#line 10578 "asmparse.cpp" break; -case 742: +case 724: if (!yytrial) -#line 1840 "asmparse.y" +#line 1801 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10741 "asmparse.cpp.tab.c" +#line 10584 "asmparse.cpp" break; -case 743: +case 725: if (!yytrial) -#line 1841 "asmparse.y" +#line 1802 "asmparse.y" { PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10747 "asmparse.cpp.tab.c" +#line 10590 "asmparse.cpp" break; -case 744: +case 726: if (!yytrial) -#line 1842 "asmparse.y" +#line 1803 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10753 "asmparse.cpp.tab.c" +#line 10596 "asmparse.cpp" break; -case 745: +case 727: if (!yytrial) -#line 1844 "asmparse.y" +#line 1805 "asmparse.y" { PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10759 "asmparse.cpp.tab.c" +#line 10602 "asmparse.cpp" break; -case 746: +case 728: if (!yytrial) -#line 1846 "asmparse.y" +#line 1807 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yyvsp[-1].binstr); PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 10770 "asmparse.cpp.tab.c" +#line 10613 "asmparse.cpp" break; -case 747: +case 729: if (!yytrial) -#line 1854 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10776 "asmparse.cpp.tab.c" +#line 10619 "asmparse.cpp" break; -case 748: +case 730: if (!yytrial) -#line 1855 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10782 "asmparse.cpp.tab.c" +#line 10625 "asmparse.cpp" break; -case 749: +case 731: if (!yytrial) -#line 1856 "asmparse.y" +#line 1817 "asmparse.y" { yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10788 "asmparse.cpp.tab.c" +#line 10631 "asmparse.cpp" break; -case 750: +case 732: if (!yytrial) -#line 1860 "asmparse.y" +#line 1821 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10795 "asmparse.cpp.tab.c" +#line 10638 "asmparse.cpp" break; -case 751: +case 733: if (!yytrial) -#line 1863 "asmparse.y" +#line 1824 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 10802 "asmparse.cpp.tab.c" +#line 10645 "asmparse.cpp" break; -case 752: +case 734: if (!yytrial) -#line 1867 "asmparse.y" +#line 1828 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10808 "asmparse.cpp.tab.c" +#line 10651 "asmparse.cpp" break; -case 753: +case 735: if (!yytrial) -#line 1869 "asmparse.y" +#line 1830 "asmparse.y" { yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10814 "asmparse.cpp.tab.c" +#line 10657 "asmparse.cpp" break; -case 754: +case 736: if (!yytrial) -#line 1872 "asmparse.y" +#line 1833 "asmparse.y" { yyval.pair = yyvsp[0].pair; } -#line 10820 "asmparse.cpp.tab.c" +#line 10663 "asmparse.cpp" break; -case 755: +case 737: if (!yytrial) -#line 1873 "asmparse.y" +#line 1834 "asmparse.y" { yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 10826 "asmparse.cpp.tab.c" +#line 10669 "asmparse.cpp" break; -case 756: +case 738: if (!yytrial) -#line 1876 "asmparse.y" +#line 1837 "asmparse.y" { yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 10832 "asmparse.cpp.tab.c" +#line 10675 "asmparse.cpp" break; -case 757: +case 739: if (!yytrial) -#line 1879 "asmparse.y" +#line 1840 "asmparse.y" { yyval.int32 = 1; } -#line 10838 "asmparse.cpp.tab.c" +#line 10681 "asmparse.cpp" break; -case 758: +case 740: if (!yytrial) -#line 1880 "asmparse.y" +#line 1841 "asmparse.y" { yyval.int32 = 0; } -#line 10844 "asmparse.cpp.tab.c" +#line 10687 "asmparse.cpp" break; -case 759: +case 741: if (!yytrial) -#line 1883 "asmparse.y" +#line 1844 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10852 "asmparse.cpp.tab.c" +#line 10695 "asmparse.cpp" break; -case 760: +case 742: if (!yytrial) -#line 1886 "asmparse.y" +#line 1847 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10860 "asmparse.cpp.tab.c" +#line 10703 "asmparse.cpp" break; -case 761: +case 743: if (!yytrial) -#line 1889 "asmparse.y" +#line 1850 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10868 "asmparse.cpp.tab.c" +#line 10711 "asmparse.cpp" break; -case 762: +case 744: if (!yytrial) -#line 1892 "asmparse.y" +#line 1853 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; yyval.binstr->appendInt8(0); } -#line 10877 "asmparse.cpp.tab.c" +#line 10720 "asmparse.cpp" break; -case 763: +case 745: if (!yytrial) -#line 1896 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10888 "asmparse.cpp.tab.c" +#line 10731 "asmparse.cpp" break; -case 764: +case 746: if (!yytrial) -#line 1902 "asmparse.y" +#line 1863 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10899 "asmparse.cpp.tab.c" +#line 10742 "asmparse.cpp" break; -case 765: +case 747: if (!yytrial) -#line 1908 "asmparse.y" +#line 1869 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10910 "asmparse.cpp.tab.c" +#line 10753 "asmparse.cpp" break; -case 766: +case 748: if (!yytrial) -#line 1914 "asmparse.y" +#line 1875 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yyvsp[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10921 "asmparse.cpp.tab.c" +#line 10764 "asmparse.cpp" break; -case 767: +case 749: if (!yytrial) -#line 1922 "asmparse.y" +#line 1883 "asmparse.y" { yyval.secAct = dclRequest; } -#line 10927 "asmparse.cpp.tab.c" +#line 10770 "asmparse.cpp" break; -case 768: +case 750: if (!yytrial) -#line 1923 "asmparse.y" +#line 1884 "asmparse.y" { yyval.secAct = dclDemand; } -#line 10933 "asmparse.cpp.tab.c" +#line 10776 "asmparse.cpp" break; -case 769: +case 751: if (!yytrial) -#line 1924 "asmparse.y" +#line 1885 "asmparse.y" { yyval.secAct = dclAssert; } -#line 10939 "asmparse.cpp.tab.c" +#line 10782 "asmparse.cpp" break; -case 770: +case 752: if (!yytrial) -#line 1925 "asmparse.y" +#line 1886 "asmparse.y" { yyval.secAct = dclDeny; } -#line 10945 "asmparse.cpp.tab.c" +#line 10788 "asmparse.cpp" break; -case 771: +case 753: if (!yytrial) -#line 1926 "asmparse.y" +#line 1887 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 10951 "asmparse.cpp.tab.c" +#line 10794 "asmparse.cpp" break; -case 772: +case 754: if (!yytrial) -#line 1927 "asmparse.y" +#line 1888 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 10957 "asmparse.cpp.tab.c" +#line 10800 "asmparse.cpp" break; -case 773: +case 755: if (!yytrial) -#line 1928 "asmparse.y" +#line 1889 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 10963 "asmparse.cpp.tab.c" +#line 10806 "asmparse.cpp" break; -case 774: +case 756: if (!yytrial) -#line 1929 "asmparse.y" +#line 1890 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 10969 "asmparse.cpp.tab.c" +#line 10812 "asmparse.cpp" break; -case 775: +case 757: if (!yytrial) -#line 1930 "asmparse.y" +#line 1891 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 10975 "asmparse.cpp.tab.c" +#line 10818 "asmparse.cpp" break; -case 776: +case 758: if (!yytrial) -#line 1931 "asmparse.y" +#line 1892 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 10981 "asmparse.cpp.tab.c" +#line 10824 "asmparse.cpp" break; -case 777: +case 759: if (!yytrial) -#line 1932 "asmparse.y" +#line 1893 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 10987 "asmparse.cpp.tab.c" +#line 10830 "asmparse.cpp" break; -case 778: +case 760: if (!yytrial) -#line 1933 "asmparse.y" +#line 1894 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 10993 "asmparse.cpp.tab.c" +#line 10836 "asmparse.cpp" break; -case 779: +case 761: if (!yytrial) -#line 1934 "asmparse.y" +#line 1895 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 10999 "asmparse.cpp.tab.c" +#line 10842 "asmparse.cpp" break; -case 780: +case 762: if (!yytrial) -#line 1935 "asmparse.y" +#line 1896 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11005 "asmparse.cpp.tab.c" +#line 10848 "asmparse.cpp" break; -case 781: +case 763: if (!yytrial) -#line 1936 "asmparse.y" +#line 1897 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11011 "asmparse.cpp.tab.c" +#line 10854 "asmparse.cpp" break; -case 782: +case 764: if (!yytrial) -#line 1940 "asmparse.y" +#line 1901 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11017 "asmparse.cpp.tab.c" +#line 10860 "asmparse.cpp" break; -case 783: +case 765: if (!yytrial) -#line 1941 "asmparse.y" +#line 1902 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11023 "asmparse.cpp.tab.c" +#line 10866 "asmparse.cpp" break; -case 784: +case 766: if (!yytrial) -#line 1944 "asmparse.y" +#line 1905 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11031 "asmparse.cpp.tab.c" +#line 10874 "asmparse.cpp" break; -case 785: +case 767: if (!yytrial) -#line 1947 "asmparse.y" +#line 1908 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11038 "asmparse.cpp.tab.c" +#line 10881 "asmparse.cpp" break; -case 786: +case 768: if (!yytrial) -#line 1949 "asmparse.y" +#line 1910 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11046 "asmparse.cpp.tab.c" +#line 10889 "asmparse.cpp" break; -case 787: +case 769: if (!yytrial) -#line 1952 "asmparse.y" +#line 1913 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11053 "asmparse.cpp.tab.c" +#line 10896 "asmparse.cpp" break; -case 788: +case 770: if (!yytrial) -#line 1955 "asmparse.y" +#line 1916 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11061 "asmparse.cpp.tab.c" +#line 10904 "asmparse.cpp" break; -case 789: +case 771: if (!yytrial) -#line 1959 "asmparse.y" +#line 1920 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11068 "asmparse.cpp.tab.c" +#line 10911 "asmparse.cpp" break; -case 790: +case 772: if (!yytrial) -#line 1962 "asmparse.y" +#line 1923 "asmparse.y" { PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].string);} -#line 11076 "asmparse.cpp.tab.c" +#line 10919 "asmparse.cpp" break; -case 791: +case 773: if (!yytrial) -#line 1966 "asmparse.y" +#line 1927 "asmparse.y" { PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11083 "asmparse.cpp.tab.c" +#line 10926 "asmparse.cpp" break; -case 792: +case 774: if (!yytrial) -#line 1969 "asmparse.y" +#line 1930 "asmparse.y" { PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; PASM->SetSourceFileName(yyvsp[0].string);} -#line 11091 "asmparse.cpp.tab.c" +#line 10934 "asmparse.cpp" break; -case 793: +case 775: if (!yytrial) -#line 1973 "asmparse.y" +#line 1934 "asmparse.y" { PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 11098 "asmparse.cpp.tab.c" +#line 10941 "asmparse.cpp" break; -case 794: +case 776: if (!yytrial) -#line 1975 "asmparse.y" +#line 1936 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 11106 "asmparse.cpp.tab.c" +#line 10949 "asmparse.cpp" break; -case 795: +case 777: if (!yytrial) -#line 1982 "asmparse.y" +#line 1943 "asmparse.y" { PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 11112 "asmparse.cpp.tab.c" +#line 10955 "asmparse.cpp" break; -case 796: +case 778: if (!yytrial) -#line 1983 "asmparse.y" +#line 1944 "asmparse.y" { PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 11118 "asmparse.cpp.tab.c" +#line 10961 "asmparse.cpp" break; -case 797: +case 779: if (!yytrial) -#line 1986 "asmparse.y" +#line 1947 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11124 "asmparse.cpp.tab.c" +#line 10967 "asmparse.cpp" break; -case 798: +case 780: if (!yytrial) -#line 1987 "asmparse.y" +#line 1948 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 11130 "asmparse.cpp.tab.c" +#line 10973 "asmparse.cpp" break; -case 799: +case 781: if (!yytrial) -#line 1990 "asmparse.y" +#line 1951 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11136 "asmparse.cpp.tab.c" +#line 10979 "asmparse.cpp" break; -case 800: +case 782: if (!yytrial) -#line 1991 "asmparse.y" +#line 1952 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11142 "asmparse.cpp.tab.c" +#line 10985 "asmparse.cpp" break; -case 801: +case 783: if (!yytrial) -#line 1994 "asmparse.y" +#line 1955 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11148 "asmparse.cpp.tab.c" +#line 10991 "asmparse.cpp" break; -case 802: +case 784: if (!yytrial) -#line 1997 "asmparse.y" +#line 1958 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 11154 "asmparse.cpp.tab.c" +#line 10997 "asmparse.cpp" break; -case 803: +case 785: if (!yytrial) -#line 2000 "asmparse.y" +#line 1961 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11160 "asmparse.cpp.tab.c" +#line 11003 "asmparse.cpp" break; -case 804: +case 786: if (!yytrial) -#line 2001 "asmparse.y" +#line 1962 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11166 "asmparse.cpp.tab.c" +#line 11009 "asmparse.cpp" break; -case 805: +case 787: if (!yytrial) -#line 2002 "asmparse.y" +#line 1963 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11172 "asmparse.cpp.tab.c" +#line 11015 "asmparse.cpp" break; -case 806: +case 788: if (!yytrial) -#line 2003 "asmparse.y" +#line 1964 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11178 "asmparse.cpp.tab.c" +#line 11021 "asmparse.cpp" break; -case 807: +case 789: if (!yytrial) -#line 2004 "asmparse.y" +#line 1965 "asmparse.y" { yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11184 "asmparse.cpp.tab.c" +#line 11027 "asmparse.cpp" break; -case 808: +case 790: if (!yytrial) -#line 2005 "asmparse.y" +#line 1966 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11190 "asmparse.cpp.tab.c" +#line 11033 "asmparse.cpp" break; -case 809: +case 791: if (!yytrial) -#line 2006 "asmparse.y" +#line 1967 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11196 "asmparse.cpp.tab.c" +#line 11039 "asmparse.cpp" break; -case 810: +case 792: if (!yytrial) -#line 2007 "asmparse.y" +#line 1968 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11202 "asmparse.cpp.tab.c" +#line 11045 "asmparse.cpp" break; -case 811: +case 793: if (!yytrial) -#line 2008 "asmparse.y" +#line 1969 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11208 "asmparse.cpp.tab.c" +#line 11051 "asmparse.cpp" break; -case 812: +case 794: if (!yytrial) -#line 2009 "asmparse.y" +#line 1970 "asmparse.y" { SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11214 "asmparse.cpp.tab.c" +#line 11057 "asmparse.cpp" break; -case 815: +case 797: if (!yytrial) -#line 2016 "asmparse.y" +#line 1977 "asmparse.y" { PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11220 "asmparse.cpp.tab.c" +#line 11063 "asmparse.cpp" break; -case 818: +case 800: if (!yytrial) -#line 2021 "asmparse.y" +#line 1982 "asmparse.y" { yyval.int32 = yyvsp[0].int32; } -#line 11226 "asmparse.cpp.tab.c" +#line 11069 "asmparse.cpp" break; -case 819: +case 801: if (!yytrial) -#line 2022 "asmparse.y" +#line 1983 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 11232 "asmparse.cpp.tab.c" +#line 11075 "asmparse.cpp" break; -case 820: +case 802: if (!yytrial) -#line 2025 "asmparse.y" +#line 1986 "asmparse.y" { PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11238 "asmparse.cpp.tab.c" +#line 11081 "asmparse.cpp" break; -case 821: +case 803: if (!yytrial) -#line 2027 "asmparse.y" +#line 1988 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11244 "asmparse.cpp.tab.c" +#line 11087 "asmparse.cpp" break; -case 822: +case 804: if (!yytrial) -#line 2028 "asmparse.y" +#line 1989 "asmparse.y" { yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11250 "asmparse.cpp.tab.c" +#line 11093 "asmparse.cpp" break; -case 823: +case 805: if (!yytrial) -#line 2029 "asmparse.y" +#line 1990 "asmparse.y" { PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11256 "asmparse.cpp.tab.c" +#line 11099 "asmparse.cpp" break; -case 826: +case 808: if (!yytrial) -#line 2034 "asmparse.y" +#line 1995 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11262 "asmparse.cpp.tab.c" +#line 11105 "asmparse.cpp" break; -case 827: +case 809: if (!yytrial) -#line 2037 "asmparse.y" +#line 1998 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11268 "asmparse.cpp.tab.c" +#line 11111 "asmparse.cpp" break; -case 828: +case 810: if (!yytrial) -#line 2040 "asmparse.y" +#line 2001 "asmparse.y" { bParsingByteArray = TRUE; } -#line 11274 "asmparse.cpp.tab.c" +#line 11117 "asmparse.cpp" break; -case 829: +case 811: if (!yytrial) -#line 2044 "asmparse.y" +#line 2005 "asmparse.y" { PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11280 "asmparse.cpp.tab.c" +#line 11123 "asmparse.cpp" break; -case 830: +case 812: if (!yytrial) -#line 2046 "asmparse.y" +#line 2007 "asmparse.y" { PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11286 "asmparse.cpp.tab.c" +#line 11129 "asmparse.cpp" break; -case 833: +case 815: if (!yytrial) -#line 2053 "asmparse.y" +#line 2014 "asmparse.y" { PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11292 "asmparse.cpp.tab.c" +#line 11135 "asmparse.cpp" break; -case 835: +case 817: if (!yytrial) -#line 2055 "asmparse.y" +#line 2016 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11298 "asmparse.cpp.tab.c" +#line 11141 "asmparse.cpp" break; -case 836: +case 818: if (!yytrial) -#line 2056 "asmparse.y" +#line 2017 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 11304 "asmparse.cpp.tab.c" +#line 11147 "asmparse.cpp" break; -case 837: +case 819: if (!yytrial) -#line 2059 "asmparse.y" +#line 2020 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11310 "asmparse.cpp.tab.c" +#line 11153 "asmparse.cpp" break; -case 838: +case 820: if (!yytrial) -#line 2062 "asmparse.y" +#line 2023 "asmparse.y" { PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11316 "asmparse.cpp.tab.c" +#line 11159 "asmparse.cpp" break; -case 839: +case 821: if (!yytrial) -#line 2065 "asmparse.y" +#line 2026 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 11322 "asmparse.cpp.tab.c" +#line 11165 "asmparse.cpp" break; -case 840: +case 822: if (!yytrial) -#line 2066 "asmparse.y" +#line 2027 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11328 "asmparse.cpp.tab.c" +#line 11171 "asmparse.cpp" break; -case 841: +case 823: if (!yytrial) -#line 2067 "asmparse.y" +#line 2028 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11334 "asmparse.cpp.tab.c" +#line 11177 "asmparse.cpp" break; -case 842: +case 824: if (!yytrial) -#line 2068 "asmparse.y" +#line 2029 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11340 "asmparse.cpp.tab.c" +#line 11183 "asmparse.cpp" break; -case 843: +case 825: if (!yytrial) -#line 2069 "asmparse.y" +#line 2030 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11346 "asmparse.cpp.tab.c" +#line 11189 "asmparse.cpp" break; -case 844: +case 826: if (!yytrial) -#line 2070 "asmparse.y" +#line 2031 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11352 "asmparse.cpp.tab.c" +#line 11195 "asmparse.cpp" break; -case 845: +case 827: if (!yytrial) -#line 2071 "asmparse.y" +#line 2032 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11358 "asmparse.cpp.tab.c" +#line 11201 "asmparse.cpp" break; -case 846: +case 828: if (!yytrial) -#line 2072 "asmparse.y" +#line 2033 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11364 "asmparse.cpp.tab.c" +#line 11207 "asmparse.cpp" break; -case 847: +case 829: if (!yytrial) -#line 2073 "asmparse.y" +#line 2034 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11370 "asmparse.cpp.tab.c" +#line 11213 "asmparse.cpp" break; -case 848: +case 830: if (!yytrial) -#line 2074 "asmparse.y" +#line 2035 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11376 "asmparse.cpp.tab.c" +#line 11219 "asmparse.cpp" break; -case 851: +case 833: if (!yytrial) -#line 2081 "asmparse.y" +#line 2042 "asmparse.y" { PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11382 "asmparse.cpp.tab.c" +#line 11225 "asmparse.cpp" break; -case 852: +case 834: if (!yytrial) -#line 2082 "asmparse.y" +#line 2043 "asmparse.y" { PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11388 "asmparse.cpp.tab.c" +#line 11231 "asmparse.cpp" break; -case 853: +case 835: if (!yytrial) -#line 2083 "asmparse.y" +#line 2044 "asmparse.y" { PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11394 "asmparse.cpp.tab.c" +#line 11237 "asmparse.cpp" break; -case 854: +case 836: if (!yytrial) -#line 2084 "asmparse.y" +#line 2045 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 11401 "asmparse.cpp.tab.c" +#line 11244 "asmparse.cpp" break; -case 855: +case 837: if (!yytrial) -#line 2086 "asmparse.y" +#line 2047 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11408 "asmparse.cpp.tab.c" +#line 11251 "asmparse.cpp" break; -case 858: +case 840: if (!yytrial) -#line 2092 "asmparse.y" +#line 2053 "asmparse.y" { PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11414 "asmparse.cpp.tab.c" +#line 11257 "asmparse.cpp" break; -case 859: +case 841: if (!yytrial) -#line 2094 "asmparse.y" +#line 2055 "asmparse.y" { PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11420 "asmparse.cpp.tab.c" +#line 11263 "asmparse.cpp" break; -case 860: +case 842: if (!yytrial) -#line 2097 "asmparse.y" +#line 2058 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11426 "asmparse.cpp.tab.c" +#line 11269 "asmparse.cpp" break; -case 861: +case 843: if (!yytrial) -#line 2098 "asmparse.y" +#line 2059 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11432 "asmparse.cpp.tab.c" +#line 11275 "asmparse.cpp" break; -case 862: +case 844: if (!yytrial) -#line 2099 "asmparse.y" +#line 2060 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11438 "asmparse.cpp.tab.c" +#line 11281 "asmparse.cpp" break; -case 865: +case 847: if (!yytrial) -#line 2106 "asmparse.y" +#line 2067 "asmparse.y" { PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11444 "asmparse.cpp.tab.c" +#line 11287 "asmparse.cpp" break; -case 866: +case 848: if (!yytrial) -#line 2107 "asmparse.y" +#line 2068 "asmparse.y" { PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11450 "asmparse.cpp.tab.c" +#line 11293 "asmparse.cpp" break; -#line 11452 "asmparse.cpp.tab.c" +#line 11295 "asmparse.cpp" #line 802 "btyaccpa.ske" default: From d5d18d6c499d127a71da8da9bdd10af62b899229 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 22:59:38 +0900 Subject: [PATCH 51/80] Char size fixes --- src/coreclr/inc/cor.h | 2 +- src/coreclr/inc/formattype.cpp | 4 ++-- src/coreclr/vm/typestring.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index 6d9b8c5bc9f31..636e4ec82b4c1 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -1814,10 +1814,10 @@ inline ULONG CorSigUncompressConstTypeArgData( switch (*pData++) { case ELEMENT_TYPE_BOOLEAN : - case ELEMENT_TYPE_CHAR : case ELEMENT_TYPE_I1 : case ELEMENT_TYPE_U1 : break; + case ELEMENT_TYPE_CHAR : case ELEMENT_TYPE_I2 : case ELEMENT_TYPE_U2 : size = size << 1; diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index b0fa9c93cd673..a8b901805da86 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -100,7 +100,7 @@ static void appendStrBlob(CQuickBytes *out, CorElementType type, PCCOR_SIGNATURE sprintf_s(buff, buffSize, "%s", *(BOOLEAN*)ptr == 1 ? "true" : "false"); goto APPEND; case ELEMENT_TYPE_CHAR : - sprintf_s(buff, buffSize, "%c", *(CHAR*)ptr); + sprintf_s(buff, buffSize, "%hX", *(WCHAR*)ptr); goto APPEND; case ELEMENT_TYPE_I1 : sprintf_s(buff, buffSize, "%hhd", *(int8_t*)ptr); @@ -554,7 +554,7 @@ PCCOR_SIGNATURE PrettyPrintType( case ELEMENT_TYPE_BOOLEAN : str = "bool"; goto APPEND; case ELEMENT_TYPE_CHAR : - str = "char"; goto APPEND; + str = "wchar"; goto APPEND; case ELEMENT_TYPE_I1 : str = "int8"; goto APPEND; case ELEMENT_TYPE_U1 : diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index bd49b92ef2772..02e3cdfa7f764 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -1264,7 +1264,7 @@ void TypeString::AppendConstValue(TypeNameBuilder& tnb, CorElementType valueType pValueString.Printf("true"); break; case ELEMENT_TYPE_CHAR: - pValueString.Printf("%c", *(char*)&value); + pValueString.Printf("%hX", *(WCHAR*)&value); break; case ELEMENT_TYPE_I1: pValueString.Printf("%hhd", *(uint8_t*)&value); From 49e95ab87c07f6400ab0c6e389220127b910397b Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 23:00:00 +0900 Subject: [PATCH 52/80] Use CorInfoType in jitinterface --- src/coreclr/inc/corinfo.h | 3 +-- src/coreclr/jit/eeinterface.cpp | 4 --- src/coreclr/jit/importer.cpp | 25 ++++++++++--------- .../Common/Internal/Runtime/CorConstants.cs | 1 + .../tools/Common/JitInterface/CorInfoImpl.cs | 18 ++++++++++--- .../tools/Common/JitInterface/CorInfoTypes.cs | 5 ++++ .../tools/superpmi/superpmi-shared/agnostic.h | 3 +++ .../superpmi-shared/spmidumphelper.cpp | 5 ++-- .../superpmi-shared/spmirecordhelper.h | 13 ++++++++++ src/coreclr/vm/jitinterface.cpp | 6 ++--- src/coreclr/vm/typehandle.cpp | 14 ----------- 11 files changed, 56 insertions(+), 41 deletions(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index c9baeaf67ca43..73d267b3bd572 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -718,7 +718,6 @@ enum CorInfoType // the JIT in "import only" mode. CORINFO_TYPE_VAR = 0x16, - CORINFO_TYPE_CTARG = 0x17, CORINFO_TYPE_COUNT, // number of jit types }; @@ -1576,7 +1575,7 @@ struct CORINFO_RESOLVED_TOKEN // [Out] Only meaningful if the resolved token is a const value argument. bool isConstValue; - CorElementType constValueType; + CorInfoType constValueType; uint64_t constValue; }; diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index 244c567060f3a..b6b853e4883a9 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -274,10 +274,6 @@ void Compiler::eePrintTypeOrJitAlias(StringPrinter* printer, CORINFO_CLASS_HANDL { eePrintType(printer, clsHnd, includeInstantiation); } - else if (typ == CORINFO_TYPE_CTARG) - { - eePrintConstValue(printer, info.compCompHnd->getConstValueType(clsHnd), info.compCompHnd->getConstValue(clsHnd)); - } else { eePrintJitType(printer, JitType2PreciseVarType(typ)); diff --git a/src/coreclr/jit/importer.cpp b/src/coreclr/jit/importer.cpp index 74cd2e8ab426c..ced569e8c494c 100644 --- a/src/coreclr/jit/importer.cpp +++ b/src/coreclr/jit/importer.cpp @@ -9728,31 +9728,32 @@ void Compiler::impImportBlockCode(BasicBlock* block) { switch (resolvedToken.constValueType) { - case ELEMENT_TYPE_BOOLEAN: - case ELEMENT_TYPE_CHAR: - case ELEMENT_TYPE_I1: - case ELEMENT_TYPE_U1: + case CORINFO_TYPE_BOOL: + case CORINFO_TYPE_BYTE: + case CORINFO_TYPE_UBYTE: cval.intVal = (int)*(uint8_t*)&resolvedToken.constValue; goto PUSH_I4CON; - case ELEMENT_TYPE_I2: - case ELEMENT_TYPE_U2: + case CORINFO_TYPE_CHAR: + case CORINFO_TYPE_SHORT: + case CORINFO_TYPE_USHORT: cval.intVal = (int)*(uint16_t*)&resolvedToken.constValue; goto PUSH_I4CON; - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: + case CORINFO_TYPE_INT: + case CORINFO_TYPE_UINT: cval.intVal = (int)*(uint32_t*)&resolvedToken.constValue; goto PUSH_I4CON; - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: + case CORINFO_TYPE_LONG: + case CORINFO_TYPE_ULONG: cval.lngVal = (long)resolvedToken.constValue; + JITDUMP(" 0x%016llx", cval.lngVal); impPushOnStack(gtNewLconNode(cval.lngVal), typeInfo(TYP_LONG)); break; - case ELEMENT_TYPE_R4: + case CORINFO_TYPE_FLOAT: cval.dblVal = *(float*)&resolvedToken.constValue; JITDUMP(" %#.17g", cval.dblVal); impPushOnStack(gtNewDconNode(cval.dblVal, TYP_FLOAT), typeInfo(TYP_DOUBLE)); break; - case ELEMENT_TYPE_R8: + case CORINFO_TYPE_DOUBLE: cval.dblVal = *(double*)&resolvedToken.constValue; JITDUMP(" %#.17g", cval.dblVal); impPushOnStack(gtNewDconNode(cval.dblVal), typeInfo(TYP_DOUBLE)); diff --git a/src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs b/src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs index 9754321213b9d..211c4368e9295 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs @@ -36,6 +36,7 @@ public enum CorElementType : byte ELEMENT_TYPE_MVAR = 30, ELEMENT_TYPE_CMOD_REQD = 31, ELEMENT_TYPE_CMOD_OPT = 32, + ELEMENT_TYPE_CTARG = 34, // ZapSig encoding for ELEMENT_TYPE_VAR and ELEMENT_TYPE_MVAR. It is always followed // by the RID of a GenericParam token, encoded as a compressed integer. diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index c33fc6bfeec70..f318fc4581699 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -2984,19 +2984,31 @@ private CorInfoIsAccessAllowedResult canAccessClass(ref CORINFO_RESOLVED_TOKEN p return CorInfoIsAccessAllowedResult.CORINFO_ACCESS_ALLOWED; } +#pragma warning disable CA1822 // Mark members as static private bool isConstValue(CORINFO_CLASS_STRUCT_* cls) +#pragma warning restore CA1822 // Mark members as static { - throw new NotImplementedException(); + // Implemented for JIT only for now. + + return false; } +#pragma warning disable CA1822 // Mark members as static private ulong getConstValue(CORINFO_CLASS_STRUCT_* cls) +#pragma warning restore CA1822 // Mark members as static { - throw new NotImplementedException(); + // Implemented for JIT only for now. + + return 0; } +#pragma warning disable CA1822 // Mark members as static private CorInfoType getConstValueType(CORINFO_CLASS_STRUCT_* cls) +#pragma warning restore CA1822 // Mark members as static { - throw new NotImplementedException(); + // Implemented for JIT only for now. + + return (CorInfoType)0; } private nuint printFieldName(CORINFO_FIELD_STRUCT_* fld, byte* buffer, nuint bufferSize, nuint* requiredBufferSize) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs index b3dc1ffc9a297..15b47424862eb 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs @@ -302,6 +302,11 @@ public unsafe struct CORINFO_RESOLVED_TOKEN public uint cbTypeSpec; public byte* pMethodSpec; public uint cbMethodSpec; + + // [Out] Only meaningful if the resolved token is a const value argument. + public bool isConstValue; + public CorInfoType constValueType; + public ulong constValue; } [StructLayout(LayoutKind.Sequential)] diff --git a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h index b4cdb272b3209..084b302b8c3fe 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h @@ -131,6 +131,9 @@ struct Agnostic_CORINFO_RESOLVED_TOKENout DWORD cbTypeSpec; DWORD pMethodSpec_Index; DWORD cbMethodSpec; + DWORD isConstValue; + DWORD constValueType; + DWORDLONG constValue; }; struct Agnostic_GetArgType_Key diff --git a/src/coreclr/tools/superpmi/superpmi-shared/spmidumphelper.cpp b/src/coreclr/tools/superpmi/superpmi-shared/spmidumphelper.cpp index 083b80c03286c..f7aefe8538289 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/spmidumphelper.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/spmidumphelper.cpp @@ -23,9 +23,10 @@ std::string SpmiDumpHelper::DumpAgnostic_CORINFO_RESOLVED_TOKENout( const Agnostic_CORINFO_RESOLVED_TOKENout& tokenOut) { char buffer[MAX_BUFFER_SIZE]; - sprintf_s(buffer, MAX_BUFFER_SIZE, "cls-%016llX meth-%016llX fld-%016llX ti-%u ts-%u mi-%u ms-%u", tokenOut.hClass, + sprintf_s(buffer, MAX_BUFFER_SIZE, "cls-%016llX meth-%016llX fld-%016llX ti-%u ts-%u mi-%u ms-%u ic-%u cvt-%u cv-%016llX", tokenOut.hClass, tokenOut.hMethod, tokenOut.hField, tokenOut.pTypeSpec_Index, tokenOut.cbTypeSpec, - tokenOut.pMethodSpec_Index, tokenOut.cbMethodSpec); + tokenOut.pMethodSpec_Index, tokenOut.cbMethodSpec, + tokenOut.isConstValue, tokenOut.constValueType, tokenOut.constValue); return std::string(buffer); } diff --git a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h index 1214894b231ab..d1c2a5187d96d 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h @@ -144,6 +144,10 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper:: tokenOut.cbTypeSpec = (DWORD)pResolvedToken->cbTypeSpec; tokenOut.cbMethodSpec = (DWORD)pResolvedToken->cbMethodSpec; + + tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; + tokenOut.constValueType = (DWORD)pResolvedToken->constValueType; + tokenOut.constValue = pResolvedToken->constValue; } tokenOut.pTypeSpec_Index = -1; @@ -165,6 +169,9 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper::StoreAgnostic_CORIN (DWORD)buffers->AddBuffer((unsigned char*)pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); tokenOut.pMethodSpec_Index = (DWORD)buffers->AddBuffer((unsigned char*)pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec); + tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; + tokenOut.constValueType = pResolvedToken->constValueType; + tokenOut.constValue = pResolvedToken->constValue; } return tokenOut; @@ -182,6 +189,9 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper::RestoreAgnostic_COR (DWORD)buffers->Contains((unsigned char*)pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec); tokenOut.pMethodSpec_Index = (DWORD)buffers->Contains((unsigned char*)pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec); + tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; + tokenOut.constValueType = pResolvedToken->constValueType; + tokenOut.constValue = pResolvedToken->constValue; } return tokenOut; } @@ -238,6 +248,9 @@ inline void SpmiRecordsHelper::Restore_CORINFO_RESOLVED_TOKENout( pResolvedToken->cbTypeSpec = (ULONG)tokenOut.cbTypeSpec; pResolvedToken->pMethodSpec = (PCCOR_SIGNATURE)buffers->GetBuffer(tokenOut.pMethodSpec_Index); pResolvedToken->cbMethodSpec = (ULONG)tokenOut.cbMethodSpec; + pResolvedToken->isConstValue = (bool)tokenOut.isConstValue; + pResolvedToken->constValueType = (CorInfoType)tokenOut.constValueType; + pResolvedToken->constValue = (uint64_t)tokenOut.constValue; } } diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index f85fcf0b67780..6e84edbbf94ad 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -416,8 +416,6 @@ CorInfoType CEEInfo::asCorInfoType(CorElementType eeType, CORINFO_TYPE_UNDEF, // CMOD_REQD CORINFO_TYPE_UNDEF, // CMOD_OPT CORINFO_TYPE_UNDEF, // INTERNAL - - CORINFO_TYPE_CTARG // CTARG }; _ASSERTE(sizeof(map) == ELEMENT_TYPE_MAX); @@ -892,7 +890,7 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken pResolvedToken->pMethodSpec = NULL; pResolvedToken->cbMethodSpec = NULL; pResolvedToken->isConstValue = false; - pResolvedToken->constValueType = ELEMENT_TYPE_END; + pResolvedToken->constValueType = CORINFO_TYPE_UNDEF; pResolvedToken->constValue = 0; TypeHandle th; @@ -1116,7 +1114,7 @@ void CEEInfo::resolveToken(/* IN, OUT */ CORINFO_RESOLVED_TOKEN * pResolvedToken // This is a const type parameter, we need to load the type and value from TypeDesc. pResolvedToken->isConstValue = th.AsTypeDesc()->IsConstValue(); _ASSERTE(pResolvedToken->isConstValue); - pResolvedToken->constValueType = th.AsTypeDesc()->GetConstValueType().GetInternalCorElementType(); + pResolvedToken->constValueType = asCorInfoType(th.AsTypeDesc()->GetConstValueType().GetInternalCorElementType()); pResolvedToken->constValue = th.AsTypeDesc()->GetConstValue(); } else diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index bb1bbcaeb9893..c45dd5d2fbbd7 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1054,20 +1054,6 @@ CorElementType TypeHandle::GetConstValueType() const return AsConstValue()->GetConstValueType().GetInternalCorElementType(); } -BOOL TypeHandle::IsRestored_NoLogging() const -{ - LIMITED_METHOD_CONTRACT; - - if (!IsTypeDesc()) - { - return AsMethodTable()->IsRestored_NoLogging(); - } - else - { - return AsTypeDesc()->IsRestored_NoLogging(); - } -} - BOOL TypeHandle::IsRestored() const { LIMITED_METHOD_DAC_CONTRACT; From 97a60aa8843a81417e0be90f22c9fe7e3d9ef7d1 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 23:31:42 +0900 Subject: [PATCH 53/80] Initialize CORINFO_RESOLVED_TOKEN --- src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index f318fc4581699..0b867fc94f8fc 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -1734,6 +1734,9 @@ private void resolveToken(ref CORINFO_RESOLVED_TOKEN pResolvedToken) pResolvedToken.hClass = null; pResolvedToken.hMethod = null; pResolvedToken.hField = null; + pResolvedToken.isConstValue = false; + pResolvedToken.constValueType = CorInfoType.CORINFO_TYPE_UNDEF; + pResolvedToken.constValue = 0; #if READYTORUN TypeDesc owningType = methodIL.OwningMethod.GetTypicalMethodDefinition().OwningType; From e554aa5f1cfe3b112c9450f1f50fee65d90ee183 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 23:35:19 +0900 Subject: [PATCH 54/80] Fix an assert --- src/coreclr/vm/jitinterface.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 6e84edbbf94ad..190f6e8ece1d6 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -416,6 +416,8 @@ CorInfoType CEEInfo::asCorInfoType(CorElementType eeType, CORINFO_TYPE_UNDEF, // CMOD_REQD CORINFO_TYPE_UNDEF, // CMOD_OPT CORINFO_TYPE_UNDEF, // INTERNAL + + CORINFO_TYPE_UNDEF, // CTARG }; _ASSERTE(sizeof(map) == ELEMENT_TYPE_MAX); From 30b068191d3aea073307156e105271b29776e376 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 30 Jul 2023 23:39:00 +0900 Subject: [PATCH 55/80] Bring back CORINFO_TYPE_CTARG --- src/coreclr/inc/corinfo.h | 1 + src/coreclr/jit/eeinterface.cpp | 4 ++++ src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs | 1 + src/coreclr/vm/jitinterface.cpp | 2 +- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 73d267b3bd572..8386e5450225e 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -718,6 +718,7 @@ enum CorInfoType // the JIT in "import only" mode. CORINFO_TYPE_VAR = 0x16, + CORINFO_TYPE_CTARG = 0x17, CORINFO_TYPE_COUNT, // number of jit types }; diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index b6b853e4883a9..244c567060f3a 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -274,6 +274,10 @@ void Compiler::eePrintTypeOrJitAlias(StringPrinter* printer, CORINFO_CLASS_HANDL { eePrintType(printer, clsHnd, includeInstantiation); } + else if (typ == CORINFO_TYPE_CTARG) + { + eePrintConstValue(printer, info.compCompHnd->getConstValueType(clsHnd), info.compCompHnd->getConstValue(clsHnd)); + } else { eePrintJitType(printer, JitType2PreciseVarType(typ)); diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs index 15b47424862eb..19f3fcb58356f 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs @@ -683,6 +683,7 @@ public enum CorInfoType // the JIT in "import only" mode. CORINFO_TYPE_VAR = 0x16, + CORINFO_TYPE_CTARG = 0x17, CORINFO_TYPE_COUNT, // number of jit types } diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 190f6e8ece1d6..ade76234e0e67 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -417,7 +417,7 @@ CorInfoType CEEInfo::asCorInfoType(CorElementType eeType, CORINFO_TYPE_UNDEF, // CMOD_OPT CORINFO_TYPE_UNDEF, // INTERNAL - CORINFO_TYPE_UNDEF, // CTARG + CORINFO_TYPE_CTARG, // CTARG }; _ASSERTE(sizeof(map) == ELEMENT_TYPE_MAX); From e75a400bb197156215803db9e3b0eca5612496c2 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:00:47 +0900 Subject: [PATCH 56/80] Fix hash function for const value --- src/coreclr/vm/typehash.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index 6a2045a1db9ed..3798c654d5566 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -201,8 +201,11 @@ static DWORD HashConstValueType(TypeHandle valueType, uint64_t value) { WRAPPER_NO_CONTRACT; INT_PTR dwHash = 5381; + DWORD lowerPart = (DWORD)(value & 0xFFFFFFFF); + DWORD higherPart = (DWORD)((value & 0xFFFFFFFF00000000) >> 32); dwHash = ((dwHash << 5) + dwHash) ^ valueType.AsTAddr(); - dwHash = ((dwHash << 5) + dwHash) ^ value; + dwHash = ((dwHash << 5) + dwHash) ^ higherPart; + dwHash = ((dwHash << 5) + dwHash) ^ lowerPart; return (DWORD)dwHash; } From 2a8ae6d983b6e1ed494b8c4ace9ce986af8f8f1a Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:11:43 +0900 Subject: [PATCH 57/80] Handle default case in appendStrBlob --- src/coreclr/inc/formattype.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index a8b901805da86..58b04d86be892 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -139,6 +139,8 @@ static void appendStrBlob(CQuickBytes *out, CorElementType type, PCCOR_SIGNATURE APPEND: appendStr(out, buff); break; + default: + break; } delete []buff; From 6d9b91e534559aeb71f7bee37ac2273ddca4aec3 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:36:01 +0900 Subject: [PATCH 58/80] Use uint64_t instead of DWORDLONG --- src/coreclr/tools/superpmi/superpmi-shared/agnostic.h | 2 +- src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h | 2 +- .../tools/superpmi/superpmi-shared/methodcontext.cpp | 9 ++++----- .../tools/superpmi/superpmi-shared/methodcontext.h | 2 +- .../tools/superpmi/superpmi-shared/spmirecordhelper.h | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h index 084b302b8c3fe..25d151db99a0d 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h @@ -133,7 +133,7 @@ struct Agnostic_CORINFO_RESOLVED_TOKENout DWORD cbMethodSpec; DWORD isConstValue; DWORD constValueType; - DWORDLONG constValue; + uint64_t constValue; }; struct Agnostic_GetArgType_Key diff --git a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h index af6a1d6991a70..aa63c5a4447c2 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h @@ -54,7 +54,7 @@ LWM(GetArrayRank, DWORDLONG, DWORD) LWM(GetArrayIntrinsicID, DWORDLONG, DWORD) LWM(IsConstValue, DWORDLONG, DWORD) LWM(GetConstValueType, DWORDLONG, DWORD) -LWM(GetConstValue, DWORDLONG, DWORDLONG) +LWM(GetConstValue, DWORDLONG, uint64_t) LWM(GetBoundaries, DWORDLONG, Agnostic_GetBoundaries) LWM(GetBoxHelper, DWORDLONG, DWORD) LWM(GetBuiltinClass, DWORD, DWORDLONG) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp index 6e2f0a830e7fe..caf2773215f1e 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp @@ -5172,14 +5172,14 @@ bool MethodContext::repIsConstValue(CORINFO_CLASS_HANDLE cls) void MethodContext::recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result) { if (GetConstValue == nullptr) - GetConstValue = new LightWeightMap(); + GetConstValue = new LightWeightMap(); DWORDLONG key = CastHandle(cls); GetConstValue->Add(key, result); DEBUG_REC(dmpGetConstValue(key, result)); } -void MethodContext::dmpGetConstValue(DWORDLONG key, DWORDLONG value) +void MethodContext::dmpGetConstValue(DWORDLONG key, uint64_t value) { printf("GetConstValue key cls-%016" PRIX64 ", value res-0x%016llx", key, value); } @@ -5187,11 +5187,10 @@ void MethodContext::dmpGetConstValue(DWORDLONG key, DWORDLONG value) uint64_t MethodContext::repGetConstValue(CORINFO_CLASS_HANDLE cls) { DWORDLONG key = CastHandle(cls); - DWORDLONG value = LookupByKeyOrMissNoMessage(GetConstValue, key); + uint64_t value = LookupByKeyOrMissNoMessage(GetConstValue, key); DEBUG_REP(dmpGetConstValue(key, value)); - DWORDLONG result = (uint64_t)value; - return result; + return value; } void MethodContext::recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h index eb5f2fe748799..a51fac905b5d4 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h @@ -650,7 +650,7 @@ class MethodContext bool repIsConstValue(CORINFO_CLASS_HANDLE cls); void recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result); - void dmpGetConstValue(DWORDLONG key, DWORDLONG value); + void dmpGetConstValue(DWORDLONG key, uint64_t value); uint64_t repGetConstValue(CORINFO_CLASS_HANDLE cls); void recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result); diff --git a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h index d1c2a5187d96d..2495b30cd79fa 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h @@ -250,7 +250,7 @@ inline void SpmiRecordsHelper::Restore_CORINFO_RESOLVED_TOKENout( pResolvedToken->cbMethodSpec = (ULONG)tokenOut.cbMethodSpec; pResolvedToken->isConstValue = (bool)tokenOut.isConstValue; pResolvedToken->constValueType = (CorInfoType)tokenOut.constValueType; - pResolvedToken->constValue = (uint64_t)tokenOut.constValue; + pResolvedToken->constValue = tokenOut.constValue; } } From 8a6fbf5be30aa060f9257f3205134fe43641e397 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:48:08 +0900 Subject: [PATCH 59/80] Fix formatting --- src/coreclr/jit/eeinterface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index 244c567060f3a..50a3becfe45e9 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -276,7 +276,8 @@ void Compiler::eePrintTypeOrJitAlias(StringPrinter* printer, CORINFO_CLASS_HANDL } else if (typ == CORINFO_TYPE_CTARG) { - eePrintConstValue(printer, info.compCompHnd->getConstValueType(clsHnd), info.compCompHnd->getConstValue(clsHnd)); + eePrintConstValue(printer, info.compCompHnd->getConstValueType(clsHnd), + info.compCompHnd->getConstValue(clsHnd)); } else { From 9500e1bccb2f4476e2b0014579f19819ab86fbed Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:53:33 +0900 Subject: [PATCH 60/80] Switch back to DWORDLONG and use PRIX64 --- src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h | 2 +- .../tools/superpmi/superpmi-shared/methodcontext.cpp | 12 ++++++------ .../tools/superpmi/superpmi-shared/methodcontext.h | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h index aa63c5a4447c2..af6a1d6991a70 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h @@ -54,7 +54,7 @@ LWM(GetArrayRank, DWORDLONG, DWORD) LWM(GetArrayIntrinsicID, DWORDLONG, DWORD) LWM(IsConstValue, DWORDLONG, DWORD) LWM(GetConstValueType, DWORDLONG, DWORD) -LWM(GetConstValue, DWORDLONG, uint64_t) +LWM(GetConstValue, DWORDLONG, DWORDLONG) LWM(GetBoundaries, DWORDLONG, Agnostic_GetBoundaries) LWM(GetBoxHelper, DWORDLONG, DWORD) LWM(GetBuiltinClass, DWORD, DWORDLONG) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp index caf2773215f1e..e3563aed8d74d 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp @@ -5169,25 +5169,25 @@ bool MethodContext::repIsConstValue(CORINFO_CLASS_HANDLE cls) return result; } -void MethodContext::recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result) +void MethodContext::recGetConstValue(CORINFO_CLASS_HANDLE cls, DWORDLONG result) { if (GetConstValue == nullptr) - GetConstValue = new LightWeightMap(); + GetConstValue = new LightWeightMap(); DWORDLONG key = CastHandle(cls); GetConstValue->Add(key, result); DEBUG_REC(dmpGetConstValue(key, result)); } -void MethodContext::dmpGetConstValue(DWORDLONG key, uint64_t value) +void MethodContext::dmpGetConstValue(DWORDLONG key, DWORDLONG value) { - printf("GetConstValue key cls-%016" PRIX64 ", value res-0x%016llx", key, value); + printf("GetConstValue key cls-%016" PRIX64 ", value res-0x%016" PRIX64, key, value); } -uint64_t MethodContext::repGetConstValue(CORINFO_CLASS_HANDLE cls) +DWORDLONG MethodContext::repGetConstValue(CORINFO_CLASS_HANDLE cls) { DWORDLONG key = CastHandle(cls); - uint64_t value = LookupByKeyOrMissNoMessage(GetConstValue, key); + DWORDLONG value = LookupByKeyOrMissNoMessage(GetConstValue, key); DEBUG_REP(dmpGetConstValue(key, value)); return value; diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h index a51fac905b5d4..f72021a08b388 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h @@ -649,9 +649,9 @@ class MethodContext void dmpIsConstValue(DWORDLONG key, DWORD value); bool repIsConstValue(CORINFO_CLASS_HANDLE cls); - void recGetConstValue(CORINFO_CLASS_HANDLE cls, uint64_t result); - void dmpGetConstValue(DWORDLONG key, uint64_t value); - uint64_t repGetConstValue(CORINFO_CLASS_HANDLE cls); + void recGetConstValue(CORINFO_CLASS_HANDLE cls, DWORDLONG result); + void dmpGetConstValue(DWORDLONG key, DWORDLONG value); + DWORDLONG repGetConstValue(CORINFO_CLASS_HANDLE cls); void recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result); void dmpGetConstValueType(DWORDLONG key, DWORD value); From fe1f48b4f31378974bb4f9d93ebd65eb2a809225 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 00:56:51 +0900 Subject: [PATCH 61/80] DWORDLONG leftovers --- .../tools/superpmi/superpmi-shared/agnostic.h | 2 +- .../superpmi/superpmi-shared/spmirecordhelper.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h index 25d151db99a0d..084b302b8c3fe 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/agnostic.h @@ -133,7 +133,7 @@ struct Agnostic_CORINFO_RESOLVED_TOKENout DWORD cbMethodSpec; DWORD isConstValue; DWORD constValueType; - uint64_t constValue; + DWORDLONG constValue; }; struct Agnostic_GetArgType_Key diff --git a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h index 2495b30cd79fa..29d68393b5c32 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/spmirecordhelper.h @@ -147,7 +147,7 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper:: tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; tokenOut.constValueType = (DWORD)pResolvedToken->constValueType; - tokenOut.constValue = pResolvedToken->constValue; + tokenOut.constValue = (DWORDLONG)pResolvedToken->constValue; } tokenOut.pTypeSpec_Index = -1; @@ -170,8 +170,8 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper::StoreAgnostic_CORIN tokenOut.pMethodSpec_Index = (DWORD)buffers->AddBuffer((unsigned char*)pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec); tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; - tokenOut.constValueType = pResolvedToken->constValueType; - tokenOut.constValue = pResolvedToken->constValue; + tokenOut.constValueType = (DWORD)pResolvedToken->constValueType; + tokenOut.constValue = (DWORDLONG)pResolvedToken->constValue; } return tokenOut; @@ -190,8 +190,8 @@ inline Agnostic_CORINFO_RESOLVED_TOKENout SpmiRecordsHelper::RestoreAgnostic_COR tokenOut.pMethodSpec_Index = (DWORD)buffers->Contains((unsigned char*)pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec); tokenOut.isConstValue = pResolvedToken->isConstValue ? 1 : 0; - tokenOut.constValueType = pResolvedToken->constValueType; - tokenOut.constValue = pResolvedToken->constValue; + tokenOut.constValueType = (DWORD)pResolvedToken->constValueType; + tokenOut.constValue = (DWORDLONG)pResolvedToken->constValue; } return tokenOut; } @@ -250,7 +250,7 @@ inline void SpmiRecordsHelper::Restore_CORINFO_RESOLVED_TOKENout( pResolvedToken->cbMethodSpec = (ULONG)tokenOut.cbMethodSpec; pResolvedToken->isConstValue = (bool)tokenOut.isConstValue; pResolvedToken->constValueType = (CorInfoType)tokenOut.constValueType; - pResolvedToken->constValue = tokenOut.constValue; + pResolvedToken->constValue = (uint64_t)tokenOut.constValue; } } From b5ec226da3840e17caa3eea74dd28f47378cd518 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 10:28:06 +0900 Subject: [PATCH 62/80] Minor fixes --- src/coreclr/inc/formattype.cpp | 2 +- src/coreclr/md/inc/metamodel.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index 58b04d86be892..c6fe7ef647e19 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -556,7 +556,7 @@ PCCOR_SIGNATURE PrettyPrintType( case ELEMENT_TYPE_BOOLEAN : str = "bool"; goto APPEND; case ELEMENT_TYPE_CHAR : - str = "wchar"; goto APPEND; + str = "char"; goto APPEND; case ELEMENT_TYPE_I1 : str = "int8"; goto APPEND; case ELEMENT_TYPE_U1 : diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index dd35d0f57495a..b5efced1692ba 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -2010,7 +2010,7 @@ template class CMiniMdTemplate : public CMiniMdBase BOOL SupportsConstGenerics() { - // Only 2.1 of the metadata support const generics + // Only 3.0 of the metadata support const generics return (m_Schema.m_major >= METAMODEL_MAJOR_VER_V3_0 || (m_Schema.m_major == METAMODEL_MAJOR_VER_V3_0 && m_Schema.m_minor >= METAMODEL_MINOR_VER_V3_0)); }// SupportsConstGenerics From 424e9a2a72ef81f827c2eef14ac4ca001db6961f Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 17:24:25 +0900 Subject: [PATCH 63/80] Use bison for ilasm parser generator --- src/coreclr/ilasm/asmparse.y | 10 +- src/coreclr/ilasm/grammar_after.cpp | 6 +- src/coreclr/ilasm/grammar_before.cpp | 1 + src/coreclr/ilasm/prebuilt/asmparse.cpp | 19929 ++++++++++------------ 4 files changed, 8704 insertions(+), 11242 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index fd72985d7925e..b4cd8dcedf963 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -47,8 +47,8 @@ %token DOTTEDNAME /* System.Object */ %token QSTRING /* "Hello World\n" */ %token SQSTRING /* 'Hello World\n' */ -%token INT32 /* 3425 0x34FA 0352 */ -%token INT64 /* 342534523534534 0x34FA434644554 */ +%token INT32_T /* 3425 0x34FA 0352 */ +%token INT64_T /* 342534523534534 0x34FA434644554 */ %token FLOAT64 /* -334234 24E-34 */ %token HEXBYTE /* 05 1A FA */ %token TYPEDEF_T @@ -260,11 +260,11 @@ dottedName : id { $$ = $1; } | dottedName '.' dottedName { $$ = newStringWDel($1, '.', $3); } ; -int32 : INT32 { $$ = $1; } +int32 : INT32_T { $$ = $1; } ; -int64 : INT64 { $$ = $1; } - | INT32 { $$ = neg ? new __int64($1) : new __int64((unsigned)$1); } +int64 : INT64_T { $$ = $1; } + | INT32_T { $$ = neg ? new __int64($1) : new __int64((unsigned)$1); } ; float64 : FLOAT64 { $$ = $1; } diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 492411f2ae438..274c8a0eb5f2c 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1209,13 +1209,13 @@ int yylex() if ((i64 & mask64) && (i64 != largestNegVal32)) { yylval.int64 = new __int64(i64); - tok = INT64; + tok = INT64_T; if (neg) *yylval.int64 = -*yylval.int64; } else { yylval.int32 = (__int32)i64; - tok = INT32; + tok = INT32_T; if(neg) yylval.int32 = -yylval.int32; } } @@ -1280,7 +1280,7 @@ int yylex() } dbprintf((" Line %d token %d (%c) val = %s\n", PENV->curLine, tok, (tok < 128 && isprint(tok)) ? tok : ' ', - (tok > 255 && tok != INT32 && tok != INT64 && tok!= FLOAT64) ? yylval.string : "")); + (tok > 255 && tok != INT32_T && tok != INT64_T && tok!= FLOAT64) ? yylval.string : "")); PENV->curPos = curPos; PENV->curTok = curTok; diff --git a/src/coreclr/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp index b49a382f7d890..4418b02a944da 100644 --- a/src/coreclr/ilasm/grammar_before.cpp +++ b/src/coreclr/ilasm/grammar_before.cpp @@ -51,6 +51,7 @@ static char* newString(_In_ __nullterminated const char* str1); static void corEmitInt(BinStr* buff, unsigned data); static void AppendStringWithLength(BinStr* pbs, _In_ __nullterminated char* sz); static void AppendFieldToCustomBlob(BinStr* pBlob, _In_ BinStr* pField); +static unsigned corCountArgs(BinStr* args); bool bParsingByteArray = FALSE; int iOpcodeLen = 0; int iCallConv = 0; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 38b87e08b3701..cd4cdbada63bd 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -1,32 +1,424 @@ -#line 8 "btyaccpa.ske" +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* -** @(#)btyaccpar, based on byacc 1.8 (Berkeley) -*/ -#define YYBTYACC 1 +/* Bison implementation for Yacc-like parsers in C -#include -#include -#include -#include + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. -typedef int Yshort; + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -#line 2 "asmparse.y" + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -/* Licensed to the .NET Foundation under one or more agreements.*/ -/* The .NET Foundation licenses this file to you under the MIT license.*/ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ -/**/ -/* File asmparse.y*/ -/**/ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 + +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* First part of user prologue. */ +#line 1 "./asmparse.y" + + +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// +// File asmparse.y +// #include "ilasmpch.h" #include "grammar_before.cpp" -#line 15 "asmparse.y" -typedef union { +#line 85 "asmparse.cpp" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + + +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + ERROR_ = 258, /* ERROR_ */ + BAD_COMMENT_ = 259, /* BAD_COMMENT_ */ + BAD_LITERAL_ = 260, /* BAD_LITERAL_ */ + ID = 261, /* ID */ + DOTTEDNAME = 262, /* DOTTEDNAME */ + QSTRING = 263, /* QSTRING */ + SQSTRING = 264, /* SQSTRING */ + INT32_T = 265, /* INT32_T */ + INT64_T = 266, /* INT64_T */ + FLOAT64 = 267, /* FLOAT64 */ + HEXBYTE = 268, /* HEXBYTE */ + TYPEDEF_T = 269, /* TYPEDEF_T */ + TYPEDEF_M = 270, /* TYPEDEF_M */ + TYPEDEF_F = 271, /* TYPEDEF_F */ + TYPEDEF_TS = 272, /* TYPEDEF_TS */ + TYPEDEF_MR = 273, /* TYPEDEF_MR */ + TYPEDEF_CA = 274, /* TYPEDEF_CA */ + DCOLON = 275, /* DCOLON */ + ELLIPSIS = 276, /* ELLIPSIS */ + VOID_ = 277, /* VOID_ */ + BOOL_ = 278, /* BOOL_ */ + CHAR_ = 279, /* CHAR_ */ + UNSIGNED_ = 280, /* UNSIGNED_ */ + INT_ = 281, /* INT_ */ + INT8_ = 282, /* INT8_ */ + INT16_ = 283, /* INT16_ */ + INT32_ = 284, /* INT32_ */ + INT64_ = 285, /* INT64_ */ + FLOAT_ = 286, /* FLOAT_ */ + FLOAT32_ = 287, /* FLOAT32_ */ + FLOAT64_ = 288, /* FLOAT64_ */ + BYTEARRAY_ = 289, /* BYTEARRAY_ */ + UINT_ = 290, /* UINT_ */ + UINT8_ = 291, /* UINT8_ */ + UINT16_ = 292, /* UINT16_ */ + UINT32_ = 293, /* UINT32_ */ + UINT64_ = 294, /* UINT64_ */ + FLAGS_ = 295, /* FLAGS_ */ + CALLCONV_ = 296, /* CALLCONV_ */ + MDTOKEN_ = 297, /* MDTOKEN_ */ + OBJECT_ = 298, /* OBJECT_ */ + STRING_ = 299, /* STRING_ */ + NULLREF_ = 300, /* NULLREF_ */ + DEFAULT_ = 301, /* DEFAULT_ */ + CDECL_ = 302, /* CDECL_ */ + VARARG_ = 303, /* VARARG_ */ + STDCALL_ = 304, /* STDCALL_ */ + THISCALL_ = 305, /* THISCALL_ */ + FASTCALL_ = 306, /* FASTCALL_ */ + CLASS_ = 307, /* CLASS_ */ + BYREFLIKE_ = 308, /* BYREFLIKE_ */ + TYPEDREF_ = 309, /* TYPEDREF_ */ + UNMANAGED_ = 310, /* UNMANAGED_ */ + FINALLY_ = 311, /* FINALLY_ */ + HANDLER_ = 312, /* HANDLER_ */ + CATCH_ = 313, /* CATCH_ */ + FILTER_ = 314, /* FILTER_ */ + FAULT_ = 315, /* FAULT_ */ + EXTENDS_ = 316, /* EXTENDS_ */ + IMPLEMENTS_ = 317, /* IMPLEMENTS_ */ + TO_ = 318, /* TO_ */ + AT_ = 319, /* AT_ */ + TLS_ = 320, /* TLS_ */ + TRUE_ = 321, /* TRUE_ */ + FALSE_ = 322, /* FALSE_ */ + _INTERFACEIMPL = 323, /* _INTERFACEIMPL */ + VALUE_ = 324, /* VALUE_ */ + VALUETYPE_ = 325, /* VALUETYPE_ */ + NATIVE_ = 326, /* NATIVE_ */ + INSTANCE_ = 327, /* INSTANCE_ */ + SPECIALNAME_ = 328, /* SPECIALNAME_ */ + FORWARDER_ = 329, /* FORWARDER_ */ + STATIC_ = 330, /* STATIC_ */ + PUBLIC_ = 331, /* PUBLIC_ */ + PRIVATE_ = 332, /* PRIVATE_ */ + FAMILY_ = 333, /* FAMILY_ */ + FINAL_ = 334, /* FINAL_ */ + SYNCHRONIZED_ = 335, /* SYNCHRONIZED_ */ + INTERFACE_ = 336, /* INTERFACE_ */ + SEALED_ = 337, /* SEALED_ */ + NESTED_ = 338, /* NESTED_ */ + ABSTRACT_ = 339, /* ABSTRACT_ */ + AUTO_ = 340, /* AUTO_ */ + SEQUENTIAL_ = 341, /* SEQUENTIAL_ */ + EXPLICIT_ = 342, /* EXPLICIT_ */ + ANSI_ = 343, /* ANSI_ */ + UNICODE_ = 344, /* UNICODE_ */ + AUTOCHAR_ = 345, /* AUTOCHAR_ */ + IMPORT_ = 346, /* IMPORT_ */ + ENUM_ = 347, /* ENUM_ */ + VIRTUAL_ = 348, /* VIRTUAL_ */ + NOINLINING_ = 349, /* NOINLINING_ */ + AGGRESSIVEINLINING_ = 350, /* AGGRESSIVEINLINING_ */ + NOOPTIMIZATION_ = 351, /* NOOPTIMIZATION_ */ + AGGRESSIVEOPTIMIZATION_ = 352, /* AGGRESSIVEOPTIMIZATION_ */ + UNMANAGEDEXP_ = 353, /* UNMANAGEDEXP_ */ + BEFOREFIELDINIT_ = 354, /* BEFOREFIELDINIT_ */ + STRICT_ = 355, /* STRICT_ */ + RETARGETABLE_ = 356, /* RETARGETABLE_ */ + WINDOWSRUNTIME_ = 357, /* WINDOWSRUNTIME_ */ + NOPLATFORM_ = 358, /* NOPLATFORM_ */ + METHOD_ = 359, /* METHOD_ */ + FIELD_ = 360, /* FIELD_ */ + PINNED_ = 361, /* PINNED_ */ + MODREQ_ = 362, /* MODREQ_ */ + MODOPT_ = 363, /* MODOPT_ */ + SERIALIZABLE_ = 364, /* SERIALIZABLE_ */ + PROPERTY_ = 365, /* PROPERTY_ */ + TYPE_ = 366, /* TYPE_ */ + ASSEMBLY_ = 367, /* ASSEMBLY_ */ + FAMANDASSEM_ = 368, /* FAMANDASSEM_ */ + FAMORASSEM_ = 369, /* FAMORASSEM_ */ + PRIVATESCOPE_ = 370, /* PRIVATESCOPE_ */ + HIDEBYSIG_ = 371, /* HIDEBYSIG_ */ + NEWSLOT_ = 372, /* NEWSLOT_ */ + RTSPECIALNAME_ = 373, /* RTSPECIALNAME_ */ + PINVOKEIMPL_ = 374, /* PINVOKEIMPL_ */ + _CTOR = 375, /* _CTOR */ + _CCTOR = 376, /* _CCTOR */ + LITERAL_ = 377, /* LITERAL_ */ + NOTSERIALIZED_ = 378, /* NOTSERIALIZED_ */ + INITONLY_ = 379, /* INITONLY_ */ + REQSECOBJ_ = 380, /* REQSECOBJ_ */ + CIL_ = 381, /* CIL_ */ + OPTIL_ = 382, /* OPTIL_ */ + MANAGED_ = 383, /* MANAGED_ */ + FORWARDREF_ = 384, /* FORWARDREF_ */ + PRESERVESIG_ = 385, /* PRESERVESIG_ */ + RUNTIME_ = 386, /* RUNTIME_ */ + INTERNALCALL_ = 387, /* INTERNALCALL_ */ + _IMPORT = 388, /* _IMPORT */ + NOMANGLE_ = 389, /* NOMANGLE_ */ + LASTERR_ = 390, /* LASTERR_ */ + WINAPI_ = 391, /* WINAPI_ */ + AS_ = 392, /* AS_ */ + BESTFIT_ = 393, /* BESTFIT_ */ + ON_ = 394, /* ON_ */ + OFF_ = 395, /* OFF_ */ + CHARMAPERROR_ = 396, /* CHARMAPERROR_ */ + INSTR_NONE = 397, /* INSTR_NONE */ + INSTR_VAR = 398, /* INSTR_VAR */ + INSTR_I = 399, /* INSTR_I */ + INSTR_I8 = 400, /* INSTR_I8 */ + INSTR_R = 401, /* INSTR_R */ + INSTR_BRTARGET = 402, /* INSTR_BRTARGET */ + INSTR_METHOD = 403, /* INSTR_METHOD */ + INSTR_FIELD = 404, /* INSTR_FIELD */ + INSTR_TYPE = 405, /* INSTR_TYPE */ + INSTR_STRING = 406, /* INSTR_STRING */ + INSTR_SIG = 407, /* INSTR_SIG */ + INSTR_TOK = 408, /* INSTR_TOK */ + INSTR_SWITCH = 409, /* INSTR_SWITCH */ + _CLASS = 410, /* _CLASS */ + _NAMESPACE = 411, /* _NAMESPACE */ + _METHOD = 412, /* _METHOD */ + _FIELD = 413, /* _FIELD */ + _DATA = 414, /* _DATA */ + _THIS = 415, /* _THIS */ + _BASE = 416, /* _BASE */ + _NESTER = 417, /* _NESTER */ + _EMITBYTE = 418, /* _EMITBYTE */ + _TRY = 419, /* _TRY */ + _MAXSTACK = 420, /* _MAXSTACK */ + _LOCALS = 421, /* _LOCALS */ + _ENTRYPOINT = 422, /* _ENTRYPOINT */ + _ZEROINIT = 423, /* _ZEROINIT */ + _EVENT = 424, /* _EVENT */ + _ADDON = 425, /* _ADDON */ + _REMOVEON = 426, /* _REMOVEON */ + _FIRE = 427, /* _FIRE */ + _OTHER = 428, /* _OTHER */ + _PROPERTY = 429, /* _PROPERTY */ + _SET = 430, /* _SET */ + _GET = 431, /* _GET */ + _PERMISSION = 432, /* _PERMISSION */ + _PERMISSIONSET = 433, /* _PERMISSIONSET */ + REQUEST_ = 434, /* REQUEST_ */ + DEMAND_ = 435, /* DEMAND_ */ + ASSERT_ = 436, /* ASSERT_ */ + DENY_ = 437, /* DENY_ */ + PERMITONLY_ = 438, /* PERMITONLY_ */ + LINKCHECK_ = 439, /* LINKCHECK_ */ + INHERITCHECK_ = 440, /* INHERITCHECK_ */ + REQMIN_ = 441, /* REQMIN_ */ + REQOPT_ = 442, /* REQOPT_ */ + REQREFUSE_ = 443, /* REQREFUSE_ */ + PREJITGRANT_ = 444, /* PREJITGRANT_ */ + PREJITDENY_ = 445, /* PREJITDENY_ */ + NONCASDEMAND_ = 446, /* NONCASDEMAND_ */ + NONCASLINKDEMAND_ = 447, /* NONCASLINKDEMAND_ */ + NONCASINHERITANCE_ = 448, /* NONCASINHERITANCE_ */ + _LINE = 449, /* _LINE */ + P_LINE = 450, /* P_LINE */ + _LANGUAGE = 451, /* _LANGUAGE */ + _CUSTOM = 452, /* _CUSTOM */ + INIT_ = 453, /* INIT_ */ + _SIZE = 454, /* _SIZE */ + _PACK = 455, /* _PACK */ + _VTABLE = 456, /* _VTABLE */ + _VTFIXUP = 457, /* _VTFIXUP */ + FROMUNMANAGED_ = 458, /* FROMUNMANAGED_ */ + CALLMOSTDERIVED_ = 459, /* CALLMOSTDERIVED_ */ + _VTENTRY = 460, /* _VTENTRY */ + RETAINAPPDOMAIN_ = 461, /* RETAINAPPDOMAIN_ */ + _FILE = 462, /* _FILE */ + NOMETADATA_ = 463, /* NOMETADATA_ */ + _HASH = 464, /* _HASH */ + _ASSEMBLY = 465, /* _ASSEMBLY */ + _PUBLICKEY = 466, /* _PUBLICKEY */ + _PUBLICKEYTOKEN = 467, /* _PUBLICKEYTOKEN */ + ALGORITHM_ = 468, /* ALGORITHM_ */ + _VER = 469, /* _VER */ + _LOCALE = 470, /* _LOCALE */ + EXTERN_ = 471, /* EXTERN_ */ + _MRESOURCE = 472, /* _MRESOURCE */ + _MODULE = 473, /* _MODULE */ + _EXPORT = 474, /* _EXPORT */ + LEGACY_ = 475, /* LEGACY_ */ + LIBRARY_ = 476, /* LIBRARY_ */ + X86_ = 477, /* X86_ */ + AMD64_ = 478, /* AMD64_ */ + ARM_ = 479, /* ARM_ */ + ARM64_ = 480, /* ARM64_ */ + MARSHAL_ = 481, /* MARSHAL_ */ + CUSTOM_ = 482, /* CUSTOM_ */ + SYSSTRING_ = 483, /* SYSSTRING_ */ + FIXED_ = 484, /* FIXED_ */ + VARIANT_ = 485, /* VARIANT_ */ + CURRENCY_ = 486, /* CURRENCY_ */ + SYSCHAR_ = 487, /* SYSCHAR_ */ + DECIMAL_ = 488, /* DECIMAL_ */ + DATE_ = 489, /* DATE_ */ + BSTR_ = 490, /* BSTR_ */ + TBSTR_ = 491, /* TBSTR_ */ + LPSTR_ = 492, /* LPSTR_ */ + LPWSTR_ = 493, /* LPWSTR_ */ + LPTSTR_ = 494, /* LPTSTR_ */ + OBJECTREF_ = 495, /* OBJECTREF_ */ + IUNKNOWN_ = 496, /* IUNKNOWN_ */ + IDISPATCH_ = 497, /* IDISPATCH_ */ + STRUCT_ = 498, /* STRUCT_ */ + SAFEARRAY_ = 499, /* SAFEARRAY_ */ + BYVALSTR_ = 500, /* BYVALSTR_ */ + LPVOID_ = 501, /* LPVOID_ */ + ANY_ = 502, /* ANY_ */ + ARRAY_ = 503, /* ARRAY_ */ + LPSTRUCT_ = 504, /* LPSTRUCT_ */ + IIDPARAM_ = 505, /* IIDPARAM_ */ + IN_ = 506, /* IN_ */ + OUT_ = 507, /* OUT_ */ + OPT_ = 508, /* OPT_ */ + _PARAM = 509, /* _PARAM */ + _OVERRIDE = 510, /* _OVERRIDE */ + WITH_ = 511, /* WITH_ */ + NULL_ = 512, /* NULL_ */ + HRESULT_ = 513, /* HRESULT_ */ + CARRAY_ = 514, /* CARRAY_ */ + USERDEFINED_ = 515, /* USERDEFINED_ */ + RECORD_ = 516, /* RECORD_ */ + FILETIME_ = 517, /* FILETIME_ */ + BLOB_ = 518, /* BLOB_ */ + STREAM_ = 519, /* STREAM_ */ + STORAGE_ = 520, /* STORAGE_ */ + STREAMED_OBJECT_ = 521, /* STREAMED_OBJECT_ */ + STORED_OBJECT_ = 522, /* STORED_OBJECT_ */ + BLOB_OBJECT_ = 523, /* BLOB_OBJECT_ */ + CF_ = 524, /* CF_ */ + CLSID_ = 525, /* CLSID_ */ + VECTOR_ = 526, /* VECTOR_ */ + _SUBSYSTEM = 527, /* _SUBSYSTEM */ + _CORFLAGS = 528, /* _CORFLAGS */ + ALIGNMENT_ = 529, /* ALIGNMENT_ */ + _IMAGEBASE = 530, /* _IMAGEBASE */ + _STACKRESERVE = 531, /* _STACKRESERVE */ + _TYPEDEF = 532, /* _TYPEDEF */ + _TEMPLATE = 533, /* _TEMPLATE */ + _TYPELIST = 534, /* _TYPELIST */ + _MSCORLIB = 535, /* _MSCORLIB */ + P_DEFINE = 536, /* P_DEFINE */ + P_UNDEF = 537, /* P_UNDEF */ + P_IFDEF = 538, /* P_IFDEF */ + P_IFNDEF = 539, /* P_IFNDEF */ + P_ELSE = 540, /* P_ELSE */ + P_ENDIF = 541, /* P_ENDIF */ + P_INCLUDE = 542, /* P_INCLUDE */ + CONSTRAINT_ = 543, /* CONSTRAINT_ */ + CONST_ = 544 /* CONST_ */ + }; + typedef enum yytokentype yytoken_kind_t; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 15 "./asmparse.y" + CorRegTypeAttr classAttr; CorMethodAttr methAttr; CorFieldAttr fieldAttr; @@ -46,11429 +438,8498 @@ typedef union { char* string; BinStr* binstr; Labels* labels; - Instr* instr; /* instruction opcode*/ + Instr* instr; // instruction opcode NVPair* pair; pTyParList typarlist; mdToken token; TypeDefDescr* tdd; CustomDescr* cad; unsigned short opcode; -} YYSTYPE; -#define YYSTYPE YYSTYPE -#line 59 "asmparse.cpp" -#define ERROR_ 257 -#define BAD_COMMENT_ 258 -#define BAD_LITERAL_ 259 -#define ID 260 -#define DOTTEDNAME 261 -#define QSTRING 262 -#define SQSTRING 263 -#define INT32 264 -#define INT64 265 -#define FLOAT64 266 -#define HEXBYTE 267 -#define TYPEDEF_T 268 -#define TYPEDEF_M 269 -#define TYPEDEF_F 270 -#define TYPEDEF_TS 271 -#define TYPEDEF_MR 272 -#define TYPEDEF_CA 273 -#define DCOLON 274 -#define ELLIPSIS 275 -#define VOID_ 276 -#define BOOL_ 277 -#define CHAR_ 278 -#define UNSIGNED_ 279 -#define INT_ 280 -#define INT8_ 281 -#define INT16_ 282 -#define INT32_ 283 -#define INT64_ 284 -#define FLOAT_ 285 -#define FLOAT32_ 286 -#define FLOAT64_ 287 -#define BYTEARRAY_ 288 -#define UINT_ 289 -#define UINT8_ 290 -#define UINT16_ 291 -#define UINT32_ 292 -#define UINT64_ 293 -#define FLAGS_ 294 -#define CALLCONV_ 295 -#define MDTOKEN_ 296 -#define OBJECT_ 297 -#define STRING_ 298 -#define NULLREF_ 299 -#define DEFAULT_ 300 -#define CDECL_ 301 -#define VARARG_ 302 -#define STDCALL_ 303 -#define THISCALL_ 304 -#define FASTCALL_ 305 -#define CLASS_ 306 -#define BYREFLIKE_ 307 -#define TYPEDREF_ 308 -#define UNMANAGED_ 309 -#define FINALLY_ 310 -#define HANDLER_ 311 -#define CATCH_ 312 -#define FILTER_ 313 -#define FAULT_ 314 -#define EXTENDS_ 315 -#define IMPLEMENTS_ 316 -#define TO_ 317 -#define AT_ 318 -#define TLS_ 319 -#define TRUE_ 320 -#define FALSE_ 321 -#define _INTERFACEIMPL 322 -#define VALUE_ 323 -#define VALUETYPE_ 324 -#define NATIVE_ 325 -#define INSTANCE_ 326 -#define SPECIALNAME_ 327 -#define FORWARDER_ 328 -#define STATIC_ 329 -#define PUBLIC_ 330 -#define PRIVATE_ 331 -#define FAMILY_ 332 -#define FINAL_ 333 -#define SYNCHRONIZED_ 334 -#define INTERFACE_ 335 -#define SEALED_ 336 -#define NESTED_ 337 -#define ABSTRACT_ 338 -#define AUTO_ 339 -#define SEQUENTIAL_ 340 -#define EXPLICIT_ 341 -#define ANSI_ 342 -#define UNICODE_ 343 -#define AUTOCHAR_ 344 -#define IMPORT_ 345 -#define ENUM_ 346 -#define VIRTUAL_ 347 -#define NOINLINING_ 348 -#define AGGRESSIVEINLINING_ 349 -#define NOOPTIMIZATION_ 350 -#define AGGRESSIVEOPTIMIZATION_ 351 -#define UNMANAGEDEXP_ 352 -#define BEFOREFIELDINIT_ 353 -#define STRICT_ 354 -#define RETARGETABLE_ 355 -#define WINDOWSRUNTIME_ 356 -#define NOPLATFORM_ 357 -#define METHOD_ 358 -#define FIELD_ 359 -#define PINNED_ 360 -#define MODREQ_ 361 -#define MODOPT_ 362 -#define SERIALIZABLE_ 363 -#define PROPERTY_ 364 -#define TYPE_ 365 -#define ASSEMBLY_ 366 -#define FAMANDASSEM_ 367 -#define FAMORASSEM_ 368 -#define PRIVATESCOPE_ 369 -#define HIDEBYSIG_ 370 -#define NEWSLOT_ 371 -#define RTSPECIALNAME_ 372 -#define PINVOKEIMPL_ 373 -#define _CTOR 374 -#define _CCTOR 375 -#define LITERAL_ 376 -#define NOTSERIALIZED_ 377 -#define INITONLY_ 378 -#define REQSECOBJ_ 379 -#define CIL_ 380 -#define OPTIL_ 381 -#define MANAGED_ 382 -#define FORWARDREF_ 383 -#define PRESERVESIG_ 384 -#define RUNTIME_ 385 -#define INTERNALCALL_ 386 -#define _IMPORT 387 -#define NOMANGLE_ 388 -#define LASTERR_ 389 -#define WINAPI_ 390 -#define AS_ 391 -#define BESTFIT_ 392 -#define ON_ 393 -#define OFF_ 394 -#define CHARMAPERROR_ 395 -#define INSTR_NONE 396 -#define INSTR_VAR 397 -#define INSTR_I 398 -#define INSTR_I8 399 -#define INSTR_R 400 -#define INSTR_BRTARGET 401 -#define INSTR_METHOD 402 -#define INSTR_FIELD 403 -#define INSTR_TYPE 404 -#define INSTR_STRING 405 -#define INSTR_SIG 406 -#define INSTR_TOK 407 -#define INSTR_SWITCH 408 -#define _CLASS 409 -#define _NAMESPACE 410 -#define _METHOD 411 -#define _FIELD 412 -#define _DATA 413 -#define _THIS 414 -#define _BASE 415 -#define _NESTER 416 -#define _EMITBYTE 417 -#define _TRY 418 -#define _MAXSTACK 419 -#define _LOCALS 420 -#define _ENTRYPOINT 421 -#define _ZEROINIT 422 -#define _EVENT 423 -#define _ADDON 424 -#define _REMOVEON 425 -#define _FIRE 426 -#define _OTHER 427 -#define _PROPERTY 428 -#define _SET 429 -#define _GET 430 -#define _PERMISSION 431 -#define _PERMISSIONSET 432 -#define REQUEST_ 433 -#define DEMAND_ 434 -#define ASSERT_ 435 -#define DENY_ 436 -#define PERMITONLY_ 437 -#define LINKCHECK_ 438 -#define INHERITCHECK_ 439 -#define REQMIN_ 440 -#define REQOPT_ 441 -#define REQREFUSE_ 442 -#define PREJITGRANT_ 443 -#define PREJITDENY_ 444 -#define NONCASDEMAND_ 445 -#define NONCASLINKDEMAND_ 446 -#define NONCASINHERITANCE_ 447 -#define _LINE 448 -#define P_LINE 449 -#define _LANGUAGE 450 -#define _CUSTOM 451 -#define INIT_ 452 -#define _SIZE 453 -#define _PACK 454 -#define _VTABLE 455 -#define _VTFIXUP 456 -#define FROMUNMANAGED_ 457 -#define CALLMOSTDERIVED_ 458 -#define _VTENTRY 459 -#define RETAINAPPDOMAIN_ 460 -#define _FILE 461 -#define NOMETADATA_ 462 -#define _HASH 463 -#define _ASSEMBLY 464 -#define _PUBLICKEY 465 -#define _PUBLICKEYTOKEN 466 -#define ALGORITHM_ 467 -#define _VER 468 -#define _LOCALE 469 -#define EXTERN_ 470 -#define _MRESOURCE 471 -#define _MODULE 472 -#define _EXPORT 473 -#define LEGACY_ 474 -#define LIBRARY_ 475 -#define X86_ 476 -#define AMD64_ 477 -#define ARM_ 478 -#define ARM64_ 479 -#define MARSHAL_ 480 -#define CUSTOM_ 481 -#define SYSSTRING_ 482 -#define FIXED_ 483 -#define VARIANT_ 484 -#define CURRENCY_ 485 -#define SYSCHAR_ 486 -#define DECIMAL_ 487 -#define DATE_ 488 -#define BSTR_ 489 -#define TBSTR_ 490 -#define LPSTR_ 491 -#define LPWSTR_ 492 -#define LPTSTR_ 493 -#define OBJECTREF_ 494 -#define IUNKNOWN_ 495 -#define IDISPATCH_ 496 -#define STRUCT_ 497 -#define SAFEARRAY_ 498 -#define BYVALSTR_ 499 -#define LPVOID_ 500 -#define ANY_ 501 -#define ARRAY_ 502 -#define LPSTRUCT_ 503 -#define IIDPARAM_ 504 -#define IN_ 505 -#define OUT_ 506 -#define OPT_ 507 -#define _PARAM 508 -#define _OVERRIDE 509 -#define WITH_ 510 -#define NULL_ 511 -#define HRESULT_ 512 -#define CARRAY_ 513 -#define USERDEFINED_ 514 -#define RECORD_ 515 -#define FILETIME_ 516 -#define BLOB_ 517 -#define STREAM_ 518 -#define STORAGE_ 519 -#define STREAMED_OBJECT_ 520 -#define STORED_OBJECT_ 521 -#define BLOB_OBJECT_ 522 -#define CF_ 523 -#define CLSID_ 524 -#define VECTOR_ 525 -#define _SUBSYSTEM 526 -#define _CORFLAGS 527 -#define ALIGNMENT_ 528 -#define _IMAGEBASE 529 -#define _STACKRESERVE 530 -#define _TYPEDEF 531 -#define _TEMPLATE 532 -#define _TYPELIST 533 -#define _MSCORLIB 534 -#define P_DEFINE 535 -#define P_UNDEF 536 -#define P_IFDEF 537 -#define P_IFNDEF 538 -#define P_ELSE 539 -#define P_ENDIF 540 -#define P_INCLUDE 541 -#define CONSTRAINT_ 542 -#define CONST_ 543 -#define YYERRCODE 256 -static int yylhs[] = { -1, - 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 137, 137, - 38, 38, 134, 134, 134, 2, 2, 1, 1, 1, - 9, 26, 26, 25, 25, 25, 135, 135, 135, 135, - 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 95, 95, 95, 95, 96, 96, 96, 96, 10, 11, - 75, 74, 74, 61, 63, 63, 63, 64, 64, 64, - 67, 67, 133, 133, 133, 62, 62, 62, 62, 62, - 62, 131, 131, 131, 120, 12, 12, 12, 12, 12, - 12, 119, 138, 114, 139, 140, 112, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 141, 141, 142, 142, 113, 113, - 143, 143, 58, 58, 59, 59, 71, 71, 18, 18, - 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 70, 70, 70, 69, 69, 60, 23, 23, 24, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 117, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 4, 4, 37, - 37, 16, 16, 77, 77, 77, 77, 77, 77, 77, - 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 78, 76, 76, 76, 76, 76, 76, 145, - 145, 83, 83, 83, 146, 146, 151, 151, 151, 151, - 151, 151, 151, 151, 147, 84, 84, 84, 148, 148, - 152, 152, 152, 152, 152, 152, 152, 153, 40, 40, - 36, 36, 154, 115, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 3, 3, 3, 13, 13, 13, 13, - 13, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 155, 116, 116, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 159, 160, 157, 162, - 162, 161, 161, 161, 164, 163, 163, 163, 163, 167, - 167, 167, 170, 165, 168, 169, 166, 166, 166, 118, - 171, 171, 173, 173, 173, 172, 172, 174, 174, 14, - 14, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 176, 33, 33, 34, 34, - 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, - 44, 44, 45, 45, 45, 49, 49, 48, 48, 47, - 47, 46, 46, 50, 50, 51, 51, 51, 52, 52, - 52, 52, 53, 53, 150, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 6, 6, 6, 6, 6, 55, 55, 56, - 56, 57, 57, 27, 27, 28, 28, 29, 29, 29, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 5, 5, 73, 73, 73, 73, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 22, 22, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 32, 32, 31, 31, 31, - 31, 31, 132, 132, 132, 132, 132, 132, 66, 66, - 66, 65, 65, 89, 89, 86, 86, 87, 17, 17, - 39, 39, 39, 39, 39, 39, 39, 39, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 177, 177, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 122, 122, 90, 90, - 91, 91, 178, 123, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 124, 124, 179, 179, 179, 68, - 68, 180, 180, 180, 180, 180, 180, 181, 183, 182, - 125, 125, 126, 126, 184, 184, 184, 184, 127, 149, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 128, 128, 185, 185, 185, 185, 185, 185, 185, 129, - 129, 94, 94, 94, 130, 130, 186, 186, 186, 186, -}; -static int yylen[] = { 2, - 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 1, 1, 1, 2, 2, - 3, 2, 2, 1, 1, 1, 4, 1, 0, 2, - 1, 3, 2, 4, 6, 1, 1, 1, 1, 3, - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, - 4, 2, 3, 2, 2, 2, 1, 1, 2, 1, - 2, 4, 6, 3, 5, 7, 9, 3, 4, 7, - 1, 1, 1, 2, 0, 2, 2, 0, 6, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, - 3, 1, 2, 3, 7, 0, 2, 2, 2, 2, - 2, 3, 3, 2, 1, 4, 3, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 5, 0, 2, 0, 2, 0, 2, - 3, 1, 0, 1, 1, 3, 0, 3, 1, 1, - 1, 1, 1, 1, 4, 0, 2, 4, 0, 2, - 5, 4, 3, 0, 2, 3, 0, 1, 5, 3, - 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, - 4, 13, 22, 1, 1, 5, 3, 7, 5, 4, - 7, 0, 2, 2, 2, 2, 2, 2, 2, 5, - 2, 2, 2, 2, 2, 2, 5, 0, 2, 0, - 2, 0, 3, 9, 9, 7, 7, 1, 1, 1, - 2, 2, 1, 4, 0, 1, 1, 2, 2, 2, - 2, 1, 4, 2, 5, 3, 2, 2, 1, 4, - 3, 0, 2, 2, 0, 2, 2, 2, 2, 2, - 1, 1, 1, 1, 9, 0, 2, 2, 0, 2, - 2, 2, 2, 1, 1, 1, 1, 1, 0, 4, - 1, 3, 1, 13, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 5, 8, 6, 5, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, - 4, 4, 5, 1, 1, 1, 0, 4, 4, 4, - 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 5, 1, 0, 2, - 2, 1, 2, 4, 5, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 4, 6, 4, 4, 11, - 1, 5, 3, 7, 5, 5, 3, 1, 2, 2, - 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, - 4, 2, 0, 1, 1, 3, 1, 3, 1, 0, - 3, 5, 4, 3, 5, 5, 5, 5, 5, 5, - 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, - 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, - 4, 4, 4, 4, 3, 2, 0, 1, 1, 2, - 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 8, 7, 7, 7, 7, 7, 0, - 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, - 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, - 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, - 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, - 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, - 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, - 2, 2, 5, 5, 7, 4, 3, 2, 3, 2, - 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, - 3, 2, 6, 7, 3, 3, 3, 6, 0, 1, - 3, 5, 6, 4, 4, 1, 3, 3, 1, 1, - 1, 1, 4, 1, 6, 6, 6, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 5, 4, 7, - 6, 7, 6, 9, 8, 3, 8, 4, 0, 2, - 0, 1, 3, 3, 0, 2, 2, 2, 3, 2, - 2, 2, 2, 2, 0, 2, 3, 1, 1, 1, - 1, 3, 8, 2, 3, 1, 1, 3, 3, 3, - 4, 6, 0, 2, 3, 1, 3, 1, 4, 3, - 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 0, 2, 2, 3, 3, 4, 2, 1, 1, 3, - 5, 0, 2, 2, 0, 2, 4, 3, 1, 1, -}; -static int yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 764, - 765, 0, 0, 0, 0, 0, 0, 842, 0, 0, - 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, - 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, - 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, - 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 821, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 749, 750, 751, 752, - 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, - 763, 0, 0, 0, 219, 220, 0, 0, 226, 227, - 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 785, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 557, 715, 0, 692, 700, - 698, 0, 701, 702, 703, 704, 705, 706, 711, 712, - 713, 714, 674, 699, 0, 691, 0, 0, 0, 495, - 0, 558, 559, 560, 0, 0, 0, 0, 0, 0, - 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 795, 813, 831, 845, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 556, 0, 31, 0, 0, 0, 0, - 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 780, 0, 0, 786, - 787, 788, 790, 0, 791, 792, 793, 794, 0, 843, - 844, 0, 0, 0, 707, 708, 709, 710, 673, 0, - 676, 0, 693, 695, 237, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 677, 441, 0, 0, 0, 0, 0, 0, - 0, 688, 0, 682, 0, 0, 0, 0, 0, 681, - 680, 0, 0, 0, 0, 0, 234, 0, 0, 0, - 64, 440, 68, 726, 0, 0, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 0, - 375, 0, 338, 346, 347, 0, 0, 0, 0, 368, - 5, 0, 510, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 348, 352, 351, 354, - 353, 355, 0, 340, 342, 349, 361, 339, 0, 0, - 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, - 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, - 122, 112, 131, 124, 123, 133, 0, 136, 0, 107, - 0, 281, 276, 277, 278, 279, 280, 284, 282, 292, - 283, 285, 286, 287, 288, 289, 290, 291, 0, 293, - 317, 0, 0, 0, 416, 0, 415, 0, 414, 0, - 413, 0, 411, 0, 412, 436, 0, 0, 0, 0, - 776, 766, 0, 0, 824, 823, 822, 0, 0, 0, - 213, 0, 199, 193, 194, 195, 196, 201, 202, 203, - 204, 198, 205, 206, 197, 0, 0, 391, 0, 0, - 0, 0, 0, 735, 0, 734, 0, 0, 0, 0, - 0, 314, 315, 0, 0, 0, 0, 75, 69, 0, - 96, 782, 0, 0, 789, 0, 675, 694, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 687, 0, 0, 0, 0, 719, 678, 0, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 27, 0, 105, 242, 256, 0, 0, 821, 0, - 0, 3, 0, 339, 174, 175, 177, 176, 178, 184, - 185, 140, 0, 0, 0, 4, 341, 343, 0, 0, - 0, 0, 0, 0, 0, 350, 512, 511, 513, 514, - 44, 0, 0, 509, 515, 516, 519, 518, 520, 524, - 525, 0, 523, 526, 0, 0, 0, 0, 531, 0, - 0, 0, 0, 0, 385, 0, 383, 386, 369, 0, - 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, - 0, 0, 12, 798, 806, 807, 796, 799, 0, 0, - 818, 0, 0, 13, 0, 816, 0, 814, 0, 0, - 0, 0, 14, 838, 839, 832, 0, 0, 15, 849, - 850, 846, 0, 125, 126, 127, 128, 129, 130, 0, - 106, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 396, 0, 0, 404, 0, 0, - 825, 826, 827, 828, 829, 830, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, - 32, 0, 224, 233, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 739, 740, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 435, 0, 0, 0, - 0, 0, 0, 0, 0, 679, 686, 0, 0, 0, - 0, 0, 179, 180, 0, 0, 0, 0, 0, 139, - 0, 245, 259, 831, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 517, 0, 548, 0, 0, 0, 546, - 367, 384, 370, 0, 387, 376, 377, 378, 379, 381, - 382, 380, 0, 0, 0, 0, 801, 800, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 837, - 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, - 0, 149, 150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, - 398, 403, 0, 768, 0, 0, 583, 621, 575, 576, - 0, 610, 577, 578, 579, 580, 581, 582, 612, 588, - 589, 590, 591, 0, 0, 0, 618, 0, 0, 0, - 0, 573, 574, 597, 598, 599, 616, 600, 601, 602, - 603, 0, 0, 606, 0, 614, 620, 273, 0, 0, - 0, 0, 0, 0, 0, 723, 0, 0, 0, 0, - 728, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 444, 0, - 77, 97, 98, 0, 99, 100, 101, 0, 0, 0, - 434, 433, 0, 0, 0, 0, 424, 423, 422, 421, - 419, 417, 418, 420, 432, 431, 430, 429, 0, 683, - 684, 721, 717, 0, 0, 0, 244, 243, 0, 0, - 258, 257, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 0, 0, 0, 358, 0, 0, 0, 0, - 0, 0, 359, 0, 0, 0, 0, 529, 0, 0, - 532, 0, 0, 0, 344, 0, 0, 0, 373, 374, - 797, 808, 0, 810, 802, 805, 783, 809, 815, 817, - 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, - 157, 0, 0, 0, 148, 141, 294, 0, 0, 0, - 305, 306, 307, 308, 300, 301, 302, 299, 303, 304, - 0, 0, 297, 0, 0, 0, 0, 0, 0, 402, - 410, 409, 408, 407, 405, 406, 0, 0, 207, 611, - 584, 585, 586, 587, 0, 607, 613, 615, 619, 0, - 0, 0, 617, 604, 605, 659, 628, 629, 0, 656, - 630, 631, 632, 633, 634, 635, 658, 640, 641, 642, - 643, 626, 627, 648, 649, 650, 651, 652, 653, 654, - 655, 625, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 672, 644, 0, 0, 592, 200, - 0, 209, 0, 191, 0, 742, 741, 0, 738, 0, - 737, 724, 0, 731, 78, 75, 70, 0, 0, 539, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 81, 82, 0, 80, - 95, 0, 428, 427, 426, 425, 0, 0, 190, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 172, 251, 252, 253, 254, 246, 0, 0, 0, - 173, 265, 264, 266, 267, 260, 181, 0, 362, 0, - 365, 366, 0, 45, 46, 0, 528, 0, 534, 535, - 345, 0, 547, 0, 0, 0, 836, 847, 0, 0, - 160, 0, 0, 0, 145, 0, 163, 0, 0, 296, - 0, 0, 0, 318, 319, 320, 321, 0, 0, 772, - 0, 770, 0, 0, 0, 0, 657, 636, 637, 638, - 639, 646, 0, 0, 647, 0, 593, 0, 272, 211, - 0, 0, 78, 0, 0, 0, 217, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 88, 0, 87, 86, 0, - 777, 685, 0, 186, 0, 189, 0, 0, 247, 248, - 249, 250, 263, 261, 262, 357, 0, 0, 530, 550, - 388, 389, 0, 155, 0, 0, 166, 0, 165, 162, - 0, 0, 309, 310, 311, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 645, 0, 0, 594, 0, 0, - 0, 0, 0, 0, 732, 67, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 450, 0, 446, 445, 0, - 449, 0, 448, 0, 0, 90, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 158, 161, 146, 295, 313, - 270, 0, 774, 0, 0, 570, 0, 596, 0, 743, - 0, 0, 0, 748, 733, 215, 214, 484, 480, 0, - 0, 0, 0, 482, 480, 478, 476, 470, 473, 482, - 480, 478, 476, 493, 486, 447, 489, 89, 91, 0, - 0, 188, 0, 0, 0, 0, 168, 0, 0, 623, - 0, 569, 0, 595, 0, 0, 0, 0, 0, 482, - 480, 478, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, - 0, 803, 322, 0, 745, 746, 747, 466, 485, 465, - 481, 0, 0, 0, 0, 456, 483, 455, 454, 479, - 453, 477, 451, 472, 471, 452, 474, 475, 460, 459, - 458, 457, 469, 494, 488, 487, 467, 490, 0, 468, - 492, 255, 0, 0, 0, 0, 0, 464, 463, 462, - 461, 491, 0, 0, 360, 0, 327, 323, 332, 333, - 334, 335, 336, 324, 325, 326, 328, 329, 330, 331, - 274, 0, 0, 0, 0, 568, 0, 0, 0, 0, - 182, 337, 0, 0, 0, 0, 0, 0, 0, 0, - 183, -}; -static int yydgoto[] = { 1, - 158, 71, 486, 903, 159, 782, 105, 106, 808, 35, - 36, 712, 787, 425, 1137, 73, 719, 834, 835, 1039, - 1040, 1086, 1476, 1477, 585, 1532, 788, 789, 790, 211, - 531, 532, 175, 176, 899, 900, 1144, 282, 1149, 1069, - 283, 938, 939, 1498, 1499, 1494, 1489, 1496, 1497, 1488, - 1505, 1506, 1504, 161, 708, 534, 535, 1253, 1254, 1044, - 710, 1330, 711, 940, 698, 699, 1189, 809, 1257, 836, - 661, 212, 229, 230, 107, 231, 108, 214, 187, 190, - 208, 1556, 751, 752, 840, 693, 694, 92, 37, 113, - 493, 115, 205, 116, 38, 39, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 40, 41, 315, 42, 43, 181, 44, 357, 46, 47, - 358, 49, 50, 371, 51, 372, 52, 373, 53, 374, - 54, 359, 360, 361, 58, 362, 309, 60, 61, 62, - 189, 400, 663, 562, 563, 993, 564, 994, 565, 215, - 1217, 1226, 63, 901, 363, 364, 365, 366, 795, 368, - 369, 609, 610, 370, 611, 796, 612, 613, 614, 615, - 64, 201, 76, 437, 438, 285, 65, 635, 627, 628, - 629, 630, 637, 638, 646, 652, -}; -static int yysindex[] = { 0, -14374, 0, -380, 757, 0, 72, -233, 1501, 1501, 0, - 0, -88, 366, 200, 189, -330, -144, 0, -164, 71, - 71, 264, 264,11730, 306, 0, 757, 757, 757, 757, - 0, 0, 177, 0, 191, 191, 191, 0, 0, 0, - 322, 397, 0, 0, 0, 0, 0, 0, 0, 428, - 501, 522, 541, 0, 0, 0, 0, 0, 0, 191, - 0, 174, 0, 1242, 71, 0, 0, 0, 0, 420, - 0, 71, 0, 0, 0, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12011, 150, 557, 0, 0, 662, 666, 0, 0, - 952, 1232, 1232,11911, 7697, 0, 628, 0, 0, 671, - 71, 71, 9, 0, 2139, 869, 757, 420, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7697, 0, 0, - 0, 1031, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 422, 0, 418, 422, -21, 0, - 5135, 0, 0, 0, 3173, 114, 107, 420, 680, 196, - 0, 342, 357, 0, 370, 375, 1788, 422, 13, 420, - 420, 420, 0, 0, 689, 503, 775, 800, 0, 0, -13239, 0, 0, 0, 0, 804, 5321,12011, 468, 6354, - 760, 91, 96, 104, 121, 138, 141, 770, 1197, 813, - 0, 0, 191, 149, 496, 757, 765,11377, 806, 134, - 384, 0, 206, 0, 1232, 0, 835, 76, 844, 643, - 71, 71, 0, 0, 0, 0, 0, 0, 0, 873, - 0, 1608, 74, 0, 833, 0, 0, -1, 2139, 0, - 0, 0, 0, 455, 0, 0, 0, 0, 420, 0, - 0, 16, 420, 0, 0, 0, 0, 0, 0, 422, - 0, 668, 0, 0, 0, 0,11552, 916, 928, 1057, - 941, 944, 961, 969, 975, 988, 999, 1036, 1042, 1056, - 0, 844, 0, 0, 191, 757, 967, 45, 973, 1002, - 420, 0, 757, 0, 1058, 1063, 757, 351, 7697, 0, - 0, 757, 757, 757, 757, 7697, 0, 422, 984, 844, - 0, 0, 0, 0, 6588,14241, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, - 0, 71, 0, 0, 0, 71, 996, -54,12122, 0, - 0, 1055, 0, 544, 71, 264, 788, 544, 1788, 641, -12011, -134, 1232,11911, 1080, 191, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 0, 962, -23, - 354, 1223, 345, 8, 0, 1084, 0, 0, 0, 0, - 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 302, 0,12011, 0, - 1102, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1106, 0, - 0, 1116, 71, 71, 0, 71, 0, 71, 0, 264, - 0, 649, 0, 649, 0, 0, 1049, 1113, 371, 1120, - 0, 0, 71, 71, 0, 0, 0, 823, 420, 0, - 0, 1152, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1161, 1145, 0, 757, 157, - 940, 1086, 7697, 0,12192, 0, 948, 1159, 1177, 1178, - 1788, 0, 0, 118, 420, 1151, 963, 0, 0, 844, - 0, 0, 778, 18, 0, 757, 0, 0, 420, 986, - 589, 71, 1227, 1237, 1241, 1243, 71, 71, 71, 264, - 769, 942, 71, 71, 71, 264, 1250, 339, 757, 757, - 757, 420, 0, 420,12011,12011, 420, 0, 0, 1033, - 0, 75, 384, 1245, 1266, 420, 420, 420, 420,11217, - 0, 0, 954, 0, 0, 0, 71, 71, 0, -291, -12280, 0, 1194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1195, 1198, 1200, 0, 0, 0, 1267, 71, - 369, 518, 71, 0, 1054, 0, 0, 0, 0, 0, - 0, 1289, 1290, 0, 0, 0, 0, 0, 0, 0, - 0,11552, 0, 0, 1302, 844, 191, 7697, 0, 544, - 1308, 1303, 0,13390, 0,12011, 0, 0, 0, 962, - -47, -47, -47, -47, -23, 1051, 1052, 0, 883, 1298, - 21, 26, 0, 0, 0, 0, 0, 0, 191, 191, - 0, 1305, 1311, 0, 191, 0, 191, 0, 1333, -210, - 757, 904, 0, 0, 0, 0, 757, 905, 0, 0, - 0, 0, 71, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 1332, 71, 940, 5445, 940, 1336, 1291, 1346, - 1350, 1351, 1352, 1353, 0, 1197, 1354, 0, 1339, 1358, - 0, 0, 0, 0, 0, 0, 71,14729, 24, 400, - 0, 604, 1357, 1359, 0, 631, 1010, 1360, 1282, 1348, - 0, 1153, 0, 0, 1362, 5755, 1374, 1375, 389, 1293, - 2571, 556, 191, 757, 420, 757, 0, 0, 1378, 1379, - 71, 71, 71, 264, 1380, 1386, 1387, 1388, 1398, 1403, - 1405, 1406, 1407, 1408, 1409, 1410, 0, 757, 680, 680, - 680, 1411, 1412, 71, 351, 0, 0, 7697, 1422,12011, -11833, 886, 0, 0, 496, 644, 709, 0, 1180, 0, -13473, 0, 0, 0, 71, 1370, 71, 420, 71, 612, - 1371, 7697, 389, 71, 264, 420, 1191, 940, 1426, 761, - 1424, 1429, 1427, 0, 0, 0, 5445, 1431, 1430, 0, - 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, - 0, 0, 371, 71, 71, 1437, 0, 0, 1428, 1450, - 844, 1456, 1457, 1459, 1460, 1461, 1467, 71, 757, 0, - 420, 757, 29, 757, 1468, 1470, 0, 0, 0, 0, - 1207, 0, 0, 228, 193, 1449,12011, 1471, 14, 1619, - -187, 171, 789, 1423, 0, 1423, 1423, 1423, 1423, 1423, - 0, 0, 71, 0, 71, 1477, 0, 0, 0, 0, - 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1479, 1024, 1044, 0, 1021, 1491, -311, - 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1479, 1479, 0,10832, 0, 0, 0, 109, 1496, - 191, 371, 1481, 0, 1026, 0, 940, 1413, 0,12192, - 0, 1417, 0, 130, 71, 1483, 0, 0, 420, 1151, - 0, 145, 156, 1073, 187, 305, 343, 412, 427, 433, - 451, 470, 471, 474, 537, 549, 551, 0, 0, 253, - 0, 0, 0, 371, 0, 0, 0, 1502, 420, 420, - 0, 0, 1507, 1508, 1510, 1512, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, - 0, 0, 0, 384, 0, 1104, 0, 0, 420, 757, - 0, 0, 7697, 420, 71, 420, 71, 853, 7697, 389, -14444, 0, 796, 1117, 405, 0, 1163, 1463, 1464,12011, - 1481,11552, 0, 1518, 1519, 757, 912, 0, 0, 544, - 0, 544, 1520, 171, 0, 0, 1247, 1252, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 1529, 680, 420, 71, 420, 0, 71, 1532, 1207,12011, - 0,12011, 931, 757, 0, 0, 0, 940, 1938, 1534, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1517, 1521, 0, 1516, 1522, 1527, 1528, 1536, 389, 0, - 0, 0, 0, 0, 0, 0, 1545, 0, 0, 0, - 0, 0, 0, 0, 1096, 0, 0, 0, 0, 940, - 1514, 1523, 0, 0, 0, 0, 0, 0, 1020, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2, 39, 0, 0, - -41, 0, 3173, 0, 1582, 0, 0, 844, 0, 1583, - 0, 0, 1504, 0, 0, 0, 0, 844, 1531, 0, - 1584, 1588, 1590, 1592, 71, 71, 576, 585, 596, 613, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 2571, 71, -105, 71, 1170, 71, 0, 0, 2873, 0, - 0, 1212, 0, 0, 0, 0, 1593, 1788, 0, 420, - 1145, 1544, 1546,12011,11552, 1130, 0, 1788, 1788, 1788, - 1788, 0, 0, 0, 0, 0, 0, 1788, 1788, 1788, - 0, 0, 0, 0, 0, 0, 0, 371, 0, 1603, - 0, 0, 1377, 0, 0, 420, 0, 1628, 0, 0, - 0, 371, 0, 371, 71, 1591, 0, 0, 1629, 71, - 0, 757, 1630, 1631, 0, 10, 0, 931, 844, 0, - 71, 478, 669, 0, 0, 0, 0,14729, 1612, 0, - 71, 0, 1615, 1028, 71, 71, 0, 0, 0, 0, - 0, 0, 940, 1580, 0, 71, 0, 137, 0, 0, - 71, 743, 0, 44, 1552, 1621, 0, 0, 0, 0, - 1597, 1600, 71, 71, 71, 71, 1604, 1605, 1607, 1609, - 1610, 1611, 1613, 1614, 1616, 1620, 1655, 1622, 1660, 1664, - 1661, 1667, 1451, 1671, 1663, 0, 435, 0, 0, 722, - 0, 0, 126, 0, 1709, 0, 1492, 1232, 0, 0, - 0, 0, 0, 0, 0, 0,12011, 389, 0, 0, - 0, 0, 21, 0, 1724, 931, 0,12011, 0, 0, - 4842, 1726, 0, 0, 0, 0, 1731, 1737, 0, 71, - 940, 1685, 1687, 844, 0, 1689, 71, 0, 1746, 1736, - 1738, 1744, 1764, 59, 0, 0, 0, 1769, 1773, 1775, - 1780, 1728, 1729, 1732, 1733, 1784, 1787, 1791, 1792, 1793, - 1794, 1795, 1796, 1797, 1798, 0, 1799, 0, 0, 1801, - 0, 1802, 0, 1804, 1579, 0, 1752, 609, 0,12011, - 389, 7697, 0, 1806, 1809, 0, 0, 0, 0, 0, - 0, 0, 0, 1811, 699, 0,14757, 0, 1771, 0, - 71, 71, 71, 0, 0, 0, 0, 0, 0, 1822, - 1830, 1832, 1833, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571, - 1836, 0, 1806,11552, 1783, 1841, 0, 21, 1847, 0, - 940, 0, 0, 0, 1852, 1855, 1856, 19, 57, 0, - 0, 0, 0, 60, 86, 100, 30, 273, 578, 116, - 123, 151, 108, 2265, 11, 691, 0, 1481, 1862, 1633, - 0, 0, 0, 1047, 0, 0, 0, 0, 0, 0, - 0, 178, 179, 183, 176, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1640, 0, - 0, 0, 0, 389, 1867, 2531, 940, 0, 0, 0, - 0, 0, 1868, 1870, 0, 1871, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 953, 1415, 0, 71, 0, 1557, 1876, 1877, 1232, - 0, 0, 7697,11552, 1645, 389, 1806, 1881, 0, 1885, - 0, -}; -static int yyrindex[] = { 0, - 0, 0, 5631, 0, 0,11611, 1717, 0, 0, 0, - 0, 0,12576, 0, 0, 350, 2747, 0,10028, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1886, 1886, 1886, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1886, - 0, -62, 0, 0, 0, 0, 0, 0, 0, 1805, - 0, 0, 0, 0, 0, 1525, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7998, 0, 0, 0, 0, 0, 0, - 6065, 9759, 9759, 0, 0, 0, 6517, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,10163, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1757, 2365, 0, - 0, 0, 0, 0, 0, 0,12576, 1831, 5098, 5408, - 5718, 6028, 0, 0, 0, 1888, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1807, 9759, - 0, 9701, 9701, 9701, 9701, 9701, 9701, 0, 0, 0, - 0, 0, 1886, 8373, 0, 0, 0, 0, 0, 0, - 7390, 0, 9308, 0,12576, 0, 0, 0, 9481, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8588, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1834, 0, - 0, 1835,10189, 4797, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3885, 0, 0, 1886, 0, 0, 0, 0, 0, - 4189, 0, 0, 0, 0, 0, 0, 1915, 1898, 0, - 0, 0, 0, 0, 0, 0, 0, 1831, 0, 6338, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12576, 0, - 0, 0,12576, 0, 0, 1886, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1839, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1842, 1320, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1846, 0, 0, 8200, 0, 0, -12576, 0, 0, 1915, 48, 1927, 0, 0, 0, 6772, - 0, 0,10342, 1849, 0, 0, 0, 0,12703, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4493, 0, 2061, 0, 0,10368, 0, 0, 111, - 0, 0, 115, 0, 1911,10511,10623,10735,10766, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,13640, 1886, 0, 0, 1933, - 0, 0,12519, 0, 0, 0, 0, 0, 0,13723, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1886, 1886, - 0, 0, 0, 0, 1886, 0, 1886, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 0, 0, 1858, 0, 4977, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8557, - 0, 0, 0, 0, 0, 0, 0, 201, 9855, 0, - 7641, 0, 0, 1934, 0, 0, 0, 1851, 0, 0, - 0, 0, 0, 0, 6951, 1898, 0, 0, 0, 0, - -57, 0, 1886, 0, 1861, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2669, 2973, - 3277, 0, 0, 222, 332, 0, 0, 0,11276, 0, - 0,12576, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,13874, 0, 0, - 0, 0, 0, 0, 0,13156, 0, 0, 0, 0, - 1944, 0, 1945, 0,12519, 0, 0, 0, 1946, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 920, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12353, 0, 0, 236, 0, 0, 0, 0, 4977, 0, - 0, 599, 0, 9701, 0, 9701, 9701, 9701, 9701, 9701, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 859, 0, 0, 0, 0, 0, 0, - 947, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 859, 859, 0, -6, 0, 0, 0, 1947, 0, - 0, 0,10000, 7825, 0, 0, 0, 0, 88, 1846, - 0, 0, 0, 0, 0, 0,12519,12519,12620, 1927, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1864, - 0, 0, 0, 0, 0, 0, 0, 0, 1869,12906, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3581, 0, - 0, 0, 0, 637,12519, 0, 0, 0, 616, 0, - 0, 0, 0, 1873, 0,14517, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,13957, 0, 0, 0, -14124, 0, 0, 0, 0, 0, 0, 0,12519, 1933, - 0, 1933, 0, 437, 0,12634, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1414, 1853, 0, 600, 0, 0, 0,12353, 0, - 0, 1949, 1929, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8749, 8933, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7206, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,10928, 0, 0, 0, 0, 0,12576, 0, 1874, - 0, 0, 0, 0, 0, 0, 0,12576,12576,12576, -12576, 0, 0, 0, 0, 0, 0,12576,12576,12576, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,14207, 0, 0, 0, 0, - 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1952, 0, 236, 0, 1929, 4977, 0, - 0, 0, 0, 0, 0, 0, 0, 201, 1954, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12519,12519, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,12576, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1929, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9106, 0, - 0, 0, 0, 1103, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12519, 0, - 0, 0, 0, 1962, 0, 0, 0, 0, 0, 0, - 0,12519, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1962, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1965, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1887, 0, 0, -12519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12519, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12519, 0, 0, 0, 0, 0,12576, - 0, 0, 0, 0, 0, 0, 1962, 0,12519, 0, - 0, -}; -static int yycindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12989, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1749, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1920, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1969, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1923, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1751, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1756, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 989, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,12431, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1979, 0, 0, 0, 0, 0, - 0, 0, 0, 1032, 0, 0, 0, 0, 1966, 0, - 0, 0, 0, 0, 0, 0, 1762, 1767, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1776, 0, - 0, 0, 0, 0, 0, 1777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1803, 1808, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1955, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1789, 1800, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1813, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1810, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1814, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1816, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1817, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1818, 0, - 0, -}; -static int yygindex[] = { 1878, - -4, 168, -700, 0, -473, 186, -98, 0, -7, 0, - 0, 0, 1638, -73, 0, 0, -883, 0, 1228, 0, - 1030, 241,-1358, -446, -431, 5, -696, 0, 1061, -22, - 1322, 0, 42, 1169, 635, 810, -981, -44, 0, 1060, - 943,-1042, -148, 0, 0,-1323, -742, -937, -871, 0, - 0, 0, 0, 906, 1176, 1392, 0, 0, 0, 0, - -662, 0, 0,-1083, 0, 1190, 0, -992,-1151, 848, - 837, -3, -42, 1753, 1632, 2085, -161, 6, 0, 0, - 0, 0, 0, 0, -798, 1203, 0, 2102, 0, 0, - 924, 1998, 1575, 0, -13, 2101, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -305, 1367, 0, -303, -302, -298, 50, 0, 0, - 38, 0, 0, 0, 0, 0, 0, 1364, 0, 0, - 0, 15, 28, 43, 0, 17, 1825, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, - 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, - 0, 1524, 0, 0, 0, 430, 0, 0, 0, 0, - 0, 0, 0, 1454, 2071, -56, 0, 1643, 0, 1765, - 0, 0, 0, 0, 0, 0, -}; -#define YYTABLESIZE 15260 -static int yytable[] = { 70, - 673, 160, 674, 227, 228, 307, 284, 203, 920, 553, - 165, 554, 120, 121, 118, 55, 555, 59, 109, 1232, - 162, 1147, 169, 170, 171, 172, 124, 125, 56, 164, - 1246, 624, 908, 367, 624, 1285, 573, 624, 48, 707, - 1049, 1283, 603, 57, 206, 739, 740, 741, 219, 213, - 45, 1547, 832, 119, 833, 147, 477, 204, 206, 1518, - 135, 206, 807, 206, 207, 604, 34, 78, 306, 206, - 1531, 1294, 1003, 756, 206, 340, 119, 177, 178, 730, - 731, 1286, 232, 1289, 624, 74, 810, 316, 1013, 66, - 206, 421, 91, 167, 561, 67, 68, 1520, 69, 340, - 1526, 186, 34, 235, 236, 254, 1360, 316, 238, 164, - 249, 252, 253, 489, 1509, 476, 473, 34, 745, 427, - 429, 431, 433, 435, 310, 37, 1528, 216, 267, 37, - 423, 1287, 649, 37, 37, 426, 1500, 520, 1317, 290, - 1529, 259, 203, 428, 261, 398, 75, 37, 1542, 292, - 1139, 288, 291, 198, 720, 287, 1539, 1319, 542, 287, - 430, 289, 72, 1540, 308, 1419, 1522, 746, 1385, 1157, - 1091, 206, 109, 167, 94, 287, 542, 432, 37, 1377, - 434, 424, 397, 1445, 501, 467, 424, 589, 490, 487, - 1092, 1541, 443, 1320, 424, 502, 488, 112, 475, 1138, - 449, 450, 206, 720, 1427, 470, 444, 595, 301, 1384, - 218, 424, 300, 479, 480, 289, 1561, 740, 1558, 1559, - 1161, 1162, 618, 1560, 500, 312, 507, 485, 424, 1378, - 299, 424, 1042, 301, 494, 1165, 67, 300, 1598, 69, - 119, 567, 567, 209, 440, 471, 1166, 147, 147, 691, - 757, 761, 1156, 135, 598, 299, 497, 262, 263, 819, - 110, 298, 499, 794, 969, 722, 472, 264, 67, 68, - 832, 69, 833, 1545, 216, 156, 533, 1171, 1197, 111, - 2, 518, 523, 540, 119, 522, 298, 216, 524, 1206, - 530, 567, 527, 122, 123, 597, 575, 536, 537, 538, - 539, 78, 119, 826, 308, 117, 78, 596, 594, 1546, - 571, 34, 1238, 1533, 722, 827, 828, 1064, 1065, 1066, - 119, 561, 567, 119, 568, 114, 517, 592, 569, 558, - 55, 561, 59, 829, 119, 216, 578, 579, 717, 718, - 588, 902, 559, 56, 508, 1032, 1034, 206, 342, 119, - 580, 586, 557, 48, 109, 593, 662, 560, 57, 164, - 1425, 660, 617, 119, 556, 45, 67, 68, 1269, 69, - 119, 122, 123, 67, 68, 718, 69, 67, 68, 119, - 69, 119, 509, 830, 206, 624, 119, 626, 626, 645, - 651, 216, 528, 67, 68, 1172, 69, 601, 625, 625, - 644, 650, 1187, 34, 1048, 104, 496, 1188, 714, 98, - 441, 216, 34, 98, 119, 668, 669, 1187, 670, 492, - 671, 301, 1188, 167, 718, 300, 692, 1507, 168, 98, - 969, 738, 700, 1173, 672, 679, 680, 217, 173, 122, - 123, 119, 119, 299, 179, 206, 119, 37, 37, 37, - 696, 510, 67, 68, 602, 69, 367, 174, 13, 767, - 1361, 1544, 689, 34, 690, 206, 511, 802, 647, 643, - 237, 648, 512, 1163, 298, 772, 530, 269, 623, 470, - 269, 744, 742, 743, 744, 1512, 109, 572, 188, 289, - 513, 715, 904, 1295, 720, 156, 156, 487, 156, 725, - 726, 727, 1174, 729, 124, 733, 734, 735, 759, 514, - 515, 577, 156, 516, 728, 587, 732, 1175, 624, 180, - 736, 826, 1282, 1176, 1502, 156, 1552, 122, 123, 1227, - 294, 295, 296, 827, 828, 485, 119, 616, 581, 753, - 754, 1177, 27, 28, 29, 30, 31, 32, 33, 777, - 182, 829, 831, 121, 1524, 294, 295, 296, 582, 583, - 1178, 1179, 766, 792, 1180, 771, 768, 770, 70, 73, - 76, 79, 82, 85, 88, 780, 1181, 811, 27, 28, - 29, 30, 31, 32, 33, 286, 297, 776, 1183, 469, - 1185, 1503, 783, 27, 28, 29, 30, 31, 32, 33, - 220, 830, 1388, 1389, 1519, 469, 677, 801, 769, 779, - 779, 1187, 779, 367, 119, 721, 1188, 2, 1536, 203, - 839, 1525, 843, 183, 722, 528, 2, 1182, 67, 68, - 67, 69, 820, 69, 95, 723, 821, 96, 779, 1184, - 639, 1186, 823, 842, 184, 825, 477, 1424, 67, 68, - 1068, 69, 724, 983, 206, 1000, 838, 206, 848, 989, - 97, 98, 561, 185, 905, 99, 1303, 100, 301, 1470, - 812, 813, 749, 157, 101, 1304, 816, 2, 817, 856, - 543, 67, 68, 533, 69, 553, 1305, 554, 233, 126, - 299, 102, 555, 259, 67, 68, 269, 69, 543, 269, - 639, 221, 126, 1306, 919, 222, 103, 976, 980, 949, - 234, 950, 1495, 953, 954, 955, 549, 98, 1501, 549, - 1473, 298, 1471, 260, 848, 974, 293, 941, 956, 311, - 98, 1550, 302, 1007, 985, 1479, 972, 530, 241, 1482, - 1415, 477, 1481, 294, 295, 296, 979, 303, 1523, 1002, - 984, 986, 988, 640, 948, 67, 68, 996, 69, 998, - 304, 999, 482, 483, 1014, 305, 1004, 781, 919, 312, - 1071, 342, 1072, 1073, 1074, 1075, 1076, 67, 68, 1005, - 69, 156, 800, 399, 8, 9, 1018, 27, 28, 29, - 30, 31, 32, 33, 1046, 13, 1020, 1021, 301, 987, - 1009, 422, 300, 67, 13, 641, 69, 119, 642, 436, - 1031, 779, 1417, 640, 1555, 313, 619, 1033, 620, 1035, - 299, 621, 622, 445, 25, 446, 447, 584, 22, 1070, - 1043, 477, 448, 1067, 33, 152, 153, 154, 942, 943, - 314, 122, 123, 581, 375, 1077, 19, 1078, 152, 153, - 154, 298, 439, 1564, 34, 13, 1563, 451, 269, 269, - 1148, 269, 692, 582, 583, 641, 468, 700, 642, 1158, - 1363, 1364, 848, 944, 474, 561, 561, 16, 561, 27, - 28, 29, 30, 31, 32, 33, 477, 1588, 27, 28, - 29, 30, 31, 32, 33, 1597, 1204, 1146, 206, 622, - 622, 1150, 1600, 67, 68, 478, 69, 1159, 717, 718, - 590, 127, 591, 481, 581, 128, 129, 130, 131, 132, - 1212, 133, 134, 135, 136, 491, 137, 138, 342, 495, - 139, 140, 141, 142, 582, 583, 98, 143, 144, 27, - 28, 29, 30, 31, 32, 33, 145, 498, 146, 622, - 67, 68, 1237, 69, 477, 501, 1190, 1231, 126, 1233, - 1201, 1017, 1199, 147, 148, 149, 1205, 502, 67, 68, - 1019, 69, 269, 269, 1256, 1200, 206, 1202, 804, 1203, - 507, 67, 68, 508, 69, 919, 98, 572, 572, 1548, - 294, 295, 296, 1586, 284, 477, 1549, 1252, 150, 1255, - 509, 1236, 783, 1259, 783, 558, 119, 561, 510, 1216, - 1225, 645, 945, 946, 511, 947, 67, 68, 559, 69, - 1214, 1223, 644, 1380, 1381, 1382, 1248, 512, 557, 1249, - 1213, 1222, 119, 560, 581, 1215, 1224, 572, 513, 1258, - 556, 797, 798, 799, 804, 1274, 1339, 1340, 1341, 1342, - 848, 122, 123, 581, 582, 583, 1343, 1344, 1345, 519, - 848, 1365, 1366, 848, 919, 521, 1535, 1537, 2, 1142, - 477, 1371, 33, 582, 583, 514, 33, 33, 33, 33, - 33, 515, 33, 33, 33, 33, 570, 33, 33, 477, - 1557, 33, 33, 33, 33, 516, 37, 525, 33, 33, - 156, 40, 526, 43, 152, 153, 154, 33, 542, 33, - 46, 1191, 576, 654, 655, 656, 156, 608, 608, 600, - 294, 295, 296, 653, 33, 33, 33, 49, 67, 68, - 1288, 69, 1094, 1095, 848, 848, 848, 848, 848, 848, - 848, 664, 52, 609, 609, 665, 7, 10, 13, 657, - 658, 659, 681, 682, 683, 667, 676, 1301, 1302, 33, - 678, 1336, 1337, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 675, 1318, 34, 1321, 781, 1325, 781, - 97, 1324, 301, 155, 833, 99, 300, 100, 684, 685, - 686, 687, 804, 609, 101, 1239, 1333, 1240, 250, 251, - 688, 216, 702, 109, 299, 122, 123, 581, 695, 701, - 706, 102, 981, 109, 109, 109, 109, 703, 704, 1208, - 1209, 1210, 1211, 109, 109, 109, 103, 582, 583, 1080, - 1081, 1082, 1083, 1084, 200, 298, 709, 1352, 1374, 1422, - 632, 1221, 1355, 10, 11, 12, 13, 1356, 61, 64, - 833, 67, 223, 1362, 224, 225, 226, 982, 804, 716, - 156, 67, 68, 1369, 69, 119, 721, 1372, 1373, 67, - 68, 605, 909, 606, 607, 608, 722, 126, 1376, 200, - 723, 34, 724, 1379, 1383, 67, 68, 216, 69, 119, - 737, 97, 100, 126, 103, 1392, 1393, 1394, 1395, 1277, - 1278, 1279, 1280, 1281, 1423, 98, 747, 744, 1145, 748, - 1190, 255, 256, 257, 258, 1428, 760, 762, 750, 40, - 763, 98, 764, 1416, 765, 1418, 1435, 773, 774, 775, - 27, 28, 29, 30, 31, 32, 33, 503, 504, 505, - 506, 778, 785, 919, 33, 717, 718, 634, 784, 805, - 804, 804, 40, 1167, 1168, 1169, 1170, 40, 806, 40, - 40, 40, 1434, 40, 199, 814, 40, 803, 804, 1439, - 804, 815, 818, 822, 824, 837, 844, 1472, 40, 40, - 40, 40, 804, 845, 804, 804, 846, 804, 804, 2, - 847, 848, 849, 850, 852, 1346, 853, 906, 833, 1474, - 1190, 855, 907, 910, 67, 68, 911, 69, 912, 1350, - 40, 1351, 40, 917, 918, 913, 919, 921, 951, 952, - 957, 833, 914, 152, 153, 154, 958, 959, 960, 67, - 68, 1510, 69, 1485, 1486, 1487, 1514, 126, 961, 152, - 153, 154, 40, 962, 40, 963, 964, 965, 966, 967, - 968, 970, 971, 990, 804, 804, 804, 804, 804, 804, - 804, 975, 997, 1001, 1006, 98, 1008, 1010, 1322, 1011, - 1012, 1015, 834, 1016, 191, 1323, 1022, 192, 193, 194, - 195, 1521, 196, 197, 198, 1023, 1527, 1521, 1530, 1024, - 1534, 1593, 1527, 1521, 1530, 2, 1025, 1026, 1027, 1028, - 1038, 1029, 1551, 1538, 294, 295, 296, 1030, 1036, 1037, - 1045, 1047, 1582, 424, 1527, 1521, 1530, 1079, 1085, 191, - 1087, 1089, 192, 193, 194, 195, 97, 196, 197, 198, - 1090, 99, 1088, 100, 833, 1093, 1140, 1152, 834, 1155, - 101, 1143, 1192, 1218, 1160, 1219, 1220, 1193, 1194, 919, - 1195, 1595, 1196, 1228, 1198, 1229, 1230, 102, 1234, 1235, - 1241, 631, 392, 1244, 10, 11, 12, 13, 1245, 1247, - 1594, 1250, 103, 1261, 1262, 1268, 833, 1589, 1263, 40, - 40, 40, 40, 152, 153, 154, 833, 40, 1271, 833, - 40, 919, 40, 40, 40, 40, 40, 40, 40, 1273, - 40, 40, 40, 40, 1275, 40, 40, 40, 1264, 40, - 40, 40, 40, 1276, 1265, 40, 40, 40, 40, 1266, - 1267, 1291, 1292, 1296, 1297, 40, 1293, 40, 1298, 1299, - 40, 1300, 492, 1332, 40, 40, 1334, 40, 1335, 1338, - 157, 40, 40, 40, 40, 301, 1347, 392, 1353, 300, - 1348, 27, 28, 29, 30, 31, 32, 33, 40, 1063, - 833, 833, 833, 833, 833, 833, 833, 299, 1349, 1354, - 1357, 660, 1375, 13, 1358, 1370, 1386, 40, 40, 40, - 40, 40, 1387, 40, 40, 632, 834, 620, 633, 1390, - 621, 622, 1391, 40, 40, 1406, 1396, 1397, 484, 1398, - 1408, 1399, 1400, 1401, 1409, 1402, 1403, 1411, 1404, 834, - 40, 1413, 1405, 1412, 1407, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 1420, 1410, 393, 1414, 561, 27, 28, 29, - 30, 31, 32, 33, 1426, 1421, 1430, 40, 40, 40, - 40, 1431, 40, 40, 40, 40, 1432, 1436, 40, 1437, - 40, 1438, 40, 40, 40, 40, 1440, 40, 40, 561, - 40, 40, 40, 1441, 561, 1442, 561, 561, 561, 40, - 561, 1443, 392, 561, 1444, 392, 392, 392, 392, 1446, - 392, 392, 392, 1447, 1448, 561, 561, 561, 561, 1449, - 1450, 1451, 834, 1454, 1452, 1453, 1455, 40, 40, 40, - 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 393, - 1465, 1468, 1466, 1467, 1469, 40, 40, 561, 40, 40, - 40, 1480, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 1490, 40, 1484, 834, 1475, 1478, 67, 68, 1491, - 69, 1492, 1493, 915, 834, 126, 1508, 834, 127, 561, - 1511, 561, 128, 129, 130, 131, 132, 1513, 133, 134, - 135, 136, 1515, 137, 138, 1516, 1517, 139, 140, 141, - 142, 1553, 1562, 98, 143, 144, 1554, 1565, 1583, 1584, - 1585, 835, 1050, 145, 1590, 146, 1591, 1592, 1596, 1051, - 1599, 1052, 1053, 1054, 1587, 1601, 437, 104, 438, 137, - 147, 148, 149, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 834, 834, - 834, 834, 834, 834, 834, 29, 784, 840, 718, 540, - 1055, 1056, 1057, 399, 819, 150, 538, 294, 295, 296, - 729, 811, 541, 533, 736, 730, 393, 835, 1260, 393, - 138, 482, 483, 841, 536, 537, 545, 271, 74, 143, - 164, 812, 144, 147, 393, 820, 240, 393, 393, 393, - 393, 167, 393, 393, 393, 571, 1058, 1059, 1060, 210, - 1061, 4, 28, 1062, 31, 28, 561, 561, 58, 561, - 94, 152, 153, 154, 561, 55, 106, 561, 55, 561, - 561, 561, 561, 561, 561, 561, 55, 561, 561, 561, - 561, 55, 561, 561, 55, 115, 561, 561, 561, 561, - 55, 55, 561, 561, 561, 561, 95, 316, 666, 96, - 562, 1041, 561, 55, 561, 109, 973, 561, 1251, 1141, - 112, 1483, 561, 1242, 55, 118, 1243, 1367, 561, 561, - 561, 561, 97, 98, 55, 1290, 55, 99, 55, 100, - 55, 55, 55, 562, 1329, 1164, 101, 916, 562, 1154, - 562, 562, 562, 1359, 562, 1368, 599, 562, 163, 1151, - 93, 239, 705, 102, 561, 1331, 561, 561, 561, 562, - 562, 562, 562, 755, 166, 835, 991, 995, 103, 851, - 561, 561, 541, 793, 202, 713, 636, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 561, 835, 0, - 155, 562, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 0, 0, 0, 562, 561, 562, 0, 561, 561, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 561, 561, 561, 561, 0, 561, - 561, 561, 561, 0, 0, 561, 0, 561, 0, 561, - 561, 561, 0, 0, 561, 561, 0, 561, 561, 561, - 0, 1050, 0, 0, 0, 0, 561, 0, 1051, 0, - 1052, 1053, 1054, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 835, 0, 0, 561, 561, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1055, - 1056, 1057, 561, 561, 0, 561, 561, 561, 0, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 0, 561, - 0, 0, 0, 835, 0, 1543, 0, 0, 0, 0, - 0, 0, 0, 835, 0, 0, 835, 0, 0, 0, - 562, 562, 0, 562, 0, 1058, 1059, 1060, 562, 1061, - 0, 562, 1062, 562, 562, 562, 562, 562, 562, 562, - 0, 562, 562, 562, 562, 0, 562, 562, 0, 0, - 562, 562, 562, 562, 0, 0, 562, 562, 562, 562, - 0, 0, 0, 0, 555, 0, 562, 0, 562, 0, - 0, 562, 0, 0, 0, 0, 562, 0, 0, 0, - 0, 0, 562, 562, 562, 562, 0, 835, 835, 835, - 835, 835, 835, 835, 0, 0, 0, 555, 67, 68, - 0, 69, 555, 0, 555, 555, 555, 0, 555, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, - 562, 562, 562, 555, 555, 555, 555, 0, 0, 0, - 0, 0, 0, 0, 562, 562, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 0, 0, 0, 555, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 562, 562, 0, 0, 0, 555, 562, 555, - 0, 562, 562, 240, 241, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 562, - 562, 562, 0, 562, 562, 562, 562, 0, 243, 562, - 0, 562, 0, 562, 562, 562, 0, 0, 562, 562, - 0, 562, 562, 562, 0, 0, 0, 0, 0, 0, - 562, 922, 923, 924, 0, 925, 926, 927, 928, 0, - 929, 930, 198, 0, 931, 932, 933, 934, 0, 0, - 0, 935, 936, 0, 0, 0, 0, 0, 562, 562, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 562, 0, 562, - 562, 562, 0, 562, 562, 562, 562, 562, 562, 562, - 562, 562, 0, 562, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 245, 246, 247, 248, 0, 0, - 0, 0, 0, 0, 555, 555, 0, 555, 0, 937, - 0, 0, 555, 0, 0, 555, 0, 555, 555, 555, - 555, 555, 555, 555, 0, 555, 555, 555, 555, 0, - 555, 555, 0, 1581, 555, 555, 555, 555, 0, 0, - 555, 555, 555, 555, 0, 0, 0, 0, 553, 0, - 555, 0, 555, 0, 0, 555, 0, 0, 0, 0, - 555, 0, 0, 0, 0, 0, 555, 555, 555, 555, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 553, 0, 0, 0, 0, 553, 0, 553, 553, - 553, 0, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 555, 0, 555, 555, 555, 553, 553, 553, - 553, 0, 0, 0, 0, 0, 0, 0, 555, 555, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 0, 0, 0, 553, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 0, 0, - 0, 553, 555, 553, 0, 555, 555, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 555, 555, 555, 555, 0, 555, 555, 555, - 555, 0, 0, 555, 1566, 555, 0, 555, 555, 555, - 0, 0, 555, 555, 0, 555, 555, 555, 0, 1567, - 0, 0, 0, 0, 555, 0, 0, 922, 923, 924, - 0, 925, 926, 927, 928, 1568, 929, 930, 198, 0, - 931, 932, 933, 934, 1569, 0, 0, 935, 936, 0, - 0, 0, 555, 555, 0, 0, 0, 0, 1570, 1571, - 1572, 1573, 0, 0, 0, 0, 0, 0, 0, 0, - 555, 555, 0, 555, 555, 555, 0, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 0, 555, 0, 0, - 1574, 1575, 1576, 1577, 1578, 1579, 1580, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, - 0, 553, 0, 0, 0, 937, 553, 0, 0, 553, - 0, 553, 553, 553, 553, 553, 553, 553, 0, 553, - 553, 553, 553, 0, 553, 553, 0, 0, 553, 553, - 553, 553, 0, 0, 553, 553, 553, 553, 0, 0, - 0, 0, 551, 0, 553, 0, 553, 0, 0, 553, - 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, - 553, 553, 553, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 785, 785, 0, 785, - 551, 0, 551, 551, 551, 0, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 553, 0, 553, 553, - 553, 551, 551, 551, 551, 0, 0, 0, 0, 0, - 0, 0, 553, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, - 0, 0, 0, 551, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 0, 0, 0, 551, 553, 551, 0, 553, - 553, 785, 785, 785, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 553, 553, 553, 553, - 0, 553, 553, 553, 553, 0, 785, 553, 0, 553, - 0, 553, 553, 553, 0, 0, 553, 553, 0, 553, - 553, 553, 0, 127, 0, 0, 0, 0, 553, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 0, 1326, - 144, 0, 0, 0, 0, 0, 553, 553, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 553, 553, 0, 553, 553, 553, - 0, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 0, 553, 0, 0, 0, 0, 0, 0, 1327, 0, - 785, 0, 785, 785, 785, 785, 0, 0, 0, 0, - 0, 0, 551, 551, 0, 551, 0, 1328, 0, 0, - 551, 0, 0, 551, 0, 551, 551, 551, 551, 551, - 551, 551, 0, 551, 551, 551, 551, 0, 551, 551, - 0, 0, 551, 551, 551, 551, 0, 0, 551, 551, - 551, 551, 0, 0, 0, 0, 552, 0, 551, 0, - 551, 0, 0, 551, 0, 0, 0, 0, 551, 0, - 0, 0, 0, 0, 551, 551, 551, 551, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, - 0, 0, 0, 0, 552, 0, 552, 552, 552, 0, - 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 551, 0, 551, 551, 551, 552, 552, 552, 552, 0, - 0, 0, 0, 0, 0, 0, 551, 551, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 551, 0, 0, 0, 552, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 0, 0, 0, 552, - 551, 552, 0, 551, 551, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 551, 551, 551, 551, 0, 551, 551, 551, 551, 0, - 0, 551, 0, 551, 216, 551, 551, 551, 0, 0, - 551, 551, 0, 551, 551, 551, 0, 0, 0, 268, - 269, 270, 551, 271, 272, 273, 274, 0, 275, 276, - 198, 0, 277, 278, 279, 280, 0, 0, 0, 0, - 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 551, 551, - 0, 551, 551, 551, 0, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 0, 551, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 552, 552, 0, 552, - 0, 0, 0, 0, 552, 0, 0, 552, 0, 552, - 552, 552, 552, 552, 552, 552, 0, 552, 552, 552, - 552, 0, 552, 552, 0, 0, 552, 552, 552, 552, - 0, 0, 552, 552, 552, 552, 0, 0, 0, 0, - 554, 0, 552, 0, 552, 0, 0, 552, 0, 0, - 0, 0, 552, 0, 0, 0, 0, 0, 552, 552, - 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 0, 0, 554, 0, - 554, 554, 554, 0, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 0, 552, 552, 552, 554, - 554, 554, 554, 0, 0, 0, 0, 0, 0, 0, - 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, - 0, 554, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, - 0, 0, 0, 554, 552, 554, 0, 552, 552, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 552, 552, 552, 0, 552, - 552, 552, 552, 0, 0, 552, 0, 552, 0, 552, - 552, 552, 0, 0, 552, 552, 0, 552, 552, 552, - 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 552, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 552, 552, 0, 552, 552, 552, 0, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 0, 552, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 554, 554, 0, 554, 0, 0, 0, 0, 554, 0, - 0, 554, 0, 554, 554, 554, 554, 554, 554, 554, - 0, 554, 554, 554, 554, 0, 554, 554, 0, 0, - 554, 554, 554, 554, 0, 0, 554, 554, 554, 554, - 0, 0, 0, 0, 442, 0, 554, 0, 554, 0, - 0, 554, 0, 0, 0, 0, 554, 0, 0, 0, - 0, 0, 554, 554, 554, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 0, 442, 0, 442, 442, 442, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, - 554, 554, 554, 442, 442, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 554, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 554, 0, 0, 0, 442, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 0, 0, 0, 442, 554, 442, - 0, 554, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, - 554, 554, 0, 554, 554, 554, 554, 0, 0, 554, - 0, 554, 0, 554, 554, 554, 0, 0, 554, 554, - 0, 554, 554, 554, 0, 0, 0, 0, 0, 0, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 554, 554, 0, 554, - 554, 554, 0, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 442, 0, 442, 0, 0, - 0, 0, 442, 0, 0, 442, 0, 442, 442, 442, - 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, - 442, 442, 0, 0, 442, 442, 442, 442, 0, 0, - 442, 442, 442, 0, 0, 0, 0, 0, 690, 0, - 442, 0, 442, 0, 0, 442, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 442, 442, 442, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 690, 0, 0, 0, 0, 690, 0, 690, 690, - 690, 0, 690, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 442, 442, 442, 690, 690, 690, - 690, 0, 0, 0, 0, 0, 0, 0, 442, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 690, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 0, 0, - 0, 690, 442, 690, 0, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 442, 442, 0, 442, 442, 442, - 442, 0, 0, 442, 0, 442, 0, 442, 442, 442, - 0, 0, 442, 442, 0, 442, 442, 442, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 442, 0, 442, 442, 442, 0, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 690, 690, - 0, 690, 0, 0, 0, 0, 690, 0, 0, 690, - 0, 690, 690, 690, 690, 690, 690, 690, 0, 690, - 690, 690, 690, 0, 690, 690, 0, 0, 690, 690, - 690, 690, 0, 0, 690, 690, 690, 0, 0, 0, - 0, 0, 689, 0, 690, 0, 690, 0, 0, 690, - 0, 0, 0, 0, 690, 0, 0, 0, 0, 0, - 690, 690, 690, 690, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 689, 0, 0, 0, 0, - 689, 0, 689, 689, 689, 0, 689, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 690, 0, 690, 690, - 690, 689, 689, 689, 689, 0, 0, 0, 0, 0, - 0, 0, 690, 690, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, - 0, 0, 0, 689, 690, 690, 690, 690, 690, 690, - 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, - 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, - 690, 690, 0, 0, 0, 689, 690, 689, 0, 690, - 690, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 690, 690, 690, 690, - 0, 690, 690, 690, 690, 0, 0, 690, 0, 690, - 0, 690, 690, 690, 0, 0, 690, 690, 0, 690, - 690, 690, 0, 0, 0, 0, 0, 0, 690, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 690, 690, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 690, 690, 0, 690, 690, 690, - 0, 690, 690, 690, 690, 690, 690, 690, 690, 690, - 0, 690, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 689, 689, 0, 689, 0, 0, 0, 0, - 689, 0, 0, 689, 0, 689, 689, 689, 689, 689, - 689, 689, 0, 689, 689, 689, 689, 0, 689, 689, - 0, 0, 689, 689, 689, 689, 0, 0, 689, 689, - 689, 0, 0, 0, 0, 0, 697, 0, 689, 0, - 689, 0, 0, 689, 0, 0, 0, 0, 689, 0, - 0, 0, 0, 0, 689, 689, 689, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, - 0, 0, 0, 0, 0, 0, 697, 697, 0, 0, - 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 689, 0, 689, 689, 689, 697, 0, 697, 697, 0, - 0, 0, 0, 0, 0, 0, 689, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1429, 689, 0, 0, 0, 0, 689, 689, - 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, - 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, - 689, 689, 689, 689, 689, 689, 0, 0, 0, 697, - 689, 697, 0, 689, 689, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 689, 689, 689, 689, 0, 689, 689, 689, 689, 0, - 0, 689, 0, 689, 0, 689, 689, 689, 0, 0, - 689, 689, 0, 689, 689, 689, 0, 0, 0, 0, - 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 689, 689, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 298, 689, 689, - 0, 689, 689, 689, 0, 689, 689, 689, 689, 689, - 689, 689, 689, 689, 0, 689, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 697, 697, 0, 697, - 0, 0, 0, 0, 697, 0, 0, 697, 0, 697, - 697, 697, 697, 697, 697, 697, 0, 697, 697, 697, - 697, 0, 697, 697, 0, 0, 697, 697, 697, 697, - 0, 0, 697, 697, 697, 0, 0, 52, 0, 0, - 0, 0, 697, 0, 697, 0, 0, 697, 0, 0, - 0, 0, 697, 0, 0, 0, 0, 0, 697, 697, - 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1050, 0, 0, 0, 0, - 0, 0, 1051, 0, 1052, 1053, 1054, 0, 0, 0, - 0, 0, 0, 0, 697, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 697, 697, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1055, 1056, 1057, 0, 697, 0, 0, - 0, 0, 697, 697, 697, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, - 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, - 52, 0, 52, 0, 697, 0, 0, 697, 697, 1058, - 1059, 1060, 0, 1061, 0, 0, 1062, 0, 0, 0, - 0, 0, 0, 0, 697, 697, 697, 697, 0, 697, - 697, 697, 697, 0, 0, 697, 0, 697, 0, 697, - 697, 697, 0, 0, 697, 697, 0, 697, 697, 697, - 298, 0, 0, 0, 0, 0, 697, 298, 0, 298, - 298, 298, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 697, 697, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, - 298, 0, 697, 697, 0, 697, 697, 697, 0, 697, - 697, 697, 697, 697, 697, 697, 697, 697, 0, 697, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, - 52, 0, 0, 0, 298, 298, 298, 0, 298, 0, - 52, 298, 0, 0, 52, 52, 52, 0, 52, 52, - 52, 52, 0, 52, 52, 52, 0, 52, 52, 52, - 52, 0, 0, 52, 52, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 127, 266, 54, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 52, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 0, 52, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 147, 148, 149, - 0, 52, 52, 0, 0, 0, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 54, 0, 54, 0, 0, 841, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 52, 52, 0, - 52, 52, 52, 52, 0, 0, 52, 0, 52, 0, - 52, 52, 52, 52, 0, 52, 52, 0, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 52, 0, 0, 0, - 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 52, 0, 52, 52, 52, 0, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, - 0, 0, 0, 377, 0, 0, 0, 378, 0, 0, - 379, 380, 0, 0, 0, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 54, 0, 0, - 54, 0, 0, 393, 0, 0, 394, 155, 0, 0, - 54, 0, 0, 395, 54, 54, 54, 0, 54, 54, - 54, 54, 396, 54, 54, 54, 0, 54, 54, 54, - 54, 0, 0, 54, 54, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 127, 0, 55, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 54, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 0, 54, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 147, 148, 149, - 0, 54, 54, 0, 0, 0, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 55, 0, 55, 0, 0, 915, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 54, 54, 54, 54, 0, - 54, 54, 54, 54, 0, 0, 54, 0, 54, 0, - 54, 54, 54, 54, 0, 54, 54, 0, 54, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 105, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 54, 0, 54, 54, 54, 0, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, - 0, 0, 0, 105, 0, 0, 0, 105, 0, 0, - 105, 105, 0, 0, 0, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 55, 0, 0, - 55, 0, 0, 105, 0, 0, 105, 155, 0, 0, - 55, 0, 0, 105, 55, 55, 55, 0, 55, 55, - 55, 55, 105, 55, 55, 55, 0, 55, 55, 55, - 55, 0, 0, 55, 55, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 127, 0, 56, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 55, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 143, 144, 0, 0, 0, 55, 0, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 147, 148, 149, - 0, 55, 55, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 56, 0, 56, 0, 0, 232, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 55, 55, 55, 0, - 55, 55, 55, 55, 0, 0, 55, 0, 55, 0, - 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 55, 0, 55, 55, 55, 0, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, - 56, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 56, 0, 0, 0, 56, 56, 56, 0, 56, 56, - 56, 56, 0, 56, 56, 56, 0, 56, 56, 56, - 56, 0, 0, 56, 56, 56, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 232, 0, 53, 0, 232, - 232, 232, 232, 232, 0, 232, 232, 232, 232, 56, - 232, 232, 0, 0, 232, 232, 232, 232, 0, 0, - 0, 232, 232, 0, 0, 0, 56, 0, 0, 0, - 232, 0, 232, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 232, 232, 232, - 0, 56, 56, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 53, 0, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 56, 56, 56, 0, - 56, 56, 56, 56, 0, 0, 56, 0, 56, 0, - 56, 56, 56, 56, 0, 56, 56, 0, 56, 56, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 0, 56, 56, 56, 0, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 232, 0, 0, - 53, 0, 0, 0, 53, 53, 53, 0, 53, 53, - 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, - 53, 0, 0, 53, 53, 53, 0, 0, 0, 61, - 0, 61, 0, 0, 0, 0, 34, 401, 97, 0, - 0, 0, 0, 99, 0, 100, 0, 0, 0, 53, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 102, - 402, 0, 403, 404, 405, 406, 407, 0, 0, 0, - 0, 408, 0, 0, 103, 0, 53, 0, 0, 0, - 409, 53, 53, 0, 0, 410, 0, 411, 0, 0, - 0, 0, 552, 0, 0, 0, 0, 0, 0, 412, - 413, 414, 415, 416, 417, 418, 419, 0, 0, 0, - 0, 0, 420, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 0, 62, 0, 0, 0, 0, 61, 0, 0, 61, - 0, 0, 0, 0, 0, 53, 53, 53, 53, 61, - 53, 53, 53, 53, 0, 0, 53, 0, 53, 0, - 53, 53, 53, 53, 0, 53, 53, 0, 53, 53, - 53, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, - 2, 0, 0, 53, 53, 0, 53, 53, 53, 0, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 543, - 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 61, 61, 61, 0, 61, - 61, 61, 61, 0, 0, 61, 0, 61, 0, 61, - 61, 61, 61, 0, 61, 61, 0, 61, 61, 61, - 0, 0, 0, 0, 0, 0, 544, 0, 5, 6, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 545, 0, 0, 0, 0, 546, 0, 0, 8, 9, - 0, 0, 0, 0, 61, 61, 0, 0, 0, 0, - 0, 62, 0, 0, 62, 10, 11, 12, 13, 0, - 547, 548, 61, 61, 62, 61, 61, 61, 0, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, - 549, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 65, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 550, 551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 0, 0, 0, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 0, 66, 0, 0, 0, 0, - 65, 0, 0, 65, 0, 0, 0, 0, 0, 62, - 62, 62, 62, 65, 62, 62, 62, 62, 0, 0, - 62, 0, 62, 0, 62, 62, 62, 62, 0, 62, - 62, 0, 62, 62, 62, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 62, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0, 0, 62, 62, 0, - 62, 62, 62, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 0, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 0, 0, 0, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 0, 0, 0, 0, 0, 0, 566, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 65, - 65, 65, 0, 65, 65, 65, 65, 0, 0, 65, - 0, 65, 0, 65, 65, 65, 65, 0, 65, 65, - 0, 65, 65, 65, 0, 0, 0, 0, 0, 566, - 566, 0, 0, 566, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, - 566, 0, 0, 0, 0, 0, 0, 0, 65, 65, - 0, 0, 0, 0, 0, 66, 0, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 65, 65, 66, 65, - 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 0, 566, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, - 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 566, - 566, 0, 566, 66, 66, 66, 66, 0, 66, 66, - 66, 66, 566, 566, 66, 0, 66, 0, 66, 66, - 66, 66, 0, 66, 66, 0, 66, 66, 66, 0, - 564, 564, 0, 0, 564, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, - 566, 564, 0, 0, 0, 566, 0, 0, 0, 0, - 0, 566, 0, 66, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 66, 66, 0, 66, 66, 66, 0, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 564, 0, 564, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 0, 0, 0, 566, 566, 566, 566, - 566, 566, 566, 0, 0, 0, 0, 566, 0, 0, - 566, 566, 0, 0, 565, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 566, 566, 566, - 566, 0, 566, 566, 566, 566, 0, 0, 566, 0, - 566, 0, 566, 566, 566, 0, 0, 566, 566, 0, - 566, 566, 566, 0, 565, 565, 0, 0, 565, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 565, 0, 565, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 566, 566, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 564, 564, 566, 566, 0, 566, 566, - 566, 0, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 565, 0, 565, - 0, 564, 0, 0, 0, 0, 564, 0, 0, 0, - 0, 0, 564, 0, 0, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 0, 143, 144, 0, 0, 33, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 150, 0, 33, 564, 564, 564, - 564, 564, 564, 564, 0, 0, 0, 0, 564, 0, - 0, 564, 564, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 564, 564, - 564, 564, 0, 564, 564, 564, 564, 565, 565, 564, - 0, 564, 0, 564, 564, 564, 0, 0, 564, 564, - 0, 564, 564, 564, 0, 0, 0, 0, 0, 0, - 33, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, - 565, 0, 0, 0, 0, 0, 565, 0, 564, 564, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 564, 564, 0, 564, - 564, 564, 0, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 0, 155, - 0, 565, 565, 565, 565, 565, 565, 565, 0, 0, - 0, 0, 565, 0, 0, 565, 565, 33, 34, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 565, 565, 565, 565, 0, 565, 565, 565, - 565, 0, 0, 565, 0, 565, 0, 565, 565, 565, - 0, 0, 565, 565, 0, 565, 565, 565, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 34, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 565, 565, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 565, 565, 0, 565, 565, 565, 0, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 0, 0, 0, 0, - 0, 0, 767, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 0, 767, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 33, 33, 0, - 33, 33, 33, 33, 0, 0, 33, 0, 33, 34, - 0, 33, 34, 0, 0, 0, 0, 0, 33, 33, - 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 767, 0, 767, 0, 0, - 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 33, 33, 0, 33, 33, 33, 0, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 781, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 0, 0, 769, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 767, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 767, 781, 34, 34, 34, - 34, 0, 34, 34, 34, 34, 0, 0, 34, 0, - 34, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 34, 34, 34, 0, 0, 0, 0, 0, 0, 769, - 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 767, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, - 0, 0, 781, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 0, 34, 34, - 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 0, 0, 0, 0, 0, 0, 0, 773, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 767, 767, - 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 767, 767, 0, 0, 0, 767, - 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 767, 0, 0, 773, 0, 0, - 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, - 767, 767, 767, 767, 0, 767, 767, 767, 767, 769, - 0, 767, 0, 767, 0, 0, 767, 0, 0, 0, - 0, 0, 0, 767, 767, 767, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 773, 0, 773, 0, 0, 0, 0, 769, 0, - 767, 767, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 767, 767, - 0, 767, 767, 767, 0, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, - 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, - 0, 771, 0, 0, 0, 0, 781, 781, 781, 781, - 781, 0, 0, 0, 769, 769, 769, 769, 773, 769, - 769, 769, 769, 0, 0, 769, 0, 769, 781, 781, - 769, 773, 0, 0, 0, 0, 0, 769, 769, 769, - 0, 0, 0, 0, 0, 781, 781, 781, 781, 0, - 0, 0, 781, 781, 0, 0, 0, 0, 781, 0, - 781, 781, 0, 0, 0, 771, 0, 771, 781, 781, - 0, 0, 0, 0, 769, 769, 0, 0, 0, 0, - 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 769, 769, 0, 769, 769, 769, 0, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, - 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, - 0, 0, 0, 781, 781, 0, 781, 781, 781, 0, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 0, 0, 775, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 773, 773, 773, 773, - 0, 773, 773, 773, 773, 771, 0, 773, 0, 773, - 0, 0, 773, 0, 0, 0, 0, 0, 0, 773, - 773, 773, 0, 0, 0, 0, 0, 0, 775, 0, - 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 771, 0, 773, 773, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 773, 773, 0, 773, 773, 773, - 0, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 771, 771, 0, 0, 0, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 771, 775, 725, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 775, 0, - 771, 771, 771, 771, 0, 771, 771, 771, 771, 0, - 0, 771, 0, 771, 0, 0, 771, 0, 0, 0, - 0, 0, 0, 771, 771, 771, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 775, 0, 0, - 725, 0, 725, 0, 0, 0, 0, 0, 0, 0, - 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 771, 771, - 0, 771, 771, 771, 0, 771, 771, 771, 771, 771, - 771, 771, 771, 771, 0, 0, 0, 0, 0, 0, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, - 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 0, 727, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 775, 775, 775, 775, 0, 775, 775, - 775, 775, 0, 0, 775, 0, 775, 725, 0, 775, - 725, 0, 0, 0, 0, 0, 775, 775, 775, 0, - 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 727, 0, 0, 0, 0, - 0, 0, 0, 775, 775, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, - 0, 775, 775, 0, 775, 775, 775, 0, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 400, 0, 0, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 0, 0, 0, 725, 725, 725, 725, 725, 725, - 725, 0, 0, 0, 0, 725, 0, 0, 725, 725, - 727, 0, 0, 727, 400, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 725, 725, 725, 725, 400, - 725, 725, 725, 725, 0, 0, 725, 0, 725, 0, - 725, 725, 725, 0, 0, 725, 725, 0, 725, 725, - 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 725, 725, 0, 0, 0, - 0, 0, 0, 400, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 725, 725, 0, 725, 725, 725, 0, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 225, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 0, 0, 0, 727, 727, 727, - 727, 727, 727, 727, 0, 0, 0, 0, 727, 0, - 0, 727, 727, 208, 0, 208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 727, - 727, 727, 0, 727, 727, 727, 727, 0, 0, 727, - 0, 727, 0, 727, 727, 727, 0, 0, 727, 727, - 0, 727, 727, 727, 0, 0, 0, 0, 0, 0, - 400, 0, 0, 400, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 400, 0, 0, 0, 0, 0, 208, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 727, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 727, 727, 0, 727, - 727, 727, 0, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 400, 0, 0, 0, 0, 92, 0, 225, - 0, 0, 0, 225, 225, 225, 225, 225, 0, 225, - 225, 225, 225, 0, 225, 225, 0, 0, 225, 225, - 225, 225, 0, 0, 0, 225, 225, 0, 210, 0, - 0, 0, 0, 0, 225, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 225, 225, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 0, 0, 225, 400, 400, 400, - 400, 400, 400, 400, 210, 0, 0, 208, 400, 0, - 0, 400, 400, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, - 400, 400, 92, 400, 400, 400, 400, 0, 0, 400, - 0, 400, 93, 0, 400, 0, 0, 0, 0, 0, - 0, 400, 400, 400, 0, 0, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 400, 400, 0, 400, - 400, 400, 0, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 0, 0, 0, 0, 0, 94, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 208, 208, 208, 208, 0, 0, - 0, 0, 210, 0, 0, 0, 0, 208, 0, 0, - 0, 0, 208, 0, 0, 208, 208, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 225, 208, 208, 208, 208, 0, 208, 208, 208, - 208, 0, 0, 94, 0, 208, 0, 0, 208, 0, - 0, 210, 0, 0, 0, 208, 208, 208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 208, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 208, 208, 0, 208, 208, 208, 0, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 0, 0, 0, 0, - 778, 0, 0, 0, 0, 0, 0, 0, 210, 210, - 210, 210, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 0, 0, 0, 47, 210, 0, 0, - 210, 210, 0, 0, 0, 93, 92, 92, 92, 92, - 92, 0, 0, 0, 0, 0, 0, 210, 210, 210, - 210, 0, 210, 210, 210, 210, 0, 0, 92, 92, - 210, 94, 0, 210, 0, 0, 778, 0, 0, 0, - 210, 210, 210, 0, 0, 92, 92, 92, 92, 0, - 0, 0, 92, 92, 0, 0, 0, 0, 92, 0, - 0, 92, 47, 0, 0, 0, 0, 0, 92, 92, - 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 0, 210, 210, - 210, 0, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 92, 0, 92, 92, 92, 0, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 48, - 0, 93, 93, 93, 93, 93, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 93, 0, 0, 94, 94, 94, - 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 93, 93, 93, 778, 0, 0, 93, 93, 94, - 94, 0, 49, 93, 0, 0, 93, 0, 0, 0, - 0, 0, 0, 93, 93, 48, 94, 94, 94, 94, - 47, 0, 0, 94, 94, 0, 0, 0, 0, 94, - 0, 0, 94, 0, 0, 0, 0, 0, 0, 94, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 0, 93, 93, - 0, 93, 93, 93, 0, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 94, 0, 94, 94, 94, - 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, - 778, 778, 778, 778, 778, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, - 0, 0, 778, 778, 0, 0, 47, 47, 47, 47, - 47, 0, 0, 48, 0, 0, 0, 0, 0, 778, - 778, 778, 778, 50, 0, 0, 778, 778, 47, 47, - 0, 0, 778, 0, 0, 778, 0, 0, 0, 0, - 0, 0, 778, 778, 0, 47, 47, 47, 47, 0, - 0, 0, 47, 47, 51, 0, 0, 0, 47, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 47, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 778, 778, 0, - 778, 778, 778, 0, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 47, 47, 49, 47, 47, 47, 0, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 48, 48, 48, 48, 0, 0, 0, 781, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 0, 0, 0, 48, 48, 0, 0, 0, - 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 48, 48, 0, 0, 0, 781, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 49, 49, 49, 49, 48, 48, 51, 48, - 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 781, 49, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 49, 49, 0, 0, 0, 49, 49, 0, - 0, 0, 0, 49, 0, 0, 49, 0, 1096, 0, - 0, 0, 0, 49, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1097, 1098, 0, - 1099, 1100, 1101, 1102, 1103, 1104, 0, 1105, 1106, 0, - 1107, 1108, 1109, 1110, 1111, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 50, 50, 50, 50, 49, 49, - 0, 49, 49, 49, 0, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 0, 50, 50, 0, 0, 0, - 0, 0, 0, 0, 51, 51, 51, 51, 51, 0, - 0, 0, 50, 50, 50, 50, 0, 0, 0, 50, - 50, 0, 0, 0, 0, 50, 51, 51, 50, 0, - 781, 0, 0, 0, 0, 50, 50, 0, 0, 0, - 0, 0, 0, 51, 51, 51, 51, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 51, 0, 0, 51, - 0, 0, 0, 0, 0, 0, 51, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 301, 0, 0, 0, 749, 0, - 50, 50, 0, 50, 50, 50, 0, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 51, 0, 51, 51, 51, 0, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 484, 681, 0, - 0, 0, 0, 681, 0, 1112, 1113, 681, 1114, 1115, - 1116, 0, 1117, 1118, 0, 0, 1119, 1120, 0, 1121, - 0, 0, 0, 0, 0, 681, 781, 781, 781, 781, - 781, 0, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 0, 0, 781, 781, - 0, 0, 0, 0, 0, 0, 681, 0, 0, 0, - 0, 0, 0, 0, 0, 781, 781, 781, 781, 0, - 0, 0, 781, 781, 0, 0, 0, 0, 781, 0, - 0, 781, 0, 0, 0, 0, 0, 0, 781, 781, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 781, 781, 0, 781, 781, 781, 0, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 0, - 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, - 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 681, 681, 0, 681, 147, - 148, 149, 0, 681, 0, 0, 681, 0, 0, 0, - 681, 681, 681, 681, 681, 0, 681, 681, 681, 681, - 0, 681, 681, 0, 0, 681, 681, 681, 681, 0, - 0, 681, 681, 681, 150, 0, 294, 295, 296, 0, - 0, 681, 0, 681, 157, 0, 0, 0, 0, 301, - 482, 483, 0, 300, 0, 0, 0, 0, 681, 681, - 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 681, 0, 681, 681, 681, 0, 0, - 0, 0, 484, 212, 0, 0, 0, 127, 0, 681, - 681, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, - 452, 0, 0, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 146, 0, 0, 0, 0, 681, - 681, 681, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 0, 453, 0, 454, 455, 456, 457, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, - 0, 0, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 0, 463, 464, 465, 0, 0, 0, 0, 155, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 681, 126, - 156, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 466, 145, 0, 146, - 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 212, 0, 0, 0, 212, 212, 212, 212, 212, - 0, 212, 212, 212, 212, 0, 212, 212, 0, 0, - 212, 212, 212, 212, 212, 0, 0, 212, 212, 150, - 0, 294, 295, 296, 0, 0, 212, 0, 212, 155, - 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 212, 212, 212, 0, 212, 0, 212, - 212, 212, 212, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 212, 0, - 0, 0, 0, 0, 0, 0, 212, 212, 212, 212, - 0, 0, 212, 0, 0, 0, 212, 212, 212, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 210, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, - 212, 0, 67, 68, 155, 69, 0, 0, 0, 0, - 126, 210, 0, 127, 0, 0, 0, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 212, 157, 147, 148, 149, 0, 977, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 13, 127, 0, 0, 0, 128, 129, 130, 131, 132, - 150, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 978, 0, 98, 143, 144, 0, - 0, 0, 210, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, - 67, 68, 155, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 210, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 0, 157, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 210, 0, 0, 0, 0, 155, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 159, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 152, 153, 154, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 159, 147, 148, 149, 0, 0, 0, - 0, 67, 68, 155, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 33, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 574, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 697, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 150, - 127, 317, 0, 155, 128, 129, 130, 131, 132, 544, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 152, 153, 154, 225, 317, - 0, 0, 159, 159, 0, 159, 0, 0, 0, 0, - 159, 0, 0, 159, 0, 0, 0, 159, 159, 159, - 159, 159, 0, 159, 159, 159, 159, 758, 159, 159, - 0, 0, 159, 159, 159, 159, 0, 0, 159, 159, - 159, 0, 0, 0, 0, 0, 0, 0, 159, 316, - 159, 0, 0, 0, 155, 0, 317, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 159, 159, 316, 316, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 33, 33, 33, 33, 33, - 159, 33, 33, 33, 33, 0, 33, 33, 0, 0, - 33, 33, 33, 33, 317, 37, 0, 33, 33, 0, - 40, 0, 43, 0, 155, 0, 33, 0, 33, 46, - 0, 0, 316, 236, 316, 0, 0, 0, 0, 561, - 0, 0, 0, 33, 33, 33, 49, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 159, 159, 159, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 317, - 0, 0, 0, 0, 317, 317, 317, 317, 0, 317, - 317, 317, 317, 0, 317, 317, 0, 0, 317, 317, - 317, 317, 0, 0, 0, 317, 317, 0, 0, 0, - 0, 0, 155, 0, 317, 236, 317, 236, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 317, 317, 0, 0, 225, 0, 0, 0, - 225, 225, 225, 225, 225, 0, 225, 225, 225, 225, - 0, 225, 225, 0, 0, 225, 225, 225, 225, 0, - 0, 0, 225, 225, 0, 0, 317, 0, 0, 316, - 0, 225, 316, 225, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 0, 159, 0, 0, 225, 225, - 225, 0, 0, 0, 317, 0, 0, 0, 0, 317, - 317, 317, 317, 0, 317, 317, 317, 317, 0, 317, - 317, 0, 0, 317, 317, 317, 317, 0, 0, 0, - 317, 317, 0, 225, 0, 0, 0, 0, 0, 317, - 0, 317, 0, 0, 0, 0, 235, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 317, 317, 0, - 0, 0, 236, 0, 235, 236, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 236, 561, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 235, 0, - 235, 0, 316, 0, 0, 0, 316, 316, 316, 316, - 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, - 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 316, 316, 316, - 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 236, 0, 0, 0, 0, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 0, 0, 0, 0, 236, 0, 0, 225, 236, - 236, 236, 236, 236, 236, 0, 0, 316, 316, 316, - 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 236, 236, 236, 316, 316, 316, 316, 316, 316, - 316, 236, 0, 0, 0, 235, 0, 0, 235, 0, - 0, 0, 0, 0, 0, 236, 317, 0, 235, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, - 236, 236, 0, 0, 522, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 236, 236, - 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 34, 0, 0, - 0, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 0, 0, 0, 0, 235, 0, - 0, 0, 235, 235, 235, 235, 235, 235, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 235, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 235, 235, 0, 0, 0, - 0, 340, 0, 341, 235, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 522, 0, 0, 522, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 561, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 235, 235, 235, 235, 235, 235, 0, 34, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 340, 0, 791, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 522, 522, 0, 0, 0, 0, 522, 0, - 0, 0, 522, 522, 522, 522, 522, 522, 0, 0, - 0, 0, 0, 0, 0, 0, 522, 522, 0, 0, - 0, 0, 0, 0, 0, 340, 0, 992, 0, 0, - 0, 0, 0, 522, 522, 522, 522, 0, 0, 0, - 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 0, 0, 0, 0, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 0, 0, 67, - 0, 7, 69, 0, 0, 330, 331, 332, 333, 334, - 335, 0, 2, 522, 522, 0, 0, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 522, 522, 522, 522, 522, 522, 522, 336, 527, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 0, 0, 69, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 338, 339, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 527, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 0, 371, 0, 0, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 0, 0, - 0, 0, 7, 0, 0, 0, 330, 331, 332, 333, - 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, - 13, 0, 0, 0, 0, 371, 0, 371, 336, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 0, 0, 0, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 0, 0, 0, 0, 7, 0, 0, 0, 330, - 331, 332, 333, 334, 335, 0, 0, 338, 339, 527, - 0, 0, 527, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 12, 13, 27, 28, 29, 30, 31, 32, - 33, 336, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 338, 339, 371, 0, 0, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 371, 363, 0, 363, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 356, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 527, 527, 527, 527, 527, - 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, - 0, 0, 527, 0, 0, 0, 527, 527, 527, 527, - 527, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 527, 527, 0, 0, 0, 0, 0, 0, 0, 356, - 0, 356, 0, 0, 0, 0, 0, 527, 527, 527, - 527, 0, 0, 0, 0, 0, 0, 0, 527, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 0, 371, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 0, 0, 363, 0, 371, 363, 0, 0, 371, - 371, 371, 371, 371, 371, 0, 363, 527, 527, 0, - 0, 0, 0, 371, 371, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 371, 371, 371, 371, 527, 527, 527, 527, 527, 527, - 527, 371, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 356, 0, 0, 356, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 371, 371, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 210, 0, - 0, 0, 0, 0, 0, 0, 0, 371, 371, 371, - 371, 371, 371, 371, 0, 521, 0, 0, 0, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 0, 0, 0, 0, 363, 0, 0, 0, - 363, 363, 363, 363, 363, 363, 0, 0, 0, 34, - 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 363, 363, 363, 0, 0, 0, 0, 521, - 0, 521, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, - 0, 0, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 566, 0, 0, 0, 356, - 0, 0, 0, 356, 356, 356, 356, 356, 356, 0, - 0, 363, 363, 210, 0, 0, 210, 356, 356, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 356, 356, 356, 356, 363, 363, - 363, 363, 363, 363, 363, 356, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 356, 356, 521, 0, 0, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 356, 356, 356, 356, 356, 356, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 0, 0, 0, 0, 210, 0, 0, 0, - 210, 210, 210, 210, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, - 0, 210, 210, 210, 210, 187, 0, 0, 0, 0, - 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 0, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 0, 0, 0, 0, 521, - 0, 0, 0, 521, 521, 521, 521, 521, 521, 0, - 0, 210, 210, 0, 0, 0, 0, 521, 521, 0, - 0, 187, 0, 0, 0, 0, 2, 0, 0, 3, - 4, 5, 6, 7, 521, 521, 521, 521, 210, 210, - 210, 210, 210, 210, 210, 521, 0, 0, 0, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 0, 0, 14, 15, 0, 0, 0, - 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 18, 19, 0, 521, 521, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 521, 521, 521, 521, 521, 521, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 543, 20, 21, 0, 22, - 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 3, 4, 5, 6, 7, 0, 0, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 0, 0, 0, 14, 15, - 0, 0, 0, 0, 16, 0, 0, 17, 187, 0, - 0, 0, 0, 0, 18, 19, 0, 0, 0, 0, - 0, 898, 544, 0, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, - 0, 546, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 0, 547, 548, 0, 20, - 21, 0, 22, 23, 24, 0, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 549, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 187, 187, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 187, 0, 0, 187, 187, 0, - 0, 550, 551, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 187, 187, 187, 0, 187, - 187, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 857, 0, 0, 0, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 858, - 0, 0, 0, 0, 859, 860, 0, 861, 862, 863, - 864, 865, 866, 857, 867, 868, 0, 869, 870, 871, - 872, 873, 0, 0, 187, 187, 0, 858, 0, 0, - 0, 0, 859, 860, 0, 861, 862, 863, 864, 865, - 866, 0, 867, 868, 0, 869, 870, 871, 872, 873, - 0, 187, 187, 187, 187, 187, 187, 187, 0, 0, - 0, 0, 0, 874, 0, 875, 0, 0, 0, 0, - 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, - 0, 874, 0, 875, 0, 0, 0, 0, 876, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 877, 0, 0, 0, 0, 878, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 878, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 879, - 0, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 0, 0, - 0, 897, 0, 0, 0, 0, 0, 879, 0, 880, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 0, 0, 0, 897, -}; -static int yycheck[] = { 4, - 432, 24, 434, 102, 103, 167, 155, 64, 709, 315, - 24, 315, 20, 21, 19, 1, 315, 1, 13, 1001, - 24, 905, 27, 28, 29, 30, 22, 23, 1, 24, - 1023, 38, 695, 181, 41, 38, 91, 44, 1, 486, - 839, 44, 40, 1, 46, 519, 520, 521, 93, 92, - 1, 41, 43, 264, 45, 123, 43, 65, 46, 41, - 123, 46, 42, 46, 72, 368, 59, 125, 167, 46, - 41, 1155, 773, 365, 46, 123, 264, 36, 37, 511, - 512, 43, 105, 125, 91, 319, 61, 40, 785, 470, - 46, 190, 59, 24, 47, 260, 261, 41, 263, 123, - 41, 60, 59, 111, 112, 128, 1258, 60, 113, 104, - 115, 116, 117, 40, 1473, 40, 215, 59, 44, 193, - 194, 195, 196, 197, 169, 38, 41, 262, 151, 42, - 40, 93, 125, 46, 47, 40, 1460, 93, 1181, 33, - 41, 145, 199, 40, 148, 188, 380, 60, 41, 157, - 42, 156, 157, 288, 44, 42, 41, 263, 44, 42, - 40, 156, 91, 41, 168, 40, 1490, 93, 125, 40, - 482, 46, 167, 104, 263, 42, 62, 40, 91, 43, - 40, 91, 187, 125, 40, 208, 91, 349, 233, 232, - 502, 41, 44, 299, 91, 40, 123, 528, 123, 91, - 205, 206, 46, 93, 1356, 210, 58, 342, 38, 1293, - 61, 91, 42, 221, 222, 210, 41, 691, 41, 41, - 917, 918, 370, 41, 267, 267, 40, 232, 91, 93, - 60, 91, 40, 38, 239, 91, 260, 42, 1597, 263, - 264, 41, 42, 76, 203, 40, 91, 315, 316, 93, - 542, 554, 123, 316, 353, 60, 260, 279, 280, 470, - 61, 91, 267, 311, 738, 44, 61, 289, 260, 261, - 43, 263, 45, 263, 262, 40, 299, 91, 975, 91, - 273, 286, 290, 306, 264, 290, 91, 262, 293, 990, - 298, 91, 297, 264, 265, 352, 339, 302, 303, 304, - 305, 359, 264, 294, 308, 470, 364, 352, 351, 299, - 365, 59, 1009, 41, 93, 306, 307, 505, 506, 507, - 264, 274, 330, 264, 332, 470, 285, 350, 336, 315, - 316, 315, 316, 324, 264, 262, 344, 345, 320, 321, - 348, 318, 315, 316, 40, 819, 318, 46, 181, 264, - 346, 347, 315, 316, 349, 350, 399, 315, 316, 354, - 1353, 60, 370, 264, 315, 316, 260, 261, 1069, 263, - 264, 264, 265, 260, 261, 44, 263, 260, 261, 264, - 263, 264, 40, 374, 46, 371, 264, 371, 372, 373, - 374, 262, 275, 260, 261, 91, 263, 356, 371, 372, - 373, 374, 359, 59, 391, 40, 391, 364, 391, 296, - 262, 262, 59, 296, 264, 423, 424, 359, 426, 421, - 428, 38, 364, 354, 93, 42, 471, 1470, 123, 296, - 904, 93, 475, 91, 430, 443, 444, 288, 262, 264, - 265, 264, 264, 60, 123, 46, 264, 360, 361, 362, - 473, 40, 260, 261, 452, 263, 604, 267, 451, 91, - 1259, 1504, 467, 59, 469, 46, 40, 615, 461, 125, - 462, 464, 40, 920, 91, 574, 484, 41, 125, 484, - 44, 41, 525, 526, 44, 1478, 481, 542, 315, 484, - 40, 496, 93, 1156, 502, 260, 261, 540, 263, 507, - 508, 509, 91, 511, 42, 513, 514, 515, 551, 40, - 40, 344, 91, 40, 510, 348, 512, 91, 525, 123, - 516, 294, 525, 91, 1462, 91, 1508, 264, 265, 125, - 360, 361, 362, 306, 307, 540, 264, 370, 266, 547, - 548, 91, 535, 536, 537, 538, 539, 540, 541, 592, - 123, 324, 543, 91, 1492, 360, 361, 362, 286, 287, - 91, 91, 570, 606, 91, 573, 571, 572, 535, 536, - 537, 538, 539, 540, 541, 598, 40, 622, 535, 536, - 537, 538, 539, 540, 541, 472, 391, 592, 40, 472, - 40, 1463, 600, 535, 536, 537, 538, 539, 540, 541, - 44, 374, 1299, 1300, 1488, 472, 439, 615, 91, 260, - 261, 359, 263, 761, 264, 40, 364, 273, 41, 676, - 665, 1493, 667, 123, 40, 275, 273, 91, 260, 261, - 260, 263, 640, 263, 269, 40, 641, 272, 597, 91, - 296, 91, 647, 666, 123, 653, 43, 1348, 260, 261, - 480, 263, 40, 752, 46, 44, 664, 46, 59, 758, - 295, 296, 47, 123, 61, 300, 91, 302, 38, 61, - 629, 630, 42, 33, 309, 91, 635, 273, 637, 687, - 44, 260, 261, 706, 263, 991, 91, 991, 61, 268, - 60, 326, 991, 697, 260, 261, 260, 263, 62, 263, - 296, 40, 268, 91, 709, 40, 341, 750, 751, 714, - 40, 716, 1455, 721, 722, 723, 41, 296, 1461, 44, - 1421, 91, 1419, 306, 125, 748, 47, 711, 724, 41, - 296, 41, 391, 778, 91, 1432, 744, 745, 123, 41, - 306, 43, 44, 360, 361, 362, 751, 391, 1491, 772, - 755, 756, 757, 409, 713, 260, 261, 765, 263, 767, - 391, 769, 374, 375, 787, 391, 774, 600, 773, 267, - 844, 604, 846, 847, 848, 849, 850, 260, 261, 775, - 263, 91, 615, 316, 431, 432, 794, 535, 536, 537, - 538, 539, 540, 541, 837, 451, 804, 805, 38, 91, - 40, 42, 42, 260, 451, 461, 263, 264, 464, 40, - 818, 462, 91, 409, 1511, 41, 463, 822, 465, 824, - 60, 468, 469, 328, 38, 330, 331, 40, 42, 41, - 835, 43, 337, 841, 33, 414, 415, 416, 283, 284, - 41, 264, 265, 266, 41, 853, 60, 855, 414, 415, - 416, 91, 40, 1554, 59, 451, 1553, 93, 260, 261, - 905, 263, 907, 286, 287, 461, 61, 910, 464, 914, - 393, 394, 273, 318, 40, 260, 261, 91, 263, 535, - 536, 537, 538, 539, 540, 541, 43, 1584, 535, 536, - 537, 538, 539, 540, 541, 1596, 44, 905, 46, 41, - 42, 905, 1599, 260, 261, 263, 263, 915, 320, 321, - 270, 271, 272, 41, 266, 275, 276, 277, 278, 279, - 125, 281, 282, 283, 284, 93, 286, 287, 761, 475, - 290, 291, 292, 293, 286, 287, 296, 297, 298, 535, - 536, 537, 538, 539, 540, 541, 306, 280, 308, 91, - 260, 261, 41, 263, 43, 40, 940, 1000, 268, 1002, - 983, 794, 976, 323, 324, 325, 989, 40, 260, 261, - 803, 263, 374, 375, 44, 980, 46, 985, 59, 987, - 40, 260, 261, 40, 263, 990, 296, 41, 42, 299, - 360, 361, 362, 41, 1143, 43, 306, 1040, 358, 1042, - 40, 1006, 1010, 1048, 1012, 991, 264, 991, 40, 993, - 994, 995, 457, 458, 40, 460, 260, 261, 991, 263, - 993, 994, 995, 281, 282, 283, 1034, 40, 991, 1037, - 993, 994, 264, 991, 266, 993, 994, 91, 40, 1044, - 991, 612, 613, 614, 125, 1090, 1208, 1209, 1210, 1211, - 451, 264, 265, 266, 286, 287, 1218, 1219, 1220, 93, - 461, 393, 394, 464, 1069, 93, 1498, 1499, 273, 902, - 43, 44, 271, 286, 287, 40, 275, 276, 277, 278, - 279, 40, 281, 282, 283, 284, 91, 286, 287, 43, - 44, 290, 291, 292, 293, 40, 295, 40, 297, 298, - 91, 300, 40, 302, 414, 415, 416, 306, 125, 308, - 309, 944, 58, 330, 331, 332, 91, 41, 42, 40, - 360, 361, 362, 40, 323, 324, 325, 326, 260, 261, - 1138, 263, 892, 893, 535, 536, 537, 538, 539, 540, - 541, 40, 341, 41, 42, 40, 360, 361, 362, 366, - 367, 368, 330, 331, 332, 40, 44, 1165, 1166, 358, - 41, 1204, 1205, 1171, 1172, 1173, 1174, 1175, 1176, 1177, - 1178, 1179, 1180, 125, 1182, 59, 1184, 1010, 1186, 1012, - 295, 1185, 38, 543, 59, 300, 42, 302, 366, 367, - 368, 40, 273, 91, 309, 1010, 1201, 1012, 330, 331, - 40, 262, 44, 1198, 60, 264, 265, 266, 123, 262, - 60, 326, 327, 1208, 1209, 1210, 1211, 41, 41, 424, - 425, 426, 427, 1218, 1219, 1220, 341, 286, 287, 280, - 281, 282, 283, 284, 38, 91, 274, 1245, 1283, 1338, - 463, 125, 1250, 448, 449, 450, 451, 1252, 260, 261, - 125, 263, 301, 1261, 303, 304, 305, 372, 339, 274, - 91, 260, 261, 1271, 263, 264, 40, 1275, 1276, 260, - 261, 310, 263, 312, 313, 314, 40, 268, 1286, 38, - 40, 59, 40, 1291, 1292, 260, 261, 262, 263, 264, - 41, 260, 261, 268, 263, 1303, 1304, 1305, 1306, 280, - 281, 282, 283, 284, 1347, 296, 62, 275, 283, 44, - 1294, 281, 282, 283, 284, 1358, 123, 123, 365, 0, - 123, 296, 123, 1327, 58, 1330, 1371, 274, 40, 40, - 535, 536, 537, 538, 539, 540, 541, 281, 282, 283, - 284, 40, 40, 1348, 543, 320, 321, 125, 41, 467, - 431, 432, 33, 281, 282, 283, 284, 38, 61, 40, - 41, 42, 1370, 44, 123, 61, 47, 317, 317, 1377, - 451, 61, 40, 470, 470, 44, 41, 1420, 59, 60, - 61, 62, 463, 93, 465, 466, 41, 468, 469, 273, - 41, 41, 41, 41, 41, 1228, 58, 41, 273, 1422, - 1384, 44, 44, 44, 260, 261, 125, 263, 61, 1242, - 91, 1244, 93, 40, 40, 263, 1421, 125, 41, 41, - 41, 296, 61, 414, 415, 416, 41, 41, 41, 260, - 261, 1474, 263, 1441, 1442, 1443, 1481, 268, 41, 414, - 415, 416, 123, 41, 125, 41, 41, 41, 41, 41, - 41, 41, 41, 274, 535, 536, 537, 538, 539, 540, - 541, 40, 93, 93, 274, 296, 41, 44, 299, 41, - 44, 41, 59, 44, 278, 306, 40, 281, 282, 283, - 284, 1489, 286, 287, 288, 58, 1494, 1495, 1496, 40, - 1498, 1590, 1500, 1501, 1502, 273, 41, 41, 40, 40, - 294, 41, 1506, 1499, 360, 361, 362, 41, 41, 40, - 62, 41, 1557, 91, 1522, 1523, 1524, 41, 40, 278, - 497, 501, 281, 282, 283, 284, 295, 286, 287, 288, - 40, 300, 489, 302, 409, 277, 41, 125, 125, 123, - 309, 61, 41, 427, 62, 429, 430, 41, 41, 1554, - 41, 1594, 41, 391, 451, 93, 93, 326, 41, 41, - 41, 339, 38, 317, 448, 449, 450, 451, 317, 41, - 1593, 40, 341, 40, 58, 40, 451, 1585, 58, 260, - 261, 262, 263, 414, 415, 416, 461, 268, 44, 464, - 271, 1596, 273, 274, 275, 276, 277, 278, 279, 504, - 281, 282, 283, 284, 91, 286, 287, 288, 93, 290, - 291, 292, 293, 91, 93, 296, 297, 298, 299, 93, - 93, 40, 40, 93, 41, 306, 123, 308, 41, 40, - 311, 40, 421, 41, 315, 316, 93, 318, 93, 510, - 33, 322, 323, 324, 325, 38, 44, 123, 58, 42, - 274, 535, 536, 537, 538, 539, 540, 541, 339, 41, - 535, 536, 537, 538, 539, 540, 541, 60, 41, 41, - 41, 60, 93, 451, 44, 61, 125, 358, 359, 360, - 361, 362, 62, 364, 365, 463, 273, 465, 466, 93, - 468, 469, 93, 374, 375, 41, 93, 93, 91, 93, - 41, 93, 93, 93, 41, 93, 93, 41, 93, 296, - 391, 41, 93, 263, 93, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 44, 93, 38, 93, 0, 535, 536, 537, - 538, 539, 540, 541, 41, 274, 41, 448, 449, 450, - 451, 41, 453, 454, 455, 456, 40, 93, 459, 93, - 461, 93, 463, 464, 465, 466, 41, 468, 469, 33, - 471, 472, 473, 58, 38, 58, 40, 41, 42, 480, - 44, 58, 278, 47, 41, 281, 282, 283, 284, 41, - 286, 287, 288, 41, 40, 59, 60, 61, 62, 40, - 93, 93, 409, 40, 93, 93, 40, 508, 509, 510, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 123, - 40, 263, 41, 40, 93, 526, 527, 91, 529, 530, - 531, 41, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 40, 543, 93, 451, 60, 58, 260, 261, 40, - 263, 40, 40, 91, 461, 268, 41, 464, 271, 123, - 40, 125, 275, 276, 277, 278, 279, 41, 281, 282, - 283, 284, 41, 286, 287, 41, 41, 290, 291, 292, - 293, 40, 263, 296, 297, 298, 274, 41, 41, 40, - 40, 59, 294, 306, 358, 308, 41, 41, 274, 301, - 40, 303, 304, 305, 510, 41, 41, 123, 41, 123, - 323, 324, 325, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 535, 536, - 537, 538, 539, 540, 541, 125, 123, 123, 44, 62, - 342, 343, 344, 125, 123, 358, 40, 360, 361, 362, - 125, 123, 62, 41, 41, 125, 260, 125, 41, 263, - 123, 374, 375, 123, 41, 41, 41, 41, 125, 41, - 62, 123, 41, 40, 278, 123, 123, 281, 282, 283, - 284, 40, 286, 287, 288, 41, 388, 389, 390, 123, - 392, 263, 93, 395, 46, 93, 260, 261, 263, 263, - 42, 414, 415, 416, 268, 275, 61, 271, 275, 273, - 274, 275, 276, 277, 278, 279, 275, 281, 282, 283, - 284, 275, 286, 287, 275, 91, 290, 291, 292, 293, - 275, 275, 296, 297, 298, 299, 269, 180, 421, 272, - 0, 834, 306, 275, 308, 263, 745, 311, 1039, 901, - 263, 1437, 316, 1014, 275, 263, 1016, 1268, 322, 323, - 324, 325, 295, 296, 275, 1143, 275, 300, 275, 302, - 275, 275, 275, 33, 1189, 920, 309, 706, 38, 910, - 40, 41, 42, 1256, 44, 1269, 354, 47, 24, 907, - 9, 114, 481, 326, 358, 1192, 360, 361, 362, 59, - 60, 61, 62, 549, 24, 273, 760, 764, 341, 676, - 374, 375, 308, 610, 64, 493, 372, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, 296, -1, - 543, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, 294, -1, -1, -1, -1, 480, -1, 301, -1, - 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 409, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, - 343, 344, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, -1, 451, -1, 41, -1, -1, -1, -1, - -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, - 260, 261, -1, 263, -1, 388, 389, 390, 268, 392, - -1, 271, 395, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, 33, 260, 261, - -1, 263, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, 355, 356, 357, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 380, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, - -1, -1, 474, -1, 476, 477, 478, 479, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, 123, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, 294, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, 309, - -1, -1, -1, -1, 480, -1, -1, 277, 278, 279, - -1, 281, 282, 283, 284, 325, 286, 287, 288, -1, - 290, 291, 292, 293, 334, -1, -1, 297, 298, -1, - -1, -1, 508, 509, -1, -1, -1, -1, 348, 349, - 350, 351, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, - 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, 365, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, 260, 261, -1, 263, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, 355, 356, 357, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 380, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, 271, -1, -1, -1, -1, 480, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, 346, -1, - 474, -1, 476, 477, 478, 479, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, 365, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, 262, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, 277, - 278, 279, 480, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, -1, -1, - -1, 299, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, -1, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, 0, -1, -1, - -1, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, - -1, -1, 301, -1, 303, 304, 305, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 342, 343, 344, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 123, -1, 125, -1, 428, -1, -1, 431, 432, 388, - 389, 390, -1, 392, -1, -1, 395, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - 294, -1, -1, -1, -1, -1, 480, 301, -1, 303, - 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, - 344, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, 388, 389, 390, -1, 392, -1, - 273, 395, -1, -1, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, -1, 270, 271, 272, 0, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, - -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, - 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 260, -1, -1, - 263, -1, -1, 353, -1, -1, 356, 543, -1, -1, - 273, -1, -1, 363, 277, 278, 279, -1, 281, 282, - 283, 284, 372, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, - -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, 323, -1, -1, -1, 327, -1, -1, - 330, 331, -1, -1, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 260, -1, -1, - 263, -1, -1, 353, -1, -1, 356, 543, -1, -1, - 273, -1, -1, 363, 277, 278, 279, -1, 281, 282, - 283, 284, 372, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, - -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 123, -1, 125, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, 543, -1, -1, - 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, -1, 0, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 322, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, 339, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 359, 323, 324, 325, - -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, -1, -1, -1, -1, -1, -1, 543, -1, -1, - 273, -1, -1, -1, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, 288, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, 59, 294, 295, -1, - -1, -1, -1, 300, -1, 302, -1, -1, -1, 322, - -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 339, -1, -1, 326, - 327, -1, 329, 330, 331, 332, 333, -1, -1, -1, - -1, 338, -1, -1, 341, -1, 359, -1, -1, -1, - 347, 364, 365, -1, -1, 352, -1, 354, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 366, - 367, 368, 369, 370, 371, 372, 373, -1, -1, -1, - -1, -1, 379, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, 0, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, 448, 449, 450, 451, 273, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, - 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, 322, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, - 273, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, 322, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 409, -1, 411, 412, - 413, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - -1, 260, -1, -1, 263, 448, 449, 450, 451, -1, - 453, 454, 526, 527, 273, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - 473, -1, -1, -1, -1, -1, -1, 296, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, 526, 527, 273, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 311, 61, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, 274, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, 0, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 358, -1, 59, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, 273, 274, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, 543, - -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, 260, 59, -1, - 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, 260, - -1, 464, 263, -1, -1, -1, -1, -1, 471, 472, - 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, 59, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 260, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, 59, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, - -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, 322, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 59, -1, -1, -1, -1, 409, 410, 411, 412, - 413, -1, -1, -1, 448, 449, 450, 451, 260, 453, - 454, 455, 456, -1, -1, 459, -1, 461, 431, 432, - 464, 273, -1, -1, -1, -1, -1, 471, 472, 473, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - 463, 464, -1, -1, -1, 123, -1, 125, 471, 472, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, - 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, 59, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, 273, -1, 459, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 260, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 260, -1, 464, - 263, -1, -1, -1, -1, -1, 471, 472, 473, -1, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, - 260, -1, -1, 263, 44, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, 448, 449, 450, 451, 59, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 91, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, - -1, 431, 432, 59, -1, 61, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 322, -1, -1, -1, -1, 0, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, 59, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, 358, 417, 418, 419, - 420, 421, 422, 423, 125, -1, -1, 273, 428, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, 125, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 0, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, - -1, -1, 273, -1, -1, -1, -1, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, 543, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 125, -1, 461, -1, -1, 464, -1, - -1, 322, -1, -1, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 423, -1, -1, -1, 59, 428, -1, -1, - 431, 432, -1, -1, -1, 273, 409, 410, 411, 412, - 413, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 431, 432, - 461, 273, -1, 464, -1, -1, 125, -1, -1, -1, - 471, 472, 473, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, 125, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 59, - -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 431, 432, -1, -1, 409, 410, 411, - 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 273, -1, -1, 455, 456, 431, - 432, -1, 0, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 125, 448, 449, 450, 451, - 273, -1, -1, 455, 456, -1, -1, -1, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, - 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, 409, 410, 411, 412, - 413, -1, -1, 273, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 59, -1, -1, 455, 456, 431, 432, - -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, 59, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - 125, -1, -1, 526, 527, 273, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, 526, 527, 273, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 125, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, -1, 464, -1, 257, -1, - -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 276, 277, -1, - 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, - 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, -1, -1, -1, -1, 461, 431, 432, 464, -1, - 273, -1, -1, -1, -1, 471, 472, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, -1, -1, -1, 42, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 91, 33, -1, - -1, -1, -1, 38, -1, 484, 485, 42, 487, 488, - 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, - -1, -1, -1, -1, -1, 60, 409, 410, 411, 412, - 413, -1, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, - -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, 323, - 324, 325, -1, 268, -1, -1, 271, -1, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 358, -1, 360, 361, 362, -1, - -1, 306, -1, 308, 33, -1, -1, -1, -1, 38, - 374, 375, -1, 42, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, 358, -1, 360, 361, 362, -1, -1, - -1, -1, 91, 33, -1, -1, -1, 271, -1, 374, - 375, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - 294, -1, -1, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, 414, - 415, 416, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, -1, 327, -1, 329, 330, 331, 332, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, - -1, -1, 366, 367, 368, 369, -1, -1, 372, -1, - -1, -1, 376, 377, 378, -1, -1, -1, -1, 543, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, 543, 268, - 91, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, 480, 306, -1, 308, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 294, -1, -1, 297, 298, 358, - -1, 360, 361, 362, -1, -1, 306, -1, 308, 543, - -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, - 330, 331, 332, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 414, 415, 416, 358, -1, - -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, - -1, -1, 372, -1, -1, -1, 376, 377, 378, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, 91, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 359, -1, - 480, -1, 260, 261, 543, 263, -1, -1, -1, -1, - 268, 91, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, 414, 415, 416, -1, -1, -1, -1, - -1, -1, -1, 543, 33, 323, 324, 325, -1, 327, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - 451, 271, -1, -1, -1, 275, 276, 277, 278, 279, - 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 372, -1, 296, 297, 298, -1, - -1, -1, 91, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 414, 415, 416, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, - 260, 261, 543, 263, -1, -1, -1, -1, 268, -1, - -1, 271, 91, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, 33, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 91, -1, -1, -1, -1, 543, -1, -1, -1, -1, - -1, 260, 261, -1, 263, 33, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, 414, 415, 416, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 91, 323, 324, 325, -1, -1, -1, - -1, 260, 261, 543, 263, -1, -1, -1, -1, 268, - -1, -1, 271, 33, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 358, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 414, 415, 416, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, 358, - 271, 33, -1, 543, 275, 276, 277, 278, 279, 41, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, 414, 415, 416, 33, 91, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 358, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, 40, - 308, -1, -1, -1, 543, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, 323, 324, 325, 59, 60, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 91, 295, -1, 297, 298, -1, - 300, -1, 302, -1, 543, -1, 306, -1, 308, 309, - -1, -1, 123, 41, 125, -1, -1, -1, -1, 47, - -1, -1, -1, 323, 324, 325, 326, -1, -1, -1, - -1, 59, -1, -1, -1, -1, 414, 415, 416, -1, - -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, 271, - -1, -1, -1, -1, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - -1, -1, 543, -1, 306, 123, 308, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, 271, -1, -1, -1, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, -1, -1, 358, -1, -1, 260, - -1, 306, 263, 308, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, 543, -1, -1, 323, 324, - 325, -1, -1, -1, 271, -1, -1, -1, -1, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, -1, 358, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, 260, -1, 59, 263, -1, -1, -1, -1, - -1, -1, -1, 543, -1, 273, 274, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 123, 41, - 125, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, -1, -1, -1, 59, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 543, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, 391, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 123, -1, 125, -1, 413, -1, -1, 543, 417, - 418, 419, 420, 421, 422, -1, -1, 508, 509, 510, - -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, - 541, 459, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, 473, 543, -1, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, 59, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, 391, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, 508, 509, 260, -1, -1, 263, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 273, 274, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, 260, -1, - -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 260, - -1, 413, 263, -1, -1, 417, 418, 419, 420, 421, - 422, -1, 273, 508, 509, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, -1, 123, -1, 125, 459, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, -1, -1, 508, 509, 260, - -1, -1, 263, 431, 432, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, - 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, - 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, - -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, - 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, 59, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, - -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 125, -1, -1, -1, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, - -1, 508, 509, 260, -1, -1, 263, 431, 432, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, - 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, - -1, 448, 449, 450, 451, 59, -1, -1, -1, -1, - -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, - -1, 508, 509, -1, -1, -1, -1, 431, 432, -1, - -1, 125, -1, -1, -1, -1, 273, -1, -1, 409, - 410, 411, 412, 413, 448, 449, 450, 451, 535, 536, - 537, 538, 539, 540, 541, 459, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, 473, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, 508, 509, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 409, 410, 411, 412, 413, -1, -1, 273, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, 322, -1, - -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, - -1, 123, 409, -1, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 473, -1, -1, -1, - -1, -1, -1, -1, -1, 409, -1, 411, 412, 413, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, - -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, 257, -1, -1, -1, 473, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, - -1, -1, -1, -1, 276, 277, -1, 279, 280, 281, - 282, 283, 284, 257, 286, 287, -1, 289, 290, 291, - 292, 293, -1, -1, 508, 509, -1, 271, -1, -1, - -1, -1, 276, 277, -1, 279, 280, 281, 282, 283, - 284, -1, 286, 287, -1, 289, 290, 291, 292, 293, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, 335, -1, 337, -1, -1, -1, -1, - 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, - -1, 335, -1, 337, -1, -1, -1, -1, 342, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, 391, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 481, - -1, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, -1, -1, - -1, 503, -1, -1, -1, -1, -1, 481, -1, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, -1, -1, -1, 503, -}; -static int yyctable[] = { -1, - 239, 556, -1, 442, 767, -1, 294, 697, -1, 295, - 697, -1, 296, 697, -1, 298, 697, -1, 299, 697, - -1, 300, 697, -1, 301, 697, -1, 529, 718, -1, - 206, 40, -1, 225, 495, -1, 97, 495, -1, 99, - 495, -1, 100, 495, -1, 101, 495, -1, 102, 495, - -1, 103, 495, -1, 786, 317, -1, 854, 769, -1, - 67, 564, -1, 68, 564, -1, 69, 564, -1, 27, - 78, -1, 28, 78, -1, 29, 78, -1, 30, 78, - -1, 31, 78, -1, 32, 78, -1, 33, 78, -1, - 34, 78, -1, 1136, 624, -1, 67, 565, -1, 68, - 565, -1, 69, 565, -1, 1153, 37, -1, 1270, 773, - -1, 1272, 771, -1, 1284, 608, -1, 1433, 775, -1, - 1138, 571, -1, 1139, 571, -1, -}; -#ifdef YYDESTRUCT -static int yyastable[] = { 0, - 309, 18, 154, 155, 156, 157, 158, 176, 177, 193, - 194, 195, 196, 200, 201, 206, 209, 216, 217, 271, - 272, 274, 275, 276, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 296, 319, 320, 398, 404, 405, 420, - 421, 423, 424, 426, 427, 428, 429, 430, 431, 432, - 434, 436, 438, 440, 441, 442, 443, 444, 445, 447, - 448, 449, 462, 480, 486, 215, 5, 6, 8, 310, - 311, 298, 325, 64, 125, 482, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 397, 397, 8, 14, 17, 40, 41, 45, 47, - 54, 71, 86, 294, 316, 317, 384, 386, 387, 297, - 298, 273, 399, 215, 401, 403, 215, 310, 9, 318, - 318, 9, 10, 335, 335, 13, 16, 20, 21, 22, - 23, 24, 26, 27, 28, 29, 31, 32, 35, 36, - 37, 38, 42, 43, 51, 53, 68, 69, 70, 103, - 104, 159, 160, 161, 288, 298, 307, 310, 314, 339, - 363, 381, 385, 387, 404, 405, 459, 289, 310, 310, - 310, 310, 7, 12, 342, 343, 342, 342, 289, 289, - 425, 289, 289, 289, 289, 342, 388, 60, 450, 389, - 23, 26, 27, 28, 29, 31, 32, 33, 289, 305, - 481, 484, 485, 318, 402, 293, 318, 390, 311, 298, - 339, 381, 382, 387, 459, 7, 33, 297, 347, 292, - 294, 294, 46, 48, 49, 50, 316, 316, 382, 383, - 385, 339, 297, 294, 318, 318, 207, 310, 401, 100, - 101, 102, 125, 219, 221, 222, 223, 224, 310, 75, - 76, 310, 310, 339, 26, 27, 28, 29, 381, 51, - 381, 24, 25, 34, 15, 17, 339, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 35, 36, 37, 38, - 44, 347, 350, 352, 485, 217, 304, 310, 387, 307, - 310, 318, 306, 105, 106, 107, 136, 298, 300, 304, - 305, 136, 136, 136, 136, 316, 386, 381, 446, 347, - 295, 12, 295, 295, 422, 309, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 162, - 163, 164, 165, 166, 167, 204, 218, 253, 254, 289, - 290, 311, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 427, 430, 441, 442, - 443, 445, 464, 465, 466, 467, 468, 469, 470, 473, - 433, 435, 437, 439, 295, 39, 68, 72, 75, 76, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 98, 101, 108, 117, 310, 382, 61, 451, - 39, 72, 74, 75, 76, 77, 78, 83, 92, 97, - 99, 111, 112, 113, 114, 115, 116, 117, 118, 124, - 316, 304, 294, 298, 323, 294, 323, 294, 323, 294, - 323, 294, 323, 294, 323, 294, 483, 484, 294, 342, - 7, 8, 292, 303, 73, 75, 76, 82, 310, 310, - 299, 39, 72, 74, 75, 76, 77, 111, 112, 113, - 114, 117, 121, 122, 123, 225, 339, 297, 217, 310, - 294, 297, 316, 294, 289, 294, 291, 8, 318, 318, - 295, 119, 120, 298, 310, 312, 382, 289, 294, 347, - 299, 166, 400, 310, 220, 136, 381, 25, 310, 382, - 294, 294, 26, 27, 28, 29, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 342, 310, 299, 299, - 299, 310, 318, 310, 294, 294, 310, 20, 299, 318, - 340, 341, 339, 365, 366, 310, 310, 310, 310, 339, - 446, 290, 67, 154, 168, 173, 198, 199, 218, 253, - 254, 290, 421, 424, 426, 427, 430, 441, 442, 443, - 445, 453, 454, 456, 458, 290, 318, 318, 318, 298, - 110, 287, 298, 103, 382, 303, 311, 318, 318, 335, - 11, 31, 32, 294, 334, 335, 311, 318, 386, 15, - 17, 339, 387, 382, 87, 347, 485, 316, 383, 294, - 342, 197, 294, 425, 55, 57, 58, 59, 471, 472, - 474, 476, 477, 478, 479, 311, 318, 468, 208, 210, - 213, 214, 290, 441, 442, 445, 488, 489, 490, 491, - 84, 208, 211, 290, 487, 489, 492, 493, 41, 154, - 206, 209, 290, 442, 445, 494, 206, 209, 290, 442, - 445, 495, 294, 75, 76, 77, 111, 112, 113, 300, - 380, 382, 452, 294, 294, 322, 294, 318, 318, 318, - 318, 335, 334, 334, 290, 292, 311, 295, 318, 318, - 75, 76, 77, 111, 112, 113, 294, 294, 310, 310, - 299, 347, 395, 396, 289, 339, 51, 374, 375, 382, - 7, 292, 295, 295, 384, 300, 333, 364, 19, 370, - 372, 321, 487, 136, 310, 19, 65, 66, 326, 318, - 294, 294, 294, 294, 318, 318, 318, 335, 318, 334, - 334, 335, 318, 318, 318, 335, 295, 299, 314, 314, - 314, 382, 382, 20, 292, 299, 301, 292, 304, 110, - 392, 393, 318, 318, 402, 110, 287, 103, 382, 289, - 425, 289, 289, 289, 303, 318, 298, 310, 298, 310, - 318, 316, 19, 294, 294, 310, 382, 294, 342, 339, - 311, 315, 318, 295, 294, 20, 322, 336, 337, 338, - 290, 382, 471, 56, 468, 475, 475, 475, 475, 311, - 318, 468, 62, 62, 212, 297, 304, 318, 377, 297, - 347, 342, 342, 297, 297, 342, 342, 294, 215, 318, - 310, 215, 310, 215, 318, 39, 51, 52, 69, 119, - 288, 291, 302, 327, 328, 379, 292, 318, 347, 394, - 298, 339, 347, 295, 299, 295, 295, 295, 295, 295, - 483, 295, 303, 8, 292, 318, 2, 16, 21, 22, - 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, - 36, 37, 38, 80, 82, 87, 103, 136, 226, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 248, 289, 344, 345, - 463, 63, 313, 299, 297, 295, 292, 370, 8, 292, - 290, 297, 8, 297, 298, 365, 294, 294, 310, 312, - 290, 22, 23, 24, 26, 27, 28, 29, 31, 32, - 35, 36, 37, 38, 42, 43, 110, 351, 352, 373, - 445, 28, 29, 63, 202, 203, 205, 342, 310, 310, - 295, 295, 318, 318, 318, 335, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 314, 295, - 295, 318, 340, 339, 294, 382, 72, 117, 310, 382, - 72, 117, 316, 310, 298, 310, 298, 310, 316, 19, - 422, 290, 455, 457, 437, 318, 299, 318, 318, 292, - 299, 339, 312, 318, 335, 19, 347, 295, 294, 292, - 295, 292, 336, 339, 295, 292, 311, 318, 311, 318, - 318, 294, 303, 294, 295, 295, 294, 294, 295, 295, - 318, 314, 310, 63, 310, 295, 294, 39, 329, 330, - 328, 294, 310, 369, 301, 382, 295, 136, 394, 39, - 46, 48, 49, 50, 87, 88, 89, 133, 134, 135, - 137, 140, 295, 250, 251, 252, 318, 225, 349, 295, - 323, 323, 323, 323, 323, 323, 318, 318, 295, 25, - 26, 27, 28, 29, 294, 331, 242, 234, 246, 294, - 227, 247, 22, 331, 331, 2, 21, 22, 24, 25, - 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, - 38, 229, 230, 232, 233, 234, 236, 237, 240, 241, - 243, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 304, 324, 298, 304, 295, - 343, 311, 297, 346, 28, 318, 326, 347, 348, 381, - 395, 290, 297, 375, 289, 289, 294, 347, 318, 301, - 336, 336, 333, 364, 298, 298, 26, 27, 28, 29, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 294, 298, 294, 298, 294, 298, 104, 109, 376, 445, - 311, 295, 295, 295, 295, 295, 336, 196, 404, 310, - 339, 318, 318, 292, 339, 312, 290, 169, 170, 171, - 172, 290, 430, 442, 443, 445, 460, 172, 174, 175, - 290, 430, 442, 443, 445, 461, 290, 136, 299, 299, - 382, 346, 382, 295, 295, 310, 295, 336, 315, 315, - 295, 349, 338, 62, 62, 377, 295, 318, 318, 294, - 330, 382, 367, 368, 382, 292, 378, 310, 347, 295, - 294, 303, 303, 299, 299, 299, 299, 294, 312, 8, - 292, 8, 249, 347, 298, 298, 25, 26, 27, 28, - 29, 270, 292, 298, 305, 291, 299, 318, 290, 350, - 294, 294, 289, 373, 370, 299, 295, 295, 294, 294, - 318, 318, 298, 298, 298, 298, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 351, 318, 8, 44, - 318, 44, 51, 381, 318, 42, 91, 110, 363, 371, - 400, 295, 310, 299, 299, 382, 382, 255, 386, 386, - 386, 386, 386, 386, 386, 311, 292, 19, 295, 311, - 311, 318, 303, 295, 318, 310, 295, 292, 379, 378, - 394, 318, 138, 139, 138, 139, 345, 380, 318, 297, - 292, 318, 318, 347, 299, 318, 291, 299, 318, 26, - 27, 28, 318, 373, 290, 290, 301, 336, 336, 299, - 299, 318, 318, 318, 318, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 295, 299, 295, 295, 299, - 295, 8, 295, 299, 51, 381, 298, 310, 294, 292, - 19, 316, 382, 312, 377, 295, 378, 382, 295, 295, - 295, 294, 8, 318, 347, 299, 299, 299, 318, 295, - 303, 303, 303, 295, 290, 295, 295, 294, 294, 299, - 299, 299, 299, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 295, 294, 8, 299, 297, - 336, 382, 312, 339, 300, 332, 333, 303, 336, 295, - 292, 295, 344, 299, 318, 318, 318, 359, 356, 294, - 294, 294, 294, 355, 356, 357, 358, 353, 354, 355, - 356, 357, 358, 362, 360, 361, 351, 295, 332, 382, - 294, 377, 295, 347, 295, 295, 295, 295, 326, 295, - 318, 355, 356, 357, 358, 295, 318, 295, 295, 318, - 295, 335, 295, 318, 334, 295, 334, 335, 295, 295, - 295, 295, 295, 351, 8, 44, 295, 44, 51, 295, - 381, 346, 294, 19, 336, 391, 292, 295, 295, 295, - 295, 8, 336, 312, 295, 39, 54, 70, 79, 93, - 94, 95, 96, 125, 126, 127, 128, 129, 130, 131, - 289, 347, 295, 294, 294, 295, 255, 336, 318, 103, - 295, 295, 316, 339, 382, 19, 312, 332, 294, 336, - 295, + +#line 450 "asmparse.cpp" + }; -#endif /* YYDESTRUCT */ -#define YYFINAL 1 -#ifndef YYDEBUG -#define YYDEBUG 0 +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif -#define YYMAXTOKEN 543 -#if YYDEBUG -static const char *yyname[] = { -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"'!'",0,0,0,0,"'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0, -0,0,0,0,0,"':'","';'","'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"ERROR_","BAD_COMMENT_", -"BAD_LITERAL_","ID","DOTTEDNAME","QSTRING","SQSTRING","INT32","INT64","FLOAT64", -"HEXBYTE","TYPEDEF_T","TYPEDEF_M","TYPEDEF_F","TYPEDEF_TS","TYPEDEF_MR", -"TYPEDEF_CA","DCOLON","ELLIPSIS","VOID_","BOOL_","CHAR_","UNSIGNED_","INT_", -"INT8_","INT16_","INT32_","INT64_","FLOAT_","FLOAT32_","FLOAT64_","BYTEARRAY_", -"UINT_","UINT8_","UINT16_","UINT32_","UINT64_","FLAGS_","CALLCONV_","MDTOKEN_", -"OBJECT_","STRING_","NULLREF_","DEFAULT_","CDECL_","VARARG_","STDCALL_", -"THISCALL_","FASTCALL_","CLASS_","BYREFLIKE_","TYPEDREF_","UNMANAGED_", -"FINALLY_","HANDLER_","CATCH_","FILTER_","FAULT_","EXTENDS_","IMPLEMENTS_", -"TO_","AT_","TLS_","TRUE_","FALSE_","_INTERFACEIMPL","VALUE_","VALUETYPE_", -"NATIVE_","INSTANCE_","SPECIALNAME_","FORWARDER_","STATIC_","PUBLIC_", -"PRIVATE_","FAMILY_","FINAL_","SYNCHRONIZED_","INTERFACE_","SEALED_","NESTED_", -"ABSTRACT_","AUTO_","SEQUENTIAL_","EXPLICIT_","ANSI_","UNICODE_","AUTOCHAR_", -"IMPORT_","ENUM_","VIRTUAL_","NOINLINING_","AGGRESSIVEINLINING_", -"NOOPTIMIZATION_","AGGRESSIVEOPTIMIZATION_","UNMANAGEDEXP_","BEFOREFIELDINIT_", -"STRICT_","RETARGETABLE_","WINDOWSRUNTIME_","NOPLATFORM_","METHOD_","FIELD_", -"PINNED_","MODREQ_","MODOPT_","SERIALIZABLE_","PROPERTY_","TYPE_","ASSEMBLY_", -"FAMANDASSEM_","FAMORASSEM_","PRIVATESCOPE_","HIDEBYSIG_","NEWSLOT_", -"RTSPECIALNAME_","PINVOKEIMPL_","_CTOR","_CCTOR","LITERAL_","NOTSERIALIZED_", -"INITONLY_","REQSECOBJ_","CIL_","OPTIL_","MANAGED_","FORWARDREF_", -"PRESERVESIG_","RUNTIME_","INTERNALCALL_","_IMPORT","NOMANGLE_","LASTERR_", -"WINAPI_","AS_","BESTFIT_","ON_","OFF_","CHARMAPERROR_","INSTR_NONE", -"INSTR_VAR","INSTR_I","INSTR_I8","INSTR_R","INSTR_BRTARGET","INSTR_METHOD", -"INSTR_FIELD","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", -"INSTR_SWITCH","_CLASS","_NAMESPACE","_METHOD","_FIELD","_DATA","_THIS","_BASE", -"_NESTER","_EMITBYTE","_TRY","_MAXSTACK","_LOCALS","_ENTRYPOINT","_ZEROINIT", -"_EVENT","_ADDON","_REMOVEON","_FIRE","_OTHER","_PROPERTY","_SET","_GET", -"_PERMISSION","_PERMISSIONSET","REQUEST_","DEMAND_","ASSERT_","DENY_", -"PERMITONLY_","LINKCHECK_","INHERITCHECK_","REQMIN_","REQOPT_","REQREFUSE_", -"PREJITGRANT_","PREJITDENY_","NONCASDEMAND_","NONCASLINKDEMAND_", -"NONCASINHERITANCE_","_LINE","P_LINE","_LANGUAGE","_CUSTOM","INIT_","_SIZE", -"_PACK","_VTABLE","_VTFIXUP","FROMUNMANAGED_","CALLMOSTDERIVED_","_VTENTRY", -"RETAINAPPDOMAIN_","_FILE","NOMETADATA_","_HASH","_ASSEMBLY","_PUBLICKEY", -"_PUBLICKEYTOKEN","ALGORITHM_","_VER","_LOCALE","EXTERN_","_MRESOURCE", -"_MODULE","_EXPORT","LEGACY_","LIBRARY_","X86_","AMD64_","ARM_","ARM64_", -"MARSHAL_","CUSTOM_","SYSSTRING_","FIXED_","VARIANT_","CURRENCY_","SYSCHAR_", -"DECIMAL_","DATE_","BSTR_","TBSTR_","LPSTR_","LPWSTR_","LPTSTR_","OBJECTREF_", -"IUNKNOWN_","IDISPATCH_","STRUCT_","SAFEARRAY_","BYVALSTR_","LPVOID_","ANY_", -"ARRAY_","LPSTRUCT_","IIDPARAM_","IN_","OUT_","OPT_","_PARAM","_OVERRIDE", -"WITH_","NULL_","HRESULT_","CARRAY_","USERDEFINED_","RECORD_","FILETIME_", -"BLOB_","STREAM_","STORAGE_","STREAMED_OBJECT_","STORED_OBJECT_","BLOB_OBJECT_", -"CF_","CLSID_","VECTOR_","_SUBSYSTEM","_CORFLAGS","ALIGNMENT_","_IMAGEBASE", -"_STACKRESERVE","_TYPEDEF","_TEMPLATE","_TYPELIST","_MSCORLIB","P_DEFINE", -"P_UNDEF","P_IFDEF","P_IFNDEF","P_ELSE","P_ENDIF","P_INCLUDE","CONSTRAINT_", -"CONST_", -}; -static const char *yyrule[] = { -"$accept : decls", -"decls :", -"decls : decls decl", -"decl : classHead '{' classDecls '}'", -"decl : nameSpaceHead '{' decls '}'", -"decl : methodHead methodDecls '}'", -"decl : fieldDecl", -"decl : dataDecl", -"decl : vtableDecl", -"decl : vtfixupDecl", -"decl : extSourceSpec", -"decl : fileDecl", -"decl : assemblyHead '{' assemblyDecls '}'", -"decl : assemblyRefHead '{' assemblyRefDecls '}'", -"decl : exptypeHead '{' exptypeDecls '}'", -"decl : manifestResHead '{' manifestResDecls '}'", -"decl : moduleHead", -"decl : secDecl", -"decl : customAttrDecl", -"decl : _SUBSYSTEM int32", -"decl : _CORFLAGS int32", -"decl : _FILE ALIGNMENT_ int32", -"decl : _IMAGEBASE int64", -"decl : _STACKRESERVE int64", -"decl : languageDecl", -"decl : typedefDecl", -"decl : compControl", -"decl : _TYPELIST '{' classNameSeq '}'", -"decl : _MSCORLIB", -"classNameSeq :", -"classNameSeq : className classNameSeq", -"compQstring : QSTRING", -"compQstring : compQstring '+' QSTRING", -"languageDecl : _LANGUAGE SQSTRING", -"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING", -"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING", -"id : ID", -"id : SQSTRING", -"dottedName : id", -"dottedName : DOTTEDNAME", -"dottedName : dottedName '.' dottedName", -"int32 : INT32", -"int64 : INT64", -"int64 : INT32", -"float64 : FLOAT64", -"float64 : FLOAT32_ '(' int32 ')'", -"float64 : FLOAT64_ '(' int64 ')'", -"typedefDecl : _TYPEDEF type AS_ dottedName", -"typedefDecl : _TYPEDEF className AS_ dottedName", -"typedefDecl : _TYPEDEF memberRef AS_ dottedName", -"typedefDecl : _TYPEDEF customDescr AS_ dottedName", -"typedefDecl : _TYPEDEF customDescrWithOwner AS_ dottedName", -"compControl : P_DEFINE dottedName", -"compControl : P_DEFINE dottedName compQstring", -"compControl : P_UNDEF dottedName", -"compControl : P_IFDEF dottedName", -"compControl : P_IFNDEF dottedName", -"compControl : P_ELSE", -"compControl : P_ENDIF", -"compControl : P_INCLUDE QSTRING", -"compControl : ';'", -"customDescr : _CUSTOM customType", -"customDescr : _CUSTOM customType '=' compQstring", -"customDescr : _CUSTOM customType '=' '{' customBlobDescr '}'", -"customDescr : customHead bytes ')'", -"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType", -"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' compQstring", -"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}'", -"customDescrWithOwner : customHeadWithOwner bytes ')'", -"customHead : _CUSTOM customType '=' '('", -"customHeadWithOwner : _CUSTOM '(' ownerType ')' customType '=' '('", -"customType : methodRef", -"ownerType : typeSpec", -"ownerType : memberRef", -"customBlobDescr : customBlobArgs customBlobNVPairs", -"customBlobArgs :", -"customBlobArgs : customBlobArgs serInit", -"customBlobArgs : customBlobArgs compControl", -"customBlobNVPairs :", -"customBlobNVPairs : customBlobNVPairs fieldOrProp serializType dottedName '=' serInit", -"customBlobNVPairs : customBlobNVPairs compControl", -"fieldOrProp : FIELD_", -"fieldOrProp : PROPERTY_", -"customAttrDecl : customDescr", -"customAttrDecl : customDescrWithOwner", -"customAttrDecl : TYPEDEF_CA", -"serializType : simpleType", -"serializType : TYPE_", -"serializType : OBJECT_", -"serializType : ENUM_ CLASS_ SQSTRING", -"serializType : ENUM_ className", -"serializType : serializType '[' ']'", -"moduleHead : _MODULE", -"moduleHead : _MODULE dottedName", -"moduleHead : _MODULE EXTERN_ dottedName", -"vtfixupDecl : _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id", -"vtfixupAttr :", -"vtfixupAttr : vtfixupAttr INT32_", -"vtfixupAttr : vtfixupAttr INT64_", -"vtfixupAttr : vtfixupAttr FROMUNMANAGED_", -"vtfixupAttr : vtfixupAttr CALLMOSTDERIVED_", -"vtfixupAttr : vtfixupAttr RETAINAPPDOMAIN_", -"vtableDecl : vtableHead bytes ')'", -"vtableHead : _VTABLE '=' '('", -"nameSpaceHead : _NAMESPACE dottedName", -"_class : _CLASS", -"classHeadBegin : _class classAttr dottedName typarsClause", -"classHead : classHeadBegin extendsClause implClause", -"classAttr :", -"classAttr : classAttr PUBLIC_", -"classAttr : classAttr PRIVATE_", -"classAttr : classAttr VALUE_", -"classAttr : classAttr ENUM_", -"classAttr : classAttr INTERFACE_", -"classAttr : classAttr SEALED_", -"classAttr : classAttr ABSTRACT_", -"classAttr : classAttr AUTO_", -"classAttr : classAttr SEQUENTIAL_", -"classAttr : classAttr EXPLICIT_", -"classAttr : classAttr ANSI_", -"classAttr : classAttr UNICODE_", -"classAttr : classAttr AUTOCHAR_", -"classAttr : classAttr IMPORT_", -"classAttr : classAttr SERIALIZABLE_", -"classAttr : classAttr WINDOWSRUNTIME_", -"classAttr : classAttr NESTED_ PUBLIC_", -"classAttr : classAttr NESTED_ PRIVATE_", -"classAttr : classAttr NESTED_ FAMILY_", -"classAttr : classAttr NESTED_ ASSEMBLY_", -"classAttr : classAttr NESTED_ FAMANDASSEM_", -"classAttr : classAttr NESTED_ FAMORASSEM_", -"classAttr : classAttr BEFOREFIELDINIT_", -"classAttr : classAttr SPECIALNAME_", -"classAttr : classAttr RTSPECIALNAME_", -"classAttr : classAttr FLAGS_ '(' int32 ')'", -"extendsClause :", -"extendsClause : EXTENDS_ typeSpec", -"implClause :", -"implClause : IMPLEMENTS_ implList", -"classDecls :", -"classDecls : classDecls classDecl", -"implList : implList ',' typeSpec", -"implList : typeSpec", -"typeList :", -"typeList : typeListNotEmpty", -"typeListNotEmpty : typeSpec", -"typeListNotEmpty : typeListNotEmpty ',' typeSpec", -"typarsClause :", -"typarsClause : '<' typars '>'", -"typarAttrib : '+'", -"typarAttrib : '-'", -"typarAttrib : CLASS_", -"typarAttrib : VALUETYPE_", -"typarAttrib : BYREFLIKE_", -"typarAttrib : _CTOR", -"typarAttrib : FLAGS_ '(' int32 ')'", -"typarAttribs :", -"typarAttribs : typarAttrib typarAttribs", -"conTyparAttrib : FLAGS_ '(' int32 ')'", -"conTyparAttribs :", -"conTyparAttribs : conTyparAttrib conTyparAttribs", -"typars : CONST_ conTyparAttribs typeSpec dottedName typarsRest", -"typars : typarAttribs tyBound dottedName typarsRest", -"typars : typarAttribs dottedName typarsRest", -"typarsRest :", -"typarsRest : ',' typars", -"tyBound : '(' typeList ')'", -"genArity :", -"genArity : genArityNotEmpty", -"genArityNotEmpty : '<' '[' int32 ']' '>'", -"classDecl : methodHead methodDecls '}'", -"classDecl : classHead '{' classDecls '}'", -"classDecl : eventHead '{' eventDecls '}'", -"classDecl : propHead '{' propDecls '}'", -"classDecl : fieldDecl", -"classDecl : dataDecl", -"classDecl : secDecl", -"classDecl : extSourceSpec", -"classDecl : customAttrDecl", -"classDecl : _SIZE int32", -"classDecl : _PACK int32", -"classDecl : exportHead '{' exptypeDecls '}'", -"classDecl : _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')'", -"classDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", -"classDecl : languageDecl", -"classDecl : compControl", -"classDecl : _PARAM TYPE_ '[' int32 ']'", -"classDecl : _PARAM TYPE_ dottedName", -"classDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", -"classDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", -"classDecl : _INTERFACEIMPL TYPE_ typeSpec customDescr", -"fieldDecl : _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt", -"fieldAttr :", -"fieldAttr : fieldAttr STATIC_", -"fieldAttr : fieldAttr PUBLIC_", -"fieldAttr : fieldAttr PRIVATE_", -"fieldAttr : fieldAttr FAMILY_", -"fieldAttr : fieldAttr INITONLY_", -"fieldAttr : fieldAttr RTSPECIALNAME_", -"fieldAttr : fieldAttr SPECIALNAME_", -"fieldAttr : fieldAttr MARSHAL_ '(' marshalBlob ')'", -"fieldAttr : fieldAttr ASSEMBLY_", -"fieldAttr : fieldAttr FAMANDASSEM_", -"fieldAttr : fieldAttr FAMORASSEM_", -"fieldAttr : fieldAttr PRIVATESCOPE_", -"fieldAttr : fieldAttr LITERAL_", -"fieldAttr : fieldAttr NOTSERIALIZED_", -"fieldAttr : fieldAttr FLAGS_ '(' int32 ')'", -"atOpt :", -"atOpt : AT_ id", -"initOpt :", -"initOpt : '=' fieldInit", -"repeatOpt :", -"repeatOpt : '[' int32 ']'", -"methodRef : callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')'", -"methodRef : callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')'", -"methodRef : callConv type methodName tyArgs0 '(' sigArgs0 ')'", -"methodRef : callConv type methodName genArityNotEmpty '(' sigArgs0 ')'", -"methodRef : mdtoken", -"methodRef : TYPEDEF_M", -"methodRef : TYPEDEF_MR", -"callConv : INSTANCE_ callConv", -"callConv : EXPLICIT_ callConv", -"callConv : callKind", -"callConv : CALLCONV_ '(' int32 ')'", -"callKind :", -"callKind : DEFAULT_", -"callKind : VARARG_", -"callKind : UNMANAGED_ CDECL_", -"callKind : UNMANAGED_ STDCALL_", -"callKind : UNMANAGED_ THISCALL_", -"callKind : UNMANAGED_ FASTCALL_", -"callKind : UNMANAGED_", -"mdtoken : MDTOKEN_ '(' int32 ')'", -"memberRef : methodSpec methodRef", -"memberRef : FIELD_ type typeSpec DCOLON dottedName", -"memberRef : FIELD_ type dottedName", -"memberRef : FIELD_ TYPEDEF_F", -"memberRef : FIELD_ TYPEDEF_MR", -"memberRef : mdtoken", -"eventHead : _EVENT eventAttr typeSpec dottedName", -"eventHead : _EVENT eventAttr dottedName", -"eventAttr :", -"eventAttr : eventAttr RTSPECIALNAME_", -"eventAttr : eventAttr SPECIALNAME_", -"eventDecls :", -"eventDecls : eventDecls eventDecl", -"eventDecl : _ADDON methodRef", -"eventDecl : _REMOVEON methodRef", -"eventDecl : _FIRE methodRef", -"eventDecl : _OTHER methodRef", -"eventDecl : extSourceSpec", -"eventDecl : customAttrDecl", -"eventDecl : languageDecl", -"eventDecl : compControl", -"propHead : _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt", -"propAttr :", -"propAttr : propAttr RTSPECIALNAME_", -"propAttr : propAttr SPECIALNAME_", -"propDecls :", -"propDecls : propDecls propDecl", -"propDecl : _SET methodRef", -"propDecl : _GET methodRef", -"propDecl : _OTHER methodRef", -"propDecl : customAttrDecl", -"propDecl : extSourceSpec", -"propDecl : languageDecl", -"propDecl : compControl", -"methodHeadPart1 : _METHOD", -"marshalClause :", -"marshalClause : MARSHAL_ '(' marshalBlob ')'", -"marshalBlob : nativeType", -"marshalBlob : marshalBlobHead hexbytes '}'", -"marshalBlobHead : '{'", -"methodHead : methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{'", -"methAttr :", -"methAttr : methAttr STATIC_", -"methAttr : methAttr PUBLIC_", -"methAttr : methAttr PRIVATE_", -"methAttr : methAttr FAMILY_", -"methAttr : methAttr FINAL_", -"methAttr : methAttr SPECIALNAME_", -"methAttr : methAttr VIRTUAL_", -"methAttr : methAttr STRICT_", -"methAttr : methAttr ABSTRACT_", -"methAttr : methAttr ASSEMBLY_", -"methAttr : methAttr FAMANDASSEM_", -"methAttr : methAttr FAMORASSEM_", -"methAttr : methAttr PRIVATESCOPE_", -"methAttr : methAttr HIDEBYSIG_", -"methAttr : methAttr NEWSLOT_", -"methAttr : methAttr RTSPECIALNAME_", -"methAttr : methAttr UNMANAGEDEXP_", -"methAttr : methAttr REQSECOBJ_", -"methAttr : methAttr FLAGS_ '(' int32 ')'", -"methAttr : methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')'", -"methAttr : methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')'", -"methAttr : methAttr PINVOKEIMPL_ '(' pinvAttr ')'", -"pinvAttr :", -"pinvAttr : pinvAttr NOMANGLE_", -"pinvAttr : pinvAttr ANSI_", -"pinvAttr : pinvAttr UNICODE_", -"pinvAttr : pinvAttr AUTOCHAR_", -"pinvAttr : pinvAttr LASTERR_", -"pinvAttr : pinvAttr WINAPI_", -"pinvAttr : pinvAttr CDECL_", -"pinvAttr : pinvAttr STDCALL_", -"pinvAttr : pinvAttr THISCALL_", -"pinvAttr : pinvAttr FASTCALL_", -"pinvAttr : pinvAttr BESTFIT_ ':' ON_", -"pinvAttr : pinvAttr BESTFIT_ ':' OFF_", -"pinvAttr : pinvAttr CHARMAPERROR_ ':' ON_", -"pinvAttr : pinvAttr CHARMAPERROR_ ':' OFF_", -"pinvAttr : pinvAttr FLAGS_ '(' int32 ')'", -"methodName : _CTOR", -"methodName : _CCTOR", -"methodName : dottedName", -"paramAttr :", -"paramAttr : paramAttr '[' IN_ ']'", -"paramAttr : paramAttr '[' OUT_ ']'", -"paramAttr : paramAttr '[' OPT_ ']'", -"paramAttr : paramAttr '[' int32 ']'", -"implAttr :", -"implAttr : implAttr NATIVE_", -"implAttr : implAttr CIL_", -"implAttr : implAttr OPTIL_", -"implAttr : implAttr MANAGED_", -"implAttr : implAttr UNMANAGED_", -"implAttr : implAttr FORWARDREF_", -"implAttr : implAttr PRESERVESIG_", -"implAttr : implAttr RUNTIME_", -"implAttr : implAttr INTERNALCALL_", -"implAttr : implAttr SYNCHRONIZED_", -"implAttr : implAttr NOINLINING_", -"implAttr : implAttr AGGRESSIVEINLINING_", -"implAttr : implAttr NOOPTIMIZATION_", -"implAttr : implAttr AGGRESSIVEOPTIMIZATION_", -"implAttr : implAttr FLAGS_ '(' int32 ')'", -"localsHead : _LOCALS", -"methodDecls :", -"methodDecls : methodDecls methodDecl", -"methodDecl : _EMITBYTE int32", -"methodDecl : sehBlock", -"methodDecl : _MAXSTACK int32", -"methodDecl : localsHead '(' sigArgs0 ')'", -"methodDecl : localsHead INIT_ '(' sigArgs0 ')'", -"methodDecl : _ENTRYPOINT", -"methodDecl : _ZEROINIT", -"methodDecl : dataDecl", -"methodDecl : instr", -"methodDecl : id ':'", -"methodDecl : secDecl", -"methodDecl : extSourceSpec", -"methodDecl : languageDecl", -"methodDecl : customAttrDecl", -"methodDecl : compControl", -"methodDecl : _EXPORT '[' int32 ']'", -"methodDecl : _EXPORT '[' int32 ']' AS_ id", -"methodDecl : _VTENTRY int32 ':' int32", -"methodDecl : _OVERRIDE typeSpec DCOLON methodName", -"methodDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", -"methodDecl : scopeBlock", -"methodDecl : _PARAM TYPE_ '[' int32 ']'", -"methodDecl : _PARAM TYPE_ dottedName", -"methodDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", -"methodDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", -"methodDecl : _PARAM '[' int32 ']' initOpt", -"scopeBlock : scopeOpen methodDecls '}'", -"scopeOpen : '{'", -"sehBlock : tryBlock sehClauses", -"sehClauses : sehClause sehClauses", -"sehClauses : sehClause", -"tryBlock : tryHead scopeBlock", -"tryBlock : tryHead id TO_ id", -"tryBlock : tryHead int32 TO_ int32", -"tryHead : _TRY", -"sehClause : catchClause handlerBlock", -"sehClause : filterClause handlerBlock", -"sehClause : finallyClause handlerBlock", -"sehClause : faultClause handlerBlock", -"filterClause : filterHead scopeBlock", -"filterClause : filterHead id", -"filterClause : filterHead int32", -"filterHead : FILTER_", -"catchClause : CATCH_ typeSpec", -"finallyClause : FINALLY_", -"faultClause : FAULT_", -"handlerBlock : scopeBlock", -"handlerBlock : HANDLER_ id TO_ id", -"handlerBlock : HANDLER_ int32 TO_ int32", -"dataDecl : ddHead ddBody", -"ddHead : _DATA tls id '='", -"ddHead : _DATA tls", -"tls :", -"tls : TLS_", -"tls : CIL_", -"ddBody : '{' ddItemList '}'", -"ddBody : ddItem", -"ddItemList : ddItem ',' ddItemList", -"ddItemList : ddItem", -"ddItemCount :", -"ddItemCount : '[' int32 ']'", -"ddItem : CHAR_ '*' '(' compQstring ')'", -"ddItem : '&' '(' id ')'", -"ddItem : bytearrayhead bytes ')'", -"ddItem : FLOAT32_ '(' float64 ')' ddItemCount", -"ddItem : FLOAT64_ '(' float64 ')' ddItemCount", -"ddItem : INT64_ '(' int64 ')' ddItemCount", -"ddItem : INT32_ '(' int32 ')' ddItemCount", -"ddItem : INT16_ '(' int32 ')' ddItemCount", -"ddItem : INT8_ '(' int32 ')' ddItemCount", -"ddItem : FLOAT32_ ddItemCount", -"ddItem : FLOAT64_ ddItemCount", -"ddItem : INT64_ ddItemCount", -"ddItem : INT32_ ddItemCount", -"ddItem : INT16_ ddItemCount", -"ddItem : INT8_ ddItemCount", -"fieldSerInit : FLOAT32_ '(' float64 ')'", -"fieldSerInit : FLOAT64_ '(' float64 ')'", -"fieldSerInit : FLOAT32_ '(' int32 ')'", -"fieldSerInit : FLOAT64_ '(' int64 ')'", -"fieldSerInit : INT64_ '(' int64 ')'", -"fieldSerInit : INT32_ '(' int32 ')'", -"fieldSerInit : INT16_ '(' int32 ')'", -"fieldSerInit : INT8_ '(' int32 ')'", -"fieldSerInit : UNSIGNED_ INT64_ '(' int64 ')'", -"fieldSerInit : UNSIGNED_ INT32_ '(' int32 ')'", -"fieldSerInit : UNSIGNED_ INT16_ '(' int32 ')'", -"fieldSerInit : UNSIGNED_ INT8_ '(' int32 ')'", -"fieldSerInit : UINT64_ '(' int64 ')'", -"fieldSerInit : UINT32_ '(' int32 ')'", -"fieldSerInit : UINT16_ '(' int32 ')'", -"fieldSerInit : UINT8_ '(' int32 ')'", -"fieldSerInit : CHAR_ '(' int32 ')'", -"fieldSerInit : BOOL_ '(' truefalse ')'", -"fieldSerInit : bytearrayhead bytes ')'", -"bytearrayhead : BYTEARRAY_ '('", -"bytes :", -"bytes : hexbytes", -"hexbytes : HEXBYTE", -"hexbytes : hexbytes HEXBYTE", -"fieldInit : fieldSerInit", -"fieldInit : compQstring", -"fieldInit : NULLREF_", -"serInit : fieldSerInit", -"serInit : STRING_ '(' NULLREF_ ')'", -"serInit : STRING_ '(' SQSTRING ')'", -"serInit : TYPE_ '(' CLASS_ SQSTRING ')'", -"serInit : TYPE_ '(' className ')'", -"serInit : TYPE_ '(' NULLREF_ ')'", -"serInit : OBJECT_ '(' serInit ')'", -"serInit : FLOAT32_ '[' int32 ']' '(' f32seq ')'", -"serInit : FLOAT64_ '[' int32 ']' '(' f64seq ')'", -"serInit : INT64_ '[' int32 ']' '(' i64seq ')'", -"serInit : INT32_ '[' int32 ']' '(' i32seq ')'", -"serInit : INT16_ '[' int32 ']' '(' i16seq ')'", -"serInit : INT8_ '[' int32 ']' '(' i8seq ')'", -"serInit : UINT64_ '[' int32 ']' '(' i64seq ')'", -"serInit : UINT32_ '[' int32 ']' '(' i32seq ')'", -"serInit : UINT16_ '[' int32 ']' '(' i16seq ')'", -"serInit : UINT8_ '[' int32 ']' '(' i8seq ')'", -"serInit : UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')'", -"serInit : UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')'", -"serInit : UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')'", -"serInit : UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')'", -"serInit : CHAR_ '[' int32 ']' '(' i16seq ')'", -"serInit : BOOL_ '[' int32 ']' '(' boolSeq ')'", -"serInit : STRING_ '[' int32 ']' '(' sqstringSeq ')'", -"serInit : TYPE_ '[' int32 ']' '(' classSeq ')'", -"serInit : OBJECT_ '[' int32 ']' '(' objSeq ')'", -"f32seq :", -"f32seq : f32seq float64", -"f32seq : f32seq int32", -"f64seq :", -"f64seq : f64seq float64", -"f64seq : f64seq int64", -"i64seq :", -"i64seq : i64seq int64", -"i32seq :", -"i32seq : i32seq int32", -"i16seq :", -"i16seq : i16seq int32", -"i8seq :", -"i8seq : i8seq int32", -"boolSeq :", -"boolSeq : boolSeq truefalse", -"sqstringSeq :", -"sqstringSeq : sqstringSeq NULLREF_", -"sqstringSeq : sqstringSeq SQSTRING", -"classSeq :", -"classSeq : classSeq NULLREF_", -"classSeq : classSeq CLASS_ SQSTRING", -"classSeq : classSeq className", -"objSeq :", -"objSeq : objSeq serInit", -"methodSpec : METHOD_", -"instr_none : INSTR_NONE", -"instr_var : INSTR_VAR", -"instr_i : INSTR_I", -"instr_i8 : INSTR_I8", -"instr_r : INSTR_R", -"instr_brtarget : INSTR_BRTARGET", -"instr_method : INSTR_METHOD", -"instr_field : INSTR_FIELD", -"instr_type : INSTR_TYPE", -"instr_string : INSTR_STRING", -"instr_sig : INSTR_SIG", -"instr_tok : INSTR_TOK", -"instr_switch : INSTR_SWITCH", -"instr_r_head : instr_r '('", -"instr : instr_none", -"instr : instr_var int32", -"instr : instr_var id", -"instr : instr_i int32", -"instr : instr_i8 int64", -"instr : instr_r float64", -"instr : instr_r int64", -"instr : instr_r_head bytes ')'", -"instr : instr_brtarget int32", -"instr : instr_brtarget id", -"instr : instr_method methodRef", -"instr : instr_field type typeSpec DCOLON dottedName", -"instr : instr_field type dottedName", -"instr : instr_field mdtoken", -"instr : instr_field TYPEDEF_F", -"instr : instr_field TYPEDEF_MR", -"instr : instr_type typeSpec", -"instr : instr_string compQstring", -"instr : instr_string ANSI_ '(' compQstring ')'", -"instr : instr_string bytearrayhead bytes ')'", -"instr : instr_sig callConv type '(' sigArgs0 ')'", -"instr : instr_tok ownerType", -"instr : instr_switch '(' labels ')'", -"labels :", -"labels : id ',' labels", -"labels : int32 ',' labels", -"labels : id", -"labels : int32", -"tyArgs0 :", -"tyArgs0 : '<' tyArgs1 '>'", -"tyArgs1 :", -"tyArgs1 : tyArgs2", -"tyArgs2 : type", -"tyArgs2 : tyArgs2 ',' type", -"sigArgs0 :", -"sigArgs0 : sigArgs1", -"sigArgs1 : sigArg", -"sigArgs1 : sigArgs1 ',' sigArg", -"sigArg : ELLIPSIS", -"sigArg : paramAttr type marshalClause", -"sigArg : paramAttr type marshalClause id", -"className : '[' dottedName ']' slashedName", -"className : '[' mdtoken ']' slashedName", -"className : '[' '*' ']' slashedName", -"className : '[' _MODULE dottedName ']' slashedName", -"className : slashedName", -"className : mdtoken", -"className : TYPEDEF_T", -"className : _THIS", -"className : _BASE", -"className : _NESTER", -"slashedName : dottedName", -"slashedName : slashedName '/' dottedName", -"typeSpec : className", -"typeSpec : '[' dottedName ']'", -"typeSpec : '[' _MODULE dottedName ']'", -"typeSpec : type", -"nativeType :", -"nativeType : CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')'", -"nativeType : CUSTOM_ '(' compQstring ',' compQstring ')'", -"nativeType : FIXED_ SYSSTRING_ '[' int32 ']'", -"nativeType : FIXED_ ARRAY_ '[' int32 ']' nativeType", -"nativeType : VARIANT_", -"nativeType : CURRENCY_", -"nativeType : SYSCHAR_", -"nativeType : VOID_", -"nativeType : BOOL_", -"nativeType : INT8_", -"nativeType : INT16_", -"nativeType : INT32_", -"nativeType : INT64_", -"nativeType : FLOAT32_", -"nativeType : FLOAT64_", -"nativeType : ERROR_", -"nativeType : UNSIGNED_ INT8_", -"nativeType : UNSIGNED_ INT16_", -"nativeType : UNSIGNED_ INT32_", -"nativeType : UNSIGNED_ INT64_", -"nativeType : UINT8_", -"nativeType : UINT16_", -"nativeType : UINT32_", -"nativeType : UINT64_", -"nativeType : nativeType '*'", -"nativeType : nativeType '[' ']'", -"nativeType : nativeType '[' int32 ']'", -"nativeType : nativeType '[' int32 '+' int32 ']'", -"nativeType : nativeType '[' '+' int32 ']'", -"nativeType : DECIMAL_", -"nativeType : DATE_", -"nativeType : BSTR_", -"nativeType : LPSTR_", -"nativeType : LPWSTR_", -"nativeType : LPTSTR_", -"nativeType : OBJECTREF_", -"nativeType : IUNKNOWN_ iidParamIndex", -"nativeType : IDISPATCH_ iidParamIndex", -"nativeType : STRUCT_", -"nativeType : INTERFACE_ iidParamIndex", -"nativeType : SAFEARRAY_ variantType", -"nativeType : SAFEARRAY_ variantType ',' compQstring", -"nativeType : INT_", -"nativeType : UNSIGNED_ INT_", -"nativeType : UINT_", -"nativeType : NESTED_ STRUCT_", -"nativeType : BYVALSTR_", -"nativeType : ANSI_ BSTR_", -"nativeType : TBSTR_", -"nativeType : VARIANT_ BOOL_", -"nativeType : METHOD_", -"nativeType : AS_ ANY_", -"nativeType : LPSTRUCT_", -"nativeType : TYPEDEF_TS", -"iidParamIndex :", -"iidParamIndex : '(' IIDPARAM_ '=' int32 ')'", -"variantType :", -"variantType : NULL_", -"variantType : VARIANT_", -"variantType : CURRENCY_", -"variantType : VOID_", -"variantType : BOOL_", -"variantType : INT8_", -"variantType : INT16_", -"variantType : INT32_", -"variantType : INT64_", -"variantType : FLOAT32_", -"variantType : FLOAT64_", -"variantType : UNSIGNED_ INT8_", -"variantType : UNSIGNED_ INT16_", -"variantType : UNSIGNED_ INT32_", -"variantType : UNSIGNED_ INT64_", -"variantType : UINT8_", -"variantType : UINT16_", -"variantType : UINT32_", -"variantType : UINT64_", -"variantType : '*'", -"variantType : variantType '[' ']'", -"variantType : variantType VECTOR_", -"variantType : variantType '&'", -"variantType : DECIMAL_", -"variantType : DATE_", -"variantType : BSTR_", -"variantType : LPSTR_", -"variantType : LPWSTR_", -"variantType : IUNKNOWN_", -"variantType : IDISPATCH_", -"variantType : SAFEARRAY_", -"variantType : INT_", -"variantType : UNSIGNED_ INT_", -"variantType : UINT_", -"variantType : ERROR_", -"variantType : HRESULT_", -"variantType : CARRAY_", -"variantType : USERDEFINED_", -"variantType : RECORD_", -"variantType : FILETIME_", -"variantType : BLOB_", -"variantType : STREAM_", -"variantType : STORAGE_", -"variantType : STREAMED_OBJECT_", -"variantType : STORED_OBJECT_", -"variantType : BLOB_OBJECT_", -"variantType : CF_", -"variantType : CLSID_", -"type : CLASS_ className", -"type : OBJECT_", -"type : VALUE_ CLASS_ className", -"type : VALUETYPE_ className", -"type : CONST_ fieldInit", -"type : type '[' ']'", -"type : type '[' bounds1 ']'", -"type : type '&'", -"type : type '*'", -"type : type PINNED_", -"type : type MODREQ_ '(' typeSpec ')'", -"type : type MODOPT_ '(' typeSpec ')'", -"type : methodSpec callConv type '*' '(' sigArgs0 ')'", -"type : type '<' tyArgs1 '>'", -"type : '!' '!' int32", -"type : '!' int32", -"type : '!' '!' dottedName", -"type : '!' dottedName", -"type : TYPEDREF_", -"type : VOID_", -"type : NATIVE_ INT_", -"type : NATIVE_ UNSIGNED_ INT_", -"type : NATIVE_ UINT_", -"type : simpleType", -"type : ELLIPSIS type", -"simpleType : CHAR_", -"simpleType : STRING_", -"simpleType : BOOL_", -"simpleType : INT8_", -"simpleType : INT16_", -"simpleType : INT32_", -"simpleType : INT64_", -"simpleType : FLOAT32_", -"simpleType : FLOAT64_", -"simpleType : UNSIGNED_ INT8_", -"simpleType : UNSIGNED_ INT16_", -"simpleType : UNSIGNED_ INT32_", -"simpleType : UNSIGNED_ INT64_", -"simpleType : UINT8_", -"simpleType : UINT16_", -"simpleType : UINT32_", -"simpleType : UINT64_", -"simpleType : TYPEDEF_TS", -"bounds1 : bound", -"bounds1 : bounds1 ',' bound", -"bound :", -"bound : ELLIPSIS", -"bound : int32", -"bound : int32 ELLIPSIS int32", -"bound : int32 ELLIPSIS", -"secDecl : _PERMISSION secAction typeSpec '(' nameValPairs ')'", -"secDecl : _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}'", -"secDecl : _PERMISSION secAction typeSpec", -"secDecl : psetHead bytes ')'", -"secDecl : _PERMISSIONSET secAction compQstring", -"secDecl : _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}'", -"secAttrSetBlob :", -"secAttrSetBlob : secAttrBlob", -"secAttrSetBlob : secAttrBlob ',' secAttrSetBlob", -"secAttrBlob : typeSpec '=' '{' customBlobNVPairs '}'", -"secAttrBlob : CLASS_ SQSTRING '=' '{' customBlobNVPairs '}'", -"psetHead : _PERMISSIONSET secAction '=' '('", -"psetHead : _PERMISSIONSET secAction BYTEARRAY_ '('", -"nameValPairs : nameValPair", -"nameValPairs : nameValPair ',' nameValPairs", -"nameValPair : compQstring '=' caValue", -"truefalse : TRUE_", -"truefalse : FALSE_", -"caValue : truefalse", -"caValue : int32", -"caValue : INT32_ '(' int32 ')'", -"caValue : compQstring", -"caValue : className '(' INT8_ ':' int32 ')'", -"caValue : className '(' INT16_ ':' int32 ')'", -"caValue : className '(' INT32_ ':' int32 ')'", -"caValue : className '(' int32 ')'", -"secAction : REQUEST_", -"secAction : DEMAND_", -"secAction : ASSERT_", -"secAction : DENY_", -"secAction : PERMITONLY_", -"secAction : LINKCHECK_", -"secAction : INHERITCHECK_", -"secAction : REQMIN_", -"secAction : REQOPT_", -"secAction : REQREFUSE_", -"secAction : PREJITGRANT_", -"secAction : PREJITDENY_", -"secAction : NONCASDEMAND_", -"secAction : NONCASLINKDEMAND_", -"secAction : NONCASINHERITANCE_", -"esHead : _LINE", -"esHead : P_LINE", -"extSourceSpec : esHead int32 SQSTRING", -"extSourceSpec : esHead int32", -"extSourceSpec : esHead int32 ':' int32 SQSTRING", -"extSourceSpec : esHead int32 ':' int32", -"extSourceSpec : esHead int32 ':' int32 ',' int32 SQSTRING", -"extSourceSpec : esHead int32 ':' int32 ',' int32", -"extSourceSpec : esHead int32 ',' int32 ':' int32 SQSTRING", -"extSourceSpec : esHead int32 ',' int32 ':' int32", -"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING", -"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32", -"extSourceSpec : esHead int32 QSTRING", -"fileDecl : _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry", -"fileDecl : _FILE fileAttr dottedName fileEntry", -"fileAttr :", -"fileAttr : fileAttr NOMETADATA_", -"fileEntry :", -"fileEntry : _ENTRYPOINT", -"hashHead : _HASH '=' '('", -"assemblyHead : _ASSEMBLY asmAttr dottedName", -"asmAttr :", -"asmAttr : asmAttr RETARGETABLE_", -"asmAttr : asmAttr WINDOWSRUNTIME_", -"asmAttr : asmAttr NOPLATFORM_", -"asmAttr : asmAttr LEGACY_ LIBRARY_", -"asmAttr : asmAttr CIL_", -"asmAttr : asmAttr X86_", -"asmAttr : asmAttr AMD64_", -"asmAttr : asmAttr ARM_", -"asmAttr : asmAttr ARM64_", -"assemblyDecls :", -"assemblyDecls : assemblyDecls assemblyDecl", -"assemblyDecl : _HASH ALGORITHM_ int32", -"assemblyDecl : secDecl", -"assemblyDecl : asmOrRefDecl", -"intOrWildcard : int32", -"intOrWildcard : '*'", -"asmOrRefDecl : publicKeyHead bytes ')'", -"asmOrRefDecl : _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard", -"asmOrRefDecl : _LOCALE compQstring", -"asmOrRefDecl : localeHead bytes ')'", -"asmOrRefDecl : customAttrDecl", -"asmOrRefDecl : compControl", -"publicKeyHead : _PUBLICKEY '=' '('", -"publicKeyTokenHead : _PUBLICKEYTOKEN '=' '('", -"localeHead : _LOCALE '=' '('", -"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName", -"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName", -"assemblyRefDecls :", -"assemblyRefDecls : assemblyRefDecls assemblyRefDecl", -"assemblyRefDecl : hashHead bytes ')'", -"assemblyRefDecl : asmOrRefDecl", -"assemblyRefDecl : publicKeyTokenHead bytes ')'", -"assemblyRefDecl : AUTO_", -"exptypeHead : _CLASS EXTERN_ exptAttr dottedName", -"exportHead : _EXPORT exptAttr dottedName", -"exptAttr :", -"exptAttr : exptAttr PRIVATE_", -"exptAttr : exptAttr PUBLIC_", -"exptAttr : exptAttr FORWARDER_", -"exptAttr : exptAttr NESTED_ PUBLIC_", -"exptAttr : exptAttr NESTED_ PRIVATE_", -"exptAttr : exptAttr NESTED_ FAMILY_", -"exptAttr : exptAttr NESTED_ ASSEMBLY_", -"exptAttr : exptAttr NESTED_ FAMANDASSEM_", -"exptAttr : exptAttr NESTED_ FAMORASSEM_", -"exptypeDecls :", -"exptypeDecls : exptypeDecls exptypeDecl", -"exptypeDecl : _FILE dottedName", -"exptypeDecl : _CLASS EXTERN_ slashedName", -"exptypeDecl : _ASSEMBLY EXTERN_ dottedName", -"exptypeDecl : MDTOKEN_ '(' int32 ')'", -"exptypeDecl : _CLASS int32", -"exptypeDecl : customAttrDecl", -"exptypeDecl : compControl", -"manifestResHead : _MRESOURCE manresAttr dottedName", -"manifestResHead : _MRESOURCE manresAttr dottedName AS_ dottedName", -"manresAttr :", -"manresAttr : manresAttr PUBLIC_", -"manresAttr : manresAttr PRIVATE_", -"manifestResDecls :", -"manifestResDecls : manifestResDecls manifestResDecl", -"manifestResDecl : _FILE dottedName AT_ int32", -"manifestResDecl : _ASSEMBLY EXTERN_ dottedName", -"manifestResDecl : customAttrDecl", -"manifestResDecl : compControl", + + +extern YYSTYPE yylval; + + +int yyparse (void); + + + +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_ERROR_ = 3, /* ERROR_ */ + YYSYMBOL_BAD_COMMENT_ = 4, /* BAD_COMMENT_ */ + YYSYMBOL_BAD_LITERAL_ = 5, /* BAD_LITERAL_ */ + YYSYMBOL_ID = 6, /* ID */ + YYSYMBOL_DOTTEDNAME = 7, /* DOTTEDNAME */ + YYSYMBOL_QSTRING = 8, /* QSTRING */ + YYSYMBOL_SQSTRING = 9, /* SQSTRING */ + YYSYMBOL_INT32_T = 10, /* INT32_T */ + YYSYMBOL_INT64_T = 11, /* INT64_T */ + YYSYMBOL_FLOAT64 = 12, /* FLOAT64 */ + YYSYMBOL_HEXBYTE = 13, /* HEXBYTE */ + YYSYMBOL_TYPEDEF_T = 14, /* TYPEDEF_T */ + YYSYMBOL_TYPEDEF_M = 15, /* TYPEDEF_M */ + YYSYMBOL_TYPEDEF_F = 16, /* TYPEDEF_F */ + YYSYMBOL_TYPEDEF_TS = 17, /* TYPEDEF_TS */ + YYSYMBOL_TYPEDEF_MR = 18, /* TYPEDEF_MR */ + YYSYMBOL_TYPEDEF_CA = 19, /* TYPEDEF_CA */ + YYSYMBOL_DCOLON = 20, /* DCOLON */ + YYSYMBOL_ELLIPSIS = 21, /* ELLIPSIS */ + YYSYMBOL_VOID_ = 22, /* VOID_ */ + YYSYMBOL_BOOL_ = 23, /* BOOL_ */ + YYSYMBOL_CHAR_ = 24, /* CHAR_ */ + YYSYMBOL_UNSIGNED_ = 25, /* UNSIGNED_ */ + YYSYMBOL_INT_ = 26, /* INT_ */ + YYSYMBOL_INT8_ = 27, /* INT8_ */ + YYSYMBOL_INT16_ = 28, /* INT16_ */ + YYSYMBOL_INT32_ = 29, /* INT32_ */ + YYSYMBOL_INT64_ = 30, /* INT64_ */ + YYSYMBOL_FLOAT_ = 31, /* FLOAT_ */ + YYSYMBOL_FLOAT32_ = 32, /* FLOAT32_ */ + YYSYMBOL_FLOAT64_ = 33, /* FLOAT64_ */ + YYSYMBOL_BYTEARRAY_ = 34, /* BYTEARRAY_ */ + YYSYMBOL_UINT_ = 35, /* UINT_ */ + YYSYMBOL_UINT8_ = 36, /* UINT8_ */ + YYSYMBOL_UINT16_ = 37, /* UINT16_ */ + YYSYMBOL_UINT32_ = 38, /* UINT32_ */ + YYSYMBOL_UINT64_ = 39, /* UINT64_ */ + YYSYMBOL_FLAGS_ = 40, /* FLAGS_ */ + YYSYMBOL_CALLCONV_ = 41, /* CALLCONV_ */ + YYSYMBOL_MDTOKEN_ = 42, /* MDTOKEN_ */ + YYSYMBOL_OBJECT_ = 43, /* OBJECT_ */ + YYSYMBOL_STRING_ = 44, /* STRING_ */ + YYSYMBOL_NULLREF_ = 45, /* NULLREF_ */ + YYSYMBOL_DEFAULT_ = 46, /* DEFAULT_ */ + YYSYMBOL_CDECL_ = 47, /* CDECL_ */ + YYSYMBOL_VARARG_ = 48, /* VARARG_ */ + YYSYMBOL_STDCALL_ = 49, /* STDCALL_ */ + YYSYMBOL_THISCALL_ = 50, /* THISCALL_ */ + YYSYMBOL_FASTCALL_ = 51, /* FASTCALL_ */ + YYSYMBOL_CLASS_ = 52, /* CLASS_ */ + YYSYMBOL_BYREFLIKE_ = 53, /* BYREFLIKE_ */ + YYSYMBOL_TYPEDREF_ = 54, /* TYPEDREF_ */ + YYSYMBOL_UNMANAGED_ = 55, /* UNMANAGED_ */ + YYSYMBOL_FINALLY_ = 56, /* FINALLY_ */ + YYSYMBOL_HANDLER_ = 57, /* HANDLER_ */ + YYSYMBOL_CATCH_ = 58, /* CATCH_ */ + YYSYMBOL_FILTER_ = 59, /* FILTER_ */ + YYSYMBOL_FAULT_ = 60, /* FAULT_ */ + YYSYMBOL_EXTENDS_ = 61, /* EXTENDS_ */ + YYSYMBOL_IMPLEMENTS_ = 62, /* IMPLEMENTS_ */ + YYSYMBOL_TO_ = 63, /* TO_ */ + YYSYMBOL_AT_ = 64, /* AT_ */ + YYSYMBOL_TLS_ = 65, /* TLS_ */ + YYSYMBOL_TRUE_ = 66, /* TRUE_ */ + YYSYMBOL_FALSE_ = 67, /* FALSE_ */ + YYSYMBOL__INTERFACEIMPL = 68, /* _INTERFACEIMPL */ + YYSYMBOL_VALUE_ = 69, /* VALUE_ */ + YYSYMBOL_VALUETYPE_ = 70, /* VALUETYPE_ */ + YYSYMBOL_NATIVE_ = 71, /* NATIVE_ */ + YYSYMBOL_INSTANCE_ = 72, /* INSTANCE_ */ + YYSYMBOL_SPECIALNAME_ = 73, /* SPECIALNAME_ */ + YYSYMBOL_FORWARDER_ = 74, /* FORWARDER_ */ + YYSYMBOL_STATIC_ = 75, /* STATIC_ */ + YYSYMBOL_PUBLIC_ = 76, /* PUBLIC_ */ + YYSYMBOL_PRIVATE_ = 77, /* PRIVATE_ */ + YYSYMBOL_FAMILY_ = 78, /* FAMILY_ */ + YYSYMBOL_FINAL_ = 79, /* FINAL_ */ + YYSYMBOL_SYNCHRONIZED_ = 80, /* SYNCHRONIZED_ */ + YYSYMBOL_INTERFACE_ = 81, /* INTERFACE_ */ + YYSYMBOL_SEALED_ = 82, /* SEALED_ */ + YYSYMBOL_NESTED_ = 83, /* NESTED_ */ + YYSYMBOL_ABSTRACT_ = 84, /* ABSTRACT_ */ + YYSYMBOL_AUTO_ = 85, /* AUTO_ */ + YYSYMBOL_SEQUENTIAL_ = 86, /* SEQUENTIAL_ */ + YYSYMBOL_EXPLICIT_ = 87, /* EXPLICIT_ */ + YYSYMBOL_ANSI_ = 88, /* ANSI_ */ + YYSYMBOL_UNICODE_ = 89, /* UNICODE_ */ + YYSYMBOL_AUTOCHAR_ = 90, /* AUTOCHAR_ */ + YYSYMBOL_IMPORT_ = 91, /* IMPORT_ */ + YYSYMBOL_ENUM_ = 92, /* ENUM_ */ + YYSYMBOL_VIRTUAL_ = 93, /* VIRTUAL_ */ + YYSYMBOL_NOINLINING_ = 94, /* NOINLINING_ */ + YYSYMBOL_AGGRESSIVEINLINING_ = 95, /* AGGRESSIVEINLINING_ */ + YYSYMBOL_NOOPTIMIZATION_ = 96, /* NOOPTIMIZATION_ */ + YYSYMBOL_AGGRESSIVEOPTIMIZATION_ = 97, /* AGGRESSIVEOPTIMIZATION_ */ + YYSYMBOL_UNMANAGEDEXP_ = 98, /* UNMANAGEDEXP_ */ + YYSYMBOL_BEFOREFIELDINIT_ = 99, /* BEFOREFIELDINIT_ */ + YYSYMBOL_STRICT_ = 100, /* STRICT_ */ + YYSYMBOL_RETARGETABLE_ = 101, /* RETARGETABLE_ */ + YYSYMBOL_WINDOWSRUNTIME_ = 102, /* WINDOWSRUNTIME_ */ + YYSYMBOL_NOPLATFORM_ = 103, /* NOPLATFORM_ */ + YYSYMBOL_METHOD_ = 104, /* METHOD_ */ + YYSYMBOL_FIELD_ = 105, /* FIELD_ */ + YYSYMBOL_PINNED_ = 106, /* PINNED_ */ + YYSYMBOL_MODREQ_ = 107, /* MODREQ_ */ + YYSYMBOL_MODOPT_ = 108, /* MODOPT_ */ + YYSYMBOL_SERIALIZABLE_ = 109, /* SERIALIZABLE_ */ + YYSYMBOL_PROPERTY_ = 110, /* PROPERTY_ */ + YYSYMBOL_TYPE_ = 111, /* TYPE_ */ + YYSYMBOL_ASSEMBLY_ = 112, /* ASSEMBLY_ */ + YYSYMBOL_FAMANDASSEM_ = 113, /* FAMANDASSEM_ */ + YYSYMBOL_FAMORASSEM_ = 114, /* FAMORASSEM_ */ + YYSYMBOL_PRIVATESCOPE_ = 115, /* PRIVATESCOPE_ */ + YYSYMBOL_HIDEBYSIG_ = 116, /* HIDEBYSIG_ */ + YYSYMBOL_NEWSLOT_ = 117, /* NEWSLOT_ */ + YYSYMBOL_RTSPECIALNAME_ = 118, /* RTSPECIALNAME_ */ + YYSYMBOL_PINVOKEIMPL_ = 119, /* PINVOKEIMPL_ */ + YYSYMBOL__CTOR = 120, /* _CTOR */ + YYSYMBOL__CCTOR = 121, /* _CCTOR */ + YYSYMBOL_LITERAL_ = 122, /* LITERAL_ */ + YYSYMBOL_NOTSERIALIZED_ = 123, /* NOTSERIALIZED_ */ + YYSYMBOL_INITONLY_ = 124, /* INITONLY_ */ + YYSYMBOL_REQSECOBJ_ = 125, /* REQSECOBJ_ */ + YYSYMBOL_CIL_ = 126, /* CIL_ */ + YYSYMBOL_OPTIL_ = 127, /* OPTIL_ */ + YYSYMBOL_MANAGED_ = 128, /* MANAGED_ */ + YYSYMBOL_FORWARDREF_ = 129, /* FORWARDREF_ */ + YYSYMBOL_PRESERVESIG_ = 130, /* PRESERVESIG_ */ + YYSYMBOL_RUNTIME_ = 131, /* RUNTIME_ */ + YYSYMBOL_INTERNALCALL_ = 132, /* INTERNALCALL_ */ + YYSYMBOL__IMPORT = 133, /* _IMPORT */ + YYSYMBOL_NOMANGLE_ = 134, /* NOMANGLE_ */ + YYSYMBOL_LASTERR_ = 135, /* LASTERR_ */ + YYSYMBOL_WINAPI_ = 136, /* WINAPI_ */ + YYSYMBOL_AS_ = 137, /* AS_ */ + YYSYMBOL_BESTFIT_ = 138, /* BESTFIT_ */ + YYSYMBOL_ON_ = 139, /* ON_ */ + YYSYMBOL_OFF_ = 140, /* OFF_ */ + YYSYMBOL_CHARMAPERROR_ = 141, /* CHARMAPERROR_ */ + YYSYMBOL_INSTR_NONE = 142, /* INSTR_NONE */ + YYSYMBOL_INSTR_VAR = 143, /* INSTR_VAR */ + YYSYMBOL_INSTR_I = 144, /* INSTR_I */ + YYSYMBOL_INSTR_I8 = 145, /* INSTR_I8 */ + YYSYMBOL_INSTR_R = 146, /* INSTR_R */ + YYSYMBOL_INSTR_BRTARGET = 147, /* INSTR_BRTARGET */ + YYSYMBOL_INSTR_METHOD = 148, /* INSTR_METHOD */ + YYSYMBOL_INSTR_FIELD = 149, /* INSTR_FIELD */ + YYSYMBOL_INSTR_TYPE = 150, /* INSTR_TYPE */ + YYSYMBOL_INSTR_STRING = 151, /* INSTR_STRING */ + YYSYMBOL_INSTR_SIG = 152, /* INSTR_SIG */ + YYSYMBOL_INSTR_TOK = 153, /* INSTR_TOK */ + YYSYMBOL_INSTR_SWITCH = 154, /* INSTR_SWITCH */ + YYSYMBOL__CLASS = 155, /* _CLASS */ + YYSYMBOL__NAMESPACE = 156, /* _NAMESPACE */ + YYSYMBOL__METHOD = 157, /* _METHOD */ + YYSYMBOL__FIELD = 158, /* _FIELD */ + YYSYMBOL__DATA = 159, /* _DATA */ + YYSYMBOL__THIS = 160, /* _THIS */ + YYSYMBOL__BASE = 161, /* _BASE */ + YYSYMBOL__NESTER = 162, /* _NESTER */ + YYSYMBOL__EMITBYTE = 163, /* _EMITBYTE */ + YYSYMBOL__TRY = 164, /* _TRY */ + YYSYMBOL__MAXSTACK = 165, /* _MAXSTACK */ + YYSYMBOL__LOCALS = 166, /* _LOCALS */ + YYSYMBOL__ENTRYPOINT = 167, /* _ENTRYPOINT */ + YYSYMBOL__ZEROINIT = 168, /* _ZEROINIT */ + YYSYMBOL__EVENT = 169, /* _EVENT */ + YYSYMBOL__ADDON = 170, /* _ADDON */ + YYSYMBOL__REMOVEON = 171, /* _REMOVEON */ + YYSYMBOL__FIRE = 172, /* _FIRE */ + YYSYMBOL__OTHER = 173, /* _OTHER */ + YYSYMBOL__PROPERTY = 174, /* _PROPERTY */ + YYSYMBOL__SET = 175, /* _SET */ + YYSYMBOL__GET = 176, /* _GET */ + YYSYMBOL__PERMISSION = 177, /* _PERMISSION */ + YYSYMBOL__PERMISSIONSET = 178, /* _PERMISSIONSET */ + YYSYMBOL_REQUEST_ = 179, /* REQUEST_ */ + YYSYMBOL_DEMAND_ = 180, /* DEMAND_ */ + YYSYMBOL_ASSERT_ = 181, /* ASSERT_ */ + YYSYMBOL_DENY_ = 182, /* DENY_ */ + YYSYMBOL_PERMITONLY_ = 183, /* PERMITONLY_ */ + YYSYMBOL_LINKCHECK_ = 184, /* LINKCHECK_ */ + YYSYMBOL_INHERITCHECK_ = 185, /* INHERITCHECK_ */ + YYSYMBOL_REQMIN_ = 186, /* REQMIN_ */ + YYSYMBOL_REQOPT_ = 187, /* REQOPT_ */ + YYSYMBOL_REQREFUSE_ = 188, /* REQREFUSE_ */ + YYSYMBOL_PREJITGRANT_ = 189, /* PREJITGRANT_ */ + YYSYMBOL_PREJITDENY_ = 190, /* PREJITDENY_ */ + YYSYMBOL_NONCASDEMAND_ = 191, /* NONCASDEMAND_ */ + YYSYMBOL_NONCASLINKDEMAND_ = 192, /* NONCASLINKDEMAND_ */ + YYSYMBOL_NONCASINHERITANCE_ = 193, /* NONCASINHERITANCE_ */ + YYSYMBOL__LINE = 194, /* _LINE */ + YYSYMBOL_P_LINE = 195, /* P_LINE */ + YYSYMBOL__LANGUAGE = 196, /* _LANGUAGE */ + YYSYMBOL__CUSTOM = 197, /* _CUSTOM */ + YYSYMBOL_INIT_ = 198, /* INIT_ */ + YYSYMBOL__SIZE = 199, /* _SIZE */ + YYSYMBOL__PACK = 200, /* _PACK */ + YYSYMBOL__VTABLE = 201, /* _VTABLE */ + YYSYMBOL__VTFIXUP = 202, /* _VTFIXUP */ + YYSYMBOL_FROMUNMANAGED_ = 203, /* FROMUNMANAGED_ */ + YYSYMBOL_CALLMOSTDERIVED_ = 204, /* CALLMOSTDERIVED_ */ + YYSYMBOL__VTENTRY = 205, /* _VTENTRY */ + YYSYMBOL_RETAINAPPDOMAIN_ = 206, /* RETAINAPPDOMAIN_ */ + YYSYMBOL__FILE = 207, /* _FILE */ + YYSYMBOL_NOMETADATA_ = 208, /* NOMETADATA_ */ + YYSYMBOL__HASH = 209, /* _HASH */ + YYSYMBOL__ASSEMBLY = 210, /* _ASSEMBLY */ + YYSYMBOL__PUBLICKEY = 211, /* _PUBLICKEY */ + YYSYMBOL__PUBLICKEYTOKEN = 212, /* _PUBLICKEYTOKEN */ + YYSYMBOL_ALGORITHM_ = 213, /* ALGORITHM_ */ + YYSYMBOL__VER = 214, /* _VER */ + YYSYMBOL__LOCALE = 215, /* _LOCALE */ + YYSYMBOL_EXTERN_ = 216, /* EXTERN_ */ + YYSYMBOL__MRESOURCE = 217, /* _MRESOURCE */ + YYSYMBOL__MODULE = 218, /* _MODULE */ + YYSYMBOL__EXPORT = 219, /* _EXPORT */ + YYSYMBOL_LEGACY_ = 220, /* LEGACY_ */ + YYSYMBOL_LIBRARY_ = 221, /* LIBRARY_ */ + YYSYMBOL_X86_ = 222, /* X86_ */ + YYSYMBOL_AMD64_ = 223, /* AMD64_ */ + YYSYMBOL_ARM_ = 224, /* ARM_ */ + YYSYMBOL_ARM64_ = 225, /* ARM64_ */ + YYSYMBOL_MARSHAL_ = 226, /* MARSHAL_ */ + YYSYMBOL_CUSTOM_ = 227, /* CUSTOM_ */ + YYSYMBOL_SYSSTRING_ = 228, /* SYSSTRING_ */ + YYSYMBOL_FIXED_ = 229, /* FIXED_ */ + YYSYMBOL_VARIANT_ = 230, /* VARIANT_ */ + YYSYMBOL_CURRENCY_ = 231, /* CURRENCY_ */ + YYSYMBOL_SYSCHAR_ = 232, /* SYSCHAR_ */ + YYSYMBOL_DECIMAL_ = 233, /* DECIMAL_ */ + YYSYMBOL_DATE_ = 234, /* DATE_ */ + YYSYMBOL_BSTR_ = 235, /* BSTR_ */ + YYSYMBOL_TBSTR_ = 236, /* TBSTR_ */ + YYSYMBOL_LPSTR_ = 237, /* LPSTR_ */ + YYSYMBOL_LPWSTR_ = 238, /* LPWSTR_ */ + YYSYMBOL_LPTSTR_ = 239, /* LPTSTR_ */ + YYSYMBOL_OBJECTREF_ = 240, /* OBJECTREF_ */ + YYSYMBOL_IUNKNOWN_ = 241, /* IUNKNOWN_ */ + YYSYMBOL_IDISPATCH_ = 242, /* IDISPATCH_ */ + YYSYMBOL_STRUCT_ = 243, /* STRUCT_ */ + YYSYMBOL_SAFEARRAY_ = 244, /* SAFEARRAY_ */ + YYSYMBOL_BYVALSTR_ = 245, /* BYVALSTR_ */ + YYSYMBOL_LPVOID_ = 246, /* LPVOID_ */ + YYSYMBOL_ANY_ = 247, /* ANY_ */ + YYSYMBOL_ARRAY_ = 248, /* ARRAY_ */ + YYSYMBOL_LPSTRUCT_ = 249, /* LPSTRUCT_ */ + YYSYMBOL_IIDPARAM_ = 250, /* IIDPARAM_ */ + YYSYMBOL_IN_ = 251, /* IN_ */ + YYSYMBOL_OUT_ = 252, /* OUT_ */ + YYSYMBOL_OPT_ = 253, /* OPT_ */ + YYSYMBOL__PARAM = 254, /* _PARAM */ + YYSYMBOL__OVERRIDE = 255, /* _OVERRIDE */ + YYSYMBOL_WITH_ = 256, /* WITH_ */ + YYSYMBOL_NULL_ = 257, /* NULL_ */ + YYSYMBOL_HRESULT_ = 258, /* HRESULT_ */ + YYSYMBOL_CARRAY_ = 259, /* CARRAY_ */ + YYSYMBOL_USERDEFINED_ = 260, /* USERDEFINED_ */ + YYSYMBOL_RECORD_ = 261, /* RECORD_ */ + YYSYMBOL_FILETIME_ = 262, /* FILETIME_ */ + YYSYMBOL_BLOB_ = 263, /* BLOB_ */ + YYSYMBOL_STREAM_ = 264, /* STREAM_ */ + YYSYMBOL_STORAGE_ = 265, /* STORAGE_ */ + YYSYMBOL_STREAMED_OBJECT_ = 266, /* STREAMED_OBJECT_ */ + YYSYMBOL_STORED_OBJECT_ = 267, /* STORED_OBJECT_ */ + YYSYMBOL_BLOB_OBJECT_ = 268, /* BLOB_OBJECT_ */ + YYSYMBOL_CF_ = 269, /* CF_ */ + YYSYMBOL_CLSID_ = 270, /* CLSID_ */ + YYSYMBOL_VECTOR_ = 271, /* VECTOR_ */ + YYSYMBOL__SUBSYSTEM = 272, /* _SUBSYSTEM */ + YYSYMBOL__CORFLAGS = 273, /* _CORFLAGS */ + YYSYMBOL_ALIGNMENT_ = 274, /* ALIGNMENT_ */ + YYSYMBOL__IMAGEBASE = 275, /* _IMAGEBASE */ + YYSYMBOL__STACKRESERVE = 276, /* _STACKRESERVE */ + YYSYMBOL__TYPEDEF = 277, /* _TYPEDEF */ + YYSYMBOL__TEMPLATE = 278, /* _TEMPLATE */ + YYSYMBOL__TYPELIST = 279, /* _TYPELIST */ + YYSYMBOL__MSCORLIB = 280, /* _MSCORLIB */ + YYSYMBOL_P_DEFINE = 281, /* P_DEFINE */ + YYSYMBOL_P_UNDEF = 282, /* P_UNDEF */ + YYSYMBOL_P_IFDEF = 283, /* P_IFDEF */ + YYSYMBOL_P_IFNDEF = 284, /* P_IFNDEF */ + YYSYMBOL_P_ELSE = 285, /* P_ELSE */ + YYSYMBOL_P_ENDIF = 286, /* P_ENDIF */ + YYSYMBOL_P_INCLUDE = 287, /* P_INCLUDE */ + YYSYMBOL_CONSTRAINT_ = 288, /* CONSTRAINT_ */ + YYSYMBOL_CONST_ = 289, /* CONST_ */ + YYSYMBOL_290_ = 290, /* '{' */ + YYSYMBOL_291_ = 291, /* '}' */ + YYSYMBOL_292_ = 292, /* '+' */ + YYSYMBOL_293_ = 293, /* ',' */ + YYSYMBOL_294_ = 294, /* '.' */ + YYSYMBOL_295_ = 295, /* '(' */ + YYSYMBOL_296_ = 296, /* ')' */ + YYSYMBOL_297_ = 297, /* ';' */ + YYSYMBOL_298_ = 298, /* '=' */ + YYSYMBOL_299_ = 299, /* '[' */ + YYSYMBOL_300_ = 300, /* ']' */ + YYSYMBOL_301_ = 301, /* '<' */ + YYSYMBOL_302_ = 302, /* '>' */ + YYSYMBOL_303_ = 303, /* '-' */ + YYSYMBOL_304_ = 304, /* ':' */ + YYSYMBOL_305_ = 305, /* '*' */ + YYSYMBOL_306_ = 306, /* '&' */ + YYSYMBOL_307_ = 307, /* '/' */ + YYSYMBOL_308_ = 308, /* '!' */ + YYSYMBOL_YYACCEPT = 309, /* $accept */ + YYSYMBOL_decls = 310, /* decls */ + YYSYMBOL_decl = 311, /* decl */ + YYSYMBOL_classNameSeq = 312, /* classNameSeq */ + YYSYMBOL_compQstring = 313, /* compQstring */ + YYSYMBOL_languageDecl = 314, /* languageDecl */ + YYSYMBOL_id = 315, /* id */ + YYSYMBOL_dottedName = 316, /* dottedName */ + YYSYMBOL_int32 = 317, /* int32 */ + YYSYMBOL_int64 = 318, /* int64 */ + YYSYMBOL_float64 = 319, /* float64 */ + YYSYMBOL_typedefDecl = 320, /* typedefDecl */ + YYSYMBOL_compControl = 321, /* compControl */ + YYSYMBOL_customDescr = 322, /* customDescr */ + YYSYMBOL_customDescrWithOwner = 323, /* customDescrWithOwner */ + YYSYMBOL_customHead = 324, /* customHead */ + YYSYMBOL_customHeadWithOwner = 325, /* customHeadWithOwner */ + YYSYMBOL_customType = 326, /* customType */ + YYSYMBOL_ownerType = 327, /* ownerType */ + YYSYMBOL_customBlobDescr = 328, /* customBlobDescr */ + YYSYMBOL_customBlobArgs = 329, /* customBlobArgs */ + YYSYMBOL_customBlobNVPairs = 330, /* customBlobNVPairs */ + YYSYMBOL_fieldOrProp = 331, /* fieldOrProp */ + YYSYMBOL_customAttrDecl = 332, /* customAttrDecl */ + YYSYMBOL_serializType = 333, /* serializType */ + YYSYMBOL_moduleHead = 334, /* moduleHead */ + YYSYMBOL_vtfixupDecl = 335, /* vtfixupDecl */ + YYSYMBOL_vtfixupAttr = 336, /* vtfixupAttr */ + YYSYMBOL_vtableDecl = 337, /* vtableDecl */ + YYSYMBOL_vtableHead = 338, /* vtableHead */ + YYSYMBOL_nameSpaceHead = 339, /* nameSpaceHead */ + YYSYMBOL__class = 340, /* _class */ + YYSYMBOL_classHeadBegin = 341, /* classHeadBegin */ + YYSYMBOL_classHead = 342, /* classHead */ + YYSYMBOL_classAttr = 343, /* classAttr */ + YYSYMBOL_extendsClause = 344, /* extendsClause */ + YYSYMBOL_implClause = 345, /* implClause */ + YYSYMBOL_classDecls = 346, /* classDecls */ + YYSYMBOL_implList = 347, /* implList */ + YYSYMBOL_typeList = 348, /* typeList */ + YYSYMBOL_typeListNotEmpty = 349, /* typeListNotEmpty */ + YYSYMBOL_typarsClause = 350, /* typarsClause */ + YYSYMBOL_typarAttrib = 351, /* typarAttrib */ + YYSYMBOL_typarAttribs = 352, /* typarAttribs */ + YYSYMBOL_conTyparAttrib = 353, /* conTyparAttrib */ + YYSYMBOL_conTyparAttribs = 354, /* conTyparAttribs */ + YYSYMBOL_typars = 355, /* typars */ + YYSYMBOL_typarsRest = 356, /* typarsRest */ + YYSYMBOL_tyBound = 357, /* tyBound */ + YYSYMBOL_genArity = 358, /* genArity */ + YYSYMBOL_genArityNotEmpty = 359, /* genArityNotEmpty */ + YYSYMBOL_classDecl = 360, /* classDecl */ + YYSYMBOL_fieldDecl = 361, /* fieldDecl */ + YYSYMBOL_fieldAttr = 362, /* fieldAttr */ + YYSYMBOL_atOpt = 363, /* atOpt */ + YYSYMBOL_initOpt = 364, /* initOpt */ + YYSYMBOL_repeatOpt = 365, /* repeatOpt */ + YYSYMBOL_methodRef = 366, /* methodRef */ + YYSYMBOL_callConv = 367, /* callConv */ + YYSYMBOL_callKind = 368, /* callKind */ + YYSYMBOL_mdtoken = 369, /* mdtoken */ + YYSYMBOL_memberRef = 370, /* memberRef */ + YYSYMBOL_eventHead = 371, /* eventHead */ + YYSYMBOL_eventAttr = 372, /* eventAttr */ + YYSYMBOL_eventDecls = 373, /* eventDecls */ + YYSYMBOL_eventDecl = 374, /* eventDecl */ + YYSYMBOL_propHead = 375, /* propHead */ + YYSYMBOL_propAttr = 376, /* propAttr */ + YYSYMBOL_propDecls = 377, /* propDecls */ + YYSYMBOL_propDecl = 378, /* propDecl */ + YYSYMBOL_methodHeadPart1 = 379, /* methodHeadPart1 */ + YYSYMBOL_marshalClause = 380, /* marshalClause */ + YYSYMBOL_marshalBlob = 381, /* marshalBlob */ + YYSYMBOL_marshalBlobHead = 382, /* marshalBlobHead */ + YYSYMBOL_methodHead = 383, /* methodHead */ + YYSYMBOL_methAttr = 384, /* methAttr */ + YYSYMBOL_pinvAttr = 385, /* pinvAttr */ + YYSYMBOL_methodName = 386, /* methodName */ + YYSYMBOL_paramAttr = 387, /* paramAttr */ + YYSYMBOL_implAttr = 388, /* implAttr */ + YYSYMBOL_localsHead = 389, /* localsHead */ + YYSYMBOL_methodDecls = 390, /* methodDecls */ + YYSYMBOL_methodDecl = 391, /* methodDecl */ + YYSYMBOL_scopeBlock = 392, /* scopeBlock */ + YYSYMBOL_scopeOpen = 393, /* scopeOpen */ + YYSYMBOL_sehBlock = 394, /* sehBlock */ + YYSYMBOL_sehClauses = 395, /* sehClauses */ + YYSYMBOL_tryBlock = 396, /* tryBlock */ + YYSYMBOL_tryHead = 397, /* tryHead */ + YYSYMBOL_sehClause = 398, /* sehClause */ + YYSYMBOL_filterClause = 399, /* filterClause */ + YYSYMBOL_filterHead = 400, /* filterHead */ + YYSYMBOL_catchClause = 401, /* catchClause */ + YYSYMBOL_finallyClause = 402, /* finallyClause */ + YYSYMBOL_faultClause = 403, /* faultClause */ + YYSYMBOL_handlerBlock = 404, /* handlerBlock */ + YYSYMBOL_dataDecl = 405, /* dataDecl */ + YYSYMBOL_ddHead = 406, /* ddHead */ + YYSYMBOL_tls = 407, /* tls */ + YYSYMBOL_ddBody = 408, /* ddBody */ + YYSYMBOL_ddItemList = 409, /* ddItemList */ + YYSYMBOL_ddItemCount = 410, /* ddItemCount */ + YYSYMBOL_ddItem = 411, /* ddItem */ + YYSYMBOL_fieldSerInit = 412, /* fieldSerInit */ + YYSYMBOL_bytearrayhead = 413, /* bytearrayhead */ + YYSYMBOL_bytes = 414, /* bytes */ + YYSYMBOL_hexbytes = 415, /* hexbytes */ + YYSYMBOL_fieldInit = 416, /* fieldInit */ + YYSYMBOL_serInit = 417, /* serInit */ + YYSYMBOL_f32seq = 418, /* f32seq */ + YYSYMBOL_f64seq = 419, /* f64seq */ + YYSYMBOL_i64seq = 420, /* i64seq */ + YYSYMBOL_i32seq = 421, /* i32seq */ + YYSYMBOL_i16seq = 422, /* i16seq */ + YYSYMBOL_i8seq = 423, /* i8seq */ + YYSYMBOL_boolSeq = 424, /* boolSeq */ + YYSYMBOL_sqstringSeq = 425, /* sqstringSeq */ + YYSYMBOL_classSeq = 426, /* classSeq */ + YYSYMBOL_objSeq = 427, /* objSeq */ + YYSYMBOL_methodSpec = 428, /* methodSpec */ + YYSYMBOL_instr_none = 429, /* instr_none */ + YYSYMBOL_instr_var = 430, /* instr_var */ + YYSYMBOL_instr_i = 431, /* instr_i */ + YYSYMBOL_instr_i8 = 432, /* instr_i8 */ + YYSYMBOL_instr_r = 433, /* instr_r */ + YYSYMBOL_instr_brtarget = 434, /* instr_brtarget */ + YYSYMBOL_instr_method = 435, /* instr_method */ + YYSYMBOL_instr_field = 436, /* instr_field */ + YYSYMBOL_instr_type = 437, /* instr_type */ + YYSYMBOL_instr_string = 438, /* instr_string */ + YYSYMBOL_instr_sig = 439, /* instr_sig */ + YYSYMBOL_instr_tok = 440, /* instr_tok */ + YYSYMBOL_instr_switch = 441, /* instr_switch */ + YYSYMBOL_instr_r_head = 442, /* instr_r_head */ + YYSYMBOL_instr = 443, /* instr */ + YYSYMBOL_labels = 444, /* labels */ + YYSYMBOL_tyArgs0 = 445, /* tyArgs0 */ + YYSYMBOL_tyArgs1 = 446, /* tyArgs1 */ + YYSYMBOL_tyArgs2 = 447, /* tyArgs2 */ + YYSYMBOL_sigArgs0 = 448, /* sigArgs0 */ + YYSYMBOL_sigArgs1 = 449, /* sigArgs1 */ + YYSYMBOL_sigArg = 450, /* sigArg */ + YYSYMBOL_className = 451, /* className */ + YYSYMBOL_slashedName = 452, /* slashedName */ + YYSYMBOL_typeSpec = 453, /* typeSpec */ + YYSYMBOL_nativeType = 454, /* nativeType */ + YYSYMBOL_iidParamIndex = 455, /* iidParamIndex */ + YYSYMBOL_variantType = 456, /* variantType */ + YYSYMBOL_type = 457, /* type */ + YYSYMBOL_simpleType = 458, /* simpleType */ + YYSYMBOL_bounds1 = 459, /* bounds1 */ + YYSYMBOL_bound = 460, /* bound */ + YYSYMBOL_secDecl = 461, /* secDecl */ + YYSYMBOL_secAttrSetBlob = 462, /* secAttrSetBlob */ + YYSYMBOL_secAttrBlob = 463, /* secAttrBlob */ + YYSYMBOL_psetHead = 464, /* psetHead */ + YYSYMBOL_nameValPairs = 465, /* nameValPairs */ + YYSYMBOL_nameValPair = 466, /* nameValPair */ + YYSYMBOL_truefalse = 467, /* truefalse */ + YYSYMBOL_caValue = 468, /* caValue */ + YYSYMBOL_secAction = 469, /* secAction */ + YYSYMBOL_esHead = 470, /* esHead */ + YYSYMBOL_extSourceSpec = 471, /* extSourceSpec */ + YYSYMBOL_fileDecl = 472, /* fileDecl */ + YYSYMBOL_fileAttr = 473, /* fileAttr */ + YYSYMBOL_fileEntry = 474, /* fileEntry */ + YYSYMBOL_hashHead = 475, /* hashHead */ + YYSYMBOL_assemblyHead = 476, /* assemblyHead */ + YYSYMBOL_asmAttr = 477, /* asmAttr */ + YYSYMBOL_assemblyDecls = 478, /* assemblyDecls */ + YYSYMBOL_assemblyDecl = 479, /* assemblyDecl */ + YYSYMBOL_intOrWildcard = 480, /* intOrWildcard */ + YYSYMBOL_asmOrRefDecl = 481, /* asmOrRefDecl */ + YYSYMBOL_publicKeyHead = 482, /* publicKeyHead */ + YYSYMBOL_publicKeyTokenHead = 483, /* publicKeyTokenHead */ + YYSYMBOL_localeHead = 484, /* localeHead */ + YYSYMBOL_assemblyRefHead = 485, /* assemblyRefHead */ + YYSYMBOL_assemblyRefDecls = 486, /* assemblyRefDecls */ + YYSYMBOL_assemblyRefDecl = 487, /* assemblyRefDecl */ + YYSYMBOL_exptypeHead = 488, /* exptypeHead */ + YYSYMBOL_exportHead = 489, /* exportHead */ + YYSYMBOL_exptAttr = 490, /* exptAttr */ + YYSYMBOL_exptypeDecls = 491, /* exptypeDecls */ + YYSYMBOL_exptypeDecl = 492, /* exptypeDecl */ + YYSYMBOL_manifestResHead = 493, /* manifestResHead */ + YYSYMBOL_manresAttr = 494, /* manresAttr */ + YYSYMBOL_manifestResDecls = 495, /* manifestResDecls */ + YYSYMBOL_manifestResDecl = 496 /* manifestResDecl */ }; +typedef enum yysymbol_kind_t yysymbol_kind_t; + + + + +#ifdef short +# undef short +#endif + +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif +#endif + +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; +#else +typedef short yytype_int16; #endif -#line 52 "btyaccpa.ske" - -/* -** YYPOSN is user-defined text position type. -*/ -#ifdef YYPOSN -#ifdef YYREDUCEPOSNFUNC -#define YYCALLREDUCEPOSN(e) \ - if(reduce_posn) { \ - YYREDUCEPOSNFUNC(yyps->pos, &(yyps->psp)[1-yym], &(yyps->vsp)[1-yym], \ - yym, yyps->psp - yyps->ps, yychar, yyposn, e); \ - reduce_posn = 0; \ - } - -#ifndef YYCALLREDUCEPOSNARG -#define YYCALLREDUCEPOSNARG yyps->val + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 #endif +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; +#endif -#define YYPOSNARG(n) ((yyps->psp)[1-yym+(n)-1]) -#define YYPOSNOUT (yyps->pos) -#endif /* YYREDUCEPOSNFUNC */ -#endif /* YYPOSN */ +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif -/* If delete function is not defined by the user, do not deletions. */ -#ifndef YYDELETEVAL -#define YYDELETEVAL(v, x) +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif -/* If delete function is not defined by the user, do not deletions. */ -#ifndef YYDELETEPOSN -#define YYDELETEPOSN(v, x) +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned +# endif #endif -#define yyclearin (yychar=(-1)) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; -#define yyerrok (yyps->errflag=0) +/* State numbers in computations. */ +typedef int yy_state_fast_t; -#ifndef YYSTACKGROWTH -#define YYSTACKGROWTH 16 +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif #endif -#ifndef YYDEFSTACKSIZE -#define YYDEFSTACKSIZE 12 + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif -#ifdef YYDEBUG -int yydebug; +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YY_USE(E) ((void) (E)) +#else +# define YY_USE(E) /* empty */ #endif -extern void yyerror(const char *); +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif -int yynerrs; +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif -/* These value/posn are taken from the lexer */ -YYSTYPE yylval; -#ifdef YYPOSN -YYPOSN yyposn; -#endif /* YYPOSN */ - -/* These value/posn of the root non-terminal are returned to the caller */ -YYSTYPE yyretlval; -#ifdef YYPOSN -YYPOSN yyretposn; -#endif /* YYPOSN */ - -#define YYABORT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab -#define YYERROR_QUIET goto yyerrquiet -#define YYVALID do { if (yyps->save) goto yyvalid; } while(0) -#define YYVALID_NESTED do { if (yyps->save && \ - yyps->save->save==0) goto yyvalid; } while(0) - -struct yyparsestate { - struct yyparsestate *save; /* Previously saved parser state */ - int state; - int errflag; - Yshort *ss; /* state stack base */ - Yshort *ssp; /* state stack pointer */ - YYSTYPE *vs; /* values stack base */ - YYSTYPE *vsp; /* value stack pointer */ - YYSTYPE val; /* value as returned by actions */ -#ifdef YYPOSN - YYPOSN *ps; /* position stack base */ - YYPOSN *psp; /* position stack pointer */ - YYPOSN pos; /* position as returned by universal action */ -#endif /* YYPOSN */ - ptrdiff_t lexeme; /* index of the conflict lexeme in the lexical queue */ - size_t stacksize; /* current maximum stack size */ - Yshort ctry; /* index in yyctable[] for this conflict */ + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* !defined yyoverflow */ + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; }; -/* Current parser state */ -static struct yyparsestate *yyps=0; +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) -/* yypath!=NULL: do the full parse, starting at *yypath parser state. */ -static struct yyparsestate *yypath=0; +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) -/* Base of the lexical value queue */ -static YYSTYPE *yylvals=0; +# define YYCOPY_NEEDED 1 -/* Current posistion at lexical value queue */ -static YYSTYPE *yylvp=0; +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) -/* End position of lexical value queue */ -static YYSTYPE *yylve=0; +#endif -/* The last allocated position at the lexical value queue */ -static YYSTYPE *yylvlim=0; +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ -#ifdef YYPOSN -/* Base of the lexical position queue */ -static YYPOSN *yylpsns=0; +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 3842 -/* Current posistion at lexical position queue */ -static YYPOSN *yylpp=0; +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 309 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 188 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 851 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 1603 -/* End position of lexical position queue */ -static YYPOSN *yylpe=0; +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 544 -/* The last allocated position at the lexical position queue */ -static YYPOSN *yylplim=0; -#endif /* YYPOSN */ -/* Current position at lexical token queue */ -static Yshort *yylexp=0; +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) -static Yshort *yylexemes=0; +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int16 yytranslate[] = +{ + 0, 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, 308, 2, 2, 2, 2, 306, 2, + 295, 296, 305, 292, 293, 303, 294, 307, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 304, 297, + 301, 298, 302, 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, 299, 2, 300, 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, 290, 2, 291, 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, + 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, 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, 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, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 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, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289 +}; -/* -** For use in generated program -*/ -#define yytrial (yyps->save) -#define yyvsp (yyps->vsp) -#define yyval (yyps->val) -#define yypsp (yyps->psp) -#define yypos (yyps->pos) -#define yydepth (yyps->ssp - yyps->ss) +#if YYDEBUG +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = +{ + 0, 190, 190, 191, 194, 195, 196, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 223, 224, 227, 230, 231, 232, 233, 234, 235, + 238, 239, 242, 243, 246, 247, 249, 254, 255, 258, + 259, 260, 263, 266, 267, 270, 271, 272, 276, 277, + 278, 279, 280, 285, 286, 287, 288, 291, 294, 295, + 299, 300, 304, 305, 306, 307, 310, 311, 312, 314, + 317, 320, 326, 329, 330, 334, 340, 341, 343, 346, + 347, 353, 356, 357, 360, 364, 365, 373, 374, 375, + 376, 378, 380, 385, 386, 387, 394, 398, 399, 400, + 401, 402, 403, 406, 409, 413, 416, 419, 425, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 457, 458, 461, 462, + 465, 466, 469, 470, 474, 475, 478, 479, 482, 483, + 486, 487, 488, 489, 490, 491, 492, 495, 496, 499, + 502, 503, 506, 507, 508, 511, 512, 515, 518, 519, + 522, 526, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 547, 556, 557, 558, 563, 569, + 570, 571, 578, 583, 584, 585, 586, 587, 588, 589, + 590, 602, 604, 605, 606, 607, 608, 609, 610, 613, + 614, 617, 618, 621, 622, 626, 643, 649, 665, 670, + 671, 672, 675, 676, 677, 678, 681, 682, 683, 684, + 685, 686, 687, 688, 691, 694, 699, 703, 707, 709, + 711, 716, 717, 721, 722, 723, 726, 727, 730, 731, + 732, 733, 734, 735, 736, 737, 741, 747, 748, 749, + 752, 753, 757, 758, 759, 760, 761, 762, 763, 767, + 773, 774, 777, 778, 781, 784, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 817, 818, 819, 820, 823, 826, 831, + 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 844, 845, 846, 849, 850, 851, 854, 855, + 856, 857, 858, 861, 862, 863, 864, 865, 866, 867, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 879, + 883, 884, 887, 888, 889, 890, 892, 895, 896, 897, + 898, 899, 900, 901, 902, 903, 904, 905, 915, 925, + 927, 930, 937, 938, 943, 949, 950, 952, 973, 976, + 980, 983, 984, 987, 988, 989, 993, 998, 999, 1000, + 1001, 1005, 1006, 1008, 1012, 1016, 1021, 1025, 1029, 1030, + 1031, 1036, 1039, 1040, 1043, 1044, 1045, 1048, 1049, 1052, + 1053, 1056, 1057, 1062, 1063, 1064, 1065, 1072, 1079, 1086, + 1093, 1101, 1109, 1110, 1111, 1112, 1113, 1114, 1118, 1121, + 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141, + 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1159, 1162, 1163, + 1166, 1167, 1171, 1172, 1173, 1178, 1179, 1180, 1182, 1184, + 1186, 1187, 1188, 1192, 1196, 1200, 1204, 1208, 1212, 1216, + 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, 1252, 1256, + 1260, 1267, 1268, 1270, 1274, 1275, 1277, 1281, 1282, 1286, + 1287, 1290, 1291, 1294, 1295, 1298, 1299, 1303, 1304, 1305, + 1309, 1310, 1311, 1313, 1317, 1318, 1322, 1328, 1331, 1334, + 1337, 1340, 1343, 1346, 1354, 1357, 1360, 1363, 1366, 1369, + 1372, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1392, + 1393, 1394, 1401, 1409, 1417, 1423, 1429, 1435, 1439, 1440, + 1442, 1444, 1448, 1454, 1457, 1458, 1459, 1460, 1461, 1465, + 1466, 1469, 1470, 1473, 1474, 1478, 1479, 1482, 1483, 1486, + 1487, 1488, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, + 1502, 1508, 1515, 1516, 1519, 1520, 1521, 1522, 1526, 1527, + 1534, 1540, 1542, 1545, 1547, 1548, 1550, 1552, 1553, 1554, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1565, 1566, 1567, 1568, 1570, 1572, 1577, 1582, 1585, 1587, + 1589, 1590, 1591, 1592, 1593, 1595, 1597, 1599, 1600, 1602, + 1605, 1609, 1610, 1611, 1612, 1614, 1615, 1616, 1617, 1618, + 1619, 1620, 1621, 1624, 1625, 1628, 1629, 1630, 1631, 1632, + 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, + 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, + 1673, 1674, 1675, 1676, 1680, 1686, 1687, 1688, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, 1697, 1699, 1706, 1713, 1719, + 1725, 1740, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1764, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, 1788, + 1789, 1790, 1791, 1794, 1798, 1800, 1802, 1803, 1804, 1806, + 1815, 1816, 1817, 1820, 1823, 1828, 1829, 1833, 1834, 1837, + 1840, 1841, 1844, 1847, 1850, 1853, 1857, 1863, 1869, 1875, + 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, + 1893, 1894, 1895, 1896, 1897, 1901, 1902, 1905, 1908, 1910, + 1913, 1915, 1919, 1922, 1926, 1929, 1933, 1936, 1942, 1944, + 1947, 1948, 1951, 1952, 1955, 1958, 1961, 1962, 1963, 1964, + 1965, 1966, 1967, 1968, 1969, 1970, 1973, 1974, 1977, 1978, + 1979, 1982, 1983, 1986, 1987, 1989, 1990, 1991, 1992, 1995, + 1998, 2001, 2004, 2006, 2010, 2011, 2014, 2015, 2016, 2017, + 2020, 2023, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, + 2034, 2035, 2038, 2039, 2042, 2043, 2044, 2045, 2047, 2049, + 2050, 2053, 2054, 2058, 2059, 2060, 2063, 2064, 2067, 2068, + 2069, 2070 +}; +#endif +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) -/* -** Local prototypes. -*/ -int yyparse(void); -int yylex(void); +#if YYDEBUG || 1 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; -static void YYSCopy(YYSTYPE *to, YYSTYPE *from, ptrdiff_t size) { - ptrdiff_t i; - for (i = size-1; i >= 0; i--) - to[i] = from[i]; -} +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "\"end of file\"", "error", "\"invalid token\"", "ERROR_", + "BAD_COMMENT_", "BAD_LITERAL_", "ID", "DOTTEDNAME", "QSTRING", + "SQSTRING", "INT32_T", "INT64_T", "FLOAT64", "HEXBYTE", "TYPEDEF_T", + "TYPEDEF_M", "TYPEDEF_F", "TYPEDEF_TS", "TYPEDEF_MR", "TYPEDEF_CA", + "DCOLON", "ELLIPSIS", "VOID_", "BOOL_", "CHAR_", "UNSIGNED_", "INT_", + "INT8_", "INT16_", "INT32_", "INT64_", "FLOAT_", "FLOAT32_", "FLOAT64_", + "BYTEARRAY_", "UINT_", "UINT8_", "UINT16_", "UINT32_", "UINT64_", + "FLAGS_", "CALLCONV_", "MDTOKEN_", "OBJECT_", "STRING_", "NULLREF_", + "DEFAULT_", "CDECL_", "VARARG_", "STDCALL_", "THISCALL_", "FASTCALL_", + "CLASS_", "BYREFLIKE_", "TYPEDREF_", "UNMANAGED_", "FINALLY_", + "HANDLER_", "CATCH_", "FILTER_", "FAULT_", "EXTENDS_", "IMPLEMENTS_", + "TO_", "AT_", "TLS_", "TRUE_", "FALSE_", "_INTERFACEIMPL", "VALUE_", + "VALUETYPE_", "NATIVE_", "INSTANCE_", "SPECIALNAME_", "FORWARDER_", + "STATIC_", "PUBLIC_", "PRIVATE_", "FAMILY_", "FINAL_", "SYNCHRONIZED_", + "INTERFACE_", "SEALED_", "NESTED_", "ABSTRACT_", "AUTO_", "SEQUENTIAL_", + "EXPLICIT_", "ANSI_", "UNICODE_", "AUTOCHAR_", "IMPORT_", "ENUM_", + "VIRTUAL_", "NOINLINING_", "AGGRESSIVEINLINING_", "NOOPTIMIZATION_", + "AGGRESSIVEOPTIMIZATION_", "UNMANAGEDEXP_", "BEFOREFIELDINIT_", + "STRICT_", "RETARGETABLE_", "WINDOWSRUNTIME_", "NOPLATFORM_", "METHOD_", + "FIELD_", "PINNED_", "MODREQ_", "MODOPT_", "SERIALIZABLE_", "PROPERTY_", + "TYPE_", "ASSEMBLY_", "FAMANDASSEM_", "FAMORASSEM_", "PRIVATESCOPE_", + "HIDEBYSIG_", "NEWSLOT_", "RTSPECIALNAME_", "PINVOKEIMPL_", "_CTOR", + "_CCTOR", "LITERAL_", "NOTSERIALIZED_", "INITONLY_", "REQSECOBJ_", + "CIL_", "OPTIL_", "MANAGED_", "FORWARDREF_", "PRESERVESIG_", "RUNTIME_", + "INTERNALCALL_", "_IMPORT", "NOMANGLE_", "LASTERR_", "WINAPI_", "AS_", + "BESTFIT_", "ON_", "OFF_", "CHARMAPERROR_", "INSTR_NONE", "INSTR_VAR", + "INSTR_I", "INSTR_I8", "INSTR_R", "INSTR_BRTARGET", "INSTR_METHOD", + "INSTR_FIELD", "INSTR_TYPE", "INSTR_STRING", "INSTR_SIG", "INSTR_TOK", + "INSTR_SWITCH", "_CLASS", "_NAMESPACE", "_METHOD", "_FIELD", "_DATA", + "_THIS", "_BASE", "_NESTER", "_EMITBYTE", "_TRY", "_MAXSTACK", "_LOCALS", + "_ENTRYPOINT", "_ZEROINIT", "_EVENT", "_ADDON", "_REMOVEON", "_FIRE", + "_OTHER", "_PROPERTY", "_SET", "_GET", "_PERMISSION", "_PERMISSIONSET", + "REQUEST_", "DEMAND_", "ASSERT_", "DENY_", "PERMITONLY_", "LINKCHECK_", + "INHERITCHECK_", "REQMIN_", "REQOPT_", "REQREFUSE_", "PREJITGRANT_", + "PREJITDENY_", "NONCASDEMAND_", "NONCASLINKDEMAND_", + "NONCASINHERITANCE_", "_LINE", "P_LINE", "_LANGUAGE", "_CUSTOM", "INIT_", + "_SIZE", "_PACK", "_VTABLE", "_VTFIXUP", "FROMUNMANAGED_", + "CALLMOSTDERIVED_", "_VTENTRY", "RETAINAPPDOMAIN_", "_FILE", + "NOMETADATA_", "_HASH", "_ASSEMBLY", "_PUBLICKEY", "_PUBLICKEYTOKEN", + "ALGORITHM_", "_VER", "_LOCALE", "EXTERN_", "_MRESOURCE", "_MODULE", + "_EXPORT", "LEGACY_", "LIBRARY_", "X86_", "AMD64_", "ARM_", "ARM64_", + "MARSHAL_", "CUSTOM_", "SYSSTRING_", "FIXED_", "VARIANT_", "CURRENCY_", + "SYSCHAR_", "DECIMAL_", "DATE_", "BSTR_", "TBSTR_", "LPSTR_", "LPWSTR_", + "LPTSTR_", "OBJECTREF_", "IUNKNOWN_", "IDISPATCH_", "STRUCT_", + "SAFEARRAY_", "BYVALSTR_", "LPVOID_", "ANY_", "ARRAY_", "LPSTRUCT_", + "IIDPARAM_", "IN_", "OUT_", "OPT_", "_PARAM", "_OVERRIDE", "WITH_", + "NULL_", "HRESULT_", "CARRAY_", "USERDEFINED_", "RECORD_", "FILETIME_", + "BLOB_", "STREAM_", "STORAGE_", "STREAMED_OBJECT_", "STORED_OBJECT_", + "BLOB_OBJECT_", "CF_", "CLSID_", "VECTOR_", "_SUBSYSTEM", "_CORFLAGS", + "ALIGNMENT_", "_IMAGEBASE", "_STACKRESERVE", "_TYPEDEF", "_TEMPLATE", + "_TYPELIST", "_MSCORLIB", "P_DEFINE", "P_UNDEF", "P_IFDEF", "P_IFNDEF", + "P_ELSE", "P_ENDIF", "P_INCLUDE", "CONSTRAINT_", "CONST_", "'{'", "'}'", + "'+'", "','", "'.'", "'('", "')'", "';'", "'='", "'['", "']'", "'<'", + "'>'", "'-'", "':'", "'*'", "'&'", "'/'", "'!'", "$accept", "decls", + "decl", "classNameSeq", "compQstring", "languageDecl", "id", + "dottedName", "int32", "int64", "float64", "typedefDecl", "compControl", + "customDescr", "customDescrWithOwner", "customHead", + "customHeadWithOwner", "customType", "ownerType", "customBlobDescr", + "customBlobArgs", "customBlobNVPairs", "fieldOrProp", "customAttrDecl", + "serializType", "moduleHead", "vtfixupDecl", "vtfixupAttr", "vtableDecl", + "vtableHead", "nameSpaceHead", "_class", "classHeadBegin", "classHead", + "classAttr", "extendsClause", "implClause", "classDecls", "implList", + "typeList", "typeListNotEmpty", "typarsClause", "typarAttrib", + "typarAttribs", "conTyparAttrib", "conTyparAttribs", "typars", + "typarsRest", "tyBound", "genArity", "genArityNotEmpty", "classDecl", + "fieldDecl", "fieldAttr", "atOpt", "initOpt", "repeatOpt", "methodRef", + "callConv", "callKind", "mdtoken", "memberRef", "eventHead", "eventAttr", + "eventDecls", "eventDecl", "propHead", "propAttr", "propDecls", + "propDecl", "methodHeadPart1", "marshalClause", "marshalBlob", + "marshalBlobHead", "methodHead", "methAttr", "pinvAttr", "methodName", + "paramAttr", "implAttr", "localsHead", "methodDecls", "methodDecl", + "scopeBlock", "scopeOpen", "sehBlock", "sehClauses", "tryBlock", + "tryHead", "sehClause", "filterClause", "filterHead", "catchClause", + "finallyClause", "faultClause", "handlerBlock", "dataDecl", "ddHead", + "tls", "ddBody", "ddItemList", "ddItemCount", "ddItem", "fieldSerInit", + "bytearrayhead", "bytes", "hexbytes", "fieldInit", "serInit", "f32seq", + "f64seq", "i64seq", "i32seq", "i16seq", "i8seq", "boolSeq", + "sqstringSeq", "classSeq", "objSeq", "methodSpec", "instr_none", + "instr_var", "instr_i", "instr_i8", "instr_r", "instr_brtarget", + "instr_method", "instr_field", "instr_type", "instr_string", "instr_sig", + "instr_tok", "instr_switch", "instr_r_head", "instr", "labels", + "tyArgs0", "tyArgs1", "tyArgs2", "sigArgs0", "sigArgs1", "sigArg", + "className", "slashedName", "typeSpec", "nativeType", "iidParamIndex", + "variantType", "type", "simpleType", "bounds1", "bound", "secDecl", + "secAttrSetBlob", "secAttrBlob", "psetHead", "nameValPairs", + "nameValPair", "truefalse", "caValue", "secAction", "esHead", + "extSourceSpec", "fileDecl", "fileAttr", "fileEntry", "hashHead", + "assemblyHead", "asmAttr", "assemblyDecls", "assemblyDecl", + "intOrWildcard", "asmOrRefDecl", "publicKeyHead", "publicKeyTokenHead", + "localeHead", "assemblyRefHead", "assemblyRefDecls", "assemblyRefDecl", + "exptypeHead", "exportHead", "exptAttr", "exptypeDecls", "exptypeDecl", + "manifestResHead", "manresAttr", "manifestResDecls", "manifestResDecl", YY_NULLPTR +}; -#ifdef YYPOSN -static void YYPCopy(YYPOSN *to, YYPOSN *from, int size) { - int i; - for (i = size-1; i >= 0; i--) - to[i] = from[i]; +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; } -#endif /* YYPOSN */ - -static int yyexpand() { - ptrdiff_t p = yylvp-yylvals; - ptrdiff_t s = yylvlim-yylvals; - s += YYSTACKGROWTH; -#ifdef __cplusplus - Yshort *tl = yylexemes; - yylexemes = new Yshort[s]; - memcpy(yylexemes, tl, (s-YYSTACKGROWTH)*sizeof(Yshort)); - delete[] tl; - YYSTYPE *tv = yylvals; - yylvals = new YYSTYPE[s]; - YYSCopy(yylvals, tv, s-YYSTACKGROWTH); - delete[] tv; -#ifdef YYPOSN - YYPOSN *tp = yylpsns; - yylpsns = new YYPOSN[s]; - YYPCopy(yylpsns, tp, s-YYSTACKGROWTH); - delete[] tp; -#endif /* YYPOSN */ -#else - yylexemes = realloc(yylexemes, sizeof(Yshort) * s); - yylvals = realloc(yylvals, sizeof(YYSTYPE) * s); -#ifdef YYPOSN - yylpsns = realloc(yylpsns, sizeof(YYPOSN) * s); -#endif /* YYPOSN */ #endif - yylexp = yylexemes + p; - yylvp = yylve = yylvals + p; - yylvlim = yylvals + s; -#ifdef YYPOSN - yylpp = yylpe = yylpsns + p; - yylplim = yylpsns + s; -#endif /* YYPOSN */ - return 0; + +#define YYPACT_NINF (-1314) + +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-563) + +#define yytable_value_is_error(Yyn) \ + 0 + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + -1314, 962, -1314, -1314, -114, 512, -1314, -140, 123, 3127, + 3127, -1314, -1314, 164, 703, -50, -49, -3, 84, -1314, + 216, 319, 319, 197, 197, 1929, 54, -1314, 512, 512, + 512, 512, -1314, -1314, 266, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, 341, 341, -1314, -1314, -1314, -1314, 341, 80, + -1314, 301, 125, -1314, -1314, -1314, -1314, 498, -1314, 341, + 319, -1314, -1314, 158, 181, 190, 211, -1314, -1314, -1314, + -1314, -1314, 230, 319, -1314, -1314, -1314, 253, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, 2255, 69, 244, -1314, -1314, 234, 247, + -1314, -1314, 502, 753, 753, 2161, 131, -1314, 3201, -1314, + -1314, 249, 319, 319, 251, -1314, 683, 559, 512, 230, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 3201, + -1314, -1314, -1314, 839, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, 534, -1314, 504, 534, + 387, -1314, 2550, -1314, -1314, -1314, 1781, 50, 42, 230, + 427, 435, -1314, 438, 1460, 448, 270, 472, -1314, 534, + 47, 230, 230, 230, -1314, -1314, 300, 591, 314, 336, + -1314, 3319, 2255, 572, -1314, 3677, 2513, 334, 136, 302, + 304, 326, 332, 352, 346, 628, 351, -1314, -1314, 341, + 358, 45, -1314, -1314, -1314, -1314, 660, 512, 370, 3040, + 381, 66, -1314, 753, -1314, 105, 921, -1314, 390, 215, + 396, 688, 319, 319, -1314, -1314, -1314, -1314, -1314, -1314, + 415, -1314, -1314, 85, 1419, -1314, 417, -1314, -1314, -18, + 683, -1314, -1314, -1314, -1314, 499, -1314, -1314, -1314, -1314, + 230, -1314, -1314, -43, 230, 921, -1314, -1314, -1314, -1314, + -1314, 534, -1314, 704, -1314, -1314, -1314, -1314, 1731, 466, + 467, 1027, 474, 479, 481, 500, 503, 510, 517, 529, + 539, 551, -1314, 396, -1314, 341, -1314, 512, 507, 83, + 547, 694, 230, -1314, 512, 512, 512, -1314, 3201, 512, + 512, -1314, 558, 560, 512, 48, 3201, -1314, -1314, 444, + 534, 396, -1314, -1314, -1314, -1314, 3180, 561, -1314, -1314, + -1314, -1314, -1314, -1314, 751, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -63, -1314, + 2255, -1314, 3359, 600, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, 602, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, 319, -1314, 319, + -1314, -1314, -1314, 319, 540, -32, 2324, -1314, -1314, -1314, + 570, -1314, -1314, -132, -1314, -1314, -1314, -1314, 873, 224, + -1314, -1314, 312, 319, 197, 209, 312, 1460, 1843, 2255, + 236, 753, 2161, 609, 341, -1314, -1314, -1314, 614, 319, + 319, -1314, 319, -1314, 319, -1314, 197, -1314, 269, -1314, + 269, -1314, -1314, 557, 627, 253, 629, -1314, -1314, -1314, + 319, 319, 1183, 1302, 1066, 902, -1314, -1314, -1314, 964, + 230, 230, -1314, 616, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, 633, 58, -1314, + 512, 95, 3201, 932, 651, -1314, 2397, -1314, 941, 662, + 665, 667, 1460, -1314, -1314, 396, -1314, -1314, 74, 103, + 675, 948, -1314, -1314, 770, -33, -1314, 512, -1314, -1314, + 103, 968, 241, 319, 707, 713, 714, 716, 319, 319, + 319, 197, 747, 579, 319, 319, 319, 197, 721, 173, + 512, 512, 512, 230, -1314, 230, 230, 230, 1626, 230, + 230, 2255, 2255, 230, -1314, -1314, 1015, 4, -1314, 736, + 757, 921, -1314, -1314, -1314, 319, -1314, -1314, -1314, -1314, + -1314, -1314, 792, -1314, 759, -1314, 947, -1314, -1314, -1314, + 319, 319, -1314, -35, 2466, -1314, -1314, -1314, -1314, 773, + -1314, -1314, 774, 777, -1314, -1314, -1314, -1314, 778, 319, + 932, 2877, -1314, -1314, 769, 319, 91, 108, 319, 753, + 1059, -1314, 787, 39, 2678, -1314, 2255, -1314, -1314, -1314, + 873, 6, 224, 6, 6, 6, 1020, 1023, -1314, -1314, + -1314, -1314, -1314, -1314, 798, 799, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, 1731, -1314, 801, 396, 341, + 3201, -1314, 312, 802, 932, 804, 788, 814, 818, 819, + 820, 826, -1314, 628, 827, -1314, 821, 111, 884, 828, + 51, 70, -1314, -1314, -1314, -1314, -1314, -1314, 341, 341, + -1314, 829, 833, -1314, 341, -1314, 341, -1314, 855, 72, + 512, 908, -1314, -1314, -1314, -1314, 512, 925, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 319, 3262, + 26, 208, 512, 995, 41, 847, 853, -1314, 631, 857, + 862, 867, -1314, 1152, -1314, -1314, 864, 874, 2606, 3150, + 871, 875, 463, 544, 341, 512, 230, 512, -1314, -1314, + 881, 886, 319, 319, 319, 197, 898, 899, 900, 904, + 905, 910, 912, 913, 914, 915, 916, 922, -1314, 512, + 270, 270, 270, 876, 933, 934, 319, 146, -1314, -1314, + 3201, 935, 903, -1314, -1314, -1314, -1314, 1164, -1314, -1314, + 258, 139, 926, 2255, 2255, 2092, 919, -1314, -1314, 660, + 124, 134, 753, 1185, -1314, -1314, -1314, 2841, -1314, 936, + 73, 1040, 61, 846, 319, 917, 319, 230, 319, 88, + 940, 3201, 463, 39, -1314, 2877, 937, 943, -1314, -1314, + -1314, -1314, 312, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, 253, 319, 319, 197, 103, 1230, 932, 955, 618, + 960, 961, 965, -1314, 168, 957, -1314, 957, 957, 957, + 957, 957, -1314, -1314, 319, -1314, 319, 319, 963, -1314, + -1314, 953, 969, 396, 970, 971, 973, 975, 976, 981, + 319, 512, -1314, 230, 512, 57, 512, 982, -1314, -1314, + -1314, -1314, 909, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, 984, 1017, 1030, -1314, 1043, + 997, 18, 1274, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, 984, 984, -1314, 1818, -1314, -1314, -1314, + 1002, 341, 121, 253, 1001, 512, 118, -1314, 932, 1011, + 1005, 1014, -1314, 2397, -1314, 126, -1314, 354, 468, 1077, + 501, 511, 531, 536, 584, 594, 595, 615, 623, 647, + 648, 671, 674, -1314, 1279, -1314, -1314, 319, 1003, 39, + 39, 230, 675, -1314, -1314, 253, -1314, -1314, -1314, 1012, + 230, 230, -1314, -1314, 1013, 1016, 1019, 1021, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + 270, 39, -1314, -1314, -1314, -1314, 921, -1314, 319, 1024, + 1164, 2255, -1314, 2255, 194, 512, -1314, -1314, 1113, -1314, + -1314, 564, 512, -1314, -1314, 3201, 230, 319, 230, 319, + 218, 3201, 463, 3405, 851, 1725, -1314, 1339, -1314, 932, + 2014, 1028, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, 1007, 1018, -1314, 1032, 1033, 1034, 1037, 1029, + 463, -1314, 1181, 1039, 1042, 2255, 1001, 1731, -1314, 1047, + 846, -1314, 1319, 1281, 1282, -1314, -1314, 1050, 1058, 512, + 679, -1314, 39, 312, 312, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, 135, 1347, -1314, -1314, 51, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, 1068, 270, 230, 319, 230, + -1314, -1314, -1314, -1314, -1314, -1314, 1112, -1314, -1314, -1314, + -1314, 932, 1067, 1069, -1314, -1314, -1314, -1314, -1314, -1314, + 956, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 264, -1314, + 49, 31, -1314, -1314, 1781, -1314, 1070, 396, -1314, 1072, + -1314, -1314, -1314, -1314, 1079, -1314, -1314, -1314, -1314, 396, + 319, 319, 695, 700, 701, 744, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 3676, 319, 207, 319, + 553, 319, -1314, -1314, -1314, 2697, 1071, -1314, 1074, 1076, + 1078, 1080, -1314, 1209, -1314, -1314, -1314, -1314, 1081, 1082, + 319, -1314, 512, 1083, 1089, -1314, 792, -1314, 194, 1460, + -1314, 230, 58, 1085, 1086, 2255, 1731, 1132, -1314, 1460, + 1460, 1460, 1460, -1314, -1314, -1314, -1314, -1314, -1314, 1460, + 1460, 1460, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 396, + -1314, 319, 476, 524, -1314, -1314, -1314, -1314, 3262, 1092, + 253, -1314, 1102, -1314, -1314, 1380, -1314, 253, -1314, 253, + 319, -1314, -1314, 230, -1314, 1105, -1314, -1314, -1314, 319, + -1314, 1100, -1314, -1314, 1107, 384, 319, 319, -1314, -1314, + -1314, -1314, -1314, -1314, 932, 1108, -1314, -1314, 319, -1314, + -68, -1314, 319, 793, -1314, 1044, 1118, 1110, 1111, 319, + 319, 319, 319, 1119, 1121, 1122, 1123, 1124, 1127, 1129, + 1130, 1131, 1134, 1116, 1135, 1136, 1141, 1138, 1143, 1409, + 1149, 1153, -1314, 385, -1314, 163, -1314, 1157, -1314, -1314, + 39, 39, -1314, -1314, -1314, 1158, 194, -1314, 2255, -1314, + -1314, 428, -1314, 1167, -1314, 1452, 753, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, 2729, 1180, -1314, -1314, -1314, -1314, + 1186, 1182, -1314, 2255, 463, -1314, -1314, -1314, -1314, 1470, + 51, 319, 932, 1184, 1187, 396, -1314, 1191, 319, -1314, + 1190, 1177, 1192, 1194, 1199, 1402, -1314, -1314, 1208, 1210, + 1204, 1218, 1219, 1220, 1214, 1215, 1226, 1227, 1229, 1233, + 1234, 1235, 1236, 1238, -1314, 1239, -1314, -1314, 1240, -1314, + 1241, -1314, 1243, 1532, -1314, 1242, 755, -1314, 1247, 1248, + -1314, -1314, -1314, 39, 2255, 463, 3201, -1314, -1314, -1314, + 39, -1314, 1244, -1314, 1249, 1252, 413, -1314, 3593, -1314, + 1251, -1314, 319, 319, 319, -1314, -1314, -1314, -1314, 1257, + 1259, 1260, 1264, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 3676, + -1314, -1314, 1271, -1314, 1244, 1731, 1272, 1270, 1277, -1314, + 51, -1314, 932, -1314, 121, -1314, 1278, 1286, 1294, 170, + 64, -1314, -1314, -1314, -1314, 97, 100, 128, 144, 182, + 179, 140, 165, 172, 189, 848, 77, 432, -1314, 1001, + 1280, 1553, -1314, 39, -1314, 440, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, 183, 185, 203, 193, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + 1568, -1314, -1314, -1314, 39, 463, 2902, 1295, 932, -1314, + -1314, -1314, -1314, -1314, 1298, 1283, 1300, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, 697, 1340, 39, 319, -1314, 1493, 1304, + 1305, 753, -1314, -1314, 3201, 1731, 1578, 463, 1244, 1307, + 39, 1309, -1314 +}; + +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int16 yydefact[] = +{ + 2, 0, 1, 86, 106, 0, 269, 213, 394, 0, + 0, 765, 766, 0, 226, 0, 0, 780, 786, 843, + 93, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 58, 59, 0, 61, 3, 25, 26, 27, + 84, 85, 438, 438, 19, 17, 10, 9, 438, 0, + 109, 136, 0, 7, 276, 340, 8, 0, 18, 438, + 0, 11, 12, 0, 0, 0, 0, 822, 37, 40, + 38, 39, 105, 0, 193, 395, 396, 393, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 0, 0, 34, 220, 221, 0, 0, + 227, 228, 233, 226, 226, 0, 62, 72, 0, 224, + 219, 0, 0, 0, 0, 786, 0, 0, 0, 94, + 42, 20, 21, 44, 43, 23, 24, 558, 716, 0, + 693, 701, 699, 0, 702, 703, 704, 705, 706, 707, + 712, 713, 714, 715, 675, 700, 0, 692, 0, 0, + 0, 496, 0, 559, 560, 561, 0, 0, 0, 562, + 0, 0, 240, 0, 226, 0, 556, 0, 697, 30, + 53, 55, 56, 57, 60, 440, 0, 439, 0, 0, + 2, 0, 0, 138, 140, 226, 0, 0, 401, 401, + 401, 401, 401, 401, 0, 0, 0, 391, 398, 438, + 0, 768, 796, 814, 832, 846, 0, 0, 0, 0, + 0, 0, 557, 226, 564, 726, 567, 32, 0, 0, + 728, 0, 0, 0, 229, 230, 231, 232, 222, 223, + 0, 74, 73, 0, 0, 104, 0, 22, 781, 782, + 0, 787, 788, 789, 791, 0, 792, 793, 794, 795, + 785, 844, 845, 841, 95, 698, 708, 709, 710, 711, + 674, 0, 677, 0, 694, 696, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 443, 442, 438, 678, 0, 0, 0, + 0, 0, 691, 689, 0, 0, 0, 235, 0, 0, + 0, 683, 0, 0, 0, 719, 541, 682, 681, 0, + 30, 54, 65, 441, 69, 103, 0, 0, 112, 133, + 110, 111, 114, 115, 0, 116, 117, 118, 119, 120, + 121, 122, 123, 113, 132, 125, 124, 134, 148, 137, + 0, 108, 0, 0, 282, 277, 278, 279, 280, 281, + 285, 283, 293, 284, 286, 287, 288, 289, 290, 291, + 292, 0, 294, 318, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 0, 376, 0, + 339, 347, 348, 0, 0, 0, 0, 369, 6, 354, + 0, 356, 355, 0, 341, 362, 340, 343, 0, 0, + 349, 511, 0, 0, 0, 0, 0, 226, 0, 0, + 0, 226, 0, 0, 438, 350, 352, 353, 0, 0, + 0, 417, 0, 416, 0, 415, 0, 414, 0, 412, + 0, 413, 437, 0, 400, 0, 0, 727, 777, 767, + 0, 0, 0, 0, 0, 0, 825, 824, 823, 0, + 820, 41, 214, 0, 200, 194, 195, 196, 197, 202, + 203, 204, 205, 199, 206, 207, 198, 0, 0, 392, + 0, 0, 0, 0, 0, 736, 730, 735, 0, 35, + 0, 0, 226, 76, 70, 63, 315, 316, 719, 317, + 539, 0, 97, 783, 779, 812, 790, 0, 676, 695, + 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 690, 688, 51, 52, 50, 0, 49, + 563, 0, 0, 48, 720, 679, 721, 0, 717, 0, + 542, 543, 28, 31, 5, 0, 126, 127, 128, 129, + 130, 131, 157, 107, 139, 143, 0, 106, 243, 257, + 0, 0, 822, 0, 0, 4, 185, 186, 179, 0, + 141, 175, 0, 0, 340, 176, 177, 178, 0, 0, + 299, 0, 342, 344, 0, 0, 0, 0, 0, 226, + 0, 351, 0, 318, 0, 386, 0, 384, 387, 370, + 372, 0, 0, 0, 0, 0, 0, 0, 373, 513, + 512, 514, 515, 45, 0, 0, 510, 517, 516, 520, + 519, 521, 525, 526, 524, 0, 527, 0, 528, 438, + 0, 532, 534, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 397, 0, 0, 405, 0, 770, 0, 0, + 0, 0, 13, 808, 807, 799, 797, 800, 438, 438, + 819, 0, 0, 14, 438, 817, 438, 815, 0, 0, + 0, 0, 15, 840, 839, 833, 0, 0, 16, 851, + 850, 847, 826, 827, 828, 829, 830, 831, 0, 568, + 209, 0, 565, 0, 0, 0, 737, 76, 0, 0, + 0, 731, 33, 0, 225, 234, 66, 0, 79, 541, + 0, 0, 0, 0, 438, 0, 842, 0, 740, 741, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, + 554, 552, 553, 682, 0, 0, 723, 719, 680, 687, + 0, 0, 0, 152, 154, 153, 155, 160, 150, 151, + 157, 0, 0, 0, 0, 0, 226, 180, 181, 0, + 0, 0, 226, 0, 140, 246, 260, 0, 832, 0, + 299, 0, 0, 270, 0, 0, 0, 364, 0, 0, + 0, 0, 0, 318, 549, 0, 0, 546, 547, 368, + 385, 371, 0, 388, 378, 382, 383, 381, 377, 379, + 380, 0, 0, 0, 0, 523, 0, 0, 0, 0, + 537, 538, 0, 518, 0, 401, 402, 401, 401, 401, + 401, 401, 399, 404, 0, 769, 0, 0, 0, 802, + 801, 0, 0, 805, 0, 0, 0, 0, 0, 0, + 0, 0, 838, 834, 0, 0, 0, 0, 584, 622, + 576, 577, 0, 611, 578, 579, 580, 581, 582, 583, + 613, 589, 590, 591, 592, 623, 0, 0, 619, 0, + 0, 0, 573, 574, 575, 598, 599, 600, 617, 601, + 602, 603, 604, 623, 623, 607, 625, 615, 621, 274, + 0, 0, 272, 0, 211, 566, 0, 724, 0, 0, + 38, 0, 729, 730, 36, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 78, 75, 445, 77, 0, 0, 318, + 318, 317, 539, 98, 99, 0, 100, 101, 102, 0, + 813, 236, 435, 434, 0, 0, 0, 0, 425, 424, + 423, 422, 420, 418, 421, 419, 433, 432, 431, 430, + 555, 318, 684, 685, 722, 718, 544, 135, 0, 0, + 160, 0, 158, 144, 165, 0, 149, 142, 0, 245, + 244, 562, 0, 259, 258, 0, 821, 0, 188, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 295, 0, + 0, 0, 306, 307, 308, 309, 301, 302, 303, 300, + 304, 305, 0, 0, 298, 0, 0, 0, 0, 0, + 0, 359, 357, 0, 0, 0, 211, 0, 360, 0, + 270, 345, 318, 0, 0, 374, 375, 0, 0, 0, + 0, 530, 318, 534, 534, 533, 403, 411, 410, 409, + 408, 406, 407, 774, 772, 798, 809, 0, 811, 803, + 806, 784, 810, 816, 818, 0, 835, 836, 0, 849, + 208, 612, 585, 586, 587, 588, 0, 608, 614, 616, + 620, 0, 0, 0, 618, 605, 606, 660, 629, 630, + 0, 657, 631, 632, 633, 634, 635, 636, 659, 641, + 642, 643, 644, 627, 628, 649, 650, 651, 652, 653, + 654, 655, 656, 626, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 645, 609, 201, + 0, 0, 593, 210, 0, 192, 0, 745, 743, 0, + 742, 739, 738, 725, 0, 79, 732, 76, 71, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 82, 83, 81, 0, 0, 540, 0, 0, + 0, 0, 96, 782, 429, 428, 427, 426, 0, 0, + 0, 161, 0, 0, 145, 146, 157, 164, 165, 226, + 191, 241, 0, 0, 0, 0, 0, 0, 172, 226, + 226, 226, 226, 173, 254, 255, 253, 247, 252, 226, + 226, 226, 174, 267, 268, 265, 261, 266, 182, 299, + 297, 0, 0, 0, 319, 320, 321, 322, 568, 148, + 0, 363, 0, 366, 367, 0, 346, 550, 548, 0, + 0, 46, 47, 522, 529, 0, 535, 536, 773, 0, + 771, 0, 837, 848, 0, 0, 0, 0, 658, 637, + 638, 639, 640, 647, 0, 0, 648, 273, 0, 594, + 0, 212, 0, 0, 79, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 0, 88, 0, 87, 0, 218, 217, + 318, 318, 778, 686, 156, 0, 165, 167, 0, 166, + 163, 0, 187, 0, 190, 0, 226, 248, 249, 250, + 251, 264, 262, 263, 0, 0, 310, 311, 312, 313, + 0, 0, 358, 0, 0, 551, 389, 390, 531, 776, + 0, 0, 0, 0, 0, 610, 646, 0, 0, 595, + 0, 0, 0, 0, 0, 0, 733, 68, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 451, 0, 447, 446, 0, 450, + 0, 449, 0, 0, 91, 0, 0, 170, 0, 0, + 159, 162, 147, 318, 0, 0, 0, 296, 314, 271, + 318, 365, 168, 775, 0, 0, 0, 571, 568, 597, + 0, 744, 0, 0, 0, 749, 734, 485, 481, 0, + 0, 0, 0, 483, 481, 479, 477, 471, 474, 483, + 481, 479, 477, 494, 487, 448, 490, 90, 92, 0, + 216, 215, 0, 189, 168, 0, 0, 0, 0, 169, + 0, 624, 0, 570, 572, 596, 0, 0, 0, 0, + 0, 483, 481, 479, 477, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 211, + 0, 0, 323, 318, 804, 0, 746, 747, 748, 467, + 486, 466, 482, 0, 0, 0, 0, 457, 484, 456, + 455, 480, 454, 478, 452, 473, 472, 453, 476, 475, + 461, 460, 459, 458, 470, 495, 489, 488, 468, 491, + 0, 469, 493, 256, 318, 0, 0, 0, 0, 465, + 464, 463, 462, 492, 0, 0, 0, 328, 324, 333, + 334, 335, 336, 337, 325, 326, 327, 329, 330, 331, + 332, 275, 361, 0, 0, 318, 0, 569, 0, 0, + 0, 226, 183, 338, 0, 0, 0, 0, 168, 0, + 318, 0, 184 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -1314, 1423, -1314, 1296, -65, 27, 12, -5, 114, -17, + -425, -1314, 11, -11, 1582, -1314, -1314, 1126, 1200, -667, + -1314, -1054, -1314, 0, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -322, -1314, -1314, -1314, 840, -1314, -1314, + -1314, 369, -1314, 859, -1314, 649, 421, -1071, -1314, -1313, + -456, -1314, -321, -1314, -1314, -1000, -1314, -160, -94, -1314, + -6, 1603, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, 601, 383, -1314, -320, -1314, -741, -696, 1289, -1314, + -1314, -356, -1314, -144, -1314, -1314, 1045, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, 150, 16, -1314, -1314, -1314, + 991, -12, 1585, -143, -24, -16, 743, 513, -1139, -1314, + -1314, -1189, -1174, -1215, -1166, -1314, -1314, -1314, -1314, 13, + -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, -1314, -1314, -1314, -1314, -312, 718, 952, -1314, -743, + -1314, 604, -7, -475, -25, 228, -112, -1314, -23, 482, + -1314, 924, 10, 760, -1314, -1314, 764, -1314, -871, -1314, + 1664, -1314, 30, -1314, -1314, 483, 1188, -1314, 1560, -1314, + -1314, -1023, 1255, -1314, -1314, -1314, -1314, -1314, -1314, -1314, + -1314, 1115, 901, -1314, -1314, -1314, -1314, -1314 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + 0, 1, 36, 309, 283, 389, 71, 159, 840, 1533, + 618, 38, 391, 40, 41, 42, 43, 106, 230, 707, + 708, 934, 1185, 392, 1325, 45, 46, 713, 47, 48, + 49, 50, 51, 52, 181, 183, 341, 342, 554, 1203, + 1204, 553, 760, 761, 980, 981, 762, 1207, 985, 1478, + 1479, 570, 53, 209, 904, 1145, 74, 107, 108, 109, + 212, 231, 572, 765, 1004, 1227, 573, 766, 1005, 1236, + 54, 1030, 900, 901, 55, 185, 781, 490, 795, 1556, + 393, 186, 394, 803, 396, 397, 599, 398, 399, 600, + 601, 602, 603, 604, 605, 804, 400, 57, 77, 197, + 433, 421, 434, 935, 285, 176, 177, 286, 936, 1499, + 1500, 1498, 1497, 1490, 1495, 1489, 1506, 1507, 1505, 213, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 822, 711, 539, 540, 796, + 797, 798, 214, 166, 232, 902, 1087, 1138, 216, 168, + 537, 538, 416, 700, 701, 59, 695, 696, 720, 1151, + 93, 60, 417, 62, 114, 494, 664, 63, 116, 442, + 656, 841, 657, 658, 666, 659, 64, 443, 667, 65, + 578, 206, 444, 675, 66, 117, 445, 681 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 72, 44, 167, 640, 297, 641, 125, 126, 110, 228, + 229, 58, 39, 284, 160, 119, 942, 56, 165, 162, + 569, 571, 574, 170, 171, 172, 173, 178, 37, 220, + 909, 61, 179, 199, 710, 1150, 1254, 1313, 164, 1010, + 594, 120, 395, 200, 1271, 740, 741, 742, 68, 69, + 1039, 70, 120, 438, 439, 217, 68, 69, 120, 70, + 794, 120, 313, 802, 68, 69, 592, 70, 215, 534, + 298, 120, 68, 69, 120, 70, 770, 217, 217, 586, + 68, 69, 120, 70, 120, 234, 1546, 731, 733, 210, + 903, 363, 99, 217, 497, 534, 1038, 68, 69, 162, + 70, 1295, 67, 218, 715, 311, 255, 120, 99, 239, + 120, 250, 253, 254, 68, 69, 99, 70, 164, 472, + 835, 1078, 1547, -562, 68, 69, 217, 70, 120, 268, + 68, 69, 127, 70, 217, 121, 122, 1340, 120, 260, + 68, 69, 262, 70, 1268, 68, 69, 1146, 70, 493, + 120, 290, 289, 292, 123, 124, 120, 339, 110, 73, + 99, 1510, 310, 593, 301, 302, 303, 534, 485, 68, + 69, 199, 70, 95, 201, 120, 338, 423, 425, 427, + 429, 431, 120, 436, 718, 719, 468, 208, 75, 123, + 124, 613, 120, 120, 613, 120, 1188, 1189, 390, 123, + 124, 450, 451, 123, 124, 290, 471, 123, 124, 491, + 1009, 614, 615, 120, 614, 615, 1315, 741, 777, 123, + 124, 613, 68, 69, 1378, 70, 236, 237, 1198, 489, + 68, 207, 1379, 70, 120, 495, 718, 719, 552, 1496, + 1385, 614, 615, 501, 217, 1502, 1092, 621, 111, 76, + 112, 207, 1316, 771, 498, 608, 587, 68, 69, 68, + 70, 207, 70, 500, 970, 1421, 1093, 588, 287, 518, + 194, 113, 293, 1504, 174, 528, 207, 1524, 153, 154, + 155, 613, 519, 541, 470, 1599, 523, 1503, 851, 525, + 526, 527, 470, 1501, 529, 530, 387, 747, 752, 533, + 115, 614, 615, 310, 748, 1526, 1217, 718, 719, 1265, + 753, 754, 1025, 1026, 1027, 555, 44, 630, 68, 1525, + 207, 70, 120, 1288, 627, 1523, 58, 39, 755, 120, + 1508, 1289, 56, 478, 1249, -545, 480, 481, 440, 906, + 1287, 207, 568, 37, 169, 628, 61, 1434, 535, 441, + 291, 207, 576, 567, 175, 288, 839, 305, 575, 306, + 1521, 590, 182, 307, 308, 478, 1545, 219, 842, 566, + 180, 288, 577, 1548, 535, 483, 1076, 207, 756, 288, + 484, 1035, 207, 521, 626, 625, 629, 612, 617, 207, + 786, 68, 69, 1527, 70, 692, 1529, 207, 633, 127, + 473, 110, 624, 474, 836, 524, 162, 788, 694, 639, + -562, 606, 263, 264, 609, 184, 1157, 157, 619, 536, + 1141, 1158, 265, 997, 1530, 164, 1142, 99, 1269, 233, + 970, 419, 118, 999, 983, 420, 1540, 1413, 68, 69, + 1532, 70, 654, 654, 674, 680, 127, 644, 202, 693, + 395, 699, 655, 653, 653, 673, 679, 1514, 807, 238, + 478, 1541, 1415, 690, 1056, 691, 1519, 207, 1542, 68, + 69, 203, 70, 739, 99, 1537, 110, 1549, 1534, 1559, + 204, 1560, 290, 471, 1550, 1543, 1190, 1206, 207, 1562, + 1296, 582, 716, 583, 729, 791, 732, 584, 1354, 1561, + 737, 205, 207, 491, 616, 476, 744, 745, 905, 1553, + 477, 1215, 207, 607, 387, 780, 610, 611, 68, 69, + 620, 70, 187, 489, 207, 188, 189, 190, 191, 222, + 192, 193, 194, 635, 636, 1283, 637, 221, 638, 773, + 68, 69, 223, 70, 235, 153, 154, 155, 127, 224, + 758, 225, 226, 227, 646, 647, 261, 1284, 783, 68, + 69, 759, 70, 1285, 294, 68, 69, 127, 70, 824, + 1286, 800, 295, 943, 944, 296, 99, 300, 301, 302, + 303, 787, 789, 486, 487, 299, 843, 1418, 1419, 123, + 124, 613, 153, 154, 155, 99, 312, 422, 1318, 424, + 816, 420, 536, 420, 313, 1319, 390, 819, 945, 304, + 314, 614, 615, 818, 805, 1356, 1357, 721, 1520, 199, + 815, 426, 726, 727, 728, 420, 730, 428, 734, 735, + 736, 420, 315, 395, 340, 251, 252, 68, 69, 418, + 910, 432, 844, 845, 820, 127, 435, 430, 848, 502, + 849, 420, 187, 1160, 437, 188, 189, 190, 191, 751, + 192, 193, 194, 1358, 1359, 853, 68, 69, 1432, 70, + 452, 855, 995, 99, 767, 768, 478, 1372, 1001, 469, + 1472, 569, 571, 574, 157, 475, 541, 1476, 478, 68, + 69, 260, 70, 779, 153, 154, 155, 479, 949, 785, + 68, 69, 790, 70, 120, 478, 1482, 941, 957, 1483, + 950, 482, 951, 153, 154, 155, 806, 492, 96, 933, + 496, 97, 207, 1423, 301, 302, 303, 976, 1551, 1474, + 499, 157, 478, 1558, 446, 542, 447, 448, 987, 988, + 992, 1266, 1267, 449, 98, 99, 821, 946, 947, 100, + 948, 101, 1050, 808, 809, 810, 984, 120, 102, 613, + 991, 502, 503, 503, 996, 998, 1000, 1161, 1037, 508, + 1557, 305, 1040, 306, 509, 103, 510, 307, 308, 614, + 615, 1095, 1096, 852, 241, 242, 243, 941, 195, 390, + 104, 153, 154, 155, 98, 511, 508, 1048, 512, 100, + 1166, 101, 857, 120, 196, 513, 509, 520, 102, 244, + 1167, 1564, 514, 1057, 1043, 1058, 1059, 1060, 1061, 1062, + 1381, 1382, 1383, 1045, 515, 103, 510, 546, 547, 548, + 1168, 511, 752, 157, 516, 1169, 954, 955, 956, 585, + 104, 1147, 1589, 694, 753, 754, 517, 522, 642, 1077, + 1159, 1079, 157, 531, -242, 532, 545, 1601, 207, 1565, + 974, 536, 755, 549, 550, 551, 256, 257, 258, 259, + 3, 917, 918, 919, 591, 920, 921, 922, 923, 512, + 924, 925, 194, 1170, 926, 927, 928, 929, 699, 513, + 514, 930, 931, 1171, 1172, 579, 1028, 580, 1031, 1149, + 1033, 1598, 1034, 245, 632, 246, 247, 248, 249, 634, + 515, 688, 756, 1052, 1173, 1143, 1044, 305, 516, 306, + 643, 3, 1174, 307, 308, 645, 1046, 1047, 689, 595, + 157, 596, 597, 598, 196, 1081, 1082, 1083, 1084, 1085, + 217, 697, 517, 1176, 1239, 1184, 1175, 1177, 1063, 702, + 1064, 1065, 301, 302, 303, 703, 1202, 1192, 1205, 932, + 98, 704, 2, 705, 1075, 100, 1178, 101, 712, 1180, + 1179, 478, 1212, 1181, 102, 1264, 709, 1210, 1216, 661, + 1208, 3, 1278, 1279, 1280, 1281, 1282, 1211, 717, 478, + 722, 103, 993, 1587, 1299, 723, 724, 941, 105, 1300, + 1301, 284, 722, 568, 1226, 1235, 104, 674, 723, 724, + 1253, 725, 1255, 576, 567, 1225, 1234, 738, 673, 575, + 1148, 1219, 1220, 1221, 1222, 941, 1275, 301, 302, 303, + 566, 1224, 1233, 577, 1228, 1237, 746, 994, 749, 725, + 682, 683, 684, 1302, 1263, 11, 12, 13, 14, 207, + 750, 1186, 763, 1469, 504, 505, 506, 507, 764, 1347, + 1348, 1349, 1350, 774, 775, 820, 820, 776, 778, 1351, + 1352, 1353, 1029, 784, 1536, 1539, 685, 686, 687, 792, + 1011, 757, 793, 811, 758, 3, 812, 1012, 826, 1013, + 1014, 1015, 1199, 813, 814, 759, 817, 837, 823, 14, + 825, 301, 302, 303, 1162, 1163, 1164, 1165, 668, 676, + 827, 1213, 677, 1214, 828, 829, 830, 4, 5, 6, + 7, 8, 831, 833, 854, 834, 838, 846, 1016, 1017, + 1018, 847, 28, 29, 30, 31, 32, 33, 34, 9, + 10, 856, 1223, 907, 1544, 305, 908, 306, 35, 1182, + 850, 307, 308, 912, 1183, 911, 11, 12, 13, 14, + 913, 914, 915, 15, 16, 916, 939, 821, 821, 17, + 940, 971, 18, 1320, 1019, 1020, 1021, 952, 1022, 19, + 20, 1023, 953, 28, 29, 30, 31, 32, 33, 34, + 1344, 1345, 1273, 678, 958, 959, 960, 1336, 978, 35, + 961, 962, 3, 110, 979, 1002, 963, 1341, 964, 965, + 966, 967, 968, 110, 110, 110, 110, 1032, 969, 1375, + 305, 669, 306, 110, 110, 110, 307, 308, 986, 972, + 973, 977, 1008, 1041, 21, 22, 1042, 23, 24, 25, + 1036, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 1049, 1051, 1426, 1053, 1054, 1290, 420, 1067, 1066, 35, + 1088, 1055, 1362, 14, 1068, 1089, 1069, 1070, 1071, 1365, + 1072, 1366, 1073, 670, 1297, 1298, 671, 1074, 1080, 1086, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, + 1090, 1314, 1091, 1317, 305, 1321, 306, 1094, 1139, 1144, + 743, 308, 1153, 1154, 1155, 1187, 1184, 1436, 1193, 1194, + 1209, 1242, 1195, 1422, 1335, 1196, 1414, 1197, 1250, 1200, + 1416, 3, 1243, 1241, 1248, 28, 29, 30, 31, 32, + 33, 34, 1244, 1245, 1246, 1386, 1024, 1247, 1431, 1251, + 794, 35, 1252, 1256, 1259, 1260, 1261, 28, 29, 30, + 31, 32, 33, 34, 1262, 1355, 1270, 672, 3, 941, + 9, 10, 1274, 35, 1272, 1292, 1276, 1293, 1277, 1294, + 1328, 1327, 1329, 1330, 1367, 1331, 493, 1333, 1334, 1337, + 14, 668, 1338, 1369, 1182, 1342, 1343, 660, 1346, 1183, + 1373, 1374, 648, 552, 649, 1363, 1184, 650, 651, 1473, + 1364, 1368, 1377, 1475, 1370, 1371, 1380, 1384, 1376, 1387, + 1388, 1389, 1404, 1390, 1391, 1392, 1393, 1515, 1410, 1394, + 941, 1395, 1396, 1397, 1398, 68, 69, 1399, 70, 1400, + 1401, 1402, 1406, 127, 1403, 1405, 128, 1407, 1408, 1409, + 129, 130, 131, 132, 133, 1411, 134, 135, 136, 137, + 1511, 138, 139, 1412, 1420, 140, 141, 142, 143, 1417, + 1424, 99, 144, 145, 28, 29, 30, 31, 32, 33, + 34, 146, 1425, 147, 652, 96, 1428, 1430, 97, 1433, + 35, 1442, 1429, 1538, 1437, 1435, 1441, 1438, 148, 149, + 150, 1439, 1440, 1583, 669, 1445, 1443, 1594, 1444, 14, + 1552, 98, 99, 1447, 1449, 1448, 100, 1182, 101, 1453, + 1454, 661, 1183, 649, 662, 102, 650, 651, 1450, 1451, + 1452, 1455, 1456, 151, 1457, 301, 302, 303, 1458, 1459, + 1460, 1461, 103, 1462, 1463, 1464, 14, 1465, 1466, 486, + 487, 1467, 1468, 1470, 1471, 1477, 670, 104, 1481, 671, + 941, 1485, 1491, 1480, 1492, 1493, 1486, 1487, 1488, 1494, + 28, 29, 30, 31, 32, 33, 34, 1509, 1512, 937, + 1596, 1595, 1513, 1555, 1516, 1554, 35, 1563, 1585, 153, + 154, 155, 1517, 28, 29, 30, 31, 32, 33, 34, + 1518, 1582, 941, 663, 1584, 1586, 1588, 1591, 1597, 35, + 1592, 1593, 1600, 316, 1522, 1602, 543, 161, 706, 1528, + 1522, 1531, 631, 1535, 1003, 1528, 1522, 1531, 1361, 982, + 28, 29, 30, 31, 32, 33, 34, 1339, 163, 1201, + 1238, 1360, 68, 69, 832, 70, 35, 1528, 1522, 1531, + 127, 1257, 198, 128, 1140, 801, 1258, 129, 130, 131, + 132, 133, 581, 134, 135, 136, 137, 1291, 138, 139, + 1191, 938, 140, 141, 142, 143, 1484, 1326, 99, 144, + 145, 975, 1152, 1156, 94, 240, 1332, 769, 146, 1007, + 147, 0, 714, 28, 29, 30, 31, 32, 33, 34, + 0, 0, 0, 1446, 0, 148, 149, 150, 665, 35, + 1590, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, + 306, 0, 0, 0, 307, 308, 0, 158, 0, 0, + 151, 0, 301, 302, 303, 0, 0, 68, 69, 0, + 70, 0, 0, 0, 3, 127, 486, 487, 128, 0, + 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, + 136, 137, 0, 138, 139, 0, 0, 140, 141, 142, + 143, 0, 0, 99, 144, 145, 0, 0, 0, 0, + 0, 0, 0, 146, 0, 147, 153, 154, 155, 217, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 148, 149, 150, 0, 269, 270, 271, 0, 272, 273, + 274, 275, 0, 276, 277, 194, 0, 278, 279, 280, + 281, 1097, 0, 0, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 151, 0, 301, 302, 303, + 1098, 1099, 0, 1100, 1101, 1102, 1103, 1104, 1105, 0, + 1106, 1107, 0, 1108, 1109, 1110, 1111, 1112, 0, 622, + 128, 623, 0, 0, 129, 130, 131, 132, 133, 0, + 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, + 141, 142, 143, 0, 0, 99, 144, 145, 0, 0, + 0, 153, 154, 155, 0, 146, 0, 147, 1229, 0, + 1230, 1231, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 148, 149, 150, 156, 0, 0, 0, 11, + 12, 13, 14, 0, 0, 488, 0, 306, 0, 0, + 0, 743, 308, 0, 158, 68, 69, 0, 70, 0, + 0, 0, 0, 127, 0, 0, 128, 151, 0, 0, + 129, 130, 131, 132, 133, 0, 134, 135, 136, 137, + 0, 138, 139, 0, 0, 140, 141, 142, 143, 0, + 0, 99, 144, 145, 0, 0, 0, 0, 0, 0, + 0, 146, 0, 147, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 149, + 150, 0, 0, 0, 0, 0, 28, 29, 30, 31, + 32, 33, 34, 0, 0, 0, 1232, 0, 0, 0, + 156, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 488, 0, 306, 151, 152, 0, 307, 308, 0, 158, + 0, 0, 0, 0, 0, 0, 0, 0, 1113, 1114, + 0, 1115, 1116, 1117, 1011, 1118, 1119, 0, 0, 1120, + 1121, 1012, 1122, 1013, 1014, 1015, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 68, 69, + 0, 70, 1016, 1017, 1018, 0, 127, 0, 0, 128, + 0, 0, 0, 129, 130, 131, 132, 133, 0, 134, + 135, 136, 137, 1137, 138, 139, 14, 0, 140, 141, + 142, 143, 156, 0, 99, 144, 145, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 147, 0, 1019, 1020, + 1021, 158, 1022, 0, 0, 1023, 0, 0, 0, 0, + 0, 148, 149, 150, 0, 989, 0, 68, 69, 0, + 70, 0, 0, 0, 0, 127, 0, 0, 128, 0, + 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, + 136, 137, 0, 138, 139, 0, 151, 140, 141, 142, + 143, 0, 0, 99, 144, 145, 0, 0, 0, 0, + 990, 0, 0, 146, 0, 147, 0, 0, 156, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, + 148, 149, 150, 0, 0, 0, 0, 158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 68, 69, 0, 70, 151, 152, 0, 0, 127, + 0, 0, 128, 0, 0, 0, 129, 130, 131, 132, + 133, 0, 134, 135, 136, 137, 0, 138, 139, 0, + 0, 140, 141, 142, 143, 0, 0, 99, 144, 145, + 0, 0, 0, 0, 0, 0, 0, 146, 0, 147, + 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 153, 154, 155, 148, 149, 150, 0, 0, 0, + 68, 69, 0, 70, 0, 0, 0, 0, 127, 0, + 0, 128, 0, 0, 0, 129, 130, 131, 132, 133, + 0, 134, 135, 136, 137, 0, 138, 139, 0, 151, + 140, 141, 142, 143, 0, 0, 99, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 146, 0, 147, 0, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 0, 148, 149, 150, 0, 0, 0, 0, + 158, 0, 0, 68, 69, 0, 70, 0, 0, 0, + 0, 127, 0, 0, 128, 153, 154, 155, 129, 130, + 131, 132, 133, 0, 134, 135, 136, 137, 589, 138, + 139, 0, 0, 140, 141, 142, 143, 0, 0, 99, + 144, 145, 0, 0, 0, 0, 0, 0, 0, 698, + 156, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 211, 0, 0, 0, 0, 0, 148, 149, 150, 158, + 0, 0, 68, 69, 0, 70, 0, 0, 0, 0, + 127, 0, 0, 128, 153, 154, 155, 129, 130, 131, + 132, 133, 0, 134, 135, 136, 137, 0, 138, 139, + 0, 151, 140, 141, 142, 143, 0, 0, 99, 144, + 145, 0, 0, 0, 0, 0, 0, 0, 146, 68, + 147, 0, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 148, 149, 150, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 211, 0, 0, 153, 154, 155, + 0, 0, 0, 158, 0, 0, 266, 128, 267, 0, + 772, 129, 130, 131, 132, 133, 0, 134, 135, 136, + 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, + 0, 0, 0, 144, 145, 0, 0, 0, 0, 0, + 0, 0, 146, 0, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 148, + 149, 150, 0, 211, 0, 0, 153, 154, 155, 917, + 918, 919, 158, 920, 921, 922, 923, 0, 924, 925, + 194, 0, 926, 927, 928, 929, 0, 0, 0, 930, + 931, 0, 0, 0, 151, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 0, 0, + 0, 0, 8, 0, 0, 0, 377, 378, 379, 380, + 381, 382, 0, 0, 68, 0, 156, 70, 0, 0, + 9, 10, 0, 0, 0, 0, 211, 3, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 11, 12, 13, + 14, 0, 0, 0, 128, 0, 0, 932, 383, 0, + 131, 132, 133, 0, 134, 135, 136, 137, 0, 138, + 139, 0, 384, 140, 141, 142, 143, 0, 0, 0, + 1322, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 0, 385, 386, 1011, + 0, 0, 0, 0, 158, 0, 1012, 0, 1013, 1014, + 1015, 0, 0, 0, 0, 0, 0, 0, 0, 1323, + 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, + 34, 0, 0, 387, 388, 0, 0, 0, 1324, 0, + 35, 0, 0, 0, 0, 0, 0, 1016, 1017, 1018, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 0, 0, 0, 0, 8, 0, 156, + 0, 377, 378, 379, 380, 381, 382, 68, 0, 0, + 70, 0, 0, 0, 0, 9, 10, 0, 158, 0, + 3, 0, 0, 1019, 1020, 1021, 0, 1022, 0, 0, + 1023, 0, 11, 12, 13, 14, 0, 0, 0, 0, + 0, 0, 0, 383, 0, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 128, 0, 0, 384, 129, 130, + 131, 132, 133, 35, 134, 135, 136, 137, 0, 138, + 139, 0, 0, 140, 141, 142, 143, 0, 0, 0, + 144, 145, 0, 0, 0, 0, 0, 0, 0, 146, + 0, 147, 385, 386, 0, 0, 0, 0, 0, 0, + 0, 0, 1566, 0, 0, 0, 148, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 1567, 0, 28, + 29, 30, 31, 32, 33, 34, 0, 0, 387, 799, + 0, 0, 0, 1568, 0, 35, 0, 0, 0, 0, + 0, 151, 1569, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 1570, 1571, 1572, 1573, + 8, 0, 0, 0, 377, 378, 379, 380, 381, 382, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, + 0, 0, 0, 0, 0, 1427, 0, 0, 1574, 1575, + 1576, 1577, 1578, 1579, 1580, 11, 12, 13, 14, 0, + 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, + 384, 129, 130, 131, 132, 133, 0, 134, 135, 136, + 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, + 453, 0, 0, 144, 145, 0, 0, 0, 0, 0, + 0, 0, 146, 0, 147, 385, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 149, 150, 0, 454, 0, 455, 456, 457, 458, 0, + 0, 0, 28, 29, 30, 31, 32, 33, 34, 0, + 0, 387, 1006, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 459, 460, 461, 462, 0, 0, 463, 0, + 0, 0, 464, 465, 466, 0, 156, 128, 0, 0, + 0, 129, 130, 131, 132, 133, 782, 134, 135, 136, + 137, 0, 138, 139, 0, 158, 140, 141, 142, 143, + 0, 0, 1581, 144, 145, 0, 0, 0, 0, 3, + 0, 0, 146, 0, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 148, + 149, 150, 129, 130, 131, 132, 133, 0, 134, 135, + 136, 137, 0, 138, 139, 0, 0, 140, 141, 142, + 143, 0, 0, 0, 144, 145, 0, 0, 0, 0, + 0, 0, 0, 146, 151, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 858, 467, 0, 0, 0, + 148, 149, 150, 0, 0, 0, 0, 0, 0, 859, + 0, 0, 0, 0, 860, 861, 0, 862, 863, 864, + 865, 866, 867, 0, 868, 869, 0, 870, 871, 872, + 873, 874, 0, 0, 0, 151, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 0, 0, 0, 0, 68, 69, 0, 70, 156, + 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, + 0, 0, 0, 875, 0, 876, 0, 0, 158, 0, + 877, 0, 0, 0, 0, 0, 0, 9, 10, 317, + 0, 0, 0, 0, 0, 0, 878, 0, 0, 0, + 0, 0, 0, 0, 11, 12, 13, 14, 3, 0, + 0, 15, 16, 0, 0, 0, 0, 17, 318, 0, + 18, 0, 319, 0, 0, 320, 321, 19, 20, 879, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 0, 0, 0, 0, 0, 334, 0, + 0, 335, 0, 0, 3, 0, 0, 556, 336, 0, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, + 0, 0, 21, 22, 0, 23, 24, 25, 158, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, + 0, 544, 0, 556, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 156, 881, 882, 883, 884, 885, 886, 887, 888, 889, + 890, 891, 892, 893, 894, 895, 896, 897, 0, 158, + 0, 898, 0, 0, 557, 0, 6, 7, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, + 0, 0, 0, 559, 0, 0, 9, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 899, 11, 12, 13, 14, 0, 560, 561, + 557, 0, 6, 7, 8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 558, 0, 0, 0, 562, 559, + 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 858, 0, 0, 11, + 12, 13, 14, 0, 560, 561, 0, 0, 0, 0, + 859, 0, 0, 563, 564, 860, 861, 0, 862, 863, + 864, 865, 866, 867, 562, 868, 869, 0, 870, 871, + 872, 873, 874, 0, 0, 0, 0, 0, 0, 0, + 28, 29, 30, 31, 32, 33, 34, 0, 0, 0, + 565, 0, 0, 0, 0, 0, 35, 0, 0, 563, + 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 875, 0, 876, 0, 0, 0, + 0, 877, 0, 0, 0, 0, 28, 29, 30, 31, + 32, 33, 34, 0, 0, 0, 1218, 878, 0, 917, + 918, 919, 35, 920, 921, 922, 923, 0, 924, 925, + 194, 0, 926, 927, 928, 929, 0, 343, 98, 930, + 931, 0, 0, 100, 0, 101, 0, 0, 0, 0, + 879, 0, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 344, 0, 345, 346, 347, 348, 349, 0, 0, 0, + 0, 350, 0, 0, 104, 0, 0, 0, 0, 0, + 351, 0, 0, 0, 0, 352, 0, 353, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 932, 0, 354, + 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, + 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 880, 0, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, + 0, 0, 898 +}; + +static const yytype_int16 yycheck[] = +{ + 5, 1, 25, 428, 164, 430, 23, 24, 14, 103, + 104, 1, 1, 156, 25, 20, 712, 1, 25, 25, + 342, 342, 342, 28, 29, 30, 31, 43, 1, 94, + 697, 1, 48, 57, 490, 906, 1036, 1176, 25, 780, + 396, 10, 186, 59, 1067, 520, 521, 522, 6, 7, + 793, 9, 10, 8, 9, 8, 6, 7, 10, 9, + 21, 10, 13, 57, 6, 7, 198, 9, 93, 21, + 164, 10, 6, 7, 10, 9, 111, 8, 8, 111, + 6, 7, 10, 9, 10, 108, 9, 512, 513, 77, + 64, 185, 42, 8, 137, 21, 792, 6, 7, 105, + 9, 1155, 216, 34, 137, 170, 129, 10, 42, 114, + 10, 116, 117, 118, 6, 7, 42, 9, 105, 213, + 9, 64, 45, 20, 6, 7, 8, 9, 10, 152, + 6, 7, 14, 9, 8, 21, 22, 1208, 10, 146, + 6, 7, 149, 9, 9, 6, 7, 29, 9, 167, + 10, 157, 157, 158, 10, 11, 10, 182, 164, 299, + 42, 1474, 169, 295, 106, 107, 108, 21, 233, 6, + 7, 195, 9, 9, 60, 10, 181, 189, 190, 191, + 192, 193, 10, 199, 66, 67, 209, 73, 65, 10, + 11, 12, 10, 10, 12, 10, 939, 940, 186, 10, + 11, 206, 207, 10, 11, 211, 211, 10, 11, 234, + 137, 32, 33, 10, 32, 33, 9, 692, 574, 10, + 11, 12, 6, 7, 292, 9, 112, 113, 971, 234, + 6, 294, 300, 9, 10, 240, 66, 67, 301, 1454, + 1294, 32, 33, 268, 8, 1460, 228, 407, 298, 126, + 299, 294, 45, 288, 261, 399, 288, 6, 7, 6, + 9, 294, 9, 268, 739, 1336, 248, 299, 218, 285, + 34, 274, 158, 1462, 8, 298, 294, 1492, 160, 161, + 162, 12, 287, 306, 218, 1598, 291, 1461, 216, 294, + 295, 296, 218, 1459, 299, 300, 290, 293, 40, 304, + 216, 32, 33, 310, 300, 1494, 1002, 66, 67, 1052, + 52, 53, 251, 252, 253, 340, 316, 411, 6, 1493, + 294, 9, 10, 292, 88, 1491, 316, 316, 70, 10, + 1469, 300, 316, 292, 1030, 296, 222, 223, 293, 298, + 291, 294, 342, 316, 290, 410, 316, 1370, 300, 304, + 308, 294, 342, 342, 13, 305, 305, 299, 342, 301, + 296, 386, 61, 305, 306, 292, 1505, 298, 298, 342, + 290, 305, 342, 296, 300, 290, 851, 294, 120, 305, + 295, 293, 294, 300, 409, 408, 410, 404, 405, 294, + 299, 6, 7, 296, 9, 300, 296, 294, 414, 14, + 295, 407, 408, 298, 293, 291, 412, 299, 473, 426, + 307, 399, 25, 26, 402, 290, 290, 299, 406, 305, + 299, 295, 35, 299, 296, 412, 305, 42, 293, 298, + 905, 295, 216, 299, 295, 299, 296, 52, 6, 7, + 296, 9, 442, 443, 444, 445, 14, 435, 290, 472, + 594, 476, 442, 442, 443, 444, 445, 1480, 602, 208, + 292, 296, 299, 468, 296, 470, 296, 294, 296, 6, + 7, 290, 9, 300, 42, 296, 482, 45, 296, 296, + 290, 296, 488, 488, 52, 296, 942, 293, 294, 296, + 1157, 377, 497, 379, 511, 589, 513, 383, 1239, 296, + 517, 290, 294, 528, 295, 290, 531, 532, 300, 1509, + 295, 293, 294, 399, 290, 580, 402, 403, 6, 7, + 406, 9, 24, 528, 294, 27, 28, 29, 30, 295, + 32, 33, 34, 419, 420, 271, 422, 293, 424, 564, + 6, 7, 295, 9, 295, 160, 161, 162, 14, 47, + 292, 49, 50, 51, 440, 441, 52, 293, 581, 6, + 7, 303, 9, 299, 137, 6, 7, 14, 9, 634, + 306, 596, 137, 29, 30, 137, 42, 307, 106, 107, + 108, 586, 587, 120, 121, 137, 651, 1330, 1331, 10, + 11, 12, 160, 161, 162, 42, 296, 295, 45, 295, + 625, 299, 488, 299, 13, 52, 594, 630, 64, 137, + 296, 32, 33, 629, 602, 139, 140, 503, 1489, 643, + 625, 295, 508, 509, 510, 299, 512, 295, 514, 515, + 516, 299, 296, 777, 62, 76, 77, 6, 7, 305, + 9, 295, 658, 659, 632, 14, 295, 295, 664, 295, + 666, 299, 24, 299, 296, 27, 28, 29, 30, 545, + 32, 33, 34, 139, 140, 670, 6, 7, 1364, 9, + 300, 676, 766, 42, 560, 561, 292, 293, 772, 298, + 1423, 1003, 1003, 1003, 299, 295, 709, 1430, 292, 6, + 7, 698, 9, 579, 160, 161, 162, 9, 714, 585, + 6, 7, 588, 9, 10, 292, 293, 712, 725, 296, + 715, 296, 717, 160, 161, 162, 602, 300, 15, 708, + 221, 18, 294, 295, 106, 107, 108, 750, 296, 1425, + 26, 299, 292, 293, 74, 291, 76, 77, 763, 764, + 765, 1053, 1054, 83, 41, 42, 632, 203, 204, 46, + 206, 48, 817, 603, 604, 605, 761, 10, 55, 12, + 765, 295, 295, 295, 769, 770, 771, 299, 791, 295, + 1513, 299, 795, 301, 295, 72, 295, 305, 306, 32, + 33, 893, 894, 669, 101, 102, 103, 792, 290, 777, + 87, 160, 161, 162, 41, 295, 295, 814, 295, 46, + 299, 48, 688, 10, 306, 295, 295, 300, 55, 126, + 299, 1554, 295, 825, 802, 827, 828, 829, 830, 831, + 27, 28, 29, 811, 295, 72, 295, 76, 77, 78, + 299, 295, 40, 299, 295, 299, 722, 723, 724, 299, + 87, 906, 1585, 908, 52, 53, 295, 300, 291, 854, + 915, 856, 299, 295, 290, 295, 295, 1600, 294, 1555, + 746, 747, 70, 112, 113, 114, 27, 28, 29, 30, + 19, 23, 24, 25, 304, 27, 28, 29, 30, 295, + 32, 33, 34, 299, 36, 37, 38, 39, 913, 295, + 295, 43, 44, 299, 299, 295, 782, 295, 784, 906, + 786, 1597, 788, 220, 295, 222, 223, 224, 225, 295, + 295, 295, 120, 295, 299, 903, 802, 299, 295, 301, + 293, 19, 299, 305, 306, 296, 812, 813, 295, 56, + 299, 58, 59, 60, 306, 26, 27, 28, 29, 30, + 8, 290, 295, 295, 1009, 934, 299, 299, 834, 8, + 836, 837, 106, 107, 108, 293, 981, 945, 983, 111, + 41, 296, 0, 296, 850, 46, 295, 48, 20, 295, + 299, 292, 995, 299, 55, 296, 301, 988, 1001, 209, + 985, 19, 26, 27, 28, 29, 30, 992, 20, 292, + 295, 72, 73, 296, 299, 295, 295, 1002, 295, 299, + 299, 1144, 295, 1003, 1004, 1005, 87, 1007, 295, 295, + 1035, 295, 1037, 1003, 1003, 1004, 1005, 296, 1007, 1003, + 906, 170, 171, 172, 173, 1030, 1091, 106, 107, 108, + 1003, 1004, 1005, 1003, 1004, 1005, 21, 118, 302, 295, + 76, 77, 78, 299, 1049, 194, 195, 196, 197, 294, + 293, 937, 293, 298, 27, 28, 29, 30, 111, 1219, + 1220, 1221, 1222, 290, 290, 1053, 1054, 290, 290, 1229, + 1230, 1231, 226, 304, 1499, 1500, 112, 113, 114, 20, + 40, 289, 295, 63, 292, 19, 63, 47, 300, 49, + 50, 51, 978, 295, 295, 303, 295, 213, 296, 197, + 296, 106, 107, 108, 27, 28, 29, 30, 42, 207, + 296, 997, 210, 999, 296, 296, 296, 155, 156, 157, + 158, 159, 296, 296, 216, 304, 298, 298, 88, 89, + 90, 298, 281, 282, 283, 284, 285, 286, 287, 177, + 178, 216, 291, 296, 296, 299, 293, 301, 297, 105, + 295, 305, 306, 291, 110, 298, 194, 195, 196, 197, + 293, 9, 298, 201, 202, 291, 295, 1053, 1054, 207, + 295, 295, 210, 1180, 134, 135, 136, 296, 138, 217, + 218, 141, 296, 281, 282, 283, 284, 285, 286, 287, + 1215, 1216, 1078, 291, 296, 296, 296, 1202, 295, 297, + 296, 296, 19, 1209, 40, 20, 296, 1212, 296, 296, + 296, 296, 296, 1219, 1220, 1221, 1222, 300, 296, 1284, + 299, 155, 301, 1229, 1230, 1231, 305, 306, 302, 296, + 296, 296, 296, 296, 272, 273, 293, 275, 276, 277, + 300, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 20, 296, 1346, 293, 293, 1141, 299, 304, 295, 297, + 243, 296, 1250, 197, 295, 235, 296, 296, 295, 1257, + 295, 1259, 296, 207, 1160, 1161, 210, 296, 296, 295, + 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, + 247, 1177, 295, 1179, 299, 1181, 301, 23, 296, 298, + 305, 306, 291, 298, 290, 302, 1295, 1372, 296, 296, + 197, 304, 296, 1338, 1200, 296, 1323, 296, 137, 295, + 1325, 19, 304, 295, 295, 281, 282, 283, 284, 285, + 286, 287, 300, 300, 300, 291, 296, 300, 1363, 300, + 21, 297, 300, 296, 63, 63, 296, 281, 282, 283, + 284, 285, 286, 287, 296, 1241, 9, 291, 19, 1364, + 177, 178, 250, 297, 296, 295, 299, 295, 299, 290, + 296, 300, 296, 295, 1260, 295, 167, 296, 296, 296, + 197, 42, 293, 1269, 105, 300, 300, 85, 256, 110, + 1276, 1277, 209, 301, 211, 293, 1385, 214, 215, 1424, + 20, 296, 1288, 1426, 304, 298, 1292, 1293, 300, 291, + 300, 300, 296, 1299, 1300, 1301, 1302, 1482, 9, 300, + 1425, 300, 300, 300, 300, 6, 7, 300, 9, 300, + 300, 300, 296, 14, 300, 300, 17, 296, 300, 296, + 21, 22, 23, 24, 25, 296, 27, 28, 29, 30, + 1475, 32, 33, 300, 296, 36, 37, 38, 39, 302, + 293, 42, 43, 44, 281, 282, 283, 284, 285, 286, + 287, 52, 20, 54, 291, 15, 296, 295, 18, 9, + 297, 304, 296, 1500, 300, 1371, 296, 300, 69, 70, + 71, 300, 1378, 1558, 155, 296, 304, 1591, 304, 197, + 1507, 41, 42, 295, 300, 295, 46, 105, 48, 295, + 295, 209, 110, 211, 212, 55, 214, 215, 300, 300, + 300, 295, 295, 104, 295, 106, 107, 108, 295, 295, + 295, 295, 72, 295, 295, 295, 197, 296, 295, 120, + 121, 9, 300, 296, 296, 301, 207, 87, 296, 210, + 1555, 300, 295, 304, 295, 295, 1442, 1443, 1444, 295, + 281, 282, 283, 284, 285, 286, 287, 296, 296, 299, + 1595, 1594, 295, 20, 296, 295, 297, 9, 295, 160, + 161, 162, 296, 281, 282, 283, 284, 285, 286, 287, + 296, 296, 1597, 291, 296, 295, 256, 104, 20, 297, + 296, 296, 295, 180, 1490, 296, 310, 25, 482, 1495, + 1496, 1497, 412, 1499, 774, 1501, 1502, 1503, 1249, 760, + 281, 282, 283, 284, 285, 286, 287, 1206, 25, 980, + 291, 1248, 6, 7, 643, 9, 297, 1523, 1524, 1525, + 14, 1040, 57, 17, 901, 600, 1042, 21, 22, 23, + 24, 25, 363, 27, 28, 29, 30, 1144, 32, 33, + 942, 709, 36, 37, 38, 39, 1438, 1185, 42, 43, + 44, 747, 908, 913, 10, 115, 1193, 562, 52, 778, + 54, -1, 494, 281, 282, 283, 284, 285, 286, 287, + -1, -1, -1, 291, -1, 69, 70, 71, 443, 297, + 1586, -1, -1, -1, -1, -1, -1, -1, 289, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, + 301, -1, -1, -1, 305, 306, -1, 308, -1, -1, + 104, -1, 106, 107, 108, -1, -1, 6, 7, -1, + 9, -1, -1, -1, 19, 14, 120, 121, 17, -1, + -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, + 29, 30, -1, 32, 33, -1, -1, 36, 37, 38, + 39, -1, -1, 42, 43, 44, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 54, 160, 161, 162, 8, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 69, 70, 71, -1, 23, 24, 25, -1, 27, 28, + 29, 30, -1, 32, 33, 34, -1, 36, 37, 38, + 39, 3, -1, -1, -1, -1, 45, -1, -1, -1, + -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, + 22, 23, -1, 25, 26, 27, 28, 29, 30, -1, + 32, 33, -1, 35, 36, 37, 38, 39, -1, 16, + 17, 18, -1, -1, 21, 22, 23, 24, 25, -1, + 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, + 37, 38, 39, -1, -1, 42, 43, 44, -1, -1, + -1, 160, 161, 162, -1, 52, -1, 54, 173, -1, + 175, 176, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 69, 70, 71, 289, -1, -1, -1, 194, + 195, 196, 197, -1, -1, 299, -1, 301, -1, -1, + -1, 305, 306, -1, 308, 6, 7, -1, 9, -1, + -1, -1, -1, 14, -1, -1, 17, 104, -1, -1, + 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, + -1, 32, 33, -1, -1, 36, 37, 38, 39, -1, + -1, 42, 43, 44, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, + 71, -1, -1, -1, -1, -1, 281, 282, 283, 284, + 285, 286, 287, -1, -1, -1, 291, -1, -1, -1, + 289, -1, 297, -1, -1, -1, -1, -1, -1, -1, + 299, -1, 301, 104, 105, -1, 305, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, 230, 231, + -1, 233, 234, 235, 40, 237, 238, -1, -1, 241, + 242, 47, 244, 49, 50, 51, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 160, + 161, 162, -1, -1, -1, -1, -1, -1, 6, 7, + -1, 9, 88, 89, 90, -1, 14, -1, -1, 17, + -1, -1, -1, 21, 22, 23, 24, 25, -1, 27, + 28, 29, 30, 305, 32, 33, 197, -1, 36, 37, + 38, 39, 289, -1, 42, 43, 44, -1, -1, -1, + -1, -1, -1, -1, 52, -1, 54, -1, 134, 135, + 136, 308, 138, -1, -1, 141, -1, -1, -1, -1, + -1, 69, 70, 71, -1, 73, -1, 6, 7, -1, + 9, -1, -1, -1, -1, 14, -1, -1, 17, -1, + -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, + 29, 30, -1, 32, 33, -1, 104, 36, 37, 38, + 39, -1, -1, 42, 43, 44, -1, -1, -1, -1, + 118, -1, -1, 52, -1, 54, -1, -1, 289, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, + 69, 70, 71, -1, -1, -1, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 160, 161, 162, -1, -1, -1, -1, -1, + -1, 6, 7, -1, 9, 104, 105, -1, -1, 14, + -1, -1, 17, -1, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, -1, 32, 33, -1, + -1, 36, 37, 38, 39, -1, -1, 42, 43, 44, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 54, + 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 160, 161, 162, 69, 70, 71, -1, -1, -1, + 6, 7, -1, 9, -1, -1, -1, -1, 14, -1, + -1, 17, -1, -1, -1, 21, 22, 23, 24, 25, + -1, 27, 28, 29, 30, -1, 32, 33, -1, 104, + 36, 37, 38, 39, -1, -1, 42, 43, 44, -1, + -1, -1, -1, -1, -1, -1, 52, -1, 54, -1, + -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 299, -1, 69, 70, 71, -1, -1, -1, -1, + 308, -1, -1, 6, 7, -1, 9, -1, -1, -1, + -1, 14, -1, -1, 17, 160, 161, 162, 21, 22, + 23, 24, 25, -1, 27, 28, 29, 30, 104, 32, + 33, -1, -1, 36, 37, 38, 39, -1, -1, 42, + 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, + 289, 54, -1, -1, -1, -1, -1, -1, -1, -1, + 299, -1, -1, -1, -1, -1, 69, 70, 71, 308, + -1, -1, 6, 7, -1, 9, -1, -1, -1, -1, + 14, -1, -1, 17, 160, 161, 162, 21, 22, 23, + 24, 25, -1, 27, 28, 29, 30, -1, 32, 33, + -1, 104, 36, 37, 38, 39, -1, -1, 42, 43, + 44, -1, -1, -1, -1, -1, -1, -1, 52, 6, + 54, -1, 9, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 19, -1, -1, 69, 70, 71, -1, -1, + -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 299, -1, -1, 160, 161, 162, + -1, -1, -1, 308, -1, -1, 16, 17, 18, -1, + 104, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, + -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, + -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, + -1, -1, -1, 289, -1, -1, -1, -1, -1, 69, + 70, 71, -1, 299, -1, -1, 160, 161, 162, 23, + 24, 25, 308, 27, 28, 29, 30, -1, 32, 33, + 34, -1, 36, 37, 38, 39, -1, -1, -1, 43, + 44, -1, -1, -1, 104, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, -1, -1, + -1, -1, 159, -1, -1, -1, 163, 164, 165, 166, + 167, 168, -1, -1, 6, -1, 289, 9, -1, -1, + 177, 178, -1, -1, -1, -1, 299, 19, -1, -1, + -1, -1, -1, -1, -1, 308, -1, 194, 195, 196, + 197, -1, -1, -1, 17, -1, -1, 111, 205, -1, + 23, 24, 25, -1, 27, 28, 29, 30, -1, 32, + 33, -1, 219, 36, 37, 38, 39, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 299, -1, 254, 255, 40, + -1, -1, -1, -1, 308, -1, 47, -1, 49, 50, + 51, -1, -1, -1, -1, -1, -1, -1, -1, 92, + -1, -1, -1, -1, 281, 282, 283, 284, 285, 286, + 287, -1, -1, 290, 291, -1, -1, -1, 111, -1, + 297, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, -1, -1, -1, -1, 159, -1, 289, + -1, 163, 164, 165, 166, 167, 168, 6, -1, -1, + 9, -1, -1, -1, -1, 177, 178, -1, 308, -1, + 19, -1, -1, 134, 135, 136, -1, 138, -1, -1, + 141, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, -1, 205, -1, -1, -1, 281, 282, 283, + 284, 285, 286, 287, 17, -1, -1, 219, 21, 22, + 23, 24, 25, 297, 27, 28, 29, 30, -1, 32, + 33, -1, -1, 36, 37, 38, 39, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 54, 254, 255, -1, -1, -1, -1, -1, -1, + -1, -1, 40, -1, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, 55, -1, 281, + 282, 283, 284, 285, 286, 287, -1, -1, 290, 291, + -1, -1, -1, 71, -1, 297, -1, -1, -1, -1, + -1, 104, 80, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 94, 95, 96, 97, + 159, -1, -1, -1, 163, 164, 165, 166, 167, 168, + -1, -1, -1, -1, -1, -1, -1, -1, 177, 178, + -1, -1, -1, -1, -1, 296, -1, -1, 126, 127, + 128, 129, 130, 131, 132, 194, 195, 196, 197, -1, + -1, -1, -1, -1, -1, -1, 205, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, + 219, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, + 40, -1, -1, 43, 44, -1, -1, -1, -1, -1, + -1, -1, 52, -1, 54, 254, 255, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, + 70, 71, -1, 73, -1, 75, 76, 77, 78, -1, + -1, -1, 281, 282, 283, 284, 285, 286, 287, -1, + -1, 290, 291, -1, -1, -1, -1, -1, 297, -1, + -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, + -1, -1, 112, 113, 114, 115, -1, -1, 118, -1, + -1, -1, 122, 123, 124, -1, 289, 17, -1, -1, + -1, 21, 22, 23, 24, 25, 299, 27, 28, 29, + 30, -1, 32, 33, -1, 308, 36, 37, 38, 39, + -1, -1, 290, 43, 44, -1, -1, -1, -1, 19, + -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 17, 69, + 70, 71, 21, 22, 23, 24, 25, -1, 27, 28, + 29, 30, -1, 32, 33, -1, -1, 36, 37, 38, + 39, -1, -1, -1, 43, 44, -1, -1, -1, -1, + -1, -1, -1, 52, 104, 54, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, 226, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, 17, + -1, -1, -1, -1, 22, 23, -1, 25, 26, 27, + 28, 29, 30, -1, 32, 33, -1, 35, 36, 37, + 38, 39, -1, -1, -1, 104, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, -1, -1, -1, -1, 6, 7, -1, 9, 289, + -1, -1, -1, -1, -1, 155, 156, 157, 158, 159, + -1, -1, -1, 81, -1, 83, -1, -1, 308, -1, + 88, -1, -1, -1, -1, -1, -1, 177, 178, 40, + -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, + -1, -1, -1, -1, 194, 195, 196, 197, 19, -1, + -1, 201, 202, -1, -1, -1, -1, 207, 69, -1, + 210, -1, 73, -1, -1, 76, 77, 217, 218, 137, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, -1, -1, -1, -1, -1, 99, -1, + -1, 102, -1, -1, 19, -1, -1, 68, 109, -1, + -1, -1, -1, -1, -1, -1, -1, 118, -1, 289, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, + -1, -1, 272, 273, -1, 275, 276, 277, 308, 279, + 280, 281, 282, 283, 284, 285, 286, 287, -1, -1, + -1, 291, -1, 68, -1, -1, -1, 297, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, + 289, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, -1, 308, + -1, 249, -1, -1, 155, -1, 157, 158, 159, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, + -1, -1, -1, 174, -1, -1, 177, 178, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 290, 194, 195, 196, 197, -1, 199, 200, + 155, -1, 157, 158, 159, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 169, -1, -1, -1, 219, 174, + -1, -1, 177, 178, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, -1, -1, 194, + 195, 196, 197, -1, 199, 200, -1, -1, -1, -1, + 17, -1, -1, 254, 255, 22, 23, -1, 25, 26, + 27, 28, 29, 30, 219, 32, 33, -1, 35, 36, + 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, + 281, 282, 283, 284, 285, 286, 287, -1, -1, -1, + 291, -1, -1, -1, -1, -1, 297, -1, -1, 254, + 255, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 81, -1, 83, -1, -1, -1, + -1, 88, -1, -1, -1, -1, 281, 282, 283, 284, + 285, 286, 287, -1, -1, -1, 291, 104, -1, 23, + 24, 25, 297, 27, 28, 29, 30, -1, 32, 33, + 34, -1, 36, 37, 38, 39, -1, 40, 41, 43, + 44, -1, -1, 46, -1, 48, -1, -1, -1, -1, + 137, -1, 55, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, + 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, -1, -1, -1, -1, 98, -1, 100, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, 112, + 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 227, -1, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, -1, + -1, -1, 249 +}; + +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ +static const yytype_int16 yystos[] = +{ + 0, 310, 0, 19, 155, 156, 157, 158, 159, 177, + 178, 194, 195, 196, 197, 201, 202, 207, 210, 217, + 218, 272, 273, 275, 276, 277, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 297, 311, 314, 320, 321, + 322, 323, 324, 325, 332, 334, 335, 337, 338, 339, + 340, 341, 342, 361, 379, 383, 405, 406, 461, 464, + 470, 471, 472, 476, 485, 488, 493, 216, 6, 7, + 9, 315, 316, 299, 365, 65, 126, 407, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 469, 469, 9, 15, 18, 41, 42, + 46, 48, 55, 72, 87, 295, 326, 366, 367, 368, + 369, 298, 299, 274, 473, 216, 477, 494, 216, 316, + 10, 317, 317, 10, 11, 318, 318, 14, 17, 21, + 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, + 36, 37, 38, 39, 43, 44, 52, 54, 69, 70, + 71, 104, 105, 160, 161, 162, 289, 299, 308, 316, + 322, 323, 369, 370, 428, 451, 452, 457, 458, 290, + 316, 316, 316, 316, 8, 13, 414, 415, 414, 414, + 290, 343, 61, 344, 290, 384, 390, 24, 27, 28, + 29, 30, 32, 33, 34, 290, 306, 408, 411, 413, + 414, 317, 290, 290, 290, 290, 490, 294, 317, 362, + 315, 299, 369, 428, 451, 453, 457, 8, 34, 298, + 313, 293, 295, 295, 47, 49, 50, 51, 367, 367, + 327, 370, 453, 298, 457, 295, 317, 317, 208, 316, + 477, 101, 102, 103, 126, 220, 222, 223, 224, 225, + 316, 76, 77, 316, 316, 457, 27, 28, 29, 30, + 451, 52, 451, 25, 26, 35, 16, 18, 457, 23, + 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, + 38, 39, 45, 313, 412, 413, 416, 218, 305, 316, + 369, 308, 316, 317, 137, 137, 137, 366, 367, 137, + 307, 106, 107, 108, 137, 299, 301, 305, 306, 312, + 451, 313, 296, 13, 296, 296, 310, 40, 69, 73, + 76, 77, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 99, 102, 109, 118, 316, 453, + 62, 345, 346, 40, 73, 75, 76, 77, 78, 79, + 84, 93, 98, 100, 112, 113, 114, 115, 116, 117, + 118, 119, 125, 367, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 163, 164, 165, + 166, 167, 168, 205, 219, 254, 255, 290, 291, 314, + 315, 321, 332, 389, 391, 392, 393, 394, 396, 397, + 405, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 461, 471, 305, 295, + 299, 410, 295, 410, 295, 410, 295, 410, 295, 410, + 295, 410, 295, 409, 411, 295, 414, 296, 8, 9, + 293, 304, 478, 486, 491, 495, 74, 76, 77, 83, + 316, 316, 300, 40, 73, 75, 76, 77, 78, 112, + 113, 114, 115, 118, 122, 123, 124, 226, 457, 298, + 218, 316, 367, 295, 298, 295, 290, 295, 292, 9, + 317, 317, 296, 290, 295, 313, 120, 121, 299, 316, + 386, 453, 300, 167, 474, 316, 221, 137, 451, 26, + 316, 453, 295, 295, 27, 28, 29, 30, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 414, 316, + 300, 300, 300, 316, 317, 316, 316, 316, 457, 316, + 316, 295, 295, 316, 21, 300, 317, 459, 460, 446, + 447, 457, 291, 312, 291, 295, 76, 77, 78, 112, + 113, 114, 301, 350, 347, 453, 68, 155, 169, 174, + 199, 200, 219, 254, 255, 291, 314, 321, 332, 342, + 360, 361, 371, 375, 383, 405, 461, 471, 489, 295, + 295, 387, 317, 317, 317, 299, 111, 288, 299, 104, + 453, 304, 198, 295, 390, 56, 58, 59, 60, 395, + 398, 399, 400, 401, 402, 403, 315, 317, 392, 315, + 317, 317, 318, 12, 32, 33, 295, 318, 319, 315, + 317, 366, 16, 18, 369, 457, 453, 88, 313, 413, + 367, 327, 295, 414, 295, 317, 317, 317, 317, 318, + 319, 319, 291, 293, 315, 296, 317, 317, 209, 211, + 214, 215, 291, 321, 332, 461, 479, 481, 482, 484, + 85, 209, 212, 291, 475, 481, 483, 487, 42, 155, + 207, 210, 291, 321, 332, 492, 207, 210, 291, 321, + 332, 496, 76, 77, 78, 112, 113, 114, 295, 295, + 316, 316, 300, 457, 313, 465, 466, 290, 52, 453, + 462, 463, 8, 293, 296, 296, 326, 328, 329, 301, + 359, 445, 20, 336, 475, 137, 316, 20, 66, 67, + 467, 317, 295, 295, 295, 295, 317, 317, 317, 318, + 317, 319, 318, 319, 317, 317, 317, 318, 296, 300, + 452, 452, 452, 305, 453, 453, 21, 293, 300, 302, + 293, 317, 40, 52, 53, 70, 120, 289, 292, 303, + 351, 352, 355, 293, 111, 372, 376, 317, 317, 490, + 111, 288, 104, 453, 290, 290, 290, 390, 290, 317, + 313, 385, 299, 457, 304, 317, 299, 316, 299, 316, + 317, 367, 20, 295, 21, 387, 448, 449, 450, 291, + 453, 395, 57, 392, 404, 315, 317, 392, 404, 404, + 404, 63, 63, 295, 295, 316, 453, 295, 414, 457, + 315, 317, 444, 296, 313, 296, 300, 296, 296, 296, + 296, 296, 409, 296, 304, 9, 293, 213, 298, 305, + 317, 480, 298, 313, 414, 414, 298, 298, 414, 414, + 295, 216, 317, 316, 216, 316, 216, 317, 3, 17, + 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, + 35, 36, 37, 38, 39, 81, 83, 88, 104, 137, + 227, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 249, 290, + 381, 382, 454, 64, 363, 300, 298, 296, 293, 328, + 9, 298, 291, 293, 9, 298, 291, 23, 24, 25, + 27, 28, 29, 30, 32, 33, 36, 37, 38, 39, + 43, 44, 111, 321, 330, 412, 417, 299, 446, 295, + 295, 316, 386, 29, 30, 64, 203, 204, 206, 414, + 316, 316, 296, 296, 317, 317, 317, 318, 296, 296, + 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, + 452, 295, 296, 296, 317, 460, 457, 296, 295, 40, + 353, 354, 352, 295, 316, 357, 302, 453, 453, 73, + 118, 316, 453, 73, 118, 367, 316, 299, 316, 299, + 316, 367, 20, 346, 373, 377, 291, 491, 296, 137, + 385, 40, 47, 49, 50, 51, 88, 89, 90, 134, + 135, 136, 138, 141, 296, 251, 252, 253, 317, 226, + 380, 317, 300, 317, 317, 293, 300, 457, 386, 448, + 457, 296, 293, 315, 317, 315, 317, 317, 318, 20, + 313, 296, 295, 293, 293, 296, 296, 410, 410, 410, + 410, 410, 410, 317, 317, 317, 295, 304, 295, 296, + 296, 295, 295, 296, 296, 317, 452, 316, 64, 316, + 296, 26, 27, 28, 29, 30, 295, 455, 243, 235, + 247, 295, 228, 248, 23, 455, 455, 3, 22, 23, + 25, 26, 27, 28, 29, 30, 32, 33, 35, 36, + 37, 38, 39, 230, 231, 233, 234, 235, 237, 238, + 241, 242, 244, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 305, 456, 296, + 415, 299, 305, 315, 298, 364, 29, 313, 317, 451, + 467, 468, 465, 291, 298, 290, 462, 290, 295, 313, + 299, 299, 27, 28, 29, 30, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 295, 299, 295, 299, + 295, 299, 105, 110, 321, 331, 317, 302, 448, 448, + 359, 445, 315, 296, 296, 296, 296, 296, 448, 317, + 295, 354, 453, 348, 349, 453, 293, 356, 316, 197, + 322, 316, 457, 317, 317, 293, 457, 386, 291, 170, + 171, 172, 173, 291, 314, 321, 332, 374, 471, 173, + 175, 176, 291, 314, 321, 332, 378, 471, 291, 313, + 296, 295, 304, 304, 300, 300, 300, 300, 295, 386, + 137, 300, 300, 453, 364, 453, 296, 380, 450, 63, + 63, 296, 296, 316, 296, 448, 444, 444, 9, 293, + 9, 480, 296, 317, 250, 313, 299, 299, 26, 27, + 28, 29, 30, 271, 293, 299, 306, 291, 292, 300, + 317, 416, 295, 295, 290, 330, 328, 317, 317, 299, + 299, 299, 299, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 417, 317, 9, 45, 317, 45, 52, + 451, 317, 43, 92, 111, 333, 458, 300, 296, 296, + 295, 295, 474, 296, 296, 317, 316, 296, 293, 355, + 356, 316, 300, 300, 453, 453, 256, 366, 366, 366, + 366, 366, 366, 366, 385, 317, 139, 140, 139, 140, + 381, 350, 315, 293, 20, 315, 315, 317, 296, 317, + 304, 298, 293, 317, 317, 313, 300, 317, 292, 300, + 317, 27, 28, 29, 317, 330, 291, 291, 300, 300, + 317, 317, 317, 317, 300, 300, 300, 300, 300, 300, + 300, 300, 300, 300, 296, 300, 296, 296, 300, 296, + 9, 296, 300, 52, 451, 299, 316, 302, 448, 448, + 296, 356, 453, 295, 293, 20, 367, 296, 296, 296, + 295, 453, 386, 9, 480, 317, 313, 300, 300, 300, + 317, 296, 304, 304, 304, 296, 291, 295, 295, 300, + 300, 300, 300, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 296, 295, 9, 300, 298, + 296, 296, 448, 453, 386, 457, 448, 301, 358, 359, + 304, 296, 293, 296, 454, 300, 317, 317, 317, 424, + 422, 295, 295, 295, 295, 423, 422, 421, 420, 418, + 419, 423, 422, 421, 420, 427, 425, 426, 417, 296, + 358, 453, 296, 295, 480, 313, 296, 296, 296, 296, + 467, 296, 317, 423, 422, 421, 420, 296, 317, 296, + 296, 317, 296, 318, 296, 317, 319, 296, 318, 319, + 296, 296, 296, 296, 296, 417, 9, 45, 296, 45, + 52, 296, 451, 364, 295, 20, 388, 448, 293, 296, + 296, 296, 296, 9, 448, 386, 40, 55, 71, 80, + 94, 95, 96, 97, 126, 127, 128, 129, 130, 131, + 132, 290, 296, 313, 296, 295, 295, 296, 256, 448, + 317, 104, 296, 296, 367, 457, 453, 20, 386, 358, + 295, 448, 296 +}; + +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_int16 yyr1[] = +{ + 0, 309, 310, 310, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 312, 312, 313, 313, 314, 314, 314, 315, 315, 316, + 316, 316, 317, 318, 318, 319, 319, 319, 320, 320, + 320, 320, 320, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 322, 322, 322, 322, 323, 323, 323, 323, + 324, 325, 326, 327, 327, 328, 329, 329, 329, 330, + 330, 330, 331, 331, 332, 332, 332, 333, 333, 333, + 333, 333, 333, 334, 334, 334, 335, 336, 336, 336, + 336, 336, 336, 337, 338, 339, 340, 341, 342, 343, + 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 344, 344, 345, 345, + 346, 346, 347, 347, 348, 348, 349, 349, 350, 350, + 351, 351, 351, 351, 351, 351, 351, 352, 352, 353, + 354, 354, 355, 355, 355, 356, 356, 357, 358, 358, + 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 361, 362, 362, 362, 362, 362, 362, 362, + 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, + 363, 364, 364, 365, 365, 366, 366, 366, 366, 366, + 366, 366, 367, 367, 367, 367, 368, 368, 368, 368, + 368, 368, 368, 368, 369, 370, 370, 370, 370, 370, + 370, 371, 371, 372, 372, 372, 373, 373, 374, 374, + 374, 374, 374, 374, 374, 374, 375, 376, 376, 376, + 377, 377, 378, 378, 378, 378, 378, 378, 378, 379, + 380, 380, 381, 381, 382, 383, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 386, 386, 386, 387, 387, + 387, 387, 387, 388, 388, 388, 388, 388, 388, 388, + 388, 388, 388, 388, 388, 388, 388, 388, 388, 389, + 390, 390, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 391, 391, 391, 391, 391, 392, 393, + 394, 395, 395, 396, 396, 396, 397, 398, 398, 398, + 398, 399, 399, 399, 400, 401, 402, 403, 404, 404, + 404, 405, 406, 406, 407, 407, 407, 408, 408, 409, + 409, 410, 410, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, 412, 412, + 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, + 412, 412, 412, 412, 412, 412, 412, 413, 414, 414, + 415, 415, 416, 416, 416, 417, 417, 417, 417, 417, + 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, + 417, 418, 418, 418, 419, 419, 419, 420, 420, 421, + 421, 422, 422, 423, 423, 424, 424, 425, 425, 425, + 426, 426, 426, 426, 427, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 444, 444, 444, 444, 444, 445, + 445, 446, 446, 447, 447, 448, 448, 449, 449, 450, + 450, 450, 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 452, 452, 453, 453, 453, 453, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 455, 455, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 459, 459, 460, + 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, + 462, 462, 462, 463, 463, 464, 464, 465, 465, 466, + 467, 467, 468, 468, 468, 468, 468, 468, 468, 468, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 470, 470, 471, 471, 471, + 471, 471, 471, 471, 471, 471, 471, 471, 472, 472, + 473, 473, 474, 474, 475, 476, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 478, 478, 479, 479, + 479, 480, 480, 481, 481, 481, 481, 481, 481, 482, + 483, 484, 485, 485, 486, 486, 487, 487, 487, 487, + 488, 489, 490, 490, 490, 490, 490, 490, 490, 490, + 490, 490, 491, 491, 492, 492, 492, 492, 492, 492, + 492, 493, 493, 494, 494, 494, 495, 495, 496, 496, + 496, 496 +}; + +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 0, 2, 4, 4, 3, 1, 1, 1, + 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 2, 2, 3, 2, 2, 1, 1, 1, 4, 1, + 0, 2, 1, 3, 2, 4, 6, 1, 1, 1, + 1, 3, 1, 1, 1, 1, 4, 4, 4, 4, + 4, 4, 4, 2, 3, 2, 2, 2, 1, 1, + 2, 1, 2, 4, 6, 3, 5, 7, 9, 3, + 4, 7, 1, 1, 1, 2, 0, 2, 2, 0, + 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 3, 1, 2, 3, 7, 0, 2, 2, + 2, 2, 2, 3, 3, 2, 1, 4, 3, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 2, 2, 2, 5, 0, 2, 0, 2, + 0, 2, 3, 1, 0, 1, 1, 3, 0, 3, + 1, 1, 1, 1, 1, 1, 4, 0, 2, 4, + 0, 2, 5, 4, 3, 0, 2, 3, 0, 1, + 5, 3, 4, 4, 4, 1, 1, 1, 1, 1, + 2, 2, 4, 13, 22, 1, 1, 5, 3, 7, + 5, 4, 7, 0, 2, 2, 2, 2, 2, 2, + 2, 5, 2, 2, 2, 2, 2, 2, 5, 0, + 2, 0, 2, 0, 3, 9, 9, 7, 7, 1, + 1, 1, 2, 2, 1, 4, 0, 1, 1, 2, + 2, 2, 2, 1, 4, 2, 5, 3, 2, 2, + 1, 4, 3, 0, 2, 2, 0, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 9, 0, 2, 2, + 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 0, 4, 1, 3, 1, 13, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 5, 8, 6, 5, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 5, 1, 1, 1, 0, 4, + 4, 4, 4, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, + 0, 2, 2, 1, 2, 4, 5, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 4, 6, 4, + 4, 11, 1, 5, 3, 7, 5, 5, 3, 1, + 2, 2, 1, 2, 4, 4, 1, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 1, 1, 1, 4, + 4, 2, 4, 2, 0, 1, 1, 3, 1, 3, + 1, 0, 3, 5, 4, 3, 5, 5, 5, 5, + 5, 5, 2, 2, 2, 2, 2, 2, 4, 4, + 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, + 4, 4, 4, 4, 4, 4, 3, 2, 0, 1, + 1, 2, 1, 1, 1, 1, 4, 4, 5, 4, + 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, + 7, 0, 2, 2, 0, 2, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, + 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 5, 3, 2, 2, 2, 2, 2, 5, + 4, 6, 2, 4, 0, 3, 3, 1, 1, 0, + 3, 0, 1, 1, 3, 0, 1, 1, 3, 1, + 3, 4, 4, 4, 4, 5, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 3, 4, 1, 0, 10, + 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 2, 3, 4, 6, 5, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, + 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 1, 0, 5, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 3, 2, 2, 3, + 4, 2, 2, 2, 5, 5, 7, 4, 3, 2, + 3, 2, 1, 1, 2, 3, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, + 1, 1, 3, 2, 6, 7, 3, 3, 3, 6, + 0, 1, 3, 5, 6, 4, 4, 1, 3, 3, + 1, 1, 1, 1, 4, 1, 6, 6, 6, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, + 4, 7, 6, 7, 6, 9, 8, 3, 8, 4, + 0, 2, 0, 1, 3, 3, 0, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 0, 2, 3, 1, + 1, 1, 1, 3, 8, 2, 3, 1, 1, 3, + 3, 3, 4, 6, 0, 2, 3, 1, 3, 1, + 4, 3, 0, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 0, 2, 2, 3, 3, 4, 2, 1, + 1, 3, 5, 0, 2, 2, 0, 2, 4, 3, + 1, 1 +}; + + +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + + + + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +{ + FILE *yyoutput = yyo; + YY_USE (yyoutput); + if (!yyvaluep) + return; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -static int YYLex1() { - if(yylvpsave) { - if(yylvp==yylvlim) { - yyexpand(); - } - *yylexp = yylex(); - *yylvp++ = yylval; - yylve++; -#ifdef YYPOSN - *yylpp++ = yyposn; - yylpe++; -#endif /* YYPOSN */ - return *yylexp++; - } else { - return yylex(); + +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ + +static void +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); + + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); } - } + YYFPRINTF (stderr, "\n"); } -static void YYMoreStack(struct yyparsestate *yyps) { - ptrdiff_t p = yyps->ssp - yyps->ss; -#ifdef __cplusplus - Yshort *tss = yyps->ss; - yyps->ss = new Yshort [yyps->stacksize + YYSTACKGROWTH]; - memcpy(yyps->ss, tss, yyps->stacksize * sizeof(Yshort)); - delete[] tss; - YYSTYPE *tvs = yyps->vs; - yyps->vs = new YYSTYPE[yyps->stacksize + YYSTACKGROWTH]; - YYSCopy(yyps->vs, tvs, yyps->stacksize); - delete[] tvs; -#ifdef YYPOSN - YYPOSN *tps = yyps->ps; - yyps->ps = new YYPOSN [yyps->stacksize + YYSTACKGROWTH]; - YYPCopy(yyps->ps, tps, yyps->stacksize); - delete[] tps; -#endif /* YYPOSN */ - yyps->stacksize += YYSTACKGROWTH; -#else - yyps->stacksize += YYSTACKGROWTH; - yyps->ss = realloc(yyps->ss, sizeof(Yshort ) * yyps->stacksize); - yyps->vs = realloc(yyps->vs, sizeof(YYSTYPE) * yyps->stacksize); -#ifdef YYPOSN - yyps->ps = realloc(yyps->ps, sizeof(YYPOSN ) * yyps->stacksize); -#endif /* YYPOSN */ -#endif - yyps->ssp = yyps->ss + p; - yyps->vsp = yyps->vs + p; -#ifdef YYPOSN - yyps->psp = yyps->ps + p; -#endif /* YYPOSN */ +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) +{ + int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); + } } -static struct yyparsestate *YYNewState(size_t size) { -#ifdef __cplusplus - yyparsestate *p = new yyparsestate; - p->ss = new Yshort [size + 4]; - p->vs = new YYSTYPE[size + 4]; -#ifdef YYPOSN - p->ps = new YYPOSN [size + 4]; -#endif /* YYPOSN */ -#else - struct yyparsestate *p = malloc(sizeof(struct yyparsestate)); - p->ss = malloc(sizeof(Yshort ) * (size + 4)); - p->vs = malloc(sizeof(YYSTYPE) * (size + 4)); -#ifdef YYPOSN - p->ps = malloc(sizeof(YYPOSN ) * (size + 4)); -#endif /* YYPOSN */ -#endif - p->stacksize = size+4; -#ifndef YYSTYPE_CONSTRUCTOR - memset(&p->vs[0], 0, (size+4)*sizeof(YYSTYPE)); -#endif -#ifdef YYPOSN -#ifndef YYPOSN_CONSTRUCTOR - memset(&p->ps[0], 0, (size+4)*sizeof(YYPOSN)); +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 #endif -#endif /* YYPOSN */ - return p; -} -static void YYFreeState(struct yyparsestate *p) { -#ifdef __cplusplus - delete[] p->ss; - delete[] p->vs; -#ifdef YYPOSN - delete[] p->ps; -#endif /* YYPOSN */ - delete p; -#else - free(p->ss); - free(p->vs); -#ifdef YYPOSN - free(p->ps); -#endif /* YYPOSN */ - free(p); +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 #endif + + + + + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) +{ + YY_USE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -#line 2073 "asmparse.y" +/* Lookahead token kind. */ +int yychar; -#include "grammar_after.cpp" -#line 5673 "asmparse.cpp" -#line 354 "btyaccpa.ske" - -/* -** Parser function -*/ -int yyparse() { - int yym, yyn, yystate, yychar, yynewerrflag; - struct yyparsestate *yyerrctx = NULL; -#ifdef YYREDUCEPOSNFUNC - int reduce_posn; -#endif /* YYREDUCEPOSNFUNC */ +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; -#if YYDEBUG - const char *yys; - - if ((yys = getenv("YYDEBUG"))) { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif - - yym = 0; - yyn = 0; - yyps = YYNewState(YYDEFSTACKSIZE); - yyps->save = 0; - yynerrs = 0; - yyps->errflag = 0; - yychar = (-1); - - yyps->ssp = yyps->ss; - yyps->vsp = yyps->vs; -#ifdef YYPOSN - yyps->psp = yyps->ps; -#endif /* YYPOSN */ - *(yyps->ssp) = yystate = 0; - - - /* - ** Main parsing loop - */ - yyloop: - if ((yyn = yydefred[yystate])) { - goto yyreduce; - } - /* - ** Read one token - */ - if (yychar < 0) { - if ((yychar = YYLex1()) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("yydebug[%d,%d]: state %d, reading %d (%s)", - (int)yydepth, yytrial!=0, yystate, yychar, yys); -#ifdef YYDBPR - printf("<"); - YYDBPR(yylval); - printf(">"); -#endif - printf("\n"); - } -#endif - } - /* - ** Do we have a conflict? - */ - if ((yyn = yycindex[yystate]) && - (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && - yycheck[yyn] == yychar) { - int ctry; - if (yypath) { -#if YYDEBUG - if (yydebug) { - printf("yydebug[%d,%d]: CONFLICT in state %d: following successful " - "trial parse\n", (int)yydepth, yytrial!=0, yystate); - } -#endif - /* Switch to the next conflict context */ - struct yyparsestate *save = yypath; - yypath = save->save; - ctry = save->ctry; - if (save->state != yystate) - goto yyabort; - YYFreeState(save); +/*----------. +| yyparse. | +`----------*/ - } else { +int +yyparse (void) +{ + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; -#if YYDEBUG - if (yydebug) { - printf("yydebug[%d,%d]: CONFLICT in state %d. ", - (int)yydepth, yytrial!=0, yystate); - if(yyps->save) { - printf("ALREADY in conflict. Continue trial parse."); - } else { - printf("Start trial parse."); - } - printf("\n"); - } -#endif - struct yyparsestate *save = YYNewState(yyps->ssp - yyps->ss); - save->save = yyps->save; - save->state = yystate; - save->errflag = yyps->errflag; - save->ssp = save->ss + (yyps->ssp - yyps->ss); - save->vsp = save->vs + (yyps->vsp - yyps->vs); - memcpy (save->ss, yyps->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); - YYSCopy(save->vs, yyps->vs, (yyps->ssp - yyps->ss + 1)); -#ifdef YYPOSN - save->psp = save->ps + (yyps->psp - yyps->ps); - YYPCopy(save->ps, yyps->ps, (yyps->ssp - yyps->ss + 1)); -#endif /* YYPOSN */ - ctry = yytable[yyn]; - if (yyctable[ctry] == -1) { -#if YYDEBUG - if (yydebug && yychar >= 0) - printf("yydebug[%d]: backtracking 1 token\n", - yytrial!=0); -#endif - ctry++; - } - save->ctry = ctry; - if (!yyps->save) { - /* If this is a first conflict in the stack, start saving lexemes */ - if (!yylexemes) { -#ifdef __cplusplus - yylexemes = new Yshort[YYSTACKGROWTH]; - yylvals = new YYSTYPE[YYSTACKGROWTH]; -#ifdef YYPOSN - yylpsns = new YYPOSN[YYSTACKGROWTH]; -#endif /* YYPOSN */ + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + + int yyn; + /* The return value of yyparse. */ + int yyresult; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yychar = YYEMPTY; /* Cause a token to be read. */ + + goto yysetstate; + + +/*------------------------------------------------------------. +| yynewstate -- push a new state, which is found in yystate. | +`------------------------------------------------------------*/ +yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); + + if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; #else - yylexemes = malloc(sizeof(Yshort) * YYSTACKGROWTH); - yylvals = malloc(sizeof(YYSTYPE) * YYSTACKGROWTH); -#ifdef YYPOSN - yylpsns = malloc(sizeof(YYPOSN) * YYSTACKGROWTH); -#endif /* YYPOSN */ -#endif - yylvlim = yylvals + YYSTACKGROWTH; -#ifdef YYPOSN - yylplim = yylpsns + YYSTACKGROWTH; -#endif /* YYPOSN */ - } - if (yylvp == yylve) { - yylvp = yylve = yylvals; -#ifdef YYPOSN - yylpp = yylpe = yylpsns; -#endif /* YYPOSN */ - yylexp = yylexemes; - if (yychar >= 0) { - *yylve++ = yylval; -#ifdef YYPOSN - *yylpe++ = yyposn; -#endif /* YYPOSN */ - *yylexp = yychar; - yychar = -1; - } - } - } - if (yychar >= 0) { - yylvp--; -#ifdef YYPOSN - yylpp--; -#endif /* YYPOSN */ - yylexp--; - yychar = -1; + { + /* Get the current used size of the three stacks, in elements. */ + YYPTRDIFF_T yysize = yyssp - yyss + 1; + +# if defined yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; } - save->lexeme = yylvp - yylvals; - yyps->save = save; - } - if (yytable[yyn] == ctry) { -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: state %d, shifting to state %d\n", - (int)yydepth, yytrial!=0, yystate, yyctable[ctry]); -#endif - if (yychar < 0) { - yylvp++; -#ifdef YYPOSN - yylpp++; -#endif /* YYPOSN */ - yylexp++; +# else /* defined YYSTACK_RELOCATE */ + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + YYNOMEM; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } - yychar = -1; - if (yyps->errflag > 0) --yyps->errflag; - yystate = yyctable[ctry]; - goto yyshift; - } else { - yyn = yyctable[ctry]; - goto yyreduce; - } - } +# endif - /* - ** Is action a shift? - */ - if ((yyn = yysindex[yystate]) && - (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && - yycheck[yyn] == yychar) { -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: state %d, shifting to state %d\n", - (int)yydepth, yytrial!=0, yystate, yytable[yyn]); -#endif - yychar = (-1); - if (yyps->errflag > 0) --yyps->errflag; - yystate = yytable[yyn]; - yyshift: - if (yyps->ssp >= yyps->ss + yyps->stacksize - 1) { - YYMoreStack(yyps); + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; } - *++(yyps->ssp) = yystate; - *++(yyps->vsp) = yylval; -#ifdef YYPOSN - *++(yyps->psp) = yyposn; -#endif /* YYPOSN */ - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && - (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && - yycheck[yyn] == yychar) { - yyn = yytable[yyn]; - goto yyreduce; - } - yym = 0; /* no reduction to clean up after */ +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - /* - ** Action: error - */ - if (yyps->errflag) goto yyinrecovery; - else goto yyerrlab; /* redundant goto to avoid 'unused label' warnings */ -yyerrlab: - /* explicit YYERROR from an action -- pop the rhs of the rule reduced - * before looking for error recovery */ - yyps->ssp -= yym; - yystate = *(yyps->ssp); - yyps->vsp -= yym; -#ifdef YYPOSN - yyps->psp -= yym; -#endif /* YYPOSN */ - - yynewerrflag = 1; - goto yyerrhandler; - goto yyerrquiet; /* redundant goto to avoid 'unused label' warnings */ -yyerrquiet: - yynewerrflag = 0; -yyerrhandler: - while (yyps->save) { - int ctry; - struct yyparsestate *save = yyps->save; -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: ERROR in state %d, CONFLICT BACKTRACKING to " - "state %d, %d tokens\n", (int)yydepth, yytrial!=0, yystate, - yyps->save->state, (int)(yylvp - yylvals - yyps->save->lexeme)); -#endif - /* Memorize most forward-looking error state in case - * it's really an error. */ - if(yyerrctx==NULL || yyerrctx->lexemessp - yyps->ss); - yyerrctx->save = yyps->save; - yyerrctx->state = yystate; - yyerrctx->errflag = yyps->errflag; - yyerrctx->ssp = yyerrctx->ss + (yyps->ssp - yyps->ss); - yyerrctx->vsp = yyerrctx->vs + (yyps->vsp - yyps->vs); - memcpy(yyerrctx->ss, yyps->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); - YYSCopy(yyerrctx->vs, yyps->vs, (yyps->ssp - yyps->ss + 1)); -#ifdef YYPOSN - yyerrctx->psp = yyerrctx->ps + (yyps->psp - yyps->ps); - YYPCopy(yyerrctx->ps, yyps->ps, (yyps->ssp - yyps->ss + 1)); -#endif /* YYPOSN */ - yyerrctx->lexeme = yylvp - yylvals; - } - yychar = -1; - yylexp = yylexemes + save->lexeme; - yyps->ssp = yyps->ss + (save->ssp - save->ss); - memcpy (yyps->ss, save->ss, (yyps->ssp - yyps->ss + 1) * sizeof(Yshort)); - yylvp = yylvals + save->lexeme; - yyps->vsp = yyps->vs + (save->vsp - save->vs); - YYSCopy(yyps->vs, save->vs, yyps->vsp - yyps->vs + 1); -#ifdef YYPOSN - yylpp = yylpsns + save->lexeme; - yyps->psp = yyps->ps + (save->psp - save->ps); - YYPCopy(yyps->ps, save->ps, yyps->psp - yyps->ps + 1); -#endif /* YYPOSN */ - ctry = ++save->ctry; - yystate = save->state; - /* We tried shift, try reduce now */ - if ((yyn = yyctable[ctry]) >= 0) { - goto yyreduce; + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); } - yyps->save = save->save; - YYFreeState(save); - /* - ** Nothing left on the stack -- error - */ - if (!yyps->save) { -#if YYDEBUG - if (yydebug) { - printf("yydebug[%d]: trial parse FAILED, entering ERROR mode\n", - yytrial!=0); - } -#endif - /* Restore state as it was in the most forward-advanced error */ - yylexp = yylexemes + yyerrctx->lexeme; - yychar = yylexp[-1]; - yyps->ssp = yyps->ss + (yyerrctx->ssp - yyerrctx->ss); - memcpy(yyps->ss, yyerrctx->ss, (yyps->ssp - yyps->ss + 1)*sizeof(Yshort)); - yylvp = yylvals + yyerrctx->lexeme; - yylval = yylvp[-1]; - yyps->vsp = yyps->vs + (yyerrctx->vsp - yyerrctx->vs); - YYSCopy(yyps->vs, yyerrctx->vs, yyps->vsp - yyps->vs + 1); -#ifdef YYPOSN - yylpp = yylpsns + yyerrctx->lexeme; - yyposn = yylpp[-1]; - yyps->psp = yyps->ps + (yyerrctx->psp - yyerrctx->ps); - YYPCopy(yyps->ps, yyerrctx->ps, yyps->psp - yyps->ps + 1); -#endif /* YYPOSN */ - yystate = yyerrctx->state; - YYFreeState(yyerrctx); - yyerrctx = NULL; + + if (yychar <= YYEOF) + { + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } - yynewerrflag = 1; - } - if (yynewerrflag) { -#ifdef YYERROR_DETAILED - yyerror_detailed("syntax error", yychar, yylval, yyposn); -#else - yyerror("syntax error"); -#endif - } - ++yynerrs; - yyinrecovery: - if (yyps->errflag < 3) { - yyps->errflag = 3; - for (;;) { - if ((yyn = yysindex[*(yyps->ssp)]) && - (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && - yycheck[yyn] == YYERRCODE) { -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: state %d, ERROR recovery shifts to state " - "%d\n", (int)yydepth, yytrial!=0, *(yyps->ssp), yytable[yyn]); -#endif - yystate = yytable[yyn]; - goto yyshift; - } else { -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: ERROR recovery discards state %d\n", - (int)yydepth, yytrial!=0, *(yyps->ssp)); -#endif - if (yyps->ssp <= yyps->ss) { - goto yyabort; - } - if(!yytrial) { - YYDELETEVAL(yyps->vsp[0],1); - YYDELETEPOSN(yyps->psp[0],1); - } -#ifdef YYDESTRUCT - YYDESTRUCT(yytrial!=0, yyastable[yyps->ssp[0]], yyps->vsp, yyps->psp); -#endif /* YYDESTRUCT */ - --(yyps->ssp); - --(yyps->vsp); -#ifdef YYPOSN - --(yyps->psp); -#endif /* YYPOSN */ - } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; } - } else { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("yydebug[%d,%d]: state %d, ERROR recovery discards token %d " - "(%s)\n", (int)yydepth, yytrial!=0, yystate, yychar, yys); + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } -#endif - if(!yytrial) { - YYDELETEVAL(yylval,0); - YYDELETEPOSN(yyposn,0); + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; } -#ifdef YYDESTRUCT - if (yychar > 0) - YYDESTRUCT(yytrial!=0, yyastable[yyttable[yychar]], &yylval, &yyposn); -#endif /* YYDESTRUCT */ - yychar = (-1); - goto yyloop; - } - /* - ** Reduce the rule - */ + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + /* Discard the shifted token. */ + yychar = YYEMPTY; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- do a reduction. | +`-----------------------------*/ yyreduce: - yym = yylen[yyn]; -#if YYDEBUG - if (yydebug) { - printf("yydebug[%d,%d]: state %d, reducing by rule %d (%s)", - (int)yydepth, yytrial!=0, yystate, yyn, yyrule[yyn]); -#ifdef YYDBPR - if (yym) { - int i; - printf("<"); - for (i=yym; i>0; i--) { - if (i!=yym) printf(", "); - YYDBPR((yyps->vsp)[1-i]); - } - printf(">"); - } -#endif - printf("\n"); - } -#endif - if (yyps->ssp + 1 - yym >= yyps->ss + yyps->stacksize) { - YYMoreStack(yyps); - } + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; - /* "$$ = $1" default action */ - yyval = yyvsp[0]; + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. -#ifdef YYPOSN - /* default reduced position is NULL -- no position at all. - no position will be assigned at trial time and if no position handling - is present */ -#ifndef YYPOSN_CONSTRUCTOR - memset(&yyps->pos, 0, sizeof(yyps->pos)); -#endif -#ifdef YYREDUCEPOSNFUNC - reduce_posn = 1; -#endif /* YYREDUCEPOSNFUNC */ -#endif /* YYPOSN */ - - switch (yyn) { - -case 3: - if (!yytrial) -#line 194 "asmparse.y" -{ PASM->EndClass(); } -#line 6126 "asmparse.cpp" -break; -case 4: - if (!yytrial) -#line 195 "asmparse.y" -{ PASM->EndNameSpace(); } -#line 6132 "asmparse.cpp" -break; -case 5: - if (!yytrial) -#line 196 "asmparse.y" -{ if(PASM->m_pCurMethod->m_ulLines[1] ==0) + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 4: /* decl: classHead '{' classDecls '}' */ +#line 194 "./asmparse.y" + { PASM->EndClass(); } +#line 3569 "asmparse.cpp" + break; + + case 5: /* decl: nameSpaceHead '{' decls '}' */ +#line 195 "./asmparse.y" + { PASM->EndNameSpace(); } +#line 3575 "asmparse.cpp" + break; + + case 6: /* decl: methodHead methodDecls '}' */ +#line 196 "./asmparse.y" + { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 6141 "asmparse.cpp" -break; -case 12: - if (!yytrial) -#line 206 "asmparse.y" -{ PASMM->EndAssembly(); } -#line 6147 "asmparse.cpp" -break; -case 13: - if (!yytrial) -#line 207 "asmparse.y" -{ PASMM->EndAssembly(); } -#line 6153 "asmparse.cpp" -break; -case 14: - if (!yytrial) -#line 208 "asmparse.y" -{ PASMM->EndComType(); } -#line 6159 "asmparse.cpp" -break; -case 15: - if (!yytrial) -#line 209 "asmparse.y" -{ PASMM->EndManifestRes(); } -#line 6165 "asmparse.cpp" -break; -case 19: - if (!yytrial) -#line 213 "asmparse.y" -{ +#line 3584 "asmparse.cpp" + break; + + case 13: /* decl: assemblyHead '{' assemblyDecls '}' */ +#line 206 "./asmparse.y" + { PASMM->EndAssembly(); } +#line 3590 "asmparse.cpp" + break; + + case 14: /* decl: assemblyRefHead '{' assemblyRefDecls '}' */ +#line 207 "./asmparse.y" + { PASMM->EndAssembly(); } +#line 3596 "asmparse.cpp" + break; + + case 15: /* decl: exptypeHead '{' exptypeDecls '}' */ +#line 208 "./asmparse.y" + { PASMM->EndComType(); } +#line 3602 "asmparse.cpp" + break; + + case 16: /* decl: manifestResHead '{' manifestResDecls '}' */ +#line 209 "./asmparse.y" + { PASMM->EndManifestRes(); } +#line 3608 "asmparse.cpp" + break; + + case 20: /* decl: _SUBSYSTEM int32 */ +#line 213 "./asmparse.y" + { #ifdef _PREFAST_ #pragma warning(push) -#pragma warning(disable:22011) /* Suppress PREFast warning about integer overflow/underflow*/ +#pragma warning(disable:22011) // Suppress PREFast warning about integer overflow/underflow #endif - PASM->m_dwSubsystem = yyvsp[0].int32; + PASM->m_dwSubsystem = (yyvsp[0].int32); #ifdef _PREFAST_ #pragma warning(pop) #endif } -#line 6180 "asmparse.cpp" -break; -case 20: - if (!yytrial) -#line 223 "asmparse.y" -{ PASM->m_dwComImageFlags = yyvsp[0].int32; } -#line 6186 "asmparse.cpp" -break; -case 21: - if (!yytrial) -#line 224 "asmparse.y" -{ PASM->m_dwFileAlignment = yyvsp[0].int32; - if((yyvsp[0].int32 & (yyvsp[0].int32 - 1))||(yyvsp[0].int32 < 0x200)||(yyvsp[0].int32 > 0x10000)) +#line 3623 "asmparse.cpp" + break; + + case 21: /* decl: _CORFLAGS int32 */ +#line 223 "./asmparse.y" + { PASM->m_dwComImageFlags = (yyvsp[0].int32); } +#line 3629 "asmparse.cpp" + break; + + case 22: /* decl: _FILE ALIGNMENT_ int32 */ +#line 224 "./asmparse.y" + { PASM->m_dwFileAlignment = (yyvsp[0].int32); + if(((yyvsp[0].int32) & ((yyvsp[0].int32) - 1))||((yyvsp[0].int32) < 0x200)||((yyvsp[0].int32) > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 6194 "asmparse.cpp" -break; -case 22: - if (!yytrial) -#line 227 "asmparse.y" -{ PASM->m_stBaseAddress = (ULONGLONG)(*(yyvsp[0].int64)); delete yyvsp[0].int64; +#line 3637 "asmparse.cpp" + break; + + case 23: /* decl: _IMAGEBASE int64 */ +#line 227 "./asmparse.y" + { PASM->m_stBaseAddress = (ULONGLONG)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 6202 "asmparse.cpp" -break; -case 23: - if (!yytrial) -#line 230 "asmparse.y" -{ PASM->m_stSizeOfStackReserve = (size_t)(*(yyvsp[0].int64)); delete yyvsp[0].int64; } -#line 6208 "asmparse.cpp" -break; -case 28: - if (!yytrial) -#line 235 "asmparse.y" -{ PASM->m_fIsMscorlib = TRUE; } -#line 6214 "asmparse.cpp" -break; -case 31: - if (!yytrial) -#line 242 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 6220 "asmparse.cpp" -break; -case 32: - if (!yytrial) -#line 243 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 6226 "asmparse.cpp" -break; -case 33: - if (!yytrial) -#line 246 "asmparse.y" -{ LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLang)); } -#line 6232 "asmparse.cpp" -break; -case 34: - if (!yytrial) -#line 247 "asmparse.y" -{ LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLang)); - LPCSTRToGuid(yyvsp[0].string,&(PASM->m_guidLangVendor));} -#line 6239 "asmparse.cpp" -break; -case 35: - if (!yytrial) -#line 249 "asmparse.y" -{ LPCSTRToGuid(yyvsp[-4].string,&(PASM->m_guidLang)); - LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidLangVendor)); - LPCSTRToGuid(yyvsp[-2].string,&(PASM->m_guidDoc));} -#line 6247 "asmparse.cpp" -break; -case 36: - if (!yytrial) -#line 254 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 6253 "asmparse.cpp" -break; -case 37: - if (!yytrial) -#line 255 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 6259 "asmparse.cpp" -break; -case 38: - if (!yytrial) -#line 258 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 6265 "asmparse.cpp" -break; -case 39: - if (!yytrial) -#line 259 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 6271 "asmparse.cpp" -break; -case 40: - if (!yytrial) -#line 260 "asmparse.y" -{ yyval.string = newStringWDel(yyvsp[-2].string, '.', yyvsp[0].string); } -#line 6277 "asmparse.cpp" -break; -case 41: - if (!yytrial) -#line 263 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 6283 "asmparse.cpp" -break; -case 42: - if (!yytrial) -#line 266 "asmparse.y" -{ yyval.int64 = yyvsp[0].int64; } -#line 6289 "asmparse.cpp" -break; -case 43: - if (!yytrial) -#line 267 "asmparse.y" -{ yyval.int64 = neg ? new __int64(yyvsp[0].int32) : new __int64((unsigned)yyvsp[0].int32); } -#line 6295 "asmparse.cpp" -break; -case 44: - if (!yytrial) -#line 270 "asmparse.y" -{ yyval.float64 = yyvsp[0].float64; } -#line 6301 "asmparse.cpp" -break; -case 45: - if (!yytrial) -#line 271 "asmparse.y" -{ float f; *((__int32*) (&f)) = yyvsp[-1].int32; yyval.float64 = new double(f); } -#line 6307 "asmparse.cpp" -break; -case 46: - if (!yytrial) -#line 272 "asmparse.y" -{ yyval.float64 = (double*) yyvsp[-1].int64; } -#line 6313 "asmparse.cpp" -break; -case 47: - if (!yytrial) -#line 276 "asmparse.y" -{ PASM->AddTypeDef(yyvsp[-2].binstr,yyvsp[0].string); } -#line 6319 "asmparse.cpp" -break; -case 48: - if (!yytrial) -#line 277 "asmparse.y" -{ PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6325 "asmparse.cpp" -break; -case 49: - if (!yytrial) -#line 278 "asmparse.y" -{ PASM->AddTypeDef(yyvsp[-2].token,yyvsp[0].string); } -#line 6331 "asmparse.cpp" -break; -case 50: - if (!yytrial) -#line 279 "asmparse.y" -{ yyvsp[-2].cad->tkOwner = 0; PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6337 "asmparse.cpp" -break; -case 51: - if (!yytrial) -#line 280 "asmparse.y" -{ PASM->AddTypeDef(yyvsp[-2].cad,yyvsp[0].string); } -#line 6343 "asmparse.cpp" -break; -case 52: - if (!yytrial) -#line 285 "asmparse.y" -{ DefineVar(yyvsp[0].string, NULL); } -#line 6349 "asmparse.cpp" -break; -case 53: - if (!yytrial) -#line 286 "asmparse.y" -{ DefineVar(yyvsp[-1].string, yyvsp[0].binstr); } -#line 6355 "asmparse.cpp" -break; -case 54: - if (!yytrial) -#line 287 "asmparse.y" -{ UndefVar(yyvsp[0].string); } -#line 6361 "asmparse.cpp" -break; -case 55: - if (!yytrial) -#line 288 "asmparse.y" -{ SkipToken = !IsVarDefined(yyvsp[0].string); +#line 3645 "asmparse.cpp" + break; + + case 24: /* decl: _STACKRESERVE int64 */ +#line 230 "./asmparse.y" + { PASM->m_stSizeOfStackReserve = (size_t)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); } +#line 3651 "asmparse.cpp" + break; + + case 29: /* decl: _MSCORLIB */ +#line 235 "./asmparse.y" + { PASM->m_fIsMscorlib = TRUE; } +#line 3657 "asmparse.cpp" + break; + + case 32: /* compQstring: QSTRING */ +#line 242 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 3663 "asmparse.cpp" + break; + + case 33: /* compQstring: compQstring '+' QSTRING */ +#line 243 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } +#line 3669 "asmparse.cpp" + break; + + case 34: /* languageDecl: _LANGUAGE SQSTRING */ +#line 246 "./asmparse.y" + { LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLang)); } +#line 3675 "asmparse.cpp" + break; + + case 35: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING */ +#line 247 "./asmparse.y" + { LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLang)); + LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLangVendor));} +#line 3682 "asmparse.cpp" + break; + + case 36: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING */ +#line 249 "./asmparse.y" + { LPCSTRToGuid((yyvsp[-4].string),&(PASM->m_guidLang)); + LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLangVendor)); + LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidDoc));} +#line 3690 "asmparse.cpp" + break; + + case 37: /* id: ID */ +#line 254 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 3696 "asmparse.cpp" + break; + + case 38: /* id: SQSTRING */ +#line 255 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 3702 "asmparse.cpp" + break; + + case 39: /* dottedName: id */ +#line 258 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 3708 "asmparse.cpp" + break; + + case 40: /* dottedName: DOTTEDNAME */ +#line 259 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 3714 "asmparse.cpp" + break; + + case 41: /* dottedName: dottedName '.' dottedName */ +#line 260 "./asmparse.y" + { (yyval.string) = newStringWDel((yyvsp[-2].string), '.', (yyvsp[0].string)); } +#line 3720 "asmparse.cpp" + break; + + case 42: /* int32: INT32_T */ +#line 263 "./asmparse.y" + { (yyval.int32) = (yyvsp[0].int32); } +#line 3726 "asmparse.cpp" + break; + + case 43: /* int64: INT64_T */ +#line 266 "./asmparse.y" + { (yyval.int64) = (yyvsp[0].int64); } +#line 3732 "asmparse.cpp" + break; + + case 44: /* int64: INT32_T */ +#line 267 "./asmparse.y" + { (yyval.int64) = neg ? new __int64((yyvsp[0].int32)) : new __int64((unsigned)(yyvsp[0].int32)); } +#line 3738 "asmparse.cpp" + break; + + case 45: /* float64: FLOAT64 */ +#line 270 "./asmparse.y" + { (yyval.float64) = (yyvsp[0].float64); } +#line 3744 "asmparse.cpp" + break; + + case 46: /* float64: FLOAT32_ '(' int32 ')' */ +#line 271 "./asmparse.y" + { float f; *((__int32*) (&f)) = (yyvsp[-1].int32); (yyval.float64) = new double(f); } +#line 3750 "asmparse.cpp" + break; + + case 47: /* float64: FLOAT64_ '(' int64 ')' */ +#line 272 "./asmparse.y" + { (yyval.float64) = (double*) (yyvsp[-1].int64); } +#line 3756 "asmparse.cpp" + break; + + case 48: /* typedefDecl: _TYPEDEF type AS_ dottedName */ +#line 276 "./asmparse.y" + { PASM->AddTypeDef((yyvsp[-2].binstr),(yyvsp[0].string)); } +#line 3762 "asmparse.cpp" + break; + + case 49: /* typedefDecl: _TYPEDEF className AS_ dottedName */ +#line 277 "./asmparse.y" + { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } +#line 3768 "asmparse.cpp" + break; + + case 50: /* typedefDecl: _TYPEDEF memberRef AS_ dottedName */ +#line 278 "./asmparse.y" + { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } +#line 3774 "asmparse.cpp" + break; + + case 51: /* typedefDecl: _TYPEDEF customDescr AS_ dottedName */ +#line 279 "./asmparse.y" + { (yyvsp[-2].cad)->tkOwner = 0; PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } +#line 3780 "asmparse.cpp" + break; + + case 52: /* typedefDecl: _TYPEDEF customDescrWithOwner AS_ dottedName */ +#line 280 "./asmparse.y" + { PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } +#line 3786 "asmparse.cpp" + break; + + case 53: /* compControl: P_DEFINE dottedName */ +#line 285 "./asmparse.y" + { DefineVar((yyvsp[0].string), NULL); } +#line 3792 "asmparse.cpp" + break; + + case 54: /* compControl: P_DEFINE dottedName compQstring */ +#line 286 "./asmparse.y" + { DefineVar((yyvsp[-1].string), (yyvsp[0].binstr)); } +#line 3798 "asmparse.cpp" + break; + + case 55: /* compControl: P_UNDEF dottedName */ +#line 287 "./asmparse.y" + { UndefVar((yyvsp[0].string)); } +#line 3804 "asmparse.cpp" + break; + + case 56: /* compControl: P_IFDEF dottedName */ +#line 288 "./asmparse.y" + { SkipToken = !IsVarDefined((yyvsp[0].string)); IfEndif++; } -#line 6369 "asmparse.cpp" -break; -case 56: - if (!yytrial) -#line 291 "asmparse.y" -{ SkipToken = IsVarDefined(yyvsp[0].string); +#line 3812 "asmparse.cpp" + break; + + case 57: /* compControl: P_IFNDEF dottedName */ +#line 291 "./asmparse.y" + { SkipToken = IsVarDefined((yyvsp[0].string)); IfEndif++; } -#line 6377 "asmparse.cpp" -break; -case 57: - if (!yytrial) -#line 294 "asmparse.y" -{ if(IfEndif == 1) SkipToken = !SkipToken;} -#line 6383 "asmparse.cpp" -break; -case 58: - if (!yytrial) -#line 295 "asmparse.y" -{ if(IfEndif == 0) +#line 3820 "asmparse.cpp" + break; + + case 58: /* compControl: P_ELSE */ +#line 294 "./asmparse.y" + { if(IfEndif == 1) SkipToken = !SkipToken;} +#line 3826 "asmparse.cpp" + break; + + case 59: /* compControl: P_ENDIF */ +#line 295 "./asmparse.y" + { if(IfEndif == 0) PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 6392 "asmparse.cpp" -break; -case 59: - if (!yytrial) -#line 299 "asmparse.y" -{ _ASSERTE(!"yylex should have dealt with this"); } -#line 6398 "asmparse.cpp" -break; -case 60: - if (!yytrial) -#line 300 "asmparse.y" -{ } -#line 6404 "asmparse.cpp" -break; -case 61: - if (!yytrial) -#line 304 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[0].token, NULL); } -#line 6410 "asmparse.cpp" -break; -case 62: - if (!yytrial) -#line 305 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6416 "asmparse.cpp" -break; -case 63: - if (!yytrial) -#line 306 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6422 "asmparse.cpp" -break; -case 64: - if (!yytrial) -#line 307 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6428 "asmparse.cpp" -break; -case 65: - if (!yytrial) -#line 310 "asmparse.y" -{ yyval.cad = new CustomDescr(yyvsp[-2].token, yyvsp[0].token, NULL); } -#line 6434 "asmparse.cpp" -break; -case 66: - if (!yytrial) -#line 311 "asmparse.y" -{ yyval.cad = new CustomDescr(yyvsp[-4].token, yyvsp[-2].token, yyvsp[0].binstr); } -#line 6440 "asmparse.cpp" -break; -case 67: - if (!yytrial) -#line 313 "asmparse.y" -{ yyval.cad = new CustomDescr(yyvsp[-6].token, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 6446 "asmparse.cpp" -break; -case 68: - if (!yytrial) -#line 314 "asmparse.y" -{ yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yyvsp[-2].int32, yyvsp[-1].binstr); } -#line 6452 "asmparse.cpp" -break; -case 69: - if (!yytrial) -#line 317 "asmparse.y" -{ yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6458 "asmparse.cpp" -break; -case 70: - if (!yytrial) -#line 321 "asmparse.y" -{ PASM->m_pCustomDescrList = NULL; - PASM->m_tkCurrentCVOwner = yyvsp[-4].token; - yyval.int32 = yyvsp[-2].token; bParsingByteArray = TRUE; } -#line 6466 "asmparse.cpp" -break; -case 71: - if (!yytrial) -#line 326 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 6472 "asmparse.cpp" -break; -case 72: - if (!yytrial) -#line 329 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 6478 "asmparse.cpp" -break; -case 73: - if (!yytrial) -#line 330 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 6484 "asmparse.cpp" -break; -case 74: - if (!yytrial) -#line 334 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); - yyval.binstr->append(yyvsp[0].binstr); +#line 3835 "asmparse.cpp" + break; + + case 60: /* compControl: P_INCLUDE QSTRING */ +#line 299 "./asmparse.y" + { _ASSERTE(!"yylex should have dealt with this"); } +#line 3841 "asmparse.cpp" + break; + + case 61: /* compControl: ';' */ +#line 300 "./asmparse.y" + { } +#line 3847 "asmparse.cpp" + break; + + case 62: /* customDescr: _CUSTOM customType */ +#line 304 "./asmparse.y" + { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[0].token), NULL); } +#line 3853 "asmparse.cpp" + break; + + case 63: /* customDescr: _CUSTOM customType '=' compQstring */ +#line 305 "./asmparse.y" + { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].token), (yyvsp[0].binstr)); } +#line 3859 "asmparse.cpp" + break; + + case 64: /* customDescr: _CUSTOM customType '=' '{' customBlobDescr '}' */ +#line 306 "./asmparse.y" + { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-4].token), (yyvsp[-1].binstr)); } +#line 3865 "asmparse.cpp" + break; + + case 65: /* customDescr: customHead bytes ')' */ +#line 307 "./asmparse.y" + { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } +#line 3871 "asmparse.cpp" + break; + + case 66: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType */ +#line 310 "./asmparse.y" + { (yyval.cad) = new CustomDescr((yyvsp[-2].token), (yyvsp[0].token), NULL); } +#line 3877 "asmparse.cpp" + break; + + case 67: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' compQstring */ +#line 311 "./asmparse.y" + { (yyval.cad) = new CustomDescr((yyvsp[-4].token), (yyvsp[-2].token), (yyvsp[0].binstr)); } +#line 3883 "asmparse.cpp" + break; + + case 68: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}' */ +#line 313 "./asmparse.y" + { (yyval.cad) = new CustomDescr((yyvsp[-6].token), (yyvsp[-4].token), (yyvsp[-1].binstr)); } +#line 3889 "asmparse.cpp" + break; + + case 69: /* customDescrWithOwner: customHeadWithOwner bytes ')' */ +#line 314 "./asmparse.y" + { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } +#line 3895 "asmparse.cpp" + break; + + case 70: /* customHead: _CUSTOM customType '=' '(' */ +#line 317 "./asmparse.y" + { (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } +#line 3901 "asmparse.cpp" + break; + + case 71: /* customHeadWithOwner: _CUSTOM '(' ownerType ')' customType '=' '(' */ +#line 321 "./asmparse.y" + { PASM->m_pCustomDescrList = NULL; + PASM->m_tkCurrentCVOwner = (yyvsp[-4].token); + (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } +#line 3909 "asmparse.cpp" + break; + + case 72: /* customType: methodRef */ +#line 326 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); } +#line 3915 "asmparse.cpp" + break; + + case 73: /* ownerType: typeSpec */ +#line 329 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); } +#line 3921 "asmparse.cpp" + break; + + case 74: /* ownerType: memberRef */ +#line 330 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); } +#line 3927 "asmparse.cpp" + break; + + case 75: /* customBlobDescr: customBlobArgs customBlobNVPairs */ +#line 334 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt16(VAL16(nCustomBlobNVPairs)); + (yyval.binstr)->append((yyvsp[0].binstr)); nCustomBlobNVPairs = 0; } -#line 6493 "asmparse.cpp" -break; -case 75: - if (!yytrial) -#line 340 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 6499 "asmparse.cpp" -break; -case 76: - if (!yytrial) -#line 341 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); } -#line 6506 "asmparse.cpp" -break; -case 77: - if (!yytrial) -#line 343 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 6512 "asmparse.cpp" -break; -case 78: - if (!yytrial) -#line 346 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 6518 "asmparse.cpp" -break; -case 79: - if (!yytrial) -#line 348 "asmparse.y" -{ yyval.binstr = yyvsp[-5].binstr; yyval.binstr->appendInt8(yyvsp[-4].int32); - yyval.binstr->append(yyvsp[-3].binstr); - AppendStringWithLength(yyval.binstr,yyvsp[-2].string); - AppendFieldToCustomBlob(yyval.binstr,yyvsp[0].binstr); +#line 3936 "asmparse.cpp" + break; + + case 76: /* customBlobArgs: %empty */ +#line 340 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt16(VAL16(0x0001)); } +#line 3942 "asmparse.cpp" + break; + + case 77: /* customBlobArgs: customBlobArgs serInit */ +#line 341 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); } +#line 3949 "asmparse.cpp" + break; + + case 78: /* customBlobArgs: customBlobArgs compControl */ +#line 343 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 3955 "asmparse.cpp" + break; + + case 79: /* customBlobNVPairs: %empty */ +#line 346 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 3961 "asmparse.cpp" + break; + + case 80: /* customBlobNVPairs: customBlobNVPairs fieldOrProp serializType dottedName '=' serInit */ +#line 348 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-5].binstr); (yyval.binstr)->appendInt8((yyvsp[-4].int32)); + (yyval.binstr)->append((yyvsp[-3].binstr)); + AppendStringWithLength((yyval.binstr),(yyvsp[-2].string)); + AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); nCustomBlobNVPairs++; } -#line 6528 "asmparse.cpp" -break; -case 80: - if (!yytrial) -#line 353 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 6534 "asmparse.cpp" -break; -case 81: - if (!yytrial) -#line 356 "asmparse.y" -{ yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 6540 "asmparse.cpp" -break; -case 82: - if (!yytrial) -#line 357 "asmparse.y" -{ yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 6546 "asmparse.cpp" -break; -case 83: - if (!yytrial) -#line 360 "asmparse.y" -{ if(yyvsp[0].cad->tkOwner && !yyvsp[0].cad->tkInterfacePair) - PASM->DefineCV(yyvsp[0].cad); +#line 3971 "asmparse.cpp" + break; + + case 81: /* customBlobNVPairs: customBlobNVPairs compControl */ +#line 353 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 3977 "asmparse.cpp" + break; + + case 82: /* fieldOrProp: FIELD_ */ +#line 356 "./asmparse.y" + { (yyval.int32) = SERIALIZATION_TYPE_FIELD; } +#line 3983 "asmparse.cpp" + break; + + case 83: /* fieldOrProp: PROPERTY_ */ +#line 357 "./asmparse.y" + { (yyval.int32) = SERIALIZATION_TYPE_PROPERTY; } +#line 3989 "asmparse.cpp" + break; + + case 84: /* customAttrDecl: customDescr */ +#line 360 "./asmparse.y" + { if((yyvsp[0].cad)->tkOwner && !(yyvsp[0].cad)->tkInterfacePair) + PASM->DefineCV((yyvsp[0].cad)); else if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); } -#line 6555 "asmparse.cpp" -break; -case 84: - if (!yytrial) -#line 364 "asmparse.y" -{ PASM->DefineCV(yyvsp[0].cad); } -#line 6561 "asmparse.cpp" -break; -case 85: - if (!yytrial) -#line 365 "asmparse.y" -{ CustomDescr* pNew = new CustomDescr(yyvsp[0].tdd->m_pCA); + PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); } +#line 3998 "asmparse.cpp" + break; + + case 85: /* customAttrDecl: customDescrWithOwner */ +#line 364 "./asmparse.y" + { PASM->DefineCV((yyvsp[0].cad)); } +#line 4004 "asmparse.cpp" + break; + + case 86: /* customAttrDecl: TYPEDEF_CA */ +#line 365 "./asmparse.y" + { CustomDescr* pNew = new CustomDescr((yyvsp[0].tdd)->m_pCA); if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; if(pNew->tkOwner) PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 6572 "asmparse.cpp" -break; -case 86: - if (!yytrial) -#line 373 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 6578 "asmparse.cpp" -break; -case 87: - if (!yytrial) -#line 374 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 6584 "asmparse.cpp" -break; -case 88: - if (!yytrial) -#line 375 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 6590 "asmparse.cpp" -break; -case 89: - if (!yytrial) -#line 376 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength(yyval.binstr,yyvsp[0].string); } -#line 6597 "asmparse.cpp" -break; -case 90: - if (!yytrial) -#line 378 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token)); } -#line 6604 "asmparse.cpp" -break; -case 91: - if (!yytrial) -#line 380 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6610 "asmparse.cpp" -break; -case 92: - if (!yytrial) -#line 385 "asmparse.y" -{ PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 6616 "asmparse.cpp" -break; -case 93: - if (!yytrial) -#line 386 "asmparse.y" -{ PASMM->SetModuleName(yyvsp[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 6622 "asmparse.cpp" -break; -case 94: - if (!yytrial) -#line 387 "asmparse.y" -{ BinStr* pbs = new BinStr(); - unsigned L = (unsigned)strlen(yyvsp[0].string); - memcpy((char*)(pbs->getBuff(L)),yyvsp[0].string,L); +#line 4015 "asmparse.cpp" + break; + + case 87: /* serializType: simpleType */ +#line 373 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 4021 "asmparse.cpp" + break; + + case 88: /* serializType: TYPE_ */ +#line 374 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); } +#line 4027 "asmparse.cpp" + break; + + case 89: /* serializType: OBJECT_ */ +#line 375 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } +#line 4033 "asmparse.cpp" + break; + + case 90: /* serializType: ENUM_ CLASS_ SQSTRING */ +#line 376 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); } +#line 4040 "asmparse.cpp" + break; + + case 91: /* serializType: ENUM_ className */ +#line 378 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token))); } +#line 4047 "asmparse.cpp" + break; + + case 92: /* serializType: serializType '[' ']' */ +#line 380 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 4053 "asmparse.cpp" + break; + + case 93: /* moduleHead: _MODULE */ +#line 385 "./asmparse.y" + { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } +#line 4059 "asmparse.cpp" + break; + + case 94: /* moduleHead: _MODULE dottedName */ +#line 386 "./asmparse.y" + { PASMM->SetModuleName((yyvsp[0].string)); PASM->m_tkCurrentCVOwner=1; } +#line 4065 "asmparse.cpp" + break; + + case 95: /* moduleHead: _MODULE EXTERN_ dottedName */ +#line 387 "./asmparse.y" + { BinStr* pbs = new BinStr(); + unsigned L = (unsigned)strlen((yyvsp[0].string)); + memcpy((char*)(pbs->getBuff(L)),(yyvsp[0].string),L); PASM->EmitImport(pbs); delete pbs;} -#line 6631 "asmparse.cpp" -break; -case 95: - if (!yytrial) -#line 394 "asmparse.y" -{ /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ - PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, yyvsp[0].string)); } -#line 6638 "asmparse.cpp" -break; -case 96: - if (!yytrial) -#line 398 "asmparse.y" -{ yyval.int32 = 0; } -#line 6644 "asmparse.cpp" -break; -case 97: - if (!yytrial) -#line 399 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_32BIT; } -#line 6650 "asmparse.cpp" -break; -case 98: - if (!yytrial) -#line 400 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_64BIT; } -#line 6656 "asmparse.cpp" -break; -case 99: - if (!yytrial) -#line 401 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 6662 "asmparse.cpp" -break; -case 100: - if (!yytrial) -#line 402 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 6668 "asmparse.cpp" -break; -case 101: - if (!yytrial) -#line 403 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 6674 "asmparse.cpp" -break; -case 102: - if (!yytrial) -#line 406 "asmparse.y" -{ PASM->m_pVTable = yyvsp[-1].binstr; } -#line 6680 "asmparse.cpp" -break; -case 103: - if (!yytrial) -#line 409 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 6686 "asmparse.cpp" -break; -case 104: - if (!yytrial) -#line 413 "asmparse.y" -{ PASM->StartNameSpace(yyvsp[0].string); } -#line 6692 "asmparse.cpp" -break; -case 105: - if (!yytrial) -#line 416 "asmparse.y" -{ newclass = TRUE; } -#line 6698 "asmparse.cpp" -break; -case 106: - if (!yytrial) -#line 419 "asmparse.y" -{ if(yyvsp[0].typarlist) FixupConstraints(); - PASM->StartClass(yyvsp[-1].string, yyvsp[-2].classAttr, yyvsp[0].typarlist); +#line 4074 "asmparse.cpp" + break; + + case 96: /* vtfixupDecl: _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id */ +#line 394 "./asmparse.y" + { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ + PASM->m_VTFList.PUSH(new VTFEntry((USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (yyvsp[0].string))); } +#line 4081 "asmparse.cpp" + break; + + case 97: /* vtfixupAttr: %empty */ +#line 398 "./asmparse.y" + { (yyval.int32) = 0; } +#line 4087 "asmparse.cpp" + break; + + case 98: /* vtfixupAttr: vtfixupAttr INT32_ */ +#line 399 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_32BIT; } +#line 4093 "asmparse.cpp" + break; + + case 99: /* vtfixupAttr: vtfixupAttr INT64_ */ +#line 400 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_64BIT; } +#line 4099 "asmparse.cpp" + break; + + case 100: /* vtfixupAttr: vtfixupAttr FROMUNMANAGED_ */ +#line 401 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED; } +#line 4105 "asmparse.cpp" + break; + + case 101: /* vtfixupAttr: vtfixupAttr CALLMOSTDERIVED_ */ +#line 402 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_CALL_MOST_DERIVED; } +#line 4111 "asmparse.cpp" + break; + + case 102: /* vtfixupAttr: vtfixupAttr RETAINAPPDOMAIN_ */ +#line 403 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } +#line 4117 "asmparse.cpp" + break; + + case 103: /* vtableDecl: vtableHead bytes ')' */ +#line 406 "./asmparse.y" + { PASM->m_pVTable = (yyvsp[-1].binstr); } +#line 4123 "asmparse.cpp" + break; + + case 104: /* vtableHead: _VTABLE '=' '(' */ +#line 409 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 4129 "asmparse.cpp" + break; + + case 105: /* nameSpaceHead: _NAMESPACE dottedName */ +#line 413 "./asmparse.y" + { PASM->StartNameSpace((yyvsp[0].string)); } +#line 4135 "asmparse.cpp" + break; + + case 106: /* _class: _CLASS */ +#line 416 "./asmparse.y" + { newclass = TRUE; } +#line 4141 "asmparse.cpp" + break; + + case 107: /* classHeadBegin: _class classAttr dottedName typarsClause */ +#line 419 "./asmparse.y" + { if((yyvsp[0].typarlist)) FixupConstraints(); + PASM->StartClass((yyvsp[-1].string), (yyvsp[-2].classAttr), (yyvsp[0].typarlist)); TyParFixupList.RESET(false); newclass = FALSE; } -#line 6708 "asmparse.cpp" -break; -case 107: - if (!yytrial) -#line 425 "asmparse.y" -{ PASM->AddClass(); } -#line 6714 "asmparse.cpp" -break; -case 108: - if (!yytrial) -#line 428 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) 0; } -#line 6720 "asmparse.cpp" -break; -case 109: - if (!yytrial) -#line 429 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 6726 "asmparse.cpp" -break; -case 110: - if (!yytrial) -#line 430 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 6732 "asmparse.cpp" -break; -case 111: - if (!yytrial) -#line 431 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x80000000 | tdSealed); } -#line 6738 "asmparse.cpp" -break; -case 112: - if (!yytrial) -#line 432 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | 0x40000000); } -#line 6744 "asmparse.cpp" -break; -case 113: - if (!yytrial) -#line 433 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdInterface | tdAbstract); } -#line 6750 "asmparse.cpp" -break; -case 114: - if (!yytrial) -#line 434 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSealed); } -#line 6756 "asmparse.cpp" -break; -case 115: - if (!yytrial) -#line 435 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdAbstract); } -#line 6762 "asmparse.cpp" -break; -case 116: - if (!yytrial) -#line 436 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 6768 "asmparse.cpp" -break; -case 117: - if (!yytrial) -#line 437 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 6774 "asmparse.cpp" -break; -case 118: - if (!yytrial) -#line 438 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 6780 "asmparse.cpp" -break; -case 119: - if (!yytrial) -#line 439 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 6786 "asmparse.cpp" -break; -case 120: - if (!yytrial) -#line 440 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 6792 "asmparse.cpp" -break; -case 121: - if (!yytrial) -#line 441 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 6798 "asmparse.cpp" -break; -case 122: - if (!yytrial) -#line 442 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdImport); } -#line 6804 "asmparse.cpp" -break; -case 123: - if (!yytrial) -#line 443 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSerializable); } -#line 6810 "asmparse.cpp" -break; -case 124: - if (!yytrial) -#line 444 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdWindowsRuntime); } -#line 6816 "asmparse.cpp" -break; -case 125: - if (!yytrial) -#line 445 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 6822 "asmparse.cpp" -break; -case 126: - if (!yytrial) -#line 446 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 6828 "asmparse.cpp" -break; -case 127: - if (!yytrial) -#line 447 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 6834 "asmparse.cpp" -break; -case 128: - if (!yytrial) -#line 448 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 6840 "asmparse.cpp" -break; -case 129: - if (!yytrial) -#line 449 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 6846 "asmparse.cpp" -break; -case 130: - if (!yytrial) -#line 450 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) ((yyvsp[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 6852 "asmparse.cpp" -break; -case 131: - if (!yytrial) -#line 451 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdBeforeFieldInit); } -#line 6858 "asmparse.cpp" -break; -case 132: - if (!yytrial) -#line 452 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr | tdSpecialName); } -#line 6864 "asmparse.cpp" -break; -case 133: - if (!yytrial) -#line 453 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].classAttr); } -#line 6870 "asmparse.cpp" -break; -case 134: - if (!yytrial) -#line 454 "asmparse.y" -{ yyval.classAttr = (CorRegTypeAttr) (yyvsp[-1].int32); } -#line 6876 "asmparse.cpp" -break; -case 136: - if (!yytrial) -#line 458 "asmparse.y" -{ PASM->m_crExtends = yyvsp[0].token; } -#line 6882 "asmparse.cpp" -break; -case 141: - if (!yytrial) -#line 469 "asmparse.y" -{ PASM->AddToImplList(yyvsp[0].token); } -#line 6888 "asmparse.cpp" -break; -case 142: - if (!yytrial) -#line 470 "asmparse.y" -{ PASM->AddToImplList(yyvsp[0].token); } -#line 6894 "asmparse.cpp" -break; -case 143: - if (!yytrial) -#line 474 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 6900 "asmparse.cpp" -break; -case 144: - if (!yytrial) -#line 475 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 6906 "asmparse.cpp" -break; -case 145: - if (!yytrial) -#line 478 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6912 "asmparse.cpp" -break; -case 146: - if (!yytrial) -#line 479 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->appendInt32(yyvsp[0].token); } -#line 6918 "asmparse.cpp" -break; -case 147: - if (!yytrial) -#line 482 "asmparse.y" -{ yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 6924 "asmparse.cpp" -break; -case 148: - if (!yytrial) -#line 483 "asmparse.y" -{ yyval.typarlist = yyvsp[-1].typarlist; PASM->m_TyParList = yyvsp[-1].typarlist;} -#line 6930 "asmparse.cpp" -break; -case 149: - if (!yytrial) -#line 486 "asmparse.y" -{ yyval.int32 = gpCovariant; } -#line 6936 "asmparse.cpp" -break; -case 150: - if (!yytrial) -#line 487 "asmparse.y" -{ yyval.int32 = gpContravariant; } -#line 6942 "asmparse.cpp" -break; -case 151: - if (!yytrial) -#line 488 "asmparse.y" -{ yyval.int32 = gpReferenceTypeConstraint; } -#line 6948 "asmparse.cpp" -break; -case 152: - if (!yytrial) -#line 489 "asmparse.y" -{ yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 6954 "asmparse.cpp" -break; -case 153: - if (!yytrial) -#line 490 "asmparse.y" -{ yyval.int32 = gpAcceptByRefLike; } -#line 6960 "asmparse.cpp" -break; -case 154: - if (!yytrial) -#line 491 "asmparse.y" -{ yyval.int32 = gpDefaultConstructorConstraint; } -#line 6966 "asmparse.cpp" -break; -case 155: - if (!yytrial) -#line 492 "asmparse.y" -{ yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 6972 "asmparse.cpp" -break; -case 156: - if (!yytrial) -#line 495 "asmparse.y" -{ yyval.int32 = 0; } -#line 6978 "asmparse.cpp" -break; -case 157: - if (!yytrial) -#line 496 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 6984 "asmparse.cpp" -break; -case 158: - if (!yytrial) -#line 499 "asmparse.y" -{ yyval.int32 = (CorGenericParamAttr)yyvsp[-1].int32; } -#line 6990 "asmparse.cpp" -break; -case 159: - if (!yytrial) -#line 502 "asmparse.y" -{ yyval.int32 = 0; } -#line 6996 "asmparse.cpp" -break; -case 160: - if (!yytrial) -#line 503 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | yyvsp[0].int32; } -#line 7002 "asmparse.cpp" -break; -case 161: - if (!yytrial) -#line 506 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].token, NULL, yyvsp[-1].string, yyvsp[0].typarlist); } -#line 7008 "asmparse.cpp" -break; -case 162: - if (!yytrial) -#line 507 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-3].int32, yyvsp[-2].binstr, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7014 "asmparse.cpp" -break; -case 163: - if (!yytrial) -#line 508 "asmparse.y" -{yyval.typarlist = new TyParList(yyvsp[-2].int32, NULL, yyvsp[-1].string, yyvsp[0].typarlist);} -#line 7020 "asmparse.cpp" -break; -case 164: - if (!yytrial) -#line 511 "asmparse.y" -{ yyval.typarlist = NULL; } -#line 7026 "asmparse.cpp" -break; -case 165: - if (!yytrial) -#line 512 "asmparse.y" -{ yyval.typarlist = yyvsp[0].typarlist; } -#line 7032 "asmparse.cpp" -break; -case 166: - if (!yytrial) -#line 515 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 7038 "asmparse.cpp" -break; -case 167: - if (!yytrial) -#line 518 "asmparse.y" -{ yyval.int32= 0; } -#line 7044 "asmparse.cpp" -break; -case 168: - if (!yytrial) -#line 519 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 7050 "asmparse.cpp" -break; -case 169: - if (!yytrial) -#line 522 "asmparse.y" -{ yyval.int32 = yyvsp[-2].int32; } -#line 7056 "asmparse.cpp" -break; -case 170: - if (!yytrial) -#line 526 "asmparse.y" -{ if(PASM->m_pCurMethod->m_ulLines[1] ==0) - { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; - PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} - PASM->EndMethod(); } -#line 7065 "asmparse.cpp" -break; -case 171: - if (!yytrial) -#line 530 "asmparse.y" -{ PASM->EndClass(); } -#line 7071 "asmparse.cpp" -break; -case 172: - if (!yytrial) -#line 531 "asmparse.y" -{ PASM->EndEvent(); } -#line 7077 "asmparse.cpp" -break; -case 173: - if (!yytrial) -#line 532 "asmparse.y" -{ PASM->EndProp(); } -#line 7083 "asmparse.cpp" -break; -case 179: - if (!yytrial) -#line 538 "asmparse.y" -{ PASM->m_pCurClass->m_ulSize = yyvsp[0].int32; } -#line 7089 "asmparse.cpp" -break; -case 180: - if (!yytrial) -#line 539 "asmparse.y" -{ PASM->m_pCurClass->m_ulPack = yyvsp[0].int32; } -#line 7095 "asmparse.cpp" -break; -case 181: - if (!yytrial) -#line 540 "asmparse.y" -{ PASMM->EndComType(); } -#line 7101 "asmparse.cpp" -break; -case 182: - if (!yytrial) -#line 542 "asmparse.y" -{ BinStr *sig1 = parser->MakeSig(yyvsp[-7].int32, yyvsp[-6].binstr, yyvsp[-1].binstr); - BinStr *sig2 = new BinStr(); sig2->append(sig1); - PASM->AddMethodImpl(yyvsp[-11].token,yyvsp[-9].string,sig1,yyvsp[-5].token,yyvsp[-3].string,sig2); - PASM->ResetArgNameList(); +#line 4151 "asmparse.cpp" + break; + + case 108: /* classHead: classHeadBegin extendsClause implClause */ +#line 425 "./asmparse.y" + { PASM->AddClass(); } +#line 4157 "asmparse.cpp" + break; + + case 109: /* classAttr: %empty */ +#line 428 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) 0; } +#line 4163 "asmparse.cpp" + break; + + case 110: /* classAttr: classAttr PUBLIC_ */ +#line 429 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdPublic); } +#line 4169 "asmparse.cpp" + break; + + case 111: /* classAttr: classAttr PRIVATE_ */ +#line 430 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdNotPublic); } +#line 4175 "asmparse.cpp" + break; + + case 112: /* classAttr: classAttr VALUE_ */ +#line 431 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x80000000 | tdSealed); } +#line 4181 "asmparse.cpp" + break; + + case 113: /* classAttr: classAttr ENUM_ */ +#line 432 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x40000000); } +#line 4187 "asmparse.cpp" + break; + + case 114: /* classAttr: classAttr INTERFACE_ */ +#line 433 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdInterface | tdAbstract); } +#line 4193 "asmparse.cpp" + break; + + case 115: /* classAttr: classAttr SEALED_ */ +#line 434 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSealed); } +#line 4199 "asmparse.cpp" + break; + + case 116: /* classAttr: classAttr ABSTRACT_ */ +#line 435 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdAbstract); } +#line 4205 "asmparse.cpp" + break; + + case 117: /* classAttr: classAttr AUTO_ */ +#line 436 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdAutoLayout); } +#line 4211 "asmparse.cpp" + break; + + case 118: /* classAttr: classAttr SEQUENTIAL_ */ +#line 437 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdSequentialLayout); } +#line 4217 "asmparse.cpp" + break; + + case 119: /* classAttr: classAttr EXPLICIT_ */ +#line 438 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdExplicitLayout); } +#line 4223 "asmparse.cpp" + break; + + case 120: /* classAttr: classAttr ANSI_ */ +#line 439 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAnsiClass); } +#line 4229 "asmparse.cpp" + break; + + case 121: /* classAttr: classAttr UNICODE_ */ +#line 440 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdUnicodeClass); } +#line 4235 "asmparse.cpp" + break; + + case 122: /* classAttr: classAttr AUTOCHAR_ */ +#line 441 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAutoClass); } +#line 4241 "asmparse.cpp" + break; + + case 123: /* classAttr: classAttr IMPORT_ */ +#line 442 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdImport); } +#line 4247 "asmparse.cpp" + break; + + case 124: /* classAttr: classAttr SERIALIZABLE_ */ +#line 443 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSerializable); } +#line 4253 "asmparse.cpp" + break; + + case 125: /* classAttr: classAttr WINDOWSRUNTIME_ */ +#line 444 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdWindowsRuntime); } +#line 4259 "asmparse.cpp" + break; + + case 126: /* classAttr: classAttr NESTED_ PUBLIC_ */ +#line 445 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPublic); } +#line 4265 "asmparse.cpp" + break; + + case 127: /* classAttr: classAttr NESTED_ PRIVATE_ */ +#line 446 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPrivate); } +#line 4271 "asmparse.cpp" + break; + + case 128: /* classAttr: classAttr NESTED_ FAMILY_ */ +#line 447 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamily); } +#line 4277 "asmparse.cpp" + break; + + case 129: /* classAttr: classAttr NESTED_ ASSEMBLY_ */ +#line 448 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedAssembly); } +#line 4283 "asmparse.cpp" + break; + + case 130: /* classAttr: classAttr NESTED_ FAMANDASSEM_ */ +#line 449 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamANDAssem); } +#line 4289 "asmparse.cpp" + break; + + case 131: /* classAttr: classAttr NESTED_ FAMORASSEM_ */ +#line 450 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamORAssem); } +#line 4295 "asmparse.cpp" + break; + + case 132: /* classAttr: classAttr BEFOREFIELDINIT_ */ +#line 451 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdBeforeFieldInit); } +#line 4301 "asmparse.cpp" + break; + + case 133: /* classAttr: classAttr SPECIALNAME_ */ +#line 452 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSpecialName); } +#line 4307 "asmparse.cpp" + break; + + case 134: /* classAttr: classAttr RTSPECIALNAME_ */ +#line 453 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr)); } +#line 4313 "asmparse.cpp" + break; + + case 135: /* classAttr: classAttr FLAGS_ '(' int32 ')' */ +#line 454 "./asmparse.y" + { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].int32)); } +#line 4319 "asmparse.cpp" + break; + + case 137: /* extendsClause: EXTENDS_ typeSpec */ +#line 458 "./asmparse.y" + { PASM->m_crExtends = (yyvsp[0].token); } +#line 4325 "asmparse.cpp" + break; + + case 142: /* implList: implList ',' typeSpec */ +#line 469 "./asmparse.y" + { PASM->AddToImplList((yyvsp[0].token)); } +#line 4331 "asmparse.cpp" + break; + + case 143: /* implList: typeSpec */ +#line 470 "./asmparse.y" + { PASM->AddToImplList((yyvsp[0].token)); } +#line 4337 "asmparse.cpp" + break; + + case 144: /* typeList: %empty */ +#line 474 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 4343 "asmparse.cpp" + break; + + case 145: /* typeList: typeListNotEmpty */ +#line 475 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 4349 "asmparse.cpp" + break; + + case 146: /* typeListNotEmpty: typeSpec */ +#line 478 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[0].token)); } +#line 4355 "asmparse.cpp" + break; + + case 147: /* typeListNotEmpty: typeListNotEmpty ',' typeSpec */ +#line 479 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->appendInt32((yyvsp[0].token)); } +#line 4361 "asmparse.cpp" + break; + + case 148: /* typarsClause: %empty */ +#line 482 "./asmparse.y" + { (yyval.typarlist) = NULL; PASM->m_TyParList = NULL;} +#line 4367 "asmparse.cpp" + break; + + case 149: /* typarsClause: '<' typars '>' */ +#line 483 "./asmparse.y" + { (yyval.typarlist) = (yyvsp[-1].typarlist); PASM->m_TyParList = (yyvsp[-1].typarlist);} +#line 4373 "asmparse.cpp" + break; + + case 150: /* typarAttrib: '+' */ +#line 486 "./asmparse.y" + { (yyval.int32) = gpCovariant; } +#line 4379 "asmparse.cpp" + break; + + case 151: /* typarAttrib: '-' */ +#line 487 "./asmparse.y" + { (yyval.int32) = gpContravariant; } +#line 4385 "asmparse.cpp" + break; + + case 152: /* typarAttrib: CLASS_ */ +#line 488 "./asmparse.y" + { (yyval.int32) = gpReferenceTypeConstraint; } +#line 4391 "asmparse.cpp" + break; + + case 153: /* typarAttrib: VALUETYPE_ */ +#line 489 "./asmparse.y" + { (yyval.int32) = gpNotNullableValueTypeConstraint; } +#line 4397 "asmparse.cpp" + break; + + case 154: /* typarAttrib: BYREFLIKE_ */ +#line 490 "./asmparse.y" + { (yyval.int32) = gpAcceptByRefLike; } +#line 4403 "asmparse.cpp" + break; + + case 155: /* typarAttrib: _CTOR */ +#line 491 "./asmparse.y" + { (yyval.int32) = gpDefaultConstructorConstraint; } +#line 4409 "asmparse.cpp" + break; + + case 156: /* typarAttrib: FLAGS_ '(' int32 ')' */ +#line 492 "./asmparse.y" + { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } +#line 4415 "asmparse.cpp" + break; + + case 157: /* typarAttribs: %empty */ +#line 495 "./asmparse.y" + { (yyval.int32) = 0; } +#line 4421 "asmparse.cpp" + break; + + case 158: /* typarAttribs: typarAttrib typarAttribs */ +#line 496 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } +#line 4427 "asmparse.cpp" + break; + + case 159: /* conTyparAttrib: FLAGS_ '(' int32 ')' */ +#line 499 "./asmparse.y" + { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } +#line 4433 "asmparse.cpp" + break; + + case 160: /* conTyparAttribs: %empty */ +#line 502 "./asmparse.y" + { (yyval.int32) = 0; } +#line 4439 "asmparse.cpp" + break; + + case 161: /* conTyparAttribs: conTyparAttrib conTyparAttribs */ +#line 503 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } +#line 4445 "asmparse.cpp" + break; + + case 162: /* typars: CONST_ conTyparAttribs typeSpec dottedName typarsRest */ +#line 506 "./asmparse.y" + {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].token), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist)); } +#line 4451 "asmparse.cpp" + break; + + case 163: /* typars: typarAttribs tyBound dottedName typarsRest */ +#line 507 "./asmparse.y" + {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].binstr), (yyvsp[-1].string), (yyvsp[0].typarlist));} +#line 4457 "asmparse.cpp" + break; + + case 164: /* typars: typarAttribs dottedName typarsRest */ +#line 508 "./asmparse.y" + {(yyval.typarlist) = new TyParList((yyvsp[-2].int32), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist));} +#line 4463 "asmparse.cpp" + break; + + case 165: /* typarsRest: %empty */ +#line 511 "./asmparse.y" + { (yyval.typarlist) = NULL; } +#line 4469 "asmparse.cpp" + break; + + case 166: /* typarsRest: ',' typars */ +#line 512 "./asmparse.y" + { (yyval.typarlist) = (yyvsp[0].typarlist); } +#line 4475 "asmparse.cpp" + break; + + case 167: /* tyBound: '(' typeList ')' */ +#line 515 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 4481 "asmparse.cpp" + break; + + case 168: /* genArity: %empty */ +#line 518 "./asmparse.y" + { (yyval.int32)= 0; } +#line 4487 "asmparse.cpp" + break; + + case 169: /* genArity: genArityNotEmpty */ +#line 519 "./asmparse.y" + { (yyval.int32) = (yyvsp[0].int32); } +#line 4493 "asmparse.cpp" + break; + + case 170: /* genArityNotEmpty: '<' '[' int32 ']' '>' */ +#line 522 "./asmparse.y" + { (yyval.int32) = (yyvsp[-2].int32); } +#line 4499 "asmparse.cpp" + break; + + case 171: /* classDecl: methodHead methodDecls '}' */ +#line 526 "./asmparse.y" + { if(PASM->m_pCurMethod->m_ulLines[1] ==0) + { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; + PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} + PASM->EndMethod(); } +#line 4508 "asmparse.cpp" + break; + + case 172: /* classDecl: classHead '{' classDecls '}' */ +#line 530 "./asmparse.y" + { PASM->EndClass(); } +#line 4514 "asmparse.cpp" + break; + + case 173: /* classDecl: eventHead '{' eventDecls '}' */ +#line 531 "./asmparse.y" + { PASM->EndEvent(); } +#line 4520 "asmparse.cpp" + break; + + case 174: /* classDecl: propHead '{' propDecls '}' */ +#line 532 "./asmparse.y" + { PASM->EndProp(); } +#line 4526 "asmparse.cpp" + break; + + case 180: /* classDecl: _SIZE int32 */ +#line 538 "./asmparse.y" + { PASM->m_pCurClass->m_ulSize = (yyvsp[0].int32); } +#line 4532 "asmparse.cpp" + break; + + case 181: /* classDecl: _PACK int32 */ +#line 539 "./asmparse.y" + { PASM->m_pCurClass->m_ulPack = (yyvsp[0].int32); } +#line 4538 "asmparse.cpp" + break; + + case 182: /* classDecl: exportHead '{' exptypeDecls '}' */ +#line 540 "./asmparse.y" + { PASMM->EndComType(); } +#line 4544 "asmparse.cpp" + break; + + case 183: /* classDecl: _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')' */ +#line 542 "./asmparse.y" + { BinStr *sig1 = parser->MakeSig((yyvsp[-7].int32), (yyvsp[-6].binstr), (yyvsp[-1].binstr)); + BinStr *sig2 = new BinStr(); sig2->append(sig1); + PASM->AddMethodImpl((yyvsp[-11].token),(yyvsp[-9].string),sig1,(yyvsp[-5].token),(yyvsp[-3].string),sig2); + PASM->ResetArgNameList(); } -#line 7111 "asmparse.cpp" -break; -case 183: - if (!yytrial) -#line 548 "asmparse.y" -{ PASM->AddMethodImpl(yyvsp[-17].token,yyvsp[-15].string, - (yyvsp[-14].int32==0 ? parser->MakeSig(yyvsp[-19].int32,yyvsp[-18].binstr,yyvsp[-12].binstr) : - parser->MakeSig(yyvsp[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-18].binstr,yyvsp[-12].binstr,yyvsp[-14].int32)), - yyvsp[-6].token,yyvsp[-4].string, - (yyvsp[-3].int32==0 ? parser->MakeSig(yyvsp[-8].int32,yyvsp[-7].binstr,yyvsp[-1].binstr) : - parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32))); +#line 4554 "asmparse.cpp" + break; + + case 184: /* classDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ +#line 548 "./asmparse.y" + { PASM->AddMethodImpl((yyvsp[-17].token),(yyvsp[-15].string), + ((yyvsp[-14].int32)==0 ? parser->MakeSig((yyvsp[-19].int32),(yyvsp[-18].binstr),(yyvsp[-12].binstr)) : + parser->MakeSig((yyvsp[-19].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-18].binstr),(yyvsp[-12].binstr),(yyvsp[-14].int32))), + (yyvsp[-6].token),(yyvsp[-4].string), + ((yyvsp[-3].int32)==0 ? parser->MakeSig((yyvsp[-8].int32),(yyvsp[-7].binstr),(yyvsp[-1].binstr)) : + parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32)))); PASM->ResetArgNameList(); } -#line 7124 "asmparse.cpp" -break; -case 186: - if (!yytrial) -#line 558 "asmparse.y" -{ if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yyvsp[-1].int32-1].CAList(); +#line 4567 "asmparse.cpp" + break; + + case 187: /* classDecl: _PARAM TYPE_ '[' int32 ']' */ +#line 558 "./asmparse.y" + { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurClass->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[(yyvsp[-1].int32)-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 7134 "asmparse.cpp" -break; -case 187: - if (!yytrial) -#line 563 "asmparse.y" -{ int n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); +#line 4577 "asmparse.cpp" + break; + + case 188: /* classDecl: _PARAM TYPE_ dottedName */ +#line 563 "./asmparse.y" + { int n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else - PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); + PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); } -#line 7145 "asmparse.cpp" -break; -case 188: - if (!yytrial) -#line 569 "asmparse.y" -{ PASM->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 7151 "asmparse.cpp" -break; -case 189: - if (!yytrial) -#line 570 "asmparse.y" -{ PASM->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 7157 "asmparse.cpp" -break; -case 190: - if (!yytrial) -#line 571 "asmparse.y" -{ yyvsp[0].cad->tkInterfacePair = yyvsp[-1].token; +#line 4588 "asmparse.cpp" + break; + + case 189: /* classDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ +#line 569 "./asmparse.y" + { PASM->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } +#line 4594 "asmparse.cpp" + break; + + case 190: /* classDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ +#line 570 "./asmparse.y" + { PASM->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } +#line 4600 "asmparse.cpp" + break; + + case 191: /* classDecl: _INTERFACEIMPL TYPE_ typeSpec customDescr */ +#line 571 "./asmparse.y" + { (yyvsp[0].cad)->tkInterfacePair = (yyvsp[-1].token); if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH(yyvsp[0].cad); + PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); } -#line 7166 "asmparse.cpp" -break; -case 191: - if (!yytrial) -#line 579 "asmparse.y" -{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - PASM->AddField(yyvsp[-2].string, yyvsp[-3].binstr, yyvsp[-4].fieldAttr, yyvsp[-1].string, yyvsp[0].binstr, yyvsp[-5].int32); } -#line 7173 "asmparse.cpp" -break; -case 192: - if (!yytrial) -#line 583 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) 0; } -#line 7179 "asmparse.cpp" -break; -case 193: - if (!yytrial) -#line 584 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdStatic); } -#line 7185 "asmparse.cpp" -break; -case 194: - if (!yytrial) -#line 585 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 7191 "asmparse.cpp" -break; -case 195: - if (!yytrial) -#line 586 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 7197 "asmparse.cpp" -break; -case 196: - if (!yytrial) -#line 587 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 7203 "asmparse.cpp" -break; -case 197: - if (!yytrial) -#line 588 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdInitOnly); } -#line 7209 "asmparse.cpp" -break; -case 198: - if (!yytrial) -#line 589 "asmparse.y" -{ yyval.fieldAttr = yyvsp[-1].fieldAttr; } -#line 7215 "asmparse.cpp" -break; -case 199: - if (!yytrial) -#line 590 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdSpecialName); } -#line 7221 "asmparse.cpp" -break; -case 200: - if (!yytrial) -#line 603 "asmparse.y" -{ PASM->m_pMarshal = yyvsp[-1].binstr; } -#line 7227 "asmparse.cpp" -break; -case 201: - if (!yytrial) -#line 604 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 7233 "asmparse.cpp" -break; -case 202: - if (!yytrial) -#line 605 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 7239 "asmparse.cpp" -break; -case 203: - if (!yytrial) -#line 606 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 7245 "asmparse.cpp" -break; -case 204: - if (!yytrial) -#line 607 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) ((yyvsp[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 7251 "asmparse.cpp" -break; -case 205: - if (!yytrial) -#line 608 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdLiteral); } -#line 7257 "asmparse.cpp" -break; -case 206: - if (!yytrial) -#line 609 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].fieldAttr | fdNotSerialized); } -#line 7263 "asmparse.cpp" -break; -case 207: - if (!yytrial) -#line 610 "asmparse.y" -{ yyval.fieldAttr = (CorFieldAttr) (yyvsp[-1].int32); } -#line 7269 "asmparse.cpp" -break; -case 208: - if (!yytrial) -#line 613 "asmparse.y" -{ yyval.string = 0; } -#line 7275 "asmparse.cpp" -break; -case 209: - if (!yytrial) -#line 614 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 7281 "asmparse.cpp" -break; -case 210: - if (!yytrial) -#line 617 "asmparse.y" -{ yyval.binstr = NULL; } -#line 7287 "asmparse.cpp" -break; -case 211: - if (!yytrial) -#line 618 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 7293 "asmparse.cpp" -break; -case 212: - if (!yytrial) -#line 621 "asmparse.y" -{ yyval.int32 = 0xFFFFFFFF; } -#line 7299 "asmparse.cpp" -break; -case 213: - if (!yytrial) -#line 622 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32; } -#line 7305 "asmparse.cpp" -break; -case 214: - if (!yytrial) -#line 627 "asmparse.y" -{ PASM->ResetArgNameList(); - if (yyvsp[-3].binstr == NULL) +#line 4609 "asmparse.cpp" + break; + + case 192: /* fieldDecl: _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt */ +#line 579 "./asmparse.y" + { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + PASM->AddField((yyvsp[-2].string), (yyvsp[-3].binstr), (yyvsp[-4].fieldAttr), (yyvsp[-1].string), (yyvsp[0].binstr), (yyvsp[-5].int32)); } +#line 4616 "asmparse.cpp" + break; + + case 193: /* fieldAttr: %empty */ +#line 583 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) 0; } +#line 4622 "asmparse.cpp" + break; + + case 194: /* fieldAttr: fieldAttr STATIC_ */ +#line 584 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdStatic); } +#line 4628 "asmparse.cpp" + break; + + case 195: /* fieldAttr: fieldAttr PUBLIC_ */ +#line 585 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPublic); } +#line 4634 "asmparse.cpp" + break; + + case 196: /* fieldAttr: fieldAttr PRIVATE_ */ +#line 586 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivate); } +#line 4640 "asmparse.cpp" + break; + + case 197: /* fieldAttr: fieldAttr FAMILY_ */ +#line 587 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamily); } +#line 4646 "asmparse.cpp" + break; + + case 198: /* fieldAttr: fieldAttr INITONLY_ */ +#line 588 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdInitOnly); } +#line 4652 "asmparse.cpp" + break; + + case 199: /* fieldAttr: fieldAttr RTSPECIALNAME_ */ +#line 589 "./asmparse.y" + { (yyval.fieldAttr) = (yyvsp[-1].fieldAttr); } +#line 4658 "asmparse.cpp" + break; + + case 200: /* fieldAttr: fieldAttr SPECIALNAME_ */ +#line 590 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdSpecialName); } +#line 4664 "asmparse.cpp" + break; + + case 201: /* fieldAttr: fieldAttr MARSHAL_ '(' marshalBlob ')' */ +#line 603 "./asmparse.y" + { PASM->m_pMarshal = (yyvsp[-1].binstr); } +#line 4670 "asmparse.cpp" + break; + + case 202: /* fieldAttr: fieldAttr ASSEMBLY_ */ +#line 604 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdAssembly); } +#line 4676 "asmparse.cpp" + break; + + case 203: /* fieldAttr: fieldAttr FAMANDASSEM_ */ +#line 605 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamANDAssem); } +#line 4682 "asmparse.cpp" + break; + + case 204: /* fieldAttr: fieldAttr FAMORASSEM_ */ +#line 606 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamORAssem); } +#line 4688 "asmparse.cpp" + break; + + case 205: /* fieldAttr: fieldAttr PRIVATESCOPE_ */ +#line 607 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivateScope); } +#line 4694 "asmparse.cpp" + break; + + case 206: /* fieldAttr: fieldAttr LITERAL_ */ +#line 608 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdLiteral); } +#line 4700 "asmparse.cpp" + break; + + case 207: /* fieldAttr: fieldAttr NOTSERIALIZED_ */ +#line 609 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdNotSerialized); } +#line 4706 "asmparse.cpp" + break; + + case 208: /* fieldAttr: fieldAttr FLAGS_ '(' int32 ')' */ +#line 610 "./asmparse.y" + { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].int32)); } +#line 4712 "asmparse.cpp" + break; + + case 209: /* atOpt: %empty */ +#line 613 "./asmparse.y" + { (yyval.string) = 0; } +#line 4718 "asmparse.cpp" + break; + + case 210: /* atOpt: AT_ id */ +#line 614 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 4724 "asmparse.cpp" + break; + + case 211: /* initOpt: %empty */ +#line 617 "./asmparse.y" + { (yyval.binstr) = NULL; } +#line 4730 "asmparse.cpp" + break; + + case 212: /* initOpt: '=' fieldInit */ +#line 618 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 4736 "asmparse.cpp" + break; + + case 213: /* repeatOpt: %empty */ +#line 621 "./asmparse.y" + { (yyval.int32) = 0xFFFFFFFF; } +#line 4742 "asmparse.cpp" + break; + + case 214: /* repeatOpt: '[' int32 ']' */ +#line 622 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32); } +#line 4748 "asmparse.cpp" + break; + + case 215: /* methodRef: callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')' */ +#line 627 "./asmparse.y" + { PASM->ResetArgNameList(); + if ((yyvsp[-3].binstr) == NULL) { - if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, parser->MakeSig(yyvsp[-8].int32|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr)); + if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + (yyval.token) = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), parser->MakeSig((yyvsp[-8].int32)|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr))); } else { mdToken mr; - if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, - parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, corCountArgs(yyvsp[-3].binstr))); - yyval.token = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); + if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), + parser->MakeSig((yyvsp[-8].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr), corCountArgs((yyvsp[-3].binstr)))); + (yyval.token) = PASM->MakeMethodSpec(mr, + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); } } -#line 7326 "asmparse.cpp" -break; -case 215: - if (!yytrial) -#line 644 "asmparse.y" -{ PASM->ResetArgNameList(); - if((iCallConv)&&((yyvsp[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(yyvsp[-6].token, yyvsp[-4].string, - parser->MakeSig(yyvsp[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-7].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); +#line 4769 "asmparse.cpp" + break; + + case 216: /* methodRef: callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')' */ +#line 644 "./asmparse.y" + { PASM->ResetArgNameList(); + if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + (yyval.token) = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), + parser->MakeSig((yyvsp[-8].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); } -#line 7336 "asmparse.cpp" -break; -case 216: - if (!yytrial) -#line 650 "asmparse.y" -{ PASM->ResetArgNameList(); - if (yyvsp[-3].binstr == NULL) +#line 4779 "asmparse.cpp" + break; + + case 217: /* methodRef: callConv type methodName tyArgs0 '(' sigArgs0 ')' */ +#line 650 "./asmparse.y" + { PASM->ResetArgNameList(); + if ((yyvsp[-3].binstr) == NULL) { - if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr)); + if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + (yyval.token) = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32)|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr))); } else { mdToken mr; - if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, corCountArgs(yyvsp[-3].binstr))); - yyval.token = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yyvsp[-3].binstr)); + if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr), corCountArgs((yyvsp[-3].binstr)))); + (yyval.token) = PASM->MakeMethodSpec(mr, + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); } } -#line 7356 "asmparse.cpp" -break; -case 217: - if (!yytrial) -#line 666 "asmparse.y" -{ PASM->ResetArgNameList(); - if((iCallConv)&&((yyvsp[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - yyval.token = PASM->MakeMemberRef(mdTokenNil, yyvsp[-4].string, parser->MakeSig(yyvsp[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yyvsp[-5].binstr, yyvsp[-1].binstr, yyvsp[-3].int32)); +#line 4799 "asmparse.cpp" + break; + + case 218: /* methodRef: callConv type methodName genArityNotEmpty '(' sigArgs0 ')' */ +#line 666 "./asmparse.y" + { PASM->ResetArgNameList(); + if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + (yyval.token) = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); } -#line 7365 "asmparse.cpp" -break; -case 218: - if (!yytrial) -#line 670 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 7371 "asmparse.cpp" -break; -case 219: - if (!yytrial) -#line 671 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7377 "asmparse.cpp" -break; -case 220: - if (!yytrial) -#line 672 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 7383 "asmparse.cpp" -break; -case 221: - if (!yytrial) -#line 675 "asmparse.y" -{ yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 7389 "asmparse.cpp" -break; -case 222: - if (!yytrial) -#line 676 "asmparse.y" -{ yyval.int32 = (yyvsp[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 7395 "asmparse.cpp" -break; -case 223: - if (!yytrial) -#line 677 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 7401 "asmparse.cpp" -break; -case 224: - if (!yytrial) -#line 678 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32; } -#line 7407 "asmparse.cpp" -break; -case 225: - if (!yytrial) -#line 681 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7413 "asmparse.cpp" -break; -case 226: - if (!yytrial) -#line 682 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 7419 "asmparse.cpp" -break; -case 227: - if (!yytrial) -#line 683 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 7425 "asmparse.cpp" -break; -case 228: - if (!yytrial) -#line 684 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 7431 "asmparse.cpp" -break; -case 229: - if (!yytrial) -#line 685 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 7437 "asmparse.cpp" -break; -case 230: - if (!yytrial) -#line 686 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 7443 "asmparse.cpp" -break; -case 231: - if (!yytrial) -#line 687 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 7449 "asmparse.cpp" -break; -case 232: - if (!yytrial) -#line 688 "asmparse.y" -{ yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 7455 "asmparse.cpp" -break; -case 233: - if (!yytrial) -#line 691 "asmparse.y" -{ yyval.token = yyvsp[-1].int32; } -#line 7461 "asmparse.cpp" -break; -case 234: - if (!yytrial) -#line 694 "asmparse.y" -{ yyval.token = yyvsp[0].token; +#line 4808 "asmparse.cpp" + break; + + case 219: /* methodRef: mdtoken */ +#line 670 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); } +#line 4814 "asmparse.cpp" + break; + + case 220: /* methodRef: TYPEDEF_M */ +#line 671 "./asmparse.y" + { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } +#line 4820 "asmparse.cpp" + break; + + case 221: /* methodRef: TYPEDEF_MR */ +#line 672 "./asmparse.y" + { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } +#line 4826 "asmparse.cpp" + break; + + case 222: /* callConv: INSTANCE_ callConv */ +#line 675 "./asmparse.y" + { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_HASTHIS); } +#line 4832 "asmparse.cpp" + break; + + case 223: /* callConv: EXPLICIT_ callConv */ +#line 676 "./asmparse.y" + { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } +#line 4838 "asmparse.cpp" + break; + + case 224: /* callConv: callKind */ +#line 677 "./asmparse.y" + { (yyval.int32) = (yyvsp[0].int32); } +#line 4844 "asmparse.cpp" + break; + + case 225: /* callConv: CALLCONV_ '(' int32 ')' */ +#line 678 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32); } +#line 4850 "asmparse.cpp" + break; + + case 226: /* callKind: %empty */ +#line 681 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 4856 "asmparse.cpp" + break; + + case 227: /* callKind: DEFAULT_ */ +#line 682 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 4862 "asmparse.cpp" + break; + + case 228: /* callKind: VARARG_ */ +#line 683 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_VARARG; } +#line 4868 "asmparse.cpp" + break; + + case 229: /* callKind: UNMANAGED_ CDECL_ */ +#line 684 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_C; } +#line 4874 "asmparse.cpp" + break; + + case 230: /* callKind: UNMANAGED_ STDCALL_ */ +#line 685 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_STDCALL; } +#line 4880 "asmparse.cpp" + break; + + case 231: /* callKind: UNMANAGED_ THISCALL_ */ +#line 686 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_THISCALL; } +#line 4886 "asmparse.cpp" + break; + + case 232: /* callKind: UNMANAGED_ FASTCALL_ */ +#line 687 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_FASTCALL; } +#line 4892 "asmparse.cpp" + break; + + case 233: /* callKind: UNMANAGED_ */ +#line 688 "./asmparse.y" + { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } +#line 4898 "asmparse.cpp" + break; + + case 234: /* mdtoken: MDTOKEN_ '(' int32 ')' */ +#line 691 "./asmparse.y" + { (yyval.token) = (yyvsp[-1].int32); } +#line 4904 "asmparse.cpp" + break; + + case 235: /* memberRef: methodSpec methodRef */ +#line 694 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); - PASM->SetMemberRefFixup(yyvsp[0].token,iOpcodeLen); } -#line 7471 "asmparse.cpp" -break; -case 235: - if (!yytrial) -#line 700 "asmparse.y" -{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - yyval.token = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7479 "asmparse.cpp" -break; -case 236: - if (!yytrial) -#line 704 "asmparse.y" -{ yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - yyval.token = PASM->MakeMemberRef(NULL, yyvsp[0].string, yyvsp[-1].binstr); - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7487 "asmparse.cpp" -break; -case 237: - if (!yytrial) -#line 707 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7494 "asmparse.cpp" -break; -case 238: - if (!yytrial) -#line 709 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7501 "asmparse.cpp" -break; -case 239: - if (!yytrial) -#line 711 "asmparse.y" -{ yyval.token = yyvsp[0].token; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 7508 "asmparse.cpp" -break; -case 240: - if (!yytrial) -#line 716 "asmparse.y" -{ PASM->ResetEvent(yyvsp[0].string, yyvsp[-1].token, yyvsp[-2].eventAttr); } -#line 7514 "asmparse.cpp" -break; -case 241: - if (!yytrial) -#line 717 "asmparse.y" -{ PASM->ResetEvent(yyvsp[0].string, mdTypeRefNil, yyvsp[-1].eventAttr); } -#line 7520 "asmparse.cpp" -break; -case 242: - if (!yytrial) -#line 721 "asmparse.y" -{ yyval.eventAttr = (CorEventAttr) 0; } -#line 7526 "asmparse.cpp" -break; -case 243: - if (!yytrial) -#line 722 "asmparse.y" -{ yyval.eventAttr = yyvsp[-1].eventAttr; } -#line 7532 "asmparse.cpp" -break; -case 244: - if (!yytrial) -#line 723 "asmparse.y" -{ yyval.eventAttr = (CorEventAttr) (yyvsp[-1].eventAttr | evSpecialName); } -#line 7538 "asmparse.cpp" -break; -case 247: - if (!yytrial) -#line 730 "asmparse.y" -{ PASM->SetEventMethod(0, yyvsp[0].token); } -#line 7544 "asmparse.cpp" -break; -case 248: - if (!yytrial) -#line 731 "asmparse.y" -{ PASM->SetEventMethod(1, yyvsp[0].token); } -#line 7550 "asmparse.cpp" -break; -case 249: - if (!yytrial) -#line 732 "asmparse.y" -{ PASM->SetEventMethod(2, yyvsp[0].token); } -#line 7556 "asmparse.cpp" -break; -case 250: - if (!yytrial) -#line 733 "asmparse.y" -{ PASM->SetEventMethod(3, yyvsp[0].token); } -#line 7562 "asmparse.cpp" -break; -case 255: - if (!yytrial) -#line 742 "asmparse.y" -{ PASM->ResetProp(yyvsp[-4].string, - parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | - (yyvsp[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yyvsp[-5].binstr,yyvsp[-2].binstr), yyvsp[-7].propAttr, yyvsp[0].binstr);} -#line 7570 "asmparse.cpp" -break; -case 256: - if (!yytrial) -#line 747 "asmparse.y" -{ yyval.propAttr = (CorPropertyAttr) 0; } -#line 7576 "asmparse.cpp" -break; -case 257: - if (!yytrial) -#line 748 "asmparse.y" -{ yyval.propAttr = yyvsp[-1].propAttr; } -#line 7582 "asmparse.cpp" -break; -case 258: - if (!yytrial) -#line 749 "asmparse.y" -{ yyval.propAttr = (CorPropertyAttr) (yyvsp[-1].propAttr | prSpecialName); } -#line 7588 "asmparse.cpp" -break; -case 261: - if (!yytrial) -#line 757 "asmparse.y" -{ PASM->SetPropMethod(0, yyvsp[0].token); } -#line 7594 "asmparse.cpp" -break; -case 262: - if (!yytrial) -#line 758 "asmparse.y" -{ PASM->SetPropMethod(1, yyvsp[0].token); } -#line 7600 "asmparse.cpp" -break; -case 263: - if (!yytrial) -#line 759 "asmparse.y" -{ PASM->SetPropMethod(2, yyvsp[0].token); } -#line 7606 "asmparse.cpp" -break; -case 268: - if (!yytrial) -#line 767 "asmparse.y" -{ PASM->ResetForNextMethod(); - uMethodBeginLine = PASM->m_ulCurLine; - uMethodBeginColumn=PASM->m_ulCurColumn; - } -#line 7615 "asmparse.cpp" -break; -case 269: - if (!yytrial) -#line 773 "asmparse.y" -{ yyval.binstr = NULL; } -#line 7621 "asmparse.cpp" -break; -case 270: - if (!yytrial) -#line 774 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 7627 "asmparse.cpp" -break; -case 271: - if (!yytrial) -#line 777 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 7633 "asmparse.cpp" -break; -case 272: - if (!yytrial) -#line 778 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 7639 "asmparse.cpp" -break; -case 273: - if (!yytrial) -#line 781 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 7645 "asmparse.cpp" -break; -case 274: - if (!yytrial) -#line 785 "asmparse.y" -{ BinStr* sig; - if (yyvsp[-5].typarlist == NULL) sig = parser->MakeSig(yyvsp[-10].int32, yyvsp[-8].binstr, yyvsp[-3].binstr); - else { - FixupTyPars(yyvsp[-8].binstr); - sig = parser->MakeSig(yyvsp[-10].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC, yyvsp[-8].binstr, yyvsp[-3].binstr, yyvsp[-5].typarlist->Count()); - FixupConstraints(); - } - PASM->StartMethod(yyvsp[-6].string, sig, yyvsp[-11].methAttr, yyvsp[-7].binstr, yyvsp[-9].int32, yyvsp[-5].typarlist); - TyParFixupList.RESET(false); - PASM->SetImplAttr((USHORT)yyvsp[-1].implAttr); - PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; + PASM->SetMemberRefFixup((yyvsp[0].token),iOpcodeLen); } +#line 4914 "asmparse.cpp" + break; + + case 236: /* memberRef: FIELD_ type typeSpec DCOLON dottedName */ +#line 700 "./asmparse.y" + { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + (yyval.token) = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); + PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } +#line 4922 "asmparse.cpp" + break; + + case 237: /* memberRef: FIELD_ type dottedName */ +#line 704 "./asmparse.y" + { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + (yyval.token) = PASM->MakeMemberRef(NULL, (yyvsp[0].string), (yyvsp[-1].binstr)); + PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } +#line 4930 "asmparse.cpp" + break; + + case 238: /* memberRef: FIELD_ TYPEDEF_F */ +#line 707 "./asmparse.y" + { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; + PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } +#line 4937 "asmparse.cpp" + break; + + case 239: /* memberRef: FIELD_ TYPEDEF_MR */ +#line 709 "./asmparse.y" + { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; + PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } +#line 4944 "asmparse.cpp" + break; + + case 240: /* memberRef: mdtoken */ +#line 711 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); + PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } +#line 4951 "asmparse.cpp" + break; + + case 241: /* eventHead: _EVENT eventAttr typeSpec dottedName */ +#line 716 "./asmparse.y" + { PASM->ResetEvent((yyvsp[0].string), (yyvsp[-1].token), (yyvsp[-2].eventAttr)); } +#line 4957 "asmparse.cpp" + break; + + case 242: /* eventHead: _EVENT eventAttr dottedName */ +#line 717 "./asmparse.y" + { PASM->ResetEvent((yyvsp[0].string), mdTypeRefNil, (yyvsp[-1].eventAttr)); } +#line 4963 "asmparse.cpp" + break; + + case 243: /* eventAttr: %empty */ +#line 721 "./asmparse.y" + { (yyval.eventAttr) = (CorEventAttr) 0; } +#line 4969 "asmparse.cpp" + break; + + case 244: /* eventAttr: eventAttr RTSPECIALNAME_ */ +#line 722 "./asmparse.y" + { (yyval.eventAttr) = (yyvsp[-1].eventAttr); } +#line 4975 "asmparse.cpp" + break; + + case 245: /* eventAttr: eventAttr SPECIALNAME_ */ +#line 723 "./asmparse.y" + { (yyval.eventAttr) = (CorEventAttr) ((yyvsp[-1].eventAttr) | evSpecialName); } +#line 4981 "asmparse.cpp" + break; + + case 248: /* eventDecl: _ADDON methodRef */ +#line 730 "./asmparse.y" + { PASM->SetEventMethod(0, (yyvsp[0].token)); } +#line 4987 "asmparse.cpp" + break; + + case 249: /* eventDecl: _REMOVEON methodRef */ +#line 731 "./asmparse.y" + { PASM->SetEventMethod(1, (yyvsp[0].token)); } +#line 4993 "asmparse.cpp" + break; + + case 250: /* eventDecl: _FIRE methodRef */ +#line 732 "./asmparse.y" + { PASM->SetEventMethod(2, (yyvsp[0].token)); } +#line 4999 "asmparse.cpp" + break; + + case 251: /* eventDecl: _OTHER methodRef */ +#line 733 "./asmparse.y" + { PASM->SetEventMethod(3, (yyvsp[0].token)); } +#line 5005 "asmparse.cpp" + break; + + case 256: /* propHead: _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt */ +#line 742 "./asmparse.y" + { PASM->ResetProp((yyvsp[-4].string), + parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | + ((yyvsp[-6].int32) & IMAGE_CEE_CS_CALLCONV_HASTHIS)),(yyvsp[-5].binstr),(yyvsp[-2].binstr)), (yyvsp[-7].propAttr), (yyvsp[0].binstr));} +#line 5013 "asmparse.cpp" + break; + + case 257: /* propAttr: %empty */ +#line 747 "./asmparse.y" + { (yyval.propAttr) = (CorPropertyAttr) 0; } +#line 5019 "asmparse.cpp" + break; + + case 258: /* propAttr: propAttr RTSPECIALNAME_ */ +#line 748 "./asmparse.y" + { (yyval.propAttr) = (yyvsp[-1].propAttr); } +#line 5025 "asmparse.cpp" + break; + + case 259: /* propAttr: propAttr SPECIALNAME_ */ +#line 749 "./asmparse.y" + { (yyval.propAttr) = (CorPropertyAttr) ((yyvsp[-1].propAttr) | prSpecialName); } +#line 5031 "asmparse.cpp" + break; + + case 262: /* propDecl: _SET methodRef */ +#line 757 "./asmparse.y" + { PASM->SetPropMethod(0, (yyvsp[0].token)); } +#line 5037 "asmparse.cpp" + break; + + case 263: /* propDecl: _GET methodRef */ +#line 758 "./asmparse.y" + { PASM->SetPropMethod(1, (yyvsp[0].token)); } +#line 5043 "asmparse.cpp" + break; + + case 264: /* propDecl: _OTHER methodRef */ +#line 759 "./asmparse.y" + { PASM->SetPropMethod(2, (yyvsp[0].token)); } +#line 5049 "asmparse.cpp" + break; + + case 269: /* methodHeadPart1: _METHOD */ +#line 767 "./asmparse.y" + { PASM->ResetForNextMethod(); + uMethodBeginLine = PASM->m_ulCurLine; + uMethodBeginColumn=PASM->m_ulCurColumn; + } +#line 5058 "asmparse.cpp" + break; + + case 270: /* marshalClause: %empty */ +#line 773 "./asmparse.y" + { (yyval.binstr) = NULL; } +#line 5064 "asmparse.cpp" + break; + + case 271: /* marshalClause: MARSHAL_ '(' marshalBlob ')' */ +#line 774 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 5070 "asmparse.cpp" + break; + + case 272: /* marshalBlob: nativeType */ +#line 777 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 5076 "asmparse.cpp" + break; + + case 273: /* marshalBlob: marshalBlobHead hexbytes '}' */ +#line 778 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 5082 "asmparse.cpp" + break; + + case 274: /* marshalBlobHead: '{' */ +#line 781 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 5088 "asmparse.cpp" + break; + + case 275: /* methodHead: methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{' */ +#line 785 "./asmparse.y" + { BinStr* sig; + if ((yyvsp[-5].typarlist) == NULL) sig = parser->MakeSig((yyvsp[-10].int32), (yyvsp[-8].binstr), (yyvsp[-3].binstr)); + else { + FixupTyPars((yyvsp[-8].binstr)); + sig = parser->MakeSig((yyvsp[-10].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC, (yyvsp[-8].binstr), (yyvsp[-3].binstr), (yyvsp[-5].typarlist)->Count()); + FixupConstraints(); + } + PASM->StartMethod((yyvsp[-6].string), sig, (yyvsp[-11].methAttr), (yyvsp[-7].binstr), (yyvsp[-9].int32), (yyvsp[-5].typarlist)); + TyParFixupList.RESET(false); + PASM->SetImplAttr((USHORT)(yyvsp[-1].implAttr)); + PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 7663 "asmparse.cpp" -break; -case 275: - if (!yytrial) -#line 800 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) 0; } -#line 7669 "asmparse.cpp" -break; -case 276: - if (!yytrial) -#line 801 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdStatic); } -#line 7675 "asmparse.cpp" -break; -case 277: - if (!yytrial) -#line 802 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 7681 "asmparse.cpp" -break; -case 278: - if (!yytrial) -#line 803 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 7687 "asmparse.cpp" -break; -case 279: - if (!yytrial) -#line 804 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 7693 "asmparse.cpp" -break; -case 280: - if (!yytrial) -#line 805 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdFinal); } -#line 7699 "asmparse.cpp" -break; -case 281: - if (!yytrial) -#line 806 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdSpecialName); } -#line 7705 "asmparse.cpp" -break; -case 282: - if (!yytrial) -#line 807 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdVirtual); } -#line 7711 "asmparse.cpp" -break; -case 283: - if (!yytrial) -#line 808 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdCheckAccessOnOverride); } -#line 7717 "asmparse.cpp" -break; -case 284: - if (!yytrial) -#line 809 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdAbstract); } -#line 7723 "asmparse.cpp" -break; -case 285: - if (!yytrial) -#line 810 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 7729 "asmparse.cpp" -break; -case 286: - if (!yytrial) -#line 811 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 7735 "asmparse.cpp" -break; -case 287: - if (!yytrial) -#line 812 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 7741 "asmparse.cpp" -break; -case 288: - if (!yytrial) -#line 813 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) ((yyvsp[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 7747 "asmparse.cpp" -break; -case 289: - if (!yytrial) -#line 814 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdHideBySig); } -#line 7753 "asmparse.cpp" -break; -case 290: - if (!yytrial) -#line 815 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdNewSlot); } -#line 7759 "asmparse.cpp" -break; -case 291: - if (!yytrial) -#line 816 "asmparse.y" -{ yyval.methAttr = yyvsp[-1].methAttr; } -#line 7765 "asmparse.cpp" -break; -case 292: - if (!yytrial) -#line 817 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdUnmanagedExport); } -#line 7771 "asmparse.cpp" -break; -case 293: - if (!yytrial) -#line 818 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].methAttr | mdRequireSecObject); } -#line 7777 "asmparse.cpp" -break; -case 294: - if (!yytrial) -#line 819 "asmparse.y" -{ yyval.methAttr = (CorMethodAttr) (yyvsp[-1].int32); } -#line 7783 "asmparse.cpp" -break; -case 295: - if (!yytrial) -#line 821 "asmparse.y" -{ PASM->SetPinvoke(yyvsp[-4].binstr,0,yyvsp[-2].binstr,yyvsp[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yyvsp[-7].methAttr | mdPinvokeImpl); } -#line 7790 "asmparse.cpp" -break; -case 296: - if (!yytrial) -#line 824 "asmparse.y" -{ PASM->SetPinvoke(yyvsp[-2].binstr,0,NULL,yyvsp[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yyvsp[-5].methAttr | mdPinvokeImpl); } -#line 7797 "asmparse.cpp" -break; -case 297: - if (!yytrial) -#line 827 "asmparse.y" -{ PASM->SetPinvoke(new BinStr(),0,NULL,yyvsp[-1].pinvAttr); - yyval.methAttr = (CorMethodAttr) (yyvsp[-4].methAttr | mdPinvokeImpl); } -#line 7804 "asmparse.cpp" -break; -case 298: - if (!yytrial) -#line 831 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 7810 "asmparse.cpp" -break; -case 299: - if (!yytrial) -#line 832 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmNoMangle); } -#line 7816 "asmparse.cpp" -break; -case 300: - if (!yytrial) -#line 833 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAnsi); } -#line 7822 "asmparse.cpp" -break; -case 301: - if (!yytrial) -#line 834 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetUnicode); } -#line 7828 "asmparse.cpp" -break; -case 302: - if (!yytrial) -#line 835 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCharSetAuto); } -#line 7834 "asmparse.cpp" -break; -case 303: - if (!yytrial) -#line 836 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmSupportsLastError); } -#line 7840 "asmparse.cpp" -break; -case 304: - if (!yytrial) -#line 837 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvWinapi); } -#line 7846 "asmparse.cpp" -break; -case 305: - if (!yytrial) -#line 838 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvCdecl); } -#line 7852 "asmparse.cpp" -break; -case 306: - if (!yytrial) -#line 839 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvStdcall); } -#line 7858 "asmparse.cpp" -break; -case 307: - if (!yytrial) -#line 840 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvThiscall); } -#line 7864 "asmparse.cpp" -break; -case 308: - if (!yytrial) -#line 841 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].pinvAttr | pmCallConvFastcall); } -#line 7870 "asmparse.cpp" -break; -case 309: - if (!yytrial) -#line 842 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitEnabled); } -#line 7876 "asmparse.cpp" -break; -case 310: - if (!yytrial) -#line 843 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmBestFitDisabled); } -#line 7882 "asmparse.cpp" -break; -case 311: - if (!yytrial) -#line 844 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 7888 "asmparse.cpp" -break; -case 312: - if (!yytrial) -#line 845 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 7894 "asmparse.cpp" -break; -case 313: - if (!yytrial) -#line 846 "asmparse.y" -{ yyval.pinvAttr = (CorPinvokeMap) (yyvsp[-1].int32); } -#line 7900 "asmparse.cpp" -break; -case 314: - if (!yytrial) -#line 849 "asmparse.y" -{ yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 7906 "asmparse.cpp" -break; -case 315: - if (!yytrial) -#line 850 "asmparse.y" -{ yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 7912 "asmparse.cpp" -break; -case 316: - if (!yytrial) -#line 851 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 7918 "asmparse.cpp" -break; -case 317: - if (!yytrial) -#line 854 "asmparse.y" -{ yyval.int32 = 0; } -#line 7924 "asmparse.cpp" -break; -case 318: - if (!yytrial) -#line 855 "asmparse.y" -{ yyval.int32 = yyvsp[-3].int32 | pdIn; } -#line 7930 "asmparse.cpp" -break; -case 319: - if (!yytrial) -#line 856 "asmparse.y" -{ yyval.int32 = yyvsp[-3].int32 | pdOut; } -#line 7936 "asmparse.cpp" -break; -case 320: - if (!yytrial) -#line 857 "asmparse.y" -{ yyval.int32 = yyvsp[-3].int32 | pdOptional; } -#line 7942 "asmparse.cpp" -break; -case 321: - if (!yytrial) -#line 858 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 + 1; } -#line 7948 "asmparse.cpp" -break; -case 322: - if (!yytrial) -#line 861 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 7954 "asmparse.cpp" -break; -case 323: - if (!yytrial) -#line 862 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miNative); } -#line 7960 "asmparse.cpp" -break; -case 324: - if (!yytrial) -#line 863 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miIL); } -#line 7966 "asmparse.cpp" -break; -case 325: - if (!yytrial) -#line 864 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 7972 "asmparse.cpp" -break; -case 326: - if (!yytrial) -#line 865 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miManaged); } -#line 7978 "asmparse.cpp" -break; -case 327: - if (!yytrial) -#line 866 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) ((yyvsp[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 7984 "asmparse.cpp" -break; -case 328: - if (!yytrial) -#line 867 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miForwardRef); } -#line 7990 "asmparse.cpp" -break; -case 329: - if (!yytrial) -#line 868 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miPreserveSig); } -#line 7996 "asmparse.cpp" -break; -case 330: - if (!yytrial) -#line 869 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miRuntime); } -#line 8002 "asmparse.cpp" -break; -case 331: - if (!yytrial) -#line 870 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miInternalCall); } -#line 8008 "asmparse.cpp" -break; -case 332: - if (!yytrial) -#line 871 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miSynchronized); } -#line 8014 "asmparse.cpp" -break; -case 333: - if (!yytrial) -#line 872 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoInlining); } -#line 8020 "asmparse.cpp" -break; -case 334: - if (!yytrial) -#line 873 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveInlining); } -#line 8026 "asmparse.cpp" -break; -case 335: - if (!yytrial) -#line 874 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miNoOptimization); } -#line 8032 "asmparse.cpp" -break; -case 336: - if (!yytrial) -#line 875 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].implAttr | miAggressiveOptimization); } -#line 8038 "asmparse.cpp" -break; -case 337: - if (!yytrial) -#line 876 "asmparse.y" -{ yyval.implAttr = (CorMethodImpl) (yyvsp[-1].int32); } -#line 8044 "asmparse.cpp" -break; -case 338: - if (!yytrial) -#line 879 "asmparse.y" -{ PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; +#line 5106 "asmparse.cpp" + break; + + case 276: /* methAttr: %empty */ +#line 800 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) 0; } +#line 5112 "asmparse.cpp" + break; + + case 277: /* methAttr: methAttr STATIC_ */ +#line 801 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdStatic); } +#line 5118 "asmparse.cpp" + break; + + case 278: /* methAttr: methAttr PUBLIC_ */ +#line 802 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPublic); } +#line 5124 "asmparse.cpp" + break; + + case 279: /* methAttr: methAttr PRIVATE_ */ +#line 803 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivate); } +#line 5130 "asmparse.cpp" + break; + + case 280: /* methAttr: methAttr FAMILY_ */ +#line 804 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamily); } +#line 5136 "asmparse.cpp" + break; + + case 281: /* methAttr: methAttr FINAL_ */ +#line 805 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdFinal); } +#line 5142 "asmparse.cpp" + break; + + case 282: /* methAttr: methAttr SPECIALNAME_ */ +#line 806 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdSpecialName); } +#line 5148 "asmparse.cpp" + break; + + case 283: /* methAttr: methAttr VIRTUAL_ */ +#line 807 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdVirtual); } +#line 5154 "asmparse.cpp" + break; + + case 284: /* methAttr: methAttr STRICT_ */ +#line 808 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdCheckAccessOnOverride); } +#line 5160 "asmparse.cpp" + break; + + case 285: /* methAttr: methAttr ABSTRACT_ */ +#line 809 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdAbstract); } +#line 5166 "asmparse.cpp" + break; + + case 286: /* methAttr: methAttr ASSEMBLY_ */ +#line 810 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdAssem); } +#line 5172 "asmparse.cpp" + break; + + case 287: /* methAttr: methAttr FAMANDASSEM_ */ +#line 811 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamANDAssem); } +#line 5178 "asmparse.cpp" + break; + + case 288: /* methAttr: methAttr FAMORASSEM_ */ +#line 812 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamORAssem); } +#line 5184 "asmparse.cpp" + break; + + case 289: /* methAttr: methAttr PRIVATESCOPE_ */ +#line 813 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivateScope); } +#line 5190 "asmparse.cpp" + break; + + case 290: /* methAttr: methAttr HIDEBYSIG_ */ +#line 814 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdHideBySig); } +#line 5196 "asmparse.cpp" + break; + + case 291: /* methAttr: methAttr NEWSLOT_ */ +#line 815 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdNewSlot); } +#line 5202 "asmparse.cpp" + break; + + case 292: /* methAttr: methAttr RTSPECIALNAME_ */ +#line 816 "./asmparse.y" + { (yyval.methAttr) = (yyvsp[-1].methAttr); } +#line 5208 "asmparse.cpp" + break; + + case 293: /* methAttr: methAttr UNMANAGEDEXP_ */ +#line 817 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdUnmanagedExport); } +#line 5214 "asmparse.cpp" + break; + + case 294: /* methAttr: methAttr REQSECOBJ_ */ +#line 818 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdRequireSecObject); } +#line 5220 "asmparse.cpp" + break; + + case 295: /* methAttr: methAttr FLAGS_ '(' int32 ')' */ +#line 819 "./asmparse.y" + { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].int32)); } +#line 5226 "asmparse.cpp" + break; + + case 296: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')' */ +#line 821 "./asmparse.y" + { PASM->SetPinvoke((yyvsp[-4].binstr),0,(yyvsp[-2].binstr),(yyvsp[-1].pinvAttr)); + (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-7].methAttr) | mdPinvokeImpl); } +#line 5233 "asmparse.cpp" + break; + + case 297: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')' */ +#line 824 "./asmparse.y" + { PASM->SetPinvoke((yyvsp[-2].binstr),0,NULL,(yyvsp[-1].pinvAttr)); + (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-5].methAttr) | mdPinvokeImpl); } +#line 5240 "asmparse.cpp" + break; + + case 298: /* methAttr: methAttr PINVOKEIMPL_ '(' pinvAttr ')' */ +#line 827 "./asmparse.y" + { PASM->SetPinvoke(new BinStr(),0,NULL,(yyvsp[-1].pinvAttr)); + (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-4].methAttr) | mdPinvokeImpl); } +#line 5247 "asmparse.cpp" + break; + + case 299: /* pinvAttr: %empty */ +#line 831 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) 0; } +#line 5253 "asmparse.cpp" + break; + + case 300: /* pinvAttr: pinvAttr NOMANGLE_ */ +#line 832 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmNoMangle); } +#line 5259 "asmparse.cpp" + break; + + case 301: /* pinvAttr: pinvAttr ANSI_ */ +#line 833 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAnsi); } +#line 5265 "asmparse.cpp" + break; + + case 302: /* pinvAttr: pinvAttr UNICODE_ */ +#line 834 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetUnicode); } +#line 5271 "asmparse.cpp" + break; + + case 303: /* pinvAttr: pinvAttr AUTOCHAR_ */ +#line 835 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAuto); } +#line 5277 "asmparse.cpp" + break; + + case 304: /* pinvAttr: pinvAttr LASTERR_ */ +#line 836 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmSupportsLastError); } +#line 5283 "asmparse.cpp" + break; + + case 305: /* pinvAttr: pinvAttr WINAPI_ */ +#line 837 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvWinapi); } +#line 5289 "asmparse.cpp" + break; + + case 306: /* pinvAttr: pinvAttr CDECL_ */ +#line 838 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvCdecl); } +#line 5295 "asmparse.cpp" + break; + + case 307: /* pinvAttr: pinvAttr STDCALL_ */ +#line 839 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvStdcall); } +#line 5301 "asmparse.cpp" + break; + + case 308: /* pinvAttr: pinvAttr THISCALL_ */ +#line 840 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvThiscall); } +#line 5307 "asmparse.cpp" + break; + + case 309: /* pinvAttr: pinvAttr FASTCALL_ */ +#line 841 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvFastcall); } +#line 5313 "asmparse.cpp" + break; + + case 310: /* pinvAttr: pinvAttr BESTFIT_ ':' ON_ */ +#line 842 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitEnabled); } +#line 5319 "asmparse.cpp" + break; + + case 311: /* pinvAttr: pinvAttr BESTFIT_ ':' OFF_ */ +#line 843 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitDisabled); } +#line 5325 "asmparse.cpp" + break; + + case 312: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' ON_ */ +#line 844 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharEnabled); } +#line 5331 "asmparse.cpp" + break; + + case 313: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' OFF_ */ +#line 845 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharDisabled); } +#line 5337 "asmparse.cpp" + break; + + case 314: /* pinvAttr: pinvAttr FLAGS_ '(' int32 ')' */ +#line 846 "./asmparse.y" + { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].int32)); } +#line 5343 "asmparse.cpp" + break; + + case 315: /* methodName: _CTOR */ +#line 849 "./asmparse.y" + { (yyval.string) = newString(COR_CTOR_METHOD_NAME); } +#line 5349 "asmparse.cpp" + break; + + case 316: /* methodName: _CCTOR */ +#line 850 "./asmparse.y" + { (yyval.string) = newString(COR_CCTOR_METHOD_NAME); } +#line 5355 "asmparse.cpp" + break; + + case 317: /* methodName: dottedName */ +#line 851 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 5361 "asmparse.cpp" + break; + + case 318: /* paramAttr: %empty */ +#line 854 "./asmparse.y" + { (yyval.int32) = 0; } +#line 5367 "asmparse.cpp" + break; + + case 319: /* paramAttr: paramAttr '[' IN_ ']' */ +#line 855 "./asmparse.y" + { (yyval.int32) = (yyvsp[-3].int32) | pdIn; } +#line 5373 "asmparse.cpp" + break; + + case 320: /* paramAttr: paramAttr '[' OUT_ ']' */ +#line 856 "./asmparse.y" + { (yyval.int32) = (yyvsp[-3].int32) | pdOut; } +#line 5379 "asmparse.cpp" + break; + + case 321: /* paramAttr: paramAttr '[' OPT_ ']' */ +#line 857 "./asmparse.y" + { (yyval.int32) = (yyvsp[-3].int32) | pdOptional; } +#line 5385 "asmparse.cpp" + break; + + case 322: /* paramAttr: paramAttr '[' int32 ']' */ +#line 858 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) + 1; } +#line 5391 "asmparse.cpp" + break; + + case 323: /* implAttr: %empty */ +#line 861 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (miIL | miManaged); } +#line 5397 "asmparse.cpp" + break; + + case 324: /* implAttr: implAttr NATIVE_ */ +#line 862 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miNative); } +#line 5403 "asmparse.cpp" + break; + + case 325: /* implAttr: implAttr CIL_ */ +#line 863 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miIL); } +#line 5409 "asmparse.cpp" + break; + + case 326: /* implAttr: implAttr OPTIL_ */ +#line 864 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miOPTIL); } +#line 5415 "asmparse.cpp" + break; + + case 327: /* implAttr: implAttr MANAGED_ */ +#line 865 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miManaged); } +#line 5421 "asmparse.cpp" + break; + + case 328: /* implAttr: implAttr UNMANAGED_ */ +#line 866 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miUnmanaged); } +#line 5427 "asmparse.cpp" + break; + + case 329: /* implAttr: implAttr FORWARDREF_ */ +#line 867 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miForwardRef); } +#line 5433 "asmparse.cpp" + break; + + case 330: /* implAttr: implAttr PRESERVESIG_ */ +#line 868 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miPreserveSig); } +#line 5439 "asmparse.cpp" + break; + + case 331: /* implAttr: implAttr RUNTIME_ */ +#line 869 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miRuntime); } +#line 5445 "asmparse.cpp" + break; + + case 332: /* implAttr: implAttr INTERNALCALL_ */ +#line 870 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miInternalCall); } +#line 5451 "asmparse.cpp" + break; + + case 333: /* implAttr: implAttr SYNCHRONIZED_ */ +#line 871 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miSynchronized); } +#line 5457 "asmparse.cpp" + break; + + case 334: /* implAttr: implAttr NOINLINING_ */ +#line 872 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoInlining); } +#line 5463 "asmparse.cpp" + break; + + case 335: /* implAttr: implAttr AGGRESSIVEINLINING_ */ +#line 873 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveInlining); } +#line 5469 "asmparse.cpp" + break; + + case 336: /* implAttr: implAttr NOOPTIMIZATION_ */ +#line 874 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoOptimization); } +#line 5475 "asmparse.cpp" + break; + + case 337: /* implAttr: implAttr AGGRESSIVEOPTIMIZATION_ */ +#line 875 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveOptimization); } +#line 5481 "asmparse.cpp" + break; + + case 338: /* implAttr: implAttr FLAGS_ '(' int32 ')' */ +#line 876 "./asmparse.y" + { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].int32)); } +#line 5487 "asmparse.cpp" + break; + + case 339: /* localsHead: _LOCALS */ +#line 879 "./asmparse.y" + { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 8051 "asmparse.cpp" -break; -case 341: - if (!yytrial) -#line 887 "asmparse.y" -{ PASM->EmitByte(yyvsp[0].int32); } -#line 8057 "asmparse.cpp" -break; -case 342: - if (!yytrial) -#line 888 "asmparse.y" -{ delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 8063 "asmparse.cpp" -break; -case 343: - if (!yytrial) -#line 889 "asmparse.y" -{ PASM->EmitMaxStack(yyvsp[0].int32); } -#line 8069 "asmparse.cpp" -break; -case 344: - if (!yytrial) -#line 890 "asmparse.y" -{ PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); +#line 5494 "asmparse.cpp" + break; + + case 342: /* methodDecl: _EMITBYTE int32 */ +#line 887 "./asmparse.y" + { PASM->EmitByte((yyvsp[0].int32)); } +#line 5500 "asmparse.cpp" + break; + + case 343: /* methodDecl: sehBlock */ +#line 888 "./asmparse.y" + { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } +#line 5506 "asmparse.cpp" + break; + + case 344: /* methodDecl: _MAXSTACK int32 */ +#line 889 "./asmparse.y" + { PASM->EmitMaxStack((yyvsp[0].int32)); } +#line 5512 "asmparse.cpp" + break; + + case 345: /* methodDecl: localsHead '(' sigArgs0 ')' */ +#line 890 "./asmparse.y" + { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); } -#line 8076 "asmparse.cpp" -break; -case 345: - if (!yytrial) -#line 892 "asmparse.y" -{ PASM->EmitZeroInit(); - PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yyvsp[-1].binstr)); +#line 5519 "asmparse.cpp" + break; + + case 346: /* methodDecl: localsHead INIT_ '(' sigArgs0 ')' */ +#line 892 "./asmparse.y" + { PASM->EmitZeroInit(); + PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); } -#line 8084 "asmparse.cpp" -break; -case 346: - if (!yytrial) -#line 895 "asmparse.y" -{ PASM->EmitEntryPoint(); } -#line 8090 "asmparse.cpp" -break; -case 347: - if (!yytrial) -#line 896 "asmparse.y" -{ PASM->EmitZeroInit(); } -#line 8096 "asmparse.cpp" -break; -case 350: - if (!yytrial) -#line 899 "asmparse.y" -{ PASM->AddLabel(PASM->m_CurPC,yyvsp[-1].string); /*PASM->EmitLabel($1);*/ } -#line 8102 "asmparse.cpp" -break; -case 356: - if (!yytrial) -#line 905 "asmparse.y" -{ if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) +#line 5527 "asmparse.cpp" + break; + + case 347: /* methodDecl: _ENTRYPOINT */ +#line 895 "./asmparse.y" + { PASM->EmitEntryPoint(); } +#line 5533 "asmparse.cpp" + break; + + case 348: /* methodDecl: _ZEROINIT */ +#line 896 "./asmparse.y" + { PASM->EmitZeroInit(); } +#line 5539 "asmparse.cpp" + break; + + case 351: /* methodDecl: id ':' */ +#line 899 "./asmparse.y" + { PASM->AddLabel(PASM->m_CurPC,(yyvsp[-1].string)); /*PASM->EmitLabel($1);*/ } +#line 5545 "asmparse.cpp" + break; + + case 357: /* methodDecl: _EXPORT '[' int32 ']' */ +#line 905 "./asmparse.y" + { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { - PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-1].int32; + PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-1].int32); PASM->m_pCurMethod->m_szExportAlias = NULL; if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[-1].int32 + 0x8000); + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)((yyvsp[-1].int32) + 0x8000); } else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8117 "asmparse.cpp" -break; -case 357: - if (!yytrial) -#line 915 "asmparse.y" -{ if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) +#line 5560 "asmparse.cpp" + break; + + case 358: /* methodDecl: _EXPORT '[' int32 ']' AS_ id */ +#line 915 "./asmparse.y" + { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { - PASM->m_pCurMethod->m_dwExportOrdinal = yyvsp[-3].int32; - PASM->m_pCurMethod->m_szExportAlias = yyvsp[0].string; + PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-3].int32); + PASM->m_pCurMethod->m_szExportAlias = (yyvsp[0].string); if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[-3].int32 + 0x8000); + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)((yyvsp[-3].int32) + 0x8000); } else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 8132 "asmparse.cpp" -break; -case 358: - if (!yytrial) -#line 925 "asmparse.y" -{ PASM->m_pCurMethod->m_wVTEntry = (WORD)yyvsp[-2].int32; - PASM->m_pCurMethod->m_wVTSlot = (WORD)yyvsp[0].int32; } -#line 8139 "asmparse.cpp" -break; -case 359: - if (!yytrial) -#line 928 "asmparse.y" -{ PASM->AddMethodImpl(yyvsp[-2].token,yyvsp[0].string,NULL,NULL,NULL,NULL); } -#line 8145 "asmparse.cpp" -break; -case 360: - if (!yytrial) -#line 931 "asmparse.y" -{ PASM->AddMethodImpl(yyvsp[-6].token,yyvsp[-4].string, - (yyvsp[-3].int32==0 ? parser->MakeSig(yyvsp[-8].int32,yyvsp[-7].binstr,yyvsp[-1].binstr) : - parser->MakeSig(yyvsp[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yyvsp[-7].binstr,yyvsp[-1].binstr,yyvsp[-3].int32)) +#line 5575 "asmparse.cpp" + break; + + case 359: /* methodDecl: _VTENTRY int32 ':' int32 */ +#line 925 "./asmparse.y" + { PASM->m_pCurMethod->m_wVTEntry = (WORD)(yyvsp[-2].int32); + PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[0].int32); } +#line 5582 "asmparse.cpp" + break; + + case 360: /* methodDecl: _OVERRIDE typeSpec DCOLON methodName */ +#line 928 "./asmparse.y" + { PASM->AddMethodImpl((yyvsp[-2].token),(yyvsp[0].string),NULL,NULL,NULL,NULL); } +#line 5588 "asmparse.cpp" + break; + + case 361: /* methodDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ +#line 931 "./asmparse.y" + { PASM->AddMethodImpl((yyvsp[-6].token),(yyvsp[-4].string), + ((yyvsp[-3].int32)==0 ? parser->MakeSig((yyvsp[-8].int32),(yyvsp[-7].binstr),(yyvsp[-1].binstr)) : + parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32))) ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 8156 "asmparse.cpp" -break; -case 362: - if (!yytrial) -#line 938 "asmparse.y" -{ if((yyvsp[-1].int32 > 0) && (yyvsp[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yyvsp[-1].int32-1].CAList(); +#line 5599 "asmparse.cpp" + break; + + case 363: /* methodDecl: _PARAM TYPE_ '[' int32 ']' */ +#line 938 "./asmparse.y" + { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurMethod->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[(yyvsp[-1].int32)-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 8166 "asmparse.cpp" -break; -case 363: - if (!yytrial) -#line 943 "asmparse.y" -{ int n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); +#line 5609 "asmparse.cpp" + break; + + case 364: /* methodDecl: _PARAM TYPE_ dottedName */ +#line 943 "./asmparse.y" + { int n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else - PASM->report->error("Type parameter '%s' undefined\n",yyvsp[0].string); + PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); } -#line 8177 "asmparse.cpp" -break; -case 364: - if (!yytrial) -#line 949 "asmparse.y" -{ PASM->m_pCurMethod->AddGenericParamConstraint(yyvsp[-3].int32, 0, yyvsp[0].token); } -#line 8183 "asmparse.cpp" -break; -case 365: - if (!yytrial) -#line 950 "asmparse.y" -{ PASM->m_pCurMethod->AddGenericParamConstraint(0, yyvsp[-2].string, yyvsp[0].token); } -#line 8189 "asmparse.cpp" -break; -case 366: - if (!yytrial) -#line 953 "asmparse.y" -{ if( yyvsp[-2].int32 ) { - ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yyvsp[-2].int32 - 1); +#line 5620 "asmparse.cpp" + break; + + case 365: /* methodDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ +#line 949 "./asmparse.y" + { PASM->m_pCurMethod->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } +#line 5626 "asmparse.cpp" + break; + + case 366: /* methodDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ +#line 950 "./asmparse.y" + { PASM->m_pCurMethod->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } +#line 5632 "asmparse.cpp" + break; + + case 367: /* methodDecl: _PARAM '[' int32 ']' initOpt */ +#line 953 "./asmparse.y" + { if( (yyvsp[-2].int32) ) { + ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, (yyvsp[-2].int32) - 1); if(pAN) { PASM->m_pCustomDescrList = &(pAN->CustDList); - pAN->pValue = yyvsp[0].binstr; + pAN->pValue = (yyvsp[0].binstr); } else { PASM->m_pCustomDescrList = NULL; - if(yyvsp[0].binstr) delete yyvsp[0].binstr; + if((yyvsp[0].binstr)) delete (yyvsp[0].binstr); } } else { PASM->m_pCustomDescrList = &(PASM->m_pCurMethod->m_RetCustDList); - PASM->m_pCurMethod->m_pRetValue = yyvsp[0].binstr; + PASM->m_pCurMethod->m_pRetValue = (yyvsp[0].binstr); } PASM->m_tkCurrentCVOwner = 0; } -#line 8212 "asmparse.cpp" -break; -case 367: - if (!yytrial) -#line 973 "asmparse.y" -{ PASM->m_pCurMethod->CloseScope(); } -#line 8218 "asmparse.cpp" -break; -case 368: - if (!yytrial) -#line 976 "asmparse.y" -{ PASM->m_pCurMethod->OpenScope(); } -#line 8224 "asmparse.cpp" -break; -case 372: - if (!yytrial) -#line 987 "asmparse.y" -{ PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 8230 "asmparse.cpp" -break; -case 373: - if (!yytrial) -#line 988 "asmparse.y" -{ PASM->SetTryLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8236 "asmparse.cpp" -break; -case 374: - if (!yytrial) -#line 989 "asmparse.y" -{ if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yyvsp[-2].int32; - PASM->m_SEHD->tryTo = yyvsp[0].int32;} } -#line 8243 "asmparse.cpp" -break; -case 375: - if (!yytrial) -#line 993 "asmparse.y" -{ PASM->NewSEHDescriptor(); +#line 5655 "asmparse.cpp" + break; + + case 368: /* scopeBlock: scopeOpen methodDecls '}' */ +#line 973 "./asmparse.y" + { PASM->m_pCurMethod->CloseScope(); } +#line 5661 "asmparse.cpp" + break; + + case 369: /* scopeOpen: '{' */ +#line 976 "./asmparse.y" + { PASM->m_pCurMethod->OpenScope(); } +#line 5667 "asmparse.cpp" + break; + + case 373: /* tryBlock: tryHead scopeBlock */ +#line 987 "./asmparse.y" + { PASM->m_SEHD->tryTo = PASM->m_CurPC; } +#line 5673 "asmparse.cpp" + break; + + case 374: /* tryBlock: tryHead id TO_ id */ +#line 988 "./asmparse.y" + { PASM->SetTryLabels((yyvsp[-2].string), (yyvsp[0].string)); } +#line 5679 "asmparse.cpp" + break; + + case 375: /* tryBlock: tryHead int32 TO_ int32 */ +#line 989 "./asmparse.y" + { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = (yyvsp[-2].int32); + PASM->m_SEHD->tryTo = (yyvsp[0].int32);} } +#line 5686 "asmparse.cpp" + break; + + case 376: /* tryHead: _TRY */ +#line 993 "./asmparse.y" + { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 8250 "asmparse.cpp" -break; -case 376: - if (!yytrial) -#line 998 "asmparse.y" -{ PASM->EmitTry(); } -#line 8256 "asmparse.cpp" -break; -case 377: - if (!yytrial) -#line 999 "asmparse.y" -{ PASM->EmitTry(); } -#line 8262 "asmparse.cpp" -break; -case 378: - if (!yytrial) -#line 1000 "asmparse.y" -{ PASM->EmitTry(); } -#line 8268 "asmparse.cpp" -break; -case 379: - if (!yytrial) -#line 1001 "asmparse.y" -{ PASM->EmitTry(); } -#line 8274 "asmparse.cpp" -break; -case 380: - if (!yytrial) -#line 1005 "asmparse.y" -{ PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8280 "asmparse.cpp" -break; -case 381: - if (!yytrial) -#line 1006 "asmparse.y" -{ PASM->SetFilterLabel(yyvsp[0].string); - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8287 "asmparse.cpp" -break; -case 382: - if (!yytrial) -#line 1008 "asmparse.y" -{ PASM->m_SEHD->sehFilter = yyvsp[0].int32; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8294 "asmparse.cpp" -break; -case 383: - if (!yytrial) -#line 1012 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; - PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 8301 "asmparse.cpp" -break; -case 384: - if (!yytrial) -#line 1016 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; - PASM->SetCatchClass(yyvsp[0].token); - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8309 "asmparse.cpp" -break; -case 385: - if (!yytrial) -#line 1021 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8316 "asmparse.cpp" -break; -case 386: - if (!yytrial) -#line 1025 "asmparse.y" -{ PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; - PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 8323 "asmparse.cpp" -break; -case 387: - if (!yytrial) -#line 1029 "asmparse.y" -{ PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 8329 "asmparse.cpp" -break; -case 388: - if (!yytrial) -#line 1030 "asmparse.y" -{ PASM->SetHandlerLabels(yyvsp[-2].string, yyvsp[0].string); } -#line 8335 "asmparse.cpp" -break; -case 389: - if (!yytrial) -#line 1031 "asmparse.y" -{ PASM->m_SEHD->sehHandler = yyvsp[-2].int32; - PASM->m_SEHD->sehHandlerTo = yyvsp[0].int32; } -#line 8342 "asmparse.cpp" -break; -case 391: - if (!yytrial) -#line 1039 "asmparse.y" -{ PASM->EmitDataLabel(yyvsp[-1].string); } -#line 8348 "asmparse.cpp" -break; -case 393: - if (!yytrial) -#line 1043 "asmparse.y" -{ PASM->SetDataSection(); } -#line 8354 "asmparse.cpp" -break; -case 394: - if (!yytrial) -#line 1044 "asmparse.y" -{ PASM->SetTLSSection(); } -#line 8360 "asmparse.cpp" -break; -case 395: - if (!yytrial) -#line 1045 "asmparse.y" -{ PASM->SetILSection(); } -#line 8366 "asmparse.cpp" -break; -case 400: - if (!yytrial) -#line 1056 "asmparse.y" -{ yyval.int32 = 1; } -#line 8372 "asmparse.cpp" -break; -case 401: - if (!yytrial) -#line 1057 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32; - if(yyvsp[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yyvsp[-1].int32); - if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 8380 "asmparse.cpp" -break; -case 402: - if (!yytrial) -#line 1062 "asmparse.y" -{ PASM->EmitDataString(yyvsp[-1].binstr); } -#line 8386 "asmparse.cpp" -break; -case 403: - if (!yytrial) -#line 1063 "asmparse.y" -{ PASM->EmitDD(yyvsp[-1].string); } -#line 8392 "asmparse.cpp" -break; -case 404: - if (!yytrial) -#line 1064 "asmparse.y" -{ PASM->EmitData(yyvsp[-1].binstr->ptr(),yyvsp[-1].binstr->length()); } -#line 8398 "asmparse.cpp" -break; -case 405: - if (!yytrial) -#line 1066 "asmparse.y" -{ float f = (float) (*yyvsp[-2].float64); float* p = new (nothrow) float[yyvsp[0].int32]; +#line 5693 "asmparse.cpp" + break; + + case 377: /* sehClause: catchClause handlerBlock */ +#line 998 "./asmparse.y" + { PASM->EmitTry(); } +#line 5699 "asmparse.cpp" + break; + + case 378: /* sehClause: filterClause handlerBlock */ +#line 999 "./asmparse.y" + { PASM->EmitTry(); } +#line 5705 "asmparse.cpp" + break; + + case 379: /* sehClause: finallyClause handlerBlock */ +#line 1000 "./asmparse.y" + { PASM->EmitTry(); } +#line 5711 "asmparse.cpp" + break; + + case 380: /* sehClause: faultClause handlerBlock */ +#line 1001 "./asmparse.y" + { PASM->EmitTry(); } +#line 5717 "asmparse.cpp" + break; + + case 381: /* filterClause: filterHead scopeBlock */ +#line 1005 "./asmparse.y" + { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5723 "asmparse.cpp" + break; + + case 382: /* filterClause: filterHead id */ +#line 1006 "./asmparse.y" + { PASM->SetFilterLabel((yyvsp[0].string)); + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5730 "asmparse.cpp" + break; + + case 383: /* filterClause: filterHead int32 */ +#line 1008 "./asmparse.y" + { PASM->m_SEHD->sehFilter = (yyvsp[0].int32); + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5737 "asmparse.cpp" + break; + + case 384: /* filterHead: FILTER_ */ +#line 1012 "./asmparse.y" + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; + PASM->m_SEHD->sehFilter = PASM->m_CurPC; } +#line 5744 "asmparse.cpp" + break; + + case 385: /* catchClause: CATCH_ typeSpec */ +#line 1016 "./asmparse.y" + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; + PASM->SetCatchClass((yyvsp[0].token)); + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5752 "asmparse.cpp" + break; + + case 386: /* finallyClause: FINALLY_ */ +#line 1021 "./asmparse.y" + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5759 "asmparse.cpp" + break; + + case 387: /* faultClause: FAULT_ */ +#line 1025 "./asmparse.y" + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; + PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 5766 "asmparse.cpp" + break; + + case 388: /* handlerBlock: scopeBlock */ +#line 1029 "./asmparse.y" + { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } +#line 5772 "asmparse.cpp" + break; + + case 389: /* handlerBlock: HANDLER_ id TO_ id */ +#line 1030 "./asmparse.y" + { PASM->SetHandlerLabels((yyvsp[-2].string), (yyvsp[0].string)); } +#line 5778 "asmparse.cpp" + break; + + case 390: /* handlerBlock: HANDLER_ int32 TO_ int32 */ +#line 1031 "./asmparse.y" + { PASM->m_SEHD->sehHandler = (yyvsp[-2].int32); + PASM->m_SEHD->sehHandlerTo = (yyvsp[0].int32); } +#line 5785 "asmparse.cpp" + break; + + case 392: /* ddHead: _DATA tls id '=' */ +#line 1039 "./asmparse.y" + { PASM->EmitDataLabel((yyvsp[-1].string)); } +#line 5791 "asmparse.cpp" + break; + + case 394: /* tls: %empty */ +#line 1043 "./asmparse.y" + { PASM->SetDataSection(); } +#line 5797 "asmparse.cpp" + break; + + case 395: /* tls: TLS_ */ +#line 1044 "./asmparse.y" + { PASM->SetTLSSection(); } +#line 5803 "asmparse.cpp" + break; + + case 396: /* tls: CIL_ */ +#line 1045 "./asmparse.y" + { PASM->SetILSection(); } +#line 5809 "asmparse.cpp" + break; + + case 401: /* ddItemCount: %empty */ +#line 1056 "./asmparse.y" + { (yyval.int32) = 1; } +#line 5815 "asmparse.cpp" + break; + + case 402: /* ddItemCount: '[' int32 ']' */ +#line 1057 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32); + if((yyvsp[-1].int32) <= 0) { PASM->report->error("Illegal item count: %d\n",(yyvsp[-1].int32)); + if(!PASM->OnErrGo) (yyval.int32) = 1; }} +#line 5823 "asmparse.cpp" + break; + + case 403: /* ddItem: CHAR_ '*' '(' compQstring ')' */ +#line 1062 "./asmparse.y" + { PASM->EmitDataString((yyvsp[-1].binstr)); } +#line 5829 "asmparse.cpp" + break; + + case 404: /* ddItem: '&' '(' id ')' */ +#line 1063 "./asmparse.y" + { PASM->EmitDD((yyvsp[-1].string)); } +#line 5835 "asmparse.cpp" + break; + + case 405: /* ddItem: bytearrayhead bytes ')' */ +#line 1064 "./asmparse.y" + { PASM->EmitData((yyvsp[-1].binstr)->ptr(),(yyvsp[-1].binstr)->length()); } +#line 5841 "asmparse.cpp" + break; + + case 406: /* ddItem: FLOAT32_ '(' float64 ')' ddItemCount */ +#line 1066 "./asmparse.y" + { float f = (float) (*(yyvsp[-2].float64)); float* p = new (nothrow) float[(yyvsp[0].int32)]; if(p != NULL) { - for(int i=0; i < yyvsp[0].int32; i++) p[i] = f; - PASM->EmitData(p, sizeof(float)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; + for(int i=0; i < (yyvsp[0].int32); i++) p[i] = f; + PASM->EmitData(p, sizeof(float)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(float)*yyvsp[0].int32); } -#line 8409 "asmparse.cpp" -break; -case 406: - if (!yytrial) -#line 1073 "asmparse.y" -{ double* p = new (nothrow) double[yyvsp[0].int32]; + sizeof(float)*(yyvsp[0].int32)); } +#line 5852 "asmparse.cpp" + break; + + case 407: /* ddItem: FLOAT64_ '(' float64 ')' ddItemCount */ +#line 1073 "./asmparse.y" + { double* p = new (nothrow) double[(yyvsp[0].int32)]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(double)*yyvsp[0].int32); delete yyvsp[-2].float64; delete [] p; + for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].float64)); + PASM->EmitData(p, sizeof(double)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(double)*yyvsp[0].int32); } -#line 8420 "asmparse.cpp" -break; -case 407: - if (!yytrial) -#line 1080 "asmparse.y" -{ __int64* p = new (nothrow) __int64[yyvsp[0].int32]; + sizeof(double)*(yyvsp[0].int32)); } +#line 5863 "asmparse.cpp" + break; + + case 408: /* ddItem: INT64_ '(' int64 ')' ddItemCount */ +#line 1080 "./asmparse.y" + { __int64* p = new (nothrow) __int64[(yyvsp[0].int32)]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(__int64)*yyvsp[0].int32); delete yyvsp[-2].int64; delete [] p; + for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].int64)); + PASM->EmitData(p, sizeof(__int64)*(yyvsp[0].int32)); delete (yyvsp[-2].int64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int64)*yyvsp[0].int32); } -#line 8431 "asmparse.cpp" -break; -case 408: - if (!yytrial) -#line 1087 "asmparse.y" -{ __int32* p = new (nothrow) __int32[yyvsp[0].int32]; + sizeof(__int64)*(yyvsp[0].int32)); } +#line 5874 "asmparse.cpp" + break; + + case 409: /* ddItem: INT32_ '(' int32 ')' ddItemCount */ +#line 1087 "./asmparse.y" + { __int32* p = new (nothrow) __int32[(yyvsp[0].int32)]; if(p != NULL) { - for(int i=0; iEmitData(p, sizeof(__int32)*yyvsp[0].int32); delete [] p; + for(int i=0; i<(yyvsp[0].int32); i++) p[i] = (yyvsp[-2].int32); + PASM->EmitData(p, sizeof(__int32)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int32)*yyvsp[0].int32); } -#line 8442 "asmparse.cpp" -break; -case 409: - if (!yytrial) -#line 1094 "asmparse.y" -{ __int16 i = (__int16) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); - __int16* p = new (nothrow) __int16[yyvsp[0].int32]; + sizeof(__int32)*(yyvsp[0].int32)); } +#line 5885 "asmparse.cpp" + break; + + case 410: /* ddItem: INT16_ '(' int32 ')' ddItemCount */ +#line 1094 "./asmparse.y" + { __int16 i = (__int16) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); + __int16* p = new (nothrow) __int16[(yyvsp[0].int32)]; if(p != NULL) { - for(int j=0; jEmitData(p, sizeof(__int16)*yyvsp[0].int32); delete [] p; + for(int j=0; j<(yyvsp[0].int32); j++) p[j] = i; + PASM->EmitData(p, sizeof(__int16)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int16)*yyvsp[0].int32); } -#line 8454 "asmparse.cpp" -break; -case 410: - if (!yytrial) -#line 1102 "asmparse.y" -{ __int8 i = (__int8) yyvsp[-2].int32; FAIL_UNLESS(i == yyvsp[-2].int32, ("Value %d too big\n", yyvsp[-2].int32)); - __int8* p = new (nothrow) __int8[yyvsp[0].int32]; + sizeof(__int16)*(yyvsp[0].int32)); } +#line 5897 "asmparse.cpp" + break; + + case 411: /* ddItem: INT8_ '(' int32 ')' ddItemCount */ +#line 1102 "./asmparse.y" + { __int8 i = (__int8) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); + __int8* p = new (nothrow) __int8[(yyvsp[0].int32)]; if(p != NULL) { - for(int j=0; jEmitData(p, sizeof(__int8)*yyvsp[0].int32); delete [] p; + for(int j=0; j<(yyvsp[0].int32); j++) p[j] = i; + PASM->EmitData(p, sizeof(__int8)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int8)*yyvsp[0].int32); } -#line 8466 "asmparse.cpp" -break; -case 411: - if (!yytrial) -#line 1109 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(float)*yyvsp[0].int32); } -#line 8472 "asmparse.cpp" -break; -case 412: - if (!yytrial) -#line 1110 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(double)*yyvsp[0].int32); } -#line 8478 "asmparse.cpp" -break; -case 413: - if (!yytrial) -#line 1111 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int64)*yyvsp[0].int32); } -#line 8484 "asmparse.cpp" -break; -case 414: - if (!yytrial) -#line 1112 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int32)*yyvsp[0].int32); } -#line 8490 "asmparse.cpp" -break; -case 415: - if (!yytrial) -#line 1113 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int16)*yyvsp[0].int32); } -#line 8496 "asmparse.cpp" -break; -case 416: - if (!yytrial) -#line 1114 "asmparse.y" -{ PASM->EmitData(NULL, sizeof(__int8)*yyvsp[0].int32); } -#line 8502 "asmparse.cpp" -break; -case 417: - if (!yytrial) -#line 1118 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*yyvsp[-1].float64); - yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[-1].float64; } -#line 8510 "asmparse.cpp" -break; -case 418: - if (!yytrial) -#line 1121 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].float64); delete yyvsp[-1].float64; } -#line 8517 "asmparse.cpp" -break; -case 419: - if (!yytrial) -#line 1123 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8524 "asmparse.cpp" -break; -case 420: - if (!yytrial) -#line 1125 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8531 "asmparse.cpp" -break; -case 421: - if (!yytrial) -#line 1127 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8538 "asmparse.cpp" -break; -case 422: - if (!yytrial) -#line 1129 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8545 "asmparse.cpp" -break; -case 423: - if (!yytrial) -#line 1131 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8552 "asmparse.cpp" -break; -case 424: - if (!yytrial) -#line 1133 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8559 "asmparse.cpp" -break; -case 425: - if (!yytrial) -#line 1135 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8566 "asmparse.cpp" -break; -case 426: - if (!yytrial) -#line 1137 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8573 "asmparse.cpp" -break; -case 427: - if (!yytrial) -#line 1139 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8580 "asmparse.cpp" -break; -case 428: - if (!yytrial) -#line 1141 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8587 "asmparse.cpp" -break; -case 429: - if (!yytrial) -#line 1143 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); - yyval.binstr->appendInt64((__int64 *)yyvsp[-1].int64); delete yyvsp[-1].int64; } -#line 8594 "asmparse.cpp" -break; -case 430: - if (!yytrial) -#line 1145 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 8601 "asmparse.cpp" -break; -case 431: - if (!yytrial) -#line 1147 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8608 "asmparse.cpp" -break; -case 432: - if (!yytrial) -#line 1149 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); - yyval.binstr->appendInt8(yyvsp[-1].int32); } -#line 8615 "asmparse.cpp" -break; -case 433: - if (!yytrial) -#line 1151 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); - yyval.binstr->appendInt16(yyvsp[-1].int32); } -#line 8622 "asmparse.cpp" -break; -case 434: - if (!yytrial) -#line 1153 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); - yyval.binstr->appendInt8(yyvsp[-1].int32);} -#line 8629 "asmparse.cpp" -break; -case 435: - if (!yytrial) -#line 1155 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); - yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-1].binstr;} -#line 8636 "asmparse.cpp" -break; -case 436: - if (!yytrial) -#line 1159 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 8642 "asmparse.cpp" -break; -case 437: - if (!yytrial) -#line 1162 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8648 "asmparse.cpp" -break; -case 438: - if (!yytrial) -#line 1163 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 8654 "asmparse.cpp" -break; -case 439: - if (!yytrial) -#line 1166 "asmparse.y" -{ __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 8660 "asmparse.cpp" -break; -case 440: - if (!yytrial) -#line 1167 "asmparse.y" -{ __int8 i = (__int8) yyvsp[0].int32; yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(i); } -#line 8666 "asmparse.cpp" -break; -case 441: - if (!yytrial) -#line 1171 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 8672 "asmparse.cpp" -break; -case 442: - if (!yytrial) -#line 1172 "asmparse.y" -{ yyval.binstr = BinStrToUnicode(yyvsp[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 8678 "asmparse.cpp" -break; -case 443: - if (!yytrial) -#line 1173 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); - yyval.binstr->appendInt32(0); } -#line 8685 "asmparse.cpp" -break; -case 444: - if (!yytrial) -#line 1178 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 8691 "asmparse.cpp" -break; -case 445: - if (!yytrial) -#line 1179 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 8697 "asmparse.cpp" -break; -case 446: - if (!yytrial) -#line 1180 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); - AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8704 "asmparse.cpp" -break; -case 447: - if (!yytrial) -#line 1182 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength(yyval.binstr,yyvsp[-1].string); delete [] yyvsp[-1].string;} -#line 8711 "asmparse.cpp" -break; -case 448: - if (!yytrial) -#line 1184 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[-1].token));} -#line 8718 "asmparse.cpp" -break; -case 449: - if (!yytrial) -#line 1186 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 8724 "asmparse.cpp" -break; -case 450: - if (!yytrial) -#line 1187 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 8730 "asmparse.cpp" -break; -case 451: - if (!yytrial) -#line 1189 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_R4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8738 "asmparse.cpp" -break; -case 452: - if (!yytrial) -#line 1193 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_R8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8746 "asmparse.cpp" -break; -case 453: - if (!yytrial) -#line 1197 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8754 "asmparse.cpp" -break; -case 454: - if (!yytrial) -#line 1201 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8762 "asmparse.cpp" -break; -case 455: - if (!yytrial) -#line 1205 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8770 "asmparse.cpp" -break; -case 456: - if (!yytrial) -#line 1209 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_I1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8778 "asmparse.cpp" -break; -case 457: - if (!yytrial) -#line 1213 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8786 "asmparse.cpp" -break; -case 458: - if (!yytrial) -#line 1217 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8794 "asmparse.cpp" -break; -case 459: - if (!yytrial) -#line 1221 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8802 "asmparse.cpp" -break; -case 460: - if (!yytrial) -#line 1225 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8810 "asmparse.cpp" -break; -case 461: - if (!yytrial) -#line 1229 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U8); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8818 "asmparse.cpp" -break; -case 462: - if (!yytrial) -#line 1233 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U4); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8826 "asmparse.cpp" -break; -case 463: - if (!yytrial) -#line 1237 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U2); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8834 "asmparse.cpp" -break; -case 464: - if (!yytrial) -#line 1241 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_U1); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8842 "asmparse.cpp" -break; -case 465: - if (!yytrial) -#line 1245 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8850 "asmparse.cpp" -break; -case 466: - if (!yytrial) -#line 1249 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8858 "asmparse.cpp" -break; -case 467: - if (!yytrial) -#line 1253 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8866 "asmparse.cpp" -break; -case 468: - if (!yytrial) -#line 1257 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8874 "asmparse.cpp" -break; -case 469: - if (!yytrial) -#line 1261 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt32(yyvsp[-4].int32); - yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); - yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8882 "asmparse.cpp" -break; -case 470: - if (!yytrial) -#line 1267 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8888 "asmparse.cpp" -break; -case 471: - if (!yytrial) -#line 1268 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - float f = (float) (*yyvsp[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yyvsp[0].float64; } -#line 8895 "asmparse.cpp" -break; -case 472: - if (!yytrial) -#line 1270 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 8902 "asmparse.cpp" -break; -case 473: - if (!yytrial) -#line 1274 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8908 "asmparse.cpp" -break; -case 474: - if (!yytrial) -#line 1275 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].float64); delete yyvsp[0].float64; } -#line 8915 "asmparse.cpp" -break; -case 475: - if (!yytrial) -#line 1277 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8922 "asmparse.cpp" -break; -case 476: - if (!yytrial) -#line 1281 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8928 "asmparse.cpp" -break; -case 477: - if (!yytrial) -#line 1282 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yyvsp[0].int64); delete yyvsp[0].int64; } -#line 8935 "asmparse.cpp" -break; -case 478: - if (!yytrial) -#line 1286 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8941 "asmparse.cpp" -break; -case 479: - if (!yytrial) -#line 1287 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt32(yyvsp[0].int32);} -#line 8947 "asmparse.cpp" -break; -case 480: - if (!yytrial) -#line 1290 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8953 "asmparse.cpp" -break; -case 481: - if (!yytrial) -#line 1291 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt16(yyvsp[0].int32);} -#line 8959 "asmparse.cpp" -break; -case 482: - if (!yytrial) -#line 1294 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8965 "asmparse.cpp" -break; -case 483: - if (!yytrial) -#line 1295 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 8971 "asmparse.cpp" -break; -case 484: - if (!yytrial) -#line 1298 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8977 "asmparse.cpp" -break; -case 485: - if (!yytrial) -#line 1299 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - yyval.binstr->appendInt8(yyvsp[0].int32);} -#line 8984 "asmparse.cpp" -break; -case 486: - if (!yytrial) -#line 1303 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 8990 "asmparse.cpp" -break; -case 487: - if (!yytrial) -#line 1304 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 8996 "asmparse.cpp" -break; -case 488: - if (!yytrial) -#line 1305 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9003 "asmparse.cpp" -break; -case 489: - if (!yytrial) -#line 1309 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 9009 "asmparse.cpp" -break; -case 490: - if (!yytrial) -#line 1310 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 9015 "asmparse.cpp" -break; -case 491: - if (!yytrial) -#line 1311 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; - AppendStringWithLength(yyval.binstr,yyvsp[0].string); delete [] yyvsp[0].string;} -#line 9022 "asmparse.cpp" -break; -case 492: - if (!yytrial) -#line 1313 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yyvsp[0].token));} -#line 9029 "asmparse.cpp" -break; -case 493: - if (!yytrial) -#line 1317 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 9035 "asmparse.cpp" -break; -case 494: - if (!yytrial) -#line 1318 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9041 "asmparse.cpp" -break; -case 495: - if (!yytrial) -#line 1322 "asmparse.y" -{ parser->m_ANSFirst.PUSH(PASM->m_firstArgName); - parser->m_ANSLast.PUSH(PASM->m_lastArgName); - PASM->m_firstArgName = NULL; - PASM->m_lastArgName = NULL; } -#line 9050 "asmparse.cpp" -break; -case 496: - if (!yytrial) -#line 1328 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9056 "asmparse.cpp" -break; -case 497: - if (!yytrial) -#line 1331 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9062 "asmparse.cpp" -break; -case 498: - if (!yytrial) -#line 1334 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9068 "asmparse.cpp" -break; -case 499: - if (!yytrial) -#line 1337 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9074 "asmparse.cpp" -break; -case 500: - if (!yytrial) -#line 1340 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9080 "asmparse.cpp" -break; -case 501: - if (!yytrial) -#line 1343 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9086 "asmparse.cpp" -break; -case 502: - if (!yytrial) -#line 1346 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); - if((!PASM->OnErrGo)&& - ((yyvsp[0].opcode == CEE_NEWOBJ)|| - (yyvsp[0].opcode == CEE_CALLVIRT))) - iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; - } -#line 9097 "asmparse.cpp" -break; -case 503: - if (!yytrial) -#line 1354 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9103 "asmparse.cpp" -break; -case 504: - if (!yytrial) -#line 1357 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9109 "asmparse.cpp" -break; -case 505: - if (!yytrial) -#line 1360 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9115 "asmparse.cpp" -break; -case 506: - if (!yytrial) -#line 1363 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9121 "asmparse.cpp" -break; -case 507: - if (!yytrial) -#line 1366 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 9127 "asmparse.cpp" -break; -case 508: - if (!yytrial) -#line 1369 "asmparse.y" -{ yyval.instr = SetupInstr(yyvsp[0].opcode); } -#line 9133 "asmparse.cpp" -break; -case 509: - if (!yytrial) -#line 1372 "asmparse.y" -{ yyval.instr = yyvsp[-1].instr; bParsingByteArray = TRUE; } -#line 9139 "asmparse.cpp" -break; -case 510: - if (!yytrial) -#line 1376 "asmparse.y" -{ PASM->EmitOpcode(yyvsp[0].instr); } -#line 9145 "asmparse.cpp" -break; -case 511: - if (!yytrial) -#line 1377 "asmparse.y" -{ PASM->EmitInstrVar(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9151 "asmparse.cpp" -break; -case 512: - if (!yytrial) -#line 1378 "asmparse.y" -{ PASM->EmitInstrVarByName(yyvsp[-1].instr, yyvsp[0].string); } -#line 9157 "asmparse.cpp" -break; -case 513: - if (!yytrial) -#line 1379 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9163 "asmparse.cpp" -break; -case 514: - if (!yytrial) -#line 1380 "asmparse.y" -{ PASM->EmitInstrI8(yyvsp[-1].instr, yyvsp[0].int64); } -#line 9169 "asmparse.cpp" -break; -case 515: - if (!yytrial) -#line 1381 "asmparse.y" -{ PASM->EmitInstrR(yyvsp[-1].instr, yyvsp[0].float64); delete (yyvsp[0].float64);} -#line 9175 "asmparse.cpp" -break; -case 516: - if (!yytrial) -#line 1382 "asmparse.y" -{ double f = (double) (*yyvsp[0].int64); PASM->EmitInstrR(yyvsp[-1].instr, &f); } -#line 9181 "asmparse.cpp" -break; -case 517: - if (!yytrial) -#line 1383 "asmparse.y" -{ unsigned L = yyvsp[-1].binstr->length(); - FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", - L,sizeof(float))); - if(L < sizeof(float)) {YYERROR; } - else { - double f = (L >= sizeof(double)) ? *((double *)(yyvsp[-1].binstr->ptr())) - : (double)(*(float *)(yyvsp[-1].binstr->ptr())); - PASM->EmitInstrR(yyvsp[-2].instr,&f); } - delete yyvsp[-1].binstr; } -#line 9195 "asmparse.cpp" -break; -case 518: - if (!yytrial) -#line 1392 "asmparse.y" -{ PASM->EmitInstrBrOffset(yyvsp[-1].instr, yyvsp[0].int32); } -#line 9201 "asmparse.cpp" -break; -case 519: - if (!yytrial) -#line 1393 "asmparse.y" -{ PASM->EmitInstrBrTarget(yyvsp[-1].instr, yyvsp[0].string); } -#line 9207 "asmparse.cpp" -break; -case 520: - if (!yytrial) -#line 1395 "asmparse.y" -{ PASM->SetMemberRefFixup(yyvsp[0].token,PASM->OpcodeLen(yyvsp[-1].instr)); - PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); - PASM->m_tkCurrentCVOwner = yyvsp[0].token; - PASM->m_pCustomDescrList = NULL; - iCallConv = 0; - } -#line 9218 "asmparse.cpp" -break; -case 521: - if (!yytrial) -#line 1402 "asmparse.y" -{ yyvsp[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef(yyvsp[-2].token, yyvsp[0].string, yyvsp[-3].binstr); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-4].instr)); - PASM->EmitInstrI(yyvsp[-4].instr,mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; - } -#line 9230 "asmparse.cpp" -break; -case 522: - if (!yytrial) -#line 1410 "asmparse.y" -{ yyvsp[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef(mdTokenNil, yyvsp[0].string, yyvsp[-1].binstr); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-2].instr)); - PASM->EmitInstrI(yyvsp[-2].instr,mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; - } -#line 9242 "asmparse.cpp" -break; -case 523: - if (!yytrial) -#line 1417 "asmparse.y" -{ mdToken mr = yyvsp[0].token; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); - PASM->EmitInstrI(yyvsp[-1].instr,mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; - } -#line 9253 "asmparse.cpp" -break; -case 524: - if (!yytrial) -#line 1423 "asmparse.y" -{ mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); - PASM->EmitInstrI(yyvsp[-1].instr,mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; - } -#line 9264 "asmparse.cpp" -break; -case 525: - if (!yytrial) -#line 1429 "asmparse.y" -{ mdToken mr = yyvsp[0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yyvsp[-1].instr)); - PASM->EmitInstrI(yyvsp[-1].instr,mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; - } -#line 9275 "asmparse.cpp" -break; -case 526: - if (!yytrial) -#line 1435 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr, yyvsp[0].token); - PASM->m_tkCurrentCVOwner = yyvsp[0].token; - PASM->m_pCustomDescrList = NULL; - } -#line 9284 "asmparse.cpp" -break; -case 527: - if (!yytrial) -#line 1439 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yyvsp[-1].instr, yyvsp[0].binstr,TRUE); } -#line 9290 "asmparse.cpp" -break; -case 528: - if (!yytrial) -#line 1441 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yyvsp[-4].instr, yyvsp[-1].binstr,FALSE); } -#line 9296 "asmparse.cpp" -break; -case 529: - if (!yytrial) -#line 1443 "asmparse.y" -{ PASM->EmitInstrStringLiteral(yyvsp[-3].instr, yyvsp[-1].binstr,FALSE,TRUE); } -#line 9302 "asmparse.cpp" -break; -case 530: - if (!yytrial) -#line 1445 "asmparse.y" -{ PASM->EmitInstrSig(yyvsp[-5].instr, parser->MakeSig(yyvsp[-4].int32, yyvsp[-3].binstr, yyvsp[-1].binstr)); - PASM->ResetArgNameList(); - } -#line 9310 "asmparse.cpp" -break; -case 531: - if (!yytrial) -#line 1449 "asmparse.y" -{ PASM->EmitInstrI(yyvsp[-1].instr,yyvsp[0].token); - PASM->m_tkCurrentCVOwner = yyvsp[0].token; - PASM->m_pCustomDescrList = NULL; - iOpcodeLen = 0; - } -#line 9320 "asmparse.cpp" -break; -case 532: - if (!yytrial) -#line 1454 "asmparse.y" -{ PASM->EmitInstrSwitch(yyvsp[-3].instr, yyvsp[-1].labels); } -#line 9326 "asmparse.cpp" -break; -case 533: - if (!yytrial) -#line 1457 "asmparse.y" -{ yyval.labels = 0; } -#line 9332 "asmparse.cpp" -break; -case 534: - if (!yytrial) -#line 1458 "asmparse.y" -{ yyval.labels = new Labels(yyvsp[-2].string, yyvsp[0].labels, TRUE); } -#line 9338 "asmparse.cpp" -break; -case 535: - if (!yytrial) -#line 1459 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[-2].int32, yyvsp[0].labels, FALSE); } -#line 9344 "asmparse.cpp" -break; -case 536: - if (!yytrial) -#line 1460 "asmparse.y" -{ yyval.labels = new Labels(yyvsp[0].string, NULL, TRUE); } -#line 9350 "asmparse.cpp" -break; -case 537: - if (!yytrial) -#line 1461 "asmparse.y" -{ yyval.labels = new Labels((char *)(UINT_PTR)yyvsp[0].int32, NULL, FALSE); } -#line 9356 "asmparse.cpp" -break; -case 538: - if (!yytrial) -#line 1465 "asmparse.y" -{ yyval.binstr = NULL; } -#line 9362 "asmparse.cpp" -break; -case 539: - if (!yytrial) -#line 1466 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; } -#line 9368 "asmparse.cpp" -break; -case 540: - if (!yytrial) -#line 1469 "asmparse.y" -{ yyval.binstr = NULL; } -#line 9374 "asmparse.cpp" -break; -case 541: - if (!yytrial) -#line 1470 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9380 "asmparse.cpp" -break; -case 542: - if (!yytrial) -#line 1473 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9386 "asmparse.cpp" -break; -case 543: - if (!yytrial) -#line 1474 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9392 "asmparse.cpp" -break; -case 544: - if (!yytrial) -#line 1478 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 9398 "asmparse.cpp" -break; -case 545: - if (!yytrial) -#line 1479 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr;} -#line 9404 "asmparse.cpp" -break; -case 546: - if (!yytrial) -#line 1482 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 9410 "asmparse.cpp" -break; -case 547: - if (!yytrial) -#line 1483 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 9416 "asmparse.cpp" -break; -case 548: - if (!yytrial) -#line 1486 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 9422 "asmparse.cpp" -break; -case 549: - if (!yytrial) -#line 1487 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-1].binstr); PASM->addArgName(NULL, yyvsp[-1].binstr, yyvsp[0].binstr, yyvsp[-2].int32); } -#line 9428 "asmparse.cpp" -break; -case 550: - if (!yytrial) -#line 1488 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[-2].binstr); PASM->addArgName(yyvsp[0].string, yyvsp[-2].binstr, yyvsp[-1].binstr, yyvsp[-3].int32);} -#line 9434 "asmparse.cpp" -break; -case 551: - if (!yytrial) -#line 1492 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yyvsp[-2].string), yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9440 "asmparse.cpp" -break; -case 552: - if (!yytrial) -#line 1493 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(yyvsp[-2].token, yyvsp[0].string, NULL); } -#line 9446 "asmparse.cpp" -break; -case 553: - if (!yytrial) -#line 1494 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(mdTokenNil, yyvsp[0].string, NULL); } -#line 9452 "asmparse.cpp" -break; -case 554: - if (!yytrial) -#line 1495 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yyvsp[-2].string),yyvsp[0].string, NULL); delete[] yyvsp[-2].string;} -#line 9458 "asmparse.cpp" -break; -case 555: - if (!yytrial) -#line 1496 "asmparse.y" -{ yyval.token = PASM->ResolveClassRef(1,yyvsp[0].string,NULL); } -#line 9464 "asmparse.cpp" -break; -case 556: - if (!yytrial) -#line 1497 "asmparse.y" -{ yyval.token = yyvsp[0].token; } -#line 9470 "asmparse.cpp" -break; -case 557: - if (!yytrial) -#line 1498 "asmparse.y" -{ yyval.token = yyvsp[0].tdd->m_tkTypeSpec; } -#line 9476 "asmparse.cpp" -break; -case 558: - if (!yytrial) -#line 1499 "asmparse.y" -{ if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; - else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } - } -#line 9484 "asmparse.cpp" -break; -case 559: - if (!yytrial) -#line 1502 "asmparse.y" -{ if(PASM->m_pCurClass != NULL) { - yyval.token = PASM->m_pCurClass->m_crExtends; - if(RidFromToken(yyval.token) == 0) - PASM->report->error(".base undefined\n"); - } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } - } -#line 9495 "asmparse.cpp" -break; -case 560: - if (!yytrial) -#line 1508 "asmparse.y" -{ if(PASM->m_pCurClass != NULL) { - if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; - else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } - } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } - } -#line 9505 "asmparse.cpp" -break; -case 561: - if (!yytrial) -#line 1515 "asmparse.y" -{ yyval.string = yyvsp[0].string; } -#line 9511 "asmparse.cpp" -break; -case 562: - if (!yytrial) -#line 1516 "asmparse.y" -{ yyval.string = newStringWDel(yyvsp[-2].string, NESTING_SEP, yyvsp[0].string); } -#line 9517 "asmparse.cpp" -break; -case 563: - if (!yytrial) -#line 1519 "asmparse.y" -{ yyval.token = yyvsp[0].token;} -#line 9523 "asmparse.cpp" -break; -case 564: - if (!yytrial) -#line 1520 "asmparse.y" -{ yyval.token = PASM->GetAsmRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9529 "asmparse.cpp" -break; -case 565: - if (!yytrial) -#line 1521 "asmparse.y" -{ yyval.token = PASM->GetModRef(yyvsp[-1].string); delete[] yyvsp[-1].string;} -#line 9535 "asmparse.cpp" -break; -case 566: - if (!yytrial) -#line 1522 "asmparse.y" -{ yyval.token = PASM->ResolveTypeSpec(yyvsp[0].binstr); } -#line 9541 "asmparse.cpp" -break; -case 567: - if (!yytrial) -#line 1526 "asmparse.y" -{ yyval.binstr = new BinStr(); } -#line 9547 "asmparse.cpp" -break; -case 568: - if (!yytrial) -#line 1528 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); - corEmitInt(yyval.binstr,yyvsp[-7].binstr->length()); yyval.binstr->append(yyvsp[-7].binstr); - corEmitInt(yyval.binstr,yyvsp[-5].binstr->length()); yyval.binstr->append(yyvsp[-5].binstr); - corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); - corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); - PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 9558 "asmparse.cpp" -break; -case 569: - if (!yytrial) -#line 1535 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); - corEmitInt(yyval.binstr,0); - corEmitInt(yyval.binstr,0); - corEmitInt(yyval.binstr,yyvsp[-3].binstr->length()); yyval.binstr->append(yyvsp[-3].binstr); - corEmitInt(yyval.binstr,yyvsp[-1].binstr->length()); yyval.binstr->append(yyvsp[-1].binstr); } -#line 9568 "asmparse.cpp" -break; -case 570: - if (!yytrial) -#line 1540 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); - corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9575 "asmparse.cpp" -break; -case 571: - if (!yytrial) -#line 1543 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); - corEmitInt(yyval.binstr,yyvsp[-2].int32); yyval.binstr->append(yyvsp[0].binstr); } -#line 9582 "asmparse.cpp" -break; -case 572: - if (!yytrial) -#line 1545 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); - PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 9589 "asmparse.cpp" -break; -case 573: - if (!yytrial) -#line 1547 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 9595 "asmparse.cpp" -break; -case 574: - if (!yytrial) -#line 1548 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); - PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 9602 "asmparse.cpp" -break; -case 575: - if (!yytrial) -#line 1550 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); - PASM->report->warn("Deprecated native type 'void'\n"); } -#line 9609 "asmparse.cpp" -break; -case 576: - if (!yytrial) -#line 1552 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 9615 "asmparse.cpp" -break; -case 577: - if (!yytrial) -#line 1553 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 9621 "asmparse.cpp" -break; -case 578: - if (!yytrial) -#line 1554 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 9627 "asmparse.cpp" -break; -case 579: - if (!yytrial) -#line 1555 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 9633 "asmparse.cpp" -break; -case 580: - if (!yytrial) -#line 1556 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 9639 "asmparse.cpp" -break; -case 581: - if (!yytrial) -#line 1557 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 9645 "asmparse.cpp" -break; -case 582: - if (!yytrial) -#line 1558 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 9651 "asmparse.cpp" -break; -case 583: - if (!yytrial) -#line 1559 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 9657 "asmparse.cpp" -break; -case 584: - if (!yytrial) -#line 1560 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9663 "asmparse.cpp" -break; -case 585: - if (!yytrial) -#line 1561 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9669 "asmparse.cpp" -break; -case 586: - if (!yytrial) -#line 1562 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9675 "asmparse.cpp" -break; -case 587: - if (!yytrial) -#line 1563 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9681 "asmparse.cpp" -break; -case 588: - if (!yytrial) -#line 1564 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 9687 "asmparse.cpp" -break; -case 589: - if (!yytrial) -#line 1565 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 9693 "asmparse.cpp" -break; -case 590: - if (!yytrial) -#line 1566 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 9699 "asmparse.cpp" -break; -case 591: - if (!yytrial) -#line 1567 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 9705 "asmparse.cpp" -break; -case 592: - if (!yytrial) -#line 1568 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); - PASM->report->warn("Deprecated native type '*'\n"); } -#line 9712 "asmparse.cpp" -break; -case 593: - if (!yytrial) -#line 1570 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 9719 "asmparse.cpp" -break; -case 594: - if (!yytrial) -#line 1572 "asmparse.y" -{ yyval.binstr = yyvsp[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,0); - corEmitInt(yyval.binstr,yyvsp[-1].int32); - corEmitInt(yyval.binstr,0); } -#line 9729 "asmparse.cpp" -break; -case 595: - if (!yytrial) -#line 1577 "asmparse.y" -{ yyval.binstr = yyvsp[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,yyvsp[-1].int32); - corEmitInt(yyval.binstr,yyvsp[-3].int32); - corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 9739 "asmparse.cpp" -break; -case 596: - if (!yytrial) -#line 1582 "asmparse.y" -{ yyval.binstr = yyvsp[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); - yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt(yyval.binstr,yyvsp[-1].int32); } -#line 9747 "asmparse.cpp" -break; -case 597: - if (!yytrial) -#line 1585 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); - PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 9754 "asmparse.cpp" -break; -case 598: - if (!yytrial) -#line 1587 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); - PASM->report->warn("Deprecated native type 'date'\n"); } -#line 9761 "asmparse.cpp" -break; -case 599: - if (!yytrial) -#line 1589 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 9767 "asmparse.cpp" -break; -case 600: - if (!yytrial) -#line 1590 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 9773 "asmparse.cpp" -break; -case 601: - if (!yytrial) -#line 1591 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 9779 "asmparse.cpp" -break; -case 602: - if (!yytrial) -#line 1592 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 9785 "asmparse.cpp" -break; -case 603: - if (!yytrial) -#line 1593 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); - PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 9792 "asmparse.cpp" -break; -case 604: - if (!yytrial) -#line 1595 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); - if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9799 "asmparse.cpp" -break; -case 605: - if (!yytrial) -#line 1597 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); - if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9806 "asmparse.cpp" -break; -case 606: - if (!yytrial) -#line 1599 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 9812 "asmparse.cpp" -break; -case 607: - if (!yytrial) -#line 1600 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); - if(yyvsp[0].int32 != -1) corEmitInt(yyval.binstr,yyvsp[0].int32); } -#line 9819 "asmparse.cpp" -break; -case 608: - if (!yytrial) -#line 1602 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt(yyval.binstr,yyvsp[0].int32); - corEmitInt(yyval.binstr,0);} -#line 9827 "asmparse.cpp" -break; -case 609: - if (!yytrial) -#line 1605 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt(yyval.binstr,yyvsp[-2].int32); - corEmitInt(yyval.binstr,yyvsp[0].binstr->length()); yyval.binstr->append(yyvsp[0].binstr); } -#line 9835 "asmparse.cpp" -break; -case 610: - if (!yytrial) -#line 1609 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 9841 "asmparse.cpp" -break; -case 611: - if (!yytrial) -#line 1610 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9847 "asmparse.cpp" -break; -case 612: - if (!yytrial) -#line 1611 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 9853 "asmparse.cpp" -break; -case 613: - if (!yytrial) -#line 1612 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); - PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 9860 "asmparse.cpp" -break; -case 614: - if (!yytrial) -#line 1614 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 9866 "asmparse.cpp" -break; -case 615: - if (!yytrial) -#line 1615 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 9872 "asmparse.cpp" -break; -case 616: - if (!yytrial) -#line 1616 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 9878 "asmparse.cpp" -break; -case 617: - if (!yytrial) -#line 1617 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 9884 "asmparse.cpp" -break; -case 618: - if (!yytrial) -#line 1618 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 9890 "asmparse.cpp" -break; -case 619: - if (!yytrial) -#line 1619 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 9896 "asmparse.cpp" -break; -case 620: - if (!yytrial) -#line 1620 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 9902 "asmparse.cpp" -break; -case 621: - if (!yytrial) -#line 1621 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 9908 "asmparse.cpp" -break; -case 622: - if (!yytrial) -#line 1624 "asmparse.y" -{ yyval.int32 = -1; } -#line 9914 "asmparse.cpp" -break; -case 623: - if (!yytrial) -#line 1625 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32; } -#line 9920 "asmparse.cpp" -break; -case 624: - if (!yytrial) -#line 1628 "asmparse.y" -{ yyval.int32 = VT_EMPTY; } -#line 9926 "asmparse.cpp" -break; -case 625: - if (!yytrial) -#line 1629 "asmparse.y" -{ yyval.int32 = VT_NULL; } -#line 9932 "asmparse.cpp" -break; -case 626: - if (!yytrial) -#line 1630 "asmparse.y" -{ yyval.int32 = VT_VARIANT; } -#line 9938 "asmparse.cpp" -break; -case 627: - if (!yytrial) -#line 1631 "asmparse.y" -{ yyval.int32 = VT_CY; } -#line 9944 "asmparse.cpp" -break; -case 628: - if (!yytrial) -#line 1632 "asmparse.y" -{ yyval.int32 = VT_VOID; } -#line 9950 "asmparse.cpp" -break; -case 629: - if (!yytrial) -#line 1633 "asmparse.y" -{ yyval.int32 = VT_BOOL; } -#line 9956 "asmparse.cpp" -break; -case 630: - if (!yytrial) -#line 1634 "asmparse.y" -{ yyval.int32 = VT_I1; } -#line 9962 "asmparse.cpp" -break; -case 631: - if (!yytrial) -#line 1635 "asmparse.y" -{ yyval.int32 = VT_I2; } -#line 9968 "asmparse.cpp" -break; -case 632: - if (!yytrial) -#line 1636 "asmparse.y" -{ yyval.int32 = VT_I4; } -#line 9974 "asmparse.cpp" -break; -case 633: - if (!yytrial) -#line 1637 "asmparse.y" -{ yyval.int32 = VT_I8; } -#line 9980 "asmparse.cpp" -break; -case 634: - if (!yytrial) -#line 1638 "asmparse.y" -{ yyval.int32 = VT_R4; } -#line 9986 "asmparse.cpp" -break; -case 635: - if (!yytrial) -#line 1639 "asmparse.y" -{ yyval.int32 = VT_R8; } -#line 9992 "asmparse.cpp" -break; -case 636: - if (!yytrial) -#line 1640 "asmparse.y" -{ yyval.int32 = VT_UI1; } -#line 9998 "asmparse.cpp" -break; -case 637: - if (!yytrial) -#line 1641 "asmparse.y" -{ yyval.int32 = VT_UI2; } -#line 10004 "asmparse.cpp" -break; -case 638: - if (!yytrial) -#line 1642 "asmparse.y" -{ yyval.int32 = VT_UI4; } -#line 10010 "asmparse.cpp" -break; -case 639: - if (!yytrial) -#line 1643 "asmparse.y" -{ yyval.int32 = VT_UI8; } -#line 10016 "asmparse.cpp" -break; -case 640: - if (!yytrial) -#line 1644 "asmparse.y" -{ yyval.int32 = VT_UI1; } -#line 10022 "asmparse.cpp" -break; -case 641: - if (!yytrial) -#line 1645 "asmparse.y" -{ yyval.int32 = VT_UI2; } -#line 10028 "asmparse.cpp" -break; -case 642: - if (!yytrial) -#line 1646 "asmparse.y" -{ yyval.int32 = VT_UI4; } -#line 10034 "asmparse.cpp" -break; -case 643: - if (!yytrial) -#line 1647 "asmparse.y" -{ yyval.int32 = VT_UI8; } -#line 10040 "asmparse.cpp" -break; -case 644: - if (!yytrial) -#line 1648 "asmparse.y" -{ yyval.int32 = VT_PTR; } -#line 10046 "asmparse.cpp" -break; -case 645: - if (!yytrial) -#line 1649 "asmparse.y" -{ yyval.int32 = yyvsp[-2].int32 | VT_ARRAY; } -#line 10052 "asmparse.cpp" -break; -case 646: - if (!yytrial) -#line 1650 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | VT_VECTOR; } -#line 10058 "asmparse.cpp" -break; -case 647: - if (!yytrial) -#line 1651 "asmparse.y" -{ yyval.int32 = yyvsp[-1].int32 | VT_BYREF; } -#line 10064 "asmparse.cpp" -break; -case 648: - if (!yytrial) -#line 1652 "asmparse.y" -{ yyval.int32 = VT_DECIMAL; } -#line 10070 "asmparse.cpp" -break; -case 649: - if (!yytrial) -#line 1653 "asmparse.y" -{ yyval.int32 = VT_DATE; } -#line 10076 "asmparse.cpp" -break; -case 650: - if (!yytrial) -#line 1654 "asmparse.y" -{ yyval.int32 = VT_BSTR; } -#line 10082 "asmparse.cpp" -break; -case 651: - if (!yytrial) -#line 1655 "asmparse.y" -{ yyval.int32 = VT_LPSTR; } -#line 10088 "asmparse.cpp" -break; -case 652: - if (!yytrial) -#line 1656 "asmparse.y" -{ yyval.int32 = VT_LPWSTR; } -#line 10094 "asmparse.cpp" -break; -case 653: - if (!yytrial) -#line 1657 "asmparse.y" -{ yyval.int32 = VT_UNKNOWN; } -#line 10100 "asmparse.cpp" -break; -case 654: - if (!yytrial) -#line 1658 "asmparse.y" -{ yyval.int32 = VT_DISPATCH; } -#line 10106 "asmparse.cpp" -break; -case 655: - if (!yytrial) -#line 1659 "asmparse.y" -{ yyval.int32 = VT_SAFEARRAY; } -#line 10112 "asmparse.cpp" -break; -case 656: - if (!yytrial) -#line 1660 "asmparse.y" -{ yyval.int32 = VT_INT; } -#line 10118 "asmparse.cpp" -break; -case 657: - if (!yytrial) -#line 1661 "asmparse.y" -{ yyval.int32 = VT_UINT; } -#line 10124 "asmparse.cpp" -break; -case 658: - if (!yytrial) -#line 1662 "asmparse.y" -{ yyval.int32 = VT_UINT; } -#line 10130 "asmparse.cpp" -break; -case 659: - if (!yytrial) -#line 1663 "asmparse.y" -{ yyval.int32 = VT_ERROR; } -#line 10136 "asmparse.cpp" -break; -case 660: - if (!yytrial) -#line 1664 "asmparse.y" -{ yyval.int32 = VT_HRESULT; } -#line 10142 "asmparse.cpp" -break; -case 661: - if (!yytrial) -#line 1665 "asmparse.y" -{ yyval.int32 = VT_CARRAY; } -#line 10148 "asmparse.cpp" -break; -case 662: - if (!yytrial) -#line 1666 "asmparse.y" -{ yyval.int32 = VT_USERDEFINED; } -#line 10154 "asmparse.cpp" -break; -case 663: - if (!yytrial) -#line 1667 "asmparse.y" -{ yyval.int32 = VT_RECORD; } -#line 10160 "asmparse.cpp" -break; -case 664: - if (!yytrial) -#line 1668 "asmparse.y" -{ yyval.int32 = VT_FILETIME; } -#line 10166 "asmparse.cpp" -break; -case 665: - if (!yytrial) -#line 1669 "asmparse.y" -{ yyval.int32 = VT_BLOB; } -#line 10172 "asmparse.cpp" -break; -case 666: - if (!yytrial) -#line 1670 "asmparse.y" -{ yyval.int32 = VT_STREAM; } -#line 10178 "asmparse.cpp" -break; -case 667: - if (!yytrial) -#line 1671 "asmparse.y" -{ yyval.int32 = VT_STORAGE; } -#line 10184 "asmparse.cpp" -break; -case 668: - if (!yytrial) -#line 1672 "asmparse.y" -{ yyval.int32 = VT_STREAMED_OBJECT; } -#line 10190 "asmparse.cpp" -break; -case 669: - if (!yytrial) -#line 1673 "asmparse.y" -{ yyval.int32 = VT_STORED_OBJECT; } -#line 10196 "asmparse.cpp" -break; -case 670: - if (!yytrial) -#line 1674 "asmparse.y" -{ yyval.int32 = VT_BLOB_OBJECT; } -#line 10202 "asmparse.cpp" -break; -case 671: - if (!yytrial) -#line 1675 "asmparse.y" -{ yyval.int32 = VT_CF; } -#line 10208 "asmparse.cpp" -break; -case 672: - if (!yytrial) -#line 1676 "asmparse.y" -{ yyval.int32 = VT_CLSID; } -#line 10214 "asmparse.cpp" -break; -case 673: - if (!yytrial) -#line 1680 "asmparse.y" -{ if(yyvsp[0].token == PASM->m_tkSysString) - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } - else if(yyvsp[0].token == PASM->m_tkSysObject) - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } - else - yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yyvsp[0].token); } -#line 10225 "asmparse.cpp" -break; -case 674: - if (!yytrial) -#line 1686 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 10231 "asmparse.cpp" -break; -case 675: - if (!yytrial) -#line 1687 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10237 "asmparse.cpp" -break; -case 676: - if (!yytrial) -#line 1688 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yyvsp[0].token); } -#line 10243 "asmparse.cpp" -break; -case 677: - if (!yytrial) -#line 1689 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 10249 "asmparse.cpp" -break; -case 678: - if (!yytrial) -#line 1690 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10255 "asmparse.cpp" -break; -case 679: - if (!yytrial) -#line 1691 "asmparse.y" -{ yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yyvsp[-3].binstr, yyvsp[-1].binstr); } -#line 10261 "asmparse.cpp" -break; -case 680: - if (!yytrial) -#line 1692 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 10267 "asmparse.cpp" -break; -case 681: - if (!yytrial) -#line 1693 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 10273 "asmparse.cpp" -break; -case 682: - if (!yytrial) -#line 1694 "asmparse.y" -{ yyval.binstr = yyvsp[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 10279 "asmparse.cpp" -break; -case 683: - if (!yytrial) -#line 1695 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yyvsp[-1].token); - yyval.binstr->append(yyvsp[-4].binstr); } -#line 10286 "asmparse.cpp" -break; -case 684: - if (!yytrial) -#line 1697 "asmparse.y" -{ yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yyvsp[-1].token); - yyval.binstr->append(yyvsp[-4].binstr); } -#line 10293 "asmparse.cpp" -break; -case 685: - if (!yytrial) -#line 1700 "asmparse.y" -{ yyval.binstr = parser->MakeSig(yyvsp[-5].int32, yyvsp[-4].binstr, yyvsp[-1].binstr); - yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); - PASM->delArgNameList(PASM->m_firstArgName); - PASM->m_firstArgName = parser->m_ANSFirst.POP(); - PASM->m_lastArgName = parser->m_ANSLast.POP(); - } -#line 10304 "asmparse.cpp" -break; -case 686: - if (!yytrial) -#line 1706 "asmparse.y" -{ if(yyvsp[-1].binstr == NULL) yyval.binstr = yyvsp[-3].binstr; - else { - yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(ELEMENT_TYPE_GENERICINST); - yyval.binstr->append(yyvsp[-3].binstr); - corEmitInt(yyval.binstr, corCountArgs(yyvsp[-1].binstr)); - yyval.binstr->append(yyvsp[-1].binstr); delete yyvsp[-3].binstr; delete yyvsp[-1].binstr; }} -#line 10316 "asmparse.cpp" -break; -case 687: - if (!yytrial) -#line 1713 "asmparse.y" -{ /*if(PASM->m_pCurMethod) {*/ - /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars))*/ - /* PASM->report->error("Invalid method type parameter '%d'\n",$3);*/ - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yyvsp[0].int32); - /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3);*/ - } -#line 10327 "asmparse.cpp" -break; -case 688: - if (!yytrial) -#line 1719 "asmparse.y" -{ /*if(PASM->m_pCurClass) {*/ - /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars))*/ - /* PASM->report->error("Invalid type parameter '%d'\n",$2);*/ - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yyvsp[0].int32); - /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2);*/ - } -#line 10338 "asmparse.cpp" -break; -case 689: - if (!yytrial) -#line 1725 "asmparse.y" -{ int eltype = ELEMENT_TYPE_MVAR; - int n=-1; - if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yyvsp[0].string); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yyvsp[0].string); - eltype = ELEMENT_TYPE_MVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",yyvsp[0].string); - n = 0x1FFFFFFF; } - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } -#line 10358 "asmparse.cpp" -break; -case 690: - if (!yytrial) -#line 1740 "asmparse.y" -{ int eltype = ELEMENT_TYPE_VAR; - int n=-1; - if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yyvsp[0].string); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yyvsp[0].string); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH(yyvsp[0].string); - eltype = ELEMENT_TYPE_VARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",yyvsp[0].string); - n = 0x1FFFFFFF; } - yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); - } -#line 10378 "asmparse.cpp" -break; -case 691: - if (!yytrial) -#line 1755 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 10384 "asmparse.cpp" -break; -case 692: - if (!yytrial) -#line 1756 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 10390 "asmparse.cpp" -break; -case 693: - if (!yytrial) -#line 1757 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 10396 "asmparse.cpp" -break; -case 694: - if (!yytrial) -#line 1758 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10402 "asmparse.cpp" -break; -case 695: - if (!yytrial) -#line 1759 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 10408 "asmparse.cpp" -break; -case 696: - if (!yytrial) -#line 1760 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 10414 "asmparse.cpp" -break; -case 697: - if (!yytrial) -#line 1761 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 10420 "asmparse.cpp" -break; -case 698: - if (!yytrial) -#line 1764 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 10426 "asmparse.cpp" -break; -case 699: - if (!yytrial) -#line 1765 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 10432 "asmparse.cpp" -break; -case 700: - if (!yytrial) -#line 1766 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 10438 "asmparse.cpp" -break; -case 701: - if (!yytrial) -#line 1767 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 10444 "asmparse.cpp" -break; -case 702: - if (!yytrial) -#line 1768 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 10450 "asmparse.cpp" -break; -case 703: - if (!yytrial) -#line 1769 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 10456 "asmparse.cpp" -break; -case 704: - if (!yytrial) -#line 1770 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 10462 "asmparse.cpp" -break; -case 705: - if (!yytrial) -#line 1771 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 10468 "asmparse.cpp" -break; -case 706: - if (!yytrial) -#line 1772 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 10474 "asmparse.cpp" -break; -case 707: - if (!yytrial) -#line 1773 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10480 "asmparse.cpp" -break; -case 708: - if (!yytrial) -#line 1774 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10486 "asmparse.cpp" -break; -case 709: - if (!yytrial) -#line 1775 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10492 "asmparse.cpp" -break; -case 710: - if (!yytrial) -#line 1776 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10498 "asmparse.cpp" -break; -case 711: - if (!yytrial) -#line 1777 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 10504 "asmparse.cpp" -break; -case 712: - if (!yytrial) -#line 1778 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 10510 "asmparse.cpp" -break; -case 713: - if (!yytrial) -#line 1779 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 10516 "asmparse.cpp" -break; -case 714: - if (!yytrial) -#line 1780 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 10522 "asmparse.cpp" -break; -case 715: - if (!yytrial) -#line 1781 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->append(yyvsp[0].tdd->m_pbsTypeSpec); } -#line 10528 "asmparse.cpp" -break; -case 716: - if (!yytrial) -#line 1784 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; } -#line 10534 "asmparse.cpp" -break; -case 717: - if (!yytrial) -#line 1785 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyvsp[-2].binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; } -#line 10540 "asmparse.cpp" -break; -case 718: - if (!yytrial) -#line 1788 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10546 "asmparse.cpp" -break; -case 719: - if (!yytrial) -#line 1789 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10552 "asmparse.cpp" -break; -case 720: - if (!yytrial) -#line 1790 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10558 "asmparse.cpp" -break; -case 721: - if (!yytrial) -#line 1791 "asmparse.y" -{ FAIL_UNLESS(yyvsp[-2].int32 <= yyvsp[0].int32, ("lower bound %d must be <= upper bound %d\n", yyvsp[-2].int32, yyvsp[0].int32)); - if (yyvsp[-2].int32 > yyvsp[0].int32) { YYERROR; }; - yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-2].int32); yyval.binstr->appendInt32(yyvsp[0].int32-yyvsp[-2].int32+1); } -#line 10566 "asmparse.cpp" -break; -case 722: - if (!yytrial) -#line 1794 "asmparse.y" -{ yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yyvsp[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 10572 "asmparse.cpp" -break; -case 723: - if (!yytrial) -#line 1799 "asmparse.y" -{ PASM->AddPermissionDecl(yyvsp[-4].secAct, yyvsp[-3].token, yyvsp[-1].pair); } -#line 10578 "asmparse.cpp" -break; -case 724: - if (!yytrial) -#line 1801 "asmparse.y" -{ PASM->AddPermissionDecl(yyvsp[-5].secAct, yyvsp[-4].token, yyvsp[-1].binstr); } -#line 10584 "asmparse.cpp" -break; -case 725: - if (!yytrial) -#line 1802 "asmparse.y" -{ PASM->AddPermissionDecl(yyvsp[-1].secAct, yyvsp[0].token, (NVPair *)NULL); } -#line 10590 "asmparse.cpp" -break; -case 726: - if (!yytrial) -#line 1803 "asmparse.y" -{ PASM->AddPermissionSetDecl(yyvsp[-2].secAct, yyvsp[-1].binstr); } -#line 10596 "asmparse.cpp" -break; -case 727: - if (!yytrial) -#line 1805 "asmparse.y" -{ PASM->AddPermissionSetDecl(yyvsp[-1].secAct,BinStrToUnicode(yyvsp[0].binstr,true));} -#line 10602 "asmparse.cpp" -break; -case 728: - if (!yytrial) -#line 1807 "asmparse.y" -{ BinStr* ret = new BinStr(); - ret->insertInt8('.'); - corEmitInt(ret, nSecAttrBlobs); - ret->append(yyvsp[-1].binstr); - PASM->AddPermissionSetDecl(yyvsp[-4].secAct,ret); - nSecAttrBlobs = 0; } -#line 10613 "asmparse.cpp" -break; -case 729: - if (!yytrial) -#line 1815 "asmparse.y" -{ yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 10619 "asmparse.cpp" -break; -case 730: - if (!yytrial) -#line 1816 "asmparse.y" -{ yyval.binstr = yyvsp[0].binstr; nSecAttrBlobs = 1; } -#line 10625 "asmparse.cpp" -break; -case 731: - if (!yytrial) -#line 1817 "asmparse.y" -{ yyval.binstr = yyvsp[-2].binstr; yyval.binstr->append(yyvsp[0].binstr); nSecAttrBlobs++; } -#line 10631 "asmparse.cpp" -break; -case 732: - if (!yytrial) -#line 1821 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yyvsp[-4].token),yyvsp[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } -#line 10638 "asmparse.cpp" -break; -case 733: - if (!yytrial) -#line 1824 "asmparse.y" -{ yyval.binstr = PASM->EncodeSecAttr(yyvsp[-4].string,yyvsp[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } -#line 10645 "asmparse.cpp" -break; -case 734: - if (!yytrial) -#line 1828 "asmparse.y" -{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10651 "asmparse.cpp" -break; -case 735: - if (!yytrial) -#line 1830 "asmparse.y" -{ yyval.secAct = yyvsp[-2].secAct; bParsingByteArray = TRUE; } -#line 10657 "asmparse.cpp" -break; -case 736: - if (!yytrial) -#line 1833 "asmparse.y" -{ yyval.pair = yyvsp[0].pair; } -#line 10663 "asmparse.cpp" -break; -case 737: - if (!yytrial) -#line 1834 "asmparse.y" -{ yyval.pair = yyvsp[-2].pair->Concat(yyvsp[0].pair); } -#line 10669 "asmparse.cpp" -break; -case 738: - if (!yytrial) -#line 1837 "asmparse.y" -{ yyvsp[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yyvsp[-2].binstr, yyvsp[0].binstr); } -#line 10675 "asmparse.cpp" -break; -case 739: - if (!yytrial) -#line 1840 "asmparse.y" -{ yyval.int32 = 1; } -#line 10681 "asmparse.cpp" -break; -case 740: - if (!yytrial) -#line 1841 "asmparse.y" -{ yyval.int32 = 0; } -#line 10687 "asmparse.cpp" -break; -case 741: - if (!yytrial) -#line 1844 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); - yyval.binstr->appendInt8(yyvsp[0].int32); } -#line 10695 "asmparse.cpp" -break; -case 742: - if (!yytrial) -#line 1847 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); - yyval.binstr->appendInt32(yyvsp[0].int32); } -#line 10703 "asmparse.cpp" -break; -case 743: - if (!yytrial) -#line 1850 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10711 "asmparse.cpp" -break; -case 744: - if (!yytrial) -#line 1853 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); - yyval.binstr->append(yyvsp[0].binstr); delete yyvsp[0].binstr; - yyval.binstr->appendInt8(0); } -#line 10720 "asmparse.cpp" -break; -case 745: - if (!yytrial) -#line 1857 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yyvsp[-5].token); - strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - yyval.binstr->appendInt8(1); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10731 "asmparse.cpp" -break; -case 746: - if (!yytrial) -#line 1863 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yyvsp[-5].token); - strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - yyval.binstr->appendInt8(2); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10742 "asmparse.cpp" -break; -case 747: - if (!yytrial) -#line 1869 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yyvsp[-5].token); - strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - yyval.binstr->appendInt8(4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10753 "asmparse.cpp" -break; -case 748: - if (!yytrial) -#line 1875 "asmparse.y" -{ yyval.binstr = new BinStr(); - yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation(yyvsp[-3].token); - strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - yyval.binstr->appendInt8(4); - yyval.binstr->appendInt32(yyvsp[-1].int32); } -#line 10764 "asmparse.cpp" -break; -case 749: - if (!yytrial) -#line 1883 "asmparse.y" -{ yyval.secAct = dclRequest; } -#line 10770 "asmparse.cpp" -break; -case 750: - if (!yytrial) -#line 1884 "asmparse.y" -{ yyval.secAct = dclDemand; } -#line 10776 "asmparse.cpp" -break; -case 751: - if (!yytrial) -#line 1885 "asmparse.y" -{ yyval.secAct = dclAssert; } -#line 10782 "asmparse.cpp" -break; -case 752: - if (!yytrial) -#line 1886 "asmparse.y" -{ yyval.secAct = dclDeny; } -#line 10788 "asmparse.cpp" -break; -case 753: - if (!yytrial) -#line 1887 "asmparse.y" -{ yyval.secAct = dclPermitOnly; } -#line 10794 "asmparse.cpp" -break; -case 754: - if (!yytrial) -#line 1888 "asmparse.y" -{ yyval.secAct = dclLinktimeCheck; } -#line 10800 "asmparse.cpp" -break; -case 755: - if (!yytrial) -#line 1889 "asmparse.y" -{ yyval.secAct = dclInheritanceCheck; } -#line 10806 "asmparse.cpp" -break; -case 756: - if (!yytrial) -#line 1890 "asmparse.y" -{ yyval.secAct = dclRequestMinimum; } -#line 10812 "asmparse.cpp" -break; -case 757: - if (!yytrial) -#line 1891 "asmparse.y" -{ yyval.secAct = dclRequestOptional; } -#line 10818 "asmparse.cpp" -break; -case 758: - if (!yytrial) -#line 1892 "asmparse.y" -{ yyval.secAct = dclRequestRefuse; } -#line 10824 "asmparse.cpp" -break; -case 759: - if (!yytrial) -#line 1893 "asmparse.y" -{ yyval.secAct = dclPrejitGrant; } -#line 10830 "asmparse.cpp" -break; -case 760: - if (!yytrial) -#line 1894 "asmparse.y" -{ yyval.secAct = dclPrejitDenied; } -#line 10836 "asmparse.cpp" -break; -case 761: - if (!yytrial) -#line 1895 "asmparse.y" -{ yyval.secAct = dclNonCasDemand; } -#line 10842 "asmparse.cpp" -break; -case 762: - if (!yytrial) -#line 1896 "asmparse.y" -{ yyval.secAct = dclNonCasLinkDemand; } -#line 10848 "asmparse.cpp" -break; -case 763: - if (!yytrial) -#line 1897 "asmparse.y" -{ yyval.secAct = dclNonCasInheritance; } -#line 10854 "asmparse.cpp" -break; -case 764: - if (!yytrial) -#line 1901 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 10860 "asmparse.cpp" -break; -case 765: - if (!yytrial) -#line 1902 "asmparse.y" -{ PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 10866 "asmparse.cpp" -break; -case 766: - if (!yytrial) -#line 1905 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yyvsp[0].string);} -#line 10874 "asmparse.cpp" -break; -case 767: - if (!yytrial) -#line 1908 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[0].int32; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 10881 "asmparse.cpp" -break; -case 768: - if (!yytrial) -#line 1910 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-3].int32; - PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yyvsp[0].string);} -#line 10889 "asmparse.cpp" -break; -case 769: - if (!yytrial) -#line 1913 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-2].int32; - PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 10896 "asmparse.cpp" -break; -case 770: - if (!yytrial) -#line 1916 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-5].int32; - PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; - PASM->SetSourceFileName(yyvsp[0].string);} -#line 10904 "asmparse.cpp" -break; -case 771: - if (!yytrial) -#line 1920 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-4].int32; - PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10911 "asmparse.cpp" -break; -case 772: - if (!yytrial) -#line 1923 "asmparse.y" -{ PENV->nExtLine = yyvsp[-5].int32; PENV->nExtLineEnd = yyvsp[-3].int32; - PENV->nExtCol=yyvsp[-1].int32; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yyvsp[0].string);} -#line 10919 "asmparse.cpp" -break; -case 773: - if (!yytrial) -#line 1927 "asmparse.y" -{ PENV->nExtLine = yyvsp[-4].int32; PENV->nExtLineEnd = yyvsp[-2].int32; - PENV->nExtCol=yyvsp[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 10926 "asmparse.cpp" -break; -case 774: - if (!yytrial) -#line 1930 "asmparse.y" -{ PENV->nExtLine = yyvsp[-7].int32; PENV->nExtLineEnd = yyvsp[-5].int32; - PENV->nExtCol=yyvsp[-3].int32; PENV->nExtColEnd = yyvsp[-1].int32; - PASM->SetSourceFileName(yyvsp[0].string);} -#line 10934 "asmparse.cpp" -break; -case 775: - if (!yytrial) -#line 1934 "asmparse.y" -{ PENV->nExtLine = yyvsp[-6].int32; PENV->nExtLineEnd = yyvsp[-4].int32; - PENV->nExtCol=yyvsp[-2].int32; PENV->nExtColEnd = yyvsp[0].int32; } -#line 10941 "asmparse.cpp" -break; -case 776: - if (!yytrial) -#line 1936 "asmparse.y" -{ PENV->nExtLine = PENV->nExtLineEnd = yyvsp[-1].int32 - 1; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName(yyvsp[0].binstr);} -#line 10949 "asmparse.cpp" -break; -case 777: - if (!yytrial) -#line 1943 "asmparse.y" -{ PASMM->AddFile(yyvsp[-5].string, yyvsp[-6].fileAttr|yyvsp[-4].fileAttr|yyvsp[0].fileAttr, yyvsp[-2].binstr); } -#line 10955 "asmparse.cpp" -break; -case 778: - if (!yytrial) -#line 1944 "asmparse.y" -{ PASMM->AddFile(yyvsp[-1].string, yyvsp[-2].fileAttr|yyvsp[0].fileAttr, NULL); } -#line 10961 "asmparse.cpp" -break; -case 779: - if (!yytrial) -#line 1947 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } -#line 10967 "asmparse.cpp" -break; -case 780: - if (!yytrial) -#line 1948 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) (yyvsp[-1].fileAttr | ffContainsNoMetaData); } -#line 10973 "asmparse.cpp" -break; -case 781: - if (!yytrial) -#line 1951 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0; } -#line 10979 "asmparse.cpp" -break; -case 782: - if (!yytrial) -#line 1952 "asmparse.y" -{ yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 10985 "asmparse.cpp" -break; -case 783: - if (!yytrial) -#line 1955 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 10991 "asmparse.cpp" -break; -case 784: - if (!yytrial) -#line 1958 "asmparse.y" -{ PASMM->StartAssembly(yyvsp[0].string, NULL, (DWORD)yyvsp[-1].asmAttr, FALSE); } -#line 10997 "asmparse.cpp" -break; -case 785: - if (!yytrial) -#line 1961 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 11003 "asmparse.cpp" -break; -case 786: - if (!yytrial) -#line 1962 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afRetargetable); } -#line 11009 "asmparse.cpp" -break; -case 787: - if (!yytrial) -#line 1963 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afContentType_WindowsRuntime); } -#line 11015 "asmparse.cpp" -break; -case 788: - if (!yytrial) -#line 1964 "asmparse.y" -{ yyval.asmAttr = (CorAssemblyFlags) (yyvsp[-1].asmAttr | afPA_NoPlatform); } -#line 11021 "asmparse.cpp" -break; -case 789: - if (!yytrial) -#line 1965 "asmparse.y" -{ yyval.asmAttr = yyvsp[-2].asmAttr; } -#line 11027 "asmparse.cpp" -break; -case 790: - if (!yytrial) -#line 1966 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_MSIL); } -#line 11033 "asmparse.cpp" -break; -case 791: - if (!yytrial) -#line 1967 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_x86); } -#line 11039 "asmparse.cpp" -break; -case 792: - if (!yytrial) -#line 1968 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_AMD64); } -#line 11045 "asmparse.cpp" -break; -case 793: - if (!yytrial) -#line 1969 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM); } -#line 11051 "asmparse.cpp" -break; -case 794: - if (!yytrial) -#line 1970 "asmparse.y" -{ SET_PA(yyval.asmAttr,yyvsp[-1].asmAttr,afPA_ARM64); } -#line 11057 "asmparse.cpp" -break; -case 797: - if (!yytrial) -#line 1977 "asmparse.y" -{ PASMM->SetAssemblyHashAlg(yyvsp[0].int32); } -#line 11063 "asmparse.cpp" -break; -case 800: - if (!yytrial) -#line 1982 "asmparse.y" -{ yyval.int32 = yyvsp[0].int32; } -#line 11069 "asmparse.cpp" -break; -case 801: - if (!yytrial) -#line 1983 "asmparse.y" -{ yyval.int32 = 0xFFFF; } -#line 11075 "asmparse.cpp" -break; -case 802: - if (!yytrial) -#line 1986 "asmparse.y" -{ PASMM->SetAssemblyPublicKey(yyvsp[-1].binstr); } -#line 11081 "asmparse.cpp" -break; -case 803: - if (!yytrial) -#line 1988 "asmparse.y" -{ PASMM->SetAssemblyVer((USHORT)yyvsp[-6].int32, (USHORT)yyvsp[-4].int32, (USHORT)yyvsp[-2].int32, (USHORT)yyvsp[0].int32); } -#line 11087 "asmparse.cpp" -break; -case 804: - if (!yytrial) -#line 1989 "asmparse.y" -{ yyvsp[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yyvsp[0].binstr,TRUE); } -#line 11093 "asmparse.cpp" -break; -case 805: - if (!yytrial) -#line 1990 "asmparse.y" -{ PASMM->SetAssemblyLocale(yyvsp[-1].binstr,FALSE); } -#line 11099 "asmparse.cpp" -break; -case 808: - if (!yytrial) -#line 1995 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 11105 "asmparse.cpp" -break; -case 809: - if (!yytrial) -#line 1998 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 11111 "asmparse.cpp" -break; -case 810: - if (!yytrial) -#line 2001 "asmparse.y" -{ bParsingByteArray = TRUE; } -#line 11117 "asmparse.cpp" -break; -case 811: - if (!yytrial) -#line 2005 "asmparse.y" -{ PASMM->StartAssembly(yyvsp[0].string, NULL, yyvsp[-1].asmAttr, TRUE); } -#line 11123 "asmparse.cpp" -break; -case 812: - if (!yytrial) -#line 2007 "asmparse.y" -{ PASMM->StartAssembly(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].asmAttr, TRUE); } -#line 11129 "asmparse.cpp" -break; -case 815: - if (!yytrial) -#line 2014 "asmparse.y" -{ PASMM->SetAssemblyHashBlob(yyvsp[-1].binstr); } -#line 11135 "asmparse.cpp" -break; -case 817: - if (!yytrial) -#line 2016 "asmparse.y" -{ PASMM->SetAssemblyPublicKeyToken(yyvsp[-1].binstr); } -#line 11141 "asmparse.cpp" -break; -case 818: - if (!yytrial) -#line 2017 "asmparse.y" -{ PASMM->SetAssemblyAutodetect(); } -#line 11147 "asmparse.cpp" -break; -case 819: - if (!yytrial) -#line 2020 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr);} -#line 11153 "asmparse.cpp" -break; -case 820: - if (!yytrial) -#line 2023 "asmparse.y" -{ PASMM->StartComType(yyvsp[0].string, yyvsp[-1].exptAttr); } -#line 11159 "asmparse.cpp" -break; -case 821: - if (!yytrial) -#line 2026 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) 0; } -#line 11165 "asmparse.cpp" -break; -case 822: - if (!yytrial) -#line 2027 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdNotPublic); } -#line 11171 "asmparse.cpp" -break; -case 823: - if (!yytrial) -#line 2028 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdPublic); } -#line 11177 "asmparse.cpp" -break; -case 824: - if (!yytrial) -#line 2029 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-1].exptAttr | tdForwarder); } -#line 11183 "asmparse.cpp" -break; -case 825: - if (!yytrial) -#line 2030 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPublic); } -#line 11189 "asmparse.cpp" -break; -case 826: - if (!yytrial) -#line 2031 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedPrivate); } -#line 11195 "asmparse.cpp" -break; -case 827: - if (!yytrial) -#line 2032 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamily); } -#line 11201 "asmparse.cpp" -break; -case 828: - if (!yytrial) -#line 2033 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedAssembly); } -#line 11207 "asmparse.cpp" -break; -case 829: - if (!yytrial) -#line 2034 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamANDAssem); } -#line 11213 "asmparse.cpp" -break; -case 830: - if (!yytrial) -#line 2035 "asmparse.y" -{ yyval.exptAttr = (CorTypeAttr) (yyvsp[-2].exptAttr | tdNestedFamORAssem); } -#line 11219 "asmparse.cpp" -break; -case 833: - if (!yytrial) -#line 2042 "asmparse.y" -{ PASMM->SetComTypeFile(yyvsp[0].string); } -#line 11225 "asmparse.cpp" -break; -case 834: - if (!yytrial) -#line 2043 "asmparse.y" -{ PASMM->SetComTypeComType(yyvsp[0].string); } -#line 11231 "asmparse.cpp" -break; -case 835: - if (!yytrial) -#line 2044 "asmparse.y" -{ PASMM->SetComTypeAsmRef(yyvsp[0].string); } -#line 11237 "asmparse.cpp" -break; -case 836: - if (!yytrial) -#line 2045 "asmparse.y" -{ if(!PASMM->SetComTypeImplementationTok(yyvsp[-1].int32)) - PASM->report->error("Invalid implementation of exported type\n"); } -#line 11244 "asmparse.cpp" -break; -case 837: - if (!yytrial) -#line 2047 "asmparse.y" -{ if(!PASMM->SetComTypeClassTok(yyvsp[0].int32)) - PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 11251 "asmparse.cpp" -break; -case 840: - if (!yytrial) -#line 2053 "asmparse.y" -{ PASMM->StartManifestRes(yyvsp[0].string, yyvsp[0].string, yyvsp[-1].manresAttr); } -#line 11257 "asmparse.cpp" -break; -case 841: - if (!yytrial) -#line 2055 "asmparse.y" -{ PASMM->StartManifestRes(yyvsp[-2].string, yyvsp[0].string, yyvsp[-3].manresAttr); } -#line 11263 "asmparse.cpp" -break; -case 842: - if (!yytrial) -#line 2058 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 11269 "asmparse.cpp" -break; -case 843: - if (!yytrial) -#line 2059 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPublic); } -#line 11275 "asmparse.cpp" -break; -case 844: - if (!yytrial) -#line 2060 "asmparse.y" -{ yyval.manresAttr = (CorManifestResourceFlags) (yyvsp[-1].manresAttr | mrPrivate); } -#line 11281 "asmparse.cpp" -break; -case 847: - if (!yytrial) -#line 2067 "asmparse.y" -{ PASMM->SetManifestResFile(yyvsp[-2].string, (ULONG)yyvsp[0].int32); } -#line 11287 "asmparse.cpp" -break; -case 848: - if (!yytrial) -#line 2068 "asmparse.y" -{ PASMM->SetManifestResAsmRef(yyvsp[0].string); } -#line 11293 "asmparse.cpp" -break; -#line 11295 "asmparse.cpp" -#line 802 "btyaccpa.ske" - - default: + sizeof(__int8)*(yyvsp[0].int32)); } +#line 5909 "asmparse.cpp" break; - } -#if YYDEBUG && defined(YYDBPR) - if (yydebug) { - printf("yydebug[%d]: after reduction, result is ", yytrial!=0); - YYDBPR(yyps->val); - printf("\n"); - } -#endif + case 412: /* ddItem: FLOAT32_ ddItemCount */ +#line 1109 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(float)*(yyvsp[0].int32)); } +#line 5915 "asmparse.cpp" + break; -#ifdef YYPOSN - /* Perform user-defined position reduction */ -#ifdef YYREDUCEPOSNFUNC - if(!yytrial) { - YYCALLREDUCEPOSN(YYREDUCEPOSNFUNCARG); - } -#endif -#endif /* YYPOSN */ + case 413: /* ddItem: FLOAT64_ ddItemCount */ +#line 1110 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(double)*(yyvsp[0].int32)); } +#line 5921 "asmparse.cpp" + break; - yyps->ssp -= yym; - yystate = *(yyps->ssp); - yyps->vsp -= yym; -#ifdef YYPOSN - yyps->psp -= yym; -#endif /* YYPOSN */ + case 414: /* ddItem: INT64_ ddItemCount */ +#line 1111 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(__int64)*(yyvsp[0].int32)); } +#line 5927 "asmparse.cpp" + break; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) { -#if YYDEBUG - if (yydebug) { - printf("yydebug[%d,%d]: after reduction, shifting from state 0 to state " - "%d\n", (int)yydepth, yytrial!=0, YYFINAL); - } -#endif - yystate = YYFINAL; - *++(yyps->ssp) = YYFINAL; - *++(yyps->vsp) = yyps->val; - yyretlval = yyps->val; /* return value of root non-terminal to yylval */ -#ifdef YYPOSN - *++(yyps->psp) = yyps->pos; - yyretposn = yyps->pos; /* return value of root position to yyposn */ -#endif /* YYPOSN */ - if (yychar < 0) { - if ((yychar = YYLex1()) < 0) { - yychar = 0; - } -#if YYDEBUG - if (yydebug) { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("yydebug[%d,%d]: state %d, reading %d (%s)\n", - (int)yydepth, yytrial!=0, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } + case 415: /* ddItem: INT32_ ddItemCount */ +#line 1112 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(__int32)*(yyvsp[0].int32)); } +#line 5933 "asmparse.cpp" + break; - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) { - yystate = yytable[yyn]; - } else { - yystate = yydgoto[yym]; - } -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: after reduction, shifting from state %d to state " - "%d\n", (int)yydepth, yytrial!=0, *(yyps->ssp), yystate); -#endif - if (yyps->ssp >= yyps->ss + yyps->stacksize - 1) { - YYMoreStack(yyps); - } - *++(yyps->ssp) = yystate; - *++(yyps->vsp) = yyps->val; -#ifdef YYPOSN - *++(yyps->psp) = yyps->pos; -#endif /* YYPOSN */ - goto yyloop; - - - /* - ** Reduction declares that this path is valid. - ** Set yypath and do a full parse - */ -yyvalid: - if (yypath) { - goto yyabort; - } - while (yyps->save) { - struct yyparsestate *save = yyps->save; - yyps->save = save->save; - save->save = yypath; - yypath = save; - } -#if YYDEBUG - if (yydebug) - printf("yydebug[%d,%d]: CONFLICT trial successful, backtracking to state " - "%d, %d tokens\n", (int)yydepth, yytrial!=0, yypath->state, - (int)(yylvp - yylvals - yypath->lexeme)); -#endif - if(yyerrctx) { - YYFreeState(yyerrctx); yyerrctx = NULL; - } - yychar = -1; - yyps->ssp = yyps->ss + (yypath->ssp - yypath->ss); - memcpy (yyps->ss, yypath->ss, (yyps->ssp - yyps->ss + 1) * sizeof(Yshort)); - yylexp = yylexemes + yypath->lexeme; - yyps->vsp = yyps->vs + (yypath->vsp - yypath->vs); - YYSCopy(yyps->vs, yypath->vs, yyps->vsp - yyps->vs + 1); - yylvp = yylvals + yypath->lexeme; -#ifdef YYPOSN - yyps->psp = yyps->ps + (yypath->psp - yypath->ps); - YYPCopy(yyps->ps, yypath->ps, yyps->psp - yyps->ps + 1); - yylpp = yylpsns + yypath->lexeme; -#endif /* YYPOSN */ - yystate = yypath->state; - goto yyloop; - -yyabort: - if(yyerrctx) { - YYFreeState(yyerrctx); yyerrctx = NULL; - } + case 416: /* ddItem: INT16_ ddItemCount */ +#line 1113 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(__int16)*(yyvsp[0].int32)); } +#line 5939 "asmparse.cpp" + break; - { - YYSTYPE *pv; -#ifdef YYPOSN - YYPOSN *pp = yyps->ps; -#endif -#ifdef YYDESTRUCT - Yshort *ps = yyps->ss; -#endif - for(pv=yyps->vs; pvvsp; pv++) { - YYDELETEVAL(*pv,2); -#if defined(YYDESTRUCT) - YYDESTRUCT(yytrial!=0, yyastable[*ps++], pv, pp++); -#endif /* YYDESTRUCT */ - } -#ifdef YYPOSN - for(pp=yyps->ps; pppsp; pp++) { - YYDELETEPOSN(*pp,2); - } -#endif /* YYPOSN */ - } + case 417: /* ddItem: INT8_ ddItemCount */ +#line 1114 "./asmparse.y" + { PASM->EmitData(NULL, sizeof(__int8)*(yyvsp[0].int32)); } +#line 5945 "asmparse.cpp" + break; - while (yyps) { - struct yyparsestate *save = yyps; - yyps = save->save; - YYFreeState(save); - } - while (yypath) { - struct yyparsestate *save = yypath; - yypath = save->save; - YYFreeState(save); - } - return (1); + case 418: /* fieldSerInit: FLOAT32_ '(' float64 ')' */ +#line 1118 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*(yyvsp[-1].float64)); + (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[-1].float64); } +#line 5953 "asmparse.cpp" + break; + case 419: /* fieldSerInit: FLOAT64_ '(' float64 ')' */ +#line 1121 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].float64)); delete (yyvsp[-1].float64); } +#line 5960 "asmparse.cpp" + break; -yyaccept: - if (yyps->save) goto yyvalid; - if(yyerrctx) { - YYFreeState(yyerrctx); yyerrctx = NULL; - } - while (yyps) { - struct yyparsestate *save = yyps; - yyps = save->save; - YYFreeState(save); - } - while (yypath) { - struct yyparsestate *save = yypath; - yypath = save->save; - YYFreeState(save); - } - return (0); -} + case 420: /* fieldSerInit: FLOAT32_ '(' int32 ')' */ +#line 1123 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 5967 "asmparse.cpp" + break; + + case 421: /* fieldSerInit: FLOAT64_ '(' int64 ')' */ +#line 1125 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 5974 "asmparse.cpp" + break; + + case 422: /* fieldSerInit: INT64_ '(' int64 ')' */ +#line 1127 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 5981 "asmparse.cpp" + break; + + case 423: /* fieldSerInit: INT32_ '(' int32 ')' */ +#line 1129 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 5988 "asmparse.cpp" + break; + + case 424: /* fieldSerInit: INT16_ '(' int32 ')' */ +#line 1131 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 5995 "asmparse.cpp" + break; + + case 425: /* fieldSerInit: INT8_ '(' int32 ')' */ +#line 1133 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6002 "asmparse.cpp" + break; + + case 426: /* fieldSerInit: UNSIGNED_ INT64_ '(' int64 ')' */ +#line 1135 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6009 "asmparse.cpp" + break; + + case 427: /* fieldSerInit: UNSIGNED_ INT32_ '(' int32 ')' */ +#line 1137 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6016 "asmparse.cpp" + break; + + case 428: /* fieldSerInit: UNSIGNED_ INT16_ '(' int32 ')' */ +#line 1139 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6023 "asmparse.cpp" + break; + + case 429: /* fieldSerInit: UNSIGNED_ INT8_ '(' int32 ')' */ +#line 1141 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6030 "asmparse.cpp" + break; + + case 430: /* fieldSerInit: UINT64_ '(' int64 ')' */ +#line 1143 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6037 "asmparse.cpp" + break; + + case 431: /* fieldSerInit: UINT32_ '(' int32 ')' */ +#line 1145 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6044 "asmparse.cpp" + break; + + case 432: /* fieldSerInit: UINT16_ '(' int32 ')' */ +#line 1147 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6051 "asmparse.cpp" + break; + + case 433: /* fieldSerInit: UINT8_ '(' int32 ')' */ +#line 1149 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6058 "asmparse.cpp" + break; + + case 434: /* fieldSerInit: CHAR_ '(' int32 ')' */ +#line 1151 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6065 "asmparse.cpp" + break; + + case 435: /* fieldSerInit: BOOL_ '(' truefalse ')' */ +#line 1153 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); + (yyval.binstr)->appendInt8((yyvsp[-1].int32));} +#line 6072 "asmparse.cpp" + break; + + case 436: /* fieldSerInit: bytearrayhead bytes ')' */ +#line 1155 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); + (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-1].binstr);} +#line 6079 "asmparse.cpp" + break; + + case 437: /* bytearrayhead: BYTEARRAY_ '(' */ +#line 1159 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 6085 "asmparse.cpp" + break; + + case 438: /* bytes: %empty */ +#line 1162 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6091 "asmparse.cpp" + break; + + case 439: /* bytes: hexbytes */ +#line 1163 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6097 "asmparse.cpp" + break; + + case 440: /* hexbytes: HEXBYTE */ +#line 1166 "./asmparse.y" + { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(i); } +#line 6103 "asmparse.cpp" + break; + + case 441: /* hexbytes: hexbytes HEXBYTE */ +#line 1167 "./asmparse.y" + { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(i); } +#line 6109 "asmparse.cpp" + break; + + case 442: /* fieldInit: fieldSerInit */ +#line 1171 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6115 "asmparse.cpp" + break; + + case 443: /* fieldInit: compQstring */ +#line 1172 "./asmparse.y" + { (yyval.binstr) = BinStrToUnicode((yyvsp[0].binstr),true); (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING);} +#line 6121 "asmparse.cpp" + break; + + case 444: /* fieldInit: NULLREF_ */ +#line 1173 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CLASS); + (yyval.binstr)->appendInt32(0); } +#line 6128 "asmparse.cpp" + break; + + case 445: /* serInit: fieldSerInit */ +#line 1178 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6134 "asmparse.cpp" + break; + + case 446: /* serInit: STRING_ '(' NULLREF_ ')' */ +#line 1179 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); (yyval.binstr)->appendInt8(0xFF); } +#line 6140 "asmparse.cpp" + break; + + case 447: /* serInit: STRING_ '(' SQSTRING ')' */ +#line 1180 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); + AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} +#line 6147 "asmparse.cpp" + break; + + case 448: /* serInit: TYPE_ '(' CLASS_ SQSTRING ')' */ +#line 1182 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} +#line 6154 "asmparse.cpp" + break; + + case 449: /* serInit: TYPE_ '(' className ')' */ +#line 1184 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[-1].token)));} +#line 6161 "asmparse.cpp" + break; + + case 450: /* serInit: TYPE_ '(' NULLREF_ ')' */ +#line 1186 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); (yyval.binstr)->appendInt8(0xFF); } +#line 6167 "asmparse.cpp" + break; + + case 451: /* serInit: OBJECT_ '(' serInit ')' */ +#line 1187 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} +#line 6173 "asmparse.cpp" + break; + + case 452: /* serInit: FLOAT32_ '[' int32 ']' '(' f32seq ')' */ +#line 1189 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_R4); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6181 "asmparse.cpp" + break; + + case 453: /* serInit: FLOAT64_ '[' int32 ']' '(' f64seq ')' */ +#line 1193 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_R8); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6189 "asmparse.cpp" + break; + + case 454: /* serInit: INT64_ '[' int32 ']' '(' i64seq ')' */ +#line 1197 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_I8); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6197 "asmparse.cpp" + break; + + case 455: /* serInit: INT32_ '[' int32 ']' '(' i32seq ')' */ +#line 1201 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_I4); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6205 "asmparse.cpp" + break; + + case 456: /* serInit: INT16_ '[' int32 ']' '(' i16seq ')' */ +#line 1205 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_I2); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6213 "asmparse.cpp" + break; + + case 457: /* serInit: INT8_ '[' int32 ']' '(' i8seq ')' */ +#line 1209 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_I1); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6221 "asmparse.cpp" + break; + + case 458: /* serInit: UINT64_ '[' int32 ']' '(' i64seq ')' */ +#line 1213 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6229 "asmparse.cpp" + break; + + case 459: /* serInit: UINT32_ '[' int32 ']' '(' i32seq ')' */ +#line 1217 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6237 "asmparse.cpp" + break; + + case 460: /* serInit: UINT16_ '[' int32 ']' '(' i16seq ')' */ +#line 1221 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6245 "asmparse.cpp" + break; + + case 461: /* serInit: UINT8_ '[' int32 ']' '(' i8seq ')' */ +#line 1225 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6253 "asmparse.cpp" + break; + + case 462: /* serInit: UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')' */ +#line 1229 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6261 "asmparse.cpp" + break; + + case 463: /* serInit: UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')' */ +#line 1233 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6269 "asmparse.cpp" + break; + + case 464: /* serInit: UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')' */ +#line 1237 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6277 "asmparse.cpp" + break; + + case 465: /* serInit: UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')' */ +#line 1241 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6285 "asmparse.cpp" + break; + + case 466: /* serInit: CHAR_ '[' int32 ']' '(' i16seq ')' */ +#line 1245 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_CHAR); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6293 "asmparse.cpp" + break; + + case 467: /* serInit: BOOL_ '[' int32 ']' '(' boolSeq ')' */ +#line 1249 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_BOOLEAN); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6301 "asmparse.cpp" + break; + + case 468: /* serInit: STRING_ '[' int32 ']' '(' sqstringSeq ')' */ +#line 1253 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6309 "asmparse.cpp" + break; + + case 469: /* serInit: TYPE_ '[' int32 ']' '(' classSeq ')' */ +#line 1257 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TYPE); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6317 "asmparse.cpp" + break; + + case 470: /* serInit: OBJECT_ '[' int32 ']' '(' objSeq ')' */ +#line 1261 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); + (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 6325 "asmparse.cpp" + break; + + case 471: /* f32seq: %empty */ +#line 1267 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6331 "asmparse.cpp" + break; + + case 472: /* f32seq: f32seq float64 */ +#line 1268 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + float f = (float) (*(yyvsp[0].float64)); (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[0].float64); } +#line 6338 "asmparse.cpp" + break; + + case 473: /* f32seq: f32seq int32 */ +#line 1270 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt32((yyvsp[0].int32)); } +#line 6345 "asmparse.cpp" + break; + + case 474: /* f64seq: %empty */ +#line 1274 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6351 "asmparse.cpp" + break; + + case 475: /* f64seq: f64seq float64 */ +#line 1275 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].float64)); delete (yyvsp[0].float64); } +#line 6358 "asmparse.cpp" + break; + + case 476: /* f64seq: f64seq int64 */ +#line 1277 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } +#line 6365 "asmparse.cpp" + break; + + case 477: /* i64seq: %empty */ +#line 1281 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6371 "asmparse.cpp" + break; + + case 478: /* i64seq: i64seq int64 */ +#line 1282 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } +#line 6378 "asmparse.cpp" + break; + + case 479: /* i32seq: %empty */ +#line 1286 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6384 "asmparse.cpp" + break; + + case 480: /* i32seq: i32seq int32 */ +#line 1287 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt32((yyvsp[0].int32));} +#line 6390 "asmparse.cpp" + break; + + case 481: /* i16seq: %empty */ +#line 1290 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6396 "asmparse.cpp" + break; + + case 482: /* i16seq: i16seq int32 */ +#line 1291 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt16((yyvsp[0].int32));} +#line 6402 "asmparse.cpp" + break; + + case 483: /* i8seq: %empty */ +#line 1294 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6408 "asmparse.cpp" + break; + + case 484: /* i8seq: i8seq int32 */ +#line 1295 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8((yyvsp[0].int32)); } +#line 6414 "asmparse.cpp" + break; + + case 485: /* boolSeq: %empty */ +#line 1298 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6420 "asmparse.cpp" + break; + + case 486: /* boolSeq: boolSeq truefalse */ +#line 1299 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + (yyval.binstr)->appendInt8((yyvsp[0].int32));} +#line 6427 "asmparse.cpp" + break; + + case 487: /* sqstringSeq: %empty */ +#line 1303 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6433 "asmparse.cpp" + break; + + case 488: /* sqstringSeq: sqstringSeq NULLREF_ */ +#line 1304 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } +#line 6439 "asmparse.cpp" + break; + + case 489: /* sqstringSeq: sqstringSeq SQSTRING */ +#line 1305 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} +#line 6446 "asmparse.cpp" + break; + + case 490: /* classSeq: %empty */ +#line 1309 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6452 "asmparse.cpp" + break; + + case 491: /* classSeq: classSeq NULLREF_ */ +#line 1310 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } +#line 6458 "asmparse.cpp" + break; + + case 492: /* classSeq: classSeq CLASS_ SQSTRING */ +#line 1311 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); + AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} +#line 6465 "asmparse.cpp" + break; + + case 493: /* classSeq: classSeq className */ +#line 1313 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); + AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token)));} +#line 6472 "asmparse.cpp" + break; + + case 494: /* objSeq: %empty */ +#line 1317 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6478 "asmparse.cpp" + break; + + case 495: /* objSeq: objSeq serInit */ +#line 1318 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } +#line 6484 "asmparse.cpp" + break; + + case 496: /* methodSpec: METHOD_ */ +#line 1322 "./asmparse.y" + { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); + parser->m_ANSLast.PUSH(PASM->m_lastArgName); + PASM->m_firstArgName = NULL; + PASM->m_lastArgName = NULL; } +#line 6493 "asmparse.cpp" + break; + + case 497: /* instr_none: INSTR_NONE */ +#line 1328 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6499 "asmparse.cpp" + break; + + case 498: /* instr_var: INSTR_VAR */ +#line 1331 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6505 "asmparse.cpp" + break; + + case 499: /* instr_i: INSTR_I */ +#line 1334 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6511 "asmparse.cpp" + break; + + case 500: /* instr_i8: INSTR_I8 */ +#line 1337 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6517 "asmparse.cpp" + break; + + case 501: /* instr_r: INSTR_R */ +#line 1340 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6523 "asmparse.cpp" + break; + + case 502: /* instr_brtarget: INSTR_BRTARGET */ +#line 1343 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6529 "asmparse.cpp" + break; + + case 503: /* instr_method: INSTR_METHOD */ +#line 1346 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); + if((!PASM->OnErrGo)&& + (((yyvsp[0].opcode) == CEE_NEWOBJ)|| + ((yyvsp[0].opcode) == CEE_CALLVIRT))) + iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; + } +#line 6540 "asmparse.cpp" + break; + + case 504: /* instr_field: INSTR_FIELD */ +#line 1354 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6546 "asmparse.cpp" + break; + + case 505: /* instr_type: INSTR_TYPE */ +#line 1357 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6552 "asmparse.cpp" + break; + + case 506: /* instr_string: INSTR_STRING */ +#line 1360 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6558 "asmparse.cpp" + break; + + case 507: /* instr_sig: INSTR_SIG */ +#line 1363 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6564 "asmparse.cpp" + break; + + case 508: /* instr_tok: INSTR_TOK */ +#line 1366 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); iOpcodeLen = PASM->OpcodeLen((yyval.instr)); } +#line 6570 "asmparse.cpp" + break; + + case 509: /* instr_switch: INSTR_SWITCH */ +#line 1369 "./asmparse.y" + { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } +#line 6576 "asmparse.cpp" + break; + + case 510: /* instr_r_head: instr_r '(' */ +#line 1372 "./asmparse.y" + { (yyval.instr) = (yyvsp[-1].instr); bParsingByteArray = TRUE; } +#line 6582 "asmparse.cpp" + break; + + case 511: /* instr: instr_none */ +#line 1376 "./asmparse.y" + { PASM->EmitOpcode((yyvsp[0].instr)); } +#line 6588 "asmparse.cpp" + break; + + case 512: /* instr: instr_var int32 */ +#line 1377 "./asmparse.y" + { PASM->EmitInstrVar((yyvsp[-1].instr), (yyvsp[0].int32)); } +#line 6594 "asmparse.cpp" + break; + + case 513: /* instr: instr_var id */ +#line 1378 "./asmparse.y" + { PASM->EmitInstrVarByName((yyvsp[-1].instr), (yyvsp[0].string)); } +#line 6600 "asmparse.cpp" + break; + + case 514: /* instr: instr_i int32 */ +#line 1379 "./asmparse.y" + { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].int32)); } +#line 6606 "asmparse.cpp" + break; + + case 515: /* instr: instr_i8 int64 */ +#line 1380 "./asmparse.y" + { PASM->EmitInstrI8((yyvsp[-1].instr), (yyvsp[0].int64)); } +#line 6612 "asmparse.cpp" + break; + + case 516: /* instr: instr_r float64 */ +#line 1381 "./asmparse.y" + { PASM->EmitInstrR((yyvsp[-1].instr), (yyvsp[0].float64)); delete ((yyvsp[0].float64));} +#line 6618 "asmparse.cpp" + break; + + case 517: /* instr: instr_r int64 */ +#line 1382 "./asmparse.y" + { double f = (double) (*(yyvsp[0].int64)); PASM->EmitInstrR((yyvsp[-1].instr), &f); } +#line 6624 "asmparse.cpp" + break; + + case 518: /* instr: instr_r_head bytes ')' */ +#line 1383 "./asmparse.y" + { unsigned L = (yyvsp[-1].binstr)->length(); + FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", + L,sizeof(float))); + if(L < sizeof(float)) {YYERROR; } + else { + double f = (L >= sizeof(double)) ? *((double *)((yyvsp[-1].binstr)->ptr())) + : (double)(*(float *)((yyvsp[-1].binstr)->ptr())); + PASM->EmitInstrR((yyvsp[-2].instr),&f); } + delete (yyvsp[-1].binstr); } +#line 6638 "asmparse.cpp" + break; + + case 519: /* instr: instr_brtarget int32 */ +#line 1392 "./asmparse.y" + { PASM->EmitInstrBrOffset((yyvsp[-1].instr), (yyvsp[0].int32)); } +#line 6644 "asmparse.cpp" + break; + + case 520: /* instr: instr_brtarget id */ +#line 1393 "./asmparse.y" + { PASM->EmitInstrBrTarget((yyvsp[-1].instr), (yyvsp[0].string)); } +#line 6650 "asmparse.cpp" + break; + + case 521: /* instr: instr_method methodRef */ +#line 1395 "./asmparse.y" + { PASM->SetMemberRefFixup((yyvsp[0].token),PASM->OpcodeLen((yyvsp[-1].instr))); + PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); + PASM->m_tkCurrentCVOwner = (yyvsp[0].token); + PASM->m_pCustomDescrList = NULL; + iCallConv = 0; + } +#line 6661 "asmparse.cpp" + break; + + case 522: /* instr: instr_field type typeSpec DCOLON dottedName */ +#line 1402 "./asmparse.y" + { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-4].instr))); + PASM->EmitInstrI((yyvsp[-4].instr),mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; + } +#line 6673 "asmparse.cpp" + break; + + case 523: /* instr: instr_field type dottedName */ +#line 1410 "./asmparse.y" + { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef(mdTokenNil, (yyvsp[0].string), (yyvsp[-1].binstr)); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-2].instr))); + PASM->EmitInstrI((yyvsp[-2].instr),mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; + } +#line 6685 "asmparse.cpp" + break; + + case 524: /* instr: instr_field mdtoken */ +#line 1417 "./asmparse.y" + { mdToken mr = (yyvsp[0].token); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); + PASM->EmitInstrI((yyvsp[-1].instr),mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; + } +#line 6696 "asmparse.cpp" + break; + + case 525: /* instr: instr_field TYPEDEF_F */ +#line 1423 "./asmparse.y" + { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); + PASM->EmitInstrI((yyvsp[-1].instr),mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; + } +#line 6707 "asmparse.cpp" + break; + + case 526: /* instr: instr_field TYPEDEF_MR */ +#line 1429 "./asmparse.y" + { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); + PASM->EmitInstrI((yyvsp[-1].instr),mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; + } +#line 6718 "asmparse.cpp" + break; + + case 527: /* instr: instr_type typeSpec */ +#line 1435 "./asmparse.y" + { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].token)); + PASM->m_tkCurrentCVOwner = (yyvsp[0].token); + PASM->m_pCustomDescrList = NULL; + } +#line 6727 "asmparse.cpp" + break; + + case 528: /* instr: instr_string compQstring */ +#line 1439 "./asmparse.y" + { PASM->EmitInstrStringLiteral((yyvsp[-1].instr), (yyvsp[0].binstr),TRUE); } +#line 6733 "asmparse.cpp" + break; + + case 529: /* instr: instr_string ANSI_ '(' compQstring ')' */ +#line 1441 "./asmparse.y" + { PASM->EmitInstrStringLiteral((yyvsp[-4].instr), (yyvsp[-1].binstr),FALSE); } +#line 6739 "asmparse.cpp" + break; + + case 530: /* instr: instr_string bytearrayhead bytes ')' */ +#line 1443 "./asmparse.y" + { PASM->EmitInstrStringLiteral((yyvsp[-3].instr), (yyvsp[-1].binstr),FALSE,TRUE); } +#line 6745 "asmparse.cpp" + break; + + case 531: /* instr: instr_sig callConv type '(' sigArgs0 ')' */ +#line 1445 "./asmparse.y" + { PASM->EmitInstrSig((yyvsp[-5].instr), parser->MakeSig((yyvsp[-4].int32), (yyvsp[-3].binstr), (yyvsp[-1].binstr))); + PASM->ResetArgNameList(); + } +#line 6753 "asmparse.cpp" + break; + + case 532: /* instr: instr_tok ownerType */ +#line 1449 "./asmparse.y" + { PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); + PASM->m_tkCurrentCVOwner = (yyvsp[0].token); + PASM->m_pCustomDescrList = NULL; + iOpcodeLen = 0; + } +#line 6763 "asmparse.cpp" + break; + + case 533: /* instr: instr_switch '(' labels ')' */ +#line 1454 "./asmparse.y" + { PASM->EmitInstrSwitch((yyvsp[-3].instr), (yyvsp[-1].labels)); } +#line 6769 "asmparse.cpp" + break; + + case 534: /* labels: %empty */ +#line 1457 "./asmparse.y" + { (yyval.labels) = 0; } +#line 6775 "asmparse.cpp" + break; + + case 535: /* labels: id ',' labels */ +#line 1458 "./asmparse.y" + { (yyval.labels) = new Labels((yyvsp[-2].string), (yyvsp[0].labels), TRUE); } +#line 6781 "asmparse.cpp" + break; + + case 536: /* labels: int32 ',' labels */ +#line 1459 "./asmparse.y" + { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[-2].int32), (yyvsp[0].labels), FALSE); } +#line 6787 "asmparse.cpp" + break; + + case 537: /* labels: id */ +#line 1460 "./asmparse.y" + { (yyval.labels) = new Labels((yyvsp[0].string), NULL, TRUE); } +#line 6793 "asmparse.cpp" + break; + + case 538: /* labels: int32 */ +#line 1461 "./asmparse.y" + { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[0].int32), NULL, FALSE); } +#line 6799 "asmparse.cpp" + break; + + case 539: /* tyArgs0: %empty */ +#line 1465 "./asmparse.y" + { (yyval.binstr) = NULL; } +#line 6805 "asmparse.cpp" + break; + + case 540: /* tyArgs0: '<' tyArgs1 '>' */ +#line 1466 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); } +#line 6811 "asmparse.cpp" + break; + + case 541: /* tyArgs1: %empty */ +#line 1469 "./asmparse.y" + { (yyval.binstr) = NULL; } +#line 6817 "asmparse.cpp" + break; + + case 542: /* tyArgs1: tyArgs2 */ +#line 1470 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6823 "asmparse.cpp" + break; + + case 543: /* tyArgs2: type */ +#line 1473 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6829 "asmparse.cpp" + break; + + case 544: /* tyArgs2: tyArgs2 ',' type */ +#line 1474 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } +#line 6835 "asmparse.cpp" + break; + + case 545: /* sigArgs0: %empty */ +#line 1478 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6841 "asmparse.cpp" + break; + + case 546: /* sigArgs0: sigArgs1 */ +#line 1479 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr);} +#line 6847 "asmparse.cpp" + break; + + case 547: /* sigArgs1: sigArg */ +#line 1482 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 6853 "asmparse.cpp" + break; + + case 548: /* sigArgs1: sigArgs1 ',' sigArg */ +#line 1483 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } +#line 6859 "asmparse.cpp" + break; + + case 549: /* sigArg: ELLIPSIS */ +#line 1486 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_SENTINEL); } +#line 6865 "asmparse.cpp" + break; + + case 550: /* sigArg: paramAttr type marshalClause */ +#line 1487 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-1].binstr)); PASM->addArgName(NULL, (yyvsp[-1].binstr), (yyvsp[0].binstr), (yyvsp[-2].int32)); } +#line 6871 "asmparse.cpp" + break; + + case 551: /* sigArg: paramAttr type marshalClause id */ +#line 1488 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-2].binstr)); PASM->addArgName((yyvsp[0].string), (yyvsp[-2].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32));} +#line 6877 "asmparse.cpp" + break; + + case 552: /* className: '[' dottedName ']' slashedName */ +#line 1492 "./asmparse.y" + { (yyval.token) = PASM->ResolveClassRef(PASM->GetAsmRef((yyvsp[-2].string)), (yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} +#line 6883 "asmparse.cpp" + break; + + case 553: /* className: '[' mdtoken ']' slashedName */ +#line 1493 "./asmparse.y" + { (yyval.token) = PASM->ResolveClassRef((yyvsp[-2].token), (yyvsp[0].string), NULL); } +#line 6889 "asmparse.cpp" + break; + + case 554: /* className: '[' '*' ']' slashedName */ +#line 1494 "./asmparse.y" + { (yyval.token) = PASM->ResolveClassRef(mdTokenNil, (yyvsp[0].string), NULL); } +#line 6895 "asmparse.cpp" + break; + + case 555: /* className: '[' _MODULE dottedName ']' slashedName */ +#line 1495 "./asmparse.y" + { (yyval.token) = PASM->ResolveClassRef(PASM->GetModRef((yyvsp[-2].string)),(yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} +#line 6901 "asmparse.cpp" + break; + + case 556: /* className: slashedName */ +#line 1496 "./asmparse.y" + { (yyval.token) = PASM->ResolveClassRef(1,(yyvsp[0].string),NULL); } +#line 6907 "asmparse.cpp" + break; + + case 557: /* className: mdtoken */ +#line 1497 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token); } +#line 6913 "asmparse.cpp" + break; + + case 558: /* className: TYPEDEF_T */ +#line 1498 "./asmparse.y" + { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } +#line 6919 "asmparse.cpp" + break; + + case 559: /* className: _THIS */ +#line 1499 "./asmparse.y" + { if(PASM->m_pCurClass != NULL) (yyval.token) = PASM->m_pCurClass->m_cl; + else { (yyval.token) = 0; PASM->report->error(".this outside class scope\n"); } + } +#line 6927 "asmparse.cpp" + break; + + case 560: /* className: _BASE */ +#line 1502 "./asmparse.y" + { if(PASM->m_pCurClass != NULL) { + (yyval.token) = PASM->m_pCurClass->m_crExtends; + if(RidFromToken((yyval.token)) == 0) + PASM->report->error(".base undefined\n"); + } else { (yyval.token) = 0; PASM->report->error(".base outside class scope\n"); } + } +#line 6938 "asmparse.cpp" + break; + + case 561: /* className: _NESTER */ +#line 1508 "./asmparse.y" + { if(PASM->m_pCurClass != NULL) { + if(PASM->m_pCurClass->m_pEncloser != NULL) (yyval.token) = PASM->m_pCurClass->m_pEncloser->m_cl; + else { (yyval.token) = 0; PASM->report->error(".nester undefined\n"); } + } else { (yyval.token) = 0; PASM->report->error(".nester outside class scope\n"); } + } +#line 6948 "asmparse.cpp" + break; + + case 562: /* slashedName: dottedName */ +#line 1515 "./asmparse.y" + { (yyval.string) = (yyvsp[0].string); } +#line 6954 "asmparse.cpp" + break; + + case 563: /* slashedName: slashedName '/' dottedName */ +#line 1516 "./asmparse.y" + { (yyval.string) = newStringWDel((yyvsp[-2].string), NESTING_SEP, (yyvsp[0].string)); } +#line 6960 "asmparse.cpp" + break; + + case 564: /* typeSpec: className */ +#line 1519 "./asmparse.y" + { (yyval.token) = (yyvsp[0].token);} +#line 6966 "asmparse.cpp" + break; + + case 565: /* typeSpec: '[' dottedName ']' */ +#line 1520 "./asmparse.y" + { (yyval.token) = PASM->GetAsmRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} +#line 6972 "asmparse.cpp" + break; + + case 566: /* typeSpec: '[' _MODULE dottedName ']' */ +#line 1521 "./asmparse.y" + { (yyval.token) = PASM->GetModRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} +#line 6978 "asmparse.cpp" + break; + + case 567: /* typeSpec: type */ +#line 1522 "./asmparse.y" + { (yyval.token) = PASM->ResolveTypeSpec((yyvsp[0].binstr)); } +#line 6984 "asmparse.cpp" + break; + + case 568: /* nativeType: %empty */ +#line 1526 "./asmparse.y" + { (yyval.binstr) = new BinStr(); } +#line 6990 "asmparse.cpp" + break; + + case 569: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')' */ +#line 1528 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); + corEmitInt((yyval.binstr),(yyvsp[-7].binstr)->length()); (yyval.binstr)->append((yyvsp[-7].binstr)); + corEmitInt((yyval.binstr),(yyvsp[-5].binstr)->length()); (yyval.binstr)->append((yyvsp[-5].binstr)); + corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); + corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); + PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} +#line 7001 "asmparse.cpp" + break; + + case 570: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ')' */ +#line 1535 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); + corEmitInt((yyval.binstr),0); + corEmitInt((yyval.binstr),0); + corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); + corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); } +#line 7011 "asmparse.cpp" + break; + + case 571: /* nativeType: FIXED_ SYSSTRING_ '[' int32 ']' */ +#line 1540 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); + corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } +#line 7018 "asmparse.cpp" + break; + + case 572: /* nativeType: FIXED_ ARRAY_ '[' int32 ']' nativeType */ +#line 1543 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDARRAY); + corEmitInt((yyval.binstr),(yyvsp[-2].int32)); (yyval.binstr)->append((yyvsp[0].binstr)); } +#line 7025 "asmparse.cpp" + break; + + case 573: /* nativeType: VARIANT_ */ +#line 1545 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANT); + PASM->report->warn("Deprecated native type 'variant'\n"); } +#line 7032 "asmparse.cpp" + break; + + case 574: /* nativeType: CURRENCY_ */ +#line 1547 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CURRENCY); } +#line 7038 "asmparse.cpp" + break; + + case 575: /* nativeType: SYSCHAR_ */ +#line 1548 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SYSCHAR); + PASM->report->warn("Deprecated native type 'syschar'\n"); } +#line 7045 "asmparse.cpp" + break; + + case 576: /* nativeType: VOID_ */ +#line 1550 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VOID); + PASM->report->warn("Deprecated native type 'void'\n"); } +#line 7052 "asmparse.cpp" + break; + + case 577: /* nativeType: BOOL_ */ +#line 1552 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BOOLEAN); } +#line 7058 "asmparse.cpp" + break; + + case 578: /* nativeType: INT8_ */ +#line 1553 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I1); } +#line 7064 "asmparse.cpp" + break; + + case 579: /* nativeType: INT16_ */ +#line 1554 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I2); } +#line 7070 "asmparse.cpp" + break; + + case 580: /* nativeType: INT32_ */ +#line 1555 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I4); } +#line 7076 "asmparse.cpp" + break; + + case 581: /* nativeType: INT64_ */ +#line 1556 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I8); } +#line 7082 "asmparse.cpp" + break; + + case 582: /* nativeType: FLOAT32_ */ +#line 1557 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R4); } +#line 7088 "asmparse.cpp" + break; + + case 583: /* nativeType: FLOAT64_ */ +#line 1558 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R8); } +#line 7094 "asmparse.cpp" + break; + + case 584: /* nativeType: ERROR_ */ +#line 1559 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ERROR); } +#line 7100 "asmparse.cpp" + break; + + case 585: /* nativeType: UNSIGNED_ INT8_ */ +#line 1560 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } +#line 7106 "asmparse.cpp" + break; + + case 586: /* nativeType: UNSIGNED_ INT16_ */ +#line 1561 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } +#line 7112 "asmparse.cpp" + break; + + case 587: /* nativeType: UNSIGNED_ INT32_ */ +#line 1562 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } +#line 7118 "asmparse.cpp" + break; + + case 588: /* nativeType: UNSIGNED_ INT64_ */ +#line 1563 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } +#line 7124 "asmparse.cpp" + break; + + case 589: /* nativeType: UINT8_ */ +#line 1564 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } +#line 7130 "asmparse.cpp" + break; + + case 590: /* nativeType: UINT16_ */ +#line 1565 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } +#line 7136 "asmparse.cpp" + break; + + case 591: /* nativeType: UINT32_ */ +#line 1566 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } +#line 7142 "asmparse.cpp" + break; + + case 592: /* nativeType: UINT64_ */ +#line 1567 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } +#line 7148 "asmparse.cpp" + break; + + case 593: /* nativeType: nativeType '*' */ +#line 1568 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(NATIVE_TYPE_PTR); + PASM->report->warn("Deprecated native type '*'\n"); } +#line 7155 "asmparse.cpp" + break; + + case 594: /* nativeType: nativeType '[' ']' */ +#line 1570 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); + (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); } +#line 7162 "asmparse.cpp" + break; + + case 595: /* nativeType: nativeType '[' int32 ']' */ +#line 1572 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-3].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); + (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt((yyval.binstr),0); + corEmitInt((yyval.binstr),(yyvsp[-1].int32)); + corEmitInt((yyval.binstr),0); } +#line 7172 "asmparse.cpp" + break; + + case 596: /* nativeType: nativeType '[' int32 '+' int32 ']' */ +#line 1577 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-5].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); + (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt((yyval.binstr),(yyvsp[-1].int32)); + corEmitInt((yyval.binstr),(yyvsp[-3].int32)); + corEmitInt((yyval.binstr),ntaSizeParamIndexSpecified); } +#line 7182 "asmparse.cpp" + break; + + case 597: /* nativeType: nativeType '[' '+' int32 ']' */ +#line 1582 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-4].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); + (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } +#line 7190 "asmparse.cpp" + break; + + case 598: /* nativeType: DECIMAL_ */ +#line 1585 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DECIMAL); + PASM->report->warn("Deprecated native type 'decimal'\n"); } +#line 7197 "asmparse.cpp" + break; + + case 599: /* nativeType: DATE_ */ +#line 1587 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DATE); + PASM->report->warn("Deprecated native type 'date'\n"); } +#line 7204 "asmparse.cpp" + break; + + case 600: /* nativeType: BSTR_ */ +#line 1589 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BSTR); } +#line 7210 "asmparse.cpp" + break; + + case 601: /* nativeType: LPSTR_ */ +#line 1590 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTR); } +#line 7216 "asmparse.cpp" + break; + + case 602: /* nativeType: LPWSTR_ */ +#line 1591 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPWSTR); } +#line 7222 "asmparse.cpp" + break; + + case 603: /* nativeType: LPTSTR_ */ +#line 1592 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPTSTR); } +#line 7228 "asmparse.cpp" + break; + + case 604: /* nativeType: OBJECTREF_ */ +#line 1593 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_OBJECTREF); + PASM->report->warn("Deprecated native type 'objectref'\n"); } +#line 7235 "asmparse.cpp" + break; + + case 605: /* nativeType: IUNKNOWN_ iidParamIndex */ +#line 1595 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IUNKNOWN); + if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } +#line 7242 "asmparse.cpp" + break; + + case 606: /* nativeType: IDISPATCH_ iidParamIndex */ +#line 1597 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IDISPATCH); + if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } +#line 7249 "asmparse.cpp" + break; + + case 607: /* nativeType: STRUCT_ */ +#line 1599 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_STRUCT); } +#line 7255 "asmparse.cpp" + break; + + case 608: /* nativeType: INTERFACE_ iidParamIndex */ +#line 1600 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INTF); + if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } +#line 7262 "asmparse.cpp" + break; + + case 609: /* nativeType: SAFEARRAY_ variantType */ +#line 1602 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); + corEmitInt((yyval.binstr),(yyvsp[0].int32)); + corEmitInt((yyval.binstr),0);} +#line 7270 "asmparse.cpp" + break; + + case 610: /* nativeType: SAFEARRAY_ variantType ',' compQstring */ +#line 1605 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); + corEmitInt((yyval.binstr),(yyvsp[-2].int32)); + corEmitInt((yyval.binstr),(yyvsp[0].binstr)->length()); (yyval.binstr)->append((yyvsp[0].binstr)); } +#line 7278 "asmparse.cpp" + break; + + case 611: /* nativeType: INT_ */ +#line 1609 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INT); } +#line 7284 "asmparse.cpp" + break; + + case 612: /* nativeType: UNSIGNED_ INT_ */ +#line 1610 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } +#line 7290 "asmparse.cpp" + break; + + case 613: /* nativeType: UINT_ */ +#line 1611 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } +#line 7296 "asmparse.cpp" + break; + + case 614: /* nativeType: NESTED_ STRUCT_ */ +#line 1612 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); + PASM->report->warn("Deprecated native type 'nested struct'\n"); } +#line 7303 "asmparse.cpp" + break; + + case 615: /* nativeType: BYVALSTR_ */ +#line 1614 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BYVALSTR); } +#line 7309 "asmparse.cpp" + break; + + case 616: /* nativeType: ANSI_ BSTR_ */ +#line 1615 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ANSIBSTR); } +#line 7315 "asmparse.cpp" + break; + + case 617: /* nativeType: TBSTR_ */ +#line 1616 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_TBSTR); } +#line 7321 "asmparse.cpp" + break; + + case 618: /* nativeType: VARIANT_ BOOL_ */ +#line 1617 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANTBOOL); } +#line 7327 "asmparse.cpp" + break; + + case 619: /* nativeType: METHOD_ */ +#line 1618 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FUNC); } +#line 7333 "asmparse.cpp" + break; + + case 620: /* nativeType: AS_ ANY_ */ +#line 1619 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ASANY); } +#line 7339 "asmparse.cpp" + break; + + case 621: /* nativeType: LPSTRUCT_ */ +#line 1620 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTRUCT); } +#line 7345 "asmparse.cpp" + break; + + case 622: /* nativeType: TYPEDEF_TS */ +#line 1621 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } +#line 7351 "asmparse.cpp" + break; + + case 623: /* iidParamIndex: %empty */ +#line 1624 "./asmparse.y" + { (yyval.int32) = -1; } +#line 7357 "asmparse.cpp" + break; + + case 624: /* iidParamIndex: '(' IIDPARAM_ '=' int32 ')' */ +#line 1625 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32); } +#line 7363 "asmparse.cpp" + break; + + case 625: /* variantType: %empty */ +#line 1628 "./asmparse.y" + { (yyval.int32) = VT_EMPTY; } +#line 7369 "asmparse.cpp" + break; + + case 626: /* variantType: NULL_ */ +#line 1629 "./asmparse.y" + { (yyval.int32) = VT_NULL; } +#line 7375 "asmparse.cpp" + break; + + case 627: /* variantType: VARIANT_ */ +#line 1630 "./asmparse.y" + { (yyval.int32) = VT_VARIANT; } +#line 7381 "asmparse.cpp" + break; + + case 628: /* variantType: CURRENCY_ */ +#line 1631 "./asmparse.y" + { (yyval.int32) = VT_CY; } +#line 7387 "asmparse.cpp" + break; + + case 629: /* variantType: VOID_ */ +#line 1632 "./asmparse.y" + { (yyval.int32) = VT_VOID; } +#line 7393 "asmparse.cpp" + break; + + case 630: /* variantType: BOOL_ */ +#line 1633 "./asmparse.y" + { (yyval.int32) = VT_BOOL; } +#line 7399 "asmparse.cpp" + break; + + case 631: /* variantType: INT8_ */ +#line 1634 "./asmparse.y" + { (yyval.int32) = VT_I1; } +#line 7405 "asmparse.cpp" + break; + + case 632: /* variantType: INT16_ */ +#line 1635 "./asmparse.y" + { (yyval.int32) = VT_I2; } +#line 7411 "asmparse.cpp" + break; + + case 633: /* variantType: INT32_ */ +#line 1636 "./asmparse.y" + { (yyval.int32) = VT_I4; } +#line 7417 "asmparse.cpp" + break; + + case 634: /* variantType: INT64_ */ +#line 1637 "./asmparse.y" + { (yyval.int32) = VT_I8; } +#line 7423 "asmparse.cpp" + break; + + case 635: /* variantType: FLOAT32_ */ +#line 1638 "./asmparse.y" + { (yyval.int32) = VT_R4; } +#line 7429 "asmparse.cpp" + break; + + case 636: /* variantType: FLOAT64_ */ +#line 1639 "./asmparse.y" + { (yyval.int32) = VT_R8; } +#line 7435 "asmparse.cpp" + break; + + case 637: /* variantType: UNSIGNED_ INT8_ */ +#line 1640 "./asmparse.y" + { (yyval.int32) = VT_UI1; } +#line 7441 "asmparse.cpp" + break; + + case 638: /* variantType: UNSIGNED_ INT16_ */ +#line 1641 "./asmparse.y" + { (yyval.int32) = VT_UI2; } +#line 7447 "asmparse.cpp" + break; + + case 639: /* variantType: UNSIGNED_ INT32_ */ +#line 1642 "./asmparse.y" + { (yyval.int32) = VT_UI4; } +#line 7453 "asmparse.cpp" + break; + + case 640: /* variantType: UNSIGNED_ INT64_ */ +#line 1643 "./asmparse.y" + { (yyval.int32) = VT_UI8; } +#line 7459 "asmparse.cpp" + break; + + case 641: /* variantType: UINT8_ */ +#line 1644 "./asmparse.y" + { (yyval.int32) = VT_UI1; } +#line 7465 "asmparse.cpp" + break; + + case 642: /* variantType: UINT16_ */ +#line 1645 "./asmparse.y" + { (yyval.int32) = VT_UI2; } +#line 7471 "asmparse.cpp" + break; + + case 643: /* variantType: UINT32_ */ +#line 1646 "./asmparse.y" + { (yyval.int32) = VT_UI4; } +#line 7477 "asmparse.cpp" + break; + + case 644: /* variantType: UINT64_ */ +#line 1647 "./asmparse.y" + { (yyval.int32) = VT_UI8; } +#line 7483 "asmparse.cpp" + break; + + case 645: /* variantType: '*' */ +#line 1648 "./asmparse.y" + { (yyval.int32) = VT_PTR; } +#line 7489 "asmparse.cpp" + break; + + case 646: /* variantType: variantType '[' ']' */ +#line 1649 "./asmparse.y" + { (yyval.int32) = (yyvsp[-2].int32) | VT_ARRAY; } +#line 7495 "asmparse.cpp" + break; + + case 647: /* variantType: variantType VECTOR_ */ +#line 1650 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | VT_VECTOR; } +#line 7501 "asmparse.cpp" + break; + + case 648: /* variantType: variantType '&' */ +#line 1651 "./asmparse.y" + { (yyval.int32) = (yyvsp[-1].int32) | VT_BYREF; } +#line 7507 "asmparse.cpp" + break; + + case 649: /* variantType: DECIMAL_ */ +#line 1652 "./asmparse.y" + { (yyval.int32) = VT_DECIMAL; } +#line 7513 "asmparse.cpp" + break; + + case 650: /* variantType: DATE_ */ +#line 1653 "./asmparse.y" + { (yyval.int32) = VT_DATE; } +#line 7519 "asmparse.cpp" + break; + + case 651: /* variantType: BSTR_ */ +#line 1654 "./asmparse.y" + { (yyval.int32) = VT_BSTR; } +#line 7525 "asmparse.cpp" + break; + + case 652: /* variantType: LPSTR_ */ +#line 1655 "./asmparse.y" + { (yyval.int32) = VT_LPSTR; } +#line 7531 "asmparse.cpp" + break; + + case 653: /* variantType: LPWSTR_ */ +#line 1656 "./asmparse.y" + { (yyval.int32) = VT_LPWSTR; } +#line 7537 "asmparse.cpp" + break; + + case 654: /* variantType: IUNKNOWN_ */ +#line 1657 "./asmparse.y" + { (yyval.int32) = VT_UNKNOWN; } +#line 7543 "asmparse.cpp" + break; + + case 655: /* variantType: IDISPATCH_ */ +#line 1658 "./asmparse.y" + { (yyval.int32) = VT_DISPATCH; } +#line 7549 "asmparse.cpp" + break; + + case 656: /* variantType: SAFEARRAY_ */ +#line 1659 "./asmparse.y" + { (yyval.int32) = VT_SAFEARRAY; } +#line 7555 "asmparse.cpp" + break; + + case 657: /* variantType: INT_ */ +#line 1660 "./asmparse.y" + { (yyval.int32) = VT_INT; } +#line 7561 "asmparse.cpp" + break; + + case 658: /* variantType: UNSIGNED_ INT_ */ +#line 1661 "./asmparse.y" + { (yyval.int32) = VT_UINT; } +#line 7567 "asmparse.cpp" + break; + + case 659: /* variantType: UINT_ */ +#line 1662 "./asmparse.y" + { (yyval.int32) = VT_UINT; } +#line 7573 "asmparse.cpp" + break; + + case 660: /* variantType: ERROR_ */ +#line 1663 "./asmparse.y" + { (yyval.int32) = VT_ERROR; } +#line 7579 "asmparse.cpp" + break; + + case 661: /* variantType: HRESULT_ */ +#line 1664 "./asmparse.y" + { (yyval.int32) = VT_HRESULT; } +#line 7585 "asmparse.cpp" + break; + + case 662: /* variantType: CARRAY_ */ +#line 1665 "./asmparse.y" + { (yyval.int32) = VT_CARRAY; } +#line 7591 "asmparse.cpp" + break; + + case 663: /* variantType: USERDEFINED_ */ +#line 1666 "./asmparse.y" + { (yyval.int32) = VT_USERDEFINED; } +#line 7597 "asmparse.cpp" + break; + + case 664: /* variantType: RECORD_ */ +#line 1667 "./asmparse.y" + { (yyval.int32) = VT_RECORD; } +#line 7603 "asmparse.cpp" + break; + + case 665: /* variantType: FILETIME_ */ +#line 1668 "./asmparse.y" + { (yyval.int32) = VT_FILETIME; } +#line 7609 "asmparse.cpp" + break; + + case 666: /* variantType: BLOB_ */ +#line 1669 "./asmparse.y" + { (yyval.int32) = VT_BLOB; } +#line 7615 "asmparse.cpp" + break; + + case 667: /* variantType: STREAM_ */ +#line 1670 "./asmparse.y" + { (yyval.int32) = VT_STREAM; } +#line 7621 "asmparse.cpp" + break; + + case 668: /* variantType: STORAGE_ */ +#line 1671 "./asmparse.y" + { (yyval.int32) = VT_STORAGE; } +#line 7627 "asmparse.cpp" + break; + + case 669: /* variantType: STREAMED_OBJECT_ */ +#line 1672 "./asmparse.y" + { (yyval.int32) = VT_STREAMED_OBJECT; } +#line 7633 "asmparse.cpp" + break; + + case 670: /* variantType: STORED_OBJECT_ */ +#line 1673 "./asmparse.y" + { (yyval.int32) = VT_STORED_OBJECT; } +#line 7639 "asmparse.cpp" + break; + + case 671: /* variantType: BLOB_OBJECT_ */ +#line 1674 "./asmparse.y" + { (yyval.int32) = VT_BLOB_OBJECT; } +#line 7645 "asmparse.cpp" + break; + + case 672: /* variantType: CF_ */ +#line 1675 "./asmparse.y" + { (yyval.int32) = VT_CF; } +#line 7651 "asmparse.cpp" + break; + + case 673: /* variantType: CLSID_ */ +#line 1676 "./asmparse.y" + { (yyval.int32) = VT_CLSID; } +#line 7657 "asmparse.cpp" + break; + + case 674: /* type: CLASS_ className */ +#line 1680 "./asmparse.y" + { if((yyvsp[0].token) == PASM->m_tkSysString) + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } + else if((yyvsp[0].token) == PASM->m_tkSysObject) + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } + else + (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, (yyvsp[0].token)); } +#line 7668 "asmparse.cpp" + break; + + case 675: /* type: OBJECT_ */ +#line 1686 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } +#line 7674 "asmparse.cpp" + break; + + case 676: /* type: VALUE_ CLASS_ className */ +#line 1687 "./asmparse.y" + { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } +#line 7680 "asmparse.cpp" + break; + + case 677: /* type: VALUETYPE_ className */ +#line 1688 "./asmparse.y" + { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } +#line 7686 "asmparse.cpp" + break; + + case 678: /* type: CONST_ fieldInit */ +#line 1689 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_CTARG); } +#line 7692 "asmparse.cpp" + break; + + case 679: /* type: type '[' ']' */ +#line 1690 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 7698 "asmparse.cpp" + break; + + case 680: /* type: type '[' bounds1 ']' */ +#line 1691 "./asmparse.y" + { (yyval.binstr) = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, (yyvsp[-3].binstr), (yyvsp[-1].binstr)); } +#line 7704 "asmparse.cpp" + break; + + case 681: /* type: type '&' */ +#line 1692 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_BYREF); } +#line 7710 "asmparse.cpp" + break; + + case 682: /* type: type '*' */ +#line 1693 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PTR); } +#line 7716 "asmparse.cpp" + break; + + case 683: /* type: type PINNED_ */ +#line 1694 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PINNED); } +#line 7722 "asmparse.cpp" + break; + + case 684: /* type: type MODREQ_ '(' typeSpec ')' */ +#line 1695 "./asmparse.y" + { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, (yyvsp[-1].token)); + (yyval.binstr)->append((yyvsp[-4].binstr)); } +#line 7729 "asmparse.cpp" + break; + + case 685: /* type: type MODOPT_ '(' typeSpec ')' */ +#line 1697 "./asmparse.y" + { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, (yyvsp[-1].token)); + (yyval.binstr)->append((yyvsp[-4].binstr)); } +#line 7736 "asmparse.cpp" + break; + + case 686: /* type: methodSpec callConv type '*' '(' sigArgs0 ')' */ +#line 1700 "./asmparse.y" + { (yyval.binstr) = parser->MakeSig((yyvsp[-5].int32), (yyvsp[-4].binstr), (yyvsp[-1].binstr)); + (yyval.binstr)->insertInt8(ELEMENT_TYPE_FNPTR); + PASM->delArgNameList(PASM->m_firstArgName); + PASM->m_firstArgName = parser->m_ANSFirst.POP(); + PASM->m_lastArgName = parser->m_ANSLast.POP(); + } +#line 7747 "asmparse.cpp" + break; + + case 687: /* type: type '<' tyArgs1 '>' */ +#line 1706 "./asmparse.y" + { if((yyvsp[-1].binstr) == NULL) (yyval.binstr) = (yyvsp[-3].binstr); + else { + (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(ELEMENT_TYPE_GENERICINST); + (yyval.binstr)->append((yyvsp[-3].binstr)); + corEmitInt((yyval.binstr), corCountArgs((yyvsp[-1].binstr))); + (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-3].binstr); delete (yyvsp[-1].binstr); }} +#line 7759 "asmparse.cpp" + break; + + case 688: /* type: '!' '!' int32 */ +#line 1713 "./asmparse.y" + { //if(PASM->m_pCurMethod) { + // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) + // PASM->report->error("Invalid method type parameter '%d'\n",$3); + (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); + //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); + } +#line 7770 "asmparse.cpp" + break; + + case 689: /* type: '!' int32 */ +#line 1719 "./asmparse.y" + { //if(PASM->m_pCurClass) { + // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) + // PASM->report->error("Invalid type parameter '%d'\n",$2); + (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); + //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); + } +#line 7781 "asmparse.cpp" + break; + + case 690: /* type: '!' '!' dottedName */ +#line 1725 "./asmparse.y" + { int eltype = ELEMENT_TYPE_MVAR; + int n=-1; + if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf((yyvsp[0].string)); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH((yyvsp[0].string)); + eltype = ELEMENT_TYPE_MVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",(yyvsp[0].string)); + n = 0x1FFFFFFF; } + (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); + } +#line 7801 "asmparse.cpp" + break; + + case 691: /* type: '!' dottedName */ +#line 1740 "./asmparse.y" + { int eltype = ELEMENT_TYPE_VAR; + int n=-1; + if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf((yyvsp[0].string)); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH((yyvsp[0].string)); + eltype = ELEMENT_TYPE_VARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",(yyvsp[0].string)); + n = 0x1FFFFFFF; } + (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); + } +#line 7821 "asmparse.cpp" + break; + + case 692: /* type: TYPEDREF_ */ +#line 1755 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 7827 "asmparse.cpp" + break; + + case 693: /* type: VOID_ */ +#line 1756 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VOID); } +#line 7833 "asmparse.cpp" + break; + + case 694: /* type: NATIVE_ INT_ */ +#line 1757 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I); } +#line 7839 "asmparse.cpp" + break; + + case 695: /* type: NATIVE_ UNSIGNED_ INT_ */ +#line 1758 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } +#line 7845 "asmparse.cpp" + break; + + case 696: /* type: NATIVE_ UINT_ */ +#line 1759 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } +#line 7851 "asmparse.cpp" + break; + + case 697: /* type: simpleType */ +#line 1760 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 7857 "asmparse.cpp" + break; + + case 698: /* type: ELLIPSIS type */ +#line 1761 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 7863 "asmparse.cpp" + break; + + case 699: /* simpleType: CHAR_ */ +#line 1764 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); } +#line 7869 "asmparse.cpp" + break; + + case 700: /* simpleType: STRING_ */ +#line 1765 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } +#line 7875 "asmparse.cpp" + break; + + case 701: /* simpleType: BOOL_ */ +#line 1766 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 7881 "asmparse.cpp" + break; + + case 702: /* simpleType: INT8_ */ +#line 1767 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); } +#line 7887 "asmparse.cpp" + break; + + case 703: /* simpleType: INT16_ */ +#line 1768 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); } +#line 7893 "asmparse.cpp" + break; + + case 704: /* simpleType: INT32_ */ +#line 1769 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); } +#line 7899 "asmparse.cpp" + break; + + case 705: /* simpleType: INT64_ */ +#line 1770 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); } +#line 7905 "asmparse.cpp" + break; + + case 706: /* simpleType: FLOAT32_ */ +#line 1771 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); } +#line 7911 "asmparse.cpp" + break; + + case 707: /* simpleType: FLOAT64_ */ +#line 1772 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); } +#line 7917 "asmparse.cpp" + break; + + case 708: /* simpleType: UNSIGNED_ INT8_ */ +#line 1773 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } +#line 7923 "asmparse.cpp" + break; + + case 709: /* simpleType: UNSIGNED_ INT16_ */ +#line 1774 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } +#line 7929 "asmparse.cpp" + break; + + case 710: /* simpleType: UNSIGNED_ INT32_ */ +#line 1775 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } +#line 7935 "asmparse.cpp" + break; + + case 711: /* simpleType: UNSIGNED_ INT64_ */ +#line 1776 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } +#line 7941 "asmparse.cpp" + break; + + case 712: /* simpleType: UINT8_ */ +#line 1777 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } +#line 7947 "asmparse.cpp" + break; + + case 713: /* simpleType: UINT16_ */ +#line 1778 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } +#line 7953 "asmparse.cpp" + break; + + case 714: /* simpleType: UINT32_ */ +#line 1779 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } +#line 7959 "asmparse.cpp" + break; + + case 715: /* simpleType: UINT64_ */ +#line 1780 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } +#line 7965 "asmparse.cpp" + break; + + case 716: /* simpleType: TYPEDEF_TS */ +#line 1781 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } +#line 7971 "asmparse.cpp" + break; + + case 717: /* bounds1: bound */ +#line 1784 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); } +#line 7977 "asmparse.cpp" + break; + + case 718: /* bounds1: bounds1 ',' bound */ +#line 1785 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyvsp[-2].binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } +#line 7983 "asmparse.cpp" + break; + + case 719: /* bound: %empty */ +#line 1788 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } +#line 7989 "asmparse.cpp" + break; + + case 720: /* bound: ELLIPSIS */ +#line 1789 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } +#line 7995 "asmparse.cpp" + break; + + case 721: /* bound: int32 */ +#line 1790 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0); (yyval.binstr)->appendInt32((yyvsp[0].int32)); } +#line 8001 "asmparse.cpp" + break; + + case 722: /* bound: int32 ELLIPSIS int32 */ +#line 1791 "./asmparse.y" + { FAIL_UNLESS((yyvsp[-2].int32) <= (yyvsp[0].int32), ("lower bound %d must be <= upper bound %d\n", (yyvsp[-2].int32), (yyvsp[0].int32))); + if ((yyvsp[-2].int32) > (yyvsp[0].int32)) { YYERROR; }; + (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-2].int32)); (yyval.binstr)->appendInt32((yyvsp[0].int32)-(yyvsp[-2].int32)+1); } +#line 8009 "asmparse.cpp" + break; + + case 723: /* bound: int32 ELLIPSIS */ +#line 1794 "./asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); (yyval.binstr)->appendInt32(0x7FFFFFFF); } +#line 8015 "asmparse.cpp" + break; + + case 724: /* secDecl: _PERMISSION secAction typeSpec '(' nameValPairs ')' */ +#line 1799 "./asmparse.y" + { PASM->AddPermissionDecl((yyvsp[-4].secAct), (yyvsp[-3].token), (yyvsp[-1].pair)); } +#line 8021 "asmparse.cpp" + break; + + case 725: /* secDecl: _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}' */ +#line 1801 "./asmparse.y" + { PASM->AddPermissionDecl((yyvsp[-5].secAct), (yyvsp[-4].token), (yyvsp[-1].binstr)); } +#line 8027 "asmparse.cpp" + break; + + case 726: /* secDecl: _PERMISSION secAction typeSpec */ +#line 1802 "./asmparse.y" + { PASM->AddPermissionDecl((yyvsp[-1].secAct), (yyvsp[0].token), (NVPair *)NULL); } +#line 8033 "asmparse.cpp" + break; + + case 727: /* secDecl: psetHead bytes ')' */ +#line 1803 "./asmparse.y" + { PASM->AddPermissionSetDecl((yyvsp[-2].secAct), (yyvsp[-1].binstr)); } +#line 8039 "asmparse.cpp" + break; + + case 728: /* secDecl: _PERMISSIONSET secAction compQstring */ +#line 1805 "./asmparse.y" + { PASM->AddPermissionSetDecl((yyvsp[-1].secAct),BinStrToUnicode((yyvsp[0].binstr),true));} +#line 8045 "asmparse.cpp" + break; + + case 729: /* secDecl: _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}' */ +#line 1807 "./asmparse.y" + { BinStr* ret = new BinStr(); + ret->insertInt8('.'); + corEmitInt(ret, nSecAttrBlobs); + ret->append((yyvsp[-1].binstr)); + PASM->AddPermissionSetDecl((yyvsp[-4].secAct),ret); + nSecAttrBlobs = 0; } +#line 8056 "asmparse.cpp" + break; + + case 730: /* secAttrSetBlob: %empty */ +#line 1815 "./asmparse.y" + { (yyval.binstr) = new BinStr(); nSecAttrBlobs = 0;} +#line 8062 "asmparse.cpp" + break; + + case 731: /* secAttrSetBlob: secAttrBlob */ +#line 1816 "./asmparse.y" + { (yyval.binstr) = (yyvsp[0].binstr); nSecAttrBlobs = 1; } +#line 8068 "asmparse.cpp" + break; + + case 732: /* secAttrSetBlob: secAttrBlob ',' secAttrSetBlob */ +#line 1817 "./asmparse.y" + { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); nSecAttrBlobs++; } +#line 8074 "asmparse.cpp" + break; + + case 733: /* secAttrBlob: typeSpec '=' '{' customBlobNVPairs '}' */ +#line 1821 "./asmparse.y" + { (yyval.binstr) = PASM->EncodeSecAttr(PASM->ReflectionNotation((yyvsp[-4].token)),(yyvsp[-1].binstr),nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 8081 "asmparse.cpp" + break; + + case 734: /* secAttrBlob: CLASS_ SQSTRING '=' '{' customBlobNVPairs '}' */ +#line 1824 "./asmparse.y" + { (yyval.binstr) = PASM->EncodeSecAttr((yyvsp[-4].string),(yyvsp[-1].binstr),nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 8088 "asmparse.cpp" + break; + + case 735: /* psetHead: _PERMISSIONSET secAction '=' '(' */ +#line 1828 "./asmparse.y" + { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } +#line 8094 "asmparse.cpp" + break; + + case 736: /* psetHead: _PERMISSIONSET secAction BYTEARRAY_ '(' */ +#line 1830 "./asmparse.y" + { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } +#line 8100 "asmparse.cpp" + break; + + case 737: /* nameValPairs: nameValPair */ +#line 1833 "./asmparse.y" + { (yyval.pair) = (yyvsp[0].pair); } +#line 8106 "asmparse.cpp" + break; + + case 738: /* nameValPairs: nameValPair ',' nameValPairs */ +#line 1834 "./asmparse.y" + { (yyval.pair) = (yyvsp[-2].pair)->Concat((yyvsp[0].pair)); } +#line 8112 "asmparse.cpp" + break; + + case 739: /* nameValPair: compQstring '=' caValue */ +#line 1837 "./asmparse.y" + { (yyvsp[-2].binstr)->appendInt8(0); (yyval.pair) = new NVPair((yyvsp[-2].binstr), (yyvsp[0].binstr)); } +#line 8118 "asmparse.cpp" + break; + + case 740: /* truefalse: TRUE_ */ +#line 1840 "./asmparse.y" + { (yyval.int32) = 1; } +#line 8124 "asmparse.cpp" + break; + + case 741: /* truefalse: FALSE_ */ +#line 1841 "./asmparse.y" + { (yyval.int32) = 0; } +#line 8130 "asmparse.cpp" + break; + + case 742: /* caValue: truefalse */ +#line 1844 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_BOOLEAN); + (yyval.binstr)->appendInt8((yyvsp[0].int32)); } +#line 8138 "asmparse.cpp" + break; + + case 743: /* caValue: int32 */ +#line 1847 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); + (yyval.binstr)->appendInt32((yyvsp[0].int32)); } +#line 8146 "asmparse.cpp" + break; + + case 744: /* caValue: INT32_ '(' int32 ')' */ +#line 1850 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 8154 "asmparse.cpp" + break; + + case 745: /* caValue: compQstring */ +#line 1853 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_STRING); + (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); + (yyval.binstr)->appendInt8(0); } +#line 8163 "asmparse.cpp" + break; + + case 746: /* caValue: className '(' INT8_ ':' int32 ')' */ +#line 1857 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); + strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + (yyval.binstr)->appendInt8(1); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 8174 "asmparse.cpp" + break; + + case 747: /* caValue: className '(' INT16_ ':' int32 ')' */ +#line 1863 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); + strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + (yyval.binstr)->appendInt8(2); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 8185 "asmparse.cpp" + break; + + case 748: /* caValue: className '(' INT32_ ':' int32 ')' */ +#line 1869 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); + strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + (yyval.binstr)->appendInt8(4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 8196 "asmparse.cpp" + break; + + case 749: /* caValue: className '(' int32 ')' */ +#line 1875 "./asmparse.y" + { (yyval.binstr) = new BinStr(); + (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation((yyvsp[-3].token)); + strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + (yyval.binstr)->appendInt8(4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 8207 "asmparse.cpp" + break; + + case 750: /* secAction: REQUEST_ */ +#line 1883 "./asmparse.y" + { (yyval.secAct) = dclRequest; } +#line 8213 "asmparse.cpp" + break; + + case 751: /* secAction: DEMAND_ */ +#line 1884 "./asmparse.y" + { (yyval.secAct) = dclDemand; } +#line 8219 "asmparse.cpp" + break; + + case 752: /* secAction: ASSERT_ */ +#line 1885 "./asmparse.y" + { (yyval.secAct) = dclAssert; } +#line 8225 "asmparse.cpp" + break; + + case 753: /* secAction: DENY_ */ +#line 1886 "./asmparse.y" + { (yyval.secAct) = dclDeny; } +#line 8231 "asmparse.cpp" + break; + + case 754: /* secAction: PERMITONLY_ */ +#line 1887 "./asmparse.y" + { (yyval.secAct) = dclPermitOnly; } +#line 8237 "asmparse.cpp" + break; + + case 755: /* secAction: LINKCHECK_ */ +#line 1888 "./asmparse.y" + { (yyval.secAct) = dclLinktimeCheck; } +#line 8243 "asmparse.cpp" + break; + + case 756: /* secAction: INHERITCHECK_ */ +#line 1889 "./asmparse.y" + { (yyval.secAct) = dclInheritanceCheck; } +#line 8249 "asmparse.cpp" + break; + + case 757: /* secAction: REQMIN_ */ +#line 1890 "./asmparse.y" + { (yyval.secAct) = dclRequestMinimum; } +#line 8255 "asmparse.cpp" + break; + + case 758: /* secAction: REQOPT_ */ +#line 1891 "./asmparse.y" + { (yyval.secAct) = dclRequestOptional; } +#line 8261 "asmparse.cpp" + break; + + case 759: /* secAction: REQREFUSE_ */ +#line 1892 "./asmparse.y" + { (yyval.secAct) = dclRequestRefuse; } +#line 8267 "asmparse.cpp" + break; + + case 760: /* secAction: PREJITGRANT_ */ +#line 1893 "./asmparse.y" + { (yyval.secAct) = dclPrejitGrant; } +#line 8273 "asmparse.cpp" + break; + + case 761: /* secAction: PREJITDENY_ */ +#line 1894 "./asmparse.y" + { (yyval.secAct) = dclPrejitDenied; } +#line 8279 "asmparse.cpp" + break; + + case 762: /* secAction: NONCASDEMAND_ */ +#line 1895 "./asmparse.y" + { (yyval.secAct) = dclNonCasDemand; } +#line 8285 "asmparse.cpp" + break; + + case 763: /* secAction: NONCASLINKDEMAND_ */ +#line 1896 "./asmparse.y" + { (yyval.secAct) = dclNonCasLinkDemand; } +#line 8291 "asmparse.cpp" + break; + + case 764: /* secAction: NONCASINHERITANCE_ */ +#line 1897 "./asmparse.y" + { (yyval.secAct) = dclNonCasInheritance; } +#line 8297 "asmparse.cpp" + break; + + case 765: /* esHead: _LINE */ +#line 1901 "./asmparse.y" + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 8303 "asmparse.cpp" + break; + + case 766: /* esHead: P_LINE */ +#line 1902 "./asmparse.y" + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } +#line 8309 "asmparse.cpp" + break; + + case 767: /* extSourceSpec: esHead int32 SQSTRING */ +#line 1905 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32); + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName((yyvsp[0].string));} +#line 8317 "asmparse.cpp" + break; + + case 768: /* extSourceSpec: esHead int32 */ +#line 1908 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[0].int32); + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } +#line 8324 "asmparse.cpp" + break; + + case 769: /* extSourceSpec: esHead int32 ':' int32 SQSTRING */ +#line 1910 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-3].int32); + PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName((yyvsp[0].string));} +#line 8332 "asmparse.cpp" + break; + + case 770: /* extSourceSpec: esHead int32 ':' int32 */ +#line 1913 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-2].int32); + PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1);} +#line 8339 "asmparse.cpp" + break; + + case 771: /* extSourceSpec: esHead int32 ':' int32 ',' int32 SQSTRING */ +#line 1916 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-5].int32); + PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); + PASM->SetSourceFileName((yyvsp[0].string));} +#line 8347 "asmparse.cpp" + break; + + case 772: /* extSourceSpec: esHead int32 ':' int32 ',' int32 */ +#line 1920 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-4].int32); + PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } +#line 8354 "asmparse.cpp" + break; + + case 773: /* extSourceSpec: esHead int32 ',' int32 ':' int32 SQSTRING */ +#line 1923 "./asmparse.y" + { PENV->nExtLine = (yyvsp[-5].int32); PENV->nExtLineEnd = (yyvsp[-3].int32); + PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName((yyvsp[0].string));} +#line 8362 "asmparse.cpp" + break; + + case 774: /* extSourceSpec: esHead int32 ',' int32 ':' int32 */ +#line 1927 "./asmparse.y" + { PENV->nExtLine = (yyvsp[-4].int32); PENV->nExtLineEnd = (yyvsp[-2].int32); + PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1); } +#line 8369 "asmparse.cpp" + break; + + case 775: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING */ +#line 1930 "./asmparse.y" + { PENV->nExtLine = (yyvsp[-7].int32); PENV->nExtLineEnd = (yyvsp[-5].int32); + PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); + PASM->SetSourceFileName((yyvsp[0].string));} +#line 8377 "asmparse.cpp" + break; + + case 776: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 */ +#line 1934 "./asmparse.y" + { PENV->nExtLine = (yyvsp[-6].int32); PENV->nExtLineEnd = (yyvsp[-4].int32); + PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } +#line 8384 "asmparse.cpp" + break; + + case 777: /* extSourceSpec: esHead int32 QSTRING */ +#line 1936 "./asmparse.y" + { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32) - 1; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName((yyvsp[0].binstr));} +#line 8392 "asmparse.cpp" + break; + + case 778: /* fileDecl: _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry */ +#line 1943 "./asmparse.y" + { PASMM->AddFile((yyvsp[-5].string), (yyvsp[-6].fileAttr)|(yyvsp[-4].fileAttr)|(yyvsp[0].fileAttr), (yyvsp[-2].binstr)); } +#line 8398 "asmparse.cpp" + break; + + case 779: /* fileDecl: _FILE fileAttr dottedName fileEntry */ +#line 1944 "./asmparse.y" + { PASMM->AddFile((yyvsp[-1].string), (yyvsp[-2].fileAttr)|(yyvsp[0].fileAttr), NULL); } +#line 8404 "asmparse.cpp" + break; + + case 780: /* fileAttr: %empty */ +#line 1947 "./asmparse.y" + { (yyval.fileAttr) = (CorFileFlags) 0; } +#line 8410 "asmparse.cpp" + break; + + case 781: /* fileAttr: fileAttr NOMETADATA_ */ +#line 1948 "./asmparse.y" + { (yyval.fileAttr) = (CorFileFlags) ((yyvsp[-1].fileAttr) | ffContainsNoMetaData); } +#line 8416 "asmparse.cpp" + break; + + case 782: /* fileEntry: %empty */ +#line 1951 "./asmparse.y" + { (yyval.fileAttr) = (CorFileFlags) 0; } +#line 8422 "asmparse.cpp" + break; + + case 783: /* fileEntry: _ENTRYPOINT */ +#line 1952 "./asmparse.y" + { (yyval.fileAttr) = (CorFileFlags) 0x80000000; } +#line 8428 "asmparse.cpp" + break; + + case 784: /* hashHead: _HASH '=' '(' */ +#line 1955 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 8434 "asmparse.cpp" + break; + + case 785: /* assemblyHead: _ASSEMBLY asmAttr dottedName */ +#line 1958 "./asmparse.y" + { PASMM->StartAssembly((yyvsp[0].string), NULL, (DWORD)(yyvsp[-1].asmAttr), FALSE); } +#line 8440 "asmparse.cpp" + break; + + case 786: /* asmAttr: %empty */ +#line 1961 "./asmparse.y" + { (yyval.asmAttr) = (CorAssemblyFlags) 0; } +#line 8446 "asmparse.cpp" + break; + + case 787: /* asmAttr: asmAttr RETARGETABLE_ */ +#line 1962 "./asmparse.y" + { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afRetargetable); } +#line 8452 "asmparse.cpp" + break; + + case 788: /* asmAttr: asmAttr WINDOWSRUNTIME_ */ +#line 1963 "./asmparse.y" + { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afContentType_WindowsRuntime); } +#line 8458 "asmparse.cpp" + break; + + case 789: /* asmAttr: asmAttr NOPLATFORM_ */ +#line 1964 "./asmparse.y" + { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afPA_NoPlatform); } +#line 8464 "asmparse.cpp" + break; + + case 790: /* asmAttr: asmAttr LEGACY_ LIBRARY_ */ +#line 1965 "./asmparse.y" + { (yyval.asmAttr) = (yyvsp[-2].asmAttr); } +#line 8470 "asmparse.cpp" + break; + + case 791: /* asmAttr: asmAttr CIL_ */ +#line 1966 "./asmparse.y" + { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_MSIL); } +#line 8476 "asmparse.cpp" + break; + + case 792: /* asmAttr: asmAttr X86_ */ +#line 1967 "./asmparse.y" + { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_x86); } +#line 8482 "asmparse.cpp" + break; + + case 793: /* asmAttr: asmAttr AMD64_ */ +#line 1968 "./asmparse.y" + { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_AMD64); } +#line 8488 "asmparse.cpp" + break; + + case 794: /* asmAttr: asmAttr ARM_ */ +#line 1969 "./asmparse.y" + { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM); } +#line 8494 "asmparse.cpp" + break; + + case 795: /* asmAttr: asmAttr ARM64_ */ +#line 1970 "./asmparse.y" + { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM64); } +#line 8500 "asmparse.cpp" + break; + + case 798: /* assemblyDecl: _HASH ALGORITHM_ int32 */ +#line 1977 "./asmparse.y" + { PASMM->SetAssemblyHashAlg((yyvsp[0].int32)); } +#line 8506 "asmparse.cpp" + break; + + case 801: /* intOrWildcard: int32 */ +#line 1982 "./asmparse.y" + { (yyval.int32) = (yyvsp[0].int32); } +#line 8512 "asmparse.cpp" + break; + + case 802: /* intOrWildcard: '*' */ +#line 1983 "./asmparse.y" + { (yyval.int32) = 0xFFFF; } +#line 8518 "asmparse.cpp" + break; + + case 803: /* asmOrRefDecl: publicKeyHead bytes ')' */ +#line 1986 "./asmparse.y" + { PASMM->SetAssemblyPublicKey((yyvsp[-1].binstr)); } +#line 8524 "asmparse.cpp" + break; + + case 804: /* asmOrRefDecl: _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard */ +#line 1988 "./asmparse.y" + { PASMM->SetAssemblyVer((USHORT)(yyvsp[-6].int32), (USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (USHORT)(yyvsp[0].int32)); } +#line 8530 "asmparse.cpp" + break; + + case 805: /* asmOrRefDecl: _LOCALE compQstring */ +#line 1989 "./asmparse.y" + { (yyvsp[0].binstr)->appendInt8(0); PASMM->SetAssemblyLocale((yyvsp[0].binstr),TRUE); } +#line 8536 "asmparse.cpp" + break; + + case 806: /* asmOrRefDecl: localeHead bytes ')' */ +#line 1990 "./asmparse.y" + { PASMM->SetAssemblyLocale((yyvsp[-1].binstr),FALSE); } +#line 8542 "asmparse.cpp" + break; + + case 809: /* publicKeyHead: _PUBLICKEY '=' '(' */ +#line 1995 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 8548 "asmparse.cpp" + break; + + case 810: /* publicKeyTokenHead: _PUBLICKEYTOKEN '=' '(' */ +#line 1998 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 8554 "asmparse.cpp" + break; + + case 811: /* localeHead: _LOCALE '=' '(' */ +#line 2001 "./asmparse.y" + { bParsingByteArray = TRUE; } +#line 8560 "asmparse.cpp" + break; + + case 812: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName */ +#line 2005 "./asmparse.y" + { PASMM->StartAssembly((yyvsp[0].string), NULL, (yyvsp[-1].asmAttr), TRUE); } +#line 8566 "asmparse.cpp" + break; + + case 813: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName */ +#line 2007 "./asmparse.y" + { PASMM->StartAssembly((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].asmAttr), TRUE); } +#line 8572 "asmparse.cpp" + break; + + case 816: /* assemblyRefDecl: hashHead bytes ')' */ +#line 2014 "./asmparse.y" + { PASMM->SetAssemblyHashBlob((yyvsp[-1].binstr)); } +#line 8578 "asmparse.cpp" + break; + + case 818: /* assemblyRefDecl: publicKeyTokenHead bytes ')' */ +#line 2016 "./asmparse.y" + { PASMM->SetAssemblyPublicKeyToken((yyvsp[-1].binstr)); } +#line 8584 "asmparse.cpp" + break; + + case 819: /* assemblyRefDecl: AUTO_ */ +#line 2017 "./asmparse.y" + { PASMM->SetAssemblyAutodetect(); } +#line 8590 "asmparse.cpp" + break; + + case 820: /* exptypeHead: _CLASS EXTERN_ exptAttr dottedName */ +#line 2020 "./asmparse.y" + { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr));} +#line 8596 "asmparse.cpp" + break; + + case 821: /* exportHead: _EXPORT exptAttr dottedName */ +#line 2023 "./asmparse.y" + { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr)); } +#line 8602 "asmparse.cpp" + break; + + case 822: /* exptAttr: %empty */ +#line 2026 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) 0; } +#line 8608 "asmparse.cpp" + break; + + case 823: /* exptAttr: exptAttr PRIVATE_ */ +#line 2027 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdNotPublic); } +#line 8614 "asmparse.cpp" + break; + + case 824: /* exptAttr: exptAttr PUBLIC_ */ +#line 2028 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdPublic); } +#line 8620 "asmparse.cpp" + break; + + case 825: /* exptAttr: exptAttr FORWARDER_ */ +#line 2029 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdForwarder); } +#line 8626 "asmparse.cpp" + break; + + case 826: /* exptAttr: exptAttr NESTED_ PUBLIC_ */ +#line 2030 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPublic); } +#line 8632 "asmparse.cpp" + break; + + case 827: /* exptAttr: exptAttr NESTED_ PRIVATE_ */ +#line 2031 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPrivate); } +#line 8638 "asmparse.cpp" + break; + + case 828: /* exptAttr: exptAttr NESTED_ FAMILY_ */ +#line 2032 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamily); } +#line 8644 "asmparse.cpp" + break; + + case 829: /* exptAttr: exptAttr NESTED_ ASSEMBLY_ */ +#line 2033 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedAssembly); } +#line 8650 "asmparse.cpp" + break; + + case 830: /* exptAttr: exptAttr NESTED_ FAMANDASSEM_ */ +#line 2034 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamANDAssem); } +#line 8656 "asmparse.cpp" + break; + + case 831: /* exptAttr: exptAttr NESTED_ FAMORASSEM_ */ +#line 2035 "./asmparse.y" + { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamORAssem); } +#line 8662 "asmparse.cpp" + break; + + case 834: /* exptypeDecl: _FILE dottedName */ +#line 2042 "./asmparse.y" + { PASMM->SetComTypeFile((yyvsp[0].string)); } +#line 8668 "asmparse.cpp" + break; + + case 835: /* exptypeDecl: _CLASS EXTERN_ slashedName */ +#line 2043 "./asmparse.y" + { PASMM->SetComTypeComType((yyvsp[0].string)); } +#line 8674 "asmparse.cpp" + break; + + case 836: /* exptypeDecl: _ASSEMBLY EXTERN_ dottedName */ +#line 2044 "./asmparse.y" + { PASMM->SetComTypeAsmRef((yyvsp[0].string)); } +#line 8680 "asmparse.cpp" + break; + + case 837: /* exptypeDecl: MDTOKEN_ '(' int32 ')' */ +#line 2045 "./asmparse.y" + { if(!PASMM->SetComTypeImplementationTok((yyvsp[-1].int32))) + PASM->report->error("Invalid implementation of exported type\n"); } +#line 8687 "asmparse.cpp" + break; + + case 838: /* exptypeDecl: _CLASS int32 */ +#line 2047 "./asmparse.y" + { if(!PASMM->SetComTypeClassTok((yyvsp[0].int32))) + PASM->report->error("Invalid TypeDefID of exported type\n"); } +#line 8694 "asmparse.cpp" + break; + + case 841: /* manifestResHead: _MRESOURCE manresAttr dottedName */ +#line 2053 "./asmparse.y" + { PASMM->StartManifestRes((yyvsp[0].string), (yyvsp[0].string), (yyvsp[-1].manresAttr)); } +#line 8700 "asmparse.cpp" + break; + + case 842: /* manifestResHead: _MRESOURCE manresAttr dottedName AS_ dottedName */ +#line 2055 "./asmparse.y" + { PASMM->StartManifestRes((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].manresAttr)); } +#line 8706 "asmparse.cpp" + break; + + case 843: /* manresAttr: %empty */ +#line 2058 "./asmparse.y" + { (yyval.manresAttr) = (CorManifestResourceFlags) 0; } +#line 8712 "asmparse.cpp" + break; + + case 844: /* manresAttr: manresAttr PUBLIC_ */ +#line 2059 "./asmparse.y" + { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPublic); } +#line 8718 "asmparse.cpp" + break; + + case 845: /* manresAttr: manresAttr PRIVATE_ */ +#line 2060 "./asmparse.y" + { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPrivate); } +#line 8724 "asmparse.cpp" + break; + + case 848: /* manifestResDecl: _FILE dottedName AT_ int32 */ +#line 2067 "./asmparse.y" + { PASMM->SetManifestResFile((yyvsp[-2].string), (ULONG)(yyvsp[0].int32)); } +#line 8730 "asmparse.cpp" + break; + + case 849: /* manifestResDecl: _ASSEMBLY EXTERN_ dottedName */ +#line 2068 "./asmparse.y" + { PASMM->SetManifestResAsmRef((yyvsp[0].string)); } +#line 8736 "asmparse.cpp" + break; + + +#line 8740 "asmparse.cpp" + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; + yyerror (YY_("syntax error")); + } + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + /* Pop stack until we find a state that shifts the error token. */ + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + YY_ACCESSING_SYMBOL (yystate), yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturnlab; + + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturnlab; + + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + goto yyreturnlab; + + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + + return yyresult; +} + +#line 2073 "./asmparse.y" + + +#include "grammar_after.cpp" From 3bf3d70615de168936249a9a99f96434e74a06af Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 19:59:12 +0900 Subject: [PATCH 64/80] Fix asmparse build failure --- src/coreclr/ilasm/asmparse.y | 42 +- src/coreclr/ilasm/grammar_before.cpp | 3 + src/coreclr/ilasm/prebuilt/asmparse.cpp | 7239 ++++++++++++----------- 3 files changed, 3880 insertions(+), 3404 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index b4cd8dcedf963..cb256ae918ca7 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -154,6 +154,7 @@ %type sigArgs0 sigArgs1 sigArg type bound bounds1 bytes hexbytes nativeType marshalBlob initOpt compQstring caValue %type marshalClause %type fieldInit serInit fieldSerInit +%type constTypeArg %type f32seq f64seq i8seq i16seq i32seq i64seq boolSeq sqstringSeq classSeq objSeq %type simpleType %type tyArgs0 tyArgs1 tyArgs2 typeList typeListNotEmpty tyBound @@ -1263,6 +1264,45 @@ serInit : fieldSerInit { $$ = $1; } $$->insertInt8(ELEMENT_TYPE_SZARRAY); } ; +constTypeArg : FLOAT32_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*$3); + $$->appendInt32(*((__int32*)&f)); delete $3; } + | FLOAT64_ '(' float64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); + $$->appendInt64((__int64 *)$3); delete $3; } + | FLOAT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R4); + $$->appendInt32($3); } + | FLOAT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_R8); + $$->appendInt64((__int64 *)$3); delete $3; } + | INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I8); + $$->appendInt64((__int64 *)$3); delete $3; } + | INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I4); + $$->appendInt32($3); } + | INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I2); + $$->appendInt16($3); } + | INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_I1); + $$->appendInt8($3); } + | UNSIGNED_ INT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); + $$->appendInt64((__int64 *)$4); delete $4; } + | UNSIGNED_ INT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); + $$->appendInt32($4); } + | UNSIGNED_ INT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); + $$->appendInt16($4); } + | UNSIGNED_ INT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); + $$->appendInt8($4); } + | UINT64_ '(' int64 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U8); + $$->appendInt64((__int64 *)$3); delete $3; } + | UINT32_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U4); + $$->appendInt32($3); } + | UINT16_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U2); + $$->appendInt16($3); } + | UINT8_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_U1); + $$->appendInt8($3); } + | CHAR_ '(' int32 ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_CHAR); + $$->appendInt16($3); } + | BOOL_ '(' truefalse ')' { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_BOOLEAN); + $$->appendInt8($3);} + ; + f32seq : /* EMPTY */ { $$ = new BinStr(); } | f32seq float64 { $$ = $1; @@ -1686,7 +1726,7 @@ type : CLASS_ className { if($2 == PASM->m | OBJECT_ { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_OBJECT); } | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } - | CONST_ fieldInit { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } + | CONST_ constTypeArg { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } | type '&' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_BYREF); } diff --git a/src/coreclr/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp index 4418b02a944da..f71b6b44a3b67 100644 --- a/src/coreclr/ilasm/grammar_before.cpp +++ b/src/coreclr/ilasm/grammar_before.cpp @@ -52,6 +52,9 @@ static void corEmitInt(BinStr* buff, unsigned data); static void AppendStringWithLength(BinStr* pbs, _In_ __nullterminated char* sz); static void AppendFieldToCustomBlob(BinStr* pBlob, _In_ BinStr* pField); static unsigned corCountArgs(BinStr* args); +extern void yyerror(_In_ __nullterminated const char*); +extern Instr* SetupInstr(unsigned short); +extern int yylex(); bool bParsingByteArray = FALSE; int iOpcodeLen = 0; int iCallConv = 0; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index cd4cdbada63bd..aa3019f7f39d2 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -67,7 +67,7 @@ /* First part of user prologue. */ -#line 1 "./asmparse.y" +#line 1 "asmparse.y" // Licensed to the .NET Foundation under one or more agreements. @@ -412,12 +412,304 @@ extern int yydebug; }; typedef enum yytokentype yytoken_kind_t; #endif +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define ERROR_ 258 +#define BAD_COMMENT_ 259 +#define BAD_LITERAL_ 260 +#define ID 261 +#define DOTTEDNAME 262 +#define QSTRING 263 +#define SQSTRING 264 +#define INT32_T 265 +#define INT64_T 266 +#define FLOAT64 267 +#define HEXBYTE 268 +#define TYPEDEF_T 269 +#define TYPEDEF_M 270 +#define TYPEDEF_F 271 +#define TYPEDEF_TS 272 +#define TYPEDEF_MR 273 +#define TYPEDEF_CA 274 +#define DCOLON 275 +#define ELLIPSIS 276 +#define VOID_ 277 +#define BOOL_ 278 +#define CHAR_ 279 +#define UNSIGNED_ 280 +#define INT_ 281 +#define INT8_ 282 +#define INT16_ 283 +#define INT32_ 284 +#define INT64_ 285 +#define FLOAT_ 286 +#define FLOAT32_ 287 +#define FLOAT64_ 288 +#define BYTEARRAY_ 289 +#define UINT_ 290 +#define UINT8_ 291 +#define UINT16_ 292 +#define UINT32_ 293 +#define UINT64_ 294 +#define FLAGS_ 295 +#define CALLCONV_ 296 +#define MDTOKEN_ 297 +#define OBJECT_ 298 +#define STRING_ 299 +#define NULLREF_ 300 +#define DEFAULT_ 301 +#define CDECL_ 302 +#define VARARG_ 303 +#define STDCALL_ 304 +#define THISCALL_ 305 +#define FASTCALL_ 306 +#define CLASS_ 307 +#define BYREFLIKE_ 308 +#define TYPEDREF_ 309 +#define UNMANAGED_ 310 +#define FINALLY_ 311 +#define HANDLER_ 312 +#define CATCH_ 313 +#define FILTER_ 314 +#define FAULT_ 315 +#define EXTENDS_ 316 +#define IMPLEMENTS_ 317 +#define TO_ 318 +#define AT_ 319 +#define TLS_ 320 +#define TRUE_ 321 +#define FALSE_ 322 +#define _INTERFACEIMPL 323 +#define VALUE_ 324 +#define VALUETYPE_ 325 +#define NATIVE_ 326 +#define INSTANCE_ 327 +#define SPECIALNAME_ 328 +#define FORWARDER_ 329 +#define STATIC_ 330 +#define PUBLIC_ 331 +#define PRIVATE_ 332 +#define FAMILY_ 333 +#define FINAL_ 334 +#define SYNCHRONIZED_ 335 +#define INTERFACE_ 336 +#define SEALED_ 337 +#define NESTED_ 338 +#define ABSTRACT_ 339 +#define AUTO_ 340 +#define SEQUENTIAL_ 341 +#define EXPLICIT_ 342 +#define ANSI_ 343 +#define UNICODE_ 344 +#define AUTOCHAR_ 345 +#define IMPORT_ 346 +#define ENUM_ 347 +#define VIRTUAL_ 348 +#define NOINLINING_ 349 +#define AGGRESSIVEINLINING_ 350 +#define NOOPTIMIZATION_ 351 +#define AGGRESSIVEOPTIMIZATION_ 352 +#define UNMANAGEDEXP_ 353 +#define BEFOREFIELDINIT_ 354 +#define STRICT_ 355 +#define RETARGETABLE_ 356 +#define WINDOWSRUNTIME_ 357 +#define NOPLATFORM_ 358 +#define METHOD_ 359 +#define FIELD_ 360 +#define PINNED_ 361 +#define MODREQ_ 362 +#define MODOPT_ 363 +#define SERIALIZABLE_ 364 +#define PROPERTY_ 365 +#define TYPE_ 366 +#define ASSEMBLY_ 367 +#define FAMANDASSEM_ 368 +#define FAMORASSEM_ 369 +#define PRIVATESCOPE_ 370 +#define HIDEBYSIG_ 371 +#define NEWSLOT_ 372 +#define RTSPECIALNAME_ 373 +#define PINVOKEIMPL_ 374 +#define _CTOR 375 +#define _CCTOR 376 +#define LITERAL_ 377 +#define NOTSERIALIZED_ 378 +#define INITONLY_ 379 +#define REQSECOBJ_ 380 +#define CIL_ 381 +#define OPTIL_ 382 +#define MANAGED_ 383 +#define FORWARDREF_ 384 +#define PRESERVESIG_ 385 +#define RUNTIME_ 386 +#define INTERNALCALL_ 387 +#define _IMPORT 388 +#define NOMANGLE_ 389 +#define LASTERR_ 390 +#define WINAPI_ 391 +#define AS_ 392 +#define BESTFIT_ 393 +#define ON_ 394 +#define OFF_ 395 +#define CHARMAPERROR_ 396 +#define INSTR_NONE 397 +#define INSTR_VAR 398 +#define INSTR_I 399 +#define INSTR_I8 400 +#define INSTR_R 401 +#define INSTR_BRTARGET 402 +#define INSTR_METHOD 403 +#define INSTR_FIELD 404 +#define INSTR_TYPE 405 +#define INSTR_STRING 406 +#define INSTR_SIG 407 +#define INSTR_TOK 408 +#define INSTR_SWITCH 409 +#define _CLASS 410 +#define _NAMESPACE 411 +#define _METHOD 412 +#define _FIELD 413 +#define _DATA 414 +#define _THIS 415 +#define _BASE 416 +#define _NESTER 417 +#define _EMITBYTE 418 +#define _TRY 419 +#define _MAXSTACK 420 +#define _LOCALS 421 +#define _ENTRYPOINT 422 +#define _ZEROINIT 423 +#define _EVENT 424 +#define _ADDON 425 +#define _REMOVEON 426 +#define _FIRE 427 +#define _OTHER 428 +#define _PROPERTY 429 +#define _SET 430 +#define _GET 431 +#define _PERMISSION 432 +#define _PERMISSIONSET 433 +#define REQUEST_ 434 +#define DEMAND_ 435 +#define ASSERT_ 436 +#define DENY_ 437 +#define PERMITONLY_ 438 +#define LINKCHECK_ 439 +#define INHERITCHECK_ 440 +#define REQMIN_ 441 +#define REQOPT_ 442 +#define REQREFUSE_ 443 +#define PREJITGRANT_ 444 +#define PREJITDENY_ 445 +#define NONCASDEMAND_ 446 +#define NONCASLINKDEMAND_ 447 +#define NONCASINHERITANCE_ 448 +#define _LINE 449 +#define P_LINE 450 +#define _LANGUAGE 451 +#define _CUSTOM 452 +#define INIT_ 453 +#define _SIZE 454 +#define _PACK 455 +#define _VTABLE 456 +#define _VTFIXUP 457 +#define FROMUNMANAGED_ 458 +#define CALLMOSTDERIVED_ 459 +#define _VTENTRY 460 +#define RETAINAPPDOMAIN_ 461 +#define _FILE 462 +#define NOMETADATA_ 463 +#define _HASH 464 +#define _ASSEMBLY 465 +#define _PUBLICKEY 466 +#define _PUBLICKEYTOKEN 467 +#define ALGORITHM_ 468 +#define _VER 469 +#define _LOCALE 470 +#define EXTERN_ 471 +#define _MRESOURCE 472 +#define _MODULE 473 +#define _EXPORT 474 +#define LEGACY_ 475 +#define LIBRARY_ 476 +#define X86_ 477 +#define AMD64_ 478 +#define ARM_ 479 +#define ARM64_ 480 +#define MARSHAL_ 481 +#define CUSTOM_ 482 +#define SYSSTRING_ 483 +#define FIXED_ 484 +#define VARIANT_ 485 +#define CURRENCY_ 486 +#define SYSCHAR_ 487 +#define DECIMAL_ 488 +#define DATE_ 489 +#define BSTR_ 490 +#define TBSTR_ 491 +#define LPSTR_ 492 +#define LPWSTR_ 493 +#define LPTSTR_ 494 +#define OBJECTREF_ 495 +#define IUNKNOWN_ 496 +#define IDISPATCH_ 497 +#define STRUCT_ 498 +#define SAFEARRAY_ 499 +#define BYVALSTR_ 500 +#define LPVOID_ 501 +#define ANY_ 502 +#define ARRAY_ 503 +#define LPSTRUCT_ 504 +#define IIDPARAM_ 505 +#define IN_ 506 +#define OUT_ 507 +#define OPT_ 508 +#define _PARAM 509 +#define _OVERRIDE 510 +#define WITH_ 511 +#define NULL_ 512 +#define HRESULT_ 513 +#define CARRAY_ 514 +#define USERDEFINED_ 515 +#define RECORD_ 516 +#define FILETIME_ 517 +#define BLOB_ 518 +#define STREAM_ 519 +#define STORAGE_ 520 +#define STREAMED_OBJECT_ 521 +#define STORED_OBJECT_ 522 +#define BLOB_OBJECT_ 523 +#define CF_ 524 +#define CLSID_ 525 +#define VECTOR_ 526 +#define _SUBSYSTEM 527 +#define _CORFLAGS 528 +#define ALIGNMENT_ 529 +#define _IMAGEBASE 530 +#define _STACKRESERVE 531 +#define _TYPEDEF 532 +#define _TEMPLATE 533 +#define _TYPELIST 534 +#define _MSCORLIB 535 +#define P_DEFINE 536 +#define P_UNDEF 537 +#define P_IFDEF 538 +#define P_IFNDEF 539 +#define P_ELSE 540 +#define P_ENDIF 541 +#define P_INCLUDE 542 +#define CONSTRAINT_ 543 +#define CONST_ 544 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 15 "./asmparse.y" +#line 15 "asmparse.y" CorRegTypeAttr classAttr; CorMethodAttr methAttr; @@ -446,7 +738,7 @@ union YYSTYPE CustomDescr* cad; unsigned short opcode; -#line 450 "asmparse.cpp" +#line 742 "asmparse.cpp" }; typedef union YYSTYPE YYSTYPE; @@ -884,85 +1176,86 @@ enum yysymbol_kind_t YYSYMBOL_hexbytes = 415, /* hexbytes */ YYSYMBOL_fieldInit = 416, /* fieldInit */ YYSYMBOL_serInit = 417, /* serInit */ - YYSYMBOL_f32seq = 418, /* f32seq */ - YYSYMBOL_f64seq = 419, /* f64seq */ - YYSYMBOL_i64seq = 420, /* i64seq */ - YYSYMBOL_i32seq = 421, /* i32seq */ - YYSYMBOL_i16seq = 422, /* i16seq */ - YYSYMBOL_i8seq = 423, /* i8seq */ - YYSYMBOL_boolSeq = 424, /* boolSeq */ - YYSYMBOL_sqstringSeq = 425, /* sqstringSeq */ - YYSYMBOL_classSeq = 426, /* classSeq */ - YYSYMBOL_objSeq = 427, /* objSeq */ - YYSYMBOL_methodSpec = 428, /* methodSpec */ - YYSYMBOL_instr_none = 429, /* instr_none */ - YYSYMBOL_instr_var = 430, /* instr_var */ - YYSYMBOL_instr_i = 431, /* instr_i */ - YYSYMBOL_instr_i8 = 432, /* instr_i8 */ - YYSYMBOL_instr_r = 433, /* instr_r */ - YYSYMBOL_instr_brtarget = 434, /* instr_brtarget */ - YYSYMBOL_instr_method = 435, /* instr_method */ - YYSYMBOL_instr_field = 436, /* instr_field */ - YYSYMBOL_instr_type = 437, /* instr_type */ - YYSYMBOL_instr_string = 438, /* instr_string */ - YYSYMBOL_instr_sig = 439, /* instr_sig */ - YYSYMBOL_instr_tok = 440, /* instr_tok */ - YYSYMBOL_instr_switch = 441, /* instr_switch */ - YYSYMBOL_instr_r_head = 442, /* instr_r_head */ - YYSYMBOL_instr = 443, /* instr */ - YYSYMBOL_labels = 444, /* labels */ - YYSYMBOL_tyArgs0 = 445, /* tyArgs0 */ - YYSYMBOL_tyArgs1 = 446, /* tyArgs1 */ - YYSYMBOL_tyArgs2 = 447, /* tyArgs2 */ - YYSYMBOL_sigArgs0 = 448, /* sigArgs0 */ - YYSYMBOL_sigArgs1 = 449, /* sigArgs1 */ - YYSYMBOL_sigArg = 450, /* sigArg */ - YYSYMBOL_className = 451, /* className */ - YYSYMBOL_slashedName = 452, /* slashedName */ - YYSYMBOL_typeSpec = 453, /* typeSpec */ - YYSYMBOL_nativeType = 454, /* nativeType */ - YYSYMBOL_iidParamIndex = 455, /* iidParamIndex */ - YYSYMBOL_variantType = 456, /* variantType */ - YYSYMBOL_type = 457, /* type */ - YYSYMBOL_simpleType = 458, /* simpleType */ - YYSYMBOL_bounds1 = 459, /* bounds1 */ - YYSYMBOL_bound = 460, /* bound */ - YYSYMBOL_secDecl = 461, /* secDecl */ - YYSYMBOL_secAttrSetBlob = 462, /* secAttrSetBlob */ - YYSYMBOL_secAttrBlob = 463, /* secAttrBlob */ - YYSYMBOL_psetHead = 464, /* psetHead */ - YYSYMBOL_nameValPairs = 465, /* nameValPairs */ - YYSYMBOL_nameValPair = 466, /* nameValPair */ - YYSYMBOL_truefalse = 467, /* truefalse */ - YYSYMBOL_caValue = 468, /* caValue */ - YYSYMBOL_secAction = 469, /* secAction */ - YYSYMBOL_esHead = 470, /* esHead */ - YYSYMBOL_extSourceSpec = 471, /* extSourceSpec */ - YYSYMBOL_fileDecl = 472, /* fileDecl */ - YYSYMBOL_fileAttr = 473, /* fileAttr */ - YYSYMBOL_fileEntry = 474, /* fileEntry */ - YYSYMBOL_hashHead = 475, /* hashHead */ - YYSYMBOL_assemblyHead = 476, /* assemblyHead */ - YYSYMBOL_asmAttr = 477, /* asmAttr */ - YYSYMBOL_assemblyDecls = 478, /* assemblyDecls */ - YYSYMBOL_assemblyDecl = 479, /* assemblyDecl */ - YYSYMBOL_intOrWildcard = 480, /* intOrWildcard */ - YYSYMBOL_asmOrRefDecl = 481, /* asmOrRefDecl */ - YYSYMBOL_publicKeyHead = 482, /* publicKeyHead */ - YYSYMBOL_publicKeyTokenHead = 483, /* publicKeyTokenHead */ - YYSYMBOL_localeHead = 484, /* localeHead */ - YYSYMBOL_assemblyRefHead = 485, /* assemblyRefHead */ - YYSYMBOL_assemblyRefDecls = 486, /* assemblyRefDecls */ - YYSYMBOL_assemblyRefDecl = 487, /* assemblyRefDecl */ - YYSYMBOL_exptypeHead = 488, /* exptypeHead */ - YYSYMBOL_exportHead = 489, /* exportHead */ - YYSYMBOL_exptAttr = 490, /* exptAttr */ - YYSYMBOL_exptypeDecls = 491, /* exptypeDecls */ - YYSYMBOL_exptypeDecl = 492, /* exptypeDecl */ - YYSYMBOL_manifestResHead = 493, /* manifestResHead */ - YYSYMBOL_manresAttr = 494, /* manresAttr */ - YYSYMBOL_manifestResDecls = 495, /* manifestResDecls */ - YYSYMBOL_manifestResDecl = 496 /* manifestResDecl */ + YYSYMBOL_constTypeArg = 418, /* constTypeArg */ + YYSYMBOL_f32seq = 419, /* f32seq */ + YYSYMBOL_f64seq = 420, /* f64seq */ + YYSYMBOL_i64seq = 421, /* i64seq */ + YYSYMBOL_i32seq = 422, /* i32seq */ + YYSYMBOL_i16seq = 423, /* i16seq */ + YYSYMBOL_i8seq = 424, /* i8seq */ + YYSYMBOL_boolSeq = 425, /* boolSeq */ + YYSYMBOL_sqstringSeq = 426, /* sqstringSeq */ + YYSYMBOL_classSeq = 427, /* classSeq */ + YYSYMBOL_objSeq = 428, /* objSeq */ + YYSYMBOL_methodSpec = 429, /* methodSpec */ + YYSYMBOL_instr_none = 430, /* instr_none */ + YYSYMBOL_instr_var = 431, /* instr_var */ + YYSYMBOL_instr_i = 432, /* instr_i */ + YYSYMBOL_instr_i8 = 433, /* instr_i8 */ + YYSYMBOL_instr_r = 434, /* instr_r */ + YYSYMBOL_instr_brtarget = 435, /* instr_brtarget */ + YYSYMBOL_instr_method = 436, /* instr_method */ + YYSYMBOL_instr_field = 437, /* instr_field */ + YYSYMBOL_instr_type = 438, /* instr_type */ + YYSYMBOL_instr_string = 439, /* instr_string */ + YYSYMBOL_instr_sig = 440, /* instr_sig */ + YYSYMBOL_instr_tok = 441, /* instr_tok */ + YYSYMBOL_instr_switch = 442, /* instr_switch */ + YYSYMBOL_instr_r_head = 443, /* instr_r_head */ + YYSYMBOL_instr = 444, /* instr */ + YYSYMBOL_labels = 445, /* labels */ + YYSYMBOL_tyArgs0 = 446, /* tyArgs0 */ + YYSYMBOL_tyArgs1 = 447, /* tyArgs1 */ + YYSYMBOL_tyArgs2 = 448, /* tyArgs2 */ + YYSYMBOL_sigArgs0 = 449, /* sigArgs0 */ + YYSYMBOL_sigArgs1 = 450, /* sigArgs1 */ + YYSYMBOL_sigArg = 451, /* sigArg */ + YYSYMBOL_className = 452, /* className */ + YYSYMBOL_slashedName = 453, /* slashedName */ + YYSYMBOL_typeSpec = 454, /* typeSpec */ + YYSYMBOL_nativeType = 455, /* nativeType */ + YYSYMBOL_iidParamIndex = 456, /* iidParamIndex */ + YYSYMBOL_variantType = 457, /* variantType */ + YYSYMBOL_type = 458, /* type */ + YYSYMBOL_simpleType = 459, /* simpleType */ + YYSYMBOL_bounds1 = 460, /* bounds1 */ + YYSYMBOL_bound = 461, /* bound */ + YYSYMBOL_secDecl = 462, /* secDecl */ + YYSYMBOL_secAttrSetBlob = 463, /* secAttrSetBlob */ + YYSYMBOL_secAttrBlob = 464, /* secAttrBlob */ + YYSYMBOL_psetHead = 465, /* psetHead */ + YYSYMBOL_nameValPairs = 466, /* nameValPairs */ + YYSYMBOL_nameValPair = 467, /* nameValPair */ + YYSYMBOL_truefalse = 468, /* truefalse */ + YYSYMBOL_caValue = 469, /* caValue */ + YYSYMBOL_secAction = 470, /* secAction */ + YYSYMBOL_esHead = 471, /* esHead */ + YYSYMBOL_extSourceSpec = 472, /* extSourceSpec */ + YYSYMBOL_fileDecl = 473, /* fileDecl */ + YYSYMBOL_fileAttr = 474, /* fileAttr */ + YYSYMBOL_fileEntry = 475, /* fileEntry */ + YYSYMBOL_hashHead = 476, /* hashHead */ + YYSYMBOL_assemblyHead = 477, /* assemblyHead */ + YYSYMBOL_asmAttr = 478, /* asmAttr */ + YYSYMBOL_assemblyDecls = 479, /* assemblyDecls */ + YYSYMBOL_assemblyDecl = 480, /* assemblyDecl */ + YYSYMBOL_intOrWildcard = 481, /* intOrWildcard */ + YYSYMBOL_asmOrRefDecl = 482, /* asmOrRefDecl */ + YYSYMBOL_publicKeyHead = 483, /* publicKeyHead */ + YYSYMBOL_publicKeyTokenHead = 484, /* publicKeyTokenHead */ + YYSYMBOL_localeHead = 485, /* localeHead */ + YYSYMBOL_assemblyRefHead = 486, /* assemblyRefHead */ + YYSYMBOL_assemblyRefDecls = 487, /* assemblyRefDecls */ + YYSYMBOL_assemblyRefDecl = 488, /* assemblyRefDecl */ + YYSYMBOL_exptypeHead = 489, /* exptypeHead */ + YYSYMBOL_exportHead = 490, /* exportHead */ + YYSYMBOL_exptAttr = 491, /* exptAttr */ + YYSYMBOL_exptypeDecls = 492, /* exptypeDecls */ + YYSYMBOL_exptypeDecl = 493, /* exptypeDecl */ + YYSYMBOL_manifestResHead = 494, /* manifestResHead */ + YYSYMBOL_manresAttr = 495, /* manresAttr */ + YYSYMBOL_manifestResDecls = 496, /* manifestResDecls */ + YYSYMBOL_manifestResDecl = 497 /* manifestResDecl */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1290,16 +1583,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3842 +#define YYLAST 3784 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 309 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 188 +#define YYNNTS 189 /* YYNRULES -- Number of rules. */ -#define YYNRULES 851 +#define YYNRULES 869 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1603 +#define YYNSTATES 1672 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 544 @@ -1377,99 +1670,100 @@ static const yytype_int16 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 190, 190, 191, 194, 195, 196, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 223, 224, 227, 230, 231, 232, 233, 234, 235, - 238, 239, 242, 243, 246, 247, 249, 254, 255, 258, - 259, 260, 263, 266, 267, 270, 271, 272, 276, 277, - 278, 279, 280, 285, 286, 287, 288, 291, 294, 295, - 299, 300, 304, 305, 306, 307, 310, 311, 312, 314, - 317, 320, 326, 329, 330, 334, 340, 341, 343, 346, - 347, 353, 356, 357, 360, 364, 365, 373, 374, 375, - 376, 378, 380, 385, 386, 387, 394, 398, 399, 400, - 401, 402, 403, 406, 409, 413, 416, 419, 425, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 457, 458, 461, 462, - 465, 466, 469, 470, 474, 475, 478, 479, 482, 483, - 486, 487, 488, 489, 490, 491, 492, 495, 496, 499, - 502, 503, 506, 507, 508, 511, 512, 515, 518, 519, - 522, 526, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 547, 556, 557, 558, 563, 569, - 570, 571, 578, 583, 584, 585, 586, 587, 588, 589, - 590, 602, 604, 605, 606, 607, 608, 609, 610, 613, - 614, 617, 618, 621, 622, 626, 643, 649, 665, 670, - 671, 672, 675, 676, 677, 678, 681, 682, 683, 684, - 685, 686, 687, 688, 691, 694, 699, 703, 707, 709, - 711, 716, 717, 721, 722, 723, 726, 727, 730, 731, - 732, 733, 734, 735, 736, 737, 741, 747, 748, 749, - 752, 753, 757, 758, 759, 760, 761, 762, 763, 767, - 773, 774, 777, 778, 781, 784, 800, 801, 802, 803, - 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, - 814, 815, 816, 817, 818, 819, 820, 823, 826, 831, - 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, - 842, 843, 844, 845, 846, 849, 850, 851, 854, 855, - 856, 857, 858, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 879, - 883, 884, 887, 888, 889, 890, 892, 895, 896, 897, - 898, 899, 900, 901, 902, 903, 904, 905, 915, 925, - 927, 930, 937, 938, 943, 949, 950, 952, 973, 976, - 980, 983, 984, 987, 988, 989, 993, 998, 999, 1000, - 1001, 1005, 1006, 1008, 1012, 1016, 1021, 1025, 1029, 1030, - 1031, 1036, 1039, 1040, 1043, 1044, 1045, 1048, 1049, 1052, - 1053, 1056, 1057, 1062, 1063, 1064, 1065, 1072, 1079, 1086, - 1093, 1101, 1109, 1110, 1111, 1112, 1113, 1114, 1118, 1121, - 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141, - 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1159, 1162, 1163, - 1166, 1167, 1171, 1172, 1173, 1178, 1179, 1180, 1182, 1184, - 1186, 1187, 1188, 1192, 1196, 1200, 1204, 1208, 1212, 1216, - 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, 1252, 1256, - 1260, 1267, 1268, 1270, 1274, 1275, 1277, 1281, 1282, 1286, - 1287, 1290, 1291, 1294, 1295, 1298, 1299, 1303, 1304, 1305, - 1309, 1310, 1311, 1313, 1317, 1318, 1322, 1328, 1331, 1334, - 1337, 1340, 1343, 1346, 1354, 1357, 1360, 1363, 1366, 1369, - 1372, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1392, - 1393, 1394, 1401, 1409, 1417, 1423, 1429, 1435, 1439, 1440, - 1442, 1444, 1448, 1454, 1457, 1458, 1459, 1460, 1461, 1465, - 1466, 1469, 1470, 1473, 1474, 1478, 1479, 1482, 1483, 1486, - 1487, 1488, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, - 1502, 1508, 1515, 1516, 1519, 1520, 1521, 1522, 1526, 1527, - 1534, 1540, 1542, 1545, 1547, 1548, 1550, 1552, 1553, 1554, - 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, - 1565, 1566, 1567, 1568, 1570, 1572, 1577, 1582, 1585, 1587, - 1589, 1590, 1591, 1592, 1593, 1595, 1597, 1599, 1600, 1602, - 1605, 1609, 1610, 1611, 1612, 1614, 1615, 1616, 1617, 1618, - 1619, 1620, 1621, 1624, 1625, 1628, 1629, 1630, 1631, 1632, - 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, - 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, - 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, - 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, - 1673, 1674, 1675, 1676, 1680, 1686, 1687, 1688, 1689, 1690, - 1691, 1692, 1693, 1694, 1695, 1697, 1699, 1706, 1713, 1719, - 1725, 1740, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1764, - 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, - 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, 1788, - 1789, 1790, 1791, 1794, 1798, 1800, 1802, 1803, 1804, 1806, - 1815, 1816, 1817, 1820, 1823, 1828, 1829, 1833, 1834, 1837, - 1840, 1841, 1844, 1847, 1850, 1853, 1857, 1863, 1869, 1875, - 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, - 1893, 1894, 1895, 1896, 1897, 1901, 1902, 1905, 1908, 1910, - 1913, 1915, 1919, 1922, 1926, 1929, 1933, 1936, 1942, 1944, - 1947, 1948, 1951, 1952, 1955, 1958, 1961, 1962, 1963, 1964, - 1965, 1966, 1967, 1968, 1969, 1970, 1973, 1974, 1977, 1978, - 1979, 1982, 1983, 1986, 1987, 1989, 1990, 1991, 1992, 1995, - 1998, 2001, 2004, 2006, 2010, 2011, 2014, 2015, 2016, 2017, - 2020, 2023, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, - 2034, 2035, 2038, 2039, 2042, 2043, 2044, 2045, 2047, 2049, - 2050, 2053, 2054, 2058, 2059, 2060, 2063, 2064, 2067, 2068, - 2069, 2070 + 0, 191, 191, 192, 195, 196, 197, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 224, 225, 228, 231, 232, 233, 234, 235, 236, + 239, 240, 243, 244, 247, 248, 250, 255, 256, 259, + 260, 261, 264, 267, 268, 271, 272, 273, 277, 278, + 279, 280, 281, 286, 287, 288, 289, 292, 295, 296, + 300, 301, 305, 306, 307, 308, 311, 312, 313, 315, + 318, 321, 327, 330, 331, 335, 341, 342, 344, 347, + 348, 354, 357, 358, 361, 365, 366, 374, 375, 376, + 377, 379, 381, 386, 387, 388, 395, 399, 400, 401, + 402, 403, 404, 407, 410, 414, 417, 420, 426, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 458, 459, 462, 463, + 466, 467, 470, 471, 475, 476, 479, 480, 483, 484, + 487, 488, 489, 490, 491, 492, 493, 496, 497, 500, + 503, 504, 507, 508, 509, 512, 513, 516, 519, 520, + 523, 527, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 548, 557, 558, 559, 564, 570, + 571, 572, 579, 584, 585, 586, 587, 588, 589, 590, + 591, 603, 605, 606, 607, 608, 609, 610, 611, 614, + 615, 618, 619, 622, 623, 627, 644, 650, 666, 671, + 672, 673, 676, 677, 678, 679, 682, 683, 684, 685, + 686, 687, 688, 689, 692, 695, 700, 704, 708, 710, + 712, 717, 718, 722, 723, 724, 727, 728, 731, 732, + 733, 734, 735, 736, 737, 738, 742, 748, 749, 750, + 753, 754, 758, 759, 760, 761, 762, 763, 764, 768, + 774, 775, 778, 779, 782, 785, 801, 802, 803, 804, + 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, + 815, 816, 817, 818, 819, 820, 821, 824, 827, 832, + 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, + 843, 844, 845, 846, 847, 850, 851, 852, 855, 856, + 857, 858, 859, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 880, + 884, 885, 888, 889, 890, 891, 893, 896, 897, 898, + 899, 900, 901, 902, 903, 904, 905, 906, 916, 926, + 928, 931, 938, 939, 944, 950, 951, 953, 974, 977, + 981, 984, 985, 988, 989, 990, 994, 999, 1000, 1001, + 1002, 1006, 1007, 1009, 1013, 1017, 1022, 1026, 1030, 1031, + 1032, 1037, 1040, 1041, 1044, 1045, 1046, 1049, 1050, 1053, + 1054, 1057, 1058, 1063, 1064, 1065, 1066, 1073, 1080, 1087, + 1094, 1102, 1110, 1111, 1112, 1113, 1114, 1115, 1119, 1122, + 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, + 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1160, 1163, 1164, + 1167, 1168, 1172, 1173, 1174, 1179, 1180, 1181, 1183, 1185, + 1187, 1188, 1189, 1193, 1197, 1201, 1205, 1209, 1213, 1217, + 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, 1253, 1257, + 1261, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, + 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1307, + 1308, 1310, 1314, 1315, 1317, 1321, 1322, 1326, 1327, 1330, + 1331, 1334, 1335, 1338, 1339, 1343, 1344, 1345, 1349, 1350, + 1351, 1353, 1357, 1358, 1362, 1368, 1371, 1374, 1377, 1380, + 1383, 1386, 1394, 1397, 1400, 1403, 1406, 1409, 1412, 1416, + 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1432, 1433, 1434, + 1441, 1449, 1457, 1463, 1469, 1475, 1479, 1480, 1482, 1484, + 1488, 1494, 1497, 1498, 1499, 1500, 1501, 1505, 1506, 1509, + 1510, 1513, 1514, 1518, 1519, 1522, 1523, 1526, 1527, 1528, + 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1542, 1548, + 1555, 1556, 1559, 1560, 1561, 1562, 1566, 1567, 1574, 1580, + 1582, 1585, 1587, 1588, 1590, 1592, 1593, 1594, 1595, 1596, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, + 1607, 1608, 1610, 1612, 1617, 1622, 1625, 1627, 1629, 1630, + 1631, 1632, 1633, 1635, 1637, 1639, 1640, 1642, 1645, 1649, + 1650, 1651, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1661, 1664, 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, + 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, + 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, + 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, + 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, + 1715, 1716, 1720, 1726, 1727, 1728, 1729, 1730, 1731, 1732, + 1733, 1734, 1735, 1737, 1739, 1746, 1753, 1759, 1765, 1780, + 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1804, 1805, 1806, + 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, + 1817, 1818, 1819, 1820, 1821, 1824, 1825, 1828, 1829, 1830, + 1831, 1834, 1838, 1840, 1842, 1843, 1844, 1846, 1855, 1856, + 1857, 1860, 1863, 1868, 1869, 1873, 1874, 1877, 1880, 1881, + 1884, 1887, 1890, 1893, 1897, 1903, 1909, 1915, 1923, 1924, + 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, + 1935, 1936, 1937, 1941, 1942, 1945, 1948, 1950, 1953, 1955, + 1959, 1962, 1966, 1969, 1973, 1976, 1982, 1984, 1987, 1988, + 1991, 1992, 1995, 1998, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2013, 2014, 2017, 2018, 2019, 2022, + 2023, 2026, 2027, 2029, 2030, 2031, 2032, 2035, 2038, 2041, + 2044, 2046, 2050, 2051, 2054, 2055, 2056, 2057, 2060, 2063, + 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, + 2078, 2079, 2082, 2083, 2084, 2085, 2087, 2089, 2090, 2093, + 2094, 2098, 2099, 2100, 2103, 2104, 2107, 2108, 2109, 2110 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) -#if YYDEBUG || 1 +#if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; @@ -1553,23 +1847,24 @@ static const char *const yytname[] = "tryHead", "sehClause", "filterClause", "filterHead", "catchClause", "finallyClause", "faultClause", "handlerBlock", "dataDecl", "ddHead", "tls", "ddBody", "ddItemList", "ddItemCount", "ddItem", "fieldSerInit", - "bytearrayhead", "bytes", "hexbytes", "fieldInit", "serInit", "f32seq", - "f64seq", "i64seq", "i32seq", "i16seq", "i8seq", "boolSeq", - "sqstringSeq", "classSeq", "objSeq", "methodSpec", "instr_none", - "instr_var", "instr_i", "instr_i8", "instr_r", "instr_brtarget", - "instr_method", "instr_field", "instr_type", "instr_string", "instr_sig", - "instr_tok", "instr_switch", "instr_r_head", "instr", "labels", - "tyArgs0", "tyArgs1", "tyArgs2", "sigArgs0", "sigArgs1", "sigArg", - "className", "slashedName", "typeSpec", "nativeType", "iidParamIndex", - "variantType", "type", "simpleType", "bounds1", "bound", "secDecl", - "secAttrSetBlob", "secAttrBlob", "psetHead", "nameValPairs", - "nameValPair", "truefalse", "caValue", "secAction", "esHead", - "extSourceSpec", "fileDecl", "fileAttr", "fileEntry", "hashHead", - "assemblyHead", "asmAttr", "assemblyDecls", "assemblyDecl", - "intOrWildcard", "asmOrRefDecl", "publicKeyHead", "publicKeyTokenHead", - "localeHead", "assemblyRefHead", "assemblyRefDecls", "assemblyRefDecl", - "exptypeHead", "exportHead", "exptAttr", "exptypeDecls", "exptypeDecl", - "manifestResHead", "manresAttr", "manifestResDecls", "manifestResDecl", YY_NULLPTR + "bytearrayhead", "bytes", "hexbytes", "fieldInit", "serInit", + "constTypeArg", "f32seq", "f64seq", "i64seq", "i32seq", "i16seq", + "i8seq", "boolSeq", "sqstringSeq", "classSeq", "objSeq", "methodSpec", + "instr_none", "instr_var", "instr_i", "instr_i8", "instr_r", + "instr_brtarget", "instr_method", "instr_field", "instr_type", + "instr_string", "instr_sig", "instr_tok", "instr_switch", "instr_r_head", + "instr", "labels", "tyArgs0", "tyArgs1", "tyArgs2", "sigArgs0", + "sigArgs1", "sigArg", "className", "slashedName", "typeSpec", + "nativeType", "iidParamIndex", "variantType", "type", "simpleType", + "bounds1", "bound", "secDecl", "secAttrSetBlob", "secAttrBlob", + "psetHead", "nameValPairs", "nameValPair", "truefalse", "caValue", + "secAction", "esHead", "extSourceSpec", "fileDecl", "fileAttr", + "fileEntry", "hashHead", "assemblyHead", "asmAttr", "assemblyDecls", + "assemblyDecl", "intOrWildcard", "asmOrRefDecl", "publicKeyHead", + "publicKeyTokenHead", "localeHead", "assemblyRefHead", + "assemblyRefDecls", "assemblyRefDecl", "exptypeHead", "exportHead", + "exptAttr", "exptypeDecls", "exptypeDecl", "manifestResHead", + "manresAttr", "manifestResDecls", "manifestResDecl", YY_NULLPTR }; static const char * @@ -1579,12 +1874,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-1314) +#define YYPACT_NINF (-1398) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-563) +#define YYTABLE_NINF (-581) #define yytable_value_is_error(Yyn) \ 0 @@ -1593,167 +1888,174 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -1314, 962, -1314, -1314, -114, 512, -1314, -140, 123, 3127, - 3127, -1314, -1314, 164, 703, -50, -49, -3, 84, -1314, - 216, 319, 319, 197, 197, 1929, 54, -1314, 512, 512, - 512, 512, -1314, -1314, 266, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, 341, 341, -1314, -1314, -1314, -1314, 341, 80, - -1314, 301, 125, -1314, -1314, -1314, -1314, 498, -1314, 341, - 319, -1314, -1314, 158, 181, 190, 211, -1314, -1314, -1314, - -1314, -1314, 230, 319, -1314, -1314, -1314, 253, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, 2255, 69, 244, -1314, -1314, 234, 247, - -1314, -1314, 502, 753, 753, 2161, 131, -1314, 3201, -1314, - -1314, 249, 319, 319, 251, -1314, 683, 559, 512, 230, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 3201, - -1314, -1314, -1314, 839, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, 534, -1314, 504, 534, - 387, -1314, 2550, -1314, -1314, -1314, 1781, 50, 42, 230, - 427, 435, -1314, 438, 1460, 448, 270, 472, -1314, 534, - 47, 230, 230, 230, -1314, -1314, 300, 591, 314, 336, - -1314, 3319, 2255, 572, -1314, 3677, 2513, 334, 136, 302, - 304, 326, 332, 352, 346, 628, 351, -1314, -1314, 341, - 358, 45, -1314, -1314, -1314, -1314, 660, 512, 370, 3040, - 381, 66, -1314, 753, -1314, 105, 921, -1314, 390, 215, - 396, 688, 319, 319, -1314, -1314, -1314, -1314, -1314, -1314, - 415, -1314, -1314, 85, 1419, -1314, 417, -1314, -1314, -18, - 683, -1314, -1314, -1314, -1314, 499, -1314, -1314, -1314, -1314, - 230, -1314, -1314, -43, 230, 921, -1314, -1314, -1314, -1314, - -1314, 534, -1314, 704, -1314, -1314, -1314, -1314, 1731, 466, - 467, 1027, 474, 479, 481, 500, 503, 510, 517, 529, - 539, 551, -1314, 396, -1314, 341, -1314, 512, 507, 83, - 547, 694, 230, -1314, 512, 512, 512, -1314, 3201, 512, - 512, -1314, 558, 560, 512, 48, 3201, -1314, -1314, 444, - 534, 396, -1314, -1314, -1314, -1314, 3180, 561, -1314, -1314, - -1314, -1314, -1314, -1314, 751, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -63, -1314, - 2255, -1314, 3359, 600, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, 602, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, 319, -1314, 319, - -1314, -1314, -1314, 319, 540, -32, 2324, -1314, -1314, -1314, - 570, -1314, -1314, -132, -1314, -1314, -1314, -1314, 873, 224, - -1314, -1314, 312, 319, 197, 209, 312, 1460, 1843, 2255, - 236, 753, 2161, 609, 341, -1314, -1314, -1314, 614, 319, - 319, -1314, 319, -1314, 319, -1314, 197, -1314, 269, -1314, - 269, -1314, -1314, 557, 627, 253, 629, -1314, -1314, -1314, - 319, 319, 1183, 1302, 1066, 902, -1314, -1314, -1314, 964, - 230, 230, -1314, 616, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, 633, 58, -1314, - 512, 95, 3201, 932, 651, -1314, 2397, -1314, 941, 662, - 665, 667, 1460, -1314, -1314, 396, -1314, -1314, 74, 103, - 675, 948, -1314, -1314, 770, -33, -1314, 512, -1314, -1314, - 103, 968, 241, 319, 707, 713, 714, 716, 319, 319, - 319, 197, 747, 579, 319, 319, 319, 197, 721, 173, - 512, 512, 512, 230, -1314, 230, 230, 230, 1626, 230, - 230, 2255, 2255, 230, -1314, -1314, 1015, 4, -1314, 736, - 757, 921, -1314, -1314, -1314, 319, -1314, -1314, -1314, -1314, - -1314, -1314, 792, -1314, 759, -1314, 947, -1314, -1314, -1314, - 319, 319, -1314, -35, 2466, -1314, -1314, -1314, -1314, 773, - -1314, -1314, 774, 777, -1314, -1314, -1314, -1314, 778, 319, - 932, 2877, -1314, -1314, 769, 319, 91, 108, 319, 753, - 1059, -1314, 787, 39, 2678, -1314, 2255, -1314, -1314, -1314, - 873, 6, 224, 6, 6, 6, 1020, 1023, -1314, -1314, - -1314, -1314, -1314, -1314, 798, 799, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, 1731, -1314, 801, 396, 341, - 3201, -1314, 312, 802, 932, 804, 788, 814, 818, 819, - 820, 826, -1314, 628, 827, -1314, 821, 111, 884, 828, - 51, 70, -1314, -1314, -1314, -1314, -1314, -1314, 341, 341, - -1314, 829, 833, -1314, 341, -1314, 341, -1314, 855, 72, - 512, 908, -1314, -1314, -1314, -1314, 512, 925, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 319, 3262, - 26, 208, 512, 995, 41, 847, 853, -1314, 631, 857, - 862, 867, -1314, 1152, -1314, -1314, 864, 874, 2606, 3150, - 871, 875, 463, 544, 341, 512, 230, 512, -1314, -1314, - 881, 886, 319, 319, 319, 197, 898, 899, 900, 904, - 905, 910, 912, 913, 914, 915, 916, 922, -1314, 512, - 270, 270, 270, 876, 933, 934, 319, 146, -1314, -1314, - 3201, 935, 903, -1314, -1314, -1314, -1314, 1164, -1314, -1314, - 258, 139, 926, 2255, 2255, 2092, 919, -1314, -1314, 660, - 124, 134, 753, 1185, -1314, -1314, -1314, 2841, -1314, 936, - 73, 1040, 61, 846, 319, 917, 319, 230, 319, 88, - 940, 3201, 463, 39, -1314, 2877, 937, 943, -1314, -1314, - -1314, -1314, 312, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, 253, 319, 319, 197, 103, 1230, 932, 955, 618, - 960, 961, 965, -1314, 168, 957, -1314, 957, 957, 957, - 957, 957, -1314, -1314, 319, -1314, 319, 319, 963, -1314, - -1314, 953, 969, 396, 970, 971, 973, 975, 976, 981, - 319, 512, -1314, 230, 512, 57, 512, 982, -1314, -1314, - -1314, -1314, 909, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, 984, 1017, 1030, -1314, 1043, - 997, 18, 1274, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, 984, 984, -1314, 1818, -1314, -1314, -1314, - 1002, 341, 121, 253, 1001, 512, 118, -1314, 932, 1011, - 1005, 1014, -1314, 2397, -1314, 126, -1314, 354, 468, 1077, - 501, 511, 531, 536, 584, 594, 595, 615, 623, 647, - 648, 671, 674, -1314, 1279, -1314, -1314, 319, 1003, 39, - 39, 230, 675, -1314, -1314, 253, -1314, -1314, -1314, 1012, - 230, 230, -1314, -1314, 1013, 1016, 1019, 1021, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - 270, 39, -1314, -1314, -1314, -1314, 921, -1314, 319, 1024, - 1164, 2255, -1314, 2255, 194, 512, -1314, -1314, 1113, -1314, - -1314, 564, 512, -1314, -1314, 3201, 230, 319, 230, 319, - 218, 3201, 463, 3405, 851, 1725, -1314, 1339, -1314, 932, - 2014, 1028, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, 1007, 1018, -1314, 1032, 1033, 1034, 1037, 1029, - 463, -1314, 1181, 1039, 1042, 2255, 1001, 1731, -1314, 1047, - 846, -1314, 1319, 1281, 1282, -1314, -1314, 1050, 1058, 512, - 679, -1314, 39, 312, 312, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, 135, 1347, -1314, -1314, 51, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, 1068, 270, 230, 319, 230, - -1314, -1314, -1314, -1314, -1314, -1314, 1112, -1314, -1314, -1314, - -1314, 932, 1067, 1069, -1314, -1314, -1314, -1314, -1314, -1314, - 956, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 264, -1314, - 49, 31, -1314, -1314, 1781, -1314, 1070, 396, -1314, 1072, - -1314, -1314, -1314, -1314, 1079, -1314, -1314, -1314, -1314, 396, - 319, 319, 695, 700, 701, 744, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 3676, 319, 207, 319, - 553, 319, -1314, -1314, -1314, 2697, 1071, -1314, 1074, 1076, - 1078, 1080, -1314, 1209, -1314, -1314, -1314, -1314, 1081, 1082, - 319, -1314, 512, 1083, 1089, -1314, 792, -1314, 194, 1460, - -1314, 230, 58, 1085, 1086, 2255, 1731, 1132, -1314, 1460, - 1460, 1460, 1460, -1314, -1314, -1314, -1314, -1314, -1314, 1460, - 1460, 1460, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 396, - -1314, 319, 476, 524, -1314, -1314, -1314, -1314, 3262, 1092, - 253, -1314, 1102, -1314, -1314, 1380, -1314, 253, -1314, 253, - 319, -1314, -1314, 230, -1314, 1105, -1314, -1314, -1314, 319, - -1314, 1100, -1314, -1314, 1107, 384, 319, 319, -1314, -1314, - -1314, -1314, -1314, -1314, 932, 1108, -1314, -1314, 319, -1314, - -68, -1314, 319, 793, -1314, 1044, 1118, 1110, 1111, 319, - 319, 319, 319, 1119, 1121, 1122, 1123, 1124, 1127, 1129, - 1130, 1131, 1134, 1116, 1135, 1136, 1141, 1138, 1143, 1409, - 1149, 1153, -1314, 385, -1314, 163, -1314, 1157, -1314, -1314, - 39, 39, -1314, -1314, -1314, 1158, 194, -1314, 2255, -1314, - -1314, 428, -1314, 1167, -1314, 1452, 753, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, 2729, 1180, -1314, -1314, -1314, -1314, - 1186, 1182, -1314, 2255, 463, -1314, -1314, -1314, -1314, 1470, - 51, 319, 932, 1184, 1187, 396, -1314, 1191, 319, -1314, - 1190, 1177, 1192, 1194, 1199, 1402, -1314, -1314, 1208, 1210, - 1204, 1218, 1219, 1220, 1214, 1215, 1226, 1227, 1229, 1233, - 1234, 1235, 1236, 1238, -1314, 1239, -1314, -1314, 1240, -1314, - 1241, -1314, 1243, 1532, -1314, 1242, 755, -1314, 1247, 1248, - -1314, -1314, -1314, 39, 2255, 463, 3201, -1314, -1314, -1314, - 39, -1314, 1244, -1314, 1249, 1252, 413, -1314, 3593, -1314, - 1251, -1314, 319, 319, 319, -1314, -1314, -1314, -1314, 1257, - 1259, 1260, 1264, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, 3676, - -1314, -1314, 1271, -1314, 1244, 1731, 1272, 1270, 1277, -1314, - 51, -1314, 932, -1314, 121, -1314, 1278, 1286, 1294, 170, - 64, -1314, -1314, -1314, -1314, 97, 100, 128, 144, 182, - 179, 140, 165, 172, 189, 848, 77, 432, -1314, 1001, - 1280, 1553, -1314, 39, -1314, 440, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, 183, 185, 203, 193, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - 1568, -1314, -1314, -1314, 39, 463, 2902, 1295, 932, -1314, - -1314, -1314, -1314, -1314, 1298, 1283, 1300, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, 697, 1340, 39, 319, -1314, 1493, 1304, - 1305, 753, -1314, -1314, 3201, 1731, 1578, 463, 1244, 1307, - 39, 1309, -1314 + -1398, 2337, -1398, -1398, -166, 656, -1398, -196, 98, 2579, + 2579, -1398, -1398, 127, 819, -164, -124, -66, 37, -1398, + 308, 245, 245, 319, 319, 1896, 32, -1398, 656, 656, + 656, 656, -1398, -1398, 349, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, 392, 392, -1398, -1398, -1398, -1398, 392, 74, + -1398, 322, 128, -1398, -1398, -1398, -1398, 682, -1398, 392, + 245, -1398, -1398, 131, 146, 149, 174, -1398, -1398, -1398, + -1398, -1398, 140, 245, -1398, -1398, -1398, 346, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, 2222, 40, 201, -1398, -1398, 147, 180, + -1398, -1398, 694, 524, 524, 2128, 198, -1398, 3124, -1398, + -1398, 251, 245, 245, 152, -1398, 921, 555, 656, 140, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3124, + -1398, -1398, -1398, 1041, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, 142, -1398, 474, 142, + 284, -1398, 1810, -1398, -1398, -1398, 2811, 54, 36, 140, + 411, 422, -1398, 431, 1304, 438, 277, 527, -1398, 142, + 81, 140, 140, 140, -1398, -1398, 291, 586, 311, 334, + -1398, 3572, 2222, 621, -1398, 3627, 2534, 313, 181, 283, + 306, 330, 344, 355, 373, 743, 379, -1398, -1398, 392, + 424, 68, -1398, -1398, -1398, -1398, 521, 656, 456, 2914, + 420, 132, -1398, 524, -1398, 78, 640, -1398, 445, 214, + 469, 760, 245, 245, -1398, -1398, -1398, -1398, -1398, -1398, + 468, -1398, -1398, 75, 1376, -1398, 480, -1398, -1398, -27, + 921, -1398, -1398, -1398, -1398, 567, -1398, -1398, -1398, -1398, + 140, -1398, -1398, 62, 140, 640, -1398, -1398, -1398, -1398, + -1398, 142, -1398, 780, -1398, -1398, -1398, -1398, 1698, 526, + 534, 1106, 540, 543, 559, 595, 607, 615, 627, 634, + 645, 647, -1398, 656, 516, 120, 578, 583, 140, -1398, + 656, 656, 656, -1398, 3124, 656, 656, -1398, 652, 657, + 656, 47, 3124, -1398, -1398, 597, 142, 469, -1398, -1398, + -1398, -1398, 3117, 662, -1398, -1398, -1398, -1398, -1398, -1398, + 823, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -55, -1398, 2222, -1398, 3301, 668, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, 674, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, 245, -1398, 245, -1398, -1398, -1398, 245, + 655, -11, 2291, -1398, -1398, -1398, 667, -1398, -1398, 5, + -1398, -1398, -1398, -1398, 790, 173, -1398, -1398, 604, 245, + 319, 248, 604, 1304, 1088, 2222, 404, 524, 2128, 681, + 392, -1398, -1398, -1398, 691, 245, 245, -1398, 245, -1398, + 245, -1398, 319, -1398, 224, -1398, 224, -1398, -1398, 699, + 704, 346, 706, -1398, -1398, -1398, 245, 245, 1244, 1263, + 1479, 598, -1398, -1398, -1398, 980, 140, 140, -1398, 709, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, 714, 88, -1398, 656, 125, 3124, 1009, + 729, -1398, 2364, -1398, 1013, 732, 733, 741, 1304, -1398, + -1398, 469, -1398, -1398, 95, 42, 737, 1020, -1398, -1398, + 832, 105, -1398, 656, -1398, -1398, 42, 1022, 446, 245, + 749, 750, 751, 753, 245, 245, 245, 319, 370, 882, + 245, 245, 245, 319, 193, 656, 656, 656, 140, -1398, + 140, 140, 140, 1593, 140, 140, 2222, 2222, 140, -1398, + -1398, 1034, 6, -1398, 759, 769, 640, -1398, -1398, -1398, + 245, -1398, -1398, -1398, -1398, -1398, -1398, 271, -1398, 770, + -1398, 961, -1398, -1398, -1398, 245, 245, -1398, -4, 2433, + -1398, -1398, -1398, -1398, 783, -1398, -1398, 787, 791, -1398, + -1398, -1398, -1398, 792, 245, 1009, 3018, -1398, -1398, 779, + 245, 124, 136, 245, 524, 1077, -1398, 803, 71, 2632, + -1398, 2222, -1398, -1398, -1398, 790, 58, 173, 58, 58, + 58, 1039, 1040, -1398, -1398, -1398, -1398, -1398, -1398, 812, + 813, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + 1698, -1398, 824, 469, 392, 3124, -1398, 604, 826, 1009, + 827, 828, 833, 841, 842, 843, 852, -1398, 743, 853, + -1398, 848, 49, 940, 857, 30, 41, -1398, -1398, -1398, + -1398, -1398, -1398, 392, 392, -1398, 858, 866, -1398, 392, + -1398, 392, -1398, 870, 89, 656, 950, -1398, -1398, -1398, + -1398, 656, 954, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, 245, 3204, 0, 231, 656, 972, -9, + 875, 879, -1398, 531, 886, 889, 901, -1398, 1187, -1398, + -1398, 900, 909, 1218, 3073, 906, 907, 535, 593, 392, + 656, 140, 656, -1398, -1398, 915, 918, 245, 245, 245, + 319, 922, 929, 930, 939, 941, 942, 943, 944, 962, + 963, 968, 969, 656, 277, 277, 277, 971, 976, 978, + 245, 205, -1398, -1398, 3124, 979, 981, -1398, -1398, -1398, + -1398, 1177, -1398, -1398, 606, 63, 934, 2222, 2222, 2059, + 878, -1398, -1398, 521, 161, 203, 524, 1260, -1398, -1398, + -1398, 2715, -1398, 985, -17, 2667, 221, 928, 245, 983, + 245, 140, 245, 343, 984, 3124, 535, 71, -1398, 3018, + 989, 993, -1398, -1398, -1398, -1398, 604, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, 346, 245, 245, 319, 42, + 1267, 1009, 995, 563, 996, 999, 997, -1398, 412, 998, + -1398, 998, 998, 998, 998, 998, -1398, -1398, 245, -1398, + 245, 245, 1003, -1398, -1398, 990, 1011, 469, 1012, 1014, + 1016, 1017, 1018, 1019, 245, 656, -1398, 140, 656, 24, + 656, 1021, -1398, -1398, -1398, -1398, 774, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1025, + 1070, 1086, -1398, 1076, 1029, -57, 1302, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1025, 1025, -1398, + 1785, -1398, -1398, -1398, 1030, 392, 250, 346, 1032, 656, + 491, -1398, 1009, 1042, 1033, 1044, -1398, 2364, -1398, 79, + -1398, 418, 432, 1133, 479, 499, 525, 532, 545, 564, + 576, 577, 608, 617, 618, 626, 639, -1398, 1371, -1398, + 392, -1398, 245, 1045, 71, 71, 140, 737, -1398, -1398, + 346, -1398, -1398, -1398, 1036, 140, 140, -1398, -1398, 1046, + 1048, 1053, 1057, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, 277, 71, -1398, -1398, -1398, + -1398, 640, -1398, 245, 1059, 1177, 2222, -1398, 2222, 351, + 656, -1398, -1398, 1158, -1398, -1398, 659, 656, -1398, -1398, + 3124, 140, 245, 140, 245, 396, 3124, 535, 3347, 528, + 804, -1398, 1986, -1398, 1009, 3165, 1061, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1054, 1056, -1398, + 1063, 1064, 1065, 1066, 1062, 535, -1398, 1230, 1068, 1069, + 2222, 1032, 1698, -1398, 1074, 928, -1398, 1350, 1310, 1312, + -1398, -1398, 1082, 1083, 656, 663, -1398, 71, 604, 604, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 50, 1372, + -1398, -1398, 30, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + 1084, 277, 140, 245, 140, -1398, -1398, -1398, -1398, -1398, + -1398, 1134, -1398, -1398, -1398, -1398, 1009, 1089, 1090, -1398, + -1398, -1398, -1398, -1398, -1398, 1024, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, 486, -1398, 97, 34, -1398, -1398, 2178, + -1398, 1092, 469, -1398, 1097, -1398, -1398, -1398, -1398, 1104, + -1398, -1398, -1398, -1398, 469, 446, 245, 245, 245, 665, + 671, 679, 686, 245, 245, 245, 245, 245, 245, 319, + 245, 370, 245, 882, 245, 245, 245, 245, 245, 245, + 245, 319, 245, 3315, 245, 223, 245, 171, 245, -1398, + -1398, -1398, 2533, 1099, 1107, -1398, 1114, 1115, 1121, 1122, + -1398, 1256, -1398, -1398, -1398, -1398, 1128, 1130, 245, -1398, + 656, 1131, 1136, -1398, 271, -1398, 351, 1304, -1398, 140, + 88, 1135, 1137, 2222, 1698, 1175, -1398, 1304, 1304, 1304, + 1304, -1398, -1398, -1398, -1398, -1398, -1398, 1304, 1304, 1304, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, 469, -1398, 245, + 556, 713, -1398, -1398, -1398, -1398, 3204, 1132, 346, -1398, + 1141, -1398, -1398, 1416, -1398, 346, -1398, 346, 245, -1398, + -1398, 140, -1398, 1142, -1398, -1398, -1398, 245, -1398, 1138, + -1398, -1398, 1145, 440, 245, 245, -1398, -1398, -1398, -1398, + -1398, -1398, 1009, 1139, -1398, -1398, 245, -1398, -119, 1149, + 1154, 1179, 1155, 1156, 1157, 1159, 1161, 1162, 1166, 1167, + 1169, 1170, -1398, 469, -1398, -1398, 245, 755, -1398, 1496, + 1176, 1144, 1171, 1174, 1186, 245, 245, 245, 245, 245, + 245, 319, 245, 1183, 1188, 1191, 1189, 1194, 1192, 1195, + 1193, 1198, 1199, 1206, 1211, 1213, 1210, 1215, 1212, 1217, + 1214, 1220, 1222, 1221, 1223, 1236, 1233, 1238, 1243, 1240, + 1246, 1457, 1247, 1251, -1398, 255, -1398, 212, -1398, -1398, + 1250, -1398, -1398, 71, 71, -1398, -1398, -1398, 1257, 351, + -1398, 2222, -1398, -1398, 602, -1398, 1180, -1398, 1535, 524, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3328, 1261, -1398, + -1398, -1398, -1398, 1262, 1264, -1398, 2222, 535, -1398, -1398, + -1398, -1398, 1547, 30, 245, 1009, 1265, 1266, 469, -1398, + 1268, 245, -1398, 1269, 1272, 1274, 1276, 1277, 1259, 1270, + 1281, 1282, 1586, -1398, -1398, -1398, 1285, -1398, 1291, 1292, + 1287, 1293, 1290, 1295, 1294, 1296, 1297, -1398, 1298, -1398, + 1300, -1398, 1301, -1398, 1303, -1398, -1398, 1313, -1398, -1398, + 1314, -1398, 1316, -1398, 1318, -1398, 1329, -1398, 1332, -1398, + 1333, -1398, -1398, 1338, -1398, 1342, -1398, 1344, 1563, -1398, + 1341, 689, -1398, 1346, 1347, -1398, -1398, -1398, 71, 2222, + 535, 3124, -1398, -1398, -1398, 71, -1398, 1345, -1398, 1355, + 1352, 328, -1398, 3535, -1398, 1349, -1398, 245, 245, 245, + -1398, -1398, -1398, -1398, -1398, 1356, -1398, 1365, -1398, 1374, + -1398, 1375, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3315, -1398, + -1398, 1354, -1398, 1345, 1698, 1377, 1368, 1379, -1398, 30, + -1398, 1009, -1398, 250, -1398, 1382, 1383, 1384, 185, 83, + -1398, -1398, -1398, -1398, 108, 134, 137, 111, 195, 233, + 144, 162, 182, 115, 1952, 72, 574, -1398, 1032, 1388, + 1651, -1398, 71, -1398, 612, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, 187, 188, 190, 154, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1663, + -1398, -1398, -1398, 71, 535, 1173, 1389, 1009, -1398, -1398, + -1398, -1398, -1398, 1391, 1393, 1395, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, 697, 1436, 71, 245, -1398, 1589, 1398, 1399, + 524, -1398, -1398, 3124, 1698, 1678, 535, 1345, 1407, 71, + 1410, -1398 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1762,214 +2064,221 @@ static const yytype_int16 yypact[] = static const yytype_int16 yydefact[] = { 2, 0, 1, 86, 106, 0, 269, 213, 394, 0, - 0, 765, 766, 0, 226, 0, 0, 780, 786, 843, + 0, 783, 784, 0, 226, 0, 0, 798, 804, 861, 93, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 58, 59, 0, 61, 3, 25, 26, 27, 84, 85, 438, 438, 19, 17, 10, 9, 438, 0, 109, 136, 0, 7, 276, 340, 8, 0, 18, 438, - 0, 11, 12, 0, 0, 0, 0, 822, 37, 40, - 38, 39, 105, 0, 193, 395, 396, 393, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, - 762, 763, 764, 0, 0, 34, 220, 221, 0, 0, + 0, 11, 12, 0, 0, 0, 0, 840, 37, 40, + 38, 39, 105, 0, 193, 395, 396, 393, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 0, 0, 34, 220, 221, 0, 0, 227, 228, 233, 226, 226, 0, 62, 72, 0, 224, - 219, 0, 0, 0, 0, 786, 0, 0, 0, 94, - 42, 20, 21, 44, 43, 23, 24, 558, 716, 0, - 693, 701, 699, 0, 702, 703, 704, 705, 706, 707, - 712, 713, 714, 715, 675, 700, 0, 692, 0, 0, - 0, 496, 0, 559, 560, 561, 0, 0, 0, 562, - 0, 0, 240, 0, 226, 0, 556, 0, 697, 30, + 219, 0, 0, 0, 0, 804, 0, 0, 0, 94, + 42, 20, 21, 44, 43, 23, 24, 576, 734, 0, + 711, 719, 717, 0, 720, 721, 722, 723, 724, 725, + 730, 731, 732, 733, 693, 718, 0, 710, 0, 0, + 0, 514, 0, 577, 578, 579, 0, 0, 0, 580, + 0, 0, 240, 0, 226, 0, 574, 0, 715, 30, 53, 55, 56, 57, 60, 440, 0, 439, 0, 0, 2, 0, 0, 138, 140, 226, 0, 0, 401, 401, 401, 401, 401, 401, 0, 0, 0, 391, 398, 438, - 0, 768, 796, 814, 832, 846, 0, 0, 0, 0, - 0, 0, 557, 226, 564, 726, 567, 32, 0, 0, - 728, 0, 0, 0, 229, 230, 231, 232, 222, 223, - 0, 74, 73, 0, 0, 104, 0, 22, 781, 782, - 0, 787, 788, 789, 791, 0, 792, 793, 794, 795, - 785, 844, 845, 841, 95, 698, 708, 709, 710, 711, - 674, 0, 677, 0, 694, 696, 238, 239, 0, 0, + 0, 786, 814, 832, 850, 864, 0, 0, 0, 0, + 0, 0, 575, 226, 582, 744, 585, 32, 0, 0, + 746, 0, 0, 0, 229, 230, 231, 232, 222, 223, + 0, 74, 73, 0, 0, 104, 0, 22, 799, 800, + 0, 805, 806, 807, 809, 0, 810, 811, 812, 813, + 803, 862, 863, 859, 95, 716, 726, 727, 728, 729, + 692, 0, 695, 0, 712, 714, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 696, 0, 0, 0, 0, 0, 709, 707, + 0, 0, 0, 235, 0, 0, 0, 701, 0, 0, + 0, 737, 559, 700, 699, 0, 30, 54, 65, 441, + 69, 103, 0, 0, 112, 133, 110, 111, 114, 115, + 0, 116, 117, 118, 119, 120, 121, 122, 123, 113, + 132, 125, 124, 134, 148, 137, 0, 108, 0, 0, + 282, 277, 278, 279, 280, 281, 285, 283, 293, 284, + 286, 287, 288, 289, 290, 291, 292, 0, 294, 318, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 0, 376, 0, 339, 347, 348, 0, + 0, 0, 0, 369, 6, 354, 0, 356, 355, 0, + 341, 362, 340, 343, 0, 0, 349, 529, 0, 0, + 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, + 438, 350, 352, 353, 0, 0, 0, 417, 0, 416, + 0, 415, 0, 414, 0, 412, 0, 413, 437, 0, + 400, 0, 0, 745, 795, 785, 0, 0, 0, 0, + 0, 0, 843, 842, 841, 0, 838, 41, 214, 0, + 200, 194, 195, 196, 197, 202, 203, 204, 205, 199, + 206, 207, 198, 0, 0, 392, 0, 0, 0, 0, + 0, 754, 748, 753, 0, 35, 0, 0, 226, 76, + 70, 63, 315, 316, 737, 317, 557, 0, 97, 801, + 797, 830, 808, 0, 694, 713, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 444, 443, 442, 438, 678, 0, 0, 0, - 0, 0, 691, 689, 0, 0, 0, 235, 0, 0, - 0, 683, 0, 0, 0, 719, 541, 682, 681, 0, - 30, 54, 65, 441, 69, 103, 0, 0, 112, 133, - 110, 111, 114, 115, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 113, 132, 125, 124, 134, 148, 137, - 0, 108, 0, 0, 282, 277, 278, 279, 280, 281, - 285, 283, 293, 284, 286, 287, 288, 289, 290, 291, - 292, 0, 294, 318, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 0, 376, 0, - 339, 347, 348, 0, 0, 0, 0, 369, 6, 354, - 0, 356, 355, 0, 341, 362, 340, 343, 0, 0, - 349, 511, 0, 0, 0, 0, 0, 226, 0, 0, - 0, 226, 0, 0, 438, 350, 352, 353, 0, 0, - 0, 417, 0, 416, 0, 415, 0, 414, 0, 412, - 0, 413, 437, 0, 400, 0, 0, 727, 777, 767, - 0, 0, 0, 0, 0, 0, 825, 824, 823, 0, - 820, 41, 214, 0, 200, 194, 195, 196, 197, 202, - 203, 204, 205, 199, 206, 207, 198, 0, 0, 392, - 0, 0, 0, 0, 0, 736, 730, 735, 0, 35, - 0, 0, 226, 76, 70, 63, 315, 316, 719, 317, - 539, 0, 97, 783, 779, 812, 790, 0, 676, 695, - 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 708, 706, + 51, 52, 50, 0, 49, 581, 0, 0, 48, 738, + 697, 739, 0, 735, 0, 560, 561, 28, 31, 5, + 0, 126, 127, 128, 129, 130, 131, 157, 107, 139, + 143, 0, 106, 243, 257, 0, 0, 840, 0, 0, + 4, 185, 186, 179, 0, 141, 175, 0, 0, 340, + 176, 177, 178, 0, 0, 299, 0, 342, 344, 0, + 0, 0, 0, 0, 226, 0, 351, 0, 318, 0, + 386, 0, 384, 387, 370, 372, 0, 0, 0, 0, + 0, 0, 0, 373, 531, 530, 532, 533, 45, 0, + 0, 528, 535, 534, 538, 537, 539, 543, 544, 542, + 0, 545, 0, 546, 438, 0, 550, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, + 405, 0, 788, 0, 0, 0, 0, 13, 826, 825, + 817, 815, 818, 438, 438, 837, 0, 0, 14, 438, + 835, 438, 833, 0, 0, 0, 0, 15, 858, 857, + 851, 0, 0, 16, 869, 868, 865, 844, 845, 846, + 847, 848, 849, 0, 586, 209, 0, 583, 0, 0, + 0, 755, 76, 0, 0, 0, 749, 33, 0, 225, + 234, 66, 0, 79, 559, 0, 0, 0, 0, 438, + 0, 860, 0, 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 690, 688, 51, 52, 50, 0, 49, - 563, 0, 0, 48, 720, 679, 721, 0, 717, 0, - 542, 543, 28, 31, 5, 0, 126, 127, 128, 129, - 130, 131, 157, 107, 139, 143, 0, 106, 243, 257, - 0, 0, 822, 0, 0, 4, 185, 186, 179, 0, - 141, 175, 0, 0, 340, 176, 177, 178, 0, 0, - 299, 0, 342, 344, 0, 0, 0, 0, 0, 226, - 0, 351, 0, 318, 0, 386, 0, 384, 387, 370, - 372, 0, 0, 0, 0, 0, 0, 0, 373, 513, - 512, 514, 515, 45, 0, 0, 510, 517, 516, 520, - 519, 521, 525, 526, 524, 0, 527, 0, 528, 438, - 0, 532, 534, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 397, 0, 0, 405, 0, 770, 0, 0, - 0, 0, 13, 808, 807, 799, 797, 800, 438, 438, - 819, 0, 0, 14, 438, 817, 438, 815, 0, 0, - 0, 0, 15, 840, 839, 833, 0, 0, 16, 851, - 850, 847, 826, 827, 828, 829, 830, 831, 0, 568, - 209, 0, 565, 0, 0, 0, 737, 76, 0, 0, - 0, 731, 33, 0, 225, 234, 66, 0, 79, 541, - 0, 0, 0, 0, 438, 0, 842, 0, 740, 741, + 0, 0, 0, 0, 572, 570, 571, 700, 0, 0, + 741, 737, 698, 705, 0, 0, 0, 152, 154, 153, + 155, 160, 150, 151, 157, 0, 0, 0, 0, 0, + 226, 180, 181, 0, 0, 0, 226, 0, 140, 246, + 260, 0, 850, 0, 299, 0, 0, 270, 0, 0, + 0, 364, 0, 0, 0, 0, 0, 318, 567, 0, + 0, 564, 565, 368, 385, 371, 0, 388, 378, 382, + 383, 381, 377, 379, 380, 0, 0, 0, 0, 541, + 0, 0, 0, 0, 555, 556, 0, 536, 0, 401, + 402, 401, 401, 401, 401, 401, 399, 404, 0, 787, + 0, 0, 0, 820, 819, 0, 0, 823, 0, 0, + 0, 0, 0, 0, 0, 0, 856, 852, 0, 0, + 0, 0, 602, 640, 594, 595, 0, 629, 596, 597, + 598, 599, 600, 601, 631, 607, 608, 609, 610, 641, + 0, 0, 637, 0, 0, 0, 591, 592, 593, 616, + 617, 618, 635, 619, 620, 621, 622, 641, 641, 625, + 643, 633, 639, 274, 0, 0, 272, 0, 211, 584, + 0, 742, 0, 0, 38, 0, 747, 748, 36, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 78, 75, 445, + 438, 77, 0, 0, 318, 318, 317, 557, 98, 99, + 0, 100, 101, 102, 0, 831, 236, 488, 487, 0, + 0, 0, 0, 478, 477, 476, 475, 473, 471, 474, + 472, 486, 485, 484, 483, 573, 318, 702, 703, 740, + 736, 562, 135, 0, 0, 160, 0, 158, 144, 165, + 0, 149, 142, 0, 245, 244, 580, 0, 259, 258, + 0, 839, 0, 188, 0, 0, 0, 0, 0, 0, + 0, 171, 0, 295, 0, 0, 0, 306, 307, 308, + 309, 301, 302, 303, 300, 304, 305, 0, 0, 298, + 0, 0, 0, 0, 0, 0, 359, 357, 0, 0, + 0, 211, 0, 360, 0, 270, 345, 318, 0, 0, + 374, 375, 0, 0, 0, 0, 548, 318, 552, 552, + 551, 403, 411, 410, 409, 408, 406, 407, 792, 790, + 816, 827, 0, 829, 821, 824, 802, 828, 834, 836, + 0, 853, 854, 0, 867, 208, 630, 603, 604, 605, + 606, 0, 626, 632, 634, 638, 0, 0, 0, 636, + 623, 624, 678, 647, 648, 0, 675, 649, 650, 651, + 652, 653, 654, 677, 659, 660, 661, 662, 645, 646, + 667, 668, 669, 670, 671, 672, 673, 674, 644, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 663, 627, 201, 0, 0, 611, 210, 0, + 192, 0, 763, 761, 0, 760, 757, 756, 743, 0, + 79, 750, 76, 71, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, - 554, 552, 553, 682, 0, 0, 723, 719, 680, 687, - 0, 0, 0, 152, 154, 153, 155, 160, 150, 151, - 157, 0, 0, 0, 0, 0, 226, 180, 181, 0, - 0, 0, 226, 0, 140, 246, 260, 0, 832, 0, - 299, 0, 0, 270, 0, 0, 0, 364, 0, 0, - 0, 0, 0, 318, 549, 0, 0, 546, 547, 368, - 385, 371, 0, 388, 378, 382, 383, 381, 377, 379, - 380, 0, 0, 0, 0, 523, 0, 0, 0, 0, - 537, 538, 0, 518, 0, 401, 402, 401, 401, 401, - 401, 401, 399, 404, 0, 769, 0, 0, 0, 802, - 801, 0, 0, 805, 0, 0, 0, 0, 0, 0, - 0, 0, 838, 834, 0, 0, 0, 0, 584, 622, - 576, 577, 0, 611, 578, 579, 580, 581, 582, 583, - 613, 589, 590, 591, 592, 623, 0, 0, 619, 0, - 0, 0, 573, 574, 575, 598, 599, 600, 617, 601, - 602, 603, 604, 623, 623, 607, 625, 615, 621, 274, - 0, 0, 272, 0, 211, 566, 0, 724, 0, 0, - 38, 0, 729, 730, 36, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 78, 75, 445, 77, 0, 0, 318, - 318, 317, 539, 98, 99, 0, 100, 101, 102, 0, - 813, 236, 435, 434, 0, 0, 0, 0, 425, 424, - 423, 422, 420, 418, 421, 419, 433, 432, 431, 430, - 555, 318, 684, 685, 722, 718, 544, 135, 0, 0, - 160, 0, 158, 144, 165, 0, 149, 142, 0, 245, - 244, 562, 0, 259, 258, 0, 821, 0, 188, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 295, 0, - 0, 0, 306, 307, 308, 309, 301, 302, 303, 300, - 304, 305, 0, 0, 298, 0, 0, 0, 0, 0, - 0, 359, 357, 0, 0, 0, 211, 0, 360, 0, - 270, 345, 318, 0, 0, 374, 375, 0, 0, 0, - 0, 530, 318, 534, 534, 533, 403, 411, 410, 409, - 408, 406, 407, 774, 772, 798, 809, 0, 811, 803, - 806, 784, 810, 816, 818, 0, 835, 836, 0, 849, - 208, 612, 585, 586, 587, 588, 0, 608, 614, 616, - 620, 0, 0, 0, 618, 605, 606, 660, 629, 630, - 0, 657, 631, 632, 633, 634, 635, 636, 659, 641, - 642, 643, 644, 627, 628, 649, 650, 651, 652, 653, - 654, 655, 656, 626, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 645, 609, 201, - 0, 0, 593, 210, 0, 192, 0, 745, 743, 0, - 742, 739, 738, 725, 0, 79, 732, 76, 71, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, + 83, 81, 0, 0, 0, 558, 0, 0, 0, 0, + 96, 800, 482, 481, 480, 479, 0, 0, 0, 161, + 0, 0, 145, 146, 157, 164, 165, 226, 191, 241, + 0, 0, 0, 0, 0, 0, 172, 226, 226, 226, + 226, 173, 254, 255, 253, 247, 252, 226, 226, 226, + 174, 267, 268, 265, 261, 266, 182, 299, 297, 0, + 0, 0, 319, 320, 321, 322, 586, 148, 0, 363, + 0, 366, 367, 0, 346, 568, 566, 0, 0, 46, + 47, 540, 547, 0, 553, 554, 791, 0, 789, 0, + 855, 866, 0, 0, 0, 0, 676, 655, 656, 657, + 658, 665, 0, 0, 666, 273, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 443, 442, 212, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 83, 81, 0, 0, 540, 0, 0, - 0, 0, 96, 782, 429, 428, 427, 426, 0, 0, - 0, 161, 0, 0, 145, 146, 157, 164, 165, 226, - 191, 241, 0, 0, 0, 0, 0, 0, 172, 226, - 226, 226, 226, 173, 254, 255, 253, 247, 252, 226, - 226, 226, 174, 267, 268, 265, 261, 266, 182, 299, - 297, 0, 0, 0, 319, 320, 321, 322, 568, 148, - 0, 363, 0, 366, 367, 0, 346, 550, 548, 0, - 0, 46, 47, 522, 529, 0, 535, 536, 773, 0, - 771, 0, 837, 848, 0, 0, 0, 0, 658, 637, - 638, 639, 640, 647, 0, 0, 648, 273, 0, 594, - 0, 212, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 0, 88, 0, 87, 0, 218, 217, - 318, 318, 778, 686, 156, 0, 165, 167, 0, 166, - 163, 0, 187, 0, 190, 0, 226, 248, 249, 250, - 251, 264, 262, 263, 0, 0, 310, 311, 312, 313, - 0, 0, 358, 0, 0, 551, 389, 390, 531, 776, - 0, 0, 0, 0, 0, 610, 646, 0, 0, 595, - 0, 0, 0, 0, 0, 0, 733, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 451, 0, 447, 446, 0, 450, - 0, 449, 0, 0, 91, 0, 0, 170, 0, 0, - 159, 162, 147, 318, 0, 0, 0, 296, 314, 271, - 318, 365, 168, 775, 0, 0, 0, 571, 568, 597, - 0, 744, 0, 0, 0, 749, 734, 485, 481, 0, - 0, 0, 0, 483, 481, 479, 477, 471, 474, 483, - 481, 479, 477, 494, 487, 448, 490, 90, 92, 0, - 216, 215, 0, 189, 168, 0, 0, 0, 0, 169, - 0, 624, 0, 570, 572, 596, 0, 0, 0, 0, - 0, 483, 481, 479, 477, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 211, - 0, 0, 323, 318, 804, 0, 746, 747, 748, 467, - 486, 466, 482, 0, 0, 0, 0, 457, 484, 456, - 455, 480, 454, 478, 452, 473, 472, 453, 476, 475, - 461, 460, 459, 458, 470, 495, 489, 488, 468, 491, - 0, 469, 493, 256, 318, 0, 0, 0, 0, 465, - 464, 463, 462, 492, 0, 0, 0, 328, 324, 333, - 334, 335, 336, 337, 325, 326, 327, 329, 330, 331, - 332, 275, 361, 0, 0, 318, 0, 569, 0, 0, - 0, 226, 183, 338, 0, 0, 0, 0, 168, 0, - 318, 0, 184 + 0, 0, 0, 0, 89, 0, 88, 0, 87, 436, + 0, 218, 217, 318, 318, 796, 704, 156, 0, 165, + 167, 0, 166, 163, 0, 187, 0, 190, 0, 226, + 248, 249, 250, 251, 264, 262, 263, 0, 0, 310, + 311, 312, 313, 0, 0, 358, 0, 0, 569, 389, + 390, 549, 794, 0, 0, 0, 0, 0, 628, 664, + 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 751, 68, 435, 0, 434, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 425, 0, 424, + 0, 423, 0, 422, 0, 420, 418, 0, 421, 419, + 0, 433, 0, 432, 0, 431, 0, 430, 0, 451, + 0, 447, 446, 0, 450, 0, 449, 0, 0, 91, + 0, 0, 170, 0, 0, 159, 162, 147, 318, 0, + 0, 0, 296, 314, 271, 318, 365, 168, 793, 0, + 0, 0, 589, 586, 615, 0, 762, 0, 0, 0, + 767, 752, 503, 499, 429, 0, 428, 0, 427, 0, + 426, 0, 501, 499, 497, 495, 489, 492, 501, 499, + 497, 495, 512, 505, 448, 508, 90, 92, 0, 216, + 215, 0, 189, 168, 0, 0, 0, 0, 169, 0, + 642, 0, 588, 590, 614, 0, 0, 0, 0, 0, + 501, 499, 497, 495, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 80, 211, 0, + 0, 323, 318, 822, 0, 764, 765, 766, 467, 504, + 466, 500, 0, 0, 0, 0, 457, 502, 456, 455, + 498, 454, 496, 452, 491, 490, 453, 494, 493, 461, + 460, 459, 458, 470, 513, 507, 506, 468, 509, 0, + 469, 511, 256, 318, 0, 0, 0, 0, 465, 464, + 463, 462, 510, 0, 0, 0, 328, 324, 333, 334, + 335, 336, 337, 325, 326, 327, 329, 330, 331, 332, + 275, 361, 0, 0, 318, 0, 587, 0, 0, 0, + 226, 183, 338, 0, 0, 0, 0, 168, 0, 318, + 0, 184 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1314, 1423, -1314, 1296, -65, 27, 12, -5, 114, -17, - -425, -1314, 11, -11, 1582, -1314, -1314, 1126, 1200, -667, - -1314, -1054, -1314, 0, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -322, -1314, -1314, -1314, 840, -1314, -1314, - -1314, 369, -1314, 859, -1314, 649, 421, -1071, -1314, -1313, - -456, -1314, -321, -1314, -1314, -1000, -1314, -160, -94, -1314, - -6, 1603, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, 601, 383, -1314, -320, -1314, -741, -696, 1289, -1314, - -1314, -356, -1314, -144, -1314, -1314, 1045, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, 150, 16, -1314, -1314, -1314, - 991, -12, 1585, -143, -24, -16, 743, 513, -1139, -1314, - -1314, -1189, -1174, -1215, -1166, -1314, -1314, -1314, -1314, 13, - -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, -1314, -1314, -1314, -1314, -312, 718, 952, -1314, -743, - -1314, 604, -7, -475, -25, 228, -112, -1314, -23, 482, - -1314, 924, 10, 760, -1314, -1314, 764, -1314, -871, -1314, - 1664, -1314, 30, -1314, -1314, 483, 1188, -1314, 1560, -1314, - -1314, -1023, 1255, -1314, -1314, -1314, -1314, -1314, -1314, -1314, - -1314, 1115, 901, -1314, -1314, -1314, -1314, -1314 + -1398, 1523, -1398, 1402, -43, 8, 51, -5, 11, 43, + -418, -1398, 16, -15, 1684, -1398, -1398, 1232, 1308, -662, + -1398, -1042, -1398, 28, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -326, -1398, -1398, -1398, 949, -1398, -1398, + -1398, 454, -1398, 964, -1398, 754, 510, -1141, -1398, -1397, + -448, -1398, -325, -1398, -1398, -1009, -1398, -163, -99, -1398, + -7, 1707, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, 698, 482, -1398, -318, -1398, -739, -704, 1380, -1398, + -1398, -232, -1398, -165, -1398, -1398, 1148, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -64, 15, -1398, -1398, -1398, + 1108, -137, 1687, 609, -29, -12, 850, -1398, -1146, -1398, + -1398, -1398, -1338, -1308, -1312, -1287, -1398, -1398, -1398, -1398, + 14, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, -1398, -1398, -1398, -1398, -117, 810, 1047, -1398, + -746, -1398, 712, -14, -437, -20, 253, 107, -1398, -23, + 565, -1398, 1031, 13, 851, -1398, -1398, 869, -1398, -881, + -1398, 1749, -1398, 33, -1398, -1398, 572, 1284, -1398, 1660, + -1398, -1398, -1035, 1351, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, 1227, 1023, -1398, -1398, -1398, -1398, -1398 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 1, 36, 309, 283, 389, 71, 159, 840, 1533, - 618, 38, 391, 40, 41, 42, 43, 106, 230, 707, - 708, 934, 1185, 392, 1325, 45, 46, 713, 47, 48, - 49, 50, 51, 52, 181, 183, 341, 342, 554, 1203, - 1204, 553, 760, 761, 980, 981, 762, 1207, 985, 1478, - 1479, 570, 53, 209, 904, 1145, 74, 107, 108, 109, - 212, 231, 572, 765, 1004, 1227, 573, 766, 1005, 1236, - 54, 1030, 900, 901, 55, 185, 781, 490, 795, 1556, - 393, 186, 394, 803, 396, 397, 599, 398, 399, 600, - 601, 602, 603, 604, 605, 804, 400, 57, 77, 197, - 433, 421, 434, 935, 285, 176, 177, 286, 936, 1499, - 1500, 1498, 1497, 1490, 1495, 1489, 1506, 1507, 1505, 213, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 822, 711, 539, 540, 796, - 797, 798, 214, 166, 232, 902, 1087, 1138, 216, 168, - 537, 538, 416, 700, 701, 59, 695, 696, 720, 1151, - 93, 60, 417, 62, 114, 494, 664, 63, 116, 442, - 656, 841, 657, 658, 666, 659, 64, 443, 667, 65, - 578, 206, 444, 675, 66, 117, 445, 681 + 0, 1, 36, 305, 689, 385, 71, 159, 834, 1602, + 613, 38, 387, 40, 41, 42, 43, 106, 230, 702, + 703, 928, 1192, 388, 1367, 45, 46, 708, 47, 48, + 49, 50, 51, 52, 181, 183, 337, 338, 549, 1211, + 1212, 548, 754, 755, 975, 976, 756, 1215, 980, 1547, + 1548, 565, 53, 209, 898, 1140, 74, 107, 108, 109, + 212, 231, 567, 759, 999, 1235, 568, 760, 1000, 1244, + 54, 1025, 894, 895, 55, 185, 775, 486, 789, 1625, + 389, 186, 390, 797, 392, 393, 594, 394, 395, 595, + 596, 597, 598, 599, 600, 798, 396, 57, 77, 197, + 429, 417, 430, 929, 930, 176, 177, 1315, 931, 282, + 1568, 1569, 1567, 1566, 1559, 1564, 1558, 1575, 1576, 1574, + 213, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 816, 706, 534, 535, + 790, 791, 792, 214, 166, 232, 896, 1082, 1133, 216, + 168, 532, 533, 412, 695, 696, 59, 690, 691, 715, + 1146, 93, 60, 413, 62, 114, 490, 659, 63, 116, + 438, 651, 835, 652, 653, 661, 654, 64, 439, 662, + 65, 573, 206, 440, 670, 66, 117, 441, 676 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1977,780 +2286,768 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 72, 44, 167, 640, 297, 641, 125, 126, 110, 228, - 229, 58, 39, 284, 160, 119, 942, 56, 165, 162, - 569, 571, 574, 170, 171, 172, 173, 178, 37, 220, - 909, 61, 179, 199, 710, 1150, 1254, 1313, 164, 1010, - 594, 120, 395, 200, 1271, 740, 741, 742, 68, 69, - 1039, 70, 120, 438, 439, 217, 68, 69, 120, 70, - 794, 120, 313, 802, 68, 69, 592, 70, 215, 534, - 298, 120, 68, 69, 120, 70, 770, 217, 217, 586, - 68, 69, 120, 70, 120, 234, 1546, 731, 733, 210, - 903, 363, 99, 217, 497, 534, 1038, 68, 69, 162, - 70, 1295, 67, 218, 715, 311, 255, 120, 99, 239, - 120, 250, 253, 254, 68, 69, 99, 70, 164, 472, - 835, 1078, 1547, -562, 68, 69, 217, 70, 120, 268, - 68, 69, 127, 70, 217, 121, 122, 1340, 120, 260, - 68, 69, 262, 70, 1268, 68, 69, 1146, 70, 493, - 120, 290, 289, 292, 123, 124, 120, 339, 110, 73, - 99, 1510, 310, 593, 301, 302, 303, 534, 485, 68, - 69, 199, 70, 95, 201, 120, 338, 423, 425, 427, - 429, 431, 120, 436, 718, 719, 468, 208, 75, 123, - 124, 613, 120, 120, 613, 120, 1188, 1189, 390, 123, - 124, 450, 451, 123, 124, 290, 471, 123, 124, 491, - 1009, 614, 615, 120, 614, 615, 1315, 741, 777, 123, - 124, 613, 68, 69, 1378, 70, 236, 237, 1198, 489, - 68, 207, 1379, 70, 120, 495, 718, 719, 552, 1496, - 1385, 614, 615, 501, 217, 1502, 1092, 621, 111, 76, - 112, 207, 1316, 771, 498, 608, 587, 68, 69, 68, - 70, 207, 70, 500, 970, 1421, 1093, 588, 287, 518, - 194, 113, 293, 1504, 174, 528, 207, 1524, 153, 154, - 155, 613, 519, 541, 470, 1599, 523, 1503, 851, 525, - 526, 527, 470, 1501, 529, 530, 387, 747, 752, 533, - 115, 614, 615, 310, 748, 1526, 1217, 718, 719, 1265, - 753, 754, 1025, 1026, 1027, 555, 44, 630, 68, 1525, - 207, 70, 120, 1288, 627, 1523, 58, 39, 755, 120, - 1508, 1289, 56, 478, 1249, -545, 480, 481, 440, 906, - 1287, 207, 568, 37, 169, 628, 61, 1434, 535, 441, - 291, 207, 576, 567, 175, 288, 839, 305, 575, 306, - 1521, 590, 182, 307, 308, 478, 1545, 219, 842, 566, - 180, 288, 577, 1548, 535, 483, 1076, 207, 756, 288, - 484, 1035, 207, 521, 626, 625, 629, 612, 617, 207, - 786, 68, 69, 1527, 70, 692, 1529, 207, 633, 127, - 473, 110, 624, 474, 836, 524, 162, 788, 694, 639, - -562, 606, 263, 264, 609, 184, 1157, 157, 619, 536, - 1141, 1158, 265, 997, 1530, 164, 1142, 99, 1269, 233, - 970, 419, 118, 999, 983, 420, 1540, 1413, 68, 69, - 1532, 70, 654, 654, 674, 680, 127, 644, 202, 693, - 395, 699, 655, 653, 653, 673, 679, 1514, 807, 238, - 478, 1541, 1415, 690, 1056, 691, 1519, 207, 1542, 68, - 69, 203, 70, 739, 99, 1537, 110, 1549, 1534, 1559, - 204, 1560, 290, 471, 1550, 1543, 1190, 1206, 207, 1562, - 1296, 582, 716, 583, 729, 791, 732, 584, 1354, 1561, - 737, 205, 207, 491, 616, 476, 744, 745, 905, 1553, - 477, 1215, 207, 607, 387, 780, 610, 611, 68, 69, - 620, 70, 187, 489, 207, 188, 189, 190, 191, 222, - 192, 193, 194, 635, 636, 1283, 637, 221, 638, 773, - 68, 69, 223, 70, 235, 153, 154, 155, 127, 224, - 758, 225, 226, 227, 646, 647, 261, 1284, 783, 68, - 69, 759, 70, 1285, 294, 68, 69, 127, 70, 824, - 1286, 800, 295, 943, 944, 296, 99, 300, 301, 302, - 303, 787, 789, 486, 487, 299, 843, 1418, 1419, 123, - 124, 613, 153, 154, 155, 99, 312, 422, 1318, 424, - 816, 420, 536, 420, 313, 1319, 390, 819, 945, 304, - 314, 614, 615, 818, 805, 1356, 1357, 721, 1520, 199, - 815, 426, 726, 727, 728, 420, 730, 428, 734, 735, - 736, 420, 315, 395, 340, 251, 252, 68, 69, 418, - 910, 432, 844, 845, 820, 127, 435, 430, 848, 502, - 849, 420, 187, 1160, 437, 188, 189, 190, 191, 751, - 192, 193, 194, 1358, 1359, 853, 68, 69, 1432, 70, - 452, 855, 995, 99, 767, 768, 478, 1372, 1001, 469, - 1472, 569, 571, 574, 157, 475, 541, 1476, 478, 68, - 69, 260, 70, 779, 153, 154, 155, 479, 949, 785, - 68, 69, 790, 70, 120, 478, 1482, 941, 957, 1483, - 950, 482, 951, 153, 154, 155, 806, 492, 96, 933, - 496, 97, 207, 1423, 301, 302, 303, 976, 1551, 1474, - 499, 157, 478, 1558, 446, 542, 447, 448, 987, 988, - 992, 1266, 1267, 449, 98, 99, 821, 946, 947, 100, - 948, 101, 1050, 808, 809, 810, 984, 120, 102, 613, - 991, 502, 503, 503, 996, 998, 1000, 1161, 1037, 508, - 1557, 305, 1040, 306, 509, 103, 510, 307, 308, 614, - 615, 1095, 1096, 852, 241, 242, 243, 941, 195, 390, - 104, 153, 154, 155, 98, 511, 508, 1048, 512, 100, - 1166, 101, 857, 120, 196, 513, 509, 520, 102, 244, - 1167, 1564, 514, 1057, 1043, 1058, 1059, 1060, 1061, 1062, - 1381, 1382, 1383, 1045, 515, 103, 510, 546, 547, 548, - 1168, 511, 752, 157, 516, 1169, 954, 955, 956, 585, - 104, 1147, 1589, 694, 753, 754, 517, 522, 642, 1077, - 1159, 1079, 157, 531, -242, 532, 545, 1601, 207, 1565, - 974, 536, 755, 549, 550, 551, 256, 257, 258, 259, - 3, 917, 918, 919, 591, 920, 921, 922, 923, 512, - 924, 925, 194, 1170, 926, 927, 928, 929, 699, 513, - 514, 930, 931, 1171, 1172, 579, 1028, 580, 1031, 1149, - 1033, 1598, 1034, 245, 632, 246, 247, 248, 249, 634, - 515, 688, 756, 1052, 1173, 1143, 1044, 305, 516, 306, - 643, 3, 1174, 307, 308, 645, 1046, 1047, 689, 595, - 157, 596, 597, 598, 196, 1081, 1082, 1083, 1084, 1085, - 217, 697, 517, 1176, 1239, 1184, 1175, 1177, 1063, 702, - 1064, 1065, 301, 302, 303, 703, 1202, 1192, 1205, 932, - 98, 704, 2, 705, 1075, 100, 1178, 101, 712, 1180, - 1179, 478, 1212, 1181, 102, 1264, 709, 1210, 1216, 661, - 1208, 3, 1278, 1279, 1280, 1281, 1282, 1211, 717, 478, - 722, 103, 993, 1587, 1299, 723, 724, 941, 105, 1300, - 1301, 284, 722, 568, 1226, 1235, 104, 674, 723, 724, - 1253, 725, 1255, 576, 567, 1225, 1234, 738, 673, 575, - 1148, 1219, 1220, 1221, 1222, 941, 1275, 301, 302, 303, - 566, 1224, 1233, 577, 1228, 1237, 746, 994, 749, 725, - 682, 683, 684, 1302, 1263, 11, 12, 13, 14, 207, - 750, 1186, 763, 1469, 504, 505, 506, 507, 764, 1347, - 1348, 1349, 1350, 774, 775, 820, 820, 776, 778, 1351, - 1352, 1353, 1029, 784, 1536, 1539, 685, 686, 687, 792, - 1011, 757, 793, 811, 758, 3, 812, 1012, 826, 1013, - 1014, 1015, 1199, 813, 814, 759, 817, 837, 823, 14, - 825, 301, 302, 303, 1162, 1163, 1164, 1165, 668, 676, - 827, 1213, 677, 1214, 828, 829, 830, 4, 5, 6, - 7, 8, 831, 833, 854, 834, 838, 846, 1016, 1017, - 1018, 847, 28, 29, 30, 31, 32, 33, 34, 9, - 10, 856, 1223, 907, 1544, 305, 908, 306, 35, 1182, - 850, 307, 308, 912, 1183, 911, 11, 12, 13, 14, - 913, 914, 915, 15, 16, 916, 939, 821, 821, 17, - 940, 971, 18, 1320, 1019, 1020, 1021, 952, 1022, 19, - 20, 1023, 953, 28, 29, 30, 31, 32, 33, 34, - 1344, 1345, 1273, 678, 958, 959, 960, 1336, 978, 35, - 961, 962, 3, 110, 979, 1002, 963, 1341, 964, 965, - 966, 967, 968, 110, 110, 110, 110, 1032, 969, 1375, - 305, 669, 306, 110, 110, 110, 307, 308, 986, 972, - 973, 977, 1008, 1041, 21, 22, 1042, 23, 24, 25, - 1036, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 1049, 1051, 1426, 1053, 1054, 1290, 420, 1067, 1066, 35, - 1088, 1055, 1362, 14, 1068, 1089, 1069, 1070, 1071, 1365, - 1072, 1366, 1073, 670, 1297, 1298, 671, 1074, 1080, 1086, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1090, 1314, 1091, 1317, 305, 1321, 306, 1094, 1139, 1144, - 743, 308, 1153, 1154, 1155, 1187, 1184, 1436, 1193, 1194, - 1209, 1242, 1195, 1422, 1335, 1196, 1414, 1197, 1250, 1200, - 1416, 3, 1243, 1241, 1248, 28, 29, 30, 31, 32, - 33, 34, 1244, 1245, 1246, 1386, 1024, 1247, 1431, 1251, - 794, 35, 1252, 1256, 1259, 1260, 1261, 28, 29, 30, - 31, 32, 33, 34, 1262, 1355, 1270, 672, 3, 941, - 9, 10, 1274, 35, 1272, 1292, 1276, 1293, 1277, 1294, - 1328, 1327, 1329, 1330, 1367, 1331, 493, 1333, 1334, 1337, - 14, 668, 1338, 1369, 1182, 1342, 1343, 660, 1346, 1183, - 1373, 1374, 648, 552, 649, 1363, 1184, 650, 651, 1473, - 1364, 1368, 1377, 1475, 1370, 1371, 1380, 1384, 1376, 1387, - 1388, 1389, 1404, 1390, 1391, 1392, 1393, 1515, 1410, 1394, - 941, 1395, 1396, 1397, 1398, 68, 69, 1399, 70, 1400, - 1401, 1402, 1406, 127, 1403, 1405, 128, 1407, 1408, 1409, - 129, 130, 131, 132, 133, 1411, 134, 135, 136, 137, - 1511, 138, 139, 1412, 1420, 140, 141, 142, 143, 1417, - 1424, 99, 144, 145, 28, 29, 30, 31, 32, 33, - 34, 146, 1425, 147, 652, 96, 1428, 1430, 97, 1433, - 35, 1442, 1429, 1538, 1437, 1435, 1441, 1438, 148, 149, - 150, 1439, 1440, 1583, 669, 1445, 1443, 1594, 1444, 14, - 1552, 98, 99, 1447, 1449, 1448, 100, 1182, 101, 1453, - 1454, 661, 1183, 649, 662, 102, 650, 651, 1450, 1451, - 1452, 1455, 1456, 151, 1457, 301, 302, 303, 1458, 1459, - 1460, 1461, 103, 1462, 1463, 1464, 14, 1465, 1466, 486, - 487, 1467, 1468, 1470, 1471, 1477, 670, 104, 1481, 671, - 941, 1485, 1491, 1480, 1492, 1493, 1486, 1487, 1488, 1494, - 28, 29, 30, 31, 32, 33, 34, 1509, 1512, 937, - 1596, 1595, 1513, 1555, 1516, 1554, 35, 1563, 1585, 153, - 154, 155, 1517, 28, 29, 30, 31, 32, 33, 34, - 1518, 1582, 941, 663, 1584, 1586, 1588, 1591, 1597, 35, - 1592, 1593, 1600, 316, 1522, 1602, 543, 161, 706, 1528, - 1522, 1531, 631, 1535, 1003, 1528, 1522, 1531, 1361, 982, - 28, 29, 30, 31, 32, 33, 34, 1339, 163, 1201, - 1238, 1360, 68, 69, 832, 70, 35, 1528, 1522, 1531, - 127, 1257, 198, 128, 1140, 801, 1258, 129, 130, 131, - 132, 133, 581, 134, 135, 136, 137, 1291, 138, 139, - 1191, 938, 140, 141, 142, 143, 1484, 1326, 99, 144, - 145, 975, 1152, 1156, 94, 240, 1332, 769, 146, 1007, - 147, 0, 714, 28, 29, 30, 31, 32, 33, 34, - 0, 0, 0, 1446, 0, 148, 149, 150, 665, 35, - 1590, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, - 306, 0, 0, 0, 307, 308, 0, 158, 0, 0, - 151, 0, 301, 302, 303, 0, 0, 68, 69, 0, - 70, 0, 0, 0, 3, 127, 486, 487, 128, 0, - 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, - 136, 137, 0, 138, 139, 0, 0, 140, 141, 142, - 143, 0, 0, 99, 144, 145, 0, 0, 0, 0, - 0, 0, 0, 146, 0, 147, 153, 154, 155, 217, + 72, 293, 167, 937, 228, 229, 635, 110, 636, 37, + 160, 165, 564, 566, 58, 119, 56, 39, 162, 1145, + 569, 391, 1262, 170, 171, 172, 173, 1279, 199, 44, + 903, 178, 121, 122, 61, 1005, 179, 1355, 705, 164, + 120, 1034, 68, 69, 120, 70, 120, 200, 217, 217, + 67, 220, 419, 421, 423, 425, 427, 120, 829, 1276, + 68, 69, -580, 70, 897, 294, 125, 126, 529, 68, + 69, 201, 70, 215, 218, 1383, 434, 435, 734, 735, + 736, 1615, 1033, 217, 208, 234, 359, 217, 1073, 217, + 726, 728, 788, 120, 68, 69, 99, 70, 162, 120, + 581, 68, 69, 73, 70, 120, 255, 764, 1319, 239, + 309, 250, 253, 254, 468, 796, 529, 1616, 120, 164, + 1004, 123, 124, 236, 237, 123, 124, 307, 210, 268, + 68, 69, 260, 70, 111, 262, 95, 99, 68, 69, + 489, 70, 68, 69, 120, 70, 1579, 120, 68, 69, + 286, 70, 285, 288, 120, 306, 127, 110, 68, 69, + 589, 70, 335, 75, 123, 124, 199, 68, 69, 289, + 70, 1087, 120, 1421, 99, 112, 334, 68, 69, 68, + 70, 1422, 70, 120, 99, 127, 464, 432, 1196, 1197, + 481, 1088, 120, 1573, 297, 298, 299, 120, 120, 493, + 120, 446, 447, 587, 286, 120, 467, 608, 113, 68, + 69, 1565, 70, 99, 487, 120, 1360, 1571, 68, 69, + 1206, 70, 1572, 1361, 76, 1595, 529, 609, 610, 485, + 603, 120, 1357, 476, 477, 491, 608, 386, 1486, 207, + 616, 1570, 710, 123, 124, 608, 547, 494, 497, 1593, + 735, 713, 714, 115, 1594, 120, 609, 610, 123, 124, + 608, 68, 69, 496, 70, 609, 610, 207, 1358, 127, + 1668, 523, 283, 1592, 1321, 474, 1432, 582, 514, 536, + 609, 610, 518, 474, 765, 520, 521, 522, 583, 900, + 524, 525, 306, 1225, 207, 528, 965, 99, 519, 741, + 588, 1273, 153, 154, 155, 845, 742, 1478, 625, 263, + 264, 746, 531, 466, 68, 69, 550, 70, 207, 265, + 37, 1257, 169, 747, 748, 58, 1296, 56, 39, 123, + 124, 153, 154, 155, 1297, 833, 207, 771, 219, 836, + 44, 749, 830, 1277, 287, 61, 561, 530, 383, -580, + 466, 571, 68, 570, 562, 70, 207, 174, 978, 284, + 238, 436, 585, 623, 180, 479, 563, -563, 1617, 1152, + 480, 572, 437, 469, 1153, 207, 470, 624, 1499, 1590, + 120, 620, 608, 182, 577, 621, 578, 301, 1295, 302, + 579, 750, 1577, 303, 304, 530, 110, 619, 628, 207, + 284, 162, 609, 610, 1596, 175, 602, 1601, 1071, 605, + 606, 1612, 217, 615, 207, 153, 154, 155, 184, 207, + 516, 202, 164, 780, 391, 687, 630, 631, 1614, 632, + 1598, 633, 801, 1599, 207, 782, 203, 284, 194, 204, + 1609, 157, 222, 607, 612, 688, 601, 641, 642, 604, + 1631, 650, 694, 614, 648, 648, 668, 674, 1610, 685, + 992, 686, 965, 383, 205, 634, 649, 649, 669, 675, + 157, 110, 1020, 1021, 1022, 223, 415, 286, 1611, 467, + 416, 1588, 639, 1628, 1629, 785, 1630, 207, 711, 1198, + 1320, 1603, 622, 733, 221, 531, 233, 68, 69, 217, + 70, 120, 994, 487, 472, 127, 738, 739, 1397, 473, + 716, 1480, 713, 714, 1583, 721, 722, 723, 485, 725, + 1141, 729, 730, 731, 118, 207, 261, 68, 69, 1606, + 70, 899, 774, 99, 802, 803, 804, 68, 69, 767, + 904, 68, 69, 611, 70, 127, 235, 3, 290, 1136, + 724, 745, 727, 777, 157, 1137, 732, 713, 714, 291, + 751, 68, 69, 752, 70, 98, 761, 762, 292, 1622, + 100, 794, 101, 99, 753, 295, 781, 783, 418, 102, + 68, 69, 416, 70, 296, 773, 818, 308, 127, 68, + 69, 779, 70, 120, 784, 442, 103, 443, 444, 309, + 810, 420, 813, 837, 445, 416, 391, 310, 800, 199, + 68, 104, 812, 70, 120, 809, 99, 3, 414, 1618, + 474, 1551, 938, 939, 1552, 422, 1619, 1483, 1484, 416, + 311, 251, 252, 297, 298, 299, 1030, 207, 815, 424, + 386, 838, 839, 416, 1214, 207, 746, 842, 799, 843, + 426, 153, 154, 155, 416, 482, 483, 940, 747, 748, + 847, 990, 68, 69, 300, 70, 849, 996, 428, 297, + 298, 299, 564, 566, 431, 846, 749, 1589, 814, 260, + 569, 536, 1052, 336, 1053, 1054, 1055, 1056, 1057, 1223, + 207, 153, 154, 155, 851, 1399, 1400, 944, 1227, 1228, + 1229, 1230, 936, 1497, 474, 945, 187, 946, 1051, 188, + 189, 190, 191, 1155, 192, 193, 194, 1156, 465, 927, + 433, 971, 11, 12, 13, 14, 750, 1157, 949, 950, + 951, 1158, 474, 1415, 153, 154, 155, 982, 983, 987, + 471, 224, 1541, 225, 226, 227, 297, 298, 299, 1545, + 979, 969, 531, 1342, 986, 1345, 448, 1291, 991, 993, + 995, 474, 1032, 952, 478, 120, 1035, 187, 1045, 475, + 188, 189, 190, 191, 1163, 192, 193, 194, 1164, 1292, + 488, 936, 1428, 1429, 1430, 1293, 1543, 1023, 492, 1026, + 157, 1028, 1294, 1029, 1165, 14, 941, 942, 1166, 943, + 1076, 1077, 1078, 1079, 1080, 671, 495, 1039, 672, 28, + 29, 30, 31, 32, 33, 34, 515, 1041, 1042, 1231, + 1167, 498, 386, 3, 1168, 35, 301, 1169, 302, 499, + 157, 1170, 303, 304, 96, 504, 1626, 97, 505, 1058, + 1171, 1059, 1060, 1072, 1172, 1074, 590, 1038, 591, 592, + 593, 1043, 1401, 1402, 506, 1070, 1040, 1142, 1047, 1173, + 98, 99, 301, 1174, 302, 100, 1154, 101, 303, 304, + 1620, 1175, 1177, 157, 102, 1176, 1178, 1633, 517, 28, + 29, 30, 31, 32, 33, 34, 1144, 694, 537, 673, + 507, 103, 123, 124, 608, 35, 207, 1488, 752, 541, + 542, 543, 508, 1179, 474, 1627, 104, 1180, 1658, 753, + 509, 1143, 1181, 1183, 609, 610, 1182, 1184, 1193, 98, + 1634, 1185, 510, 1670, 100, 1186, 101, 68, 69, 511, + 70, 1274, 1275, 102, 1187, 544, 545, 546, 1188, 301, + 512, 302, 513, 1194, 1191, 303, 304, 526, 1138, -242, + 103, 988, 527, 207, 580, 474, 1210, 540, 1213, 1272, + 1325, 1247, 1667, 574, 1326, 104, 1327, 1220, 1218, 575, + 1328, 586, 195, 1224, 1329, 1216, 627, 1237, 1330, 1238, + 1239, 1331, 1219, 207, 1207, 1332, 629, 1538, 196, 474, + 637, 1200, 936, 1656, 1090, 1091, 989, 638, 11, 12, + 13, 14, 640, 1221, 683, 1222, 561, 1232, 1241, 684, + 1261, 571, 1263, 570, 562, 1233, 1242, 217, 668, 692, + 936, 697, 241, 242, 243, 698, 563, 1234, 1243, 699, + 669, 572, 1236, 1245, 297, 298, 299, 700, 704, 1271, + 707, 656, 712, 1283, 717, 718, 719, 244, 720, 196, + 1286, 1287, 1288, 1289, 1290, 740, 677, 678, 679, 815, + 815, 743, 744, 757, 1390, 1391, 1392, 1393, 256, 257, + 258, 259, 758, 768, 1394, 1395, 1396, 769, 297, 298, + 299, 770, 772, 778, 1281, 28, 29, 30, 31, 32, + 33, 34, 680, 681, 682, 1240, 1313, 786, 787, 814, + 814, 35, 805, 806, 617, 128, 618, 807, 808, 129, + 130, 131, 132, 133, 105, 134, 135, 136, 137, 811, + 138, 139, 817, 819, 140, 141, 142, 143, 820, 821, + 99, 144, 145, 500, 501, 502, 503, 822, 823, 824, + 146, 245, 147, 246, 247, 248, 249, 1298, 825, 827, + 1605, 1608, 828, 831, 1024, 832, 840, 148, 149, 150, + 1159, 1160, 1161, 1162, 841, 844, 848, 1322, 1323, 1324, + 850, 901, 902, 1362, 1333, 1334, 1335, 1336, 1337, 1338, + 906, 1340, 1341, 1343, 905, 1346, 1347, 1348, 1349, 1350, + 1351, 1352, 151, 1354, 907, 1356, 908, 1359, 909, 1363, + 910, 934, 935, 1387, 1388, 1379, 1423, 1424, 1425, 1426, + 110, 947, 1339, 1635, 948, 1384, 1344, 974, 953, 1378, + 110, 110, 110, 110, 1353, 954, 955, 301, 1636, 302, + 110, 110, 110, 303, 304, 956, 981, 957, 958, 959, + 960, 911, 912, 913, 1637, 914, 915, 916, 917, 1418, + 918, 919, 194, 1638, 920, 921, 922, 923, 961, 962, + 1398, 924, 925, 3, 963, 964, 966, 1639, 1640, 1641, + 1642, 301, 967, 302, 968, 972, 973, 737, 304, 1410, + 997, 1003, 3, 1027, 1031, 1036, 1037, 1044, 1412, 1048, + 1491, 1046, 1049, 1050, 1062, 1416, 1417, 416, 1061, 1643, + 1644, 1645, 1646, 1647, 1648, 1649, 1063, 1420, 1064, 1405, + 1065, 1066, 1067, 1083, 1068, 1069, 1408, 1075, 1409, 96, + 1081, 1084, 97, 1085, 1086, 1089, 1134, 1427, 1431, 926, + 1139, 1149, 1201, 1148, 1150, 1191, 1439, 1440, 1441, 1442, + 1443, 1444, 1202, 1446, 1203, 98, 99, 1195, 655, 1204, + 100, 1479, 101, 1205, 1208, 1217, 1249, 1256, 1250, 102, + 1251, 1487, 1481, 1252, 1253, 1254, 1255, 1258, 1259, 1260, + 1264, 788, 1501, 1267, 1445, 1268, 103, 156, 1269, 1270, + 1280, 1278, 68, 69, 1282, 70, 1496, 1316, 1284, 1285, + 127, 104, 1317, 128, 1318, 1369, 158, 129, 130, 131, + 132, 133, 936, 134, 135, 136, 137, 1370, 138, 139, + 1371, 1372, 140, 141, 142, 143, 1373, 1374, 99, 144, + 145, 9, 10, 489, 1376, 1500, 1377, 1380, 146, 1381, + 147, 1389, 1505, 547, 1406, 1385, 1407, 1386, 1411, 1419, + 1435, 14, 1413, 1414, 1155, 148, 149, 150, 1191, 1157, + 1163, 1165, 1167, 643, 1169, 644, 1171, 1173, 645, 646, + 14, 1175, 1177, 1650, 1179, 1181, 1475, 1434, 1544, 1542, + 1437, 1436, 656, 1489, 644, 657, 1189, 645, 646, 1447, + 151, 1190, 297, 298, 299, 936, 1438, 1449, 1448, 1450, + 1451, 1453, 1452, 1454, 1455, 1456, 482, 483, 3, 28, + 29, 30, 31, 32, 33, 34, 1457, 1458, 1584, 1459, + 1460, 1461, 1462, 1463, 1464, 35, 1465, 1467, 1555, 1556, + 1557, 663, 1466, 1468, 1580, 28, 29, 30, 31, 32, + 33, 34, 1469, 1470, 1471, 647, 153, 154, 155, 1472, + 1473, 35, 1474, 1476, 28, 29, 30, 31, 32, 33, + 34, 1477, 1482, 1485, 658, 1490, 1498, 1493, 1494, 1495, + 35, 1663, 1621, 1507, 1325, 1502, 1503, 1327, 1504, 1329, + 1591, 1331, 1536, 1506, 1508, 1597, 1591, 1600, 1510, 1604, + 1512, 1597, 1591, 1600, 1652, 1509, 1513, 1515, 1514, 1516, + 1517, 1518, 1520, 1522, 1519, 1523, 1524, 1521, 1525, 68, + 69, 1189, 70, 1597, 1591, 1600, 1190, 127, 1526, 1527, + 128, 1528, 1607, 1529, 129, 130, 131, 132, 133, 936, + 134, 135, 136, 137, 1530, 138, 139, 1531, 1532, 140, + 141, 142, 143, 1533, 664, 99, 144, 145, 1534, 1535, + 1664, 1537, 1539, 1540, 1665, 146, 1546, 147, 1550, 1554, + 1578, 1560, 28, 29, 30, 31, 32, 33, 34, 1549, + 1561, 936, 148, 149, 150, 156, 1659, 932, 35, 1562, + 1563, 1624, 1632, 1581, 1582, 484, 14, 302, 1585, 1586, + 1587, 303, 304, 1623, 158, 1651, 665, 1653, 1654, 666, + 1655, 1189, 1657, 1660, 1661, 1662, 1190, 151, 1666, 297, + 298, 299, 1669, 312, 68, 69, 1671, 70, 538, 161, + 701, 1404, 127, 482, 483, 128, 626, 998, 977, 129, + 130, 131, 132, 133, 1382, 134, 135, 136, 137, 1209, + 138, 139, 163, 1265, 140, 141, 142, 143, 1403, 576, + 99, 144, 145, 795, 198, 1135, 826, 1199, 1314, 1266, + 146, 933, 147, 153, 154, 155, 1553, 1368, 1151, 94, + 28, 29, 30, 31, 32, 33, 34, 148, 149, 150, + 667, 1147, 970, 1375, 709, 240, 35, 28, 29, 30, + 31, 32, 33, 34, 763, 0, 0, 1433, 1092, 0, + 660, 0, 0, 35, 0, 1002, 0, 0, 0, 0, + 0, 0, 151, 0, 297, 298, 299, 1093, 1094, 0, + 1095, 1096, 1097, 1098, 1099, 1100, 0, 1101, 1102, 0, + 1103, 1104, 1105, 1106, 1107, 0, 266, 128, 267, 0, + 0, 129, 130, 131, 132, 133, 0, 134, 135, 136, + 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, + 0, 0, 0, 144, 145, 0, 0, 0, 153, 154, + 155, 0, 146, 0, 147, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 0, 0, 0, 1511, 0, 148, + 149, 150, 156, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 484, 0, 302, 0, 0, 0, 737, 304, + 0, 158, 68, 69, 0, 70, 0, 0, 0, 0, + 127, 0, 0, 128, 151, 0, 0, 129, 130, 131, + 132, 133, 0, 134, 135, 136, 137, 0, 138, 139, + 0, 0, 140, 141, 142, 143, 0, 0, 99, 144, + 145, 0, 0, 0, 0, 0, 0, 0, 146, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 149, 150, 0, 0, + 0, 0, 0, 0, 0, 911, 912, 913, 0, 914, + 915, 916, 917, 0, 918, 919, 194, 156, 920, 921, + 922, 923, 0, 0, 0, 924, 925, 484, 0, 302, + 151, 152, 0, 303, 304, 3, 158, 0, 0, 0, + 0, 0, 0, 0, 0, 1108, 1109, 0, 1110, 1111, + 1112, 0, 1113, 1114, 0, 0, 1115, 1116, 663, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 149, 150, 0, 269, 270, 271, 0, 272, 273, - 274, 275, 0, 276, 277, 194, 0, 278, 279, 280, - 281, 1097, 0, 0, 0, 0, 282, 0, 0, 0, - 0, 0, 0, 0, 0, 151, 0, 301, 302, 303, - 1098, 1099, 0, 1100, 1101, 1102, 1103, 1104, 1105, 0, - 1106, 1107, 0, 1108, 1109, 1110, 1111, 1112, 0, 622, - 128, 623, 0, 0, 129, 130, 131, 132, 133, 0, - 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, - 141, 142, 143, 0, 0, 99, 144, 145, 0, 0, - 0, 153, 154, 155, 0, 146, 0, 147, 1229, 0, - 1230, 1231, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 149, 150, 156, 0, 0, 0, 11, - 12, 13, 14, 0, 0, 488, 0, 306, 0, 0, - 0, 743, 308, 0, 158, 68, 69, 0, 70, 0, - 0, 0, 0, 127, 0, 0, 128, 151, 0, 0, + 0, 0, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 153, 154, 155, 0, + 0, 0, 0, 926, 0, 68, 69, 0, 70, 0, + 0, 0, 0, 127, 0, 0, 128, 0, 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, 136, 137, - 0, 138, 139, 0, 0, 140, 141, 142, 143, 0, + 1132, 138, 139, 14, 0, 140, 141, 142, 143, 156, 0, 99, 144, 145, 0, 0, 0, 0, 0, 0, - 0, 146, 0, 147, 0, 0, 0, 0, 0, 0, + 0, 146, 0, 147, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 149, - 150, 0, 0, 0, 0, 0, 28, 29, 30, 31, - 32, 33, 34, 0, 0, 0, 1232, 0, 0, 0, - 156, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 488, 0, 306, 151, 152, 0, 307, 308, 0, 158, - 0, 0, 0, 0, 0, 0, 0, 0, 1113, 1114, - 0, 1115, 1116, 1117, 1011, 1118, 1119, 0, 0, 1120, - 1121, 1012, 1122, 1013, 1014, 1015, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1123, 1124, 1125, 1126, 1127, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 68, 69, - 0, 70, 1016, 1017, 1018, 0, 127, 0, 0, 128, - 0, 0, 0, 129, 130, 131, 132, 133, 0, 134, - 135, 136, 137, 1137, 138, 139, 14, 0, 140, 141, - 142, 143, 156, 0, 99, 144, 145, 0, 0, 0, - 0, 0, 0, 0, 146, 0, 147, 0, 1019, 1020, - 1021, 158, 1022, 0, 0, 1023, 0, 0, 0, 0, - 0, 148, 149, 150, 0, 989, 0, 68, 69, 0, + 150, 0, 984, 0, 68, 69, 0, 70, 0, 0, + 0, 664, 127, 0, 0, 128, 0, 0, 0, 129, + 130, 131, 132, 133, 0, 134, 135, 136, 137, 0, + 138, 139, 0, 151, 140, 141, 142, 143, 0, 0, + 99, 144, 145, 0, 0, 0, 0, 985, 0, 0, + 146, 0, 147, 14, 0, 156, 217, 0, 0, 0, + 0, 0, 0, 665, 0, 157, 666, 148, 149, 150, + 0, 1299, 1300, 1301, 158, 1302, 1303, 1304, 1305, 0, + 1306, 1307, 194, 0, 1308, 1309, 1310, 1311, 0, 153, + 154, 155, 0, 1312, 0, 0, 0, 0, 68, 69, + 0, 70, 151, 152, 0, 0, 127, 0, 0, 128, + 0, 0, 0, 129, 130, 131, 132, 133, 1613, 134, + 135, 136, 137, 0, 138, 139, 0, 0, 140, 141, + 142, 143, 0, 0, 99, 144, 145, 28, 29, 30, + 31, 32, 33, 34, 146, 0, 147, 1246, 0, 0, + 0, 0, 0, 35, 0, 0, 0, 0, 153, 154, + 155, 148, 149, 150, 0, 0, 0, 68, 69, 0, 70, 0, 0, 0, 0, 127, 0, 0, 128, 0, 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, 136, 137, 0, 138, 139, 0, 151, 140, 141, 142, - 143, 0, 0, 99, 144, 145, 0, 0, 0, 0, - 990, 0, 0, 146, 0, 147, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, + 143, 0, 0, 99, 144, 145, 0, 2, 0, 0, + 0, 0, 0, 146, 0, 147, 0, 0, 156, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 211, 0, 148, 149, 150, 0, 0, 0, 0, 158, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 68, 69, 0, 70, 151, 152, 0, 0, 127, - 0, 0, 128, 0, 0, 0, 129, 130, 131, 132, - 133, 0, 134, 135, 136, 137, 0, 138, 139, 0, - 0, 140, 141, 142, 143, 0, 0, 99, 144, 145, - 0, 0, 0, 0, 0, 0, 0, 146, 0, 147, - 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 154, 155, 148, 149, 150, 0, 0, 0, 68, 69, 0, 70, 0, 0, 0, 0, 127, 0, - 0, 128, 0, 0, 0, 129, 130, 131, 132, 133, - 0, 134, 135, 136, 137, 0, 138, 139, 0, 151, + 0, 128, 153, 154, 155, 129, 130, 131, 132, 133, + 0, 134, 135, 136, 137, 584, 138, 139, 0, 0, 140, 141, 142, 143, 0, 0, 99, 144, 145, 0, - 0, 0, 0, 0, 0, 0, 146, 0, 147, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 211, 0, 148, 149, 150, 0, 0, 0, 0, - 158, 0, 0, 68, 69, 0, 70, 0, 0, 0, - 0, 127, 0, 0, 128, 153, 154, 155, 129, 130, - 131, 132, 133, 0, 134, 135, 136, 137, 589, 138, - 139, 0, 0, 140, 141, 142, 143, 0, 0, 99, - 144, 145, 0, 0, 0, 0, 0, 0, 0, 698, - 156, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 211, 0, 0, 0, 0, 0, 148, 149, 150, 158, - 0, 0, 68, 69, 0, 70, 0, 0, 0, 0, - 127, 0, 0, 128, 153, 154, 155, 129, 130, 131, - 132, 133, 0, 134, 135, 136, 137, 0, 138, 139, - 0, 151, 140, 141, 142, 143, 0, 0, 99, 144, - 145, 0, 0, 0, 0, 0, 0, 0, 146, 68, - 147, 0, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 148, 149, 150, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 211, 0, 0, 153, 154, 155, - 0, 0, 0, 158, 0, 0, 266, 128, 267, 0, - 772, 129, 130, 131, 132, 133, 0, 134, 135, 136, - 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, - 0, 0, 0, 144, 145, 0, 0, 0, 0, 0, - 0, 0, 146, 0, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 148, - 149, 150, 0, 211, 0, 0, 153, 154, 155, 917, - 918, 919, 158, 920, 921, 922, 923, 0, 924, 925, - 194, 0, 926, 927, 928, 929, 0, 0, 0, 930, - 931, 0, 0, 0, 151, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 0, 0, - 0, 0, 8, 0, 0, 0, 377, 378, 379, 380, - 381, 382, 0, 0, 68, 0, 156, 70, 0, 0, - 9, 10, 0, 0, 0, 0, 211, 3, 0, 0, - 0, 0, 0, 0, 0, 158, 0, 11, 12, 13, - 14, 0, 0, 0, 128, 0, 0, 932, 383, 0, - 131, 132, 133, 0, 134, 135, 136, 137, 0, 138, - 139, 0, 384, 140, 141, 142, 143, 0, 0, 0, - 1322, 145, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 0, 385, 386, 1011, - 0, 0, 0, 0, 158, 0, 1012, 0, 1013, 1014, - 1015, 0, 0, 0, 0, 0, 0, 0, 0, 1323, - 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, - 34, 0, 0, 387, 388, 0, 0, 0, 1324, 0, - 35, 0, 0, 0, 0, 0, 0, 1016, 1017, 1018, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 0, 0, 0, 0, 8, 0, 156, - 0, 377, 378, 379, 380, 381, 382, 68, 0, 0, - 70, 0, 0, 0, 0, 9, 10, 0, 158, 0, - 3, 0, 0, 1019, 1020, 1021, 0, 1022, 0, 0, - 1023, 0, 11, 12, 13, 14, 0, 0, 0, 0, - 0, 0, 0, 383, 0, 0, 0, 28, 29, 30, - 31, 32, 33, 34, 128, 0, 0, 384, 129, 130, - 131, 132, 133, 35, 134, 135, 136, 137, 0, 138, - 139, 0, 0, 140, 141, 142, 143, 0, 0, 0, - 144, 145, 0, 0, 0, 0, 0, 0, 0, 146, - 0, 147, 385, 386, 0, 0, 0, 0, 0, 0, - 0, 0, 1566, 0, 0, 0, 148, 149, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 1567, 0, 28, - 29, 30, 31, 32, 33, 34, 0, 0, 387, 799, - 0, 0, 0, 1568, 0, 35, 0, 0, 0, 0, - 0, 151, 1569, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 1570, 1571, 1572, 1573, - 8, 0, 0, 0, 377, 378, 379, 380, 381, 382, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, - 0, 0, 0, 0, 0, 1427, 0, 0, 1574, 1575, - 1576, 1577, 1578, 1579, 1580, 11, 12, 13, 14, 0, - 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, - 384, 129, 130, 131, 132, 133, 0, 134, 135, 136, - 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, - 453, 0, 0, 144, 145, 0, 0, 0, 0, 0, - 0, 0, 146, 0, 147, 385, 386, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, - 149, 150, 0, 454, 0, 455, 456, 457, 458, 0, - 0, 0, 28, 29, 30, 31, 32, 33, 34, 0, - 0, 387, 1006, 0, 0, 0, 0, 0, 35, 0, - 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, - 0, 0, 459, 460, 461, 462, 0, 0, 463, 0, - 0, 0, 464, 465, 466, 0, 156, 128, 0, 0, - 0, 129, 130, 131, 132, 133, 782, 134, 135, 136, - 137, 0, 138, 139, 0, 158, 140, 141, 142, 143, - 0, 0, 1581, 144, 145, 0, 0, 0, 0, 3, - 0, 0, 146, 0, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 148, - 149, 150, 129, 130, 131, 132, 133, 0, 134, 135, - 136, 137, 0, 138, 139, 0, 0, 140, 141, 142, - 143, 0, 0, 0, 144, 145, 0, 0, 0, 0, - 0, 0, 0, 146, 151, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 858, 467, 0, 0, 0, - 148, 149, 150, 0, 0, 0, 0, 0, 0, 859, - 0, 0, 0, 0, 860, 861, 0, 862, 863, 864, - 865, 866, 867, 0, 868, 869, 0, 870, 871, 872, - 873, 874, 0, 0, 0, 151, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 0, 0, 0, 0, 68, 69, 0, 70, 156, - 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 0, 0, 0, 875, 0, 876, 0, 0, 158, 0, - 877, 0, 0, 0, 0, 0, 0, 9, 10, 317, - 0, 0, 0, 0, 0, 0, 878, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 13, 14, 3, 0, - 0, 15, 16, 0, 0, 0, 0, 17, 318, 0, - 18, 0, 319, 0, 0, 320, 321, 19, 20, 879, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 0, 0, 0, 0, 0, 334, 0, - 0, 335, 0, 0, 3, 0, 0, 556, 336, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, - 0, 0, 21, 22, 0, 23, 24, 25, 158, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 544, 0, 556, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, - 156, 881, 882, 883, 884, 885, 886, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 0, 158, - 0, 898, 0, 0, 557, 0, 6, 7, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, - 0, 0, 0, 559, 0, 0, 9, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 899, 11, 12, 13, 14, 0, 560, 561, - 557, 0, 6, 7, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 558, 0, 0, 0, 562, 559, + 0, 0, 0, 0, 0, 0, 693, 156, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, + 0, 0, 0, 148, 149, 150, 158, 0, 0, 68, + 69, 0, 70, 0, 0, 0, 0, 127, 0, 0, + 128, 153, 154, 155, 129, 130, 131, 132, 133, 0, + 134, 135, 136, 137, 0, 138, 139, 0, 151, 140, + 141, 142, 143, 0, 0, 99, 144, 145, 0, 0, + 0, 0, 0, 0, 0, 146, 0, 147, 0, 0, + 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 0, 148, 149, 150, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 9, 10, 0, 0, 0, 0, + 0, 211, 0, 0, 153, 154, 155, 0, 0, 0, + 158, 11, 12, 13, 14, 0, 0, 766, 15, 16, + 68, 0, 0, 70, 17, 0, 0, 18, 0, 0, + 128, 0, 0, 3, 19, 20, 131, 132, 133, 0, + 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, + 141, 142, 143, 0, 0, 0, 1364, 145, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 211, 0, 0, 153, 154, 155, 0, 0, 0, 158, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 0, 23, 24, 25, 0, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 1365, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 0, 0, 0, 68, 0, + 0, 70, 0, 0, 1366, 0, 0, 0, 0, 0, + 0, 3, 0, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 0, 0, 0, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, + 0, 0, 0, 8, 0, 0, 0, 373, 374, 375, + 376, 377, 378, 0, 0, 0, 0, 1006, 0, 0, + 0, 9, 10, 0, 1007, 0, 1008, 1009, 1010, 0, + 0, 68, 156, 0, 70, 0, 0, 0, 11, 12, + 13, 14, 211, 0, 3, 0, 0, 0, 0, 379, + 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 380, 0, 1011, 1012, 1013, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 0, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 0, 381, 382, + 0, 8, 0, 0, 0, 373, 374, 375, 376, 377, + 378, 1014, 1015, 1016, 0, 1017, 0, 0, 1018, 9, + 10, 0, 0, 0, 0, 28, 29, 30, 31, 32, + 33, 34, 0, 0, 383, 384, 11, 12, 13, 14, + 0, 35, 0, 0, 269, 270, 271, 379, 272, 273, + 274, 275, 0, 276, 277, 0, 0, 278, 279, 280, + 281, 380, 0, 0, 0, 0, 0, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 0, 0, 0, 0, 8, 0, 0, 0, 373, 374, + 375, 376, 377, 378, 0, 0, 381, 382, 0, 0, 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 858, 0, 0, 11, - 12, 13, 14, 0, 560, 561, 0, 0, 0, 0, - 859, 0, 0, 563, 564, 860, 861, 0, 862, 863, - 864, 865, 866, 867, 562, 868, 869, 0, 870, 871, - 872, 873, 874, 0, 0, 0, 0, 0, 0, 0, - 28, 29, 30, 31, 32, 33, 34, 0, 0, 0, - 565, 0, 0, 0, 0, 0, 35, 0, 0, 563, - 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 875, 0, 876, 0, 0, 0, - 0, 877, 0, 0, 0, 0, 28, 29, 30, 31, - 32, 33, 34, 0, 0, 0, 1218, 878, 0, 917, - 918, 919, 35, 920, 921, 922, 923, 0, 924, 925, - 194, 0, 926, 927, 928, 929, 0, 343, 98, 930, - 931, 0, 0, 100, 0, 101, 0, 0, 0, 0, - 879, 0, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 344, 0, 345, 346, 347, 348, 349, 0, 0, 0, - 0, 350, 0, 0, 104, 0, 0, 0, 0, 0, - 351, 0, 0, 0, 0, 352, 0, 353, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 932, 0, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 14, 28, 29, 30, 31, 32, 33, 34, + 379, 0, 383, 793, 0, 0, 0, 0, 0, 35, + 0, 128, 0, 0, 380, 129, 130, 131, 132, 133, + 0, 134, 135, 136, 137, 0, 138, 139, 0, 0, + 140, 141, 142, 143, 449, 0, 0, 144, 145, 0, + 0, 0, 0, 1019, 0, 0, 146, 0, 147, 381, + 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 0, 450, 0, 451, + 452, 453, 454, 0, 0, 0, 28, 29, 30, 31, + 32, 33, 34, 0, 0, 383, 1001, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 151, 0, + 0, 0, 0, 0, 0, 0, 455, 456, 457, 458, + 0, 0, 459, 0, 0, 128, 460, 461, 462, 129, + 130, 131, 132, 133, 0, 134, 135, 136, 137, 0, + 138, 139, 0, 0, 140, 141, 142, 143, 0, 0, + 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, + 146, 0, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, + 128, 0, 0, 0, 129, 130, 131, 132, 133, 0, + 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, + 141, 142, 143, 0, 0, 0, 144, 145, 0, 0, + 0, 0, 151, 0, 0, 146, 0, 147, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 463, 128, 148, 149, 150, 129, 130, 131, 132, 133, + 0, 134, 135, 136, 137, 0, 138, 139, 0, 0, + 140, 141, 142, 143, 0, 0, 0, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 146, 151, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 1006, 0, 852, 0, 0, + 0, 0, 1007, 0, 1008, 1009, 1010, 0, 0, 0, + 0, 853, 158, 0, 0, 0, 854, 855, 151, 856, + 857, 858, 859, 860, 861, 0, 862, 863, 0, 864, + 865, 866, 867, 868, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1011, 1012, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 880, 0, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, - 0, 0, 898 + 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 869, 0, 870, 0, 0, + 0, 0, 871, 0, 9, 10, 0, 0, 0, 1014, + 1015, 1016, 0, 1017, 0, 0, 1018, 156, 872, 0, + 0, 11, 12, 13, 14, 0, 0, 776, 15, 16, + 3, 0, 0, 0, 17, 0, 158, 18, 0, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 911, 912, + 913, 873, 914, 915, 916, 917, 0, 918, 919, 194, + 0, 920, 921, 922, 923, 0, 0, 0, 924, 925, + 0, 0, 156, 0, 0, 0, 3, 0, 1006, 551, + 0, 0, 932, 0, 0, 1007, 0, 1008, 1009, 1010, + 0, 158, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 0, 23, 24, 25, 0, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 0, 0, 0, 539, 0, + 0, 0, 0, 156, 35, 551, 1011, 1012, 1013, 0, + 0, 0, 0, 0, 0, 0, 926, 0, 0, 0, + 0, 874, 158, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, + 0, 0, 0, 892, 0, 0, 552, 0, 6, 7, + 8, 1248, 1014, 1015, 1016, 0, 1017, 0, 0, 1018, + 553, 0, 0, 0, 0, 554, 0, 0, 9, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 893, 11, 12, 13, 14, 0, + 555, 556, 552, 0, 6, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, + 557, 554, 0, 0, 9, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, + 0, 11, 12, 13, 14, 0, 555, 556, 0, 0, + 0, 0, 853, 0, 0, 558, 559, 854, 855, 0, + 856, 857, 858, 859, 860, 861, 557, 862, 863, 0, + 864, 865, 866, 867, 868, 0, 0, 0, 68, 69, + 0, 70, 28, 29, 30, 31, 32, 33, 34, 0, + 0, 0, 560, 0, 0, 0, 0, 0, 35, 0, + 0, 558, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 869, 0, 870, 0, + 0, 0, 0, 871, 1492, 0, 0, 0, 28, 29, + 30, 31, 32, 33, 34, 0, 0, 0, 1226, 872, + 0, 314, 0, 0, 35, 315, 0, 0, 316, 317, + 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 0, 0, 339, 98, 0, + 0, 330, 873, 100, 331, 101, 0, 0, 0, 0, + 0, 332, 102, 0, 0, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 340, 0, 341, 342, 343, 344, 345, 0, 0, 0, + 0, 346, 0, 0, 104, 0, 0, 0, 0, 0, + 347, 0, 0, 0, 0, 348, 0, 349, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 0, 0, 0, + 0, 0, 358, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 874, 0, 875, 876, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, + 891, 0, 0, 0, 892 }; static const yytype_int16 yycheck[] = { - 5, 1, 25, 428, 164, 430, 23, 24, 14, 103, - 104, 1, 1, 156, 25, 20, 712, 1, 25, 25, - 342, 342, 342, 28, 29, 30, 31, 43, 1, 94, - 697, 1, 48, 57, 490, 906, 1036, 1176, 25, 780, - 396, 10, 186, 59, 1067, 520, 521, 522, 6, 7, - 793, 9, 10, 8, 9, 8, 6, 7, 10, 9, - 21, 10, 13, 57, 6, 7, 198, 9, 93, 21, - 164, 10, 6, 7, 10, 9, 111, 8, 8, 111, - 6, 7, 10, 9, 10, 108, 9, 512, 513, 77, - 64, 185, 42, 8, 137, 21, 792, 6, 7, 105, - 9, 1155, 216, 34, 137, 170, 129, 10, 42, 114, - 10, 116, 117, 118, 6, 7, 42, 9, 105, 213, - 9, 64, 45, 20, 6, 7, 8, 9, 10, 152, - 6, 7, 14, 9, 8, 21, 22, 1208, 10, 146, - 6, 7, 149, 9, 9, 6, 7, 29, 9, 167, - 10, 157, 157, 158, 10, 11, 10, 182, 164, 299, - 42, 1474, 169, 295, 106, 107, 108, 21, 233, 6, - 7, 195, 9, 9, 60, 10, 181, 189, 190, 191, - 192, 193, 10, 199, 66, 67, 209, 73, 65, 10, - 11, 12, 10, 10, 12, 10, 939, 940, 186, 10, - 11, 206, 207, 10, 11, 211, 211, 10, 11, 234, - 137, 32, 33, 10, 32, 33, 9, 692, 574, 10, - 11, 12, 6, 7, 292, 9, 112, 113, 971, 234, - 6, 294, 300, 9, 10, 240, 66, 67, 301, 1454, - 1294, 32, 33, 268, 8, 1460, 228, 407, 298, 126, - 299, 294, 45, 288, 261, 399, 288, 6, 7, 6, - 9, 294, 9, 268, 739, 1336, 248, 299, 218, 285, - 34, 274, 158, 1462, 8, 298, 294, 1492, 160, 161, - 162, 12, 287, 306, 218, 1598, 291, 1461, 216, 294, - 295, 296, 218, 1459, 299, 300, 290, 293, 40, 304, - 216, 32, 33, 310, 300, 1494, 1002, 66, 67, 1052, - 52, 53, 251, 252, 253, 340, 316, 411, 6, 1493, - 294, 9, 10, 292, 88, 1491, 316, 316, 70, 10, - 1469, 300, 316, 292, 1030, 296, 222, 223, 293, 298, - 291, 294, 342, 316, 290, 410, 316, 1370, 300, 304, - 308, 294, 342, 342, 13, 305, 305, 299, 342, 301, - 296, 386, 61, 305, 306, 292, 1505, 298, 298, 342, - 290, 305, 342, 296, 300, 290, 851, 294, 120, 305, - 295, 293, 294, 300, 409, 408, 410, 404, 405, 294, - 299, 6, 7, 296, 9, 300, 296, 294, 414, 14, - 295, 407, 408, 298, 293, 291, 412, 299, 473, 426, - 307, 399, 25, 26, 402, 290, 290, 299, 406, 305, - 299, 295, 35, 299, 296, 412, 305, 42, 293, 298, - 905, 295, 216, 299, 295, 299, 296, 52, 6, 7, - 296, 9, 442, 443, 444, 445, 14, 435, 290, 472, - 594, 476, 442, 442, 443, 444, 445, 1480, 602, 208, - 292, 296, 299, 468, 296, 470, 296, 294, 296, 6, - 7, 290, 9, 300, 42, 296, 482, 45, 296, 296, - 290, 296, 488, 488, 52, 296, 942, 293, 294, 296, - 1157, 377, 497, 379, 511, 589, 513, 383, 1239, 296, - 517, 290, 294, 528, 295, 290, 531, 532, 300, 1509, - 295, 293, 294, 399, 290, 580, 402, 403, 6, 7, - 406, 9, 24, 528, 294, 27, 28, 29, 30, 295, - 32, 33, 34, 419, 420, 271, 422, 293, 424, 564, - 6, 7, 295, 9, 295, 160, 161, 162, 14, 47, - 292, 49, 50, 51, 440, 441, 52, 293, 581, 6, - 7, 303, 9, 299, 137, 6, 7, 14, 9, 634, - 306, 596, 137, 29, 30, 137, 42, 307, 106, 107, - 108, 586, 587, 120, 121, 137, 651, 1330, 1331, 10, - 11, 12, 160, 161, 162, 42, 296, 295, 45, 295, - 625, 299, 488, 299, 13, 52, 594, 630, 64, 137, - 296, 32, 33, 629, 602, 139, 140, 503, 1489, 643, - 625, 295, 508, 509, 510, 299, 512, 295, 514, 515, - 516, 299, 296, 777, 62, 76, 77, 6, 7, 305, - 9, 295, 658, 659, 632, 14, 295, 295, 664, 295, - 666, 299, 24, 299, 296, 27, 28, 29, 30, 545, - 32, 33, 34, 139, 140, 670, 6, 7, 1364, 9, - 300, 676, 766, 42, 560, 561, 292, 293, 772, 298, - 1423, 1003, 1003, 1003, 299, 295, 709, 1430, 292, 6, - 7, 698, 9, 579, 160, 161, 162, 9, 714, 585, - 6, 7, 588, 9, 10, 292, 293, 712, 725, 296, - 715, 296, 717, 160, 161, 162, 602, 300, 15, 708, - 221, 18, 294, 295, 106, 107, 108, 750, 296, 1425, - 26, 299, 292, 293, 74, 291, 76, 77, 763, 764, - 765, 1053, 1054, 83, 41, 42, 632, 203, 204, 46, - 206, 48, 817, 603, 604, 605, 761, 10, 55, 12, - 765, 295, 295, 295, 769, 770, 771, 299, 791, 295, - 1513, 299, 795, 301, 295, 72, 295, 305, 306, 32, - 33, 893, 894, 669, 101, 102, 103, 792, 290, 777, - 87, 160, 161, 162, 41, 295, 295, 814, 295, 46, - 299, 48, 688, 10, 306, 295, 295, 300, 55, 126, - 299, 1554, 295, 825, 802, 827, 828, 829, 830, 831, - 27, 28, 29, 811, 295, 72, 295, 76, 77, 78, - 299, 295, 40, 299, 295, 299, 722, 723, 724, 299, - 87, 906, 1585, 908, 52, 53, 295, 300, 291, 854, - 915, 856, 299, 295, 290, 295, 295, 1600, 294, 1555, - 746, 747, 70, 112, 113, 114, 27, 28, 29, 30, - 19, 23, 24, 25, 304, 27, 28, 29, 30, 295, - 32, 33, 34, 299, 36, 37, 38, 39, 913, 295, - 295, 43, 44, 299, 299, 295, 782, 295, 784, 906, - 786, 1597, 788, 220, 295, 222, 223, 224, 225, 295, - 295, 295, 120, 295, 299, 903, 802, 299, 295, 301, - 293, 19, 299, 305, 306, 296, 812, 813, 295, 56, - 299, 58, 59, 60, 306, 26, 27, 28, 29, 30, - 8, 290, 295, 295, 1009, 934, 299, 299, 834, 8, - 836, 837, 106, 107, 108, 293, 981, 945, 983, 111, - 41, 296, 0, 296, 850, 46, 295, 48, 20, 295, - 299, 292, 995, 299, 55, 296, 301, 988, 1001, 209, - 985, 19, 26, 27, 28, 29, 30, 992, 20, 292, - 295, 72, 73, 296, 299, 295, 295, 1002, 295, 299, - 299, 1144, 295, 1003, 1004, 1005, 87, 1007, 295, 295, - 1035, 295, 1037, 1003, 1003, 1004, 1005, 296, 1007, 1003, - 906, 170, 171, 172, 173, 1030, 1091, 106, 107, 108, - 1003, 1004, 1005, 1003, 1004, 1005, 21, 118, 302, 295, - 76, 77, 78, 299, 1049, 194, 195, 196, 197, 294, - 293, 937, 293, 298, 27, 28, 29, 30, 111, 1219, - 1220, 1221, 1222, 290, 290, 1053, 1054, 290, 290, 1229, - 1230, 1231, 226, 304, 1499, 1500, 112, 113, 114, 20, - 40, 289, 295, 63, 292, 19, 63, 47, 300, 49, - 50, 51, 978, 295, 295, 303, 295, 213, 296, 197, - 296, 106, 107, 108, 27, 28, 29, 30, 42, 207, - 296, 997, 210, 999, 296, 296, 296, 155, 156, 157, - 158, 159, 296, 296, 216, 304, 298, 298, 88, 89, - 90, 298, 281, 282, 283, 284, 285, 286, 287, 177, - 178, 216, 291, 296, 296, 299, 293, 301, 297, 105, - 295, 305, 306, 291, 110, 298, 194, 195, 196, 197, - 293, 9, 298, 201, 202, 291, 295, 1053, 1054, 207, - 295, 295, 210, 1180, 134, 135, 136, 296, 138, 217, - 218, 141, 296, 281, 282, 283, 284, 285, 286, 287, - 1215, 1216, 1078, 291, 296, 296, 296, 1202, 295, 297, - 296, 296, 19, 1209, 40, 20, 296, 1212, 296, 296, - 296, 296, 296, 1219, 1220, 1221, 1222, 300, 296, 1284, - 299, 155, 301, 1229, 1230, 1231, 305, 306, 302, 296, - 296, 296, 296, 296, 272, 273, 293, 275, 276, 277, - 300, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 20, 296, 1346, 293, 293, 1141, 299, 304, 295, 297, - 243, 296, 1250, 197, 295, 235, 296, 296, 295, 1257, - 295, 1259, 296, 207, 1160, 1161, 210, 296, 296, 295, - 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, - 247, 1177, 295, 1179, 299, 1181, 301, 23, 296, 298, - 305, 306, 291, 298, 290, 302, 1295, 1372, 296, 296, - 197, 304, 296, 1338, 1200, 296, 1323, 296, 137, 295, - 1325, 19, 304, 295, 295, 281, 282, 283, 284, 285, - 286, 287, 300, 300, 300, 291, 296, 300, 1363, 300, - 21, 297, 300, 296, 63, 63, 296, 281, 282, 283, - 284, 285, 286, 287, 296, 1241, 9, 291, 19, 1364, - 177, 178, 250, 297, 296, 295, 299, 295, 299, 290, - 296, 300, 296, 295, 1260, 295, 167, 296, 296, 296, - 197, 42, 293, 1269, 105, 300, 300, 85, 256, 110, - 1276, 1277, 209, 301, 211, 293, 1385, 214, 215, 1424, - 20, 296, 1288, 1426, 304, 298, 1292, 1293, 300, 291, - 300, 300, 296, 1299, 1300, 1301, 1302, 1482, 9, 300, - 1425, 300, 300, 300, 300, 6, 7, 300, 9, 300, - 300, 300, 296, 14, 300, 300, 17, 296, 300, 296, - 21, 22, 23, 24, 25, 296, 27, 28, 29, 30, - 1475, 32, 33, 300, 296, 36, 37, 38, 39, 302, - 293, 42, 43, 44, 281, 282, 283, 284, 285, 286, - 287, 52, 20, 54, 291, 15, 296, 295, 18, 9, - 297, 304, 296, 1500, 300, 1371, 296, 300, 69, 70, - 71, 300, 1378, 1558, 155, 296, 304, 1591, 304, 197, - 1507, 41, 42, 295, 300, 295, 46, 105, 48, 295, - 295, 209, 110, 211, 212, 55, 214, 215, 300, 300, - 300, 295, 295, 104, 295, 106, 107, 108, 295, 295, - 295, 295, 72, 295, 295, 295, 197, 296, 295, 120, - 121, 9, 300, 296, 296, 301, 207, 87, 296, 210, - 1555, 300, 295, 304, 295, 295, 1442, 1443, 1444, 295, - 281, 282, 283, 284, 285, 286, 287, 296, 296, 299, - 1595, 1594, 295, 20, 296, 295, 297, 9, 295, 160, - 161, 162, 296, 281, 282, 283, 284, 285, 286, 287, - 296, 296, 1597, 291, 296, 295, 256, 104, 20, 297, - 296, 296, 295, 180, 1490, 296, 310, 25, 482, 1495, - 1496, 1497, 412, 1499, 774, 1501, 1502, 1503, 1249, 760, - 281, 282, 283, 284, 285, 286, 287, 1206, 25, 980, - 291, 1248, 6, 7, 643, 9, 297, 1523, 1524, 1525, - 14, 1040, 57, 17, 901, 600, 1042, 21, 22, 23, - 24, 25, 363, 27, 28, 29, 30, 1144, 32, 33, - 942, 709, 36, 37, 38, 39, 1438, 1185, 42, 43, - 44, 747, 908, 913, 10, 115, 1193, 562, 52, 778, - 54, -1, 494, 281, 282, 283, 284, 285, 286, 287, - -1, -1, -1, 291, -1, 69, 70, 71, 443, 297, - 1586, -1, -1, -1, -1, -1, -1, -1, 289, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, - 301, -1, -1, -1, 305, 306, -1, 308, -1, -1, - 104, -1, 106, 107, 108, -1, -1, 6, 7, -1, - 9, -1, -1, -1, 19, 14, 120, 121, 17, -1, - -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, - 29, 30, -1, 32, 33, -1, -1, 36, 37, 38, - 39, -1, -1, 42, 43, 44, -1, -1, -1, -1, - -1, -1, -1, 52, -1, 54, 160, 161, 162, 8, + 5, 164, 25, 707, 103, 104, 424, 14, 426, 1, + 25, 25, 338, 338, 1, 20, 1, 1, 25, 900, + 338, 186, 1031, 28, 29, 30, 31, 1062, 57, 1, + 692, 43, 21, 22, 1, 774, 48, 1183, 486, 25, + 10, 787, 6, 7, 10, 9, 10, 59, 8, 8, + 216, 94, 189, 190, 191, 192, 193, 10, 9, 9, + 6, 7, 20, 9, 64, 164, 23, 24, 21, 6, + 7, 60, 9, 93, 34, 1216, 8, 9, 515, 516, + 517, 9, 786, 8, 73, 108, 185, 8, 64, 8, + 508, 509, 21, 10, 6, 7, 42, 9, 105, 10, + 111, 6, 7, 299, 9, 10, 129, 111, 1150, 114, + 13, 116, 117, 118, 213, 57, 21, 45, 10, 105, + 137, 10, 11, 112, 113, 10, 11, 170, 77, 152, + 6, 7, 146, 9, 298, 149, 9, 42, 6, 7, + 167, 9, 6, 7, 10, 9, 1543, 10, 6, 7, + 157, 9, 157, 158, 10, 169, 14, 164, 6, 7, + 392, 9, 182, 65, 10, 11, 195, 6, 7, 158, + 9, 228, 10, 292, 42, 299, 181, 6, 7, 6, + 9, 300, 9, 10, 42, 14, 209, 199, 934, 935, + 233, 248, 10, 1531, 106, 107, 108, 10, 10, 137, + 10, 206, 207, 198, 211, 10, 211, 12, 274, 6, + 7, 1523, 9, 42, 234, 10, 45, 1529, 6, 7, + 966, 9, 1530, 52, 126, 1563, 21, 32, 33, 234, + 395, 10, 9, 222, 223, 240, 12, 186, 1379, 294, + 403, 1528, 137, 10, 11, 12, 301, 261, 268, 1561, + 687, 66, 67, 216, 1562, 10, 32, 33, 10, 11, + 12, 6, 7, 268, 9, 32, 33, 294, 45, 14, + 1667, 294, 218, 1560, 1155, 292, 1318, 288, 283, 302, + 32, 33, 287, 292, 288, 290, 291, 292, 299, 298, + 295, 296, 306, 997, 294, 300, 733, 42, 287, 293, + 295, 1047, 160, 161, 162, 216, 300, 52, 407, 25, + 26, 40, 301, 218, 6, 7, 336, 9, 294, 35, + 312, 1025, 290, 52, 53, 312, 292, 312, 312, 10, + 11, 160, 161, 162, 300, 305, 294, 569, 298, 298, + 312, 70, 293, 293, 308, 312, 338, 300, 290, 307, + 218, 338, 6, 338, 338, 9, 294, 8, 295, 305, + 208, 293, 382, 406, 290, 290, 338, 296, 296, 290, + 295, 338, 304, 295, 295, 294, 298, 406, 1413, 296, + 10, 404, 12, 61, 373, 405, 375, 299, 291, 301, + 379, 120, 1538, 305, 306, 300, 403, 404, 410, 294, + 305, 408, 32, 33, 296, 13, 395, 296, 845, 398, + 399, 296, 8, 402, 294, 160, 161, 162, 290, 294, + 300, 290, 408, 299, 589, 300, 415, 416, 1574, 418, + 296, 420, 597, 296, 294, 299, 290, 305, 34, 290, + 296, 299, 295, 400, 401, 468, 395, 436, 437, 398, + 296, 438, 472, 402, 438, 439, 440, 441, 296, 464, + 299, 466, 899, 290, 290, 422, 438, 439, 440, 441, + 299, 478, 251, 252, 253, 295, 295, 484, 296, 484, + 299, 296, 431, 296, 296, 584, 296, 294, 493, 937, + 1152, 296, 88, 300, 293, 484, 298, 6, 7, 8, + 9, 10, 299, 523, 290, 14, 526, 527, 1247, 295, + 499, 299, 66, 67, 1549, 504, 505, 506, 523, 508, + 29, 510, 511, 512, 216, 294, 52, 6, 7, 296, + 9, 300, 575, 42, 598, 599, 600, 6, 7, 559, + 9, 6, 7, 295, 9, 14, 295, 19, 137, 299, + 507, 540, 509, 576, 299, 305, 513, 66, 67, 137, + 289, 6, 7, 292, 9, 41, 555, 556, 137, 1578, + 46, 591, 48, 42, 303, 137, 581, 582, 295, 55, + 6, 7, 299, 9, 307, 574, 629, 296, 14, 6, + 7, 580, 9, 10, 583, 74, 72, 76, 77, 13, + 620, 295, 625, 646, 83, 299, 771, 296, 597, 638, + 6, 87, 624, 9, 10, 620, 42, 19, 305, 45, + 292, 293, 29, 30, 296, 295, 52, 1373, 1374, 299, + 296, 76, 77, 106, 107, 108, 293, 294, 627, 295, + 589, 653, 654, 299, 293, 294, 40, 659, 597, 661, + 295, 160, 161, 162, 299, 120, 121, 64, 52, 53, + 665, 760, 6, 7, 137, 9, 671, 766, 295, 106, + 107, 108, 998, 998, 295, 664, 70, 1558, 627, 693, + 998, 704, 819, 62, 821, 822, 823, 824, 825, 293, + 294, 160, 161, 162, 683, 139, 140, 709, 170, 171, + 172, 173, 707, 1407, 292, 710, 24, 712, 296, 27, + 28, 29, 30, 295, 32, 33, 34, 299, 298, 703, + 296, 744, 194, 195, 196, 197, 120, 295, 717, 718, + 719, 299, 292, 293, 160, 161, 162, 757, 758, 759, + 295, 47, 1488, 49, 50, 51, 106, 107, 108, 1495, + 755, 740, 741, 1171, 759, 1173, 300, 271, 763, 764, + 765, 292, 785, 720, 296, 10, 789, 24, 811, 9, + 27, 28, 29, 30, 295, 32, 33, 34, 299, 293, + 300, 786, 27, 28, 29, 299, 1490, 776, 221, 778, + 299, 780, 306, 782, 295, 197, 203, 204, 299, 206, + 26, 27, 28, 29, 30, 207, 26, 796, 210, 281, + 282, 283, 284, 285, 286, 287, 300, 806, 807, 291, + 295, 295, 771, 19, 299, 297, 299, 295, 301, 295, + 299, 299, 305, 306, 15, 295, 1582, 18, 295, 828, + 295, 830, 831, 848, 299, 850, 56, 796, 58, 59, + 60, 808, 139, 140, 295, 844, 805, 900, 295, 295, + 41, 42, 299, 299, 301, 46, 909, 48, 305, 306, + 296, 295, 295, 299, 55, 299, 299, 1623, 300, 281, + 282, 283, 284, 285, 286, 287, 900, 907, 291, 291, + 295, 72, 10, 11, 12, 297, 294, 295, 292, 76, + 77, 78, 295, 295, 292, 293, 87, 299, 1654, 303, + 295, 900, 295, 295, 32, 33, 299, 299, 930, 41, + 1624, 295, 295, 1669, 46, 299, 48, 6, 7, 295, + 9, 1048, 1049, 55, 295, 112, 113, 114, 299, 299, + 295, 301, 295, 932, 928, 305, 306, 295, 897, 290, + 72, 73, 295, 294, 299, 292, 976, 295, 978, 296, + 295, 1004, 1666, 295, 299, 87, 295, 990, 983, 295, + 299, 304, 290, 996, 295, 980, 295, 173, 299, 175, + 176, 295, 987, 294, 973, 299, 295, 298, 306, 292, + 291, 940, 997, 296, 887, 888, 118, 293, 194, 195, + 196, 197, 296, 992, 295, 994, 998, 999, 1000, 295, + 1030, 998, 1032, 998, 998, 999, 1000, 8, 1002, 290, + 1025, 8, 101, 102, 103, 293, 998, 999, 1000, 296, + 1002, 998, 999, 1000, 106, 107, 108, 296, 301, 1044, + 20, 209, 20, 1086, 295, 295, 295, 126, 295, 306, + 26, 27, 28, 29, 30, 21, 76, 77, 78, 1048, + 1049, 302, 293, 293, 1227, 1228, 1229, 1230, 27, 28, + 29, 30, 111, 290, 1237, 1238, 1239, 290, 106, 107, + 108, 290, 290, 304, 1073, 281, 282, 283, 284, 285, + 286, 287, 112, 113, 114, 291, 1139, 20, 295, 1048, + 1049, 297, 63, 63, 16, 17, 18, 295, 295, 21, + 22, 23, 24, 25, 295, 27, 28, 29, 30, 295, + 32, 33, 296, 296, 36, 37, 38, 39, 300, 296, + 42, 43, 44, 27, 28, 29, 30, 296, 296, 296, + 52, 220, 54, 222, 223, 224, 225, 1136, 296, 296, + 1568, 1569, 304, 213, 226, 298, 298, 69, 70, 71, + 27, 28, 29, 30, 298, 295, 216, 1156, 1157, 1158, + 216, 296, 293, 1187, 1163, 1164, 1165, 1166, 1167, 1168, + 291, 1170, 1171, 1172, 298, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 104, 1182, 293, 1184, 9, 1186, 298, 1188, + 291, 295, 295, 1223, 1224, 1210, 27, 28, 29, 30, + 1217, 296, 1169, 40, 296, 1220, 1173, 40, 296, 1208, + 1227, 1228, 1229, 1230, 1181, 296, 296, 299, 55, 301, + 1237, 1238, 1239, 305, 306, 296, 302, 296, 296, 296, + 296, 23, 24, 25, 71, 27, 28, 29, 30, 1292, + 32, 33, 34, 80, 36, 37, 38, 39, 296, 296, + 1249, 43, 44, 19, 296, 296, 295, 94, 95, 96, + 97, 299, 296, 301, 296, 296, 295, 305, 306, 1268, + 20, 296, 19, 300, 300, 296, 293, 20, 1277, 293, + 1389, 296, 293, 296, 304, 1284, 1285, 299, 295, 126, + 127, 128, 129, 130, 131, 132, 295, 1296, 296, 1258, + 296, 295, 295, 243, 296, 296, 1265, 296, 1267, 15, + 295, 235, 18, 247, 295, 23, 296, 1316, 1317, 111, + 298, 298, 296, 291, 290, 1319, 1325, 1326, 1327, 1328, + 1329, 1330, 296, 1332, 296, 41, 42, 302, 85, 296, + 46, 1365, 48, 296, 295, 197, 295, 295, 304, 55, + 304, 1381, 1367, 300, 300, 300, 300, 137, 300, 300, + 296, 21, 1415, 63, 1331, 63, 72, 289, 296, 296, + 296, 9, 6, 7, 250, 9, 1406, 295, 299, 299, + 14, 87, 295, 17, 290, 296, 308, 21, 22, 23, + 24, 25, 1407, 27, 28, 29, 30, 300, 32, 33, + 296, 296, 36, 37, 38, 39, 295, 295, 42, 43, + 44, 177, 178, 167, 296, 1414, 296, 296, 52, 293, + 54, 256, 1421, 301, 293, 300, 20, 300, 296, 300, + 296, 197, 304, 298, 295, 69, 70, 71, 1432, 295, + 295, 295, 295, 209, 295, 211, 295, 295, 214, 215, + 197, 295, 295, 290, 295, 295, 9, 291, 1491, 1489, + 296, 300, 209, 293, 211, 212, 105, 214, 215, 296, + 104, 110, 106, 107, 108, 1490, 300, 296, 300, 300, + 296, 296, 300, 300, 296, 296, 120, 121, 19, 281, + 282, 283, 284, 285, 286, 287, 300, 296, 1551, 296, + 300, 296, 300, 296, 300, 297, 296, 296, 1507, 1508, + 1509, 42, 300, 300, 1544, 281, 282, 283, 284, 285, + 286, 287, 296, 300, 296, 291, 160, 161, 162, 296, + 300, 297, 296, 296, 281, 282, 283, 284, 285, 286, + 287, 300, 302, 296, 291, 20, 9, 296, 296, 295, + 297, 1660, 1576, 304, 295, 300, 300, 295, 300, 295, + 1559, 295, 9, 296, 304, 1564, 1565, 1566, 296, 1568, + 295, 1570, 1571, 1572, 1627, 304, 295, 300, 296, 296, + 300, 296, 296, 295, 300, 295, 295, 300, 295, 6, + 7, 105, 9, 1592, 1593, 1594, 110, 14, 295, 295, + 17, 295, 1569, 295, 21, 22, 23, 24, 25, 1624, + 27, 28, 29, 30, 295, 32, 33, 295, 295, 36, + 37, 38, 39, 295, 155, 42, 43, 44, 296, 295, + 1663, 300, 296, 296, 1664, 52, 301, 54, 296, 300, + 296, 295, 281, 282, 283, 284, 285, 286, 287, 304, + 295, 1666, 69, 70, 71, 289, 1655, 299, 297, 295, + 295, 20, 9, 296, 295, 299, 197, 301, 296, 296, + 296, 305, 306, 295, 308, 296, 207, 296, 295, 210, + 295, 105, 256, 104, 296, 296, 110, 104, 20, 106, + 107, 108, 295, 180, 6, 7, 296, 9, 306, 25, + 478, 1257, 14, 120, 121, 17, 408, 768, 754, 21, + 22, 23, 24, 25, 1214, 27, 28, 29, 30, 975, + 32, 33, 25, 1035, 36, 37, 38, 39, 1256, 359, + 42, 43, 44, 595, 57, 895, 638, 937, 1139, 1037, + 52, 704, 54, 160, 161, 162, 1503, 1192, 907, 10, + 281, 282, 283, 284, 285, 286, 287, 69, 70, 71, + 291, 902, 741, 1201, 490, 115, 297, 281, 282, 283, + 284, 285, 286, 287, 557, -1, -1, 291, 3, -1, + 439, -1, -1, 297, -1, 772, -1, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, 22, 23, -1, + 25, 26, 27, 28, 29, 30, -1, 32, 33, -1, + 35, 36, 37, 38, 39, -1, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, + -1, -1, -1, 43, 44, -1, -1, -1, 160, 161, + 162, -1, 52, -1, 54, -1, -1, 281, 282, 283, + 284, 285, 286, 287, -1, -1, -1, 291, -1, 69, + 70, 71, 289, 297, -1, -1, -1, -1, -1, -1, + -1, -1, 299, -1, 301, -1, -1, -1, 305, 306, + -1, 308, 6, 7, -1, 9, -1, -1, -1, -1, + 14, -1, -1, 17, 104, -1, -1, 21, 22, 23, + 24, 25, -1, 27, 28, 29, 30, -1, 32, 33, + -1, -1, 36, 37, 38, 39, -1, -1, 42, 43, + 44, -1, -1, -1, -1, -1, -1, -1, 52, -1, + 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 69, 70, 71, -1, -1, + -1, -1, -1, -1, -1, 23, 24, 25, -1, 27, + 28, 29, 30, -1, 32, 33, 34, 289, 36, 37, + 38, 39, -1, -1, -1, 43, 44, 299, -1, 301, + 104, 105, -1, 305, 306, 19, 308, -1, -1, -1, + -1, -1, -1, -1, -1, 230, 231, -1, 233, 234, + 235, -1, 237, 238, -1, -1, 241, 242, 42, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 69, 70, 71, -1, 23, 24, 25, -1, 27, 28, - 29, 30, -1, 32, 33, 34, -1, 36, 37, 38, - 39, 3, -1, -1, -1, -1, 45, -1, -1, -1, - -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, - 22, 23, -1, 25, 26, 27, 28, 29, 30, -1, - 32, 33, -1, 35, 36, 37, 38, 39, -1, 16, - 17, 18, -1, -1, 21, 22, 23, 24, 25, -1, - 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, - 37, 38, 39, -1, -1, 42, 43, 44, -1, -1, - -1, 160, 161, 162, -1, 52, -1, 54, 173, -1, - 175, 176, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 69, 70, 71, 289, -1, -1, -1, 194, - 195, 196, 197, -1, -1, 299, -1, 301, -1, -1, - -1, 305, 306, -1, 308, 6, 7, -1, 9, -1, - -1, -1, -1, 14, -1, -1, 17, 104, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 160, 161, 162, -1, + -1, -1, -1, 111, -1, 6, 7, -1, 9, -1, + -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, - -1, 32, 33, -1, -1, 36, 37, 38, 39, -1, + 305, 32, 33, 197, -1, 36, 37, 38, 39, 289, -1, 42, 43, 44, -1, -1, -1, -1, -1, -1, - -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 54, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, - 71, -1, -1, -1, -1, -1, 281, 282, 283, 284, - 285, 286, 287, -1, -1, -1, 291, -1, -1, -1, - 289, -1, 297, -1, -1, -1, -1, -1, -1, -1, - 299, -1, 301, 104, 105, -1, 305, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, 230, 231, - -1, 233, 234, 235, 40, 237, 238, -1, -1, 241, - 242, 47, 244, 49, 50, 51, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 160, - 161, 162, -1, -1, -1, -1, -1, -1, 6, 7, - -1, 9, 88, 89, 90, -1, 14, -1, -1, 17, - -1, -1, -1, 21, 22, 23, 24, 25, -1, 27, - 28, 29, 30, 305, 32, 33, 197, -1, 36, 37, - 38, 39, 289, -1, 42, 43, 44, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 54, -1, 134, 135, - 136, 308, 138, -1, -1, 141, -1, -1, -1, -1, - -1, 69, 70, 71, -1, 73, -1, 6, 7, -1, + 71, -1, 73, -1, 6, 7, -1, 9, -1, -1, + -1, 155, 14, -1, -1, 17, -1, -1, -1, 21, + 22, 23, 24, 25, -1, 27, 28, 29, 30, -1, + 32, 33, -1, 104, 36, 37, 38, 39, -1, -1, + 42, 43, 44, -1, -1, -1, -1, 118, -1, -1, + 52, -1, 54, 197, -1, 289, 8, -1, -1, -1, + -1, -1, -1, 207, -1, 299, 210, 69, 70, 71, + -1, 23, 24, 25, 308, 27, 28, 29, 30, -1, + 32, 33, 34, -1, 36, 37, 38, 39, -1, 160, + 161, 162, -1, 45, -1, -1, -1, -1, 6, 7, + -1, 9, 104, 105, -1, -1, 14, -1, -1, 17, + -1, -1, -1, 21, 22, 23, 24, 25, 296, 27, + 28, 29, 30, -1, 32, 33, -1, -1, 36, 37, + 38, 39, -1, -1, 42, 43, 44, 281, 282, 283, + 284, 285, 286, 287, 52, -1, 54, 291, -1, -1, + -1, -1, -1, 297, -1, -1, -1, -1, 160, 161, + 162, 69, 70, 71, -1, -1, -1, 6, 7, -1, 9, -1, -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, -1, 32, 33, -1, 104, 36, 37, 38, - 39, -1, -1, 42, 43, 44, -1, -1, -1, -1, - 118, -1, -1, 52, -1, 54, -1, -1, 289, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, + 39, -1, -1, 42, 43, 44, -1, 0, -1, -1, + -1, -1, -1, 52, -1, 54, -1, -1, 289, -1, + -1, -1, -1, -1, -1, -1, 19, -1, 299, -1, 69, 70, 71, -1, -1, -1, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 160, 161, 162, -1, -1, -1, -1, -1, - -1, 6, 7, -1, 9, 104, 105, -1, -1, 14, - -1, -1, 17, -1, -1, -1, 21, 22, 23, 24, - 25, -1, 27, 28, 29, 30, -1, 32, 33, -1, - -1, 36, 37, 38, 39, -1, -1, 42, 43, 44, - -1, -1, -1, -1, -1, -1, -1, 52, -1, 54, - 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 160, 161, 162, 69, 70, 71, -1, -1, -1, 6, 7, -1, 9, -1, -1, -1, -1, 14, -1, - -1, 17, -1, -1, -1, 21, 22, 23, 24, 25, - -1, 27, 28, 29, 30, -1, 32, 33, -1, 104, + -1, 17, 160, 161, 162, 21, 22, 23, 24, 25, + -1, 27, 28, 29, 30, 104, 32, 33, -1, -1, 36, 37, 38, 39, -1, -1, 42, 43, 44, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 54, -1, - -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 299, -1, 69, 70, 71, -1, -1, -1, -1, - 308, -1, -1, 6, 7, -1, 9, -1, -1, -1, - -1, 14, -1, -1, 17, 160, 161, 162, 21, 22, - 23, 24, 25, -1, 27, 28, 29, 30, 104, 32, - 33, -1, -1, 36, 37, 38, 39, -1, -1, 42, - 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, - 289, 54, -1, -1, -1, -1, -1, -1, -1, -1, - 299, -1, -1, -1, -1, -1, 69, 70, 71, 308, - -1, -1, 6, 7, -1, 9, -1, -1, -1, -1, - 14, -1, -1, 17, 160, 161, 162, 21, 22, 23, - 24, 25, -1, 27, 28, 29, 30, -1, 32, 33, - -1, 104, 36, 37, 38, 39, -1, -1, 42, 43, - 44, -1, -1, -1, -1, -1, -1, -1, 52, 6, - 54, -1, 9, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, -1, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 299, -1, -1, 160, 161, 162, - -1, -1, -1, 308, -1, -1, 16, 17, 18, -1, - 104, 21, 22, 23, 24, 25, -1, 27, 28, 29, - 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, - -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, - -1, -1, -1, 289, -1, -1, -1, -1, -1, 69, - 70, 71, -1, 299, -1, -1, 160, 161, 162, 23, - 24, 25, 308, 27, 28, 29, 30, -1, 32, 33, - 34, -1, 36, 37, 38, 39, -1, -1, -1, 43, - 44, -1, -1, -1, 104, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, -1, -1, - -1, -1, 159, -1, -1, -1, 163, 164, 165, 166, - 167, 168, -1, -1, 6, -1, 289, 9, -1, -1, - 177, 178, -1, -1, -1, -1, 299, 19, -1, -1, - -1, -1, -1, -1, -1, 308, -1, 194, 195, 196, - 197, -1, -1, -1, 17, -1, -1, 111, 205, -1, - 23, 24, 25, -1, 27, 28, 29, 30, -1, 32, - 33, -1, 219, 36, 37, 38, 39, -1, -1, -1, - 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 299, -1, 254, 255, 40, - -1, -1, -1, -1, 308, -1, 47, -1, 49, 50, - 51, -1, -1, -1, -1, -1, -1, -1, -1, 92, - -1, -1, -1, -1, 281, 282, 283, 284, 285, 286, - 287, -1, -1, 290, 291, -1, -1, -1, 111, -1, - 297, -1, -1, -1, -1, -1, -1, 88, 89, 90, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, -1, -1, -1, -1, 159, -1, 289, - -1, 163, 164, 165, 166, 167, 168, 6, -1, -1, - 9, -1, -1, -1, -1, 177, 178, -1, 308, -1, - 19, -1, -1, 134, 135, 136, -1, 138, -1, -1, - 141, -1, 194, 195, 196, 197, -1, -1, -1, -1, - -1, -1, -1, 205, -1, -1, -1, 281, 282, 283, - 284, 285, 286, 287, 17, -1, -1, 219, 21, 22, - 23, 24, 25, 297, 27, 28, 29, 30, -1, 32, - 33, -1, -1, 36, 37, 38, 39, -1, -1, -1, - 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, - -1, 54, 254, 255, -1, -1, -1, -1, -1, -1, - -1, -1, 40, -1, -1, -1, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, -1, 55, -1, 281, - 282, 283, 284, 285, 286, 287, -1, -1, 290, 291, - -1, -1, -1, 71, -1, 297, -1, -1, -1, -1, - -1, 104, 80, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 94, 95, 96, 97, - 159, -1, -1, -1, 163, 164, 165, 166, 167, 168, - -1, -1, -1, -1, -1, -1, -1, -1, 177, 178, - -1, -1, -1, -1, -1, 296, -1, -1, 126, 127, - 128, 129, 130, 131, 132, 194, 195, 196, 197, -1, - -1, -1, -1, -1, -1, -1, 205, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, - 219, 21, 22, 23, 24, 25, -1, 27, 28, 29, - 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, - 40, -1, -1, 43, 44, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 54, 254, 255, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, - 70, 71, -1, 73, -1, 75, 76, 77, 78, -1, - -1, -1, 281, 282, 283, 284, 285, 286, 287, -1, - -1, 290, 291, -1, -1, -1, -1, -1, 297, -1, - -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, - -1, -1, 112, 113, 114, 115, -1, -1, 118, -1, - -1, -1, 122, 123, 124, -1, 289, 17, -1, -1, - -1, 21, 22, 23, 24, 25, 299, 27, 28, 29, - 30, -1, 32, 33, -1, 308, 36, 37, 38, 39, - -1, -1, 290, 43, 44, -1, -1, -1, -1, 19, - -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 17, 69, - 70, 71, 21, 22, 23, 24, 25, -1, 27, 28, + -1, -1, -1, -1, -1, -1, 52, 289, 54, -1, + -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, + -1, -1, -1, 69, 70, 71, 308, -1, -1, 6, + 7, -1, 9, -1, -1, -1, -1, 14, -1, -1, + 17, 160, 161, 162, 21, 22, 23, 24, 25, -1, + 27, 28, 29, 30, -1, 32, 33, -1, 104, 36, + 37, 38, 39, -1, -1, 42, 43, 44, -1, -1, + -1, -1, -1, -1, -1, 52, -1, 54, -1, -1, + -1, -1, 155, 156, 157, 158, 159, -1, -1, -1, + -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, 289, -1, -1, 177, 178, -1, -1, -1, -1, + -1, 299, -1, -1, 160, 161, 162, -1, -1, -1, + 308, 194, 195, 196, 197, -1, -1, 104, 201, 202, + 6, -1, -1, 9, 207, -1, -1, 210, -1, -1, + 17, -1, -1, 19, 217, 218, 23, 24, 25, -1, + 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, + 37, 38, 39, -1, -1, -1, 43, 44, -1, -1, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 299, -1, -1, 160, 161, 162, -1, -1, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, + 273, -1, 275, 276, 277, -1, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 92, -1, -1, -1, -1, + -1, -1, -1, -1, 297, -1, -1, -1, 6, -1, + -1, 9, -1, -1, 111, -1, -1, -1, -1, -1, + -1, 19, -1, 289, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 299, -1, -1, -1, -1, -1, -1, + -1, -1, 308, -1, -1, -1, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, + -1, -1, -1, 159, -1, -1, -1, 163, 164, 165, + 166, 167, 168, -1, -1, -1, -1, 40, -1, -1, + -1, 177, 178, -1, 47, -1, 49, 50, 51, -1, + -1, 6, 289, -1, 9, -1, -1, -1, 194, 195, + 196, 197, 299, -1, 19, -1, -1, -1, -1, 205, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 219, -1, 88, 89, 90, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, -1, 254, 255, + -1, 159, -1, -1, -1, 163, 164, 165, 166, 167, + 168, 134, 135, 136, -1, 138, -1, -1, 141, 177, + 178, -1, -1, -1, -1, 281, 282, 283, 284, 285, + 286, 287, -1, -1, 290, 291, 194, 195, 196, 197, + -1, 297, -1, -1, 23, 24, 25, 205, 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, 37, 38, - 39, -1, -1, -1, 43, 44, -1, -1, -1, -1, - -1, -1, -1, 52, 104, 54, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 226, -1, -1, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, 17, - -1, -1, -1, -1, 22, 23, -1, 25, 26, 27, - 28, 29, 30, -1, 32, 33, -1, 35, 36, 37, - 38, 39, -1, -1, -1, 104, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, -1, -1, -1, -1, 6, 7, -1, 9, 289, - -1, -1, -1, -1, -1, 155, 156, 157, 158, 159, - -1, -1, -1, 81, -1, 83, -1, -1, 308, -1, - 88, -1, -1, -1, -1, -1, -1, 177, 178, 40, - -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, - -1, -1, -1, -1, 194, 195, 196, 197, 19, -1, - -1, 201, 202, -1, -1, -1, -1, 207, 69, -1, - 210, -1, 73, -1, -1, 76, 77, 217, 218, 137, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, -1, -1, -1, -1, -1, 99, -1, - -1, 102, -1, -1, 19, -1, -1, 68, 109, -1, - -1, -1, -1, -1, -1, -1, -1, 118, -1, 289, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, - -1, -1, 272, 273, -1, 275, 276, 277, 308, 279, - 280, 281, 282, 283, 284, 285, 286, 287, -1, -1, - -1, 291, -1, 68, -1, -1, -1, 297, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, - 289, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, -1, 308, - -1, 249, -1, -1, 155, -1, 157, 158, 159, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, - -1, -1, -1, 174, -1, -1, 177, 178, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 290, 194, 195, 196, 197, -1, 199, 200, - 155, -1, 157, 158, 159, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 169, -1, -1, -1, 219, 174, + 39, 219, -1, -1, -1, -1, -1, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + -1, -1, -1, -1, 159, -1, -1, -1, 163, 164, + 165, 166, 167, 168, -1, -1, 254, 255, -1, -1, -1, -1, 177, 178, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, -1, -1, 194, - 195, 196, 197, -1, 199, 200, -1, -1, -1, -1, - 17, -1, -1, 254, 255, 22, 23, -1, 25, 26, - 27, 28, 29, 30, 219, 32, 33, -1, 35, 36, - 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, - 281, 282, 283, 284, 285, 286, 287, -1, -1, -1, - 291, -1, -1, -1, -1, -1, 297, -1, -1, 254, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, + 195, 196, 197, 281, 282, 283, 284, 285, 286, 287, + 205, -1, 290, 291, -1, -1, -1, -1, -1, 297, + -1, 17, -1, -1, 219, 21, 22, 23, 24, 25, + -1, 27, 28, 29, 30, -1, 32, 33, -1, -1, + 36, 37, 38, 39, 40, -1, -1, 43, 44, -1, + -1, -1, -1, 296, -1, -1, 52, -1, 54, 254, 255, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, -1, 83, -1, -1, -1, - -1, 88, -1, -1, -1, -1, 281, 282, 283, 284, - 285, 286, 287, -1, -1, -1, 291, 104, -1, 23, - 24, 25, 297, 27, 28, 29, 30, -1, 32, 33, - 34, -1, 36, 37, 38, 39, -1, 40, 41, 43, - 44, -1, -1, 46, -1, 48, -1, -1, -1, -1, - 137, -1, 55, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, + -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, + 76, 77, 78, -1, -1, -1, 281, 282, 283, 284, + 285, 286, 287, -1, -1, 290, 291, -1, -1, -1, + -1, -1, 297, -1, -1, -1, -1, -1, 104, -1, + -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, + -1, -1, 118, -1, -1, 17, 122, 123, 124, 21, + 22, 23, 24, 25, -1, 27, 28, 29, 30, -1, + 32, 33, -1, -1, 36, 37, 38, 39, -1, -1, + -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, + 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 69, 70, 71, + 17, -1, -1, -1, 21, 22, 23, 24, 25, -1, + 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, + 37, 38, 39, -1, -1, -1, 43, 44, -1, -1, + -1, -1, 104, -1, -1, 52, -1, 54, -1, -1, + -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, + 226, 17, 69, 70, 71, 21, 22, 23, 24, 25, + -1, 27, 28, 29, 30, -1, 32, 33, -1, -1, + 36, 37, 38, 39, -1, -1, -1, 43, 44, -1, + -1, -1, -1, -1, -1, -1, 52, 104, 54, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, 289, -1, 40, -1, 3, -1, -1, + -1, -1, 47, -1, 49, 50, 51, -1, -1, -1, + -1, 17, 308, -1, -1, -1, 22, 23, 104, 25, + 26, 27, 28, 29, 30, -1, 32, 33, -1, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 155, 156, 157, 158, 159, -1, -1, -1, + -1, -1, -1, -1, -1, 81, -1, 83, -1, -1, + -1, -1, 88, -1, 177, 178, -1, -1, -1, 134, + 135, 136, -1, 138, -1, -1, 141, 289, 104, -1, + -1, 194, 195, 196, 197, -1, -1, 299, 201, 202, + 19, -1, -1, -1, 207, -1, 308, 210, -1, -1, + -1, -1, -1, -1, 217, 218, -1, -1, 23, 24, + 25, 137, 27, 28, 29, 30, -1, 32, 33, 34, + -1, 36, 37, 38, 39, -1, -1, -1, 43, 44, + -1, -1, 289, -1, -1, -1, 19, -1, 40, 68, + -1, -1, 299, -1, -1, 47, -1, 49, 50, 51, + -1, 308, -1, -1, -1, -1, -1, -1, -1, 272, + 273, -1, 275, 276, 277, -1, 279, 280, 281, 282, + 283, 284, 285, 286, 287, -1, -1, -1, 291, -1, + -1, -1, -1, 289, 297, 68, 88, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + -1, 227, 308, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + -1, -1, -1, 249, -1, -1, 155, -1, 157, 158, + 159, 296, 134, 135, 136, -1, 138, -1, -1, 141, + 169, -1, -1, -1, -1, 174, -1, -1, 177, 178, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 290, 194, 195, 196, 197, -1, + 199, 200, 155, -1, 157, 158, 159, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 169, -1, -1, -1, + 219, 174, -1, -1, 177, 178, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + -1, 194, 195, 196, 197, -1, 199, 200, -1, -1, + -1, -1, 17, -1, -1, 254, 255, 22, 23, -1, + 25, 26, 27, 28, 29, 30, 219, 32, 33, -1, + 35, 36, 37, 38, 39, -1, -1, -1, 6, 7, + -1, 9, 281, 282, 283, 284, 285, 286, 287, -1, + -1, -1, 291, -1, -1, -1, -1, -1, 297, -1, + -1, 254, 255, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, -1, -1, -1, 81, -1, 83, -1, + -1, -1, -1, 88, 296, -1, -1, -1, 281, 282, + 283, 284, 285, 286, 287, -1, -1, -1, 291, 104, + -1, 69, -1, -1, 297, 73, -1, -1, 76, 77, + -1, -1, -1, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, 40, 41, -1, + -1, 99, 137, 46, 102, 48, -1, -1, -1, -1, + -1, 109, 55, -1, -1, -1, -1, -1, -1, -1, + 118, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, 98, -1, 100, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, -1, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 227, -1, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, -1, - -1, -1, 249 + -1, -1, 227, -1, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, -1, -1, -1, 249 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -2762,162 +3059,169 @@ static const yytype_int16 yystos[] = 218, 272, 273, 275, 276, 277, 279, 280, 281, 282, 283, 284, 285, 286, 287, 297, 311, 314, 320, 321, 322, 323, 324, 325, 332, 334, 335, 337, 338, 339, - 340, 341, 342, 361, 379, 383, 405, 406, 461, 464, - 470, 471, 472, 476, 485, 488, 493, 216, 6, 7, + 340, 341, 342, 361, 379, 383, 405, 406, 462, 465, + 471, 472, 473, 477, 486, 489, 494, 216, 6, 7, 9, 315, 316, 299, 365, 65, 126, 407, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 469, 469, 9, 15, 18, 41, 42, + 191, 192, 193, 470, 470, 9, 15, 18, 41, 42, 46, 48, 55, 72, 87, 295, 326, 366, 367, 368, - 369, 298, 299, 274, 473, 216, 477, 494, 216, 316, + 369, 298, 299, 274, 474, 216, 478, 495, 216, 316, 10, 317, 317, 10, 11, 318, 318, 14, 17, 21, 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, 38, 39, 43, 44, 52, 54, 69, 70, 71, 104, 105, 160, 161, 162, 289, 299, 308, 316, - 322, 323, 369, 370, 428, 451, 452, 457, 458, 290, + 322, 323, 369, 370, 429, 452, 453, 458, 459, 290, 316, 316, 316, 316, 8, 13, 414, 415, 414, 414, 290, 343, 61, 344, 290, 384, 390, 24, 27, 28, 29, 30, 32, 33, 34, 290, 306, 408, 411, 413, - 414, 317, 290, 290, 290, 290, 490, 294, 317, 362, - 315, 299, 369, 428, 451, 453, 457, 8, 34, 298, + 414, 317, 290, 290, 290, 290, 491, 294, 317, 362, + 315, 299, 369, 429, 452, 454, 458, 8, 34, 298, 313, 293, 295, 295, 47, 49, 50, 51, 367, 367, - 327, 370, 453, 298, 457, 295, 317, 317, 208, 316, - 477, 101, 102, 103, 126, 220, 222, 223, 224, 225, - 316, 76, 77, 316, 316, 457, 27, 28, 29, 30, - 451, 52, 451, 25, 26, 35, 16, 18, 457, 23, + 327, 370, 454, 298, 458, 295, 317, 317, 208, 316, + 478, 101, 102, 103, 126, 220, 222, 223, 224, 225, + 316, 76, 77, 316, 316, 458, 27, 28, 29, 30, + 452, 52, 452, 25, 26, 35, 16, 18, 458, 23, 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, - 38, 39, 45, 313, 412, 413, 416, 218, 305, 316, - 369, 308, 316, 317, 137, 137, 137, 366, 367, 137, - 307, 106, 107, 108, 137, 299, 301, 305, 306, 312, - 451, 313, 296, 13, 296, 296, 310, 40, 69, 73, - 76, 77, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 99, 102, 109, 118, 316, 453, - 62, 345, 346, 40, 73, 75, 76, 77, 78, 79, - 84, 93, 98, 100, 112, 113, 114, 115, 116, 117, - 118, 119, 125, 367, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 163, 164, 165, - 166, 167, 168, 205, 219, 254, 255, 290, 291, 314, - 315, 321, 332, 389, 391, 392, 393, 394, 396, 397, - 405, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 461, 471, 305, 295, - 299, 410, 295, 410, 295, 410, 295, 410, 295, 410, - 295, 410, 295, 409, 411, 295, 414, 296, 8, 9, - 293, 304, 478, 486, 491, 495, 74, 76, 77, 83, - 316, 316, 300, 40, 73, 75, 76, 77, 78, 112, - 113, 114, 115, 118, 122, 123, 124, 226, 457, 298, - 218, 316, 367, 295, 298, 295, 290, 295, 292, 9, - 317, 317, 296, 290, 295, 313, 120, 121, 299, 316, - 386, 453, 300, 167, 474, 316, 221, 137, 451, 26, - 316, 453, 295, 295, 27, 28, 29, 30, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 414, 316, - 300, 300, 300, 316, 317, 316, 316, 316, 457, 316, - 316, 295, 295, 316, 21, 300, 317, 459, 460, 446, - 447, 457, 291, 312, 291, 295, 76, 77, 78, 112, - 113, 114, 301, 350, 347, 453, 68, 155, 169, 174, - 199, 200, 219, 254, 255, 291, 314, 321, 332, 342, - 360, 361, 371, 375, 383, 405, 461, 471, 489, 295, - 295, 387, 317, 317, 317, 299, 111, 288, 299, 104, - 453, 304, 198, 295, 390, 56, 58, 59, 60, 395, - 398, 399, 400, 401, 402, 403, 315, 317, 392, 315, - 317, 317, 318, 12, 32, 33, 295, 318, 319, 315, - 317, 366, 16, 18, 369, 457, 453, 88, 313, 413, - 367, 327, 295, 414, 295, 317, 317, 317, 317, 318, - 319, 319, 291, 293, 315, 296, 317, 317, 209, 211, - 214, 215, 291, 321, 332, 461, 479, 481, 482, 484, - 85, 209, 212, 291, 475, 481, 483, 487, 42, 155, - 207, 210, 291, 321, 332, 492, 207, 210, 291, 321, - 332, 496, 76, 77, 78, 112, 113, 114, 295, 295, - 316, 316, 300, 457, 313, 465, 466, 290, 52, 453, - 462, 463, 8, 293, 296, 296, 326, 328, 329, 301, - 359, 445, 20, 336, 475, 137, 316, 20, 66, 67, - 467, 317, 295, 295, 295, 295, 317, 317, 317, 318, - 317, 319, 318, 319, 317, 317, 317, 318, 296, 300, - 452, 452, 452, 305, 453, 453, 21, 293, 300, 302, - 293, 317, 40, 52, 53, 70, 120, 289, 292, 303, - 351, 352, 355, 293, 111, 372, 376, 317, 317, 490, - 111, 288, 104, 453, 290, 290, 290, 390, 290, 317, - 313, 385, 299, 457, 304, 317, 299, 316, 299, 316, - 317, 367, 20, 295, 21, 387, 448, 449, 450, 291, - 453, 395, 57, 392, 404, 315, 317, 392, 404, 404, - 404, 63, 63, 295, 295, 316, 453, 295, 414, 457, - 315, 317, 444, 296, 313, 296, 300, 296, 296, 296, - 296, 296, 409, 296, 304, 9, 293, 213, 298, 305, - 317, 480, 298, 313, 414, 414, 298, 298, 414, 414, - 295, 216, 317, 316, 216, 316, 216, 317, 3, 17, - 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, - 35, 36, 37, 38, 39, 81, 83, 88, 104, 137, - 227, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 249, 290, - 381, 382, 454, 64, 363, 300, 298, 296, 293, 328, - 9, 298, 291, 293, 9, 298, 291, 23, 24, 25, - 27, 28, 29, 30, 32, 33, 36, 37, 38, 39, - 43, 44, 111, 321, 330, 412, 417, 299, 446, 295, - 295, 316, 386, 29, 30, 64, 203, 204, 206, 414, - 316, 316, 296, 296, 317, 317, 317, 318, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, - 452, 295, 296, 296, 317, 460, 457, 296, 295, 40, - 353, 354, 352, 295, 316, 357, 302, 453, 453, 73, - 118, 316, 453, 73, 118, 367, 316, 299, 316, 299, - 316, 367, 20, 346, 373, 377, 291, 491, 296, 137, - 385, 40, 47, 49, 50, 51, 88, 89, 90, 134, - 135, 136, 138, 141, 296, 251, 252, 253, 317, 226, - 380, 317, 300, 317, 317, 293, 300, 457, 386, 448, - 457, 296, 293, 315, 317, 315, 317, 317, 318, 20, - 313, 296, 295, 293, 293, 296, 296, 410, 410, 410, - 410, 410, 410, 317, 317, 317, 295, 304, 295, 296, - 296, 295, 295, 296, 296, 317, 452, 316, 64, 316, - 296, 26, 27, 28, 29, 30, 295, 455, 243, 235, - 247, 295, 228, 248, 23, 455, 455, 3, 22, 23, - 25, 26, 27, 28, 29, 30, 32, 33, 35, 36, - 37, 38, 39, 230, 231, 233, 234, 235, 237, 238, - 241, 242, 244, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 305, 456, 296, - 415, 299, 305, 315, 298, 364, 29, 313, 317, 451, - 467, 468, 465, 291, 298, 290, 462, 290, 295, 313, - 299, 299, 27, 28, 29, 30, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 295, 299, 295, 299, - 295, 299, 105, 110, 321, 331, 317, 302, 448, 448, - 359, 445, 315, 296, 296, 296, 296, 296, 448, 317, - 295, 354, 453, 348, 349, 453, 293, 356, 316, 197, - 322, 316, 457, 317, 317, 293, 457, 386, 291, 170, - 171, 172, 173, 291, 314, 321, 332, 374, 471, 173, - 175, 176, 291, 314, 321, 332, 378, 471, 291, 313, - 296, 295, 304, 304, 300, 300, 300, 300, 295, 386, - 137, 300, 300, 453, 364, 453, 296, 380, 450, 63, - 63, 296, 296, 316, 296, 448, 444, 444, 9, 293, - 9, 480, 296, 317, 250, 313, 299, 299, 26, 27, - 28, 29, 30, 271, 293, 299, 306, 291, 292, 300, - 317, 416, 295, 295, 290, 330, 328, 317, 317, 299, - 299, 299, 299, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 417, 317, 9, 45, 317, 45, 52, - 451, 317, 43, 92, 111, 333, 458, 300, 296, 296, - 295, 295, 474, 296, 296, 317, 316, 296, 293, 355, - 356, 316, 300, 300, 453, 453, 256, 366, 366, 366, - 366, 366, 366, 366, 385, 317, 139, 140, 139, 140, - 381, 350, 315, 293, 20, 315, 315, 317, 296, 317, - 304, 298, 293, 317, 317, 313, 300, 317, 292, 300, - 317, 27, 28, 29, 317, 330, 291, 291, 300, 300, - 317, 317, 317, 317, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 296, 300, 296, 296, 300, 296, - 9, 296, 300, 52, 451, 299, 316, 302, 448, 448, - 296, 356, 453, 295, 293, 20, 367, 296, 296, 296, - 295, 453, 386, 9, 480, 317, 313, 300, 300, 300, - 317, 296, 304, 304, 304, 296, 291, 295, 295, 300, - 300, 300, 300, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 296, 295, 9, 300, 298, - 296, 296, 448, 453, 386, 457, 448, 301, 358, 359, - 304, 296, 293, 296, 454, 300, 317, 317, 317, 424, - 422, 295, 295, 295, 295, 423, 422, 421, 420, 418, - 419, 423, 422, 421, 420, 427, 425, 426, 417, 296, - 358, 453, 296, 295, 480, 313, 296, 296, 296, 296, - 467, 296, 317, 423, 422, 421, 420, 296, 317, 296, - 296, 317, 296, 318, 296, 317, 319, 296, 318, 319, - 296, 296, 296, 296, 296, 417, 9, 45, 296, 45, - 52, 296, 451, 364, 295, 20, 388, 448, 293, 296, - 296, 296, 296, 9, 448, 386, 40, 55, 71, 80, - 94, 95, 96, 97, 126, 127, 128, 129, 130, 131, - 132, 290, 296, 313, 296, 295, 295, 296, 256, 448, - 317, 104, 296, 296, 367, 457, 453, 20, 386, 358, - 295, 448, 296 + 38, 39, 418, 218, 305, 316, 369, 308, 316, 317, + 137, 137, 137, 366, 367, 137, 307, 106, 107, 108, + 137, 299, 301, 305, 306, 312, 452, 313, 296, 13, + 296, 296, 310, 40, 69, 73, 76, 77, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 99, 102, 109, 118, 316, 454, 62, 345, 346, 40, + 73, 75, 76, 77, 78, 79, 84, 93, 98, 100, + 112, 113, 114, 115, 116, 117, 118, 119, 125, 367, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 163, 164, 165, 166, 167, 168, 205, + 219, 254, 255, 290, 291, 314, 315, 321, 332, 389, + 391, 392, 393, 394, 396, 397, 405, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 462, 472, 305, 295, 299, 410, 295, 410, + 295, 410, 295, 410, 295, 410, 295, 410, 295, 409, + 411, 295, 414, 296, 8, 9, 293, 304, 479, 487, + 492, 496, 74, 76, 77, 83, 316, 316, 300, 40, + 73, 75, 76, 77, 78, 112, 113, 114, 115, 118, + 122, 123, 124, 226, 458, 298, 218, 316, 367, 295, + 298, 295, 290, 295, 292, 9, 317, 317, 296, 290, + 295, 313, 120, 121, 299, 316, 386, 454, 300, 167, + 475, 316, 221, 137, 452, 26, 316, 454, 295, 295, + 27, 28, 29, 30, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 316, 300, 300, 300, 316, 317, + 316, 316, 316, 458, 316, 316, 295, 295, 316, 21, + 300, 317, 460, 461, 447, 448, 458, 291, 312, 291, + 295, 76, 77, 78, 112, 113, 114, 301, 350, 347, + 454, 68, 155, 169, 174, 199, 200, 219, 254, 255, + 291, 314, 321, 332, 342, 360, 361, 371, 375, 383, + 405, 462, 472, 490, 295, 295, 387, 317, 317, 317, + 299, 111, 288, 299, 104, 454, 304, 198, 295, 390, + 56, 58, 59, 60, 395, 398, 399, 400, 401, 402, + 403, 315, 317, 392, 315, 317, 317, 318, 12, 32, + 33, 295, 318, 319, 315, 317, 366, 16, 18, 369, + 458, 454, 88, 313, 413, 367, 327, 295, 414, 295, + 317, 317, 317, 317, 318, 319, 319, 291, 293, 315, + 296, 317, 317, 209, 211, 214, 215, 291, 321, 332, + 462, 480, 482, 483, 485, 85, 209, 212, 291, 476, + 482, 484, 488, 42, 155, 207, 210, 291, 321, 332, + 493, 207, 210, 291, 321, 332, 497, 76, 77, 78, + 112, 113, 114, 295, 295, 316, 316, 300, 458, 313, + 466, 467, 290, 52, 454, 463, 464, 8, 293, 296, + 296, 326, 328, 329, 301, 359, 446, 20, 336, 476, + 137, 316, 20, 66, 67, 468, 317, 295, 295, 295, + 295, 317, 317, 317, 318, 317, 319, 318, 319, 317, + 317, 317, 318, 300, 453, 453, 453, 305, 454, 454, + 21, 293, 300, 302, 293, 317, 40, 52, 53, 70, + 120, 289, 292, 303, 351, 352, 355, 293, 111, 372, + 376, 317, 317, 491, 111, 288, 104, 454, 290, 290, + 290, 390, 290, 317, 313, 385, 299, 458, 304, 317, + 299, 316, 299, 316, 317, 367, 20, 295, 21, 387, + 449, 450, 451, 291, 454, 395, 57, 392, 404, 315, + 317, 392, 404, 404, 404, 63, 63, 295, 295, 316, + 454, 295, 414, 458, 315, 317, 445, 296, 313, 296, + 300, 296, 296, 296, 296, 296, 409, 296, 304, 9, + 293, 213, 298, 305, 317, 481, 298, 313, 414, 414, + 298, 298, 414, 414, 295, 216, 317, 316, 216, 316, + 216, 317, 3, 17, 22, 23, 25, 26, 27, 28, + 29, 30, 32, 33, 35, 36, 37, 38, 39, 81, + 83, 88, 104, 137, 227, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 249, 290, 381, 382, 455, 64, 363, 300, + 298, 296, 293, 328, 9, 298, 291, 293, 9, 298, + 291, 23, 24, 25, 27, 28, 29, 30, 32, 33, + 36, 37, 38, 39, 43, 44, 111, 321, 330, 412, + 413, 417, 299, 447, 295, 295, 316, 386, 29, 30, + 64, 203, 204, 206, 414, 316, 316, 296, 296, 317, + 317, 317, 318, 296, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 453, 295, 296, 296, 317, + 461, 458, 296, 295, 40, 353, 354, 352, 295, 316, + 357, 302, 454, 454, 73, 118, 316, 454, 73, 118, + 367, 316, 299, 316, 299, 316, 367, 20, 346, 373, + 377, 291, 492, 296, 137, 385, 40, 47, 49, 50, + 51, 88, 89, 90, 134, 135, 136, 138, 141, 296, + 251, 252, 253, 317, 226, 380, 317, 300, 317, 317, + 293, 300, 458, 386, 449, 458, 296, 293, 315, 317, + 315, 317, 317, 318, 20, 313, 296, 295, 293, 293, + 296, 296, 410, 410, 410, 410, 410, 410, 317, 317, + 317, 295, 304, 295, 296, 296, 295, 295, 296, 296, + 317, 453, 316, 64, 316, 296, 26, 27, 28, 29, + 30, 295, 456, 243, 235, 247, 295, 228, 248, 23, + 456, 456, 3, 22, 23, 25, 26, 27, 28, 29, + 30, 32, 33, 35, 36, 37, 38, 39, 230, 231, + 233, 234, 235, 237, 238, 241, 242, 244, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 305, 457, 296, 415, 299, 305, 315, 298, + 364, 29, 313, 317, 452, 468, 469, 466, 291, 298, + 290, 463, 290, 295, 313, 295, 299, 295, 299, 27, + 28, 29, 30, 295, 299, 295, 299, 295, 299, 295, + 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, + 299, 295, 299, 295, 299, 295, 299, 295, 299, 105, + 110, 321, 331, 414, 317, 302, 449, 449, 359, 446, + 315, 296, 296, 296, 296, 296, 449, 317, 295, 354, + 454, 348, 349, 454, 293, 356, 316, 197, 322, 316, + 458, 317, 317, 293, 458, 386, 291, 170, 171, 172, + 173, 291, 314, 321, 332, 374, 472, 173, 175, 176, + 291, 314, 321, 332, 378, 472, 291, 313, 296, 295, + 304, 304, 300, 300, 300, 300, 295, 386, 137, 300, + 300, 454, 364, 454, 296, 380, 451, 63, 63, 296, + 296, 316, 296, 449, 445, 445, 9, 293, 9, 481, + 296, 317, 250, 313, 299, 299, 26, 27, 28, 29, + 30, 271, 293, 299, 306, 291, 292, 300, 317, 23, + 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, + 38, 39, 45, 313, 412, 416, 295, 295, 290, 330, + 328, 468, 317, 317, 317, 295, 299, 295, 299, 295, + 299, 295, 299, 317, 317, 317, 317, 317, 317, 318, + 317, 317, 319, 317, 318, 319, 317, 317, 317, 317, + 317, 317, 317, 318, 317, 417, 317, 9, 45, 317, + 45, 52, 452, 317, 43, 92, 111, 333, 459, 296, + 300, 296, 296, 295, 295, 475, 296, 296, 317, 316, + 296, 293, 355, 356, 316, 300, 300, 454, 454, 256, + 366, 366, 366, 366, 366, 366, 366, 385, 317, 139, + 140, 139, 140, 381, 350, 315, 293, 20, 315, 315, + 317, 296, 317, 304, 298, 293, 317, 317, 313, 300, + 317, 292, 300, 27, 28, 29, 30, 317, 27, 28, + 29, 317, 330, 291, 291, 296, 300, 296, 300, 317, + 317, 317, 317, 317, 317, 318, 317, 296, 300, 296, + 300, 296, 300, 296, 300, 296, 296, 300, 296, 296, + 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, + 300, 296, 296, 300, 296, 9, 296, 300, 52, 452, + 299, 316, 302, 449, 449, 296, 356, 454, 295, 293, + 20, 367, 296, 296, 296, 295, 454, 386, 9, 481, + 317, 313, 300, 300, 300, 317, 296, 304, 304, 304, + 296, 291, 295, 295, 296, 300, 296, 300, 296, 300, + 296, 300, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 296, 295, 9, 300, 298, 296, + 296, 449, 454, 386, 458, 449, 301, 358, 359, 304, + 296, 293, 296, 455, 300, 317, 317, 317, 425, 423, + 295, 295, 295, 295, 424, 423, 422, 421, 419, 420, + 424, 423, 422, 421, 428, 426, 427, 417, 296, 358, + 454, 296, 295, 481, 313, 296, 296, 296, 296, 468, + 296, 317, 424, 423, 422, 421, 296, 317, 296, 296, + 317, 296, 318, 296, 317, 319, 296, 318, 319, 296, + 296, 296, 296, 296, 417, 9, 45, 296, 45, 52, + 296, 452, 364, 295, 20, 388, 449, 293, 296, 296, + 296, 296, 9, 449, 386, 40, 55, 71, 80, 94, + 95, 96, 97, 126, 127, 128, 129, 130, 131, 132, + 290, 296, 313, 296, 295, 295, 296, 256, 449, 317, + 104, 296, 296, 367, 458, 454, 20, 386, 358, 295, + 449, 296 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -2970,45 +3274,46 @@ static const yytype_int16 yyr1[] = 415, 415, 416, 416, 416, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, - 417, 418, 418, 418, 419, 419, 419, 420, 420, 421, - 421, 422, 422, 423, 423, 424, 424, 425, 425, 425, - 426, 426, 426, 426, 427, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 443, 443, 443, 443, 443, 443, 443, 443, - 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, - 443, 443, 443, 443, 444, 444, 444, 444, 444, 445, - 445, 446, 446, 447, 447, 448, 448, 449, 449, 450, - 450, 450, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 452, 452, 453, 453, 453, 453, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 455, 455, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 457, 457, 457, 457, 457, 457, + 417, 418, 418, 418, 418, 418, 418, 418, 418, 418, + 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, + 419, 419, 420, 420, 420, 421, 421, 422, 422, 423, + 423, 424, 424, 425, 425, 426, 426, 426, 427, 427, + 427, 427, 428, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, + 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, + 444, 444, 445, 445, 445, 445, 445, 446, 446, 447, + 447, 448, 448, 449, 449, 450, 450, 451, 451, 451, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 453, 453, 454, 454, 454, 454, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 456, 456, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 458, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 459, 459, 460, - 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, - 462, 462, 462, 463, 463, 464, 464, 465, 465, 466, - 467, 467, 468, 468, 468, 468, 468, 468, 468, 468, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 470, 470, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 471, 472, 472, - 473, 473, 474, 474, 475, 476, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 478, 478, 479, 479, - 479, 480, 480, 481, 481, 481, 481, 481, 481, 482, - 483, 484, 485, 485, 486, 486, 487, 487, 487, 487, - 488, 489, 490, 490, 490, 490, 490, 490, 490, 490, - 490, 490, 491, 491, 492, 492, 492, 492, 492, 492, - 492, 493, 493, 494, 494, 494, 495, 495, 496, 496, - 496, 496 + 458, 458, 458, 458, 458, 458, 458, 459, 459, 459, + 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + 459, 459, 459, 459, 459, 460, 460, 461, 461, 461, + 461, 461, 462, 462, 462, 462, 462, 462, 463, 463, + 463, 464, 464, 465, 465, 466, 466, 467, 468, 468, + 469, 469, 469, 469, 469, 469, 469, 469, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 471, 471, 472, 472, 472, 472, 472, + 472, 472, 472, 472, 472, 472, 473, 473, 474, 474, + 475, 475, 476, 477, 478, 478, 478, 478, 478, 478, + 478, 478, 478, 478, 479, 479, 480, 480, 480, 481, + 481, 482, 482, 482, 482, 482, 482, 483, 484, 485, + 486, 486, 487, 487, 488, 488, 488, 488, 489, 490, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 492, 492, 493, 493, 493, 493, 493, 493, 493, 494, + 494, 495, 495, 495, 496, 496, 497, 497, 497, 497 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -3061,45 +3366,46 @@ static const yytype_int8 yyr2[] = 1, 2, 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, - 7, 0, 2, 2, 0, 2, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, - 0, 2, 3, 2, 0, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 1, 2, 2, 2, 2, 2, 2, 3, 2, - 2, 2, 5, 3, 2, 2, 2, 2, 2, 5, - 4, 6, 2, 4, 0, 3, 3, 1, 1, 0, - 3, 0, 1, 1, 3, 0, 1, 1, 3, 1, - 3, 4, 4, 4, 4, 5, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 3, 4, 1, 0, 10, - 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 2, 3, 4, 6, 5, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, - 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 2, 1, 1, 0, 5, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, + 7, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 5, 5, 5, 4, 4, 4, 4, 4, 4, 0, + 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, + 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, + 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, + 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, + 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, + 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 3, 2, 2, 3, - 4, 2, 2, 2, 5, 5, 7, 4, 3, 2, - 3, 2, 1, 1, 2, 3, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, - 1, 1, 3, 2, 6, 7, 3, 3, 3, 6, - 0, 1, 3, 5, 6, 4, 4, 1, 3, 3, - 1, 1, 1, 1, 4, 1, 6, 6, 6, 4, + 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, + 2, 2, 5, 5, 7, 4, 3, 2, 3, 2, + 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, + 3, 2, 6, 7, 3, 3, 3, 6, 0, 1, + 3, 5, 6, 4, 4, 1, 3, 3, 1, 1, + 1, 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, - 4, 7, 6, 7, 6, 9, 8, 3, 8, 4, - 0, 2, 0, 1, 3, 3, 0, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 0, 2, 3, 1, - 1, 1, 1, 3, 8, 2, 3, 1, 1, 3, - 3, 3, 4, 6, 0, 2, 3, 1, 3, 1, - 4, 3, 0, 2, 2, 2, 3, 3, 3, 3, - 3, 3, 0, 2, 2, 3, 3, 4, 2, 1, - 1, 3, 5, 0, 2, 2, 0, 2, 4, 3, - 1, 1 + 1, 1, 1, 1, 1, 3, 2, 5, 4, 7, + 6, 7, 6, 9, 8, 3, 8, 4, 0, 2, + 0, 1, 3, 3, 0, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 0, 2, 3, 1, 1, 1, + 1, 3, 8, 2, 3, 1, 1, 3, 3, 3, + 4, 6, 0, 2, 3, 1, 3, 1, 4, 3, + 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 0, 2, 2, 3, 3, 4, 2, 1, 1, 3, + 5, 0, 2, 2, 0, 2, 4, 3, 1, 1 }; @@ -3563,52 +3869,52 @@ yyparse (void) switch (yyn) { case 4: /* decl: classHead '{' classDecls '}' */ -#line 194 "./asmparse.y" +#line 195 "asmparse.y" { PASM->EndClass(); } -#line 3569 "asmparse.cpp" +#line 3875 "asmparse.cpp" break; case 5: /* decl: nameSpaceHead '{' decls '}' */ -#line 195 "./asmparse.y" +#line 196 "asmparse.y" { PASM->EndNameSpace(); } -#line 3575 "asmparse.cpp" +#line 3881 "asmparse.cpp" break; case 6: /* decl: methodHead methodDecls '}' */ -#line 196 "./asmparse.y" +#line 197 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 3584 "asmparse.cpp" +#line 3890 "asmparse.cpp" break; case 13: /* decl: assemblyHead '{' assemblyDecls '}' */ -#line 206 "./asmparse.y" +#line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 3590 "asmparse.cpp" +#line 3896 "asmparse.cpp" break; case 14: /* decl: assemblyRefHead '{' assemblyRefDecls '}' */ -#line 207 "./asmparse.y" +#line 208 "asmparse.y" { PASMM->EndAssembly(); } -#line 3596 "asmparse.cpp" +#line 3902 "asmparse.cpp" break; case 15: /* decl: exptypeHead '{' exptypeDecls '}' */ -#line 208 "./asmparse.y" +#line 209 "asmparse.y" { PASMM->EndComType(); } -#line 3602 "asmparse.cpp" +#line 3908 "asmparse.cpp" break; case 16: /* decl: manifestResHead '{' manifestResDecls '}' */ -#line 209 "./asmparse.y" +#line 210 "asmparse.y" { PASMM->EndManifestRes(); } -#line 3608 "asmparse.cpp" +#line 3914 "asmparse.cpp" break; case 20: /* decl: _SUBSYSTEM int32 */ -#line 213 "./asmparse.y" +#line 214 "asmparse.y" { #ifdef _PREFAST_ #pragma warning(push) @@ -3619,942 +3925,942 @@ yyparse (void) #pragma warning(pop) #endif } -#line 3623 "asmparse.cpp" +#line 3929 "asmparse.cpp" break; case 21: /* decl: _CORFLAGS int32 */ -#line 223 "./asmparse.y" +#line 224 "asmparse.y" { PASM->m_dwComImageFlags = (yyvsp[0].int32); } -#line 3629 "asmparse.cpp" +#line 3935 "asmparse.cpp" break; case 22: /* decl: _FILE ALIGNMENT_ int32 */ -#line 224 "./asmparse.y" +#line 225 "asmparse.y" { PASM->m_dwFileAlignment = (yyvsp[0].int32); if(((yyvsp[0].int32) & ((yyvsp[0].int32) - 1))||((yyvsp[0].int32) < 0x200)||((yyvsp[0].int32) > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 3637 "asmparse.cpp" +#line 3943 "asmparse.cpp" break; case 23: /* decl: _IMAGEBASE int64 */ -#line 227 "./asmparse.y" +#line 228 "asmparse.y" { PASM->m_stBaseAddress = (ULONGLONG)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 3645 "asmparse.cpp" +#line 3951 "asmparse.cpp" break; case 24: /* decl: _STACKRESERVE int64 */ -#line 230 "./asmparse.y" +#line 231 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); } -#line 3651 "asmparse.cpp" +#line 3957 "asmparse.cpp" break; case 29: /* decl: _MSCORLIB */ -#line 235 "./asmparse.y" +#line 236 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 3657 "asmparse.cpp" +#line 3963 "asmparse.cpp" break; case 32: /* compQstring: QSTRING */ -#line 242 "./asmparse.y" +#line 243 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 3663 "asmparse.cpp" +#line 3969 "asmparse.cpp" break; case 33: /* compQstring: compQstring '+' QSTRING */ -#line 243 "./asmparse.y" +#line 244 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 3669 "asmparse.cpp" +#line 3975 "asmparse.cpp" break; case 34: /* languageDecl: _LANGUAGE SQSTRING */ -#line 246 "./asmparse.y" +#line 247 "asmparse.y" { LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLang)); } -#line 3675 "asmparse.cpp" +#line 3981 "asmparse.cpp" break; case 35: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING */ -#line 247 "./asmparse.y" +#line 248 "asmparse.y" { LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLang)); LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLangVendor));} -#line 3682 "asmparse.cpp" +#line 3988 "asmparse.cpp" break; case 36: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING */ -#line 249 "./asmparse.y" +#line 250 "asmparse.y" { LPCSTRToGuid((yyvsp[-4].string),&(PASM->m_guidLang)); LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLangVendor)); LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidDoc));} -#line 3690 "asmparse.cpp" +#line 3996 "asmparse.cpp" break; case 37: /* id: ID */ -#line 254 "./asmparse.y" +#line 255 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 3696 "asmparse.cpp" +#line 4002 "asmparse.cpp" break; case 38: /* id: SQSTRING */ -#line 255 "./asmparse.y" +#line 256 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 3702 "asmparse.cpp" +#line 4008 "asmparse.cpp" break; case 39: /* dottedName: id */ -#line 258 "./asmparse.y" +#line 259 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 3708 "asmparse.cpp" +#line 4014 "asmparse.cpp" break; case 40: /* dottedName: DOTTEDNAME */ -#line 259 "./asmparse.y" +#line 260 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 3714 "asmparse.cpp" +#line 4020 "asmparse.cpp" break; case 41: /* dottedName: dottedName '.' dottedName */ -#line 260 "./asmparse.y" +#line 261 "asmparse.y" { (yyval.string) = newStringWDel((yyvsp[-2].string), '.', (yyvsp[0].string)); } -#line 3720 "asmparse.cpp" +#line 4026 "asmparse.cpp" break; case 42: /* int32: INT32_T */ -#line 263 "./asmparse.y" +#line 264 "asmparse.y" { (yyval.int32) = (yyvsp[0].int32); } -#line 3726 "asmparse.cpp" +#line 4032 "asmparse.cpp" break; case 43: /* int64: INT64_T */ -#line 266 "./asmparse.y" +#line 267 "asmparse.y" { (yyval.int64) = (yyvsp[0].int64); } -#line 3732 "asmparse.cpp" +#line 4038 "asmparse.cpp" break; case 44: /* int64: INT32_T */ -#line 267 "./asmparse.y" +#line 268 "asmparse.y" { (yyval.int64) = neg ? new __int64((yyvsp[0].int32)) : new __int64((unsigned)(yyvsp[0].int32)); } -#line 3738 "asmparse.cpp" +#line 4044 "asmparse.cpp" break; case 45: /* float64: FLOAT64 */ -#line 270 "./asmparse.y" +#line 271 "asmparse.y" { (yyval.float64) = (yyvsp[0].float64); } -#line 3744 "asmparse.cpp" +#line 4050 "asmparse.cpp" break; case 46: /* float64: FLOAT32_ '(' int32 ')' */ -#line 271 "./asmparse.y" +#line 272 "asmparse.y" { float f; *((__int32*) (&f)) = (yyvsp[-1].int32); (yyval.float64) = new double(f); } -#line 3750 "asmparse.cpp" +#line 4056 "asmparse.cpp" break; case 47: /* float64: FLOAT64_ '(' int64 ')' */ -#line 272 "./asmparse.y" +#line 273 "asmparse.y" { (yyval.float64) = (double*) (yyvsp[-1].int64); } -#line 3756 "asmparse.cpp" +#line 4062 "asmparse.cpp" break; case 48: /* typedefDecl: _TYPEDEF type AS_ dottedName */ -#line 276 "./asmparse.y" +#line 277 "asmparse.y" { PASM->AddTypeDef((yyvsp[-2].binstr),(yyvsp[0].string)); } -#line 3762 "asmparse.cpp" +#line 4068 "asmparse.cpp" break; case 49: /* typedefDecl: _TYPEDEF className AS_ dottedName */ -#line 277 "./asmparse.y" +#line 278 "asmparse.y" { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } -#line 3768 "asmparse.cpp" +#line 4074 "asmparse.cpp" break; case 50: /* typedefDecl: _TYPEDEF memberRef AS_ dottedName */ -#line 278 "./asmparse.y" +#line 279 "asmparse.y" { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } -#line 3774 "asmparse.cpp" +#line 4080 "asmparse.cpp" break; case 51: /* typedefDecl: _TYPEDEF customDescr AS_ dottedName */ -#line 279 "./asmparse.y" +#line 280 "asmparse.y" { (yyvsp[-2].cad)->tkOwner = 0; PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } -#line 3780 "asmparse.cpp" +#line 4086 "asmparse.cpp" break; case 52: /* typedefDecl: _TYPEDEF customDescrWithOwner AS_ dottedName */ -#line 280 "./asmparse.y" +#line 281 "asmparse.y" { PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } -#line 3786 "asmparse.cpp" +#line 4092 "asmparse.cpp" break; case 53: /* compControl: P_DEFINE dottedName */ -#line 285 "./asmparse.y" +#line 286 "asmparse.y" { DefineVar((yyvsp[0].string), NULL); } -#line 3792 "asmparse.cpp" +#line 4098 "asmparse.cpp" break; case 54: /* compControl: P_DEFINE dottedName compQstring */ -#line 286 "./asmparse.y" +#line 287 "asmparse.y" { DefineVar((yyvsp[-1].string), (yyvsp[0].binstr)); } -#line 3798 "asmparse.cpp" +#line 4104 "asmparse.cpp" break; case 55: /* compControl: P_UNDEF dottedName */ -#line 287 "./asmparse.y" +#line 288 "asmparse.y" { UndefVar((yyvsp[0].string)); } -#line 3804 "asmparse.cpp" +#line 4110 "asmparse.cpp" break; case 56: /* compControl: P_IFDEF dottedName */ -#line 288 "./asmparse.y" +#line 289 "asmparse.y" { SkipToken = !IsVarDefined((yyvsp[0].string)); IfEndif++; } -#line 3812 "asmparse.cpp" +#line 4118 "asmparse.cpp" break; case 57: /* compControl: P_IFNDEF dottedName */ -#line 291 "./asmparse.y" +#line 292 "asmparse.y" { SkipToken = IsVarDefined((yyvsp[0].string)); IfEndif++; } -#line 3820 "asmparse.cpp" +#line 4126 "asmparse.cpp" break; case 58: /* compControl: P_ELSE */ -#line 294 "./asmparse.y" +#line 295 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 3826 "asmparse.cpp" +#line 4132 "asmparse.cpp" break; case 59: /* compControl: P_ENDIF */ -#line 295 "./asmparse.y" +#line 296 "asmparse.y" { if(IfEndif == 0) PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 3835 "asmparse.cpp" +#line 4141 "asmparse.cpp" break; case 60: /* compControl: P_INCLUDE QSTRING */ -#line 299 "./asmparse.y" +#line 300 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 3841 "asmparse.cpp" +#line 4147 "asmparse.cpp" break; case 61: /* compControl: ';' */ -#line 300 "./asmparse.y" +#line 301 "asmparse.y" { } -#line 3847 "asmparse.cpp" +#line 4153 "asmparse.cpp" break; case 62: /* customDescr: _CUSTOM customType */ -#line 304 "./asmparse.y" +#line 305 "asmparse.y" { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[0].token), NULL); } -#line 3853 "asmparse.cpp" +#line 4159 "asmparse.cpp" break; case 63: /* customDescr: _CUSTOM customType '=' compQstring */ -#line 305 "./asmparse.y" +#line 306 "asmparse.y" { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].token), (yyvsp[0].binstr)); } -#line 3859 "asmparse.cpp" +#line 4165 "asmparse.cpp" break; case 64: /* customDescr: _CUSTOM customType '=' '{' customBlobDescr '}' */ -#line 306 "./asmparse.y" +#line 307 "asmparse.y" { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 3865 "asmparse.cpp" +#line 4171 "asmparse.cpp" break; case 65: /* customDescr: customHead bytes ')' */ -#line 307 "./asmparse.y" +#line 308 "asmparse.y" { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } -#line 3871 "asmparse.cpp" +#line 4177 "asmparse.cpp" break; case 66: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType */ -#line 310 "./asmparse.y" +#line 311 "asmparse.y" { (yyval.cad) = new CustomDescr((yyvsp[-2].token), (yyvsp[0].token), NULL); } -#line 3877 "asmparse.cpp" +#line 4183 "asmparse.cpp" break; case 67: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' compQstring */ -#line 311 "./asmparse.y" +#line 312 "asmparse.y" { (yyval.cad) = new CustomDescr((yyvsp[-4].token), (yyvsp[-2].token), (yyvsp[0].binstr)); } -#line 3883 "asmparse.cpp" +#line 4189 "asmparse.cpp" break; case 68: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}' */ -#line 313 "./asmparse.y" +#line 314 "asmparse.y" { (yyval.cad) = new CustomDescr((yyvsp[-6].token), (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 3889 "asmparse.cpp" +#line 4195 "asmparse.cpp" break; case 69: /* customDescrWithOwner: customHeadWithOwner bytes ')' */ -#line 314 "./asmparse.y" +#line 315 "asmparse.y" { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } -#line 3895 "asmparse.cpp" +#line 4201 "asmparse.cpp" break; case 70: /* customHead: _CUSTOM customType '=' '(' */ -#line 317 "./asmparse.y" +#line 318 "asmparse.y" { (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } -#line 3901 "asmparse.cpp" +#line 4207 "asmparse.cpp" break; case 71: /* customHeadWithOwner: _CUSTOM '(' ownerType ')' customType '=' '(' */ -#line 321 "./asmparse.y" +#line 322 "asmparse.y" { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = (yyvsp[-4].token); (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } -#line 3909 "asmparse.cpp" +#line 4215 "asmparse.cpp" break; case 72: /* customType: methodRef */ -#line 326 "./asmparse.y" +#line 327 "asmparse.y" { (yyval.token) = (yyvsp[0].token); } -#line 3915 "asmparse.cpp" +#line 4221 "asmparse.cpp" break; case 73: /* ownerType: typeSpec */ -#line 329 "./asmparse.y" +#line 330 "asmparse.y" { (yyval.token) = (yyvsp[0].token); } -#line 3921 "asmparse.cpp" +#line 4227 "asmparse.cpp" break; case 74: /* ownerType: memberRef */ -#line 330 "./asmparse.y" +#line 331 "asmparse.y" { (yyval.token) = (yyvsp[0].token); } -#line 3927 "asmparse.cpp" +#line 4233 "asmparse.cpp" break; case 75: /* customBlobDescr: customBlobArgs customBlobNVPairs */ -#line 334 "./asmparse.y" +#line 335 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt16(VAL16(nCustomBlobNVPairs)); (yyval.binstr)->append((yyvsp[0].binstr)); nCustomBlobNVPairs = 0; } -#line 3936 "asmparse.cpp" +#line 4242 "asmparse.cpp" break; case 76: /* customBlobArgs: %empty */ -#line 340 "./asmparse.y" +#line 341 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt16(VAL16(0x0001)); } -#line 3942 "asmparse.cpp" +#line 4248 "asmparse.cpp" break; case 77: /* customBlobArgs: customBlobArgs serInit */ -#line 341 "./asmparse.y" +#line 342 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); } -#line 3949 "asmparse.cpp" +#line 4255 "asmparse.cpp" break; case 78: /* customBlobArgs: customBlobArgs compControl */ -#line 343 "./asmparse.y" +#line 344 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 3955 "asmparse.cpp" +#line 4261 "asmparse.cpp" break; case 79: /* customBlobNVPairs: %empty */ -#line 346 "./asmparse.y" +#line 347 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 3961 "asmparse.cpp" +#line 4267 "asmparse.cpp" break; case 80: /* customBlobNVPairs: customBlobNVPairs fieldOrProp serializType dottedName '=' serInit */ -#line 348 "./asmparse.y" +#line 349 "asmparse.y" { (yyval.binstr) = (yyvsp[-5].binstr); (yyval.binstr)->appendInt8((yyvsp[-4].int32)); (yyval.binstr)->append((yyvsp[-3].binstr)); AppendStringWithLength((yyval.binstr),(yyvsp[-2].string)); AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); nCustomBlobNVPairs++; } -#line 3971 "asmparse.cpp" +#line 4277 "asmparse.cpp" break; case 81: /* customBlobNVPairs: customBlobNVPairs compControl */ -#line 353 "./asmparse.y" +#line 354 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 3977 "asmparse.cpp" +#line 4283 "asmparse.cpp" break; case 82: /* fieldOrProp: FIELD_ */ -#line 356 "./asmparse.y" +#line 357 "asmparse.y" { (yyval.int32) = SERIALIZATION_TYPE_FIELD; } -#line 3983 "asmparse.cpp" +#line 4289 "asmparse.cpp" break; case 83: /* fieldOrProp: PROPERTY_ */ -#line 357 "./asmparse.y" +#line 358 "asmparse.y" { (yyval.int32) = SERIALIZATION_TYPE_PROPERTY; } -#line 3989 "asmparse.cpp" +#line 4295 "asmparse.cpp" break; case 84: /* customAttrDecl: customDescr */ -#line 360 "./asmparse.y" +#line 361 "asmparse.y" { if((yyvsp[0].cad)->tkOwner && !(yyvsp[0].cad)->tkInterfacePair) PASM->DefineCV((yyvsp[0].cad)); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); } -#line 3998 "asmparse.cpp" +#line 4304 "asmparse.cpp" break; case 85: /* customAttrDecl: customDescrWithOwner */ -#line 364 "./asmparse.y" +#line 365 "asmparse.y" { PASM->DefineCV((yyvsp[0].cad)); } -#line 4004 "asmparse.cpp" +#line 4310 "asmparse.cpp" break; case 86: /* customAttrDecl: TYPEDEF_CA */ -#line 365 "./asmparse.y" +#line 366 "asmparse.y" { CustomDescr* pNew = new CustomDescr((yyvsp[0].tdd)->m_pCA); if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; if(pNew->tkOwner) PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 4015 "asmparse.cpp" +#line 4321 "asmparse.cpp" break; case 87: /* serializType: simpleType */ -#line 373 "./asmparse.y" +#line 374 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 4021 "asmparse.cpp" +#line 4327 "asmparse.cpp" break; case 88: /* serializType: TYPE_ */ -#line 374 "./asmparse.y" +#line 375 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 4027 "asmparse.cpp" +#line 4333 "asmparse.cpp" break; case 89: /* serializType: OBJECT_ */ -#line 375 "./asmparse.y" +#line 376 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 4033 "asmparse.cpp" +#line 4339 "asmparse.cpp" break; case 90: /* serializType: ENUM_ CLASS_ SQSTRING */ -#line 376 "./asmparse.y" +#line 377 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); } -#line 4040 "asmparse.cpp" +#line 4346 "asmparse.cpp" break; case 91: /* serializType: ENUM_ className */ -#line 378 "./asmparse.y" +#line 379 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token))); } -#line 4047 "asmparse.cpp" +#line 4353 "asmparse.cpp" break; case 92: /* serializType: serializType '[' ']' */ -#line 380 "./asmparse.y" +#line 381 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 4053 "asmparse.cpp" +#line 4359 "asmparse.cpp" break; case 93: /* moduleHead: _MODULE */ -#line 385 "./asmparse.y" +#line 386 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 4059 "asmparse.cpp" +#line 4365 "asmparse.cpp" break; case 94: /* moduleHead: _MODULE dottedName */ -#line 386 "./asmparse.y" +#line 387 "asmparse.y" { PASMM->SetModuleName((yyvsp[0].string)); PASM->m_tkCurrentCVOwner=1; } -#line 4065 "asmparse.cpp" +#line 4371 "asmparse.cpp" break; case 95: /* moduleHead: _MODULE EXTERN_ dottedName */ -#line 387 "./asmparse.y" +#line 388 "asmparse.y" { BinStr* pbs = new BinStr(); unsigned L = (unsigned)strlen((yyvsp[0].string)); memcpy((char*)(pbs->getBuff(L)),(yyvsp[0].string),L); PASM->EmitImport(pbs); delete pbs;} -#line 4074 "asmparse.cpp" +#line 4380 "asmparse.cpp" break; case 96: /* vtfixupDecl: _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id */ -#line 394 "./asmparse.y" +#line 395 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (yyvsp[0].string))); } -#line 4081 "asmparse.cpp" +#line 4387 "asmparse.cpp" break; case 97: /* vtfixupAttr: %empty */ -#line 398 "./asmparse.y" +#line 399 "asmparse.y" { (yyval.int32) = 0; } -#line 4087 "asmparse.cpp" +#line 4393 "asmparse.cpp" break; case 98: /* vtfixupAttr: vtfixupAttr INT32_ */ -#line 399 "./asmparse.y" +#line 400 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_32BIT; } -#line 4093 "asmparse.cpp" +#line 4399 "asmparse.cpp" break; case 99: /* vtfixupAttr: vtfixupAttr INT64_ */ -#line 400 "./asmparse.y" +#line 401 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_64BIT; } -#line 4099 "asmparse.cpp" +#line 4405 "asmparse.cpp" break; case 100: /* vtfixupAttr: vtfixupAttr FROMUNMANAGED_ */ -#line 401 "./asmparse.y" +#line 402 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED; } -#line 4105 "asmparse.cpp" +#line 4411 "asmparse.cpp" break; case 101: /* vtfixupAttr: vtfixupAttr CALLMOSTDERIVED_ */ -#line 402 "./asmparse.y" +#line 403 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_CALL_MOST_DERIVED; } -#line 4111 "asmparse.cpp" +#line 4417 "asmparse.cpp" break; case 102: /* vtfixupAttr: vtfixupAttr RETAINAPPDOMAIN_ */ -#line 403 "./asmparse.y" +#line 404 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 4117 "asmparse.cpp" +#line 4423 "asmparse.cpp" break; case 103: /* vtableDecl: vtableHead bytes ')' */ -#line 406 "./asmparse.y" +#line 407 "asmparse.y" { PASM->m_pVTable = (yyvsp[-1].binstr); } -#line 4123 "asmparse.cpp" +#line 4429 "asmparse.cpp" break; case 104: /* vtableHead: _VTABLE '=' '(' */ -#line 409 "./asmparse.y" +#line 410 "asmparse.y" { bParsingByteArray = TRUE; } -#line 4129 "asmparse.cpp" +#line 4435 "asmparse.cpp" break; case 105: /* nameSpaceHead: _NAMESPACE dottedName */ -#line 413 "./asmparse.y" +#line 414 "asmparse.y" { PASM->StartNameSpace((yyvsp[0].string)); } -#line 4135 "asmparse.cpp" +#line 4441 "asmparse.cpp" break; case 106: /* _class: _CLASS */ -#line 416 "./asmparse.y" +#line 417 "asmparse.y" { newclass = TRUE; } -#line 4141 "asmparse.cpp" +#line 4447 "asmparse.cpp" break; case 107: /* classHeadBegin: _class classAttr dottedName typarsClause */ -#line 419 "./asmparse.y" +#line 420 "asmparse.y" { if((yyvsp[0].typarlist)) FixupConstraints(); PASM->StartClass((yyvsp[-1].string), (yyvsp[-2].classAttr), (yyvsp[0].typarlist)); TyParFixupList.RESET(false); newclass = FALSE; } -#line 4151 "asmparse.cpp" +#line 4457 "asmparse.cpp" break; case 108: /* classHead: classHeadBegin extendsClause implClause */ -#line 425 "./asmparse.y" +#line 426 "asmparse.y" { PASM->AddClass(); } -#line 4157 "asmparse.cpp" +#line 4463 "asmparse.cpp" break; case 109: /* classAttr: %empty */ -#line 428 "./asmparse.y" +#line 429 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) 0; } -#line 4163 "asmparse.cpp" +#line 4469 "asmparse.cpp" break; case 110: /* classAttr: classAttr PUBLIC_ */ -#line 429 "./asmparse.y" +#line 430 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdPublic); } -#line 4169 "asmparse.cpp" +#line 4475 "asmparse.cpp" break; case 111: /* classAttr: classAttr PRIVATE_ */ -#line 430 "./asmparse.y" +#line 431 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdNotPublic); } -#line 4175 "asmparse.cpp" +#line 4481 "asmparse.cpp" break; case 112: /* classAttr: classAttr VALUE_ */ -#line 431 "./asmparse.y" +#line 432 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x80000000 | tdSealed); } -#line 4181 "asmparse.cpp" +#line 4487 "asmparse.cpp" break; case 113: /* classAttr: classAttr ENUM_ */ -#line 432 "./asmparse.y" +#line 433 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x40000000); } -#line 4187 "asmparse.cpp" +#line 4493 "asmparse.cpp" break; case 114: /* classAttr: classAttr INTERFACE_ */ -#line 433 "./asmparse.y" +#line 434 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdInterface | tdAbstract); } -#line 4193 "asmparse.cpp" +#line 4499 "asmparse.cpp" break; case 115: /* classAttr: classAttr SEALED_ */ -#line 434 "./asmparse.y" +#line 435 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSealed); } -#line 4199 "asmparse.cpp" +#line 4505 "asmparse.cpp" break; case 116: /* classAttr: classAttr ABSTRACT_ */ -#line 435 "./asmparse.y" +#line 436 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdAbstract); } -#line 4205 "asmparse.cpp" +#line 4511 "asmparse.cpp" break; case 117: /* classAttr: classAttr AUTO_ */ -#line 436 "./asmparse.y" +#line 437 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdAutoLayout); } -#line 4211 "asmparse.cpp" +#line 4517 "asmparse.cpp" break; case 118: /* classAttr: classAttr SEQUENTIAL_ */ -#line 437 "./asmparse.y" +#line 438 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdSequentialLayout); } -#line 4217 "asmparse.cpp" +#line 4523 "asmparse.cpp" break; case 119: /* classAttr: classAttr EXPLICIT_ */ -#line 438 "./asmparse.y" +#line 439 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdExplicitLayout); } -#line 4223 "asmparse.cpp" +#line 4529 "asmparse.cpp" break; case 120: /* classAttr: classAttr ANSI_ */ -#line 439 "./asmparse.y" +#line 440 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAnsiClass); } -#line 4229 "asmparse.cpp" +#line 4535 "asmparse.cpp" break; case 121: /* classAttr: classAttr UNICODE_ */ -#line 440 "./asmparse.y" +#line 441 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdUnicodeClass); } -#line 4235 "asmparse.cpp" +#line 4541 "asmparse.cpp" break; case 122: /* classAttr: classAttr AUTOCHAR_ */ -#line 441 "./asmparse.y" +#line 442 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAutoClass); } -#line 4241 "asmparse.cpp" +#line 4547 "asmparse.cpp" break; case 123: /* classAttr: classAttr IMPORT_ */ -#line 442 "./asmparse.y" +#line 443 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdImport); } -#line 4247 "asmparse.cpp" +#line 4553 "asmparse.cpp" break; case 124: /* classAttr: classAttr SERIALIZABLE_ */ -#line 443 "./asmparse.y" +#line 444 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSerializable); } -#line 4253 "asmparse.cpp" +#line 4559 "asmparse.cpp" break; case 125: /* classAttr: classAttr WINDOWSRUNTIME_ */ -#line 444 "./asmparse.y" +#line 445 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdWindowsRuntime); } -#line 4259 "asmparse.cpp" +#line 4565 "asmparse.cpp" break; case 126: /* classAttr: classAttr NESTED_ PUBLIC_ */ -#line 445 "./asmparse.y" +#line 446 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPublic); } -#line 4265 "asmparse.cpp" +#line 4571 "asmparse.cpp" break; case 127: /* classAttr: classAttr NESTED_ PRIVATE_ */ -#line 446 "./asmparse.y" +#line 447 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPrivate); } -#line 4271 "asmparse.cpp" +#line 4577 "asmparse.cpp" break; case 128: /* classAttr: classAttr NESTED_ FAMILY_ */ -#line 447 "./asmparse.y" +#line 448 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamily); } -#line 4277 "asmparse.cpp" +#line 4583 "asmparse.cpp" break; case 129: /* classAttr: classAttr NESTED_ ASSEMBLY_ */ -#line 448 "./asmparse.y" +#line 449 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedAssembly); } -#line 4283 "asmparse.cpp" +#line 4589 "asmparse.cpp" break; case 130: /* classAttr: classAttr NESTED_ FAMANDASSEM_ */ -#line 449 "./asmparse.y" +#line 450 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 4289 "asmparse.cpp" +#line 4595 "asmparse.cpp" break; case 131: /* classAttr: classAttr NESTED_ FAMORASSEM_ */ -#line 450 "./asmparse.y" +#line 451 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 4295 "asmparse.cpp" +#line 4601 "asmparse.cpp" break; case 132: /* classAttr: classAttr BEFOREFIELDINIT_ */ -#line 451 "./asmparse.y" +#line 452 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdBeforeFieldInit); } -#line 4301 "asmparse.cpp" +#line 4607 "asmparse.cpp" break; case 133: /* classAttr: classAttr SPECIALNAME_ */ -#line 452 "./asmparse.y" +#line 453 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSpecialName); } -#line 4307 "asmparse.cpp" +#line 4613 "asmparse.cpp" break; case 134: /* classAttr: classAttr RTSPECIALNAME_ */ -#line 453 "./asmparse.y" +#line 454 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr)); } -#line 4313 "asmparse.cpp" +#line 4619 "asmparse.cpp" break; case 135: /* classAttr: classAttr FLAGS_ '(' int32 ')' */ -#line 454 "./asmparse.y" +#line 455 "asmparse.y" { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].int32)); } -#line 4319 "asmparse.cpp" +#line 4625 "asmparse.cpp" break; case 137: /* extendsClause: EXTENDS_ typeSpec */ -#line 458 "./asmparse.y" +#line 459 "asmparse.y" { PASM->m_crExtends = (yyvsp[0].token); } -#line 4325 "asmparse.cpp" +#line 4631 "asmparse.cpp" break; case 142: /* implList: implList ',' typeSpec */ -#line 469 "./asmparse.y" +#line 470 "asmparse.y" { PASM->AddToImplList((yyvsp[0].token)); } -#line 4331 "asmparse.cpp" +#line 4637 "asmparse.cpp" break; case 143: /* implList: typeSpec */ -#line 470 "./asmparse.y" +#line 471 "asmparse.y" { PASM->AddToImplList((yyvsp[0].token)); } -#line 4337 "asmparse.cpp" +#line 4643 "asmparse.cpp" break; case 144: /* typeList: %empty */ -#line 474 "./asmparse.y" +#line 475 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 4343 "asmparse.cpp" +#line 4649 "asmparse.cpp" break; case 145: /* typeList: typeListNotEmpty */ -#line 475 "./asmparse.y" +#line 476 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 4349 "asmparse.cpp" +#line 4655 "asmparse.cpp" break; case 146: /* typeListNotEmpty: typeSpec */ -#line 478 "./asmparse.y" +#line 479 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[0].token)); } -#line 4355 "asmparse.cpp" +#line 4661 "asmparse.cpp" break; case 147: /* typeListNotEmpty: typeListNotEmpty ',' typeSpec */ -#line 479 "./asmparse.y" +#line 480 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->appendInt32((yyvsp[0].token)); } -#line 4361 "asmparse.cpp" +#line 4667 "asmparse.cpp" break; case 148: /* typarsClause: %empty */ -#line 482 "./asmparse.y" +#line 483 "asmparse.y" { (yyval.typarlist) = NULL; PASM->m_TyParList = NULL;} -#line 4367 "asmparse.cpp" +#line 4673 "asmparse.cpp" break; case 149: /* typarsClause: '<' typars '>' */ -#line 483 "./asmparse.y" +#line 484 "asmparse.y" { (yyval.typarlist) = (yyvsp[-1].typarlist); PASM->m_TyParList = (yyvsp[-1].typarlist);} -#line 4373 "asmparse.cpp" +#line 4679 "asmparse.cpp" break; case 150: /* typarAttrib: '+' */ -#line 486 "./asmparse.y" +#line 487 "asmparse.y" { (yyval.int32) = gpCovariant; } -#line 4379 "asmparse.cpp" +#line 4685 "asmparse.cpp" break; case 151: /* typarAttrib: '-' */ -#line 487 "./asmparse.y" +#line 488 "asmparse.y" { (yyval.int32) = gpContravariant; } -#line 4385 "asmparse.cpp" +#line 4691 "asmparse.cpp" break; case 152: /* typarAttrib: CLASS_ */ -#line 488 "./asmparse.y" +#line 489 "asmparse.y" { (yyval.int32) = gpReferenceTypeConstraint; } -#line 4391 "asmparse.cpp" +#line 4697 "asmparse.cpp" break; case 153: /* typarAttrib: VALUETYPE_ */ -#line 489 "./asmparse.y" +#line 490 "asmparse.y" { (yyval.int32) = gpNotNullableValueTypeConstraint; } -#line 4397 "asmparse.cpp" +#line 4703 "asmparse.cpp" break; case 154: /* typarAttrib: BYREFLIKE_ */ -#line 490 "./asmparse.y" +#line 491 "asmparse.y" { (yyval.int32) = gpAcceptByRefLike; } -#line 4403 "asmparse.cpp" +#line 4709 "asmparse.cpp" break; case 155: /* typarAttrib: _CTOR */ -#line 491 "./asmparse.y" +#line 492 "asmparse.y" { (yyval.int32) = gpDefaultConstructorConstraint; } -#line 4409 "asmparse.cpp" +#line 4715 "asmparse.cpp" break; case 156: /* typarAttrib: FLAGS_ '(' int32 ')' */ -#line 492 "./asmparse.y" +#line 493 "asmparse.y" { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } -#line 4415 "asmparse.cpp" +#line 4721 "asmparse.cpp" break; case 157: /* typarAttribs: %empty */ -#line 495 "./asmparse.y" +#line 496 "asmparse.y" { (yyval.int32) = 0; } -#line 4421 "asmparse.cpp" +#line 4727 "asmparse.cpp" break; case 158: /* typarAttribs: typarAttrib typarAttribs */ -#line 496 "./asmparse.y" +#line 497 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } -#line 4427 "asmparse.cpp" +#line 4733 "asmparse.cpp" break; case 159: /* conTyparAttrib: FLAGS_ '(' int32 ')' */ -#line 499 "./asmparse.y" +#line 500 "asmparse.y" { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } -#line 4433 "asmparse.cpp" +#line 4739 "asmparse.cpp" break; case 160: /* conTyparAttribs: %empty */ -#line 502 "./asmparse.y" +#line 503 "asmparse.y" { (yyval.int32) = 0; } -#line 4439 "asmparse.cpp" +#line 4745 "asmparse.cpp" break; case 161: /* conTyparAttribs: conTyparAttrib conTyparAttribs */ -#line 503 "./asmparse.y" +#line 504 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } -#line 4445 "asmparse.cpp" +#line 4751 "asmparse.cpp" break; case 162: /* typars: CONST_ conTyparAttribs typeSpec dottedName typarsRest */ -#line 506 "./asmparse.y" +#line 507 "asmparse.y" {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].token), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist)); } -#line 4451 "asmparse.cpp" +#line 4757 "asmparse.cpp" break; case 163: /* typars: typarAttribs tyBound dottedName typarsRest */ -#line 507 "./asmparse.y" +#line 508 "asmparse.y" {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].binstr), (yyvsp[-1].string), (yyvsp[0].typarlist));} -#line 4457 "asmparse.cpp" +#line 4763 "asmparse.cpp" break; case 164: /* typars: typarAttribs dottedName typarsRest */ -#line 508 "./asmparse.y" +#line 509 "asmparse.y" {(yyval.typarlist) = new TyParList((yyvsp[-2].int32), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist));} -#line 4463 "asmparse.cpp" +#line 4769 "asmparse.cpp" break; case 165: /* typarsRest: %empty */ -#line 511 "./asmparse.y" +#line 512 "asmparse.y" { (yyval.typarlist) = NULL; } -#line 4469 "asmparse.cpp" +#line 4775 "asmparse.cpp" break; case 166: /* typarsRest: ',' typars */ -#line 512 "./asmparse.y" +#line 513 "asmparse.y" { (yyval.typarlist) = (yyvsp[0].typarlist); } -#line 4475 "asmparse.cpp" +#line 4781 "asmparse.cpp" break; case 167: /* tyBound: '(' typeList ')' */ -#line 515 "./asmparse.y" +#line 516 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 4481 "asmparse.cpp" +#line 4787 "asmparse.cpp" break; case 168: /* genArity: %empty */ -#line 518 "./asmparse.y" +#line 519 "asmparse.y" { (yyval.int32)= 0; } -#line 4487 "asmparse.cpp" +#line 4793 "asmparse.cpp" break; case 169: /* genArity: genArityNotEmpty */ -#line 519 "./asmparse.y" +#line 520 "asmparse.y" { (yyval.int32) = (yyvsp[0].int32); } -#line 4493 "asmparse.cpp" +#line 4799 "asmparse.cpp" break; case 170: /* genArityNotEmpty: '<' '[' int32 ']' '>' */ -#line 522 "./asmparse.y" +#line 523 "asmparse.y" { (yyval.int32) = (yyvsp[-2].int32); } -#line 4499 "asmparse.cpp" +#line 4805 "asmparse.cpp" break; case 171: /* classDecl: methodHead methodDecls '}' */ -#line 526 "./asmparse.y" +#line 527 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 4508 "asmparse.cpp" +#line 4814 "asmparse.cpp" break; case 172: /* classDecl: classHead '{' classDecls '}' */ -#line 530 "./asmparse.y" +#line 531 "asmparse.y" { PASM->EndClass(); } -#line 4514 "asmparse.cpp" +#line 4820 "asmparse.cpp" break; case 173: /* classDecl: eventHead '{' eventDecls '}' */ -#line 531 "./asmparse.y" +#line 532 "asmparse.y" { PASM->EndEvent(); } -#line 4520 "asmparse.cpp" +#line 4826 "asmparse.cpp" break; case 174: /* classDecl: propHead '{' propDecls '}' */ -#line 532 "./asmparse.y" +#line 533 "asmparse.y" { PASM->EndProp(); } -#line 4526 "asmparse.cpp" +#line 4832 "asmparse.cpp" break; case 180: /* classDecl: _SIZE int32 */ -#line 538 "./asmparse.y" +#line 539 "asmparse.y" { PASM->m_pCurClass->m_ulSize = (yyvsp[0].int32); } -#line 4532 "asmparse.cpp" +#line 4838 "asmparse.cpp" break; case 181: /* classDecl: _PACK int32 */ -#line 539 "./asmparse.y" +#line 540 "asmparse.y" { PASM->m_pCurClass->m_ulPack = (yyvsp[0].int32); } -#line 4538 "asmparse.cpp" +#line 4844 "asmparse.cpp" break; case 182: /* classDecl: exportHead '{' exptypeDecls '}' */ -#line 540 "./asmparse.y" +#line 541 "asmparse.y" { PASMM->EndComType(); } -#line 4544 "asmparse.cpp" +#line 4850 "asmparse.cpp" break; case 183: /* classDecl: _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')' */ -#line 542 "./asmparse.y" +#line 543 "asmparse.y" { BinStr *sig1 = parser->MakeSig((yyvsp[-7].int32), (yyvsp[-6].binstr), (yyvsp[-1].binstr)); BinStr *sig2 = new BinStr(); sig2->append(sig1); PASM->AddMethodImpl((yyvsp[-11].token),(yyvsp[-9].string),sig1,(yyvsp[-5].token),(yyvsp[-3].string),sig2); PASM->ResetArgNameList(); } -#line 4554 "asmparse.cpp" +#line 4860 "asmparse.cpp" break; case 184: /* classDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ -#line 548 "./asmparse.y" +#line 549 "asmparse.y" { PASM->AddMethodImpl((yyvsp[-17].token),(yyvsp[-15].string), ((yyvsp[-14].int32)==0 ? parser->MakeSig((yyvsp[-19].int32),(yyvsp[-18].binstr),(yyvsp[-12].binstr)) : parser->MakeSig((yyvsp[-19].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-18].binstr),(yyvsp[-12].binstr),(yyvsp[-14].int32))), @@ -4563,192 +4869,192 @@ yyparse (void) parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32)))); PASM->ResetArgNameList(); } -#line 4567 "asmparse.cpp" +#line 4873 "asmparse.cpp" break; case 187: /* classDecl: _PARAM TYPE_ '[' int32 ']' */ -#line 558 "./asmparse.y" +#line 559 "asmparse.y" { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurClass->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[(yyvsp[-1].int32)-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 4577 "asmparse.cpp" +#line 4883 "asmparse.cpp" break; case 188: /* classDecl: _PARAM TYPE_ dottedName */ -#line 563 "./asmparse.y" +#line 564 "asmparse.y" { int n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); } -#line 4588 "asmparse.cpp" +#line 4894 "asmparse.cpp" break; case 189: /* classDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ -#line 569 "./asmparse.y" +#line 570 "asmparse.y" { PASM->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } -#line 4594 "asmparse.cpp" +#line 4900 "asmparse.cpp" break; case 190: /* classDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ -#line 570 "./asmparse.y" +#line 571 "asmparse.y" { PASM->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } -#line 4600 "asmparse.cpp" +#line 4906 "asmparse.cpp" break; case 191: /* classDecl: _INTERFACEIMPL TYPE_ typeSpec customDescr */ -#line 571 "./asmparse.y" +#line 572 "asmparse.y" { (yyvsp[0].cad)->tkInterfacePair = (yyvsp[-1].token); if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); } -#line 4609 "asmparse.cpp" +#line 4915 "asmparse.cpp" break; case 192: /* fieldDecl: _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt */ -#line 579 "./asmparse.y" +#line 580 "asmparse.y" { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField((yyvsp[-2].string), (yyvsp[-3].binstr), (yyvsp[-4].fieldAttr), (yyvsp[-1].string), (yyvsp[0].binstr), (yyvsp[-5].int32)); } -#line 4616 "asmparse.cpp" +#line 4922 "asmparse.cpp" break; case 193: /* fieldAttr: %empty */ -#line 583 "./asmparse.y" +#line 584 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) 0; } -#line 4622 "asmparse.cpp" +#line 4928 "asmparse.cpp" break; case 194: /* fieldAttr: fieldAttr STATIC_ */ -#line 584 "./asmparse.y" +#line 585 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdStatic); } -#line 4628 "asmparse.cpp" +#line 4934 "asmparse.cpp" break; case 195: /* fieldAttr: fieldAttr PUBLIC_ */ -#line 585 "./asmparse.y" +#line 586 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPublic); } -#line 4634 "asmparse.cpp" +#line 4940 "asmparse.cpp" break; case 196: /* fieldAttr: fieldAttr PRIVATE_ */ -#line 586 "./asmparse.y" +#line 587 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivate); } -#line 4640 "asmparse.cpp" +#line 4946 "asmparse.cpp" break; case 197: /* fieldAttr: fieldAttr FAMILY_ */ -#line 587 "./asmparse.y" +#line 588 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamily); } -#line 4646 "asmparse.cpp" +#line 4952 "asmparse.cpp" break; case 198: /* fieldAttr: fieldAttr INITONLY_ */ -#line 588 "./asmparse.y" +#line 589 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdInitOnly); } -#line 4652 "asmparse.cpp" +#line 4958 "asmparse.cpp" break; case 199: /* fieldAttr: fieldAttr RTSPECIALNAME_ */ -#line 589 "./asmparse.y" +#line 590 "asmparse.y" { (yyval.fieldAttr) = (yyvsp[-1].fieldAttr); } -#line 4658 "asmparse.cpp" +#line 4964 "asmparse.cpp" break; case 200: /* fieldAttr: fieldAttr SPECIALNAME_ */ -#line 590 "./asmparse.y" +#line 591 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdSpecialName); } -#line 4664 "asmparse.cpp" +#line 4970 "asmparse.cpp" break; case 201: /* fieldAttr: fieldAttr MARSHAL_ '(' marshalBlob ')' */ -#line 603 "./asmparse.y" +#line 604 "asmparse.y" { PASM->m_pMarshal = (yyvsp[-1].binstr); } -#line 4670 "asmparse.cpp" +#line 4976 "asmparse.cpp" break; case 202: /* fieldAttr: fieldAttr ASSEMBLY_ */ -#line 604 "./asmparse.y" +#line 605 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdAssembly); } -#line 4676 "asmparse.cpp" +#line 4982 "asmparse.cpp" break; case 203: /* fieldAttr: fieldAttr FAMANDASSEM_ */ -#line 605 "./asmparse.y" +#line 606 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 4682 "asmparse.cpp" +#line 4988 "asmparse.cpp" break; case 204: /* fieldAttr: fieldAttr FAMORASSEM_ */ -#line 606 "./asmparse.y" +#line 607 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamORAssem); } -#line 4688 "asmparse.cpp" +#line 4994 "asmparse.cpp" break; case 205: /* fieldAttr: fieldAttr PRIVATESCOPE_ */ -#line 607 "./asmparse.y" +#line 608 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivateScope); } -#line 4694 "asmparse.cpp" +#line 5000 "asmparse.cpp" break; case 206: /* fieldAttr: fieldAttr LITERAL_ */ -#line 608 "./asmparse.y" +#line 609 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdLiteral); } -#line 4700 "asmparse.cpp" +#line 5006 "asmparse.cpp" break; case 207: /* fieldAttr: fieldAttr NOTSERIALIZED_ */ -#line 609 "./asmparse.y" +#line 610 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdNotSerialized); } -#line 4706 "asmparse.cpp" +#line 5012 "asmparse.cpp" break; case 208: /* fieldAttr: fieldAttr FLAGS_ '(' int32 ')' */ -#line 610 "./asmparse.y" +#line 611 "asmparse.y" { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].int32)); } -#line 4712 "asmparse.cpp" +#line 5018 "asmparse.cpp" break; case 209: /* atOpt: %empty */ -#line 613 "./asmparse.y" +#line 614 "asmparse.y" { (yyval.string) = 0; } -#line 4718 "asmparse.cpp" +#line 5024 "asmparse.cpp" break; case 210: /* atOpt: AT_ id */ -#line 614 "./asmparse.y" +#line 615 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 4724 "asmparse.cpp" +#line 5030 "asmparse.cpp" break; case 211: /* initOpt: %empty */ -#line 617 "./asmparse.y" +#line 618 "asmparse.y" { (yyval.binstr) = NULL; } -#line 4730 "asmparse.cpp" +#line 5036 "asmparse.cpp" break; case 212: /* initOpt: '=' fieldInit */ -#line 618 "./asmparse.y" +#line 619 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 4736 "asmparse.cpp" +#line 5042 "asmparse.cpp" break; case 213: /* repeatOpt: %empty */ -#line 621 "./asmparse.y" +#line 622 "asmparse.y" { (yyval.int32) = 0xFFFFFFFF; } -#line 4742 "asmparse.cpp" +#line 5048 "asmparse.cpp" break; case 214: /* repeatOpt: '[' int32 ']' */ -#line 622 "./asmparse.y" +#line 623 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32); } -#line 4748 "asmparse.cpp" +#line 5054 "asmparse.cpp" break; case 215: /* methodRef: callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')' */ -#line 627 "./asmparse.y" +#line 628 "asmparse.y" { PASM->ResetArgNameList(); if ((yyvsp[-3].binstr) == NULL) { @@ -4765,21 +5071,21 @@ yyparse (void) parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); } } -#line 4769 "asmparse.cpp" +#line 5075 "asmparse.cpp" break; case 216: /* methodRef: callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')' */ -#line 644 "./asmparse.y" +#line 645 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); (yyval.token) = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), parser->MakeSig((yyvsp[-8].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); } -#line 4779 "asmparse.cpp" +#line 5085 "asmparse.cpp" break; case 217: /* methodRef: callConv type methodName tyArgs0 '(' sigArgs0 ')' */ -#line 650 "./asmparse.y" +#line 651 "asmparse.y" { PASM->ResetArgNameList(); if ((yyvsp[-3].binstr) == NULL) { @@ -4795,300 +5101,300 @@ yyparse (void) parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); } } -#line 4799 "asmparse.cpp" +#line 5105 "asmparse.cpp" break; case 218: /* methodRef: callConv type methodName genArityNotEmpty '(' sigArgs0 ')' */ -#line 666 "./asmparse.y" +#line 667 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); (yyval.token) = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); } -#line 4808 "asmparse.cpp" +#line 5114 "asmparse.cpp" break; case 219: /* methodRef: mdtoken */ -#line 670 "./asmparse.y" +#line 671 "asmparse.y" { (yyval.token) = (yyvsp[0].token); } -#line 4814 "asmparse.cpp" +#line 5120 "asmparse.cpp" break; case 220: /* methodRef: TYPEDEF_M */ -#line 671 "./asmparse.y" +#line 672 "asmparse.y" { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 4820 "asmparse.cpp" +#line 5126 "asmparse.cpp" break; case 221: /* methodRef: TYPEDEF_MR */ -#line 672 "./asmparse.y" +#line 673 "asmparse.y" { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 4826 "asmparse.cpp" +#line 5132 "asmparse.cpp" break; case 222: /* callConv: INSTANCE_ callConv */ -#line 675 "./asmparse.y" +#line 676 "asmparse.y" { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 4832 "asmparse.cpp" +#line 5138 "asmparse.cpp" break; case 223: /* callConv: EXPLICIT_ callConv */ -#line 676 "./asmparse.y" +#line 677 "asmparse.y" { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 4838 "asmparse.cpp" +#line 5144 "asmparse.cpp" break; case 224: /* callConv: callKind */ -#line 677 "./asmparse.y" +#line 678 "asmparse.y" { (yyval.int32) = (yyvsp[0].int32); } -#line 4844 "asmparse.cpp" +#line 5150 "asmparse.cpp" break; case 225: /* callConv: CALLCONV_ '(' int32 ')' */ -#line 678 "./asmparse.y" +#line 679 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32); } -#line 4850 "asmparse.cpp" +#line 5156 "asmparse.cpp" break; case 226: /* callKind: %empty */ -#line 681 "./asmparse.y" +#line 682 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 4856 "asmparse.cpp" +#line 5162 "asmparse.cpp" break; case 227: /* callKind: DEFAULT_ */ -#line 682 "./asmparse.y" +#line 683 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 4862 "asmparse.cpp" +#line 5168 "asmparse.cpp" break; case 228: /* callKind: VARARG_ */ -#line 683 "./asmparse.y" +#line 684 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 4868 "asmparse.cpp" +#line 5174 "asmparse.cpp" break; case 229: /* callKind: UNMANAGED_ CDECL_ */ -#line 684 "./asmparse.y" +#line 685 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_C; } -#line 4874 "asmparse.cpp" +#line 5180 "asmparse.cpp" break; case 230: /* callKind: UNMANAGED_ STDCALL_ */ -#line 685 "./asmparse.y" +#line 686 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 4880 "asmparse.cpp" +#line 5186 "asmparse.cpp" break; case 231: /* callKind: UNMANAGED_ THISCALL_ */ -#line 686 "./asmparse.y" +#line 687 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 4886 "asmparse.cpp" +#line 5192 "asmparse.cpp" break; case 232: /* callKind: UNMANAGED_ FASTCALL_ */ -#line 687 "./asmparse.y" +#line 688 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 4892 "asmparse.cpp" +#line 5198 "asmparse.cpp" break; case 233: /* callKind: UNMANAGED_ */ -#line 688 "./asmparse.y" +#line 689 "asmparse.y" { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 4898 "asmparse.cpp" +#line 5204 "asmparse.cpp" break; case 234: /* mdtoken: MDTOKEN_ '(' int32 ')' */ -#line 691 "./asmparse.y" +#line 692 "asmparse.y" { (yyval.token) = (yyvsp[-1].int32); } -#line 4904 "asmparse.cpp" +#line 5210 "asmparse.cpp" break; case 235: /* memberRef: methodSpec methodRef */ -#line 694 "./asmparse.y" +#line 695 "asmparse.y" { (yyval.token) = (yyvsp[0].token); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup((yyvsp[0].token),iOpcodeLen); } -#line 4914 "asmparse.cpp" +#line 5220 "asmparse.cpp" break; case 236: /* memberRef: FIELD_ type typeSpec DCOLON dottedName */ -#line 700 "./asmparse.y" +#line 701 "asmparse.y" { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); (yyval.token) = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 4922 "asmparse.cpp" +#line 5228 "asmparse.cpp" break; case 237: /* memberRef: FIELD_ type dottedName */ -#line 704 "./asmparse.y" +#line 705 "asmparse.y" { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); (yyval.token) = PASM->MakeMemberRef(NULL, (yyvsp[0].string), (yyvsp[-1].binstr)); PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 4930 "asmparse.cpp" +#line 5236 "asmparse.cpp" break; case 238: /* memberRef: FIELD_ TYPEDEF_F */ -#line 707 "./asmparse.y" +#line 708 "asmparse.y" { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 4937 "asmparse.cpp" +#line 5243 "asmparse.cpp" break; case 239: /* memberRef: FIELD_ TYPEDEF_MR */ -#line 709 "./asmparse.y" +#line 710 "asmparse.y" { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 4944 "asmparse.cpp" +#line 5250 "asmparse.cpp" break; case 240: /* memberRef: mdtoken */ -#line 711 "./asmparse.y" +#line 712 "asmparse.y" { (yyval.token) = (yyvsp[0].token); PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 4951 "asmparse.cpp" +#line 5257 "asmparse.cpp" break; case 241: /* eventHead: _EVENT eventAttr typeSpec dottedName */ -#line 716 "./asmparse.y" +#line 717 "asmparse.y" { PASM->ResetEvent((yyvsp[0].string), (yyvsp[-1].token), (yyvsp[-2].eventAttr)); } -#line 4957 "asmparse.cpp" +#line 5263 "asmparse.cpp" break; case 242: /* eventHead: _EVENT eventAttr dottedName */ -#line 717 "./asmparse.y" +#line 718 "asmparse.y" { PASM->ResetEvent((yyvsp[0].string), mdTypeRefNil, (yyvsp[-1].eventAttr)); } -#line 4963 "asmparse.cpp" +#line 5269 "asmparse.cpp" break; case 243: /* eventAttr: %empty */ -#line 721 "./asmparse.y" +#line 722 "asmparse.y" { (yyval.eventAttr) = (CorEventAttr) 0; } -#line 4969 "asmparse.cpp" +#line 5275 "asmparse.cpp" break; case 244: /* eventAttr: eventAttr RTSPECIALNAME_ */ -#line 722 "./asmparse.y" +#line 723 "asmparse.y" { (yyval.eventAttr) = (yyvsp[-1].eventAttr); } -#line 4975 "asmparse.cpp" +#line 5281 "asmparse.cpp" break; case 245: /* eventAttr: eventAttr SPECIALNAME_ */ -#line 723 "./asmparse.y" +#line 724 "asmparse.y" { (yyval.eventAttr) = (CorEventAttr) ((yyvsp[-1].eventAttr) | evSpecialName); } -#line 4981 "asmparse.cpp" +#line 5287 "asmparse.cpp" break; case 248: /* eventDecl: _ADDON methodRef */ -#line 730 "./asmparse.y" +#line 731 "asmparse.y" { PASM->SetEventMethod(0, (yyvsp[0].token)); } -#line 4987 "asmparse.cpp" +#line 5293 "asmparse.cpp" break; case 249: /* eventDecl: _REMOVEON methodRef */ -#line 731 "./asmparse.y" +#line 732 "asmparse.y" { PASM->SetEventMethod(1, (yyvsp[0].token)); } -#line 4993 "asmparse.cpp" +#line 5299 "asmparse.cpp" break; case 250: /* eventDecl: _FIRE methodRef */ -#line 732 "./asmparse.y" +#line 733 "asmparse.y" { PASM->SetEventMethod(2, (yyvsp[0].token)); } -#line 4999 "asmparse.cpp" +#line 5305 "asmparse.cpp" break; case 251: /* eventDecl: _OTHER methodRef */ -#line 733 "./asmparse.y" +#line 734 "asmparse.y" { PASM->SetEventMethod(3, (yyvsp[0].token)); } -#line 5005 "asmparse.cpp" +#line 5311 "asmparse.cpp" break; case 256: /* propHead: _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt */ -#line 742 "./asmparse.y" +#line 743 "asmparse.y" { PASM->ResetProp((yyvsp[-4].string), parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | ((yyvsp[-6].int32) & IMAGE_CEE_CS_CALLCONV_HASTHIS)),(yyvsp[-5].binstr),(yyvsp[-2].binstr)), (yyvsp[-7].propAttr), (yyvsp[0].binstr));} -#line 5013 "asmparse.cpp" +#line 5319 "asmparse.cpp" break; case 257: /* propAttr: %empty */ -#line 747 "./asmparse.y" +#line 748 "asmparse.y" { (yyval.propAttr) = (CorPropertyAttr) 0; } -#line 5019 "asmparse.cpp" +#line 5325 "asmparse.cpp" break; case 258: /* propAttr: propAttr RTSPECIALNAME_ */ -#line 748 "./asmparse.y" +#line 749 "asmparse.y" { (yyval.propAttr) = (yyvsp[-1].propAttr); } -#line 5025 "asmparse.cpp" +#line 5331 "asmparse.cpp" break; case 259: /* propAttr: propAttr SPECIALNAME_ */ -#line 749 "./asmparse.y" +#line 750 "asmparse.y" { (yyval.propAttr) = (CorPropertyAttr) ((yyvsp[-1].propAttr) | prSpecialName); } -#line 5031 "asmparse.cpp" +#line 5337 "asmparse.cpp" break; case 262: /* propDecl: _SET methodRef */ -#line 757 "./asmparse.y" +#line 758 "asmparse.y" { PASM->SetPropMethod(0, (yyvsp[0].token)); } -#line 5037 "asmparse.cpp" +#line 5343 "asmparse.cpp" break; case 263: /* propDecl: _GET methodRef */ -#line 758 "./asmparse.y" +#line 759 "asmparse.y" { PASM->SetPropMethod(1, (yyvsp[0].token)); } -#line 5043 "asmparse.cpp" +#line 5349 "asmparse.cpp" break; case 264: /* propDecl: _OTHER methodRef */ -#line 759 "./asmparse.y" +#line 760 "asmparse.y" { PASM->SetPropMethod(2, (yyvsp[0].token)); } -#line 5049 "asmparse.cpp" +#line 5355 "asmparse.cpp" break; case 269: /* methodHeadPart1: _METHOD */ -#line 767 "./asmparse.y" +#line 768 "asmparse.y" { PASM->ResetForNextMethod(); uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 5058 "asmparse.cpp" +#line 5364 "asmparse.cpp" break; case 270: /* marshalClause: %empty */ -#line 773 "./asmparse.y" +#line 774 "asmparse.y" { (yyval.binstr) = NULL; } -#line 5064 "asmparse.cpp" +#line 5370 "asmparse.cpp" break; case 271: /* marshalClause: MARSHAL_ '(' marshalBlob ')' */ -#line 774 "./asmparse.y" +#line 775 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 5070 "asmparse.cpp" +#line 5376 "asmparse.cpp" break; case 272: /* marshalBlob: nativeType */ -#line 777 "./asmparse.y" +#line 778 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 5076 "asmparse.cpp" +#line 5382 "asmparse.cpp" break; case 273: /* marshalBlob: marshalBlobHead hexbytes '}' */ -#line 778 "./asmparse.y" +#line 779 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 5082 "asmparse.cpp" +#line 5388 "asmparse.cpp" break; case 274: /* marshalBlobHead: '{' */ -#line 781 "./asmparse.y" +#line 782 "asmparse.y" { bParsingByteArray = TRUE; } -#line 5088 "asmparse.cpp" +#line 5394 "asmparse.cpp" break; case 275: /* methodHead: methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{' */ -#line 785 "./asmparse.y" +#line 786 "asmparse.y" { BinStr* sig; if ((yyvsp[-5].typarlist) == NULL) sig = parser->MakeSig((yyvsp[-10].int32), (yyvsp[-8].binstr), (yyvsp[-3].binstr)); else { @@ -5102,450 +5408,450 @@ yyparse (void) PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 5106 "asmparse.cpp" +#line 5412 "asmparse.cpp" break; case 276: /* methAttr: %empty */ -#line 800 "./asmparse.y" +#line 801 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) 0; } -#line 5112 "asmparse.cpp" +#line 5418 "asmparse.cpp" break; case 277: /* methAttr: methAttr STATIC_ */ -#line 801 "./asmparse.y" +#line 802 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdStatic); } -#line 5118 "asmparse.cpp" +#line 5424 "asmparse.cpp" break; case 278: /* methAttr: methAttr PUBLIC_ */ -#line 802 "./asmparse.y" +#line 803 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPublic); } -#line 5124 "asmparse.cpp" +#line 5430 "asmparse.cpp" break; case 279: /* methAttr: methAttr PRIVATE_ */ -#line 803 "./asmparse.y" +#line 804 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivate); } -#line 5130 "asmparse.cpp" +#line 5436 "asmparse.cpp" break; case 280: /* methAttr: methAttr FAMILY_ */ -#line 804 "./asmparse.y" +#line 805 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamily); } -#line 5136 "asmparse.cpp" +#line 5442 "asmparse.cpp" break; case 281: /* methAttr: methAttr FINAL_ */ -#line 805 "./asmparse.y" +#line 806 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdFinal); } -#line 5142 "asmparse.cpp" +#line 5448 "asmparse.cpp" break; case 282: /* methAttr: methAttr SPECIALNAME_ */ -#line 806 "./asmparse.y" +#line 807 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdSpecialName); } -#line 5148 "asmparse.cpp" +#line 5454 "asmparse.cpp" break; case 283: /* methAttr: methAttr VIRTUAL_ */ -#line 807 "./asmparse.y" +#line 808 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdVirtual); } -#line 5154 "asmparse.cpp" +#line 5460 "asmparse.cpp" break; case 284: /* methAttr: methAttr STRICT_ */ -#line 808 "./asmparse.y" +#line 809 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdCheckAccessOnOverride); } -#line 5160 "asmparse.cpp" +#line 5466 "asmparse.cpp" break; case 285: /* methAttr: methAttr ABSTRACT_ */ -#line 809 "./asmparse.y" +#line 810 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdAbstract); } -#line 5166 "asmparse.cpp" +#line 5472 "asmparse.cpp" break; case 286: /* methAttr: methAttr ASSEMBLY_ */ -#line 810 "./asmparse.y" +#line 811 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdAssem); } -#line 5172 "asmparse.cpp" +#line 5478 "asmparse.cpp" break; case 287: /* methAttr: methAttr FAMANDASSEM_ */ -#line 811 "./asmparse.y" +#line 812 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 5178 "asmparse.cpp" +#line 5484 "asmparse.cpp" break; case 288: /* methAttr: methAttr FAMORASSEM_ */ -#line 812 "./asmparse.y" +#line 813 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamORAssem); } -#line 5184 "asmparse.cpp" +#line 5490 "asmparse.cpp" break; case 289: /* methAttr: methAttr PRIVATESCOPE_ */ -#line 813 "./asmparse.y" +#line 814 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivateScope); } -#line 5190 "asmparse.cpp" +#line 5496 "asmparse.cpp" break; case 290: /* methAttr: methAttr HIDEBYSIG_ */ -#line 814 "./asmparse.y" +#line 815 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdHideBySig); } -#line 5196 "asmparse.cpp" +#line 5502 "asmparse.cpp" break; case 291: /* methAttr: methAttr NEWSLOT_ */ -#line 815 "./asmparse.y" +#line 816 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdNewSlot); } -#line 5202 "asmparse.cpp" +#line 5508 "asmparse.cpp" break; case 292: /* methAttr: methAttr RTSPECIALNAME_ */ -#line 816 "./asmparse.y" +#line 817 "asmparse.y" { (yyval.methAttr) = (yyvsp[-1].methAttr); } -#line 5208 "asmparse.cpp" +#line 5514 "asmparse.cpp" break; case 293: /* methAttr: methAttr UNMANAGEDEXP_ */ -#line 817 "./asmparse.y" +#line 818 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdUnmanagedExport); } -#line 5214 "asmparse.cpp" +#line 5520 "asmparse.cpp" break; case 294: /* methAttr: methAttr REQSECOBJ_ */ -#line 818 "./asmparse.y" +#line 819 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdRequireSecObject); } -#line 5220 "asmparse.cpp" +#line 5526 "asmparse.cpp" break; case 295: /* methAttr: methAttr FLAGS_ '(' int32 ')' */ -#line 819 "./asmparse.y" +#line 820 "asmparse.y" { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].int32)); } -#line 5226 "asmparse.cpp" +#line 5532 "asmparse.cpp" break; case 296: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')' */ -#line 821 "./asmparse.y" +#line 822 "asmparse.y" { PASM->SetPinvoke((yyvsp[-4].binstr),0,(yyvsp[-2].binstr),(yyvsp[-1].pinvAttr)); (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-7].methAttr) | mdPinvokeImpl); } -#line 5233 "asmparse.cpp" +#line 5539 "asmparse.cpp" break; case 297: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')' */ -#line 824 "./asmparse.y" +#line 825 "asmparse.y" { PASM->SetPinvoke((yyvsp[-2].binstr),0,NULL,(yyvsp[-1].pinvAttr)); (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-5].methAttr) | mdPinvokeImpl); } -#line 5240 "asmparse.cpp" +#line 5546 "asmparse.cpp" break; case 298: /* methAttr: methAttr PINVOKEIMPL_ '(' pinvAttr ')' */ -#line 827 "./asmparse.y" +#line 828 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,(yyvsp[-1].pinvAttr)); (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-4].methAttr) | mdPinvokeImpl); } -#line 5247 "asmparse.cpp" +#line 5553 "asmparse.cpp" break; case 299: /* pinvAttr: %empty */ -#line 831 "./asmparse.y" +#line 832 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) 0; } -#line 5253 "asmparse.cpp" +#line 5559 "asmparse.cpp" break; case 300: /* pinvAttr: pinvAttr NOMANGLE_ */ -#line 832 "./asmparse.y" +#line 833 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmNoMangle); } -#line 5259 "asmparse.cpp" +#line 5565 "asmparse.cpp" break; case 301: /* pinvAttr: pinvAttr ANSI_ */ -#line 833 "./asmparse.y" +#line 834 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAnsi); } -#line 5265 "asmparse.cpp" +#line 5571 "asmparse.cpp" break; case 302: /* pinvAttr: pinvAttr UNICODE_ */ -#line 834 "./asmparse.y" +#line 835 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetUnicode); } -#line 5271 "asmparse.cpp" +#line 5577 "asmparse.cpp" break; case 303: /* pinvAttr: pinvAttr AUTOCHAR_ */ -#line 835 "./asmparse.y" +#line 836 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAuto); } -#line 5277 "asmparse.cpp" +#line 5583 "asmparse.cpp" break; case 304: /* pinvAttr: pinvAttr LASTERR_ */ -#line 836 "./asmparse.y" +#line 837 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmSupportsLastError); } -#line 5283 "asmparse.cpp" +#line 5589 "asmparse.cpp" break; case 305: /* pinvAttr: pinvAttr WINAPI_ */ -#line 837 "./asmparse.y" +#line 838 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvWinapi); } -#line 5289 "asmparse.cpp" +#line 5595 "asmparse.cpp" break; case 306: /* pinvAttr: pinvAttr CDECL_ */ -#line 838 "./asmparse.y" +#line 839 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvCdecl); } -#line 5295 "asmparse.cpp" +#line 5601 "asmparse.cpp" break; case 307: /* pinvAttr: pinvAttr STDCALL_ */ -#line 839 "./asmparse.y" +#line 840 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvStdcall); } -#line 5301 "asmparse.cpp" +#line 5607 "asmparse.cpp" break; case 308: /* pinvAttr: pinvAttr THISCALL_ */ -#line 840 "./asmparse.y" +#line 841 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvThiscall); } -#line 5307 "asmparse.cpp" +#line 5613 "asmparse.cpp" break; case 309: /* pinvAttr: pinvAttr FASTCALL_ */ -#line 841 "./asmparse.y" +#line 842 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvFastcall); } -#line 5313 "asmparse.cpp" +#line 5619 "asmparse.cpp" break; case 310: /* pinvAttr: pinvAttr BESTFIT_ ':' ON_ */ -#line 842 "./asmparse.y" +#line 843 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitEnabled); } -#line 5319 "asmparse.cpp" +#line 5625 "asmparse.cpp" break; case 311: /* pinvAttr: pinvAttr BESTFIT_ ':' OFF_ */ -#line 843 "./asmparse.y" +#line 844 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitDisabled); } -#line 5325 "asmparse.cpp" +#line 5631 "asmparse.cpp" break; case 312: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' ON_ */ -#line 844 "./asmparse.y" +#line 845 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharEnabled); } -#line 5331 "asmparse.cpp" +#line 5637 "asmparse.cpp" break; case 313: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' OFF_ */ -#line 845 "./asmparse.y" +#line 846 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharDisabled); } -#line 5337 "asmparse.cpp" +#line 5643 "asmparse.cpp" break; case 314: /* pinvAttr: pinvAttr FLAGS_ '(' int32 ')' */ -#line 846 "./asmparse.y" +#line 847 "asmparse.y" { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].int32)); } -#line 5343 "asmparse.cpp" +#line 5649 "asmparse.cpp" break; case 315: /* methodName: _CTOR */ -#line 849 "./asmparse.y" +#line 850 "asmparse.y" { (yyval.string) = newString(COR_CTOR_METHOD_NAME); } -#line 5349 "asmparse.cpp" +#line 5655 "asmparse.cpp" break; case 316: /* methodName: _CCTOR */ -#line 850 "./asmparse.y" +#line 851 "asmparse.y" { (yyval.string) = newString(COR_CCTOR_METHOD_NAME); } -#line 5355 "asmparse.cpp" +#line 5661 "asmparse.cpp" break; case 317: /* methodName: dottedName */ -#line 851 "./asmparse.y" +#line 852 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 5361 "asmparse.cpp" +#line 5667 "asmparse.cpp" break; case 318: /* paramAttr: %empty */ -#line 854 "./asmparse.y" +#line 855 "asmparse.y" { (yyval.int32) = 0; } -#line 5367 "asmparse.cpp" +#line 5673 "asmparse.cpp" break; case 319: /* paramAttr: paramAttr '[' IN_ ']' */ -#line 855 "./asmparse.y" +#line 856 "asmparse.y" { (yyval.int32) = (yyvsp[-3].int32) | pdIn; } -#line 5373 "asmparse.cpp" +#line 5679 "asmparse.cpp" break; case 320: /* paramAttr: paramAttr '[' OUT_ ']' */ -#line 856 "./asmparse.y" +#line 857 "asmparse.y" { (yyval.int32) = (yyvsp[-3].int32) | pdOut; } -#line 5379 "asmparse.cpp" +#line 5685 "asmparse.cpp" break; case 321: /* paramAttr: paramAttr '[' OPT_ ']' */ -#line 857 "./asmparse.y" +#line 858 "asmparse.y" { (yyval.int32) = (yyvsp[-3].int32) | pdOptional; } -#line 5385 "asmparse.cpp" +#line 5691 "asmparse.cpp" break; case 322: /* paramAttr: paramAttr '[' int32 ']' */ -#line 858 "./asmparse.y" +#line 859 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) + 1; } -#line 5391 "asmparse.cpp" +#line 5697 "asmparse.cpp" break; case 323: /* implAttr: %empty */ -#line 861 "./asmparse.y" +#line 862 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (miIL | miManaged); } -#line 5397 "asmparse.cpp" +#line 5703 "asmparse.cpp" break; case 324: /* implAttr: implAttr NATIVE_ */ -#line 862 "./asmparse.y" +#line 863 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miNative); } -#line 5403 "asmparse.cpp" +#line 5709 "asmparse.cpp" break; case 325: /* implAttr: implAttr CIL_ */ -#line 863 "./asmparse.y" +#line 864 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miIL); } -#line 5409 "asmparse.cpp" +#line 5715 "asmparse.cpp" break; case 326: /* implAttr: implAttr OPTIL_ */ -#line 864 "./asmparse.y" +#line 865 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miOPTIL); } -#line 5415 "asmparse.cpp" +#line 5721 "asmparse.cpp" break; case 327: /* implAttr: implAttr MANAGED_ */ -#line 865 "./asmparse.y" +#line 866 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miManaged); } -#line 5421 "asmparse.cpp" +#line 5727 "asmparse.cpp" break; case 328: /* implAttr: implAttr UNMANAGED_ */ -#line 866 "./asmparse.y" +#line 867 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miUnmanaged); } -#line 5427 "asmparse.cpp" +#line 5733 "asmparse.cpp" break; case 329: /* implAttr: implAttr FORWARDREF_ */ -#line 867 "./asmparse.y" +#line 868 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miForwardRef); } -#line 5433 "asmparse.cpp" +#line 5739 "asmparse.cpp" break; case 330: /* implAttr: implAttr PRESERVESIG_ */ -#line 868 "./asmparse.y" +#line 869 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miPreserveSig); } -#line 5439 "asmparse.cpp" +#line 5745 "asmparse.cpp" break; case 331: /* implAttr: implAttr RUNTIME_ */ -#line 869 "./asmparse.y" +#line 870 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miRuntime); } -#line 5445 "asmparse.cpp" +#line 5751 "asmparse.cpp" break; case 332: /* implAttr: implAttr INTERNALCALL_ */ -#line 870 "./asmparse.y" +#line 871 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miInternalCall); } -#line 5451 "asmparse.cpp" +#line 5757 "asmparse.cpp" break; case 333: /* implAttr: implAttr SYNCHRONIZED_ */ -#line 871 "./asmparse.y" +#line 872 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miSynchronized); } -#line 5457 "asmparse.cpp" +#line 5763 "asmparse.cpp" break; case 334: /* implAttr: implAttr NOINLINING_ */ -#line 872 "./asmparse.y" +#line 873 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoInlining); } -#line 5463 "asmparse.cpp" +#line 5769 "asmparse.cpp" break; case 335: /* implAttr: implAttr AGGRESSIVEINLINING_ */ -#line 873 "./asmparse.y" +#line 874 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveInlining); } -#line 5469 "asmparse.cpp" +#line 5775 "asmparse.cpp" break; case 336: /* implAttr: implAttr NOOPTIMIZATION_ */ -#line 874 "./asmparse.y" +#line 875 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoOptimization); } -#line 5475 "asmparse.cpp" +#line 5781 "asmparse.cpp" break; case 337: /* implAttr: implAttr AGGRESSIVEOPTIMIZATION_ */ -#line 875 "./asmparse.y" +#line 876 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveOptimization); } -#line 5481 "asmparse.cpp" +#line 5787 "asmparse.cpp" break; case 338: /* implAttr: implAttr FLAGS_ '(' int32 ')' */ -#line 876 "./asmparse.y" +#line 877 "asmparse.y" { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].int32)); } -#line 5487 "asmparse.cpp" +#line 5793 "asmparse.cpp" break; case 339: /* localsHead: _LOCALS */ -#line 879 "./asmparse.y" +#line 880 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 5494 "asmparse.cpp" +#line 5800 "asmparse.cpp" break; case 342: /* methodDecl: _EMITBYTE int32 */ -#line 887 "./asmparse.y" +#line 888 "asmparse.y" { PASM->EmitByte((yyvsp[0].int32)); } -#line 5500 "asmparse.cpp" +#line 5806 "asmparse.cpp" break; case 343: /* methodDecl: sehBlock */ -#line 888 "./asmparse.y" +#line 889 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 5506 "asmparse.cpp" +#line 5812 "asmparse.cpp" break; case 344: /* methodDecl: _MAXSTACK int32 */ -#line 889 "./asmparse.y" +#line 890 "asmparse.y" { PASM->EmitMaxStack((yyvsp[0].int32)); } -#line 5512 "asmparse.cpp" +#line 5818 "asmparse.cpp" break; case 345: /* methodDecl: localsHead '(' sigArgs0 ')' */ -#line 890 "./asmparse.y" +#line 891 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); } -#line 5519 "asmparse.cpp" +#line 5825 "asmparse.cpp" break; case 346: /* methodDecl: localsHead INIT_ '(' sigArgs0 ')' */ -#line 892 "./asmparse.y" +#line 893 "asmparse.y" { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); } -#line 5527 "asmparse.cpp" +#line 5833 "asmparse.cpp" break; case 347: /* methodDecl: _ENTRYPOINT */ -#line 895 "./asmparse.y" +#line 896 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 5533 "asmparse.cpp" +#line 5839 "asmparse.cpp" break; case 348: /* methodDecl: _ZEROINIT */ -#line 896 "./asmparse.y" +#line 897 "asmparse.y" { PASM->EmitZeroInit(); } -#line 5539 "asmparse.cpp" +#line 5845 "asmparse.cpp" break; case 351: /* methodDecl: id ':' */ -#line 899 "./asmparse.y" +#line 900 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,(yyvsp[-1].string)); /*PASM->EmitLabel($1);*/ } -#line 5545 "asmparse.cpp" +#line 5851 "asmparse.cpp" break; case 357: /* methodDecl: _EXPORT '[' int32 ']' */ -#line 905 "./asmparse.y" +#line 906 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-1].int32); @@ -5556,11 +5862,11 @@ yyparse (void) else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 5560 "asmparse.cpp" +#line 5866 "asmparse.cpp" break; case 358: /* methodDecl: _EXPORT '[' int32 ']' AS_ id */ -#line 915 "./asmparse.y" +#line 916 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-3].int32); @@ -5571,68 +5877,68 @@ yyparse (void) else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 5575 "asmparse.cpp" +#line 5881 "asmparse.cpp" break; case 359: /* methodDecl: _VTENTRY int32 ':' int32 */ -#line 925 "./asmparse.y" +#line 926 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)(yyvsp[-2].int32); PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[0].int32); } -#line 5582 "asmparse.cpp" +#line 5888 "asmparse.cpp" break; case 360: /* methodDecl: _OVERRIDE typeSpec DCOLON methodName */ -#line 928 "./asmparse.y" +#line 929 "asmparse.y" { PASM->AddMethodImpl((yyvsp[-2].token),(yyvsp[0].string),NULL,NULL,NULL,NULL); } -#line 5588 "asmparse.cpp" +#line 5894 "asmparse.cpp" break; case 361: /* methodDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ -#line 931 "./asmparse.y" +#line 932 "asmparse.y" { PASM->AddMethodImpl((yyvsp[-6].token),(yyvsp[-4].string), ((yyvsp[-3].int32)==0 ? parser->MakeSig((yyvsp[-8].int32),(yyvsp[-7].binstr),(yyvsp[-1].binstr)) : parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32))) ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 5599 "asmparse.cpp" +#line 5905 "asmparse.cpp" break; case 363: /* methodDecl: _PARAM TYPE_ '[' int32 ']' */ -#line 938 "./asmparse.y" +#line 939 "asmparse.y" { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurMethod->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[(yyvsp[-1].int32)-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 5609 "asmparse.cpp" +#line 5915 "asmparse.cpp" break; case 364: /* methodDecl: _PARAM TYPE_ dottedName */ -#line 943 "./asmparse.y" +#line 944 "asmparse.y" { int n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); } -#line 5620 "asmparse.cpp" +#line 5926 "asmparse.cpp" break; case 365: /* methodDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ -#line 949 "./asmparse.y" +#line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } -#line 5626 "asmparse.cpp" +#line 5932 "asmparse.cpp" break; case 366: /* methodDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ -#line 950 "./asmparse.y" +#line 951 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } -#line 5632 "asmparse.cpp" +#line 5938 "asmparse.cpp" break; case 367: /* methodDecl: _PARAM '[' int32 ']' initOpt */ -#line 953 "./asmparse.y" +#line 954 "asmparse.y" { if( (yyvsp[-2].int32) ) { ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, (yyvsp[-2].int32) - 1); if(pAN) @@ -5651,241 +5957,241 @@ yyparse (void) } PASM->m_tkCurrentCVOwner = 0; } -#line 5655 "asmparse.cpp" +#line 5961 "asmparse.cpp" break; case 368: /* scopeBlock: scopeOpen methodDecls '}' */ -#line 973 "./asmparse.y" +#line 974 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 5661 "asmparse.cpp" +#line 5967 "asmparse.cpp" break; case 369: /* scopeOpen: '{' */ -#line 976 "./asmparse.y" +#line 977 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 5667 "asmparse.cpp" +#line 5973 "asmparse.cpp" break; case 373: /* tryBlock: tryHead scopeBlock */ -#line 987 "./asmparse.y" +#line 988 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 5673 "asmparse.cpp" +#line 5979 "asmparse.cpp" break; case 374: /* tryBlock: tryHead id TO_ id */ -#line 988 "./asmparse.y" +#line 989 "asmparse.y" { PASM->SetTryLabels((yyvsp[-2].string), (yyvsp[0].string)); } -#line 5679 "asmparse.cpp" +#line 5985 "asmparse.cpp" break; case 375: /* tryBlock: tryHead int32 TO_ int32 */ -#line 989 "./asmparse.y" +#line 990 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = (yyvsp[-2].int32); PASM->m_SEHD->tryTo = (yyvsp[0].int32);} } -#line 5686 "asmparse.cpp" +#line 5992 "asmparse.cpp" break; case 376: /* tryHead: _TRY */ -#line 993 "./asmparse.y" +#line 994 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 5693 "asmparse.cpp" +#line 5999 "asmparse.cpp" break; case 377: /* sehClause: catchClause handlerBlock */ -#line 998 "./asmparse.y" +#line 999 "asmparse.y" { PASM->EmitTry(); } -#line 5699 "asmparse.cpp" +#line 6005 "asmparse.cpp" break; case 378: /* sehClause: filterClause handlerBlock */ -#line 999 "./asmparse.y" +#line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 5705 "asmparse.cpp" +#line 6011 "asmparse.cpp" break; case 379: /* sehClause: finallyClause handlerBlock */ -#line 1000 "./asmparse.y" +#line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 5711 "asmparse.cpp" +#line 6017 "asmparse.cpp" break; case 380: /* sehClause: faultClause handlerBlock */ -#line 1001 "./asmparse.y" +#line 1002 "asmparse.y" { PASM->EmitTry(); } -#line 5717 "asmparse.cpp" +#line 6023 "asmparse.cpp" break; case 381: /* filterClause: filterHead scopeBlock */ -#line 1005 "./asmparse.y" +#line 1006 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5723 "asmparse.cpp" +#line 6029 "asmparse.cpp" break; case 382: /* filterClause: filterHead id */ -#line 1006 "./asmparse.y" +#line 1007 "asmparse.y" { PASM->SetFilterLabel((yyvsp[0].string)); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5730 "asmparse.cpp" +#line 6036 "asmparse.cpp" break; case 383: /* filterClause: filterHead int32 */ -#line 1008 "./asmparse.y" +#line 1009 "asmparse.y" { PASM->m_SEHD->sehFilter = (yyvsp[0].int32); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5737 "asmparse.cpp" +#line 6043 "asmparse.cpp" break; case 384: /* filterHead: FILTER_ */ -#line 1012 "./asmparse.y" +#line 1013 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 5744 "asmparse.cpp" +#line 6050 "asmparse.cpp" break; case 385: /* catchClause: CATCH_ typeSpec */ -#line 1016 "./asmparse.y" +#line 1017 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass((yyvsp[0].token)); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5752 "asmparse.cpp" +#line 6058 "asmparse.cpp" break; case 386: /* finallyClause: FINALLY_ */ -#line 1021 "./asmparse.y" +#line 1022 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5759 "asmparse.cpp" +#line 6065 "asmparse.cpp" break; case 387: /* faultClause: FAULT_ */ -#line 1025 "./asmparse.y" +#line 1026 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 5766 "asmparse.cpp" +#line 6072 "asmparse.cpp" break; case 388: /* handlerBlock: scopeBlock */ -#line 1029 "./asmparse.y" +#line 1030 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 5772 "asmparse.cpp" +#line 6078 "asmparse.cpp" break; case 389: /* handlerBlock: HANDLER_ id TO_ id */ -#line 1030 "./asmparse.y" +#line 1031 "asmparse.y" { PASM->SetHandlerLabels((yyvsp[-2].string), (yyvsp[0].string)); } -#line 5778 "asmparse.cpp" +#line 6084 "asmparse.cpp" break; case 390: /* handlerBlock: HANDLER_ int32 TO_ int32 */ -#line 1031 "./asmparse.y" +#line 1032 "asmparse.y" { PASM->m_SEHD->sehHandler = (yyvsp[-2].int32); PASM->m_SEHD->sehHandlerTo = (yyvsp[0].int32); } -#line 5785 "asmparse.cpp" +#line 6091 "asmparse.cpp" break; case 392: /* ddHead: _DATA tls id '=' */ -#line 1039 "./asmparse.y" +#line 1040 "asmparse.y" { PASM->EmitDataLabel((yyvsp[-1].string)); } -#line 5791 "asmparse.cpp" +#line 6097 "asmparse.cpp" break; case 394: /* tls: %empty */ -#line 1043 "./asmparse.y" +#line 1044 "asmparse.y" { PASM->SetDataSection(); } -#line 5797 "asmparse.cpp" +#line 6103 "asmparse.cpp" break; case 395: /* tls: TLS_ */ -#line 1044 "./asmparse.y" +#line 1045 "asmparse.y" { PASM->SetTLSSection(); } -#line 5803 "asmparse.cpp" +#line 6109 "asmparse.cpp" break; case 396: /* tls: CIL_ */ -#line 1045 "./asmparse.y" +#line 1046 "asmparse.y" { PASM->SetILSection(); } -#line 5809 "asmparse.cpp" +#line 6115 "asmparse.cpp" break; case 401: /* ddItemCount: %empty */ -#line 1056 "./asmparse.y" +#line 1057 "asmparse.y" { (yyval.int32) = 1; } -#line 5815 "asmparse.cpp" +#line 6121 "asmparse.cpp" break; case 402: /* ddItemCount: '[' int32 ']' */ -#line 1057 "./asmparse.y" +#line 1058 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32); if((yyvsp[-1].int32) <= 0) { PASM->report->error("Illegal item count: %d\n",(yyvsp[-1].int32)); if(!PASM->OnErrGo) (yyval.int32) = 1; }} -#line 5823 "asmparse.cpp" +#line 6129 "asmparse.cpp" break; case 403: /* ddItem: CHAR_ '*' '(' compQstring ')' */ -#line 1062 "./asmparse.y" +#line 1063 "asmparse.y" { PASM->EmitDataString((yyvsp[-1].binstr)); } -#line 5829 "asmparse.cpp" +#line 6135 "asmparse.cpp" break; case 404: /* ddItem: '&' '(' id ')' */ -#line 1063 "./asmparse.y" +#line 1064 "asmparse.y" { PASM->EmitDD((yyvsp[-1].string)); } -#line 5835 "asmparse.cpp" +#line 6141 "asmparse.cpp" break; case 405: /* ddItem: bytearrayhead bytes ')' */ -#line 1064 "./asmparse.y" +#line 1065 "asmparse.y" { PASM->EmitData((yyvsp[-1].binstr)->ptr(),(yyvsp[-1].binstr)->length()); } -#line 5841 "asmparse.cpp" +#line 6147 "asmparse.cpp" break; case 406: /* ddItem: FLOAT32_ '(' float64 ')' ddItemCount */ -#line 1066 "./asmparse.y" +#line 1067 "asmparse.y" { float f = (float) (*(yyvsp[-2].float64)); float* p = new (nothrow) float[(yyvsp[0].int32)]; if(p != NULL) { for(int i=0; i < (yyvsp[0].int32); i++) p[i] = f; PASM->EmitData(p, sizeof(float)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*(yyvsp[0].int32)); } -#line 5852 "asmparse.cpp" +#line 6158 "asmparse.cpp" break; case 407: /* ddItem: FLOAT64_ '(' float64 ')' ddItemCount */ -#line 1073 "./asmparse.y" +#line 1074 "asmparse.y" { double* p = new (nothrow) double[(yyvsp[0].int32)]; if(p != NULL) { for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].float64)); PASM->EmitData(p, sizeof(double)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*(yyvsp[0].int32)); } -#line 5863 "asmparse.cpp" +#line 6169 "asmparse.cpp" break; case 408: /* ddItem: INT64_ '(' int64 ')' ddItemCount */ -#line 1080 "./asmparse.y" +#line 1081 "asmparse.y" { __int64* p = new (nothrow) __int64[(yyvsp[0].int32)]; if(p != NULL) { for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].int64)); PASM->EmitData(p, sizeof(__int64)*(yyvsp[0].int32)); delete (yyvsp[-2].int64); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*(yyvsp[0].int32)); } -#line 5874 "asmparse.cpp" +#line 6180 "asmparse.cpp" break; case 409: /* ddItem: INT32_ '(' int32 ')' ddItemCount */ -#line 1087 "./asmparse.y" +#line 1088 "asmparse.y" { __int32* p = new (nothrow) __int32[(yyvsp[0].int32)]; if(p != NULL) { for(int i=0; i<(yyvsp[0].int32); i++) p[i] = (yyvsp[-2].int32); PASM->EmitData(p, sizeof(__int32)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*(yyvsp[0].int32)); } -#line 5885 "asmparse.cpp" +#line 6191 "asmparse.cpp" break; case 410: /* ddItem: INT16_ '(' int32 ')' ddItemCount */ -#line 1094 "./asmparse.y" +#line 1095 "asmparse.y" { __int16 i = (__int16) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); __int16* p = new (nothrow) __int16[(yyvsp[0].int32)]; if(p != NULL) { @@ -5893,11 +6199,11 @@ yyparse (void) PASM->EmitData(p, sizeof(__int16)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*(yyvsp[0].int32)); } -#line 5897 "asmparse.cpp" +#line 6203 "asmparse.cpp" break; case 411: /* ddItem: INT8_ '(' int32 ')' ddItemCount */ -#line 1102 "./asmparse.y" +#line 1103 "asmparse.y" { __int8 i = (__int8) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); __int8* p = new (nothrow) __int8[(yyvsp[0].int32)]; if(p != NULL) { @@ -5905,726 +6211,853 @@ yyparse (void) PASM->EmitData(p, sizeof(__int8)*(yyvsp[0].int32)); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*(yyvsp[0].int32)); } -#line 5909 "asmparse.cpp" +#line 6215 "asmparse.cpp" break; case 412: /* ddItem: FLOAT32_ ddItemCount */ -#line 1109 "./asmparse.y" +#line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*(yyvsp[0].int32)); } -#line 5915 "asmparse.cpp" +#line 6221 "asmparse.cpp" break; case 413: /* ddItem: FLOAT64_ ddItemCount */ -#line 1110 "./asmparse.y" +#line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*(yyvsp[0].int32)); } -#line 5921 "asmparse.cpp" +#line 6227 "asmparse.cpp" break; case 414: /* ddItem: INT64_ ddItemCount */ -#line 1111 "./asmparse.y" +#line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*(yyvsp[0].int32)); } -#line 5927 "asmparse.cpp" +#line 6233 "asmparse.cpp" break; case 415: /* ddItem: INT32_ ddItemCount */ -#line 1112 "./asmparse.y" +#line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*(yyvsp[0].int32)); } -#line 5933 "asmparse.cpp" +#line 6239 "asmparse.cpp" break; case 416: /* ddItem: INT16_ ddItemCount */ -#line 1113 "./asmparse.y" +#line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*(yyvsp[0].int32)); } -#line 5939 "asmparse.cpp" +#line 6245 "asmparse.cpp" break; case 417: /* ddItem: INT8_ ddItemCount */ -#line 1114 "./asmparse.y" +#line 1115 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*(yyvsp[0].int32)); } -#line 5945 "asmparse.cpp" +#line 6251 "asmparse.cpp" break; case 418: /* fieldSerInit: FLOAT32_ '(' float64 ')' */ -#line 1118 "./asmparse.y" +#line 1119 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*(yyvsp[-1].float64)); (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[-1].float64); } -#line 5953 "asmparse.cpp" +#line 6259 "asmparse.cpp" break; case 419: /* fieldSerInit: FLOAT64_ '(' float64 ')' */ -#line 1121 "./asmparse.y" +#line 1122 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].float64)); delete (yyvsp[-1].float64); } -#line 5960 "asmparse.cpp" +#line 6266 "asmparse.cpp" break; case 420: /* fieldSerInit: FLOAT32_ '(' int32 ')' */ -#line 1123 "./asmparse.y" +#line 1124 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 5967 "asmparse.cpp" +#line 6273 "asmparse.cpp" break; case 421: /* fieldSerInit: FLOAT64_ '(' int64 ')' */ -#line 1125 "./asmparse.y" +#line 1126 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 5974 "asmparse.cpp" +#line 6280 "asmparse.cpp" break; case 422: /* fieldSerInit: INT64_ '(' int64 ')' */ -#line 1127 "./asmparse.y" +#line 1128 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 5981 "asmparse.cpp" +#line 6287 "asmparse.cpp" break; case 423: /* fieldSerInit: INT32_ '(' int32 ')' */ -#line 1129 "./asmparse.y" +#line 1130 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 5988 "asmparse.cpp" +#line 6294 "asmparse.cpp" break; case 424: /* fieldSerInit: INT16_ '(' int32 ')' */ -#line 1131 "./asmparse.y" +#line 1132 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 5995 "asmparse.cpp" +#line 6301 "asmparse.cpp" break; case 425: /* fieldSerInit: INT8_ '(' int32 ')' */ -#line 1133 "./asmparse.y" +#line 1134 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6002 "asmparse.cpp" +#line 6308 "asmparse.cpp" break; case 426: /* fieldSerInit: UNSIGNED_ INT64_ '(' int64 ')' */ -#line 1135 "./asmparse.y" +#line 1136 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6009 "asmparse.cpp" +#line 6315 "asmparse.cpp" break; case 427: /* fieldSerInit: UNSIGNED_ INT32_ '(' int32 ')' */ -#line 1137 "./asmparse.y" +#line 1138 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6016 "asmparse.cpp" +#line 6322 "asmparse.cpp" break; case 428: /* fieldSerInit: UNSIGNED_ INT16_ '(' int32 ')' */ -#line 1139 "./asmparse.y" +#line 1140 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6023 "asmparse.cpp" +#line 6329 "asmparse.cpp" break; case 429: /* fieldSerInit: UNSIGNED_ INT8_ '(' int32 ')' */ -#line 1141 "./asmparse.y" +#line 1142 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6030 "asmparse.cpp" +#line 6336 "asmparse.cpp" break; case 430: /* fieldSerInit: UINT64_ '(' int64 ')' */ -#line 1143 "./asmparse.y" +#line 1144 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6037 "asmparse.cpp" +#line 6343 "asmparse.cpp" break; case 431: /* fieldSerInit: UINT32_ '(' int32 ')' */ -#line 1145 "./asmparse.y" +#line 1146 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6044 "asmparse.cpp" +#line 6350 "asmparse.cpp" break; case 432: /* fieldSerInit: UINT16_ '(' int32 ')' */ -#line 1147 "./asmparse.y" +#line 1148 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6051 "asmparse.cpp" +#line 6357 "asmparse.cpp" break; case 433: /* fieldSerInit: UINT8_ '(' int32 ')' */ -#line 1149 "./asmparse.y" +#line 1150 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6058 "asmparse.cpp" +#line 6364 "asmparse.cpp" break; case 434: /* fieldSerInit: CHAR_ '(' int32 ')' */ -#line 1151 "./asmparse.y" +#line 1152 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6065 "asmparse.cpp" +#line 6371 "asmparse.cpp" break; case 435: /* fieldSerInit: BOOL_ '(' truefalse ')' */ -#line 1153 "./asmparse.y" +#line 1154 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); (yyval.binstr)->appendInt8((yyvsp[-1].int32));} -#line 6072 "asmparse.cpp" +#line 6378 "asmparse.cpp" break; case 436: /* fieldSerInit: bytearrayhead bytes ')' */ -#line 1155 "./asmparse.y" +#line 1156 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-1].binstr);} -#line 6079 "asmparse.cpp" +#line 6385 "asmparse.cpp" break; case 437: /* bytearrayhead: BYTEARRAY_ '(' */ -#line 1159 "./asmparse.y" +#line 1160 "asmparse.y" { bParsingByteArray = TRUE; } -#line 6085 "asmparse.cpp" +#line 6391 "asmparse.cpp" break; case 438: /* bytes: %empty */ -#line 1162 "./asmparse.y" +#line 1163 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6091 "asmparse.cpp" +#line 6397 "asmparse.cpp" break; case 439: /* bytes: hexbytes */ -#line 1163 "./asmparse.y" +#line 1164 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6097 "asmparse.cpp" +#line 6403 "asmparse.cpp" break; case 440: /* hexbytes: HEXBYTE */ -#line 1166 "./asmparse.y" +#line 1167 "asmparse.y" { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(i); } -#line 6103 "asmparse.cpp" +#line 6409 "asmparse.cpp" break; case 441: /* hexbytes: hexbytes HEXBYTE */ -#line 1167 "./asmparse.y" +#line 1168 "asmparse.y" { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(i); } -#line 6109 "asmparse.cpp" +#line 6415 "asmparse.cpp" break; case 442: /* fieldInit: fieldSerInit */ -#line 1171 "./asmparse.y" +#line 1172 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6115 "asmparse.cpp" +#line 6421 "asmparse.cpp" break; case 443: /* fieldInit: compQstring */ -#line 1172 "./asmparse.y" +#line 1173 "asmparse.y" { (yyval.binstr) = BinStrToUnicode((yyvsp[0].binstr),true); (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING);} -#line 6121 "asmparse.cpp" +#line 6427 "asmparse.cpp" break; case 444: /* fieldInit: NULLREF_ */ -#line 1173 "./asmparse.y" +#line 1174 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CLASS); (yyval.binstr)->appendInt32(0); } -#line 6128 "asmparse.cpp" +#line 6434 "asmparse.cpp" break; case 445: /* serInit: fieldSerInit */ -#line 1178 "./asmparse.y" +#line 1179 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6134 "asmparse.cpp" +#line 6440 "asmparse.cpp" break; case 446: /* serInit: STRING_ '(' NULLREF_ ')' */ -#line 1179 "./asmparse.y" +#line 1180 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); (yyval.binstr)->appendInt8(0xFF); } -#line 6140 "asmparse.cpp" +#line 6446 "asmparse.cpp" break; case 447: /* serInit: STRING_ '(' SQSTRING ')' */ -#line 1180 "./asmparse.y" +#line 1181 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} -#line 6147 "asmparse.cpp" +#line 6453 "asmparse.cpp" break; case 448: /* serInit: TYPE_ '(' CLASS_ SQSTRING ')' */ -#line 1182 "./asmparse.y" +#line 1183 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} -#line 6154 "asmparse.cpp" +#line 6460 "asmparse.cpp" break; case 449: /* serInit: TYPE_ '(' className ')' */ -#line 1184 "./asmparse.y" +#line 1185 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[-1].token)));} -#line 6161 "asmparse.cpp" +#line 6467 "asmparse.cpp" break; case 450: /* serInit: TYPE_ '(' NULLREF_ ')' */ -#line 1186 "./asmparse.y" +#line 1187 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); (yyval.binstr)->appendInt8(0xFF); } -#line 6167 "asmparse.cpp" +#line 6473 "asmparse.cpp" break; case 451: /* serInit: OBJECT_ '(' serInit ')' */ -#line 1187 "./asmparse.y" +#line 1188 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 6173 "asmparse.cpp" +#line 6479 "asmparse.cpp" break; case 452: /* serInit: FLOAT32_ '[' int32 ']' '(' f32seq ')' */ -#line 1189 "./asmparse.y" +#line 1190 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_R4); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6181 "asmparse.cpp" +#line 6487 "asmparse.cpp" break; case 453: /* serInit: FLOAT64_ '[' int32 ']' '(' f64seq ')' */ -#line 1193 "./asmparse.y" +#line 1194 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_R8); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6189 "asmparse.cpp" +#line 6495 "asmparse.cpp" break; case 454: /* serInit: INT64_ '[' int32 ']' '(' i64seq ')' */ -#line 1197 "./asmparse.y" +#line 1198 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_I8); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6197 "asmparse.cpp" +#line 6503 "asmparse.cpp" break; case 455: /* serInit: INT32_ '[' int32 ']' '(' i32seq ')' */ -#line 1201 "./asmparse.y" +#line 1202 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_I4); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6205 "asmparse.cpp" +#line 6511 "asmparse.cpp" break; case 456: /* serInit: INT16_ '[' int32 ']' '(' i16seq ')' */ -#line 1205 "./asmparse.y" +#line 1206 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_I2); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6213 "asmparse.cpp" +#line 6519 "asmparse.cpp" break; case 457: /* serInit: INT8_ '[' int32 ']' '(' i8seq ')' */ -#line 1209 "./asmparse.y" +#line 1210 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_I1); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6221 "asmparse.cpp" +#line 6527 "asmparse.cpp" break; case 458: /* serInit: UINT64_ '[' int32 ']' '(' i64seq ')' */ -#line 1213 "./asmparse.y" +#line 1214 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6229 "asmparse.cpp" +#line 6535 "asmparse.cpp" break; case 459: /* serInit: UINT32_ '[' int32 ']' '(' i32seq ')' */ -#line 1217 "./asmparse.y" +#line 1218 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6237 "asmparse.cpp" +#line 6543 "asmparse.cpp" break; case 460: /* serInit: UINT16_ '[' int32 ']' '(' i16seq ')' */ -#line 1221 "./asmparse.y" +#line 1222 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6245 "asmparse.cpp" +#line 6551 "asmparse.cpp" break; case 461: /* serInit: UINT8_ '[' int32 ']' '(' i8seq ')' */ -#line 1225 "./asmparse.y" +#line 1226 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6253 "asmparse.cpp" +#line 6559 "asmparse.cpp" break; case 462: /* serInit: UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')' */ -#line 1229 "./asmparse.y" +#line 1230 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6261 "asmparse.cpp" +#line 6567 "asmparse.cpp" break; case 463: /* serInit: UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')' */ -#line 1233 "./asmparse.y" +#line 1234 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6269 "asmparse.cpp" +#line 6575 "asmparse.cpp" break; case 464: /* serInit: UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')' */ -#line 1237 "./asmparse.y" +#line 1238 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6277 "asmparse.cpp" +#line 6583 "asmparse.cpp" break; case 465: /* serInit: UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')' */ -#line 1241 "./asmparse.y" +#line 1242 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6285 "asmparse.cpp" +#line 6591 "asmparse.cpp" break; case 466: /* serInit: CHAR_ '[' int32 ']' '(' i16seq ')' */ -#line 1245 "./asmparse.y" +#line 1246 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_CHAR); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6293 "asmparse.cpp" +#line 6599 "asmparse.cpp" break; case 467: /* serInit: BOOL_ '[' int32 ']' '(' boolSeq ')' */ -#line 1249 "./asmparse.y" +#line 1250 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_BOOLEAN); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6301 "asmparse.cpp" +#line 6607 "asmparse.cpp" break; case 468: /* serInit: STRING_ '[' int32 ']' '(' sqstringSeq ')' */ -#line 1253 "./asmparse.y" +#line 1254 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6309 "asmparse.cpp" +#line 6615 "asmparse.cpp" break; case 469: /* serInit: TYPE_ '[' int32 ']' '(' classSeq ')' */ -#line 1257 "./asmparse.y" +#line 1258 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TYPE); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6317 "asmparse.cpp" +#line 6623 "asmparse.cpp" break; case 470: /* serInit: OBJECT_ '[' int32 ']' '(' objSeq ')' */ -#line 1261 "./asmparse.y" +#line 1262 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6325 "asmparse.cpp" +#line 6631 "asmparse.cpp" + break; + + case 471: /* constTypeArg: FLOAT32_ '(' float64 ')' */ +#line 1267 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*(yyvsp[-1].float64)); + (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[-1].float64); } +#line 6639 "asmparse.cpp" + break; + + case 472: /* constTypeArg: FLOAT64_ '(' float64 ')' */ +#line 1270 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].float64)); delete (yyvsp[-1].float64); } +#line 6646 "asmparse.cpp" + break; + + case 473: /* constTypeArg: FLOAT32_ '(' int32 ')' */ +#line 1272 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6653 "asmparse.cpp" + break; + + case 474: /* constTypeArg: FLOAT64_ '(' int64 ')' */ +#line 1274 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6660 "asmparse.cpp" + break; + + case 475: /* constTypeArg: INT64_ '(' int64 ')' */ +#line 1276 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6667 "asmparse.cpp" + break; + + case 476: /* constTypeArg: INT32_ '(' int32 ')' */ +#line 1278 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6674 "asmparse.cpp" + break; + + case 477: /* constTypeArg: INT16_ '(' int32 ')' */ +#line 1280 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6681 "asmparse.cpp" + break; + + case 478: /* constTypeArg: INT8_ '(' int32 ')' */ +#line 1282 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6688 "asmparse.cpp" + break; + + case 479: /* constTypeArg: UNSIGNED_ INT64_ '(' int64 ')' */ +#line 1284 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6695 "asmparse.cpp" + break; + + case 480: /* constTypeArg: UNSIGNED_ INT32_ '(' int32 ')' */ +#line 1286 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6702 "asmparse.cpp" + break; + + case 481: /* constTypeArg: UNSIGNED_ INT16_ '(' int32 ')' */ +#line 1288 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6709 "asmparse.cpp" + break; + + case 482: /* constTypeArg: UNSIGNED_ INT8_ '(' int32 ')' */ +#line 1290 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6716 "asmparse.cpp" + break; + + case 483: /* constTypeArg: UINT64_ '(' int64 ')' */ +#line 1292 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); + (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } +#line 6723 "asmparse.cpp" + break; + + case 484: /* constTypeArg: UINT32_ '(' int32 ')' */ +#line 1294 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); + (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } +#line 6730 "asmparse.cpp" + break; + + case 485: /* constTypeArg: UINT16_ '(' int32 ')' */ +#line 1296 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6737 "asmparse.cpp" + break; + + case 486: /* constTypeArg: UINT8_ '(' int32 ')' */ +#line 1298 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); + (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } +#line 6744 "asmparse.cpp" + break; + + case 487: /* constTypeArg: CHAR_ '(' int32 ')' */ +#line 1300 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); + (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } +#line 6751 "asmparse.cpp" break; - case 471: /* f32seq: %empty */ -#line 1267 "./asmparse.y" + case 488: /* constTypeArg: BOOL_ '(' truefalse ')' */ +#line 1302 "asmparse.y" + { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); + (yyval.binstr)->appendInt8((yyvsp[-1].int32));} +#line 6758 "asmparse.cpp" + break; + + case 489: /* f32seq: %empty */ +#line 1307 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6331 "asmparse.cpp" +#line 6764 "asmparse.cpp" break; - case 472: /* f32seq: f32seq float64 */ -#line 1268 "./asmparse.y" + case 490: /* f32seq: f32seq float64 */ +#line 1308 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); float f = (float) (*(yyvsp[0].float64)); (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[0].float64); } -#line 6338 "asmparse.cpp" +#line 6771 "asmparse.cpp" break; - case 473: /* f32seq: f32seq int32 */ -#line 1270 "./asmparse.y" + case 491: /* f32seq: f32seq int32 */ +#line 1310 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 6345 "asmparse.cpp" +#line 6778 "asmparse.cpp" break; - case 474: /* f64seq: %empty */ -#line 1274 "./asmparse.y" + case 492: /* f64seq: %empty */ +#line 1314 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6351 "asmparse.cpp" +#line 6784 "asmparse.cpp" break; - case 475: /* f64seq: f64seq float64 */ -#line 1275 "./asmparse.y" + case 493: /* f64seq: f64seq float64 */ +#line 1315 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].float64)); delete (yyvsp[0].float64); } -#line 6358 "asmparse.cpp" +#line 6791 "asmparse.cpp" break; - case 476: /* f64seq: f64seq int64 */ -#line 1277 "./asmparse.y" + case 494: /* f64seq: f64seq int64 */ +#line 1317 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } -#line 6365 "asmparse.cpp" +#line 6798 "asmparse.cpp" break; - case 477: /* i64seq: %empty */ -#line 1281 "./asmparse.y" + case 495: /* i64seq: %empty */ +#line 1321 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6371 "asmparse.cpp" +#line 6804 "asmparse.cpp" break; - case 478: /* i64seq: i64seq int64 */ -#line 1282 "./asmparse.y" + case 496: /* i64seq: i64seq int64 */ +#line 1322 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } -#line 6378 "asmparse.cpp" +#line 6811 "asmparse.cpp" break; - case 479: /* i32seq: %empty */ -#line 1286 "./asmparse.y" + case 497: /* i32seq: %empty */ +#line 1326 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6384 "asmparse.cpp" +#line 6817 "asmparse.cpp" break; - case 480: /* i32seq: i32seq int32 */ -#line 1287 "./asmparse.y" + case 498: /* i32seq: i32seq int32 */ +#line 1327 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt32((yyvsp[0].int32));} -#line 6390 "asmparse.cpp" +#line 6823 "asmparse.cpp" break; - case 481: /* i16seq: %empty */ -#line 1290 "./asmparse.y" + case 499: /* i16seq: %empty */ +#line 1330 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6396 "asmparse.cpp" +#line 6829 "asmparse.cpp" break; - case 482: /* i16seq: i16seq int32 */ -#line 1291 "./asmparse.y" + case 500: /* i16seq: i16seq int32 */ +#line 1331 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt16((yyvsp[0].int32));} -#line 6402 "asmparse.cpp" +#line 6835 "asmparse.cpp" break; - case 483: /* i8seq: %empty */ -#line 1294 "./asmparse.y" + case 501: /* i8seq: %empty */ +#line 1334 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6408 "asmparse.cpp" +#line 6841 "asmparse.cpp" break; - case 484: /* i8seq: i8seq int32 */ -#line 1295 "./asmparse.y" + case 502: /* i8seq: i8seq int32 */ +#line 1335 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8((yyvsp[0].int32)); } -#line 6414 "asmparse.cpp" +#line 6847 "asmparse.cpp" break; - case 485: /* boolSeq: %empty */ -#line 1298 "./asmparse.y" + case 503: /* boolSeq: %empty */ +#line 1338 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6420 "asmparse.cpp" +#line 6853 "asmparse.cpp" break; - case 486: /* boolSeq: boolSeq truefalse */ -#line 1299 "./asmparse.y" + case 504: /* boolSeq: boolSeq truefalse */ +#line 1339 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8((yyvsp[0].int32));} -#line 6427 "asmparse.cpp" +#line 6860 "asmparse.cpp" break; - case 487: /* sqstringSeq: %empty */ -#line 1303 "./asmparse.y" + case 505: /* sqstringSeq: %empty */ +#line 1343 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6433 "asmparse.cpp" +#line 6866 "asmparse.cpp" break; - case 488: /* sqstringSeq: sqstringSeq NULLREF_ */ -#line 1304 "./asmparse.y" + case 506: /* sqstringSeq: sqstringSeq NULLREF_ */ +#line 1344 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } -#line 6439 "asmparse.cpp" +#line 6872 "asmparse.cpp" break; - case 489: /* sqstringSeq: sqstringSeq SQSTRING */ -#line 1305 "./asmparse.y" + case 507: /* sqstringSeq: sqstringSeq SQSTRING */ +#line 1345 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} -#line 6446 "asmparse.cpp" +#line 6879 "asmparse.cpp" break; - case 490: /* classSeq: %empty */ -#line 1309 "./asmparse.y" + case 508: /* classSeq: %empty */ +#line 1349 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6452 "asmparse.cpp" +#line 6885 "asmparse.cpp" break; - case 491: /* classSeq: classSeq NULLREF_ */ -#line 1310 "./asmparse.y" + case 509: /* classSeq: classSeq NULLREF_ */ +#line 1350 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } -#line 6458 "asmparse.cpp" +#line 6891 "asmparse.cpp" break; - case 492: /* classSeq: classSeq CLASS_ SQSTRING */ -#line 1311 "./asmparse.y" + case 510: /* classSeq: classSeq CLASS_ SQSTRING */ +#line 1351 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} -#line 6465 "asmparse.cpp" +#line 6898 "asmparse.cpp" break; - case 493: /* classSeq: classSeq className */ -#line 1313 "./asmparse.y" + case 511: /* classSeq: classSeq className */ +#line 1353 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token)));} -#line 6472 "asmparse.cpp" +#line 6905 "asmparse.cpp" break; - case 494: /* objSeq: %empty */ -#line 1317 "./asmparse.y" + case 512: /* objSeq: %empty */ +#line 1357 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6478 "asmparse.cpp" +#line 6911 "asmparse.cpp" break; - case 495: /* objSeq: objSeq serInit */ -#line 1318 "./asmparse.y" + case 513: /* objSeq: objSeq serInit */ +#line 1358 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 6484 "asmparse.cpp" +#line 6917 "asmparse.cpp" break; - case 496: /* methodSpec: METHOD_ */ -#line 1322 "./asmparse.y" + case 514: /* methodSpec: METHOD_ */ +#line 1362 "asmparse.y" { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 6493 "asmparse.cpp" +#line 6926 "asmparse.cpp" break; - case 497: /* instr_none: INSTR_NONE */ -#line 1328 "./asmparse.y" + case 515: /* instr_none: INSTR_NONE */ +#line 1368 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6499 "asmparse.cpp" +#line 6932 "asmparse.cpp" break; - case 498: /* instr_var: INSTR_VAR */ -#line 1331 "./asmparse.y" + case 516: /* instr_var: INSTR_VAR */ +#line 1371 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6505 "asmparse.cpp" +#line 6938 "asmparse.cpp" break; - case 499: /* instr_i: INSTR_I */ -#line 1334 "./asmparse.y" + case 517: /* instr_i: INSTR_I */ +#line 1374 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6511 "asmparse.cpp" +#line 6944 "asmparse.cpp" break; - case 500: /* instr_i8: INSTR_I8 */ -#line 1337 "./asmparse.y" + case 518: /* instr_i8: INSTR_I8 */ +#line 1377 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6517 "asmparse.cpp" +#line 6950 "asmparse.cpp" break; - case 501: /* instr_r: INSTR_R */ -#line 1340 "./asmparse.y" + case 519: /* instr_r: INSTR_R */ +#line 1380 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6523 "asmparse.cpp" +#line 6956 "asmparse.cpp" break; - case 502: /* instr_brtarget: INSTR_BRTARGET */ -#line 1343 "./asmparse.y" + case 520: /* instr_brtarget: INSTR_BRTARGET */ +#line 1383 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6529 "asmparse.cpp" +#line 6962 "asmparse.cpp" break; - case 503: /* instr_method: INSTR_METHOD */ -#line 1346 "./asmparse.y" + case 521: /* instr_method: INSTR_METHOD */ +#line 1386 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); if((!PASM->OnErrGo)&& (((yyvsp[0].opcode) == CEE_NEWOBJ)|| ((yyvsp[0].opcode) == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 6540 "asmparse.cpp" +#line 6973 "asmparse.cpp" break; - case 504: /* instr_field: INSTR_FIELD */ -#line 1354 "./asmparse.y" + case 522: /* instr_field: INSTR_FIELD */ +#line 1394 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6546 "asmparse.cpp" +#line 6979 "asmparse.cpp" break; - case 505: /* instr_type: INSTR_TYPE */ -#line 1357 "./asmparse.y" + case 523: /* instr_type: INSTR_TYPE */ +#line 1397 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6552 "asmparse.cpp" +#line 6985 "asmparse.cpp" break; - case 506: /* instr_string: INSTR_STRING */ -#line 1360 "./asmparse.y" + case 524: /* instr_string: INSTR_STRING */ +#line 1400 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6558 "asmparse.cpp" +#line 6991 "asmparse.cpp" break; - case 507: /* instr_sig: INSTR_SIG */ -#line 1363 "./asmparse.y" + case 525: /* instr_sig: INSTR_SIG */ +#line 1403 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6564 "asmparse.cpp" +#line 6997 "asmparse.cpp" break; - case 508: /* instr_tok: INSTR_TOK */ -#line 1366 "./asmparse.y" + case 526: /* instr_tok: INSTR_TOK */ +#line 1406 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); iOpcodeLen = PASM->OpcodeLen((yyval.instr)); } -#line 6570 "asmparse.cpp" +#line 7003 "asmparse.cpp" break; - case 509: /* instr_switch: INSTR_SWITCH */ -#line 1369 "./asmparse.y" + case 527: /* instr_switch: INSTR_SWITCH */ +#line 1409 "asmparse.y" { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6576 "asmparse.cpp" +#line 7009 "asmparse.cpp" break; - case 510: /* instr_r_head: instr_r '(' */ -#line 1372 "./asmparse.y" + case 528: /* instr_r_head: instr_r '(' */ +#line 1412 "asmparse.y" { (yyval.instr) = (yyvsp[-1].instr); bParsingByteArray = TRUE; } -#line 6582 "asmparse.cpp" +#line 7015 "asmparse.cpp" break; - case 511: /* instr: instr_none */ -#line 1376 "./asmparse.y" + case 529: /* instr: instr_none */ +#line 1416 "asmparse.y" { PASM->EmitOpcode((yyvsp[0].instr)); } -#line 6588 "asmparse.cpp" +#line 7021 "asmparse.cpp" break; - case 512: /* instr: instr_var int32 */ -#line 1377 "./asmparse.y" + case 530: /* instr: instr_var int32 */ +#line 1417 "asmparse.y" { PASM->EmitInstrVar((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 6594 "asmparse.cpp" +#line 7027 "asmparse.cpp" break; - case 513: /* instr: instr_var id */ -#line 1378 "./asmparse.y" + case 531: /* instr: instr_var id */ +#line 1418 "asmparse.y" { PASM->EmitInstrVarByName((yyvsp[-1].instr), (yyvsp[0].string)); } -#line 6600 "asmparse.cpp" +#line 7033 "asmparse.cpp" break; - case 514: /* instr: instr_i int32 */ -#line 1379 "./asmparse.y" + case 532: /* instr: instr_i int32 */ +#line 1419 "asmparse.y" { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 6606 "asmparse.cpp" +#line 7039 "asmparse.cpp" break; - case 515: /* instr: instr_i8 int64 */ -#line 1380 "./asmparse.y" + case 533: /* instr: instr_i8 int64 */ +#line 1420 "asmparse.y" { PASM->EmitInstrI8((yyvsp[-1].instr), (yyvsp[0].int64)); } -#line 6612 "asmparse.cpp" +#line 7045 "asmparse.cpp" break; - case 516: /* instr: instr_r float64 */ -#line 1381 "./asmparse.y" + case 534: /* instr: instr_r float64 */ +#line 1421 "asmparse.y" { PASM->EmitInstrR((yyvsp[-1].instr), (yyvsp[0].float64)); delete ((yyvsp[0].float64));} -#line 6618 "asmparse.cpp" +#line 7051 "asmparse.cpp" break; - case 517: /* instr: instr_r int64 */ -#line 1382 "./asmparse.y" + case 535: /* instr: instr_r int64 */ +#line 1422 "asmparse.y" { double f = (double) (*(yyvsp[0].int64)); PASM->EmitInstrR((yyvsp[-1].instr), &f); } -#line 6624 "asmparse.cpp" +#line 7057 "asmparse.cpp" break; - case 518: /* instr: instr_r_head bytes ')' */ -#line 1383 "./asmparse.y" + case 536: /* instr: instr_r_head bytes ')' */ +#line 1423 "asmparse.y" { unsigned L = (yyvsp[-1].binstr)->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -6634,34 +7067,34 @@ yyparse (void) : (double)(*(float *)((yyvsp[-1].binstr)->ptr())); PASM->EmitInstrR((yyvsp[-2].instr),&f); } delete (yyvsp[-1].binstr); } -#line 6638 "asmparse.cpp" +#line 7071 "asmparse.cpp" break; - case 519: /* instr: instr_brtarget int32 */ -#line 1392 "./asmparse.y" + case 537: /* instr: instr_brtarget int32 */ +#line 1432 "asmparse.y" { PASM->EmitInstrBrOffset((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 6644 "asmparse.cpp" +#line 7077 "asmparse.cpp" break; - case 520: /* instr: instr_brtarget id */ -#line 1393 "./asmparse.y" + case 538: /* instr: instr_brtarget id */ +#line 1433 "asmparse.y" { PASM->EmitInstrBrTarget((yyvsp[-1].instr), (yyvsp[0].string)); } -#line 6650 "asmparse.cpp" +#line 7083 "asmparse.cpp" break; - case 521: /* instr: instr_method methodRef */ -#line 1395 "./asmparse.y" + case 539: /* instr: instr_method methodRef */ +#line 1435 "asmparse.y" { PASM->SetMemberRefFixup((yyvsp[0].token),PASM->OpcodeLen((yyvsp[-1].instr))); PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); PASM->m_tkCurrentCVOwner = (yyvsp[0].token); PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 6661 "asmparse.cpp" +#line 7094 "asmparse.cpp" break; - case 522: /* instr: instr_field type typeSpec DCOLON dottedName */ -#line 1402 "./asmparse.y" + case 540: /* instr: instr_field type typeSpec DCOLON dottedName */ +#line 1442 "asmparse.y" { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-4].instr))); @@ -6669,11 +7102,11 @@ yyparse (void) PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 6673 "asmparse.cpp" +#line 7106 "asmparse.cpp" break; - case 523: /* instr: instr_field type dottedName */ -#line 1410 "./asmparse.y" + case 541: /* instr: instr_field type dottedName */ +#line 1450 "asmparse.y" { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, (yyvsp[0].string), (yyvsp[-1].binstr)); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-2].instr))); @@ -6681,1073 +7114,1073 @@ yyparse (void) PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 6685 "asmparse.cpp" +#line 7118 "asmparse.cpp" break; - case 524: /* instr: instr_field mdtoken */ -#line 1417 "./asmparse.y" + case 542: /* instr: instr_field mdtoken */ +#line 1457 "asmparse.y" { mdToken mr = (yyvsp[0].token); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); PASM->EmitInstrI((yyvsp[-1].instr),mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 6696 "asmparse.cpp" +#line 7129 "asmparse.cpp" break; - case 525: /* instr: instr_field TYPEDEF_F */ -#line 1423 "./asmparse.y" + case 543: /* instr: instr_field TYPEDEF_F */ +#line 1463 "asmparse.y" { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); PASM->EmitInstrI((yyvsp[-1].instr),mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 6707 "asmparse.cpp" +#line 7140 "asmparse.cpp" break; - case 526: /* instr: instr_field TYPEDEF_MR */ -#line 1429 "./asmparse.y" + case 544: /* instr: instr_field TYPEDEF_MR */ +#line 1469 "asmparse.y" { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); PASM->EmitInstrI((yyvsp[-1].instr),mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 6718 "asmparse.cpp" +#line 7151 "asmparse.cpp" break; - case 527: /* instr: instr_type typeSpec */ -#line 1435 "./asmparse.y" + case 545: /* instr: instr_type typeSpec */ +#line 1475 "asmparse.y" { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].token)); PASM->m_tkCurrentCVOwner = (yyvsp[0].token); PASM->m_pCustomDescrList = NULL; } -#line 6727 "asmparse.cpp" +#line 7160 "asmparse.cpp" break; - case 528: /* instr: instr_string compQstring */ -#line 1439 "./asmparse.y" + case 546: /* instr: instr_string compQstring */ +#line 1479 "asmparse.y" { PASM->EmitInstrStringLiteral((yyvsp[-1].instr), (yyvsp[0].binstr),TRUE); } -#line 6733 "asmparse.cpp" +#line 7166 "asmparse.cpp" break; - case 529: /* instr: instr_string ANSI_ '(' compQstring ')' */ -#line 1441 "./asmparse.y" + case 547: /* instr: instr_string ANSI_ '(' compQstring ')' */ +#line 1481 "asmparse.y" { PASM->EmitInstrStringLiteral((yyvsp[-4].instr), (yyvsp[-1].binstr),FALSE); } -#line 6739 "asmparse.cpp" +#line 7172 "asmparse.cpp" break; - case 530: /* instr: instr_string bytearrayhead bytes ')' */ -#line 1443 "./asmparse.y" + case 548: /* instr: instr_string bytearrayhead bytes ')' */ +#line 1483 "asmparse.y" { PASM->EmitInstrStringLiteral((yyvsp[-3].instr), (yyvsp[-1].binstr),FALSE,TRUE); } -#line 6745 "asmparse.cpp" +#line 7178 "asmparse.cpp" break; - case 531: /* instr: instr_sig callConv type '(' sigArgs0 ')' */ -#line 1445 "./asmparse.y" + case 549: /* instr: instr_sig callConv type '(' sigArgs0 ')' */ +#line 1485 "asmparse.y" { PASM->EmitInstrSig((yyvsp[-5].instr), parser->MakeSig((yyvsp[-4].int32), (yyvsp[-3].binstr), (yyvsp[-1].binstr))); PASM->ResetArgNameList(); } -#line 6753 "asmparse.cpp" +#line 7186 "asmparse.cpp" break; - case 532: /* instr: instr_tok ownerType */ -#line 1449 "./asmparse.y" + case 550: /* instr: instr_tok ownerType */ +#line 1489 "asmparse.y" { PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); PASM->m_tkCurrentCVOwner = (yyvsp[0].token); PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 6763 "asmparse.cpp" +#line 7196 "asmparse.cpp" break; - case 533: /* instr: instr_switch '(' labels ')' */ -#line 1454 "./asmparse.y" + case 551: /* instr: instr_switch '(' labels ')' */ +#line 1494 "asmparse.y" { PASM->EmitInstrSwitch((yyvsp[-3].instr), (yyvsp[-1].labels)); } -#line 6769 "asmparse.cpp" +#line 7202 "asmparse.cpp" break; - case 534: /* labels: %empty */ -#line 1457 "./asmparse.y" + case 552: /* labels: %empty */ +#line 1497 "asmparse.y" { (yyval.labels) = 0; } -#line 6775 "asmparse.cpp" +#line 7208 "asmparse.cpp" break; - case 535: /* labels: id ',' labels */ -#line 1458 "./asmparse.y" + case 553: /* labels: id ',' labels */ +#line 1498 "asmparse.y" { (yyval.labels) = new Labels((yyvsp[-2].string), (yyvsp[0].labels), TRUE); } -#line 6781 "asmparse.cpp" +#line 7214 "asmparse.cpp" break; - case 536: /* labels: int32 ',' labels */ -#line 1459 "./asmparse.y" + case 554: /* labels: int32 ',' labels */ +#line 1499 "asmparse.y" { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[-2].int32), (yyvsp[0].labels), FALSE); } -#line 6787 "asmparse.cpp" +#line 7220 "asmparse.cpp" break; - case 537: /* labels: id */ -#line 1460 "./asmparse.y" + case 555: /* labels: id */ +#line 1500 "asmparse.y" { (yyval.labels) = new Labels((yyvsp[0].string), NULL, TRUE); } -#line 6793 "asmparse.cpp" +#line 7226 "asmparse.cpp" break; - case 538: /* labels: int32 */ -#line 1461 "./asmparse.y" + case 556: /* labels: int32 */ +#line 1501 "asmparse.y" { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[0].int32), NULL, FALSE); } -#line 6799 "asmparse.cpp" +#line 7232 "asmparse.cpp" break; - case 539: /* tyArgs0: %empty */ -#line 1465 "./asmparse.y" + case 557: /* tyArgs0: %empty */ +#line 1505 "asmparse.y" { (yyval.binstr) = NULL; } -#line 6805 "asmparse.cpp" +#line 7238 "asmparse.cpp" break; - case 540: /* tyArgs0: '<' tyArgs1 '>' */ -#line 1466 "./asmparse.y" + case 558: /* tyArgs0: '<' tyArgs1 '>' */ +#line 1506 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 6811 "asmparse.cpp" +#line 7244 "asmparse.cpp" break; - case 541: /* tyArgs1: %empty */ -#line 1469 "./asmparse.y" + case 559: /* tyArgs1: %empty */ +#line 1509 "asmparse.y" { (yyval.binstr) = NULL; } -#line 6817 "asmparse.cpp" +#line 7250 "asmparse.cpp" break; - case 542: /* tyArgs1: tyArgs2 */ -#line 1470 "./asmparse.y" + case 560: /* tyArgs1: tyArgs2 */ +#line 1510 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6823 "asmparse.cpp" +#line 7256 "asmparse.cpp" break; - case 543: /* tyArgs2: type */ -#line 1473 "./asmparse.y" + case 561: /* tyArgs2: type */ +#line 1513 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6829 "asmparse.cpp" +#line 7262 "asmparse.cpp" break; - case 544: /* tyArgs2: tyArgs2 ',' type */ -#line 1474 "./asmparse.y" + case 562: /* tyArgs2: tyArgs2 ',' type */ +#line 1514 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 6835 "asmparse.cpp" +#line 7268 "asmparse.cpp" break; - case 545: /* sigArgs0: %empty */ -#line 1478 "./asmparse.y" + case 563: /* sigArgs0: %empty */ +#line 1518 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6841 "asmparse.cpp" +#line 7274 "asmparse.cpp" break; - case 546: /* sigArgs0: sigArgs1 */ -#line 1479 "./asmparse.y" + case 564: /* sigArgs0: sigArgs1 */ +#line 1519 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr);} -#line 6847 "asmparse.cpp" +#line 7280 "asmparse.cpp" break; - case 547: /* sigArgs1: sigArg */ -#line 1482 "./asmparse.y" + case 565: /* sigArgs1: sigArg */ +#line 1522 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6853 "asmparse.cpp" +#line 7286 "asmparse.cpp" break; - case 548: /* sigArgs1: sigArgs1 ',' sigArg */ -#line 1483 "./asmparse.y" + case 566: /* sigArgs1: sigArgs1 ',' sigArg */ +#line 1523 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 6859 "asmparse.cpp" +#line 7292 "asmparse.cpp" break; - case 549: /* sigArg: ELLIPSIS */ -#line 1486 "./asmparse.y" + case 567: /* sigArg: ELLIPSIS */ +#line 1526 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 6865 "asmparse.cpp" +#line 7298 "asmparse.cpp" break; - case 550: /* sigArg: paramAttr type marshalClause */ -#line 1487 "./asmparse.y" + case 568: /* sigArg: paramAttr type marshalClause */ +#line 1527 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-1].binstr)); PASM->addArgName(NULL, (yyvsp[-1].binstr), (yyvsp[0].binstr), (yyvsp[-2].int32)); } -#line 6871 "asmparse.cpp" +#line 7304 "asmparse.cpp" break; - case 551: /* sigArg: paramAttr type marshalClause id */ -#line 1488 "./asmparse.y" + case 569: /* sigArg: paramAttr type marshalClause id */ +#line 1528 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-2].binstr)); PASM->addArgName((yyvsp[0].string), (yyvsp[-2].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32));} -#line 6877 "asmparse.cpp" +#line 7310 "asmparse.cpp" break; - case 552: /* className: '[' dottedName ']' slashedName */ -#line 1492 "./asmparse.y" + case 570: /* className: '[' dottedName ']' slashedName */ +#line 1532 "asmparse.y" { (yyval.token) = PASM->ResolveClassRef(PASM->GetAsmRef((yyvsp[-2].string)), (yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} -#line 6883 "asmparse.cpp" +#line 7316 "asmparse.cpp" break; - case 553: /* className: '[' mdtoken ']' slashedName */ -#line 1493 "./asmparse.y" + case 571: /* className: '[' mdtoken ']' slashedName */ +#line 1533 "asmparse.y" { (yyval.token) = PASM->ResolveClassRef((yyvsp[-2].token), (yyvsp[0].string), NULL); } -#line 6889 "asmparse.cpp" +#line 7322 "asmparse.cpp" break; - case 554: /* className: '[' '*' ']' slashedName */ -#line 1494 "./asmparse.y" + case 572: /* className: '[' '*' ']' slashedName */ +#line 1534 "asmparse.y" { (yyval.token) = PASM->ResolveClassRef(mdTokenNil, (yyvsp[0].string), NULL); } -#line 6895 "asmparse.cpp" +#line 7328 "asmparse.cpp" break; - case 555: /* className: '[' _MODULE dottedName ']' slashedName */ -#line 1495 "./asmparse.y" + case 573: /* className: '[' _MODULE dottedName ']' slashedName */ +#line 1535 "asmparse.y" { (yyval.token) = PASM->ResolveClassRef(PASM->GetModRef((yyvsp[-2].string)),(yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} -#line 6901 "asmparse.cpp" +#line 7334 "asmparse.cpp" break; - case 556: /* className: slashedName */ -#line 1496 "./asmparse.y" + case 574: /* className: slashedName */ +#line 1536 "asmparse.y" { (yyval.token) = PASM->ResolveClassRef(1,(yyvsp[0].string),NULL); } -#line 6907 "asmparse.cpp" +#line 7340 "asmparse.cpp" break; - case 557: /* className: mdtoken */ -#line 1497 "./asmparse.y" + case 575: /* className: mdtoken */ +#line 1537 "asmparse.y" { (yyval.token) = (yyvsp[0].token); } -#line 6913 "asmparse.cpp" +#line 7346 "asmparse.cpp" break; - case 558: /* className: TYPEDEF_T */ -#line 1498 "./asmparse.y" + case 576: /* className: TYPEDEF_T */ +#line 1538 "asmparse.y" { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 6919 "asmparse.cpp" +#line 7352 "asmparse.cpp" break; - case 559: /* className: _THIS */ -#line 1499 "./asmparse.y" + case 577: /* className: _THIS */ +#line 1539 "asmparse.y" { if(PASM->m_pCurClass != NULL) (yyval.token) = PASM->m_pCurClass->m_cl; else { (yyval.token) = 0; PASM->report->error(".this outside class scope\n"); } } -#line 6927 "asmparse.cpp" +#line 7360 "asmparse.cpp" break; - case 560: /* className: _BASE */ -#line 1502 "./asmparse.y" + case 578: /* className: _BASE */ +#line 1542 "asmparse.y" { if(PASM->m_pCurClass != NULL) { (yyval.token) = PASM->m_pCurClass->m_crExtends; if(RidFromToken((yyval.token)) == 0) PASM->report->error(".base undefined\n"); } else { (yyval.token) = 0; PASM->report->error(".base outside class scope\n"); } } -#line 6938 "asmparse.cpp" +#line 7371 "asmparse.cpp" break; - case 561: /* className: _NESTER */ -#line 1508 "./asmparse.y" + case 579: /* className: _NESTER */ +#line 1548 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) (yyval.token) = PASM->m_pCurClass->m_pEncloser->m_cl; else { (yyval.token) = 0; PASM->report->error(".nester undefined\n"); } } else { (yyval.token) = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 6948 "asmparse.cpp" +#line 7381 "asmparse.cpp" break; - case 562: /* slashedName: dottedName */ -#line 1515 "./asmparse.y" + case 580: /* slashedName: dottedName */ +#line 1555 "asmparse.y" { (yyval.string) = (yyvsp[0].string); } -#line 6954 "asmparse.cpp" +#line 7387 "asmparse.cpp" break; - case 563: /* slashedName: slashedName '/' dottedName */ -#line 1516 "./asmparse.y" + case 581: /* slashedName: slashedName '/' dottedName */ +#line 1556 "asmparse.y" { (yyval.string) = newStringWDel((yyvsp[-2].string), NESTING_SEP, (yyvsp[0].string)); } -#line 6960 "asmparse.cpp" +#line 7393 "asmparse.cpp" break; - case 564: /* typeSpec: className */ -#line 1519 "./asmparse.y" + case 582: /* typeSpec: className */ +#line 1559 "asmparse.y" { (yyval.token) = (yyvsp[0].token);} -#line 6966 "asmparse.cpp" +#line 7399 "asmparse.cpp" break; - case 565: /* typeSpec: '[' dottedName ']' */ -#line 1520 "./asmparse.y" + case 583: /* typeSpec: '[' dottedName ']' */ +#line 1560 "asmparse.y" { (yyval.token) = PASM->GetAsmRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} -#line 6972 "asmparse.cpp" +#line 7405 "asmparse.cpp" break; - case 566: /* typeSpec: '[' _MODULE dottedName ']' */ -#line 1521 "./asmparse.y" + case 584: /* typeSpec: '[' _MODULE dottedName ']' */ +#line 1561 "asmparse.y" { (yyval.token) = PASM->GetModRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} -#line 6978 "asmparse.cpp" +#line 7411 "asmparse.cpp" break; - case 567: /* typeSpec: type */ -#line 1522 "./asmparse.y" + case 585: /* typeSpec: type */ +#line 1562 "asmparse.y" { (yyval.token) = PASM->ResolveTypeSpec((yyvsp[0].binstr)); } -#line 6984 "asmparse.cpp" +#line 7417 "asmparse.cpp" break; - case 568: /* nativeType: %empty */ -#line 1526 "./asmparse.y" + case 586: /* nativeType: %empty */ +#line 1566 "asmparse.y" { (yyval.binstr) = new BinStr(); } -#line 6990 "asmparse.cpp" +#line 7423 "asmparse.cpp" break; - case 569: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')' */ -#line 1528 "./asmparse.y" + case 587: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')' */ +#line 1568 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt((yyval.binstr),(yyvsp[-7].binstr)->length()); (yyval.binstr)->append((yyvsp[-7].binstr)); corEmitInt((yyval.binstr),(yyvsp[-5].binstr)->length()); (yyval.binstr)->append((yyvsp[-5].binstr)); corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 7001 "asmparse.cpp" +#line 7434 "asmparse.cpp" break; - case 570: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ')' */ -#line 1535 "./asmparse.y" + case 588: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ')' */ +#line 1575 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt((yyval.binstr),0); corEmitInt((yyval.binstr),0); corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); } -#line 7011 "asmparse.cpp" +#line 7444 "asmparse.cpp" break; - case 571: /* nativeType: FIXED_ SYSSTRING_ '[' int32 ']' */ -#line 1540 "./asmparse.y" + case 589: /* nativeType: FIXED_ SYSSTRING_ '[' int32 ']' */ +#line 1580 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } -#line 7018 "asmparse.cpp" +#line 7451 "asmparse.cpp" break; - case 572: /* nativeType: FIXED_ ARRAY_ '[' int32 ']' nativeType */ -#line 1543 "./asmparse.y" + case 590: /* nativeType: FIXED_ ARRAY_ '[' int32 ']' nativeType */ +#line 1583 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt((yyval.binstr),(yyvsp[-2].int32)); (yyval.binstr)->append((yyvsp[0].binstr)); } -#line 7025 "asmparse.cpp" +#line 7458 "asmparse.cpp" break; - case 573: /* nativeType: VARIANT_ */ -#line 1545 "./asmparse.y" + case 591: /* nativeType: VARIANT_ */ +#line 1585 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 7032 "asmparse.cpp" +#line 7465 "asmparse.cpp" break; - case 574: /* nativeType: CURRENCY_ */ -#line 1547 "./asmparse.y" + case 592: /* nativeType: CURRENCY_ */ +#line 1587 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 7038 "asmparse.cpp" +#line 7471 "asmparse.cpp" break; - case 575: /* nativeType: SYSCHAR_ */ -#line 1548 "./asmparse.y" + case 593: /* nativeType: SYSCHAR_ */ +#line 1588 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 7045 "asmparse.cpp" +#line 7478 "asmparse.cpp" break; - case 576: /* nativeType: VOID_ */ -#line 1550 "./asmparse.y" + case 594: /* nativeType: VOID_ */ +#line 1590 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 7052 "asmparse.cpp" +#line 7485 "asmparse.cpp" break; - case 577: /* nativeType: BOOL_ */ -#line 1552 "./asmparse.y" + case 595: /* nativeType: BOOL_ */ +#line 1592 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 7058 "asmparse.cpp" +#line 7491 "asmparse.cpp" break; - case 578: /* nativeType: INT8_ */ -#line 1553 "./asmparse.y" + case 596: /* nativeType: INT8_ */ +#line 1593 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I1); } -#line 7064 "asmparse.cpp" +#line 7497 "asmparse.cpp" break; - case 579: /* nativeType: INT16_ */ -#line 1554 "./asmparse.y" + case 597: /* nativeType: INT16_ */ +#line 1594 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I2); } -#line 7070 "asmparse.cpp" +#line 7503 "asmparse.cpp" break; - case 580: /* nativeType: INT32_ */ -#line 1555 "./asmparse.y" + case 598: /* nativeType: INT32_ */ +#line 1595 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I4); } -#line 7076 "asmparse.cpp" +#line 7509 "asmparse.cpp" break; - case 581: /* nativeType: INT64_ */ -#line 1556 "./asmparse.y" + case 599: /* nativeType: INT64_ */ +#line 1596 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I8); } -#line 7082 "asmparse.cpp" +#line 7515 "asmparse.cpp" break; - case 582: /* nativeType: FLOAT32_ */ -#line 1557 "./asmparse.y" + case 600: /* nativeType: FLOAT32_ */ +#line 1597 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R4); } -#line 7088 "asmparse.cpp" +#line 7521 "asmparse.cpp" break; - case 583: /* nativeType: FLOAT64_ */ -#line 1558 "./asmparse.y" + case 601: /* nativeType: FLOAT64_ */ +#line 1598 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R8); } -#line 7094 "asmparse.cpp" +#line 7527 "asmparse.cpp" break; - case 584: /* nativeType: ERROR_ */ -#line 1559 "./asmparse.y" + case 602: /* nativeType: ERROR_ */ +#line 1599 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ERROR); } -#line 7100 "asmparse.cpp" +#line 7533 "asmparse.cpp" break; - case 585: /* nativeType: UNSIGNED_ INT8_ */ -#line 1560 "./asmparse.y" + case 603: /* nativeType: UNSIGNED_ INT8_ */ +#line 1600 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } -#line 7106 "asmparse.cpp" +#line 7539 "asmparse.cpp" break; - case 586: /* nativeType: UNSIGNED_ INT16_ */ -#line 1561 "./asmparse.y" + case 604: /* nativeType: UNSIGNED_ INT16_ */ +#line 1601 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } -#line 7112 "asmparse.cpp" +#line 7545 "asmparse.cpp" break; - case 587: /* nativeType: UNSIGNED_ INT32_ */ -#line 1562 "./asmparse.y" + case 605: /* nativeType: UNSIGNED_ INT32_ */ +#line 1602 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } -#line 7118 "asmparse.cpp" +#line 7551 "asmparse.cpp" break; - case 588: /* nativeType: UNSIGNED_ INT64_ */ -#line 1563 "./asmparse.y" + case 606: /* nativeType: UNSIGNED_ INT64_ */ +#line 1603 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } -#line 7124 "asmparse.cpp" +#line 7557 "asmparse.cpp" break; - case 589: /* nativeType: UINT8_ */ -#line 1564 "./asmparse.y" + case 607: /* nativeType: UINT8_ */ +#line 1604 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } -#line 7130 "asmparse.cpp" +#line 7563 "asmparse.cpp" break; - case 590: /* nativeType: UINT16_ */ -#line 1565 "./asmparse.y" + case 608: /* nativeType: UINT16_ */ +#line 1605 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } -#line 7136 "asmparse.cpp" +#line 7569 "asmparse.cpp" break; - case 591: /* nativeType: UINT32_ */ -#line 1566 "./asmparse.y" + case 609: /* nativeType: UINT32_ */ +#line 1606 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } -#line 7142 "asmparse.cpp" +#line 7575 "asmparse.cpp" break; - case 592: /* nativeType: UINT64_ */ -#line 1567 "./asmparse.y" + case 610: /* nativeType: UINT64_ */ +#line 1607 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } -#line 7148 "asmparse.cpp" +#line 7581 "asmparse.cpp" break; - case 593: /* nativeType: nativeType '*' */ -#line 1568 "./asmparse.y" + case 611: /* nativeType: nativeType '*' */ +#line 1608 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 7155 "asmparse.cpp" +#line 7588 "asmparse.cpp" break; - case 594: /* nativeType: nativeType '[' ']' */ -#line 1570 "./asmparse.y" + case 612: /* nativeType: nativeType '[' ']' */ +#line 1610 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); } -#line 7162 "asmparse.cpp" +#line 7595 "asmparse.cpp" break; - case 595: /* nativeType: nativeType '[' int32 ']' */ -#line 1572 "./asmparse.y" + case 613: /* nativeType: nativeType '[' int32 ']' */ +#line 1612 "asmparse.y" { (yyval.binstr) = (yyvsp[-3].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt((yyval.binstr),0); corEmitInt((yyval.binstr),(yyvsp[-1].int32)); corEmitInt((yyval.binstr),0); } -#line 7172 "asmparse.cpp" +#line 7605 "asmparse.cpp" break; - case 596: /* nativeType: nativeType '[' int32 '+' int32 ']' */ -#line 1577 "./asmparse.y" + case 614: /* nativeType: nativeType '[' int32 '+' int32 ']' */ +#line 1617 "asmparse.y" { (yyval.binstr) = (yyvsp[-5].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt((yyval.binstr),(yyvsp[-1].int32)); corEmitInt((yyval.binstr),(yyvsp[-3].int32)); corEmitInt((yyval.binstr),ntaSizeParamIndexSpecified); } -#line 7182 "asmparse.cpp" +#line 7615 "asmparse.cpp" break; - case 597: /* nativeType: nativeType '[' '+' int32 ']' */ -#line 1582 "./asmparse.y" + case 615: /* nativeType: nativeType '[' '+' int32 ']' */ +#line 1622 "asmparse.y" { (yyval.binstr) = (yyvsp[-4].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } -#line 7190 "asmparse.cpp" +#line 7623 "asmparse.cpp" break; - case 598: /* nativeType: DECIMAL_ */ -#line 1585 "./asmparse.y" + case 616: /* nativeType: DECIMAL_ */ +#line 1625 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 7197 "asmparse.cpp" +#line 7630 "asmparse.cpp" break; - case 599: /* nativeType: DATE_ */ -#line 1587 "./asmparse.y" + case 617: /* nativeType: DATE_ */ +#line 1627 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 7204 "asmparse.cpp" +#line 7637 "asmparse.cpp" break; - case 600: /* nativeType: BSTR_ */ -#line 1589 "./asmparse.y" + case 618: /* nativeType: BSTR_ */ +#line 1629 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BSTR); } -#line 7210 "asmparse.cpp" +#line 7643 "asmparse.cpp" break; - case 601: /* nativeType: LPSTR_ */ -#line 1590 "./asmparse.y" + case 619: /* nativeType: LPSTR_ */ +#line 1630 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTR); } -#line 7216 "asmparse.cpp" +#line 7649 "asmparse.cpp" break; - case 602: /* nativeType: LPWSTR_ */ -#line 1591 "./asmparse.y" + case 620: /* nativeType: LPWSTR_ */ +#line 1631 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 7222 "asmparse.cpp" +#line 7655 "asmparse.cpp" break; - case 603: /* nativeType: LPTSTR_ */ -#line 1592 "./asmparse.y" + case 621: /* nativeType: LPTSTR_ */ +#line 1632 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 7228 "asmparse.cpp" +#line 7661 "asmparse.cpp" break; - case 604: /* nativeType: OBJECTREF_ */ -#line 1593 "./asmparse.y" + case 622: /* nativeType: OBJECTREF_ */ +#line 1633 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 7235 "asmparse.cpp" +#line 7668 "asmparse.cpp" break; - case 605: /* nativeType: IUNKNOWN_ iidParamIndex */ -#line 1595 "./asmparse.y" + case 623: /* nativeType: IUNKNOWN_ iidParamIndex */ +#line 1635 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IUNKNOWN); if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7242 "asmparse.cpp" +#line 7675 "asmparse.cpp" break; - case 606: /* nativeType: IDISPATCH_ iidParamIndex */ -#line 1597 "./asmparse.y" + case 624: /* nativeType: IDISPATCH_ iidParamIndex */ +#line 1637 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IDISPATCH); if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7249 "asmparse.cpp" +#line 7682 "asmparse.cpp" break; - case 607: /* nativeType: STRUCT_ */ -#line 1599 "./asmparse.y" + case 625: /* nativeType: STRUCT_ */ +#line 1639 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_STRUCT); } -#line 7255 "asmparse.cpp" +#line 7688 "asmparse.cpp" break; - case 608: /* nativeType: INTERFACE_ iidParamIndex */ -#line 1600 "./asmparse.y" + case 626: /* nativeType: INTERFACE_ iidParamIndex */ +#line 1640 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INTF); if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7262 "asmparse.cpp" +#line 7695 "asmparse.cpp" break; - case 609: /* nativeType: SAFEARRAY_ variantType */ -#line 1602 "./asmparse.y" + case 627: /* nativeType: SAFEARRAY_ variantType */ +#line 1642 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt((yyval.binstr),(yyvsp[0].int32)); corEmitInt((yyval.binstr),0);} -#line 7270 "asmparse.cpp" +#line 7703 "asmparse.cpp" break; - case 610: /* nativeType: SAFEARRAY_ variantType ',' compQstring */ -#line 1605 "./asmparse.y" + case 628: /* nativeType: SAFEARRAY_ variantType ',' compQstring */ +#line 1645 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt((yyval.binstr),(yyvsp[-2].int32)); corEmitInt((yyval.binstr),(yyvsp[0].binstr)->length()); (yyval.binstr)->append((yyvsp[0].binstr)); } -#line 7278 "asmparse.cpp" +#line 7711 "asmparse.cpp" break; - case 611: /* nativeType: INT_ */ -#line 1609 "./asmparse.y" + case 629: /* nativeType: INT_ */ +#line 1649 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INT); } -#line 7284 "asmparse.cpp" +#line 7717 "asmparse.cpp" break; - case 612: /* nativeType: UNSIGNED_ INT_ */ -#line 1610 "./asmparse.y" + case 630: /* nativeType: UNSIGNED_ INT_ */ +#line 1650 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } -#line 7290 "asmparse.cpp" +#line 7723 "asmparse.cpp" break; - case 613: /* nativeType: UINT_ */ -#line 1611 "./asmparse.y" + case 631: /* nativeType: UINT_ */ +#line 1651 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } -#line 7296 "asmparse.cpp" +#line 7729 "asmparse.cpp" break; - case 614: /* nativeType: NESTED_ STRUCT_ */ -#line 1612 "./asmparse.y" + case 632: /* nativeType: NESTED_ STRUCT_ */ +#line 1652 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 7303 "asmparse.cpp" +#line 7736 "asmparse.cpp" break; - case 615: /* nativeType: BYVALSTR_ */ -#line 1614 "./asmparse.y" + case 633: /* nativeType: BYVALSTR_ */ +#line 1654 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 7309 "asmparse.cpp" +#line 7742 "asmparse.cpp" break; - case 616: /* nativeType: ANSI_ BSTR_ */ -#line 1615 "./asmparse.y" + case 634: /* nativeType: ANSI_ BSTR_ */ +#line 1655 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 7315 "asmparse.cpp" +#line 7748 "asmparse.cpp" break; - case 617: /* nativeType: TBSTR_ */ -#line 1616 "./asmparse.y" + case 635: /* nativeType: TBSTR_ */ +#line 1656 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_TBSTR); } -#line 7321 "asmparse.cpp" +#line 7754 "asmparse.cpp" break; - case 618: /* nativeType: VARIANT_ BOOL_ */ -#line 1617 "./asmparse.y" + case 636: /* nativeType: VARIANT_ BOOL_ */ +#line 1657 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 7327 "asmparse.cpp" +#line 7760 "asmparse.cpp" break; - case 619: /* nativeType: METHOD_ */ -#line 1618 "./asmparse.y" + case 637: /* nativeType: METHOD_ */ +#line 1658 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FUNC); } -#line 7333 "asmparse.cpp" +#line 7766 "asmparse.cpp" break; - case 620: /* nativeType: AS_ ANY_ */ -#line 1619 "./asmparse.y" + case 638: /* nativeType: AS_ ANY_ */ +#line 1659 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ASANY); } -#line 7339 "asmparse.cpp" +#line 7772 "asmparse.cpp" break; - case 621: /* nativeType: LPSTRUCT_ */ -#line 1620 "./asmparse.y" + case 639: /* nativeType: LPSTRUCT_ */ +#line 1660 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 7345 "asmparse.cpp" +#line 7778 "asmparse.cpp" break; - case 622: /* nativeType: TYPEDEF_TS */ -#line 1621 "./asmparse.y" + case 640: /* nativeType: TYPEDEF_TS */ +#line 1661 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } -#line 7351 "asmparse.cpp" +#line 7784 "asmparse.cpp" break; - case 623: /* iidParamIndex: %empty */ -#line 1624 "./asmparse.y" + case 641: /* iidParamIndex: %empty */ +#line 1664 "asmparse.y" { (yyval.int32) = -1; } -#line 7357 "asmparse.cpp" +#line 7790 "asmparse.cpp" break; - case 624: /* iidParamIndex: '(' IIDPARAM_ '=' int32 ')' */ -#line 1625 "./asmparse.y" + case 642: /* iidParamIndex: '(' IIDPARAM_ '=' int32 ')' */ +#line 1665 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32); } -#line 7363 "asmparse.cpp" +#line 7796 "asmparse.cpp" break; - case 625: /* variantType: %empty */ -#line 1628 "./asmparse.y" + case 643: /* variantType: %empty */ +#line 1668 "asmparse.y" { (yyval.int32) = VT_EMPTY; } -#line 7369 "asmparse.cpp" +#line 7802 "asmparse.cpp" break; - case 626: /* variantType: NULL_ */ -#line 1629 "./asmparse.y" + case 644: /* variantType: NULL_ */ +#line 1669 "asmparse.y" { (yyval.int32) = VT_NULL; } -#line 7375 "asmparse.cpp" +#line 7808 "asmparse.cpp" break; - case 627: /* variantType: VARIANT_ */ -#line 1630 "./asmparse.y" + case 645: /* variantType: VARIANT_ */ +#line 1670 "asmparse.y" { (yyval.int32) = VT_VARIANT; } -#line 7381 "asmparse.cpp" +#line 7814 "asmparse.cpp" break; - case 628: /* variantType: CURRENCY_ */ -#line 1631 "./asmparse.y" + case 646: /* variantType: CURRENCY_ */ +#line 1671 "asmparse.y" { (yyval.int32) = VT_CY; } -#line 7387 "asmparse.cpp" +#line 7820 "asmparse.cpp" break; - case 629: /* variantType: VOID_ */ -#line 1632 "./asmparse.y" + case 647: /* variantType: VOID_ */ +#line 1672 "asmparse.y" { (yyval.int32) = VT_VOID; } -#line 7393 "asmparse.cpp" +#line 7826 "asmparse.cpp" break; - case 630: /* variantType: BOOL_ */ -#line 1633 "./asmparse.y" + case 648: /* variantType: BOOL_ */ +#line 1673 "asmparse.y" { (yyval.int32) = VT_BOOL; } -#line 7399 "asmparse.cpp" +#line 7832 "asmparse.cpp" break; - case 631: /* variantType: INT8_ */ -#line 1634 "./asmparse.y" + case 649: /* variantType: INT8_ */ +#line 1674 "asmparse.y" { (yyval.int32) = VT_I1; } -#line 7405 "asmparse.cpp" +#line 7838 "asmparse.cpp" break; - case 632: /* variantType: INT16_ */ -#line 1635 "./asmparse.y" + case 650: /* variantType: INT16_ */ +#line 1675 "asmparse.y" { (yyval.int32) = VT_I2; } -#line 7411 "asmparse.cpp" +#line 7844 "asmparse.cpp" break; - case 633: /* variantType: INT32_ */ -#line 1636 "./asmparse.y" + case 651: /* variantType: INT32_ */ +#line 1676 "asmparse.y" { (yyval.int32) = VT_I4; } -#line 7417 "asmparse.cpp" +#line 7850 "asmparse.cpp" break; - case 634: /* variantType: INT64_ */ -#line 1637 "./asmparse.y" + case 652: /* variantType: INT64_ */ +#line 1677 "asmparse.y" { (yyval.int32) = VT_I8; } -#line 7423 "asmparse.cpp" +#line 7856 "asmparse.cpp" break; - case 635: /* variantType: FLOAT32_ */ -#line 1638 "./asmparse.y" + case 653: /* variantType: FLOAT32_ */ +#line 1678 "asmparse.y" { (yyval.int32) = VT_R4; } -#line 7429 "asmparse.cpp" +#line 7862 "asmparse.cpp" break; - case 636: /* variantType: FLOAT64_ */ -#line 1639 "./asmparse.y" + case 654: /* variantType: FLOAT64_ */ +#line 1679 "asmparse.y" { (yyval.int32) = VT_R8; } -#line 7435 "asmparse.cpp" +#line 7868 "asmparse.cpp" break; - case 637: /* variantType: UNSIGNED_ INT8_ */ -#line 1640 "./asmparse.y" + case 655: /* variantType: UNSIGNED_ INT8_ */ +#line 1680 "asmparse.y" { (yyval.int32) = VT_UI1; } -#line 7441 "asmparse.cpp" +#line 7874 "asmparse.cpp" break; - case 638: /* variantType: UNSIGNED_ INT16_ */ -#line 1641 "./asmparse.y" + case 656: /* variantType: UNSIGNED_ INT16_ */ +#line 1681 "asmparse.y" { (yyval.int32) = VT_UI2; } -#line 7447 "asmparse.cpp" +#line 7880 "asmparse.cpp" break; - case 639: /* variantType: UNSIGNED_ INT32_ */ -#line 1642 "./asmparse.y" + case 657: /* variantType: UNSIGNED_ INT32_ */ +#line 1682 "asmparse.y" { (yyval.int32) = VT_UI4; } -#line 7453 "asmparse.cpp" +#line 7886 "asmparse.cpp" break; - case 640: /* variantType: UNSIGNED_ INT64_ */ -#line 1643 "./asmparse.y" + case 658: /* variantType: UNSIGNED_ INT64_ */ +#line 1683 "asmparse.y" { (yyval.int32) = VT_UI8; } -#line 7459 "asmparse.cpp" +#line 7892 "asmparse.cpp" break; - case 641: /* variantType: UINT8_ */ -#line 1644 "./asmparse.y" + case 659: /* variantType: UINT8_ */ +#line 1684 "asmparse.y" { (yyval.int32) = VT_UI1; } -#line 7465 "asmparse.cpp" +#line 7898 "asmparse.cpp" break; - case 642: /* variantType: UINT16_ */ -#line 1645 "./asmparse.y" + case 660: /* variantType: UINT16_ */ +#line 1685 "asmparse.y" { (yyval.int32) = VT_UI2; } -#line 7471 "asmparse.cpp" +#line 7904 "asmparse.cpp" break; - case 643: /* variantType: UINT32_ */ -#line 1646 "./asmparse.y" + case 661: /* variantType: UINT32_ */ +#line 1686 "asmparse.y" { (yyval.int32) = VT_UI4; } -#line 7477 "asmparse.cpp" +#line 7910 "asmparse.cpp" break; - case 644: /* variantType: UINT64_ */ -#line 1647 "./asmparse.y" + case 662: /* variantType: UINT64_ */ +#line 1687 "asmparse.y" { (yyval.int32) = VT_UI8; } -#line 7483 "asmparse.cpp" +#line 7916 "asmparse.cpp" break; - case 645: /* variantType: '*' */ -#line 1648 "./asmparse.y" + case 663: /* variantType: '*' */ +#line 1688 "asmparse.y" { (yyval.int32) = VT_PTR; } -#line 7489 "asmparse.cpp" +#line 7922 "asmparse.cpp" break; - case 646: /* variantType: variantType '[' ']' */ -#line 1649 "./asmparse.y" + case 664: /* variantType: variantType '[' ']' */ +#line 1689 "asmparse.y" { (yyval.int32) = (yyvsp[-2].int32) | VT_ARRAY; } -#line 7495 "asmparse.cpp" +#line 7928 "asmparse.cpp" break; - case 647: /* variantType: variantType VECTOR_ */ -#line 1650 "./asmparse.y" + case 665: /* variantType: variantType VECTOR_ */ +#line 1690 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | VT_VECTOR; } -#line 7501 "asmparse.cpp" +#line 7934 "asmparse.cpp" break; - case 648: /* variantType: variantType '&' */ -#line 1651 "./asmparse.y" + case 666: /* variantType: variantType '&' */ +#line 1691 "asmparse.y" { (yyval.int32) = (yyvsp[-1].int32) | VT_BYREF; } -#line 7507 "asmparse.cpp" +#line 7940 "asmparse.cpp" break; - case 649: /* variantType: DECIMAL_ */ -#line 1652 "./asmparse.y" + case 667: /* variantType: DECIMAL_ */ +#line 1692 "asmparse.y" { (yyval.int32) = VT_DECIMAL; } -#line 7513 "asmparse.cpp" +#line 7946 "asmparse.cpp" break; - case 650: /* variantType: DATE_ */ -#line 1653 "./asmparse.y" + case 668: /* variantType: DATE_ */ +#line 1693 "asmparse.y" { (yyval.int32) = VT_DATE; } -#line 7519 "asmparse.cpp" +#line 7952 "asmparse.cpp" break; - case 651: /* variantType: BSTR_ */ -#line 1654 "./asmparse.y" + case 669: /* variantType: BSTR_ */ +#line 1694 "asmparse.y" { (yyval.int32) = VT_BSTR; } -#line 7525 "asmparse.cpp" +#line 7958 "asmparse.cpp" break; - case 652: /* variantType: LPSTR_ */ -#line 1655 "./asmparse.y" + case 670: /* variantType: LPSTR_ */ +#line 1695 "asmparse.y" { (yyval.int32) = VT_LPSTR; } -#line 7531 "asmparse.cpp" +#line 7964 "asmparse.cpp" break; - case 653: /* variantType: LPWSTR_ */ -#line 1656 "./asmparse.y" + case 671: /* variantType: LPWSTR_ */ +#line 1696 "asmparse.y" { (yyval.int32) = VT_LPWSTR; } -#line 7537 "asmparse.cpp" +#line 7970 "asmparse.cpp" break; - case 654: /* variantType: IUNKNOWN_ */ -#line 1657 "./asmparse.y" + case 672: /* variantType: IUNKNOWN_ */ +#line 1697 "asmparse.y" { (yyval.int32) = VT_UNKNOWN; } -#line 7543 "asmparse.cpp" +#line 7976 "asmparse.cpp" break; - case 655: /* variantType: IDISPATCH_ */ -#line 1658 "./asmparse.y" + case 673: /* variantType: IDISPATCH_ */ +#line 1698 "asmparse.y" { (yyval.int32) = VT_DISPATCH; } -#line 7549 "asmparse.cpp" +#line 7982 "asmparse.cpp" break; - case 656: /* variantType: SAFEARRAY_ */ -#line 1659 "./asmparse.y" + case 674: /* variantType: SAFEARRAY_ */ +#line 1699 "asmparse.y" { (yyval.int32) = VT_SAFEARRAY; } -#line 7555 "asmparse.cpp" +#line 7988 "asmparse.cpp" break; - case 657: /* variantType: INT_ */ -#line 1660 "./asmparse.y" + case 675: /* variantType: INT_ */ +#line 1700 "asmparse.y" { (yyval.int32) = VT_INT; } -#line 7561 "asmparse.cpp" +#line 7994 "asmparse.cpp" break; - case 658: /* variantType: UNSIGNED_ INT_ */ -#line 1661 "./asmparse.y" + case 676: /* variantType: UNSIGNED_ INT_ */ +#line 1701 "asmparse.y" { (yyval.int32) = VT_UINT; } -#line 7567 "asmparse.cpp" +#line 8000 "asmparse.cpp" break; - case 659: /* variantType: UINT_ */ -#line 1662 "./asmparse.y" + case 677: /* variantType: UINT_ */ +#line 1702 "asmparse.y" { (yyval.int32) = VT_UINT; } -#line 7573 "asmparse.cpp" +#line 8006 "asmparse.cpp" break; - case 660: /* variantType: ERROR_ */ -#line 1663 "./asmparse.y" + case 678: /* variantType: ERROR_ */ +#line 1703 "asmparse.y" { (yyval.int32) = VT_ERROR; } -#line 7579 "asmparse.cpp" +#line 8012 "asmparse.cpp" break; - case 661: /* variantType: HRESULT_ */ -#line 1664 "./asmparse.y" + case 679: /* variantType: HRESULT_ */ +#line 1704 "asmparse.y" { (yyval.int32) = VT_HRESULT; } -#line 7585 "asmparse.cpp" +#line 8018 "asmparse.cpp" break; - case 662: /* variantType: CARRAY_ */ -#line 1665 "./asmparse.y" + case 680: /* variantType: CARRAY_ */ +#line 1705 "asmparse.y" { (yyval.int32) = VT_CARRAY; } -#line 7591 "asmparse.cpp" +#line 8024 "asmparse.cpp" break; - case 663: /* variantType: USERDEFINED_ */ -#line 1666 "./asmparse.y" + case 681: /* variantType: USERDEFINED_ */ +#line 1706 "asmparse.y" { (yyval.int32) = VT_USERDEFINED; } -#line 7597 "asmparse.cpp" +#line 8030 "asmparse.cpp" break; - case 664: /* variantType: RECORD_ */ -#line 1667 "./asmparse.y" + case 682: /* variantType: RECORD_ */ +#line 1707 "asmparse.y" { (yyval.int32) = VT_RECORD; } -#line 7603 "asmparse.cpp" +#line 8036 "asmparse.cpp" break; - case 665: /* variantType: FILETIME_ */ -#line 1668 "./asmparse.y" + case 683: /* variantType: FILETIME_ */ +#line 1708 "asmparse.y" { (yyval.int32) = VT_FILETIME; } -#line 7609 "asmparse.cpp" +#line 8042 "asmparse.cpp" break; - case 666: /* variantType: BLOB_ */ -#line 1669 "./asmparse.y" + case 684: /* variantType: BLOB_ */ +#line 1709 "asmparse.y" { (yyval.int32) = VT_BLOB; } -#line 7615 "asmparse.cpp" +#line 8048 "asmparse.cpp" break; - case 667: /* variantType: STREAM_ */ -#line 1670 "./asmparse.y" + case 685: /* variantType: STREAM_ */ +#line 1710 "asmparse.y" { (yyval.int32) = VT_STREAM; } -#line 7621 "asmparse.cpp" +#line 8054 "asmparse.cpp" break; - case 668: /* variantType: STORAGE_ */ -#line 1671 "./asmparse.y" + case 686: /* variantType: STORAGE_ */ +#line 1711 "asmparse.y" { (yyval.int32) = VT_STORAGE; } -#line 7627 "asmparse.cpp" +#line 8060 "asmparse.cpp" break; - case 669: /* variantType: STREAMED_OBJECT_ */ -#line 1672 "./asmparse.y" + case 687: /* variantType: STREAMED_OBJECT_ */ +#line 1712 "asmparse.y" { (yyval.int32) = VT_STREAMED_OBJECT; } -#line 7633 "asmparse.cpp" +#line 8066 "asmparse.cpp" break; - case 670: /* variantType: STORED_OBJECT_ */ -#line 1673 "./asmparse.y" + case 688: /* variantType: STORED_OBJECT_ */ +#line 1713 "asmparse.y" { (yyval.int32) = VT_STORED_OBJECT; } -#line 7639 "asmparse.cpp" +#line 8072 "asmparse.cpp" break; - case 671: /* variantType: BLOB_OBJECT_ */ -#line 1674 "./asmparse.y" + case 689: /* variantType: BLOB_OBJECT_ */ +#line 1714 "asmparse.y" { (yyval.int32) = VT_BLOB_OBJECT; } -#line 7645 "asmparse.cpp" +#line 8078 "asmparse.cpp" break; - case 672: /* variantType: CF_ */ -#line 1675 "./asmparse.y" + case 690: /* variantType: CF_ */ +#line 1715 "asmparse.y" { (yyval.int32) = VT_CF; } -#line 7651 "asmparse.cpp" +#line 8084 "asmparse.cpp" break; - case 673: /* variantType: CLSID_ */ -#line 1676 "./asmparse.y" + case 691: /* variantType: CLSID_ */ +#line 1716 "asmparse.y" { (yyval.int32) = VT_CLSID; } -#line 7657 "asmparse.cpp" +#line 8090 "asmparse.cpp" break; - case 674: /* type: CLASS_ className */ -#line 1680 "./asmparse.y" + case 692: /* type: CLASS_ className */ +#line 1720 "asmparse.y" { if((yyvsp[0].token) == PASM->m_tkSysString) { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } else if((yyvsp[0].token) == PASM->m_tkSysObject) { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } else (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, (yyvsp[0].token)); } -#line 7668 "asmparse.cpp" +#line 8101 "asmparse.cpp" break; - case 675: /* type: OBJECT_ */ -#line 1686 "./asmparse.y" + case 693: /* type: OBJECT_ */ +#line 1726 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 7674 "asmparse.cpp" +#line 8107 "asmparse.cpp" break; - case 676: /* type: VALUE_ CLASS_ className */ -#line 1687 "./asmparse.y" + case 694: /* type: VALUE_ CLASS_ className */ +#line 1727 "asmparse.y" { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } -#line 7680 "asmparse.cpp" +#line 8113 "asmparse.cpp" break; - case 677: /* type: VALUETYPE_ className */ -#line 1688 "./asmparse.y" + case 695: /* type: VALUETYPE_ className */ +#line 1728 "asmparse.y" { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } -#line 7686 "asmparse.cpp" +#line 8119 "asmparse.cpp" break; - case 678: /* type: CONST_ fieldInit */ -#line 1689 "./asmparse.y" + case 696: /* type: CONST_ constTypeArg */ +#line 1729 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_CTARG); } -#line 7692 "asmparse.cpp" +#line 8125 "asmparse.cpp" break; - case 679: /* type: type '[' ']' */ -#line 1690 "./asmparse.y" + case 697: /* type: type '[' ']' */ +#line 1730 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 7698 "asmparse.cpp" +#line 8131 "asmparse.cpp" break; - case 680: /* type: type '[' bounds1 ']' */ -#line 1691 "./asmparse.y" + case 698: /* type: type '[' bounds1 ']' */ +#line 1731 "asmparse.y" { (yyval.binstr) = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, (yyvsp[-3].binstr), (yyvsp[-1].binstr)); } -#line 7704 "asmparse.cpp" +#line 8137 "asmparse.cpp" break; - case 681: /* type: type '&' */ -#line 1692 "./asmparse.y" + case 699: /* type: type '&' */ +#line 1732 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_BYREF); } -#line 7710 "asmparse.cpp" +#line 8143 "asmparse.cpp" break; - case 682: /* type: type '*' */ -#line 1693 "./asmparse.y" + case 700: /* type: type '*' */ +#line 1733 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PTR); } -#line 7716 "asmparse.cpp" +#line 8149 "asmparse.cpp" break; - case 683: /* type: type PINNED_ */ -#line 1694 "./asmparse.y" + case 701: /* type: type PINNED_ */ +#line 1734 "asmparse.y" { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PINNED); } -#line 7722 "asmparse.cpp" +#line 8155 "asmparse.cpp" break; - case 684: /* type: type MODREQ_ '(' typeSpec ')' */ -#line 1695 "./asmparse.y" + case 702: /* type: type MODREQ_ '(' typeSpec ')' */ +#line 1735 "asmparse.y" { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, (yyvsp[-1].token)); (yyval.binstr)->append((yyvsp[-4].binstr)); } -#line 7729 "asmparse.cpp" +#line 8162 "asmparse.cpp" break; - case 685: /* type: type MODOPT_ '(' typeSpec ')' */ -#line 1697 "./asmparse.y" + case 703: /* type: type MODOPT_ '(' typeSpec ')' */ +#line 1737 "asmparse.y" { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, (yyvsp[-1].token)); (yyval.binstr)->append((yyvsp[-4].binstr)); } -#line 7736 "asmparse.cpp" +#line 8169 "asmparse.cpp" break; - case 686: /* type: methodSpec callConv type '*' '(' sigArgs0 ')' */ -#line 1700 "./asmparse.y" + case 704: /* type: methodSpec callConv type '*' '(' sigArgs0 ')' */ +#line 1740 "asmparse.y" { (yyval.binstr) = parser->MakeSig((yyvsp[-5].int32), (yyvsp[-4].binstr), (yyvsp[-1].binstr)); (yyval.binstr)->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 7747 "asmparse.cpp" +#line 8180 "asmparse.cpp" break; - case 687: /* type: type '<' tyArgs1 '>' */ -#line 1706 "./asmparse.y" + case 705: /* type: type '<' tyArgs1 '>' */ +#line 1746 "asmparse.y" { if((yyvsp[-1].binstr) == NULL) (yyval.binstr) = (yyvsp[-3].binstr); else { (yyval.binstr) = new BinStr(); @@ -7755,33 +8188,33 @@ yyparse (void) (yyval.binstr)->append((yyvsp[-3].binstr)); corEmitInt((yyval.binstr), corCountArgs((yyvsp[-1].binstr))); (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-3].binstr); delete (yyvsp[-1].binstr); }} -#line 7759 "asmparse.cpp" +#line 8192 "asmparse.cpp" break; - case 688: /* type: '!' '!' int32 */ -#line 1713 "./asmparse.y" + case 706: /* type: '!' '!' int32 */ +#line 1753 "asmparse.y" { //if(PASM->m_pCurMethod) { // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) // PASM->report->error("Invalid method type parameter '%d'\n",$3); (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); } -#line 7770 "asmparse.cpp" +#line 8203 "asmparse.cpp" break; - case 689: /* type: '!' int32 */ -#line 1719 "./asmparse.y" + case 707: /* type: '!' int32 */ +#line 1759 "asmparse.y" { //if(PASM->m_pCurClass) { // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) // PASM->report->error("Invalid type parameter '%d'\n",$2); (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); } -#line 7781 "asmparse.cpp" +#line 8214 "asmparse.cpp" break; - case 690: /* type: '!' '!' dottedName */ -#line 1725 "./asmparse.y" + case 708: /* type: '!' '!' dottedName */ +#line 1765 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); @@ -7797,11 +8230,11 @@ yyparse (void) n = 0x1FFFFFFF; } (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); } -#line 7801 "asmparse.cpp" +#line 8234 "asmparse.cpp" break; - case 691: /* type: '!' dottedName */ -#line 1740 "./asmparse.y" + case 709: /* type: '!' dottedName */ +#line 1780 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); @@ -7817,926 +8250,926 @@ yyparse (void) n = 0x1FFFFFFF; } (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); } -#line 7821 "asmparse.cpp" +#line 8254 "asmparse.cpp" break; - case 692: /* type: TYPEDREF_ */ -#line 1755 "./asmparse.y" + case 710: /* type: TYPEDREF_ */ +#line 1795 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 7827 "asmparse.cpp" +#line 8260 "asmparse.cpp" break; - case 693: /* type: VOID_ */ -#line 1756 "./asmparse.y" + case 711: /* type: VOID_ */ +#line 1796 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VOID); } -#line 7833 "asmparse.cpp" +#line 8266 "asmparse.cpp" break; - case 694: /* type: NATIVE_ INT_ */ -#line 1757 "./asmparse.y" + case 712: /* type: NATIVE_ INT_ */ +#line 1797 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I); } -#line 7839 "asmparse.cpp" +#line 8272 "asmparse.cpp" break; - case 695: /* type: NATIVE_ UNSIGNED_ INT_ */ -#line 1758 "./asmparse.y" + case 713: /* type: NATIVE_ UNSIGNED_ INT_ */ +#line 1798 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } -#line 7845 "asmparse.cpp" +#line 8278 "asmparse.cpp" break; - case 696: /* type: NATIVE_ UINT_ */ -#line 1759 "./asmparse.y" + case 714: /* type: NATIVE_ UINT_ */ +#line 1799 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } -#line 7851 "asmparse.cpp" +#line 8284 "asmparse.cpp" break; - case 697: /* type: simpleType */ -#line 1760 "./asmparse.y" + case 715: /* type: simpleType */ +#line 1800 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 7857 "asmparse.cpp" +#line 8290 "asmparse.cpp" break; - case 698: /* type: ELLIPSIS type */ -#line 1761 "./asmparse.y" + case 716: /* type: ELLIPSIS type */ +#line 1801 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 7863 "asmparse.cpp" +#line 8296 "asmparse.cpp" break; - case 699: /* simpleType: CHAR_ */ -#line 1764 "./asmparse.y" + case 717: /* simpleType: CHAR_ */ +#line 1804 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); } -#line 7869 "asmparse.cpp" +#line 8302 "asmparse.cpp" break; - case 700: /* simpleType: STRING_ */ -#line 1765 "./asmparse.y" + case 718: /* simpleType: STRING_ */ +#line 1805 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } -#line 7875 "asmparse.cpp" +#line 8308 "asmparse.cpp" break; - case 701: /* simpleType: BOOL_ */ -#line 1766 "./asmparse.y" + case 719: /* simpleType: BOOL_ */ +#line 1806 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 7881 "asmparse.cpp" +#line 8314 "asmparse.cpp" break; - case 702: /* simpleType: INT8_ */ -#line 1767 "./asmparse.y" + case 720: /* simpleType: INT8_ */ +#line 1807 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); } -#line 7887 "asmparse.cpp" +#line 8320 "asmparse.cpp" break; - case 703: /* simpleType: INT16_ */ -#line 1768 "./asmparse.y" + case 721: /* simpleType: INT16_ */ +#line 1808 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); } -#line 7893 "asmparse.cpp" +#line 8326 "asmparse.cpp" break; - case 704: /* simpleType: INT32_ */ -#line 1769 "./asmparse.y" + case 722: /* simpleType: INT32_ */ +#line 1809 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); } -#line 7899 "asmparse.cpp" +#line 8332 "asmparse.cpp" break; - case 705: /* simpleType: INT64_ */ -#line 1770 "./asmparse.y" + case 723: /* simpleType: INT64_ */ +#line 1810 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); } -#line 7905 "asmparse.cpp" +#line 8338 "asmparse.cpp" break; - case 706: /* simpleType: FLOAT32_ */ -#line 1771 "./asmparse.y" + case 724: /* simpleType: FLOAT32_ */ +#line 1811 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); } -#line 7911 "asmparse.cpp" +#line 8344 "asmparse.cpp" break; - case 707: /* simpleType: FLOAT64_ */ -#line 1772 "./asmparse.y" + case 725: /* simpleType: FLOAT64_ */ +#line 1812 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); } -#line 7917 "asmparse.cpp" +#line 8350 "asmparse.cpp" break; - case 708: /* simpleType: UNSIGNED_ INT8_ */ -#line 1773 "./asmparse.y" + case 726: /* simpleType: UNSIGNED_ INT8_ */ +#line 1813 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } -#line 7923 "asmparse.cpp" +#line 8356 "asmparse.cpp" break; - case 709: /* simpleType: UNSIGNED_ INT16_ */ -#line 1774 "./asmparse.y" + case 727: /* simpleType: UNSIGNED_ INT16_ */ +#line 1814 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } -#line 7929 "asmparse.cpp" +#line 8362 "asmparse.cpp" break; - case 710: /* simpleType: UNSIGNED_ INT32_ */ -#line 1775 "./asmparse.y" + case 728: /* simpleType: UNSIGNED_ INT32_ */ +#line 1815 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } -#line 7935 "asmparse.cpp" +#line 8368 "asmparse.cpp" break; - case 711: /* simpleType: UNSIGNED_ INT64_ */ -#line 1776 "./asmparse.y" + case 729: /* simpleType: UNSIGNED_ INT64_ */ +#line 1816 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } -#line 7941 "asmparse.cpp" +#line 8374 "asmparse.cpp" break; - case 712: /* simpleType: UINT8_ */ -#line 1777 "./asmparse.y" + case 730: /* simpleType: UINT8_ */ +#line 1817 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } -#line 7947 "asmparse.cpp" +#line 8380 "asmparse.cpp" break; - case 713: /* simpleType: UINT16_ */ -#line 1778 "./asmparse.y" + case 731: /* simpleType: UINT16_ */ +#line 1818 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } -#line 7953 "asmparse.cpp" +#line 8386 "asmparse.cpp" break; - case 714: /* simpleType: UINT32_ */ -#line 1779 "./asmparse.y" + case 732: /* simpleType: UINT32_ */ +#line 1819 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } -#line 7959 "asmparse.cpp" +#line 8392 "asmparse.cpp" break; - case 715: /* simpleType: UINT64_ */ -#line 1780 "./asmparse.y" + case 733: /* simpleType: UINT64_ */ +#line 1820 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } -#line 7965 "asmparse.cpp" +#line 8398 "asmparse.cpp" break; - case 716: /* simpleType: TYPEDEF_TS */ -#line 1781 "./asmparse.y" + case 734: /* simpleType: TYPEDEF_TS */ +#line 1821 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } -#line 7971 "asmparse.cpp" +#line 8404 "asmparse.cpp" break; - case 717: /* bounds1: bound */ -#line 1784 "./asmparse.y" + case 735: /* bounds1: bound */ +#line 1824 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); } -#line 7977 "asmparse.cpp" +#line 8410 "asmparse.cpp" break; - case 718: /* bounds1: bounds1 ',' bound */ -#line 1785 "./asmparse.y" + case 736: /* bounds1: bounds1 ',' bound */ +#line 1825 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyvsp[-2].binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 7983 "asmparse.cpp" +#line 8416 "asmparse.cpp" break; - case 719: /* bound: %empty */ -#line 1788 "./asmparse.y" + case 737: /* bound: %empty */ +#line 1828 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 7989 "asmparse.cpp" +#line 8422 "asmparse.cpp" break; - case 720: /* bound: ELLIPSIS */ -#line 1789 "./asmparse.y" + case 738: /* bound: ELLIPSIS */ +#line 1829 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 7995 "asmparse.cpp" +#line 8428 "asmparse.cpp" break; - case 721: /* bound: int32 */ -#line 1790 "./asmparse.y" + case 739: /* bound: int32 */ +#line 1830 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0); (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 8001 "asmparse.cpp" +#line 8434 "asmparse.cpp" break; - case 722: /* bound: int32 ELLIPSIS int32 */ -#line 1791 "./asmparse.y" + case 740: /* bound: int32 ELLIPSIS int32 */ +#line 1831 "asmparse.y" { FAIL_UNLESS((yyvsp[-2].int32) <= (yyvsp[0].int32), ("lower bound %d must be <= upper bound %d\n", (yyvsp[-2].int32), (yyvsp[0].int32))); if ((yyvsp[-2].int32) > (yyvsp[0].int32)) { YYERROR; }; (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-2].int32)); (yyval.binstr)->appendInt32((yyvsp[0].int32)-(yyvsp[-2].int32)+1); } -#line 8009 "asmparse.cpp" +#line 8442 "asmparse.cpp" break; - case 723: /* bound: int32 ELLIPSIS */ -#line 1794 "./asmparse.y" + case 741: /* bound: int32 ELLIPSIS */ +#line 1834 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 8015 "asmparse.cpp" +#line 8448 "asmparse.cpp" break; - case 724: /* secDecl: _PERMISSION secAction typeSpec '(' nameValPairs ')' */ -#line 1799 "./asmparse.y" + case 742: /* secDecl: _PERMISSION secAction typeSpec '(' nameValPairs ')' */ +#line 1839 "asmparse.y" { PASM->AddPermissionDecl((yyvsp[-4].secAct), (yyvsp[-3].token), (yyvsp[-1].pair)); } -#line 8021 "asmparse.cpp" +#line 8454 "asmparse.cpp" break; - case 725: /* secDecl: _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}' */ -#line 1801 "./asmparse.y" + case 743: /* secDecl: _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}' */ +#line 1841 "asmparse.y" { PASM->AddPermissionDecl((yyvsp[-5].secAct), (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 8027 "asmparse.cpp" +#line 8460 "asmparse.cpp" break; - case 726: /* secDecl: _PERMISSION secAction typeSpec */ -#line 1802 "./asmparse.y" + case 744: /* secDecl: _PERMISSION secAction typeSpec */ +#line 1842 "asmparse.y" { PASM->AddPermissionDecl((yyvsp[-1].secAct), (yyvsp[0].token), (NVPair *)NULL); } -#line 8033 "asmparse.cpp" +#line 8466 "asmparse.cpp" break; - case 727: /* secDecl: psetHead bytes ')' */ -#line 1803 "./asmparse.y" + case 745: /* secDecl: psetHead bytes ')' */ +#line 1843 "asmparse.y" { PASM->AddPermissionSetDecl((yyvsp[-2].secAct), (yyvsp[-1].binstr)); } -#line 8039 "asmparse.cpp" +#line 8472 "asmparse.cpp" break; - case 728: /* secDecl: _PERMISSIONSET secAction compQstring */ -#line 1805 "./asmparse.y" + case 746: /* secDecl: _PERMISSIONSET secAction compQstring */ +#line 1845 "asmparse.y" { PASM->AddPermissionSetDecl((yyvsp[-1].secAct),BinStrToUnicode((yyvsp[0].binstr),true));} -#line 8045 "asmparse.cpp" +#line 8478 "asmparse.cpp" break; - case 729: /* secDecl: _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}' */ -#line 1807 "./asmparse.y" + case 747: /* secDecl: _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}' */ +#line 1847 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append((yyvsp[-1].binstr)); PASM->AddPermissionSetDecl((yyvsp[-4].secAct),ret); nSecAttrBlobs = 0; } -#line 8056 "asmparse.cpp" +#line 8489 "asmparse.cpp" break; - case 730: /* secAttrSetBlob: %empty */ -#line 1815 "./asmparse.y" + case 748: /* secAttrSetBlob: %empty */ +#line 1855 "asmparse.y" { (yyval.binstr) = new BinStr(); nSecAttrBlobs = 0;} -#line 8062 "asmparse.cpp" +#line 8495 "asmparse.cpp" break; - case 731: /* secAttrSetBlob: secAttrBlob */ -#line 1816 "./asmparse.y" + case 749: /* secAttrSetBlob: secAttrBlob */ +#line 1856 "asmparse.y" { (yyval.binstr) = (yyvsp[0].binstr); nSecAttrBlobs = 1; } -#line 8068 "asmparse.cpp" +#line 8501 "asmparse.cpp" break; - case 732: /* secAttrSetBlob: secAttrBlob ',' secAttrSetBlob */ -#line 1817 "./asmparse.y" + case 750: /* secAttrSetBlob: secAttrBlob ',' secAttrSetBlob */ +#line 1857 "asmparse.y" { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); nSecAttrBlobs++; } -#line 8074 "asmparse.cpp" +#line 8507 "asmparse.cpp" break; - case 733: /* secAttrBlob: typeSpec '=' '{' customBlobNVPairs '}' */ -#line 1821 "./asmparse.y" + case 751: /* secAttrBlob: typeSpec '=' '{' customBlobNVPairs '}' */ +#line 1861 "asmparse.y" { (yyval.binstr) = PASM->EncodeSecAttr(PASM->ReflectionNotation((yyvsp[-4].token)),(yyvsp[-1].binstr),nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 8081 "asmparse.cpp" +#line 8514 "asmparse.cpp" break; - case 734: /* secAttrBlob: CLASS_ SQSTRING '=' '{' customBlobNVPairs '}' */ -#line 1824 "./asmparse.y" + case 752: /* secAttrBlob: CLASS_ SQSTRING '=' '{' customBlobNVPairs '}' */ +#line 1864 "asmparse.y" { (yyval.binstr) = PASM->EncodeSecAttr((yyvsp[-4].string),(yyvsp[-1].binstr),nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 8088 "asmparse.cpp" +#line 8521 "asmparse.cpp" break; - case 735: /* psetHead: _PERMISSIONSET secAction '=' '(' */ -#line 1828 "./asmparse.y" + case 753: /* psetHead: _PERMISSIONSET secAction '=' '(' */ +#line 1868 "asmparse.y" { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } -#line 8094 "asmparse.cpp" +#line 8527 "asmparse.cpp" break; - case 736: /* psetHead: _PERMISSIONSET secAction BYTEARRAY_ '(' */ -#line 1830 "./asmparse.y" + case 754: /* psetHead: _PERMISSIONSET secAction BYTEARRAY_ '(' */ +#line 1870 "asmparse.y" { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } -#line 8100 "asmparse.cpp" +#line 8533 "asmparse.cpp" break; - case 737: /* nameValPairs: nameValPair */ -#line 1833 "./asmparse.y" + case 755: /* nameValPairs: nameValPair */ +#line 1873 "asmparse.y" { (yyval.pair) = (yyvsp[0].pair); } -#line 8106 "asmparse.cpp" +#line 8539 "asmparse.cpp" break; - case 738: /* nameValPairs: nameValPair ',' nameValPairs */ -#line 1834 "./asmparse.y" + case 756: /* nameValPairs: nameValPair ',' nameValPairs */ +#line 1874 "asmparse.y" { (yyval.pair) = (yyvsp[-2].pair)->Concat((yyvsp[0].pair)); } -#line 8112 "asmparse.cpp" +#line 8545 "asmparse.cpp" break; - case 739: /* nameValPair: compQstring '=' caValue */ -#line 1837 "./asmparse.y" + case 757: /* nameValPair: compQstring '=' caValue */ +#line 1877 "asmparse.y" { (yyvsp[-2].binstr)->appendInt8(0); (yyval.pair) = new NVPair((yyvsp[-2].binstr), (yyvsp[0].binstr)); } -#line 8118 "asmparse.cpp" +#line 8551 "asmparse.cpp" break; - case 740: /* truefalse: TRUE_ */ -#line 1840 "./asmparse.y" + case 758: /* truefalse: TRUE_ */ +#line 1880 "asmparse.y" { (yyval.int32) = 1; } -#line 8124 "asmparse.cpp" +#line 8557 "asmparse.cpp" break; - case 741: /* truefalse: FALSE_ */ -#line 1841 "./asmparse.y" + case 759: /* truefalse: FALSE_ */ +#line 1881 "asmparse.y" { (yyval.int32) = 0; } -#line 8130 "asmparse.cpp" +#line 8563 "asmparse.cpp" break; - case 742: /* caValue: truefalse */ -#line 1844 "./asmparse.y" + case 760: /* caValue: truefalse */ +#line 1884 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_BOOLEAN); (yyval.binstr)->appendInt8((yyvsp[0].int32)); } -#line 8138 "asmparse.cpp" +#line 8571 "asmparse.cpp" break; - case 743: /* caValue: int32 */ -#line 1847 "./asmparse.y" + case 761: /* caValue: int32 */ +#line 1887 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 8146 "asmparse.cpp" +#line 8579 "asmparse.cpp" break; - case 744: /* caValue: INT32_ '(' int32 ')' */ -#line 1850 "./asmparse.y" + case 762: /* caValue: INT32_ '(' int32 ')' */ +#line 1890 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8154 "asmparse.cpp" +#line 8587 "asmparse.cpp" break; - case 745: /* caValue: compQstring */ -#line 1853 "./asmparse.y" + case 763: /* caValue: compQstring */ +#line 1893 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_STRING); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); (yyval.binstr)->appendInt8(0); } -#line 8163 "asmparse.cpp" +#line 8596 "asmparse.cpp" break; - case 746: /* caValue: className '(' INT8_ ':' int32 ')' */ -#line 1857 "./asmparse.y" + case 764: /* caValue: className '(' INT8_ ':' int32 ')' */ +#line 1897 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); (yyval.binstr)->appendInt8(1); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8174 "asmparse.cpp" +#line 8607 "asmparse.cpp" break; - case 747: /* caValue: className '(' INT16_ ':' int32 ')' */ -#line 1863 "./asmparse.y" + case 765: /* caValue: className '(' INT16_ ':' int32 ')' */ +#line 1903 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); (yyval.binstr)->appendInt8(2); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8185 "asmparse.cpp" +#line 8618 "asmparse.cpp" break; - case 748: /* caValue: className '(' INT32_ ':' int32 ')' */ -#line 1869 "./asmparse.y" + case 766: /* caValue: className '(' INT32_ ':' int32 ')' */ +#line 1909 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); (yyval.binstr)->appendInt8(4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8196 "asmparse.cpp" +#line 8629 "asmparse.cpp" break; - case 749: /* caValue: className '(' int32 ')' */ -#line 1875 "./asmparse.y" + case 767: /* caValue: className '(' int32 ')' */ +#line 1915 "asmparse.y" { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation((yyvsp[-3].token)); strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); (yyval.binstr)->appendInt8(4); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8207 "asmparse.cpp" +#line 8640 "asmparse.cpp" break; - case 750: /* secAction: REQUEST_ */ -#line 1883 "./asmparse.y" + case 768: /* secAction: REQUEST_ */ +#line 1923 "asmparse.y" { (yyval.secAct) = dclRequest; } -#line 8213 "asmparse.cpp" +#line 8646 "asmparse.cpp" break; - case 751: /* secAction: DEMAND_ */ -#line 1884 "./asmparse.y" + case 769: /* secAction: DEMAND_ */ +#line 1924 "asmparse.y" { (yyval.secAct) = dclDemand; } -#line 8219 "asmparse.cpp" +#line 8652 "asmparse.cpp" break; - case 752: /* secAction: ASSERT_ */ -#line 1885 "./asmparse.y" + case 770: /* secAction: ASSERT_ */ +#line 1925 "asmparse.y" { (yyval.secAct) = dclAssert; } -#line 8225 "asmparse.cpp" +#line 8658 "asmparse.cpp" break; - case 753: /* secAction: DENY_ */ -#line 1886 "./asmparse.y" + case 771: /* secAction: DENY_ */ +#line 1926 "asmparse.y" { (yyval.secAct) = dclDeny; } -#line 8231 "asmparse.cpp" +#line 8664 "asmparse.cpp" break; - case 754: /* secAction: PERMITONLY_ */ -#line 1887 "./asmparse.y" + case 772: /* secAction: PERMITONLY_ */ +#line 1927 "asmparse.y" { (yyval.secAct) = dclPermitOnly; } -#line 8237 "asmparse.cpp" +#line 8670 "asmparse.cpp" break; - case 755: /* secAction: LINKCHECK_ */ -#line 1888 "./asmparse.y" + case 773: /* secAction: LINKCHECK_ */ +#line 1928 "asmparse.y" { (yyval.secAct) = dclLinktimeCheck; } -#line 8243 "asmparse.cpp" +#line 8676 "asmparse.cpp" break; - case 756: /* secAction: INHERITCHECK_ */ -#line 1889 "./asmparse.y" + case 774: /* secAction: INHERITCHECK_ */ +#line 1929 "asmparse.y" { (yyval.secAct) = dclInheritanceCheck; } -#line 8249 "asmparse.cpp" +#line 8682 "asmparse.cpp" break; - case 757: /* secAction: REQMIN_ */ -#line 1890 "./asmparse.y" + case 775: /* secAction: REQMIN_ */ +#line 1930 "asmparse.y" { (yyval.secAct) = dclRequestMinimum; } -#line 8255 "asmparse.cpp" +#line 8688 "asmparse.cpp" break; - case 758: /* secAction: REQOPT_ */ -#line 1891 "./asmparse.y" + case 776: /* secAction: REQOPT_ */ +#line 1931 "asmparse.y" { (yyval.secAct) = dclRequestOptional; } -#line 8261 "asmparse.cpp" +#line 8694 "asmparse.cpp" break; - case 759: /* secAction: REQREFUSE_ */ -#line 1892 "./asmparse.y" + case 777: /* secAction: REQREFUSE_ */ +#line 1932 "asmparse.y" { (yyval.secAct) = dclRequestRefuse; } -#line 8267 "asmparse.cpp" +#line 8700 "asmparse.cpp" break; - case 760: /* secAction: PREJITGRANT_ */ -#line 1893 "./asmparse.y" + case 778: /* secAction: PREJITGRANT_ */ +#line 1933 "asmparse.y" { (yyval.secAct) = dclPrejitGrant; } -#line 8273 "asmparse.cpp" +#line 8706 "asmparse.cpp" break; - case 761: /* secAction: PREJITDENY_ */ -#line 1894 "./asmparse.y" + case 779: /* secAction: PREJITDENY_ */ +#line 1934 "asmparse.y" { (yyval.secAct) = dclPrejitDenied; } -#line 8279 "asmparse.cpp" +#line 8712 "asmparse.cpp" break; - case 762: /* secAction: NONCASDEMAND_ */ -#line 1895 "./asmparse.y" + case 780: /* secAction: NONCASDEMAND_ */ +#line 1935 "asmparse.y" { (yyval.secAct) = dclNonCasDemand; } -#line 8285 "asmparse.cpp" +#line 8718 "asmparse.cpp" break; - case 763: /* secAction: NONCASLINKDEMAND_ */ -#line 1896 "./asmparse.y" + case 781: /* secAction: NONCASLINKDEMAND_ */ +#line 1936 "asmparse.y" { (yyval.secAct) = dclNonCasLinkDemand; } -#line 8291 "asmparse.cpp" +#line 8724 "asmparse.cpp" break; - case 764: /* secAction: NONCASINHERITANCE_ */ -#line 1897 "./asmparse.y" + case 782: /* secAction: NONCASINHERITANCE_ */ +#line 1937 "asmparse.y" { (yyval.secAct) = dclNonCasInheritance; } -#line 8297 "asmparse.cpp" +#line 8730 "asmparse.cpp" break; - case 765: /* esHead: _LINE */ -#line 1901 "./asmparse.y" + case 783: /* esHead: _LINE */ +#line 1941 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 8303 "asmparse.cpp" +#line 8736 "asmparse.cpp" break; - case 766: /* esHead: P_LINE */ -#line 1902 "./asmparse.y" + case 784: /* esHead: P_LINE */ +#line 1942 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 8309 "asmparse.cpp" +#line 8742 "asmparse.cpp" break; - case 767: /* extSourceSpec: esHead int32 SQSTRING */ -#line 1905 "./asmparse.y" + case 785: /* extSourceSpec: esHead int32 SQSTRING */ +#line 1945 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32); PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName((yyvsp[0].string));} -#line 8317 "asmparse.cpp" +#line 8750 "asmparse.cpp" break; - case 768: /* extSourceSpec: esHead int32 */ -#line 1908 "./asmparse.y" + case 786: /* extSourceSpec: esHead int32 */ +#line 1948 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[0].int32); PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 8324 "asmparse.cpp" +#line 8757 "asmparse.cpp" break; - case 769: /* extSourceSpec: esHead int32 ':' int32 SQSTRING */ -#line 1910 "./asmparse.y" + case 787: /* extSourceSpec: esHead int32 ':' int32 SQSTRING */ +#line 1950 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-3].int32); PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName((yyvsp[0].string));} -#line 8332 "asmparse.cpp" +#line 8765 "asmparse.cpp" break; - case 770: /* extSourceSpec: esHead int32 ':' int32 */ -#line 1913 "./asmparse.y" + case 788: /* extSourceSpec: esHead int32 ':' int32 */ +#line 1953 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-2].int32); PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1);} -#line 8339 "asmparse.cpp" +#line 8772 "asmparse.cpp" break; - case 771: /* extSourceSpec: esHead int32 ':' int32 ',' int32 SQSTRING */ -#line 1916 "./asmparse.y" + case 789: /* extSourceSpec: esHead int32 ':' int32 ',' int32 SQSTRING */ +#line 1956 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-5].int32); PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); PASM->SetSourceFileName((yyvsp[0].string));} -#line 8347 "asmparse.cpp" +#line 8780 "asmparse.cpp" break; - case 772: /* extSourceSpec: esHead int32 ':' int32 ',' int32 */ -#line 1920 "./asmparse.y" + case 790: /* extSourceSpec: esHead int32 ':' int32 ',' int32 */ +#line 1960 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-4].int32); PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } -#line 8354 "asmparse.cpp" +#line 8787 "asmparse.cpp" break; - case 773: /* extSourceSpec: esHead int32 ',' int32 ':' int32 SQSTRING */ -#line 1923 "./asmparse.y" + case 791: /* extSourceSpec: esHead int32 ',' int32 ':' int32 SQSTRING */ +#line 1963 "asmparse.y" { PENV->nExtLine = (yyvsp[-5].int32); PENV->nExtLineEnd = (yyvsp[-3].int32); PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName((yyvsp[0].string));} -#line 8362 "asmparse.cpp" +#line 8795 "asmparse.cpp" break; - case 774: /* extSourceSpec: esHead int32 ',' int32 ':' int32 */ -#line 1927 "./asmparse.y" + case 792: /* extSourceSpec: esHead int32 ',' int32 ':' int32 */ +#line 1967 "asmparse.y" { PENV->nExtLine = (yyvsp[-4].int32); PENV->nExtLineEnd = (yyvsp[-2].int32); PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1); } -#line 8369 "asmparse.cpp" +#line 8802 "asmparse.cpp" break; - case 775: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING */ -#line 1930 "./asmparse.y" + case 793: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING */ +#line 1970 "asmparse.y" { PENV->nExtLine = (yyvsp[-7].int32); PENV->nExtLineEnd = (yyvsp[-5].int32); PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); PASM->SetSourceFileName((yyvsp[0].string));} -#line 8377 "asmparse.cpp" +#line 8810 "asmparse.cpp" break; - case 776: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 */ -#line 1934 "./asmparse.y" + case 794: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 */ +#line 1974 "asmparse.y" { PENV->nExtLine = (yyvsp[-6].int32); PENV->nExtLineEnd = (yyvsp[-4].int32); PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } -#line 8384 "asmparse.cpp" +#line 8817 "asmparse.cpp" break; - case 777: /* extSourceSpec: esHead int32 QSTRING */ -#line 1936 "./asmparse.y" + case 795: /* extSourceSpec: esHead int32 QSTRING */ +#line 1976 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32) - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName((yyvsp[0].binstr));} -#line 8392 "asmparse.cpp" +#line 8825 "asmparse.cpp" break; - case 778: /* fileDecl: _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry */ -#line 1943 "./asmparse.y" + case 796: /* fileDecl: _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry */ +#line 1983 "asmparse.y" { PASMM->AddFile((yyvsp[-5].string), (yyvsp[-6].fileAttr)|(yyvsp[-4].fileAttr)|(yyvsp[0].fileAttr), (yyvsp[-2].binstr)); } -#line 8398 "asmparse.cpp" +#line 8831 "asmparse.cpp" break; - case 779: /* fileDecl: _FILE fileAttr dottedName fileEntry */ -#line 1944 "./asmparse.y" + case 797: /* fileDecl: _FILE fileAttr dottedName fileEntry */ +#line 1984 "asmparse.y" { PASMM->AddFile((yyvsp[-1].string), (yyvsp[-2].fileAttr)|(yyvsp[0].fileAttr), NULL); } -#line 8404 "asmparse.cpp" +#line 8837 "asmparse.cpp" break; - case 780: /* fileAttr: %empty */ -#line 1947 "./asmparse.y" + case 798: /* fileAttr: %empty */ +#line 1987 "asmparse.y" { (yyval.fileAttr) = (CorFileFlags) 0; } -#line 8410 "asmparse.cpp" +#line 8843 "asmparse.cpp" break; - case 781: /* fileAttr: fileAttr NOMETADATA_ */ -#line 1948 "./asmparse.y" + case 799: /* fileAttr: fileAttr NOMETADATA_ */ +#line 1988 "asmparse.y" { (yyval.fileAttr) = (CorFileFlags) ((yyvsp[-1].fileAttr) | ffContainsNoMetaData); } -#line 8416 "asmparse.cpp" +#line 8849 "asmparse.cpp" break; - case 782: /* fileEntry: %empty */ -#line 1951 "./asmparse.y" + case 800: /* fileEntry: %empty */ +#line 1991 "asmparse.y" { (yyval.fileAttr) = (CorFileFlags) 0; } -#line 8422 "asmparse.cpp" +#line 8855 "asmparse.cpp" break; - case 783: /* fileEntry: _ENTRYPOINT */ -#line 1952 "./asmparse.y" + case 801: /* fileEntry: _ENTRYPOINT */ +#line 1992 "asmparse.y" { (yyval.fileAttr) = (CorFileFlags) 0x80000000; } -#line 8428 "asmparse.cpp" +#line 8861 "asmparse.cpp" break; - case 784: /* hashHead: _HASH '=' '(' */ -#line 1955 "./asmparse.y" + case 802: /* hashHead: _HASH '=' '(' */ +#line 1995 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8434 "asmparse.cpp" +#line 8867 "asmparse.cpp" break; - case 785: /* assemblyHead: _ASSEMBLY asmAttr dottedName */ -#line 1958 "./asmparse.y" + case 803: /* assemblyHead: _ASSEMBLY asmAttr dottedName */ +#line 1998 "asmparse.y" { PASMM->StartAssembly((yyvsp[0].string), NULL, (DWORD)(yyvsp[-1].asmAttr), FALSE); } -#line 8440 "asmparse.cpp" +#line 8873 "asmparse.cpp" break; - case 786: /* asmAttr: %empty */ -#line 1961 "./asmparse.y" + case 804: /* asmAttr: %empty */ +#line 2001 "asmparse.y" { (yyval.asmAttr) = (CorAssemblyFlags) 0; } -#line 8446 "asmparse.cpp" +#line 8879 "asmparse.cpp" break; - case 787: /* asmAttr: asmAttr RETARGETABLE_ */ -#line 1962 "./asmparse.y" + case 805: /* asmAttr: asmAttr RETARGETABLE_ */ +#line 2002 "asmparse.y" { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afRetargetable); } -#line 8452 "asmparse.cpp" +#line 8885 "asmparse.cpp" break; - case 788: /* asmAttr: asmAttr WINDOWSRUNTIME_ */ -#line 1963 "./asmparse.y" + case 806: /* asmAttr: asmAttr WINDOWSRUNTIME_ */ +#line 2003 "asmparse.y" { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afContentType_WindowsRuntime); } -#line 8458 "asmparse.cpp" +#line 8891 "asmparse.cpp" break; - case 789: /* asmAttr: asmAttr NOPLATFORM_ */ -#line 1964 "./asmparse.y" + case 807: /* asmAttr: asmAttr NOPLATFORM_ */ +#line 2004 "asmparse.y" { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afPA_NoPlatform); } -#line 8464 "asmparse.cpp" +#line 8897 "asmparse.cpp" break; - case 790: /* asmAttr: asmAttr LEGACY_ LIBRARY_ */ -#line 1965 "./asmparse.y" + case 808: /* asmAttr: asmAttr LEGACY_ LIBRARY_ */ +#line 2005 "asmparse.y" { (yyval.asmAttr) = (yyvsp[-2].asmAttr); } -#line 8470 "asmparse.cpp" +#line 8903 "asmparse.cpp" break; - case 791: /* asmAttr: asmAttr CIL_ */ -#line 1966 "./asmparse.y" + case 809: /* asmAttr: asmAttr CIL_ */ +#line 2006 "asmparse.y" { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_MSIL); } -#line 8476 "asmparse.cpp" +#line 8909 "asmparse.cpp" break; - case 792: /* asmAttr: asmAttr X86_ */ -#line 1967 "./asmparse.y" + case 810: /* asmAttr: asmAttr X86_ */ +#line 2007 "asmparse.y" { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_x86); } -#line 8482 "asmparse.cpp" +#line 8915 "asmparse.cpp" break; - case 793: /* asmAttr: asmAttr AMD64_ */ -#line 1968 "./asmparse.y" + case 811: /* asmAttr: asmAttr AMD64_ */ +#line 2008 "asmparse.y" { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_AMD64); } -#line 8488 "asmparse.cpp" +#line 8921 "asmparse.cpp" break; - case 794: /* asmAttr: asmAttr ARM_ */ -#line 1969 "./asmparse.y" + case 812: /* asmAttr: asmAttr ARM_ */ +#line 2009 "asmparse.y" { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM); } -#line 8494 "asmparse.cpp" +#line 8927 "asmparse.cpp" break; - case 795: /* asmAttr: asmAttr ARM64_ */ -#line 1970 "./asmparse.y" + case 813: /* asmAttr: asmAttr ARM64_ */ +#line 2010 "asmparse.y" { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM64); } -#line 8500 "asmparse.cpp" +#line 8933 "asmparse.cpp" break; - case 798: /* assemblyDecl: _HASH ALGORITHM_ int32 */ -#line 1977 "./asmparse.y" + case 816: /* assemblyDecl: _HASH ALGORITHM_ int32 */ +#line 2017 "asmparse.y" { PASMM->SetAssemblyHashAlg((yyvsp[0].int32)); } -#line 8506 "asmparse.cpp" +#line 8939 "asmparse.cpp" break; - case 801: /* intOrWildcard: int32 */ -#line 1982 "./asmparse.y" + case 819: /* intOrWildcard: int32 */ +#line 2022 "asmparse.y" { (yyval.int32) = (yyvsp[0].int32); } -#line 8512 "asmparse.cpp" +#line 8945 "asmparse.cpp" break; - case 802: /* intOrWildcard: '*' */ -#line 1983 "./asmparse.y" + case 820: /* intOrWildcard: '*' */ +#line 2023 "asmparse.y" { (yyval.int32) = 0xFFFF; } -#line 8518 "asmparse.cpp" +#line 8951 "asmparse.cpp" break; - case 803: /* asmOrRefDecl: publicKeyHead bytes ')' */ -#line 1986 "./asmparse.y" + case 821: /* asmOrRefDecl: publicKeyHead bytes ')' */ +#line 2026 "asmparse.y" { PASMM->SetAssemblyPublicKey((yyvsp[-1].binstr)); } -#line 8524 "asmparse.cpp" +#line 8957 "asmparse.cpp" break; - case 804: /* asmOrRefDecl: _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard */ -#line 1988 "./asmparse.y" + case 822: /* asmOrRefDecl: _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard */ +#line 2028 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)(yyvsp[-6].int32), (USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (USHORT)(yyvsp[0].int32)); } -#line 8530 "asmparse.cpp" +#line 8963 "asmparse.cpp" break; - case 805: /* asmOrRefDecl: _LOCALE compQstring */ -#line 1989 "./asmparse.y" + case 823: /* asmOrRefDecl: _LOCALE compQstring */ +#line 2029 "asmparse.y" { (yyvsp[0].binstr)->appendInt8(0); PASMM->SetAssemblyLocale((yyvsp[0].binstr),TRUE); } -#line 8536 "asmparse.cpp" +#line 8969 "asmparse.cpp" break; - case 806: /* asmOrRefDecl: localeHead bytes ')' */ -#line 1990 "./asmparse.y" + case 824: /* asmOrRefDecl: localeHead bytes ')' */ +#line 2030 "asmparse.y" { PASMM->SetAssemblyLocale((yyvsp[-1].binstr),FALSE); } -#line 8542 "asmparse.cpp" +#line 8975 "asmparse.cpp" break; - case 809: /* publicKeyHead: _PUBLICKEY '=' '(' */ -#line 1995 "./asmparse.y" + case 827: /* publicKeyHead: _PUBLICKEY '=' '(' */ +#line 2035 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8548 "asmparse.cpp" +#line 8981 "asmparse.cpp" break; - case 810: /* publicKeyTokenHead: _PUBLICKEYTOKEN '=' '(' */ -#line 1998 "./asmparse.y" + case 828: /* publicKeyTokenHead: _PUBLICKEYTOKEN '=' '(' */ +#line 2038 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8554 "asmparse.cpp" +#line 8987 "asmparse.cpp" break; - case 811: /* localeHead: _LOCALE '=' '(' */ -#line 2001 "./asmparse.y" + case 829: /* localeHead: _LOCALE '=' '(' */ +#line 2041 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8560 "asmparse.cpp" +#line 8993 "asmparse.cpp" break; - case 812: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName */ -#line 2005 "./asmparse.y" + case 830: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName */ +#line 2045 "asmparse.y" { PASMM->StartAssembly((yyvsp[0].string), NULL, (yyvsp[-1].asmAttr), TRUE); } -#line 8566 "asmparse.cpp" +#line 8999 "asmparse.cpp" break; - case 813: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName */ -#line 2007 "./asmparse.y" + case 831: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName */ +#line 2047 "asmparse.y" { PASMM->StartAssembly((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].asmAttr), TRUE); } -#line 8572 "asmparse.cpp" +#line 9005 "asmparse.cpp" break; - case 816: /* assemblyRefDecl: hashHead bytes ')' */ -#line 2014 "./asmparse.y" + case 834: /* assemblyRefDecl: hashHead bytes ')' */ +#line 2054 "asmparse.y" { PASMM->SetAssemblyHashBlob((yyvsp[-1].binstr)); } -#line 8578 "asmparse.cpp" +#line 9011 "asmparse.cpp" break; - case 818: /* assemblyRefDecl: publicKeyTokenHead bytes ')' */ -#line 2016 "./asmparse.y" + case 836: /* assemblyRefDecl: publicKeyTokenHead bytes ')' */ +#line 2056 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken((yyvsp[-1].binstr)); } -#line 8584 "asmparse.cpp" +#line 9017 "asmparse.cpp" break; - case 819: /* assemblyRefDecl: AUTO_ */ -#line 2017 "./asmparse.y" + case 837: /* assemblyRefDecl: AUTO_ */ +#line 2057 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 8590 "asmparse.cpp" +#line 9023 "asmparse.cpp" break; - case 820: /* exptypeHead: _CLASS EXTERN_ exptAttr dottedName */ -#line 2020 "./asmparse.y" + case 838: /* exptypeHead: _CLASS EXTERN_ exptAttr dottedName */ +#line 2060 "asmparse.y" { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr));} -#line 8596 "asmparse.cpp" +#line 9029 "asmparse.cpp" break; - case 821: /* exportHead: _EXPORT exptAttr dottedName */ -#line 2023 "./asmparse.y" + case 839: /* exportHead: _EXPORT exptAttr dottedName */ +#line 2063 "asmparse.y" { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr)); } -#line 8602 "asmparse.cpp" +#line 9035 "asmparse.cpp" break; - case 822: /* exptAttr: %empty */ -#line 2026 "./asmparse.y" + case 840: /* exptAttr: %empty */ +#line 2066 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) 0; } -#line 8608 "asmparse.cpp" +#line 9041 "asmparse.cpp" break; - case 823: /* exptAttr: exptAttr PRIVATE_ */ -#line 2027 "./asmparse.y" + case 841: /* exptAttr: exptAttr PRIVATE_ */ +#line 2067 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdNotPublic); } -#line 8614 "asmparse.cpp" +#line 9047 "asmparse.cpp" break; - case 824: /* exptAttr: exptAttr PUBLIC_ */ -#line 2028 "./asmparse.y" + case 842: /* exptAttr: exptAttr PUBLIC_ */ +#line 2068 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdPublic); } -#line 8620 "asmparse.cpp" +#line 9053 "asmparse.cpp" break; - case 825: /* exptAttr: exptAttr FORWARDER_ */ -#line 2029 "./asmparse.y" + case 843: /* exptAttr: exptAttr FORWARDER_ */ +#line 2069 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdForwarder); } -#line 8626 "asmparse.cpp" +#line 9059 "asmparse.cpp" break; - case 826: /* exptAttr: exptAttr NESTED_ PUBLIC_ */ -#line 2030 "./asmparse.y" + case 844: /* exptAttr: exptAttr NESTED_ PUBLIC_ */ +#line 2070 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPublic); } -#line 8632 "asmparse.cpp" +#line 9065 "asmparse.cpp" break; - case 827: /* exptAttr: exptAttr NESTED_ PRIVATE_ */ -#line 2031 "./asmparse.y" + case 845: /* exptAttr: exptAttr NESTED_ PRIVATE_ */ +#line 2071 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPrivate); } -#line 8638 "asmparse.cpp" +#line 9071 "asmparse.cpp" break; - case 828: /* exptAttr: exptAttr NESTED_ FAMILY_ */ -#line 2032 "./asmparse.y" + case 846: /* exptAttr: exptAttr NESTED_ FAMILY_ */ +#line 2072 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamily); } -#line 8644 "asmparse.cpp" +#line 9077 "asmparse.cpp" break; - case 829: /* exptAttr: exptAttr NESTED_ ASSEMBLY_ */ -#line 2033 "./asmparse.y" + case 847: /* exptAttr: exptAttr NESTED_ ASSEMBLY_ */ +#line 2073 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedAssembly); } -#line 8650 "asmparse.cpp" +#line 9083 "asmparse.cpp" break; - case 830: /* exptAttr: exptAttr NESTED_ FAMANDASSEM_ */ -#line 2034 "./asmparse.y" + case 848: /* exptAttr: exptAttr NESTED_ FAMANDASSEM_ */ +#line 2074 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamANDAssem); } -#line 8656 "asmparse.cpp" +#line 9089 "asmparse.cpp" break; - case 831: /* exptAttr: exptAttr NESTED_ FAMORASSEM_ */ -#line 2035 "./asmparse.y" + case 849: /* exptAttr: exptAttr NESTED_ FAMORASSEM_ */ +#line 2075 "asmparse.y" { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamORAssem); } -#line 8662 "asmparse.cpp" +#line 9095 "asmparse.cpp" break; - case 834: /* exptypeDecl: _FILE dottedName */ -#line 2042 "./asmparse.y" + case 852: /* exptypeDecl: _FILE dottedName */ +#line 2082 "asmparse.y" { PASMM->SetComTypeFile((yyvsp[0].string)); } -#line 8668 "asmparse.cpp" +#line 9101 "asmparse.cpp" break; - case 835: /* exptypeDecl: _CLASS EXTERN_ slashedName */ -#line 2043 "./asmparse.y" + case 853: /* exptypeDecl: _CLASS EXTERN_ slashedName */ +#line 2083 "asmparse.y" { PASMM->SetComTypeComType((yyvsp[0].string)); } -#line 8674 "asmparse.cpp" +#line 9107 "asmparse.cpp" break; - case 836: /* exptypeDecl: _ASSEMBLY EXTERN_ dottedName */ -#line 2044 "./asmparse.y" + case 854: /* exptypeDecl: _ASSEMBLY EXTERN_ dottedName */ +#line 2084 "asmparse.y" { PASMM->SetComTypeAsmRef((yyvsp[0].string)); } -#line 8680 "asmparse.cpp" +#line 9113 "asmparse.cpp" break; - case 837: /* exptypeDecl: MDTOKEN_ '(' int32 ')' */ -#line 2045 "./asmparse.y" + case 855: /* exptypeDecl: MDTOKEN_ '(' int32 ')' */ +#line 2085 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok((yyvsp[-1].int32))) PASM->report->error("Invalid implementation of exported type\n"); } -#line 8687 "asmparse.cpp" +#line 9120 "asmparse.cpp" break; - case 838: /* exptypeDecl: _CLASS int32 */ -#line 2047 "./asmparse.y" + case 856: /* exptypeDecl: _CLASS int32 */ +#line 2087 "asmparse.y" { if(!PASMM->SetComTypeClassTok((yyvsp[0].int32))) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 8694 "asmparse.cpp" +#line 9127 "asmparse.cpp" break; - case 841: /* manifestResHead: _MRESOURCE manresAttr dottedName */ -#line 2053 "./asmparse.y" + case 859: /* manifestResHead: _MRESOURCE manresAttr dottedName */ +#line 2093 "asmparse.y" { PASMM->StartManifestRes((yyvsp[0].string), (yyvsp[0].string), (yyvsp[-1].manresAttr)); } -#line 8700 "asmparse.cpp" +#line 9133 "asmparse.cpp" break; - case 842: /* manifestResHead: _MRESOURCE manresAttr dottedName AS_ dottedName */ -#line 2055 "./asmparse.y" + case 860: /* manifestResHead: _MRESOURCE manresAttr dottedName AS_ dottedName */ +#line 2095 "asmparse.y" { PASMM->StartManifestRes((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].manresAttr)); } -#line 8706 "asmparse.cpp" +#line 9139 "asmparse.cpp" break; - case 843: /* manresAttr: %empty */ -#line 2058 "./asmparse.y" + case 861: /* manresAttr: %empty */ +#line 2098 "asmparse.y" { (yyval.manresAttr) = (CorManifestResourceFlags) 0; } -#line 8712 "asmparse.cpp" +#line 9145 "asmparse.cpp" break; - case 844: /* manresAttr: manresAttr PUBLIC_ */ -#line 2059 "./asmparse.y" + case 862: /* manresAttr: manresAttr PUBLIC_ */ +#line 2099 "asmparse.y" { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPublic); } -#line 8718 "asmparse.cpp" +#line 9151 "asmparse.cpp" break; - case 845: /* manresAttr: manresAttr PRIVATE_ */ -#line 2060 "./asmparse.y" + case 863: /* manresAttr: manresAttr PRIVATE_ */ +#line 2100 "asmparse.y" { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPrivate); } -#line 8724 "asmparse.cpp" +#line 9157 "asmparse.cpp" break; - case 848: /* manifestResDecl: _FILE dottedName AT_ int32 */ -#line 2067 "./asmparse.y" + case 866: /* manifestResDecl: _FILE dottedName AT_ int32 */ +#line 2107 "asmparse.y" { PASMM->SetManifestResFile((yyvsp[-2].string), (ULONG)(yyvsp[0].int32)); } -#line 8730 "asmparse.cpp" +#line 9163 "asmparse.cpp" break; - case 849: /* manifestResDecl: _ASSEMBLY EXTERN_ dottedName */ -#line 2068 "./asmparse.y" + case 867: /* manifestResDecl: _ASSEMBLY EXTERN_ dottedName */ +#line 2108 "asmparse.y" { PASMM->SetManifestResAsmRef((yyvsp[0].string)); } -#line 8736 "asmparse.cpp" +#line 9169 "asmparse.cpp" break; -#line 8740 "asmparse.cpp" +#line 9173 "asmparse.cpp" default: break; } @@ -8929,7 +9362,7 @@ yyparse (void) return yyresult; } -#line 2073 "./asmparse.y" +#line 2113 "asmparse.y" #include "grammar_after.cpp" From 5a018b2a41e62499f153eb0d5941926295383321 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 31 Jul 2023 22:11:00 +0900 Subject: [PATCH 65/80] Fix the missing fallback path to GenericParamRec --- src/coreclr/md/runtime/metamodel.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/coreclr/md/runtime/metamodel.cpp b/src/coreclr/md/runtime/metamodel.cpp index a294f1f457bde..0150ece16099a 100644 --- a/src/coreclr/md/runtime/metamodel.cpp +++ b/src/coreclr/md/runtime/metamodel.cpp @@ -620,6 +620,13 @@ CMiniMdBase::SchemaPopulate( m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV1_1.m_Def; m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); } + else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && + (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0)) + { + // 2.0 had a different type of GenericParam table + m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV2_0.m_Def; + m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); + } // Is it a supported old version? This should never fail! else { From af861b48bb04700596626b62d882fc136995406d Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 2 Aug 2023 13:59:17 +0900 Subject: [PATCH 66/80] Add support for type validation --- src/coreclr/vm/typedesc.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index d1cff6ec84676..783e91b842196 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -1431,7 +1431,8 @@ BOOL TypeVarTypeDesc::SatisfiesConstraints(SigTypeContext *pTypeContextOfConstra // First check special constraints DWORD flags; - IfFailThrow(pInternalImport->GetGenericParamProps(genericParamToken, NULL, &flags, NULL, NULL, NULL)); + mdToken tkType; + IfFailThrow(pInternalImport->GetGenericParamProps(genericParamToken, NULL, &flags, NULL, &tkType, NULL)); DWORD specialConstraints = flags & gpSpecialConstraintMask; @@ -1490,6 +1491,21 @@ BOOL TypeVarTypeDesc::SatisfiesConstraints(SigTypeContext *pTypeContextOfConstra // GatherConstraintsRecursive(pTyVar, &argList, pInstContext); } + else if (thArg.IsConstValue()) + { + if (!RidFromToken(tkType)) + return FALSE; + ConstValueTypeDesc *pConVal = thArg.AsConstValue(); + TypeHandle thType = ClassLoader::LoadTypeDefOrRefOrSpecThrowing(GetModule(), + tkType, + pTypeContextOfConstraintDeclarer, + ClassLoader::ThrowIfNotFound, + ClassLoader::FailIfUninstDefOrRef, + ClassLoader::LoadTypes, + CLASS_DEPENDENCIES_LOADED); + if (!pConVal->GetConstValueType().IsEquivalentTo(thType)) + return FALSE; + } else { if ((specialConstraints & gpNotNullableValueTypeConstraint) != 0) From 9b769117b725ba990926e6486edb7a4556aab6ca Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 2 Aug 2023 16:16:48 +0900 Subject: [PATCH 67/80] Implement typestring for const type parameter --- src/coreclr/jit/ee_il_dll.hpp | 1 + src/coreclr/jit/eeinterface.cpp | 2 +- src/coreclr/vm/typestring.cpp | 57 ++++++++++++++++++++++++++++++++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/ee_il_dll.hpp b/src/coreclr/jit/ee_il_dll.hpp index 0f8191078918f..b5302dedaa67a 100644 --- a/src/coreclr/jit/ee_il_dll.hpp +++ b/src/coreclr/jit/ee_il_dll.hpp @@ -268,6 +268,7 @@ inline var_types JitType2PreciseVarType(CorInfoType type) // verification types and CLASS_HANDLEs to track the difference. TYP_REF, // CORINFO_TYPE_VAR = 0x16, + TYP_UNDEF, // CORINFO_TYPE_CTARG = 0x17 }; // spot check to make certain enumerations have not changed diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index 50a3becfe45e9..3c15e4339a7a5 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -158,7 +158,7 @@ void Compiler::eePrintConstValue(StringPrinter* printer, CorInfoType valueType, printer->Append(buffer); break; default: - _ASSERTE(!"UNKNOWN VALUE TYPE"); + _ASSERTE(!"UNKNOWN CONST VALUE TYPE"); break; } printer->Append(")"); diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 02e3cdfa7f764..8e01344c1c4d4 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -767,11 +767,65 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t LPCSTR szName = NULL; mdToken mdOwner; + mdToken mdType; - IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, NULL, &szName)); + IfFailThrow(ty.GetModule()->GetMDImport()->GetGenericParamProps(token, NULL, NULL, &mdOwner, &mdType, &szName)); _ASSERTE(TypeFromToken(mdOwner) == mdtTypeDef || TypeFromToken(mdOwner) == mdtMethodDef); + if (RidFromToken(mdType)) + { + _ASSERTE(TypeFromToken(mdType) == mdtTypeSpec); + PCCOR_SIGNATURE pSig; + ULONG cSig; + IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &pSig, &cSig)); + SString typeName(L"const "); + const char* str; + switch (*pSig++) + { + case ELEMENT_TYPE_BOOLEAN : + str = "bool"; goto APPEND; + case ELEMENT_TYPE_CHAR : + str = "char"; goto APPEND; + case ELEMENT_TYPE_I1 : + str = "int8"; goto APPEND; + case ELEMENT_TYPE_U1 : + str = "uint8"; goto APPEND; + case ELEMENT_TYPE_I2 : + str = "int16"; goto APPEND; + case ELEMENT_TYPE_U2 : + str = "uint16"; goto APPEND; + case ELEMENT_TYPE_I4 : + str = "int32"; goto APPEND; + case ELEMENT_TYPE_U4 : + str = "uint32"; goto APPEND; + case ELEMENT_TYPE_I8 : + str = "int64"; goto APPEND; + case ELEMENT_TYPE_U8 : + str = "uint64"; goto APPEND; + case ELEMENT_TYPE_R4 : + str = "float32"; goto APPEND; + case ELEMENT_TYPE_R8 : + str = "float64"; goto APPEND; + APPEND: + typeName.AppendUTF8(str); + break; + case ELEMENT_TYPE_VAR : + typeName.AppendUTF8("!"); + goto APPEND_VAR; + case ELEMENT_TYPE_MVAR : + typeName.AppendUTF8("!!"); + APPEND_VAR: + typeName.AppendPrintf("%u", CorSigUncompressData(pSig)); + break; + default: + _ASSERTE(!"UNKNOWN CONST TYPE PARAMETER"); + break; + } + typeName.AppendUTF8(" "); + tnb.Append(typeName.GetUnicode()); + } + LPCSTR szPrefix; if (!(format & FormatGenericParam)) szPrefix = ""; @@ -781,6 +835,7 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t szPrefix = "!!"; SmallStackSString pName(SString::Utf8, szPrefix); + pName.AppendUTF8(szPrefix); pName.AppendUTF8(szName); tnb.AddName(pName.GetUnicode()); format &= ~FormatAssembly; From 20db638caba1bcbe4d0945e985783825b31ed0f7 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 2 Aug 2023 16:31:45 +0900 Subject: [PATCH 68/80] Fix build failure --- src/coreclr/vm/typestring.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 8e01344c1c4d4..3a3701873a343 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -779,8 +779,8 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t PCCOR_SIGNATURE pSig; ULONG cSig; IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &pSig, &cSig)); - SString typeName(L"const "); - const char* str; + SmallStackSString typeName(SString::Utf8, "const "); + LPCSTR str; switch (*pSig++) { case ELEMENT_TYPE_BOOLEAN : @@ -835,9 +835,9 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t szPrefix = "!!"; SmallStackSString pName(SString::Utf8, szPrefix); - pName.AppendUTF8(szPrefix); pName.AppendUTF8(szName); tnb.AddName(pName.GetUnicode()); + format &= ~FormatAssembly; } From 1d6c3f8f7984e93fc1c411fea83ff4337b850c29 Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 2 Aug 2023 16:47:40 +0900 Subject: [PATCH 69/80] Fix format --- src/coreclr/jit/ee_il_dll.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/coreclr/jit/ee_il_dll.hpp b/src/coreclr/jit/ee_il_dll.hpp index b5302dedaa67a..205ac90ed47ca 100644 --- a/src/coreclr/jit/ee_il_dll.hpp +++ b/src/coreclr/jit/ee_il_dll.hpp @@ -206,7 +206,8 @@ inline var_types JITtype2varType(CorInfoType type) // choice places to do with verification, where we use // verification types and CLASS_HANDLEs to track the difference. - TYP_REF, // CORINFO_TYPE_VAR = 0x16, + TYP_REF, // CORINFO_TYPE_VAR = 0x16, + TYP_UNDEF, // CORINFO_TYPE_CTARG = 0x17, }; // spot check to make certain enumerations have not changed @@ -267,8 +268,8 @@ inline var_types JitType2PreciseVarType(CorInfoType type) // choice places to do with verification, where we use // verification types and CLASS_HANDLEs to track the difference. - TYP_REF, // CORINFO_TYPE_VAR = 0x16, - TYP_UNDEF, // CORINFO_TYPE_CTARG = 0x17 + TYP_REF, // CORINFO_TYPE_VAR = 0x16, + TYP_UNDEF, // CORINFO_TYPE_CTARG = 0x17, }; // spot check to make certain enumerations have not changed From 2e104157f029fa120bc608add8a28d16f9da60bf Mon Sep 17 00:00:00 2001 From: Steven He Date: Thu, 3 Aug 2023 19:23:34 +0900 Subject: [PATCH 70/80] Fix generics on const type parameter parsing --- src/coreclr/ilasm/asmparse.h | 1 + src/coreclr/ilasm/asmparse.y | 4 ++-- src/coreclr/ilasm/grammar_after.cpp | 14 +++++++++++++ src/coreclr/ilasm/grammar_before.cpp | 7 ++++--- src/coreclr/ilasm/prebuilt/asmparse.cpp | 28 ++++++++++++------------- src/coreclr/ilasm/typar.hpp | 25 +++++++++++++--------- 6 files changed, 50 insertions(+), 29 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.h b/src/coreclr/ilasm/asmparse.h index 5300a092b4e27..29d4ec60c2733 100644 --- a/src/coreclr/ilasm/asmparse.h +++ b/src/coreclr/ilasm/asmparse.h @@ -315,6 +315,7 @@ class AsmParse : public ErrorReporter friend int ProcessEOF(); friend unsigned __int8* skipType(unsigned __int8* ptr, BOOL fFixupType); friend void FixupConstraints(); + friend void ResolveTyParList(TyParList* list); Assembler* assem; // This does most of the semantic processing bool success; // overall success of the compilation diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index cb256ae918ca7..9d62feec39126 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -481,7 +481,7 @@ typeListNotEmpty : typeSpec { $$ = new BinStr(); ; typarsClause : /* EMPTY */ { $$ = NULL; PASM->m_TyParList = NULL;} - | '<' typars '>' { $$ = $2; PASM->m_TyParList = $2;} + | '<' typars '>' { PASM->m_TyParList = $2; ResolveTyParList(PASM->m_TyParList); $$ = PASM->m_TyParList; } ; typarAttrib : '+' { $$ = gpCovariant; } @@ -504,7 +504,7 @@ conTyparAttribs : /* EMPTY */ { $$ = 0; } | conTyparAttrib conTyparAttribs { $$ = $1 | $2; } ; -typars : CONST_ conTyparAttribs typeSpec dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } +typars : CONST_ conTyparAttribs type dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } | typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} | typarAttribs dottedName typarsRest {$$ = new TyParList($1, NULL, $2, $3);} ; diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 274c8a0eb5f2c..7b88209ecf9f0 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1557,6 +1557,20 @@ void FixupTyPars(BinStr* pbstype) FixupTyPars((PCOR_SIGNATURE)(pbstype->ptr()),(ULONG)(pbstype->length())); } /**************************************************************************/ +void ResolveTyParList(TyParList* list) +{ + TyParList* cur = list; + while (cur != NULL) + { + if (cur->unresolvedType != NULL && cur->type == 0) + { + FixupTyPars(cur->unresolvedType); + cur->type = PASM->ResolveTypeSpec(cur->unresolvedType); + } + cur = cur->Next(); + } +} +/**************************************************************************/ static unsigned corCountArgs(BinStr* args) { unsigned __int8* ptr = args->ptr(); diff --git a/src/coreclr/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp index f71b6b44a3b67..e5775db054ee9 100644 --- a/src/coreclr/ilasm/grammar_before.cpp +++ b/src/coreclr/ilasm/grammar_before.cpp @@ -52,9 +52,10 @@ static void corEmitInt(BinStr* buff, unsigned data); static void AppendStringWithLength(BinStr* pbs, _In_ __nullterminated char* sz); static void AppendFieldToCustomBlob(BinStr* pBlob, _In_ BinStr* pField); static unsigned corCountArgs(BinStr* args); -extern void yyerror(_In_ __nullterminated const char*); -extern Instr* SetupInstr(unsigned short); -extern int yylex(); +void yyerror(_In_ __nullterminated const char*); +Instr* SetupInstr(unsigned short); +int yylex(); +void ResolveTyParList(TyParList* list); bool bParsingByteArray = FALSE; int iOpcodeLen = 0; int iCallConv = 0; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index aa3019f7f39d2..a2c4985dbf93e 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -1917,16 +1917,16 @@ static const yytype_int16 yypact[] = -1398, 142, -1398, 780, -1398, -1398, -1398, -1398, 1698, 526, 534, 1106, 540, 543, 559, 595, 607, 615, 627, 634, 645, 647, -1398, 656, 516, 120, 578, 583, 140, -1398, - 656, 656, 656, -1398, 3124, 656, 656, -1398, 652, 657, + 656, 656, 656, -1398, 3124, 656, 656, -1398, 652, 654, 656, 47, 3124, -1398, -1398, 597, 142, 469, -1398, -1398, - -1398, -1398, 3117, 662, -1398, -1398, -1398, -1398, -1398, -1398, + -1398, -1398, 3117, 659, -1398, -1398, -1398, -1398, -1398, -1398, 823, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -55, -1398, 2222, -1398, 3301, 668, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 674, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 245, -1398, 245, -1398, -1398, -1398, 245, - 655, -11, 2291, -1398, -1398, -1398, 667, -1398, -1398, 5, + 658, -11, 2291, -1398, -1398, -1398, 667, -1398, -1398, 5, -1398, -1398, -1398, -1398, 790, 173, -1398, -1398, 604, 245, 319, 248, 604, 1304, 1088, 2222, 404, 524, 2128, 681, 392, -1398, -1398, -1398, 691, 245, 245, -1398, 245, -1398, @@ -1985,8 +1985,8 @@ static const yytype_int16 yypact[] = 346, -1398, -1398, -1398, 1036, 140, 140, -1398, -1398, 1046, 1048, 1053, 1057, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 277, 71, -1398, -1398, -1398, - -1398, 640, -1398, 245, 1059, 1177, 2222, -1398, 2222, 351, - 656, -1398, -1398, 1158, -1398, -1398, 659, 656, -1398, -1398, + -1398, 640, -1398, 245, 1059, 1177, 3124, -1398, 2222, 351, + 656, -1398, -1398, 1158, -1398, -1398, 662, 656, -1398, -1398, 3124, 140, 245, 140, 245, 396, 3124, 535, 3347, 528, 804, -1398, 1986, -1398, 1009, 3165, 1061, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1054, 1056, -1398, @@ -2009,7 +2009,7 @@ static const yytype_int16 yypact[] = 245, 319, 245, 3315, 245, 223, 245, 171, 245, -1398, -1398, -1398, 2533, 1099, 1107, -1398, 1114, 1115, 1121, 1122, -1398, 1256, -1398, -1398, -1398, -1398, 1128, 1130, 245, -1398, - 656, 1131, 1136, -1398, 271, -1398, 351, 1304, -1398, 140, + 88, 1131, 1136, -1398, 271, -1398, 351, 1304, -1398, 140, 88, 1135, 1137, 2222, 1698, 1175, -1398, 1304, 1304, 1304, 1304, -1398, -1398, -1398, -1398, -1398, -1398, 1304, 1304, 1304, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 469, -1398, 245, @@ -2380,8 +2380,8 @@ static const yytype_int16 yytable[] = 509, 1143, 1181, 1183, 609, 610, 1182, 1184, 1193, 98, 1634, 1185, 510, 1670, 100, 1186, 101, 68, 69, 511, 70, 1274, 1275, 102, 1187, 544, 545, 546, 1188, 301, - 512, 302, 513, 1194, 1191, 303, 304, 526, 1138, -242, - 103, 988, 527, 207, 580, 474, 1210, 540, 1213, 1272, + 512, 302, 513, 1194, 1191, 303, 304, 526, 1138, 527, + 103, 988, -242, 1210, 540, 474, 207, 580, 1213, 1272, 1325, 1247, 1667, 574, 1326, 104, 1327, 1220, 1218, 575, 1328, 586, 195, 1224, 1329, 1216, 627, 1237, 1330, 1238, 1239, 1331, 1219, 207, 1207, 1332, 629, 1538, 196, 474, @@ -2763,8 +2763,8 @@ static const yytype_int16 yycheck[] = 295, 900, 295, 295, 32, 33, 299, 299, 930, 41, 1624, 295, 295, 1669, 46, 299, 48, 6, 7, 295, 9, 1048, 1049, 55, 295, 112, 113, 114, 299, 299, - 295, 301, 295, 932, 928, 305, 306, 295, 897, 290, - 72, 73, 295, 294, 299, 292, 976, 295, 978, 296, + 295, 301, 295, 932, 928, 305, 306, 295, 897, 295, + 72, 73, 290, 976, 295, 292, 294, 299, 978, 296, 295, 1004, 1666, 295, 299, 87, 295, 990, 983, 295, 299, 304, 290, 996, 295, 980, 295, 173, 299, 175, 176, 295, 987, 294, 973, 299, 295, 298, 306, 292, @@ -3175,7 +3175,7 @@ static const yytype_int16 yystos[] = 299, 295, 299, 295, 299, 295, 299, 295, 299, 105, 110, 321, 331, 414, 317, 302, 449, 449, 359, 446, 315, 296, 296, 296, 296, 296, 449, 317, 295, 354, - 454, 348, 349, 454, 293, 356, 316, 197, 322, 316, + 458, 348, 349, 454, 293, 356, 316, 197, 322, 316, 458, 317, 317, 293, 458, 386, 291, 170, 171, 172, 173, 291, 314, 321, 332, 374, 472, 173, 175, 176, 291, 314, 321, 332, 378, 472, 291, 313, 296, 295, @@ -4674,7 +4674,7 @@ yyparse (void) case 149: /* typarsClause: '<' typars '>' */ #line 484 "asmparse.y" - { (yyval.typarlist) = (yyvsp[-1].typarlist); PASM->m_TyParList = (yyvsp[-1].typarlist);} + { PASM->m_TyParList = (yyvsp[-1].typarlist); ResolveTyParList(PASM->m_TyParList); (yyval.typarlist) = PASM->m_TyParList; } #line 4679 "asmparse.cpp" break; @@ -4750,9 +4750,9 @@ yyparse (void) #line 4751 "asmparse.cpp" break; - case 162: /* typars: CONST_ conTyparAttribs typeSpec dottedName typarsRest */ + case 162: /* typars: CONST_ conTyparAttribs type dottedName typarsRest */ #line 507 "asmparse.y" - {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].token), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist)); } + {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].binstr), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist)); } #line 4757 "asmparse.cpp" break; diff --git a/src/coreclr/ilasm/typar.hpp b/src/coreclr/ilasm/typar.hpp index 7f0f95c88997d..00a98ad23fd16 100644 --- a/src/coreclr/ilasm/typar.hpp +++ b/src/coreclr/ilasm/typar.hpp @@ -16,7 +16,7 @@ class TyParDescr { m_pbsBounds = NULL; m_wzName = NULL; - m_dwType = 0; + m_tkType = 0; m_dwAttrs = 0; }; ~TyParDescr() @@ -25,10 +25,10 @@ class TyParDescr delete [] m_wzName; m_lstCA.RESET(true); }; - void Init(BinStr* bounds, DWORD type, LPCUTF8 name, DWORD attrs) + void Init(BinStr* bounds, mdToken type, LPCUTF8 name, DWORD attrs) { m_pbsBounds = bounds; - m_dwType = type; + m_tkType = type; ULONG cTemp = (ULONG)strlen(name)+1; WCHAR *pwzName; m_wzName = pwzName = new WCHAR[cTemp]; @@ -40,7 +40,7 @@ class TyParDescr m_dwAttrs = attrs; }; BinStr* Bounds() { return m_pbsBounds; }; - DWORD Type() { return m_dwType; }; + mdToken Type() { return m_tkType; }; LPCWSTR Name() { return m_wzName; }; DWORD Attrs() { return m_dwAttrs; }; mdToken Token() { return m_token; }; @@ -52,7 +52,7 @@ class TyParDescr private: BinStr* m_pbsBounds; - DWORD m_dwType; + mdToken m_tkType; LPCWSTR m_wzName; DWORD m_dwAttrs; mdToken m_token; @@ -65,17 +65,18 @@ class TyParList { { bound = (b == NULL) ? new BinStr() : b; bound->appendInt32(0); // zero terminator - attrs = a; type = 0; name = n; next = nx; + attrs = a; unresolvedType = NULL; type = 0; name = n; next = nx; }; - TyParList(DWORD a, DWORD t, BinStr* b, LPCUTF8 n, TyParList* nx = NULL) + TyParList(DWORD a, BinStr* t, BinStr* b, LPCUTF8 n, TyParList* nx = NULL) { bound = (b == NULL) ? new BinStr() : b; bound->appendInt32(0); // zero terminator - attrs = a; type = t; name = n; next = nx; + attrs = a; unresolvedType = t; type = 0; name = n; next = nx; }; ~TyParList() { - if( bound) delete bound; + if (bound) delete bound; + if (unresolvedType) delete unresolvedType; // To avoid excessive stack usage (especially in debug builds), we break the next chain // and delete as we traverse the link list @@ -143,6 +144,7 @@ class TyParList { attr[i] = tp->attrs; // to avoid deletion by destructor tp->bound = 0; + tp->unresolvedType = 0; i++; tp = tp->next; } @@ -174,6 +176,7 @@ class TyParList { pTPD[i].Init(tp->bound,tp->type,tp->name,tp->attrs); // to avoid deletion by destructor tp->bound = 0; + tp->unresolvedType = 0; i++; tp = tp->next; } @@ -186,10 +189,12 @@ class TyParList { BinStr* Bound() { return bound; }; private: BinStr* bound; - DWORD type; + BinStr* unresolvedType; + mdToken type; LPCUTF8 name; TyParList* next; DWORD attrs; + friend void ResolveTyParList(TyParList* list); }; typedef TyParList* pTyParList; From 7dc3c458b65924fd368e53e389c75cd852caca9b Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 4 Aug 2023 01:03:14 +0900 Subject: [PATCH 71/80] Use byacc for ilasm parser generator --- src/coreclr/ilasm/asmparse.y | 10 +- src/coreclr/ilasm/grammar_after.cpp | 6 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 19856 +++++++++++++--------- 3 files changed, 11492 insertions(+), 8380 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 9d62feec39126..8b4aa7c7a6b98 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -47,8 +47,8 @@ %token DOTTEDNAME /* System.Object */ %token QSTRING /* "Hello World\n" */ %token SQSTRING /* 'Hello World\n' */ -%token INT32_T /* 3425 0x34FA 0352 */ -%token INT64_T /* 342534523534534 0x34FA434644554 */ +%token INT32 /* 3425 0x34FA 0352 */ +%token INT64 /* 342534523534534 0x34FA434644554 */ %token FLOAT64 /* -334234 24E-34 */ %token HEXBYTE /* 05 1A FA */ %token TYPEDEF_T @@ -261,11 +261,11 @@ dottedName : id { $$ = $1; } | dottedName '.' dottedName { $$ = newStringWDel($1, '.', $3); } ; -int32 : INT32_T { $$ = $1; } +int32 : INT32 { $$ = $1; } ; -int64 : INT64_T { $$ = $1; } - | INT32_T { $$ = neg ? new __int64($1) : new __int64((unsigned)$1); } +int64 : INT64 { $$ = $1; } + | INT32 { $$ = neg ? new __int64($1) : new __int64((unsigned)$1); } ; float64 : FLOAT64 { $$ = $1; } diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 7b88209ecf9f0..2e62efeb1feda 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1209,13 +1209,13 @@ int yylex() if ((i64 & mask64) && (i64 != largestNegVal32)) { yylval.int64 = new __int64(i64); - tok = INT64_T; + tok = INT64; if (neg) *yylval.int64 = -*yylval.int64; } else { yylval.int32 = (__int32)i64; - tok = INT32_T; + tok = INT32; if(neg) yylval.int32 = -yylval.int32; } } @@ -1280,7 +1280,7 @@ int yylex() } dbprintf((" Line %d token %d (%c) val = %s\n", PENV->curLine, tok, (tok < 128 && isprint(tok)) ? tok : ' ', - (tok > 255 && tok != INT32_T && tok != INT64_T && tok!= FLOAT64) ? yylval.string : "")); + (tok > 255 && tok != INT32 && tok != INT64 && tok!= FLOAT64) ? yylval.string : "")); PENV->curPos = curPos; PENV->curTok = curTok; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index a2c4985dbf93e..8d4789bc64411 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -1,9368 +1,12480 @@ -/* A Bison parser, made by GNU Bison 3.8.2. */ +/* original parser id follows */ +/* yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93" */ +/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */ + +#define YYBYACC 1 +#define YYMAJOR 2 +#define YYMINOR 0 +#define YYPATCH 20220114 + +#define YYEMPTY (-1) +#define yyclearin (yychar = YYEMPTY) +#define yyerrok (yyerrflag = 0) +#define YYRECOVERING() (yyerrflag != 0) +#define YYENOMEM (-2) +#define YYEOF 0 +#undef YYBTYACC +#define YYBTYACC 0 +#define YYDEBUGSTR YYPREFIX "debug" +#define YYPREFIX "yy" -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, - Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output, and Bison version. */ -#define YYBISON 30802 - -/* Bison version string. */ -#define YYBISON_VERSION "3.8.2" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ #define YYPURE 0 -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* First part of user prologue. */ #line 1 "asmparse.y" - - -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -// -// File asmparse.y -// -#include "ilasmpch.h" - -#include "grammar_before.cpp" - - -#line 85 "asmparse.cpp" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - - -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; + + +/* Licensed to the .NET Foundation under one or more agreements. */ +/* The .NET Foundation licenses this file to you under the MIT license. */ + +/* */ +/* File asmparse.y */ +/* */ +#include "ilasmpch.h" + +#include "grammar_before.cpp" + +#ifdef YYSTYPE +#undef YYSTYPE_IS_DECLARED +#define YYSTYPE_IS_DECLARED 1 #endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - ERROR_ = 258, /* ERROR_ */ - BAD_COMMENT_ = 259, /* BAD_COMMENT_ */ - BAD_LITERAL_ = 260, /* BAD_LITERAL_ */ - ID = 261, /* ID */ - DOTTEDNAME = 262, /* DOTTEDNAME */ - QSTRING = 263, /* QSTRING */ - SQSTRING = 264, /* SQSTRING */ - INT32_T = 265, /* INT32_T */ - INT64_T = 266, /* INT64_T */ - FLOAT64 = 267, /* FLOAT64 */ - HEXBYTE = 268, /* HEXBYTE */ - TYPEDEF_T = 269, /* TYPEDEF_T */ - TYPEDEF_M = 270, /* TYPEDEF_M */ - TYPEDEF_F = 271, /* TYPEDEF_F */ - TYPEDEF_TS = 272, /* TYPEDEF_TS */ - TYPEDEF_MR = 273, /* TYPEDEF_MR */ - TYPEDEF_CA = 274, /* TYPEDEF_CA */ - DCOLON = 275, /* DCOLON */ - ELLIPSIS = 276, /* ELLIPSIS */ - VOID_ = 277, /* VOID_ */ - BOOL_ = 278, /* BOOL_ */ - CHAR_ = 279, /* CHAR_ */ - UNSIGNED_ = 280, /* UNSIGNED_ */ - INT_ = 281, /* INT_ */ - INT8_ = 282, /* INT8_ */ - INT16_ = 283, /* INT16_ */ - INT32_ = 284, /* INT32_ */ - INT64_ = 285, /* INT64_ */ - FLOAT_ = 286, /* FLOAT_ */ - FLOAT32_ = 287, /* FLOAT32_ */ - FLOAT64_ = 288, /* FLOAT64_ */ - BYTEARRAY_ = 289, /* BYTEARRAY_ */ - UINT_ = 290, /* UINT_ */ - UINT8_ = 291, /* UINT8_ */ - UINT16_ = 292, /* UINT16_ */ - UINT32_ = 293, /* UINT32_ */ - UINT64_ = 294, /* UINT64_ */ - FLAGS_ = 295, /* FLAGS_ */ - CALLCONV_ = 296, /* CALLCONV_ */ - MDTOKEN_ = 297, /* MDTOKEN_ */ - OBJECT_ = 298, /* OBJECT_ */ - STRING_ = 299, /* STRING_ */ - NULLREF_ = 300, /* NULLREF_ */ - DEFAULT_ = 301, /* DEFAULT_ */ - CDECL_ = 302, /* CDECL_ */ - VARARG_ = 303, /* VARARG_ */ - STDCALL_ = 304, /* STDCALL_ */ - THISCALL_ = 305, /* THISCALL_ */ - FASTCALL_ = 306, /* FASTCALL_ */ - CLASS_ = 307, /* CLASS_ */ - BYREFLIKE_ = 308, /* BYREFLIKE_ */ - TYPEDREF_ = 309, /* TYPEDREF_ */ - UNMANAGED_ = 310, /* UNMANAGED_ */ - FINALLY_ = 311, /* FINALLY_ */ - HANDLER_ = 312, /* HANDLER_ */ - CATCH_ = 313, /* CATCH_ */ - FILTER_ = 314, /* FILTER_ */ - FAULT_ = 315, /* FAULT_ */ - EXTENDS_ = 316, /* EXTENDS_ */ - IMPLEMENTS_ = 317, /* IMPLEMENTS_ */ - TO_ = 318, /* TO_ */ - AT_ = 319, /* AT_ */ - TLS_ = 320, /* TLS_ */ - TRUE_ = 321, /* TRUE_ */ - FALSE_ = 322, /* FALSE_ */ - _INTERFACEIMPL = 323, /* _INTERFACEIMPL */ - VALUE_ = 324, /* VALUE_ */ - VALUETYPE_ = 325, /* VALUETYPE_ */ - NATIVE_ = 326, /* NATIVE_ */ - INSTANCE_ = 327, /* INSTANCE_ */ - SPECIALNAME_ = 328, /* SPECIALNAME_ */ - FORWARDER_ = 329, /* FORWARDER_ */ - STATIC_ = 330, /* STATIC_ */ - PUBLIC_ = 331, /* PUBLIC_ */ - PRIVATE_ = 332, /* PRIVATE_ */ - FAMILY_ = 333, /* FAMILY_ */ - FINAL_ = 334, /* FINAL_ */ - SYNCHRONIZED_ = 335, /* SYNCHRONIZED_ */ - INTERFACE_ = 336, /* INTERFACE_ */ - SEALED_ = 337, /* SEALED_ */ - NESTED_ = 338, /* NESTED_ */ - ABSTRACT_ = 339, /* ABSTRACT_ */ - AUTO_ = 340, /* AUTO_ */ - SEQUENTIAL_ = 341, /* SEQUENTIAL_ */ - EXPLICIT_ = 342, /* EXPLICIT_ */ - ANSI_ = 343, /* ANSI_ */ - UNICODE_ = 344, /* UNICODE_ */ - AUTOCHAR_ = 345, /* AUTOCHAR_ */ - IMPORT_ = 346, /* IMPORT_ */ - ENUM_ = 347, /* ENUM_ */ - VIRTUAL_ = 348, /* VIRTUAL_ */ - NOINLINING_ = 349, /* NOINLINING_ */ - AGGRESSIVEINLINING_ = 350, /* AGGRESSIVEINLINING_ */ - NOOPTIMIZATION_ = 351, /* NOOPTIMIZATION_ */ - AGGRESSIVEOPTIMIZATION_ = 352, /* AGGRESSIVEOPTIMIZATION_ */ - UNMANAGEDEXP_ = 353, /* UNMANAGEDEXP_ */ - BEFOREFIELDINIT_ = 354, /* BEFOREFIELDINIT_ */ - STRICT_ = 355, /* STRICT_ */ - RETARGETABLE_ = 356, /* RETARGETABLE_ */ - WINDOWSRUNTIME_ = 357, /* WINDOWSRUNTIME_ */ - NOPLATFORM_ = 358, /* NOPLATFORM_ */ - METHOD_ = 359, /* METHOD_ */ - FIELD_ = 360, /* FIELD_ */ - PINNED_ = 361, /* PINNED_ */ - MODREQ_ = 362, /* MODREQ_ */ - MODOPT_ = 363, /* MODOPT_ */ - SERIALIZABLE_ = 364, /* SERIALIZABLE_ */ - PROPERTY_ = 365, /* PROPERTY_ */ - TYPE_ = 366, /* TYPE_ */ - ASSEMBLY_ = 367, /* ASSEMBLY_ */ - FAMANDASSEM_ = 368, /* FAMANDASSEM_ */ - FAMORASSEM_ = 369, /* FAMORASSEM_ */ - PRIVATESCOPE_ = 370, /* PRIVATESCOPE_ */ - HIDEBYSIG_ = 371, /* HIDEBYSIG_ */ - NEWSLOT_ = 372, /* NEWSLOT_ */ - RTSPECIALNAME_ = 373, /* RTSPECIALNAME_ */ - PINVOKEIMPL_ = 374, /* PINVOKEIMPL_ */ - _CTOR = 375, /* _CTOR */ - _CCTOR = 376, /* _CCTOR */ - LITERAL_ = 377, /* LITERAL_ */ - NOTSERIALIZED_ = 378, /* NOTSERIALIZED_ */ - INITONLY_ = 379, /* INITONLY_ */ - REQSECOBJ_ = 380, /* REQSECOBJ_ */ - CIL_ = 381, /* CIL_ */ - OPTIL_ = 382, /* OPTIL_ */ - MANAGED_ = 383, /* MANAGED_ */ - FORWARDREF_ = 384, /* FORWARDREF_ */ - PRESERVESIG_ = 385, /* PRESERVESIG_ */ - RUNTIME_ = 386, /* RUNTIME_ */ - INTERNALCALL_ = 387, /* INTERNALCALL_ */ - _IMPORT = 388, /* _IMPORT */ - NOMANGLE_ = 389, /* NOMANGLE_ */ - LASTERR_ = 390, /* LASTERR_ */ - WINAPI_ = 391, /* WINAPI_ */ - AS_ = 392, /* AS_ */ - BESTFIT_ = 393, /* BESTFIT_ */ - ON_ = 394, /* ON_ */ - OFF_ = 395, /* OFF_ */ - CHARMAPERROR_ = 396, /* CHARMAPERROR_ */ - INSTR_NONE = 397, /* INSTR_NONE */ - INSTR_VAR = 398, /* INSTR_VAR */ - INSTR_I = 399, /* INSTR_I */ - INSTR_I8 = 400, /* INSTR_I8 */ - INSTR_R = 401, /* INSTR_R */ - INSTR_BRTARGET = 402, /* INSTR_BRTARGET */ - INSTR_METHOD = 403, /* INSTR_METHOD */ - INSTR_FIELD = 404, /* INSTR_FIELD */ - INSTR_TYPE = 405, /* INSTR_TYPE */ - INSTR_STRING = 406, /* INSTR_STRING */ - INSTR_SIG = 407, /* INSTR_SIG */ - INSTR_TOK = 408, /* INSTR_TOK */ - INSTR_SWITCH = 409, /* INSTR_SWITCH */ - _CLASS = 410, /* _CLASS */ - _NAMESPACE = 411, /* _NAMESPACE */ - _METHOD = 412, /* _METHOD */ - _FIELD = 413, /* _FIELD */ - _DATA = 414, /* _DATA */ - _THIS = 415, /* _THIS */ - _BASE = 416, /* _BASE */ - _NESTER = 417, /* _NESTER */ - _EMITBYTE = 418, /* _EMITBYTE */ - _TRY = 419, /* _TRY */ - _MAXSTACK = 420, /* _MAXSTACK */ - _LOCALS = 421, /* _LOCALS */ - _ENTRYPOINT = 422, /* _ENTRYPOINT */ - _ZEROINIT = 423, /* _ZEROINIT */ - _EVENT = 424, /* _EVENT */ - _ADDON = 425, /* _ADDON */ - _REMOVEON = 426, /* _REMOVEON */ - _FIRE = 427, /* _FIRE */ - _OTHER = 428, /* _OTHER */ - _PROPERTY = 429, /* _PROPERTY */ - _SET = 430, /* _SET */ - _GET = 431, /* _GET */ - _PERMISSION = 432, /* _PERMISSION */ - _PERMISSIONSET = 433, /* _PERMISSIONSET */ - REQUEST_ = 434, /* REQUEST_ */ - DEMAND_ = 435, /* DEMAND_ */ - ASSERT_ = 436, /* ASSERT_ */ - DENY_ = 437, /* DENY_ */ - PERMITONLY_ = 438, /* PERMITONLY_ */ - LINKCHECK_ = 439, /* LINKCHECK_ */ - INHERITCHECK_ = 440, /* INHERITCHECK_ */ - REQMIN_ = 441, /* REQMIN_ */ - REQOPT_ = 442, /* REQOPT_ */ - REQREFUSE_ = 443, /* REQREFUSE_ */ - PREJITGRANT_ = 444, /* PREJITGRANT_ */ - PREJITDENY_ = 445, /* PREJITDENY_ */ - NONCASDEMAND_ = 446, /* NONCASDEMAND_ */ - NONCASLINKDEMAND_ = 447, /* NONCASLINKDEMAND_ */ - NONCASINHERITANCE_ = 448, /* NONCASINHERITANCE_ */ - _LINE = 449, /* _LINE */ - P_LINE = 450, /* P_LINE */ - _LANGUAGE = 451, /* _LANGUAGE */ - _CUSTOM = 452, /* _CUSTOM */ - INIT_ = 453, /* INIT_ */ - _SIZE = 454, /* _SIZE */ - _PACK = 455, /* _PACK */ - _VTABLE = 456, /* _VTABLE */ - _VTFIXUP = 457, /* _VTFIXUP */ - FROMUNMANAGED_ = 458, /* FROMUNMANAGED_ */ - CALLMOSTDERIVED_ = 459, /* CALLMOSTDERIVED_ */ - _VTENTRY = 460, /* _VTENTRY */ - RETAINAPPDOMAIN_ = 461, /* RETAINAPPDOMAIN_ */ - _FILE = 462, /* _FILE */ - NOMETADATA_ = 463, /* NOMETADATA_ */ - _HASH = 464, /* _HASH */ - _ASSEMBLY = 465, /* _ASSEMBLY */ - _PUBLICKEY = 466, /* _PUBLICKEY */ - _PUBLICKEYTOKEN = 467, /* _PUBLICKEYTOKEN */ - ALGORITHM_ = 468, /* ALGORITHM_ */ - _VER = 469, /* _VER */ - _LOCALE = 470, /* _LOCALE */ - EXTERN_ = 471, /* EXTERN_ */ - _MRESOURCE = 472, /* _MRESOURCE */ - _MODULE = 473, /* _MODULE */ - _EXPORT = 474, /* _EXPORT */ - LEGACY_ = 475, /* LEGACY_ */ - LIBRARY_ = 476, /* LIBRARY_ */ - X86_ = 477, /* X86_ */ - AMD64_ = 478, /* AMD64_ */ - ARM_ = 479, /* ARM_ */ - ARM64_ = 480, /* ARM64_ */ - MARSHAL_ = 481, /* MARSHAL_ */ - CUSTOM_ = 482, /* CUSTOM_ */ - SYSSTRING_ = 483, /* SYSSTRING_ */ - FIXED_ = 484, /* FIXED_ */ - VARIANT_ = 485, /* VARIANT_ */ - CURRENCY_ = 486, /* CURRENCY_ */ - SYSCHAR_ = 487, /* SYSCHAR_ */ - DECIMAL_ = 488, /* DECIMAL_ */ - DATE_ = 489, /* DATE_ */ - BSTR_ = 490, /* BSTR_ */ - TBSTR_ = 491, /* TBSTR_ */ - LPSTR_ = 492, /* LPSTR_ */ - LPWSTR_ = 493, /* LPWSTR_ */ - LPTSTR_ = 494, /* LPTSTR_ */ - OBJECTREF_ = 495, /* OBJECTREF_ */ - IUNKNOWN_ = 496, /* IUNKNOWN_ */ - IDISPATCH_ = 497, /* IDISPATCH_ */ - STRUCT_ = 498, /* STRUCT_ */ - SAFEARRAY_ = 499, /* SAFEARRAY_ */ - BYVALSTR_ = 500, /* BYVALSTR_ */ - LPVOID_ = 501, /* LPVOID_ */ - ANY_ = 502, /* ANY_ */ - ARRAY_ = 503, /* ARRAY_ */ - LPSTRUCT_ = 504, /* LPSTRUCT_ */ - IIDPARAM_ = 505, /* IIDPARAM_ */ - IN_ = 506, /* IN_ */ - OUT_ = 507, /* OUT_ */ - OPT_ = 508, /* OPT_ */ - _PARAM = 509, /* _PARAM */ - _OVERRIDE = 510, /* _OVERRIDE */ - WITH_ = 511, /* WITH_ */ - NULL_ = 512, /* NULL_ */ - HRESULT_ = 513, /* HRESULT_ */ - CARRAY_ = 514, /* CARRAY_ */ - USERDEFINED_ = 515, /* USERDEFINED_ */ - RECORD_ = 516, /* RECORD_ */ - FILETIME_ = 517, /* FILETIME_ */ - BLOB_ = 518, /* BLOB_ */ - STREAM_ = 519, /* STREAM_ */ - STORAGE_ = 520, /* STORAGE_ */ - STREAMED_OBJECT_ = 521, /* STREAMED_OBJECT_ */ - STORED_OBJECT_ = 522, /* STORED_OBJECT_ */ - BLOB_OBJECT_ = 523, /* BLOB_OBJECT_ */ - CF_ = 524, /* CF_ */ - CLSID_ = 525, /* CLSID_ */ - VECTOR_ = 526, /* VECTOR_ */ - _SUBSYSTEM = 527, /* _SUBSYSTEM */ - _CORFLAGS = 528, /* _CORFLAGS */ - ALIGNMENT_ = 529, /* ALIGNMENT_ */ - _IMAGEBASE = 530, /* _IMAGEBASE */ - _STACKRESERVE = 531, /* _STACKRESERVE */ - _TYPEDEF = 532, /* _TYPEDEF */ - _TEMPLATE = 533, /* _TEMPLATE */ - _TYPELIST = 534, /* _TYPELIST */ - _MSCORLIB = 535, /* _MSCORLIB */ - P_DEFINE = 536, /* P_DEFINE */ - P_UNDEF = 537, /* P_UNDEF */ - P_IFDEF = 538, /* P_IFDEF */ - P_IFNDEF = 539, /* P_IFNDEF */ - P_ELSE = 540, /* P_ELSE */ - P_ENDIF = 541, /* P_ENDIF */ - P_INCLUDE = 542, /* P_INCLUDE */ - CONSTRAINT_ = 543, /* CONSTRAINT_ */ - CONST_ = 544 /* CONST_ */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEMPTY -2 -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define ERROR_ 258 -#define BAD_COMMENT_ 259 -#define BAD_LITERAL_ 260 -#define ID 261 -#define DOTTEDNAME 262 -#define QSTRING 263 -#define SQSTRING 264 -#define INT32_T 265 -#define INT64_T 266 -#define FLOAT64 267 -#define HEXBYTE 268 -#define TYPEDEF_T 269 -#define TYPEDEF_M 270 -#define TYPEDEF_F 271 -#define TYPEDEF_TS 272 -#define TYPEDEF_MR 273 -#define TYPEDEF_CA 274 -#define DCOLON 275 -#define ELLIPSIS 276 -#define VOID_ 277 -#define BOOL_ 278 -#define CHAR_ 279 -#define UNSIGNED_ 280 -#define INT_ 281 -#define INT8_ 282 -#define INT16_ 283 -#define INT32_ 284 -#define INT64_ 285 -#define FLOAT_ 286 -#define FLOAT32_ 287 -#define FLOAT64_ 288 -#define BYTEARRAY_ 289 -#define UINT_ 290 -#define UINT8_ 291 -#define UINT16_ 292 -#define UINT32_ 293 -#define UINT64_ 294 -#define FLAGS_ 295 -#define CALLCONV_ 296 -#define MDTOKEN_ 297 -#define OBJECT_ 298 -#define STRING_ 299 -#define NULLREF_ 300 -#define DEFAULT_ 301 -#define CDECL_ 302 -#define VARARG_ 303 -#define STDCALL_ 304 -#define THISCALL_ 305 -#define FASTCALL_ 306 -#define CLASS_ 307 -#define BYREFLIKE_ 308 -#define TYPEDREF_ 309 -#define UNMANAGED_ 310 -#define FINALLY_ 311 -#define HANDLER_ 312 -#define CATCH_ 313 -#define FILTER_ 314 -#define FAULT_ 315 -#define EXTENDS_ 316 -#define IMPLEMENTS_ 317 -#define TO_ 318 -#define AT_ 319 -#define TLS_ 320 -#define TRUE_ 321 -#define FALSE_ 322 -#define _INTERFACEIMPL 323 -#define VALUE_ 324 -#define VALUETYPE_ 325 -#define NATIVE_ 326 -#define INSTANCE_ 327 -#define SPECIALNAME_ 328 -#define FORWARDER_ 329 -#define STATIC_ 330 -#define PUBLIC_ 331 -#define PRIVATE_ 332 -#define FAMILY_ 333 -#define FINAL_ 334 -#define SYNCHRONIZED_ 335 -#define INTERFACE_ 336 -#define SEALED_ 337 -#define NESTED_ 338 -#define ABSTRACT_ 339 -#define AUTO_ 340 -#define SEQUENTIAL_ 341 -#define EXPLICIT_ 342 -#define ANSI_ 343 -#define UNICODE_ 344 -#define AUTOCHAR_ 345 -#define IMPORT_ 346 -#define ENUM_ 347 -#define VIRTUAL_ 348 -#define NOINLINING_ 349 -#define AGGRESSIVEINLINING_ 350 -#define NOOPTIMIZATION_ 351 -#define AGGRESSIVEOPTIMIZATION_ 352 -#define UNMANAGEDEXP_ 353 -#define BEFOREFIELDINIT_ 354 -#define STRICT_ 355 -#define RETARGETABLE_ 356 -#define WINDOWSRUNTIME_ 357 -#define NOPLATFORM_ 358 -#define METHOD_ 359 -#define FIELD_ 360 -#define PINNED_ 361 -#define MODREQ_ 362 -#define MODOPT_ 363 -#define SERIALIZABLE_ 364 -#define PROPERTY_ 365 -#define TYPE_ 366 -#define ASSEMBLY_ 367 -#define FAMANDASSEM_ 368 -#define FAMORASSEM_ 369 -#define PRIVATESCOPE_ 370 -#define HIDEBYSIG_ 371 -#define NEWSLOT_ 372 -#define RTSPECIALNAME_ 373 -#define PINVOKEIMPL_ 374 -#define _CTOR 375 -#define _CCTOR 376 -#define LITERAL_ 377 -#define NOTSERIALIZED_ 378 -#define INITONLY_ 379 -#define REQSECOBJ_ 380 -#define CIL_ 381 -#define OPTIL_ 382 -#define MANAGED_ 383 -#define FORWARDREF_ 384 -#define PRESERVESIG_ 385 -#define RUNTIME_ 386 -#define INTERNALCALL_ 387 -#define _IMPORT 388 -#define NOMANGLE_ 389 -#define LASTERR_ 390 -#define WINAPI_ 391 -#define AS_ 392 -#define BESTFIT_ 393 -#define ON_ 394 -#define OFF_ 395 -#define CHARMAPERROR_ 396 -#define INSTR_NONE 397 -#define INSTR_VAR 398 -#define INSTR_I 399 -#define INSTR_I8 400 -#define INSTR_R 401 -#define INSTR_BRTARGET 402 -#define INSTR_METHOD 403 -#define INSTR_FIELD 404 -#define INSTR_TYPE 405 -#define INSTR_STRING 406 -#define INSTR_SIG 407 -#define INSTR_TOK 408 -#define INSTR_SWITCH 409 -#define _CLASS 410 -#define _NAMESPACE 411 -#define _METHOD 412 -#define _FIELD 413 -#define _DATA 414 -#define _THIS 415 -#define _BASE 416 -#define _NESTER 417 -#define _EMITBYTE 418 -#define _TRY 419 -#define _MAXSTACK 420 -#define _LOCALS 421 -#define _ENTRYPOINT 422 -#define _ZEROINIT 423 -#define _EVENT 424 -#define _ADDON 425 -#define _REMOVEON 426 -#define _FIRE 427 -#define _OTHER 428 -#define _PROPERTY 429 -#define _SET 430 -#define _GET 431 -#define _PERMISSION 432 -#define _PERMISSIONSET 433 -#define REQUEST_ 434 -#define DEMAND_ 435 -#define ASSERT_ 436 -#define DENY_ 437 -#define PERMITONLY_ 438 -#define LINKCHECK_ 439 -#define INHERITCHECK_ 440 -#define REQMIN_ 441 -#define REQOPT_ 442 -#define REQREFUSE_ 443 -#define PREJITGRANT_ 444 -#define PREJITDENY_ 445 -#define NONCASDEMAND_ 446 -#define NONCASLINKDEMAND_ 447 -#define NONCASINHERITANCE_ 448 -#define _LINE 449 -#define P_LINE 450 -#define _LANGUAGE 451 -#define _CUSTOM 452 -#define INIT_ 453 -#define _SIZE 454 -#define _PACK 455 -#define _VTABLE 456 -#define _VTFIXUP 457 -#define FROMUNMANAGED_ 458 -#define CALLMOSTDERIVED_ 459 -#define _VTENTRY 460 -#define RETAINAPPDOMAIN_ 461 -#define _FILE 462 -#define NOMETADATA_ 463 -#define _HASH 464 -#define _ASSEMBLY 465 -#define _PUBLICKEY 466 -#define _PUBLICKEYTOKEN 467 -#define ALGORITHM_ 468 -#define _VER 469 -#define _LOCALE 470 -#define EXTERN_ 471 -#define _MRESOURCE 472 -#define _MODULE 473 -#define _EXPORT 474 -#define LEGACY_ 475 -#define LIBRARY_ 476 -#define X86_ 477 -#define AMD64_ 478 -#define ARM_ 479 -#define ARM64_ 480 -#define MARSHAL_ 481 -#define CUSTOM_ 482 -#define SYSSTRING_ 483 -#define FIXED_ 484 -#define VARIANT_ 485 -#define CURRENCY_ 486 -#define SYSCHAR_ 487 -#define DECIMAL_ 488 -#define DATE_ 489 -#define BSTR_ 490 -#define TBSTR_ 491 -#define LPSTR_ 492 -#define LPWSTR_ 493 -#define LPTSTR_ 494 -#define OBJECTREF_ 495 -#define IUNKNOWN_ 496 -#define IDISPATCH_ 497 -#define STRUCT_ 498 -#define SAFEARRAY_ 499 -#define BYVALSTR_ 500 -#define LPVOID_ 501 -#define ANY_ 502 -#define ARRAY_ 503 -#define LPSTRUCT_ 504 -#define IIDPARAM_ 505 -#define IN_ 506 -#define OUT_ 507 -#define OPT_ 508 -#define _PARAM 509 -#define _OVERRIDE 510 -#define WITH_ 511 -#define NULL_ 512 -#define HRESULT_ 513 -#define CARRAY_ 514 -#define USERDEFINED_ 515 -#define RECORD_ 516 -#define FILETIME_ 517 -#define BLOB_ 518 -#define STREAM_ 519 -#define STORAGE_ 520 -#define STREAMED_OBJECT_ 521 -#define STORED_OBJECT_ 522 -#define BLOB_OBJECT_ 523 -#define CF_ 524 -#define CLSID_ 525 -#define VECTOR_ 526 -#define _SUBSYSTEM 527 -#define _CORFLAGS 528 -#define ALIGNMENT_ 529 -#define _IMAGEBASE 530 -#define _STACKRESERVE 531 -#define _TYPEDEF 532 -#define _TEMPLATE 533 -#define _TYPELIST 534 -#define _MSCORLIB 535 -#define P_DEFINE 536 -#define P_UNDEF 537 -#define P_IFDEF 538 -#define P_IFNDEF 539 -#define P_ELSE 540 -#define P_ENDIF 541 -#define P_INCLUDE 542 -#define CONSTRAINT_ 543 -#define CONST_ 544 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ +#ifndef YYSTYPE_IS_DECLARED +#define YYSTYPE_IS_DECLARED 1 #line 15 "asmparse.y" - - CorRegTypeAttr classAttr; - CorMethodAttr methAttr; - CorFieldAttr fieldAttr; - CorMethodImpl implAttr; - CorEventAttr eventAttr; - CorPropertyAttr propAttr; - CorPinvokeMap pinvAttr; - CorDeclSecurity secAct; - CorFileFlags fileAttr; - CorAssemblyFlags asmAttr; - CorAssemblyFlags asmRefAttr; - CorTypeAttr exptAttr; - CorManifestResourceFlags manresAttr; - double* float64; - __int64* int64; - __int32 int32; - char* string; - BinStr* binstr; - Labels* labels; - Instr* instr; // instruction opcode - NVPair* pair; - pTyParList typarlist; - mdToken token; - TypeDefDescr* tdd; - CustomDescr* cad; - unsigned short opcode; - -#line 742 "asmparse.cpp" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - - -int yyparse (void); - - - -/* Symbol kind. */ -enum yysymbol_kind_t -{ - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_ERROR_ = 3, /* ERROR_ */ - YYSYMBOL_BAD_COMMENT_ = 4, /* BAD_COMMENT_ */ - YYSYMBOL_BAD_LITERAL_ = 5, /* BAD_LITERAL_ */ - YYSYMBOL_ID = 6, /* ID */ - YYSYMBOL_DOTTEDNAME = 7, /* DOTTEDNAME */ - YYSYMBOL_QSTRING = 8, /* QSTRING */ - YYSYMBOL_SQSTRING = 9, /* SQSTRING */ - YYSYMBOL_INT32_T = 10, /* INT32_T */ - YYSYMBOL_INT64_T = 11, /* INT64_T */ - YYSYMBOL_FLOAT64 = 12, /* FLOAT64 */ - YYSYMBOL_HEXBYTE = 13, /* HEXBYTE */ - YYSYMBOL_TYPEDEF_T = 14, /* TYPEDEF_T */ - YYSYMBOL_TYPEDEF_M = 15, /* TYPEDEF_M */ - YYSYMBOL_TYPEDEF_F = 16, /* TYPEDEF_F */ - YYSYMBOL_TYPEDEF_TS = 17, /* TYPEDEF_TS */ - YYSYMBOL_TYPEDEF_MR = 18, /* TYPEDEF_MR */ - YYSYMBOL_TYPEDEF_CA = 19, /* TYPEDEF_CA */ - YYSYMBOL_DCOLON = 20, /* DCOLON */ - YYSYMBOL_ELLIPSIS = 21, /* ELLIPSIS */ - YYSYMBOL_VOID_ = 22, /* VOID_ */ - YYSYMBOL_BOOL_ = 23, /* BOOL_ */ - YYSYMBOL_CHAR_ = 24, /* CHAR_ */ - YYSYMBOL_UNSIGNED_ = 25, /* UNSIGNED_ */ - YYSYMBOL_INT_ = 26, /* INT_ */ - YYSYMBOL_INT8_ = 27, /* INT8_ */ - YYSYMBOL_INT16_ = 28, /* INT16_ */ - YYSYMBOL_INT32_ = 29, /* INT32_ */ - YYSYMBOL_INT64_ = 30, /* INT64_ */ - YYSYMBOL_FLOAT_ = 31, /* FLOAT_ */ - YYSYMBOL_FLOAT32_ = 32, /* FLOAT32_ */ - YYSYMBOL_FLOAT64_ = 33, /* FLOAT64_ */ - YYSYMBOL_BYTEARRAY_ = 34, /* BYTEARRAY_ */ - YYSYMBOL_UINT_ = 35, /* UINT_ */ - YYSYMBOL_UINT8_ = 36, /* UINT8_ */ - YYSYMBOL_UINT16_ = 37, /* UINT16_ */ - YYSYMBOL_UINT32_ = 38, /* UINT32_ */ - YYSYMBOL_UINT64_ = 39, /* UINT64_ */ - YYSYMBOL_FLAGS_ = 40, /* FLAGS_ */ - YYSYMBOL_CALLCONV_ = 41, /* CALLCONV_ */ - YYSYMBOL_MDTOKEN_ = 42, /* MDTOKEN_ */ - YYSYMBOL_OBJECT_ = 43, /* OBJECT_ */ - YYSYMBOL_STRING_ = 44, /* STRING_ */ - YYSYMBOL_NULLREF_ = 45, /* NULLREF_ */ - YYSYMBOL_DEFAULT_ = 46, /* DEFAULT_ */ - YYSYMBOL_CDECL_ = 47, /* CDECL_ */ - YYSYMBOL_VARARG_ = 48, /* VARARG_ */ - YYSYMBOL_STDCALL_ = 49, /* STDCALL_ */ - YYSYMBOL_THISCALL_ = 50, /* THISCALL_ */ - YYSYMBOL_FASTCALL_ = 51, /* FASTCALL_ */ - YYSYMBOL_CLASS_ = 52, /* CLASS_ */ - YYSYMBOL_BYREFLIKE_ = 53, /* BYREFLIKE_ */ - YYSYMBOL_TYPEDREF_ = 54, /* TYPEDREF_ */ - YYSYMBOL_UNMANAGED_ = 55, /* UNMANAGED_ */ - YYSYMBOL_FINALLY_ = 56, /* FINALLY_ */ - YYSYMBOL_HANDLER_ = 57, /* HANDLER_ */ - YYSYMBOL_CATCH_ = 58, /* CATCH_ */ - YYSYMBOL_FILTER_ = 59, /* FILTER_ */ - YYSYMBOL_FAULT_ = 60, /* FAULT_ */ - YYSYMBOL_EXTENDS_ = 61, /* EXTENDS_ */ - YYSYMBOL_IMPLEMENTS_ = 62, /* IMPLEMENTS_ */ - YYSYMBOL_TO_ = 63, /* TO_ */ - YYSYMBOL_AT_ = 64, /* AT_ */ - YYSYMBOL_TLS_ = 65, /* TLS_ */ - YYSYMBOL_TRUE_ = 66, /* TRUE_ */ - YYSYMBOL_FALSE_ = 67, /* FALSE_ */ - YYSYMBOL__INTERFACEIMPL = 68, /* _INTERFACEIMPL */ - YYSYMBOL_VALUE_ = 69, /* VALUE_ */ - YYSYMBOL_VALUETYPE_ = 70, /* VALUETYPE_ */ - YYSYMBOL_NATIVE_ = 71, /* NATIVE_ */ - YYSYMBOL_INSTANCE_ = 72, /* INSTANCE_ */ - YYSYMBOL_SPECIALNAME_ = 73, /* SPECIALNAME_ */ - YYSYMBOL_FORWARDER_ = 74, /* FORWARDER_ */ - YYSYMBOL_STATIC_ = 75, /* STATIC_ */ - YYSYMBOL_PUBLIC_ = 76, /* PUBLIC_ */ - YYSYMBOL_PRIVATE_ = 77, /* PRIVATE_ */ - YYSYMBOL_FAMILY_ = 78, /* FAMILY_ */ - YYSYMBOL_FINAL_ = 79, /* FINAL_ */ - YYSYMBOL_SYNCHRONIZED_ = 80, /* SYNCHRONIZED_ */ - YYSYMBOL_INTERFACE_ = 81, /* INTERFACE_ */ - YYSYMBOL_SEALED_ = 82, /* SEALED_ */ - YYSYMBOL_NESTED_ = 83, /* NESTED_ */ - YYSYMBOL_ABSTRACT_ = 84, /* ABSTRACT_ */ - YYSYMBOL_AUTO_ = 85, /* AUTO_ */ - YYSYMBOL_SEQUENTIAL_ = 86, /* SEQUENTIAL_ */ - YYSYMBOL_EXPLICIT_ = 87, /* EXPLICIT_ */ - YYSYMBOL_ANSI_ = 88, /* ANSI_ */ - YYSYMBOL_UNICODE_ = 89, /* UNICODE_ */ - YYSYMBOL_AUTOCHAR_ = 90, /* AUTOCHAR_ */ - YYSYMBOL_IMPORT_ = 91, /* IMPORT_ */ - YYSYMBOL_ENUM_ = 92, /* ENUM_ */ - YYSYMBOL_VIRTUAL_ = 93, /* VIRTUAL_ */ - YYSYMBOL_NOINLINING_ = 94, /* NOINLINING_ */ - YYSYMBOL_AGGRESSIVEINLINING_ = 95, /* AGGRESSIVEINLINING_ */ - YYSYMBOL_NOOPTIMIZATION_ = 96, /* NOOPTIMIZATION_ */ - YYSYMBOL_AGGRESSIVEOPTIMIZATION_ = 97, /* AGGRESSIVEOPTIMIZATION_ */ - YYSYMBOL_UNMANAGEDEXP_ = 98, /* UNMANAGEDEXP_ */ - YYSYMBOL_BEFOREFIELDINIT_ = 99, /* BEFOREFIELDINIT_ */ - YYSYMBOL_STRICT_ = 100, /* STRICT_ */ - YYSYMBOL_RETARGETABLE_ = 101, /* RETARGETABLE_ */ - YYSYMBOL_WINDOWSRUNTIME_ = 102, /* WINDOWSRUNTIME_ */ - YYSYMBOL_NOPLATFORM_ = 103, /* NOPLATFORM_ */ - YYSYMBOL_METHOD_ = 104, /* METHOD_ */ - YYSYMBOL_FIELD_ = 105, /* FIELD_ */ - YYSYMBOL_PINNED_ = 106, /* PINNED_ */ - YYSYMBOL_MODREQ_ = 107, /* MODREQ_ */ - YYSYMBOL_MODOPT_ = 108, /* MODOPT_ */ - YYSYMBOL_SERIALIZABLE_ = 109, /* SERIALIZABLE_ */ - YYSYMBOL_PROPERTY_ = 110, /* PROPERTY_ */ - YYSYMBOL_TYPE_ = 111, /* TYPE_ */ - YYSYMBOL_ASSEMBLY_ = 112, /* ASSEMBLY_ */ - YYSYMBOL_FAMANDASSEM_ = 113, /* FAMANDASSEM_ */ - YYSYMBOL_FAMORASSEM_ = 114, /* FAMORASSEM_ */ - YYSYMBOL_PRIVATESCOPE_ = 115, /* PRIVATESCOPE_ */ - YYSYMBOL_HIDEBYSIG_ = 116, /* HIDEBYSIG_ */ - YYSYMBOL_NEWSLOT_ = 117, /* NEWSLOT_ */ - YYSYMBOL_RTSPECIALNAME_ = 118, /* RTSPECIALNAME_ */ - YYSYMBOL_PINVOKEIMPL_ = 119, /* PINVOKEIMPL_ */ - YYSYMBOL__CTOR = 120, /* _CTOR */ - YYSYMBOL__CCTOR = 121, /* _CCTOR */ - YYSYMBOL_LITERAL_ = 122, /* LITERAL_ */ - YYSYMBOL_NOTSERIALIZED_ = 123, /* NOTSERIALIZED_ */ - YYSYMBOL_INITONLY_ = 124, /* INITONLY_ */ - YYSYMBOL_REQSECOBJ_ = 125, /* REQSECOBJ_ */ - YYSYMBOL_CIL_ = 126, /* CIL_ */ - YYSYMBOL_OPTIL_ = 127, /* OPTIL_ */ - YYSYMBOL_MANAGED_ = 128, /* MANAGED_ */ - YYSYMBOL_FORWARDREF_ = 129, /* FORWARDREF_ */ - YYSYMBOL_PRESERVESIG_ = 130, /* PRESERVESIG_ */ - YYSYMBOL_RUNTIME_ = 131, /* RUNTIME_ */ - YYSYMBOL_INTERNALCALL_ = 132, /* INTERNALCALL_ */ - YYSYMBOL__IMPORT = 133, /* _IMPORT */ - YYSYMBOL_NOMANGLE_ = 134, /* NOMANGLE_ */ - YYSYMBOL_LASTERR_ = 135, /* LASTERR_ */ - YYSYMBOL_WINAPI_ = 136, /* WINAPI_ */ - YYSYMBOL_AS_ = 137, /* AS_ */ - YYSYMBOL_BESTFIT_ = 138, /* BESTFIT_ */ - YYSYMBOL_ON_ = 139, /* ON_ */ - YYSYMBOL_OFF_ = 140, /* OFF_ */ - YYSYMBOL_CHARMAPERROR_ = 141, /* CHARMAPERROR_ */ - YYSYMBOL_INSTR_NONE = 142, /* INSTR_NONE */ - YYSYMBOL_INSTR_VAR = 143, /* INSTR_VAR */ - YYSYMBOL_INSTR_I = 144, /* INSTR_I */ - YYSYMBOL_INSTR_I8 = 145, /* INSTR_I8 */ - YYSYMBOL_INSTR_R = 146, /* INSTR_R */ - YYSYMBOL_INSTR_BRTARGET = 147, /* INSTR_BRTARGET */ - YYSYMBOL_INSTR_METHOD = 148, /* INSTR_METHOD */ - YYSYMBOL_INSTR_FIELD = 149, /* INSTR_FIELD */ - YYSYMBOL_INSTR_TYPE = 150, /* INSTR_TYPE */ - YYSYMBOL_INSTR_STRING = 151, /* INSTR_STRING */ - YYSYMBOL_INSTR_SIG = 152, /* INSTR_SIG */ - YYSYMBOL_INSTR_TOK = 153, /* INSTR_TOK */ - YYSYMBOL_INSTR_SWITCH = 154, /* INSTR_SWITCH */ - YYSYMBOL__CLASS = 155, /* _CLASS */ - YYSYMBOL__NAMESPACE = 156, /* _NAMESPACE */ - YYSYMBOL__METHOD = 157, /* _METHOD */ - YYSYMBOL__FIELD = 158, /* _FIELD */ - YYSYMBOL__DATA = 159, /* _DATA */ - YYSYMBOL__THIS = 160, /* _THIS */ - YYSYMBOL__BASE = 161, /* _BASE */ - YYSYMBOL__NESTER = 162, /* _NESTER */ - YYSYMBOL__EMITBYTE = 163, /* _EMITBYTE */ - YYSYMBOL__TRY = 164, /* _TRY */ - YYSYMBOL__MAXSTACK = 165, /* _MAXSTACK */ - YYSYMBOL__LOCALS = 166, /* _LOCALS */ - YYSYMBOL__ENTRYPOINT = 167, /* _ENTRYPOINT */ - YYSYMBOL__ZEROINIT = 168, /* _ZEROINIT */ - YYSYMBOL__EVENT = 169, /* _EVENT */ - YYSYMBOL__ADDON = 170, /* _ADDON */ - YYSYMBOL__REMOVEON = 171, /* _REMOVEON */ - YYSYMBOL__FIRE = 172, /* _FIRE */ - YYSYMBOL__OTHER = 173, /* _OTHER */ - YYSYMBOL__PROPERTY = 174, /* _PROPERTY */ - YYSYMBOL__SET = 175, /* _SET */ - YYSYMBOL__GET = 176, /* _GET */ - YYSYMBOL__PERMISSION = 177, /* _PERMISSION */ - YYSYMBOL__PERMISSIONSET = 178, /* _PERMISSIONSET */ - YYSYMBOL_REQUEST_ = 179, /* REQUEST_ */ - YYSYMBOL_DEMAND_ = 180, /* DEMAND_ */ - YYSYMBOL_ASSERT_ = 181, /* ASSERT_ */ - YYSYMBOL_DENY_ = 182, /* DENY_ */ - YYSYMBOL_PERMITONLY_ = 183, /* PERMITONLY_ */ - YYSYMBOL_LINKCHECK_ = 184, /* LINKCHECK_ */ - YYSYMBOL_INHERITCHECK_ = 185, /* INHERITCHECK_ */ - YYSYMBOL_REQMIN_ = 186, /* REQMIN_ */ - YYSYMBOL_REQOPT_ = 187, /* REQOPT_ */ - YYSYMBOL_REQREFUSE_ = 188, /* REQREFUSE_ */ - YYSYMBOL_PREJITGRANT_ = 189, /* PREJITGRANT_ */ - YYSYMBOL_PREJITDENY_ = 190, /* PREJITDENY_ */ - YYSYMBOL_NONCASDEMAND_ = 191, /* NONCASDEMAND_ */ - YYSYMBOL_NONCASLINKDEMAND_ = 192, /* NONCASLINKDEMAND_ */ - YYSYMBOL_NONCASINHERITANCE_ = 193, /* NONCASINHERITANCE_ */ - YYSYMBOL__LINE = 194, /* _LINE */ - YYSYMBOL_P_LINE = 195, /* P_LINE */ - YYSYMBOL__LANGUAGE = 196, /* _LANGUAGE */ - YYSYMBOL__CUSTOM = 197, /* _CUSTOM */ - YYSYMBOL_INIT_ = 198, /* INIT_ */ - YYSYMBOL__SIZE = 199, /* _SIZE */ - YYSYMBOL__PACK = 200, /* _PACK */ - YYSYMBOL__VTABLE = 201, /* _VTABLE */ - YYSYMBOL__VTFIXUP = 202, /* _VTFIXUP */ - YYSYMBOL_FROMUNMANAGED_ = 203, /* FROMUNMANAGED_ */ - YYSYMBOL_CALLMOSTDERIVED_ = 204, /* CALLMOSTDERIVED_ */ - YYSYMBOL__VTENTRY = 205, /* _VTENTRY */ - YYSYMBOL_RETAINAPPDOMAIN_ = 206, /* RETAINAPPDOMAIN_ */ - YYSYMBOL__FILE = 207, /* _FILE */ - YYSYMBOL_NOMETADATA_ = 208, /* NOMETADATA_ */ - YYSYMBOL__HASH = 209, /* _HASH */ - YYSYMBOL__ASSEMBLY = 210, /* _ASSEMBLY */ - YYSYMBOL__PUBLICKEY = 211, /* _PUBLICKEY */ - YYSYMBOL__PUBLICKEYTOKEN = 212, /* _PUBLICKEYTOKEN */ - YYSYMBOL_ALGORITHM_ = 213, /* ALGORITHM_ */ - YYSYMBOL__VER = 214, /* _VER */ - YYSYMBOL__LOCALE = 215, /* _LOCALE */ - YYSYMBOL_EXTERN_ = 216, /* EXTERN_ */ - YYSYMBOL__MRESOURCE = 217, /* _MRESOURCE */ - YYSYMBOL__MODULE = 218, /* _MODULE */ - YYSYMBOL__EXPORT = 219, /* _EXPORT */ - YYSYMBOL_LEGACY_ = 220, /* LEGACY_ */ - YYSYMBOL_LIBRARY_ = 221, /* LIBRARY_ */ - YYSYMBOL_X86_ = 222, /* X86_ */ - YYSYMBOL_AMD64_ = 223, /* AMD64_ */ - YYSYMBOL_ARM_ = 224, /* ARM_ */ - YYSYMBOL_ARM64_ = 225, /* ARM64_ */ - YYSYMBOL_MARSHAL_ = 226, /* MARSHAL_ */ - YYSYMBOL_CUSTOM_ = 227, /* CUSTOM_ */ - YYSYMBOL_SYSSTRING_ = 228, /* SYSSTRING_ */ - YYSYMBOL_FIXED_ = 229, /* FIXED_ */ - YYSYMBOL_VARIANT_ = 230, /* VARIANT_ */ - YYSYMBOL_CURRENCY_ = 231, /* CURRENCY_ */ - YYSYMBOL_SYSCHAR_ = 232, /* SYSCHAR_ */ - YYSYMBOL_DECIMAL_ = 233, /* DECIMAL_ */ - YYSYMBOL_DATE_ = 234, /* DATE_ */ - YYSYMBOL_BSTR_ = 235, /* BSTR_ */ - YYSYMBOL_TBSTR_ = 236, /* TBSTR_ */ - YYSYMBOL_LPSTR_ = 237, /* LPSTR_ */ - YYSYMBOL_LPWSTR_ = 238, /* LPWSTR_ */ - YYSYMBOL_LPTSTR_ = 239, /* LPTSTR_ */ - YYSYMBOL_OBJECTREF_ = 240, /* OBJECTREF_ */ - YYSYMBOL_IUNKNOWN_ = 241, /* IUNKNOWN_ */ - YYSYMBOL_IDISPATCH_ = 242, /* IDISPATCH_ */ - YYSYMBOL_STRUCT_ = 243, /* STRUCT_ */ - YYSYMBOL_SAFEARRAY_ = 244, /* SAFEARRAY_ */ - YYSYMBOL_BYVALSTR_ = 245, /* BYVALSTR_ */ - YYSYMBOL_LPVOID_ = 246, /* LPVOID_ */ - YYSYMBOL_ANY_ = 247, /* ANY_ */ - YYSYMBOL_ARRAY_ = 248, /* ARRAY_ */ - YYSYMBOL_LPSTRUCT_ = 249, /* LPSTRUCT_ */ - YYSYMBOL_IIDPARAM_ = 250, /* IIDPARAM_ */ - YYSYMBOL_IN_ = 251, /* IN_ */ - YYSYMBOL_OUT_ = 252, /* OUT_ */ - YYSYMBOL_OPT_ = 253, /* OPT_ */ - YYSYMBOL__PARAM = 254, /* _PARAM */ - YYSYMBOL__OVERRIDE = 255, /* _OVERRIDE */ - YYSYMBOL_WITH_ = 256, /* WITH_ */ - YYSYMBOL_NULL_ = 257, /* NULL_ */ - YYSYMBOL_HRESULT_ = 258, /* HRESULT_ */ - YYSYMBOL_CARRAY_ = 259, /* CARRAY_ */ - YYSYMBOL_USERDEFINED_ = 260, /* USERDEFINED_ */ - YYSYMBOL_RECORD_ = 261, /* RECORD_ */ - YYSYMBOL_FILETIME_ = 262, /* FILETIME_ */ - YYSYMBOL_BLOB_ = 263, /* BLOB_ */ - YYSYMBOL_STREAM_ = 264, /* STREAM_ */ - YYSYMBOL_STORAGE_ = 265, /* STORAGE_ */ - YYSYMBOL_STREAMED_OBJECT_ = 266, /* STREAMED_OBJECT_ */ - YYSYMBOL_STORED_OBJECT_ = 267, /* STORED_OBJECT_ */ - YYSYMBOL_BLOB_OBJECT_ = 268, /* BLOB_OBJECT_ */ - YYSYMBOL_CF_ = 269, /* CF_ */ - YYSYMBOL_CLSID_ = 270, /* CLSID_ */ - YYSYMBOL_VECTOR_ = 271, /* VECTOR_ */ - YYSYMBOL__SUBSYSTEM = 272, /* _SUBSYSTEM */ - YYSYMBOL__CORFLAGS = 273, /* _CORFLAGS */ - YYSYMBOL_ALIGNMENT_ = 274, /* ALIGNMENT_ */ - YYSYMBOL__IMAGEBASE = 275, /* _IMAGEBASE */ - YYSYMBOL__STACKRESERVE = 276, /* _STACKRESERVE */ - YYSYMBOL__TYPEDEF = 277, /* _TYPEDEF */ - YYSYMBOL__TEMPLATE = 278, /* _TEMPLATE */ - YYSYMBOL__TYPELIST = 279, /* _TYPELIST */ - YYSYMBOL__MSCORLIB = 280, /* _MSCORLIB */ - YYSYMBOL_P_DEFINE = 281, /* P_DEFINE */ - YYSYMBOL_P_UNDEF = 282, /* P_UNDEF */ - YYSYMBOL_P_IFDEF = 283, /* P_IFDEF */ - YYSYMBOL_P_IFNDEF = 284, /* P_IFNDEF */ - YYSYMBOL_P_ELSE = 285, /* P_ELSE */ - YYSYMBOL_P_ENDIF = 286, /* P_ENDIF */ - YYSYMBOL_P_INCLUDE = 287, /* P_INCLUDE */ - YYSYMBOL_CONSTRAINT_ = 288, /* CONSTRAINT_ */ - YYSYMBOL_CONST_ = 289, /* CONST_ */ - YYSYMBOL_290_ = 290, /* '{' */ - YYSYMBOL_291_ = 291, /* '}' */ - YYSYMBOL_292_ = 292, /* '+' */ - YYSYMBOL_293_ = 293, /* ',' */ - YYSYMBOL_294_ = 294, /* '.' */ - YYSYMBOL_295_ = 295, /* '(' */ - YYSYMBOL_296_ = 296, /* ')' */ - YYSYMBOL_297_ = 297, /* ';' */ - YYSYMBOL_298_ = 298, /* '=' */ - YYSYMBOL_299_ = 299, /* '[' */ - YYSYMBOL_300_ = 300, /* ']' */ - YYSYMBOL_301_ = 301, /* '<' */ - YYSYMBOL_302_ = 302, /* '>' */ - YYSYMBOL_303_ = 303, /* '-' */ - YYSYMBOL_304_ = 304, /* ':' */ - YYSYMBOL_305_ = 305, /* '*' */ - YYSYMBOL_306_ = 306, /* '&' */ - YYSYMBOL_307_ = 307, /* '/' */ - YYSYMBOL_308_ = 308, /* '!' */ - YYSYMBOL_YYACCEPT = 309, /* $accept */ - YYSYMBOL_decls = 310, /* decls */ - YYSYMBOL_decl = 311, /* decl */ - YYSYMBOL_classNameSeq = 312, /* classNameSeq */ - YYSYMBOL_compQstring = 313, /* compQstring */ - YYSYMBOL_languageDecl = 314, /* languageDecl */ - YYSYMBOL_id = 315, /* id */ - YYSYMBOL_dottedName = 316, /* dottedName */ - YYSYMBOL_int32 = 317, /* int32 */ - YYSYMBOL_int64 = 318, /* int64 */ - YYSYMBOL_float64 = 319, /* float64 */ - YYSYMBOL_typedefDecl = 320, /* typedefDecl */ - YYSYMBOL_compControl = 321, /* compControl */ - YYSYMBOL_customDescr = 322, /* customDescr */ - YYSYMBOL_customDescrWithOwner = 323, /* customDescrWithOwner */ - YYSYMBOL_customHead = 324, /* customHead */ - YYSYMBOL_customHeadWithOwner = 325, /* customHeadWithOwner */ - YYSYMBOL_customType = 326, /* customType */ - YYSYMBOL_ownerType = 327, /* ownerType */ - YYSYMBOL_customBlobDescr = 328, /* customBlobDescr */ - YYSYMBOL_customBlobArgs = 329, /* customBlobArgs */ - YYSYMBOL_customBlobNVPairs = 330, /* customBlobNVPairs */ - YYSYMBOL_fieldOrProp = 331, /* fieldOrProp */ - YYSYMBOL_customAttrDecl = 332, /* customAttrDecl */ - YYSYMBOL_serializType = 333, /* serializType */ - YYSYMBOL_moduleHead = 334, /* moduleHead */ - YYSYMBOL_vtfixupDecl = 335, /* vtfixupDecl */ - YYSYMBOL_vtfixupAttr = 336, /* vtfixupAttr */ - YYSYMBOL_vtableDecl = 337, /* vtableDecl */ - YYSYMBOL_vtableHead = 338, /* vtableHead */ - YYSYMBOL_nameSpaceHead = 339, /* nameSpaceHead */ - YYSYMBOL__class = 340, /* _class */ - YYSYMBOL_classHeadBegin = 341, /* classHeadBegin */ - YYSYMBOL_classHead = 342, /* classHead */ - YYSYMBOL_classAttr = 343, /* classAttr */ - YYSYMBOL_extendsClause = 344, /* extendsClause */ - YYSYMBOL_implClause = 345, /* implClause */ - YYSYMBOL_classDecls = 346, /* classDecls */ - YYSYMBOL_implList = 347, /* implList */ - YYSYMBOL_typeList = 348, /* typeList */ - YYSYMBOL_typeListNotEmpty = 349, /* typeListNotEmpty */ - YYSYMBOL_typarsClause = 350, /* typarsClause */ - YYSYMBOL_typarAttrib = 351, /* typarAttrib */ - YYSYMBOL_typarAttribs = 352, /* typarAttribs */ - YYSYMBOL_conTyparAttrib = 353, /* conTyparAttrib */ - YYSYMBOL_conTyparAttribs = 354, /* conTyparAttribs */ - YYSYMBOL_typars = 355, /* typars */ - YYSYMBOL_typarsRest = 356, /* typarsRest */ - YYSYMBOL_tyBound = 357, /* tyBound */ - YYSYMBOL_genArity = 358, /* genArity */ - YYSYMBOL_genArityNotEmpty = 359, /* genArityNotEmpty */ - YYSYMBOL_classDecl = 360, /* classDecl */ - YYSYMBOL_fieldDecl = 361, /* fieldDecl */ - YYSYMBOL_fieldAttr = 362, /* fieldAttr */ - YYSYMBOL_atOpt = 363, /* atOpt */ - YYSYMBOL_initOpt = 364, /* initOpt */ - YYSYMBOL_repeatOpt = 365, /* repeatOpt */ - YYSYMBOL_methodRef = 366, /* methodRef */ - YYSYMBOL_callConv = 367, /* callConv */ - YYSYMBOL_callKind = 368, /* callKind */ - YYSYMBOL_mdtoken = 369, /* mdtoken */ - YYSYMBOL_memberRef = 370, /* memberRef */ - YYSYMBOL_eventHead = 371, /* eventHead */ - YYSYMBOL_eventAttr = 372, /* eventAttr */ - YYSYMBOL_eventDecls = 373, /* eventDecls */ - YYSYMBOL_eventDecl = 374, /* eventDecl */ - YYSYMBOL_propHead = 375, /* propHead */ - YYSYMBOL_propAttr = 376, /* propAttr */ - YYSYMBOL_propDecls = 377, /* propDecls */ - YYSYMBOL_propDecl = 378, /* propDecl */ - YYSYMBOL_methodHeadPart1 = 379, /* methodHeadPart1 */ - YYSYMBOL_marshalClause = 380, /* marshalClause */ - YYSYMBOL_marshalBlob = 381, /* marshalBlob */ - YYSYMBOL_marshalBlobHead = 382, /* marshalBlobHead */ - YYSYMBOL_methodHead = 383, /* methodHead */ - YYSYMBOL_methAttr = 384, /* methAttr */ - YYSYMBOL_pinvAttr = 385, /* pinvAttr */ - YYSYMBOL_methodName = 386, /* methodName */ - YYSYMBOL_paramAttr = 387, /* paramAttr */ - YYSYMBOL_implAttr = 388, /* implAttr */ - YYSYMBOL_localsHead = 389, /* localsHead */ - YYSYMBOL_methodDecls = 390, /* methodDecls */ - YYSYMBOL_methodDecl = 391, /* methodDecl */ - YYSYMBOL_scopeBlock = 392, /* scopeBlock */ - YYSYMBOL_scopeOpen = 393, /* scopeOpen */ - YYSYMBOL_sehBlock = 394, /* sehBlock */ - YYSYMBOL_sehClauses = 395, /* sehClauses */ - YYSYMBOL_tryBlock = 396, /* tryBlock */ - YYSYMBOL_tryHead = 397, /* tryHead */ - YYSYMBOL_sehClause = 398, /* sehClause */ - YYSYMBOL_filterClause = 399, /* filterClause */ - YYSYMBOL_filterHead = 400, /* filterHead */ - YYSYMBOL_catchClause = 401, /* catchClause */ - YYSYMBOL_finallyClause = 402, /* finallyClause */ - YYSYMBOL_faultClause = 403, /* faultClause */ - YYSYMBOL_handlerBlock = 404, /* handlerBlock */ - YYSYMBOL_dataDecl = 405, /* dataDecl */ - YYSYMBOL_ddHead = 406, /* ddHead */ - YYSYMBOL_tls = 407, /* tls */ - YYSYMBOL_ddBody = 408, /* ddBody */ - YYSYMBOL_ddItemList = 409, /* ddItemList */ - YYSYMBOL_ddItemCount = 410, /* ddItemCount */ - YYSYMBOL_ddItem = 411, /* ddItem */ - YYSYMBOL_fieldSerInit = 412, /* fieldSerInit */ - YYSYMBOL_bytearrayhead = 413, /* bytearrayhead */ - YYSYMBOL_bytes = 414, /* bytes */ - YYSYMBOL_hexbytes = 415, /* hexbytes */ - YYSYMBOL_fieldInit = 416, /* fieldInit */ - YYSYMBOL_serInit = 417, /* serInit */ - YYSYMBOL_constTypeArg = 418, /* constTypeArg */ - YYSYMBOL_f32seq = 419, /* f32seq */ - YYSYMBOL_f64seq = 420, /* f64seq */ - YYSYMBOL_i64seq = 421, /* i64seq */ - YYSYMBOL_i32seq = 422, /* i32seq */ - YYSYMBOL_i16seq = 423, /* i16seq */ - YYSYMBOL_i8seq = 424, /* i8seq */ - YYSYMBOL_boolSeq = 425, /* boolSeq */ - YYSYMBOL_sqstringSeq = 426, /* sqstringSeq */ - YYSYMBOL_classSeq = 427, /* classSeq */ - YYSYMBOL_objSeq = 428, /* objSeq */ - YYSYMBOL_methodSpec = 429, /* methodSpec */ - YYSYMBOL_instr_none = 430, /* instr_none */ - YYSYMBOL_instr_var = 431, /* instr_var */ - YYSYMBOL_instr_i = 432, /* instr_i */ - YYSYMBOL_instr_i8 = 433, /* instr_i8 */ - YYSYMBOL_instr_r = 434, /* instr_r */ - YYSYMBOL_instr_brtarget = 435, /* instr_brtarget */ - YYSYMBOL_instr_method = 436, /* instr_method */ - YYSYMBOL_instr_field = 437, /* instr_field */ - YYSYMBOL_instr_type = 438, /* instr_type */ - YYSYMBOL_instr_string = 439, /* instr_string */ - YYSYMBOL_instr_sig = 440, /* instr_sig */ - YYSYMBOL_instr_tok = 441, /* instr_tok */ - YYSYMBOL_instr_switch = 442, /* instr_switch */ - YYSYMBOL_instr_r_head = 443, /* instr_r_head */ - YYSYMBOL_instr = 444, /* instr */ - YYSYMBOL_labels = 445, /* labels */ - YYSYMBOL_tyArgs0 = 446, /* tyArgs0 */ - YYSYMBOL_tyArgs1 = 447, /* tyArgs1 */ - YYSYMBOL_tyArgs2 = 448, /* tyArgs2 */ - YYSYMBOL_sigArgs0 = 449, /* sigArgs0 */ - YYSYMBOL_sigArgs1 = 450, /* sigArgs1 */ - YYSYMBOL_sigArg = 451, /* sigArg */ - YYSYMBOL_className = 452, /* className */ - YYSYMBOL_slashedName = 453, /* slashedName */ - YYSYMBOL_typeSpec = 454, /* typeSpec */ - YYSYMBOL_nativeType = 455, /* nativeType */ - YYSYMBOL_iidParamIndex = 456, /* iidParamIndex */ - YYSYMBOL_variantType = 457, /* variantType */ - YYSYMBOL_type = 458, /* type */ - YYSYMBOL_simpleType = 459, /* simpleType */ - YYSYMBOL_bounds1 = 460, /* bounds1 */ - YYSYMBOL_bound = 461, /* bound */ - YYSYMBOL_secDecl = 462, /* secDecl */ - YYSYMBOL_secAttrSetBlob = 463, /* secAttrSetBlob */ - YYSYMBOL_secAttrBlob = 464, /* secAttrBlob */ - YYSYMBOL_psetHead = 465, /* psetHead */ - YYSYMBOL_nameValPairs = 466, /* nameValPairs */ - YYSYMBOL_nameValPair = 467, /* nameValPair */ - YYSYMBOL_truefalse = 468, /* truefalse */ - YYSYMBOL_caValue = 469, /* caValue */ - YYSYMBOL_secAction = 470, /* secAction */ - YYSYMBOL_esHead = 471, /* esHead */ - YYSYMBOL_extSourceSpec = 472, /* extSourceSpec */ - YYSYMBOL_fileDecl = 473, /* fileDecl */ - YYSYMBOL_fileAttr = 474, /* fileAttr */ - YYSYMBOL_fileEntry = 475, /* fileEntry */ - YYSYMBOL_hashHead = 476, /* hashHead */ - YYSYMBOL_assemblyHead = 477, /* assemblyHead */ - YYSYMBOL_asmAttr = 478, /* asmAttr */ - YYSYMBOL_assemblyDecls = 479, /* assemblyDecls */ - YYSYMBOL_assemblyDecl = 480, /* assemblyDecl */ - YYSYMBOL_intOrWildcard = 481, /* intOrWildcard */ - YYSYMBOL_asmOrRefDecl = 482, /* asmOrRefDecl */ - YYSYMBOL_publicKeyHead = 483, /* publicKeyHead */ - YYSYMBOL_publicKeyTokenHead = 484, /* publicKeyTokenHead */ - YYSYMBOL_localeHead = 485, /* localeHead */ - YYSYMBOL_assemblyRefHead = 486, /* assemblyRefHead */ - YYSYMBOL_assemblyRefDecls = 487, /* assemblyRefDecls */ - YYSYMBOL_assemblyRefDecl = 488, /* assemblyRefDecl */ - YYSYMBOL_exptypeHead = 489, /* exptypeHead */ - YYSYMBOL_exportHead = 490, /* exportHead */ - YYSYMBOL_exptAttr = 491, /* exptAttr */ - YYSYMBOL_exptypeDecls = 492, /* exptypeDecls */ - YYSYMBOL_exptypeDecl = 493, /* exptypeDecl */ - YYSYMBOL_manifestResHead = 494, /* manifestResHead */ - YYSYMBOL_manresAttr = 495, /* manresAttr */ - YYSYMBOL_manifestResDecls = 496, /* manifestResDecls */ - YYSYMBOL_manifestResDecl = 497 /* manifestResDecl */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; - - - - -#ifdef short -# undef short -#endif - -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - and (if available) are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H +typedef union YYSTYPE { + CorRegTypeAttr classAttr; + CorMethodAttr methAttr; + CorFieldAttr fieldAttr; + CorMethodImpl implAttr; + CorEventAttr eventAttr; + CorPropertyAttr propAttr; + CorPinvokeMap pinvAttr; + CorDeclSecurity secAct; + CorFileFlags fileAttr; + CorAssemblyFlags asmAttr; + CorAssemblyFlags asmRefAttr; + CorTypeAttr exptAttr; + CorManifestResourceFlags manresAttr; + double* float64; + __int64* int64; + __int32 int32; + char* string; + BinStr* binstr; + Labels* labels; + Instr* instr; /* instruction opcode */ + NVPair* pair; + pTyParList typarlist; + mdToken token; + TypeDefDescr* tdd; + CustomDescr* cad; + unsigned short opcode; +} YYSTYPE; +#endif /* !YYSTYPE_IS_DECLARED */ +#line 73 "asmparse.cpp" + +/* compatibility with bison */ +#ifdef YYPARSE_PARAM +/* compatibility with FreeBSD */ +# ifdef YYPARSE_PARAM_TYPE +# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) +# else +# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) # endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; #else -typedef signed char yytype_int8; +# define YYPARSE_DECL() yyparse(void) #endif -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; +/* Parameters sent to lex. */ +#ifdef YYLEX_PARAM +# define YYLEX_DECL() yylex(void *YYLEX_PARAM) +# define YYLEX yylex(YYLEX_PARAM) #else -typedef short yytype_int16; +# define YYLEX_DECL() yylex(void) +# define YYLEX yylex() #endif -/* Work around bug in HP-UX 11.23, which defines these macros - incorrectly for preprocessor constants. This workaround can likely - be removed in 2023, as HPE has promised support for HP-UX 11.23 - (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of - . */ -#ifdef __hpux -# undef UINT_LEAST8_MAX -# undef UINT_LEAST16_MAX -# define UINT_LEAST8_MAX 255 -# define UINT_LEAST16_MAX 65535 +#if !(defined(yylex) || defined(YYSTATE)) +int YYLEX_DECL(); #endif -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; +/* Parameters sent to yyerror. */ +#ifndef YYERROR_DECL +#define YYERROR_DECL() yyerror(const char *s) #endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; +#ifndef YYERROR_CALL +#define YYERROR_CALL(msg) yyerror(msg) #endif -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif +extern int YYPARSE_DECL(); + +#define ERROR_ 257 +#define BAD_COMMENT_ 258 +#define BAD_LITERAL_ 259 +#define ID 260 +#define DOTTEDNAME 261 +#define QSTRING 262 +#define SQSTRING 263 +#define INT32 264 +#define INT64 265 +#define FLOAT64 266 +#define HEXBYTE 267 +#define TYPEDEF_T 268 +#define TYPEDEF_M 269 +#define TYPEDEF_F 270 +#define TYPEDEF_TS 271 +#define TYPEDEF_MR 272 +#define TYPEDEF_CA 273 +#define DCOLON 274 +#define ELLIPSIS 275 +#define VOID_ 276 +#define BOOL_ 277 +#define CHAR_ 278 +#define UNSIGNED_ 279 +#define INT_ 280 +#define INT8_ 281 +#define INT16_ 282 +#define INT32_ 283 +#define INT64_ 284 +#define FLOAT_ 285 +#define FLOAT32_ 286 +#define FLOAT64_ 287 +#define BYTEARRAY_ 288 +#define UINT_ 289 +#define UINT8_ 290 +#define UINT16_ 291 +#define UINT32_ 292 +#define UINT64_ 293 +#define FLAGS_ 294 +#define CALLCONV_ 295 +#define MDTOKEN_ 296 +#define OBJECT_ 297 +#define STRING_ 298 +#define NULLREF_ 299 +#define DEFAULT_ 300 +#define CDECL_ 301 +#define VARARG_ 302 +#define STDCALL_ 303 +#define THISCALL_ 304 +#define FASTCALL_ 305 +#define CLASS_ 306 +#define BYREFLIKE_ 307 +#define TYPEDREF_ 308 +#define UNMANAGED_ 309 +#define FINALLY_ 310 +#define HANDLER_ 311 +#define CATCH_ 312 +#define FILTER_ 313 +#define FAULT_ 314 +#define EXTENDS_ 315 +#define IMPLEMENTS_ 316 +#define TO_ 317 +#define AT_ 318 +#define TLS_ 319 +#define TRUE_ 320 +#define FALSE_ 321 +#define _INTERFACEIMPL 322 +#define VALUE_ 323 +#define VALUETYPE_ 324 +#define NATIVE_ 325 +#define INSTANCE_ 326 +#define SPECIALNAME_ 327 +#define FORWARDER_ 328 +#define STATIC_ 329 +#define PUBLIC_ 330 +#define PRIVATE_ 331 +#define FAMILY_ 332 +#define FINAL_ 333 +#define SYNCHRONIZED_ 334 +#define INTERFACE_ 335 +#define SEALED_ 336 +#define NESTED_ 337 +#define ABSTRACT_ 338 +#define AUTO_ 339 +#define SEQUENTIAL_ 340 +#define EXPLICIT_ 341 +#define ANSI_ 342 +#define UNICODE_ 343 +#define AUTOCHAR_ 344 +#define IMPORT_ 345 +#define ENUM_ 346 +#define VIRTUAL_ 347 +#define NOINLINING_ 348 +#define AGGRESSIVEINLINING_ 349 +#define NOOPTIMIZATION_ 350 +#define AGGRESSIVEOPTIMIZATION_ 351 +#define UNMANAGEDEXP_ 352 +#define BEFOREFIELDINIT_ 353 +#define STRICT_ 354 +#define RETARGETABLE_ 355 +#define WINDOWSRUNTIME_ 356 +#define NOPLATFORM_ 357 +#define METHOD_ 358 +#define FIELD_ 359 +#define PINNED_ 360 +#define MODREQ_ 361 +#define MODOPT_ 362 +#define SERIALIZABLE_ 363 +#define PROPERTY_ 364 +#define TYPE_ 365 +#define ASSEMBLY_ 366 +#define FAMANDASSEM_ 367 +#define FAMORASSEM_ 368 +#define PRIVATESCOPE_ 369 +#define HIDEBYSIG_ 370 +#define NEWSLOT_ 371 +#define RTSPECIALNAME_ 372 +#define PINVOKEIMPL_ 373 +#define _CTOR 374 +#define _CCTOR 375 +#define LITERAL_ 376 +#define NOTSERIALIZED_ 377 +#define INITONLY_ 378 +#define REQSECOBJ_ 379 +#define CIL_ 380 +#define OPTIL_ 381 +#define MANAGED_ 382 +#define FORWARDREF_ 383 +#define PRESERVESIG_ 384 +#define RUNTIME_ 385 +#define INTERNALCALL_ 386 +#define _IMPORT 387 +#define NOMANGLE_ 388 +#define LASTERR_ 389 +#define WINAPI_ 390 +#define AS_ 391 +#define BESTFIT_ 392 +#define ON_ 393 +#define OFF_ 394 +#define CHARMAPERROR_ 395 +#define INSTR_NONE 396 +#define INSTR_VAR 397 +#define INSTR_I 398 +#define INSTR_I8 399 +#define INSTR_R 400 +#define INSTR_BRTARGET 401 +#define INSTR_METHOD 402 +#define INSTR_FIELD 403 +#define INSTR_TYPE 404 +#define INSTR_STRING 405 +#define INSTR_SIG 406 +#define INSTR_TOK 407 +#define INSTR_SWITCH 408 +#define _CLASS 409 +#define _NAMESPACE 410 +#define _METHOD 411 +#define _FIELD 412 +#define _DATA 413 +#define _THIS 414 +#define _BASE 415 +#define _NESTER 416 +#define _EMITBYTE 417 +#define _TRY 418 +#define _MAXSTACK 419 +#define _LOCALS 420 +#define _ENTRYPOINT 421 +#define _ZEROINIT 422 +#define _EVENT 423 +#define _ADDON 424 +#define _REMOVEON 425 +#define _FIRE 426 +#define _OTHER 427 +#define _PROPERTY 428 +#define _SET 429 +#define _GET 430 +#define _PERMISSION 431 +#define _PERMISSIONSET 432 +#define REQUEST_ 433 +#define DEMAND_ 434 +#define ASSERT_ 435 +#define DENY_ 436 +#define PERMITONLY_ 437 +#define LINKCHECK_ 438 +#define INHERITCHECK_ 439 +#define REQMIN_ 440 +#define REQOPT_ 441 +#define REQREFUSE_ 442 +#define PREJITGRANT_ 443 +#define PREJITDENY_ 444 +#define NONCASDEMAND_ 445 +#define NONCASLINKDEMAND_ 446 +#define NONCASINHERITANCE_ 447 +#define _LINE 448 +#define P_LINE 449 +#define _LANGUAGE 450 +#define _CUSTOM 451 +#define INIT_ 452 +#define _SIZE 453 +#define _PACK 454 +#define _VTABLE 455 +#define _VTFIXUP 456 +#define FROMUNMANAGED_ 457 +#define CALLMOSTDERIVED_ 458 +#define _VTENTRY 459 +#define RETAINAPPDOMAIN_ 460 +#define _FILE 461 +#define NOMETADATA_ 462 +#define _HASH 463 +#define _ASSEMBLY 464 +#define _PUBLICKEY 465 +#define _PUBLICKEYTOKEN 466 +#define ALGORITHM_ 467 +#define _VER 468 +#define _LOCALE 469 +#define EXTERN_ 470 +#define _MRESOURCE 471 +#define _MODULE 472 +#define _EXPORT 473 +#define LEGACY_ 474 +#define LIBRARY_ 475 +#define X86_ 476 +#define AMD64_ 477 +#define ARM_ 478 +#define ARM64_ 479 +#define MARSHAL_ 480 +#define CUSTOM_ 481 +#define SYSSTRING_ 482 +#define FIXED_ 483 +#define VARIANT_ 484 +#define CURRENCY_ 485 +#define SYSCHAR_ 486 +#define DECIMAL_ 487 +#define DATE_ 488 +#define BSTR_ 489 +#define TBSTR_ 490 +#define LPSTR_ 491 +#define LPWSTR_ 492 +#define LPTSTR_ 493 +#define OBJECTREF_ 494 +#define IUNKNOWN_ 495 +#define IDISPATCH_ 496 +#define STRUCT_ 497 +#define SAFEARRAY_ 498 +#define BYVALSTR_ 499 +#define LPVOID_ 500 +#define ANY_ 501 +#define ARRAY_ 502 +#define LPSTRUCT_ 503 +#define IIDPARAM_ 504 +#define IN_ 505 +#define OUT_ 506 +#define OPT_ 507 +#define _PARAM 508 +#define _OVERRIDE 509 +#define WITH_ 510 +#define NULL_ 511 +#define HRESULT_ 512 +#define CARRAY_ 513 +#define USERDEFINED_ 514 +#define RECORD_ 515 +#define FILETIME_ 516 +#define BLOB_ 517 +#define STREAM_ 518 +#define STORAGE_ 519 +#define STREAMED_OBJECT_ 520 +#define STORED_OBJECT_ 521 +#define BLOB_OBJECT_ 522 +#define CF_ 523 +#define CLSID_ 524 +#define VECTOR_ 525 +#define _SUBSYSTEM 526 +#define _CORFLAGS 527 +#define ALIGNMENT_ 528 +#define _IMAGEBASE 529 +#define _STACKRESERVE 530 +#define _TYPEDEF 531 +#define _TEMPLATE 532 +#define _TYPELIST 533 +#define _MSCORLIB 534 +#define P_DEFINE 535 +#define P_UNDEF 536 +#define P_IFDEF 537 +#define P_IFNDEF 538 +#define P_ELSE 539 +#define P_ENDIF 540 +#define P_INCLUDE 541 +#define CONSTRAINT_ 542 +#define CONST_ 543 +#define YYERRCODE 256 +typedef int YYINT; +static const YYINT yylhs[] = { -1, + 0, 0, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 138, 138, + 38, 38, 135, 135, 135, 2, 2, 1, 1, 1, + 9, 26, 26, 25, 25, 25, 136, 136, 136, 136, + 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 96, 96, 96, 96, 97, 97, 97, 97, 10, 11, + 76, 75, 75, 62, 64, 64, 64, 65, 65, 65, + 68, 68, 134, 134, 134, 63, 63, 63, 63, 63, + 63, 132, 132, 132, 121, 12, 12, 12, 12, 12, + 12, 120, 139, 115, 140, 141, 113, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 142, 142, 143, 143, 114, 114, + 144, 144, 59, 59, 60, 60, 72, 72, 18, 18, + 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, + 71, 71, 71, 70, 70, 61, 23, 23, 24, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 118, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 4, 4, 37, + 37, 16, 16, 78, 78, 78, 78, 78, 78, 78, + 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 79, 77, 77, 77, 77, 77, 77, 146, + 146, 84, 84, 84, 147, 147, 152, 152, 152, 152, + 152, 152, 152, 152, 148, 85, 85, 85, 149, 149, + 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, + 36, 36, 155, 116, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 3, 3, 3, 13, 13, 13, 13, + 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 156, 117, 117, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, + 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, + 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, + 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, + 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, + 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, + 46, 46, 46, 50, 50, 49, 49, 48, 48, 47, + 47, 51, 51, 52, 52, 52, 53, 53, 53, 53, + 54, 54, 151, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 6, 6, 6, 6, 6, 56, 56, 57, 57, 58, + 58, 27, 27, 28, 28, 29, 29, 29, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 5, 5, + 74, 74, 74, 74, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 22, + 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, + 133, 133, 133, 133, 133, 133, 67, 67, 67, 66, + 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, + 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 178, 178, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 123, 123, 91, 91, 92, 92, + 179, 124, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 125, 125, 180, 180, 180, 69, 69, 181, + 181, 181, 181, 181, 181, 182, 184, 183, 126, 126, + 127, 127, 185, 185, 185, 185, 128, 150, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 129, 129, + 186, 186, 186, 186, 186, 186, 186, 130, 130, 95, + 95, 95, 131, 131, 187, 187, 187, 187, +}; +static const YYINT yylen[] = { 2, + 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 1, 1, 1, 2, 2, + 3, 2, 2, 1, 1, 1, 4, 1, 0, 2, + 1, 3, 2, 4, 6, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, + 4, 2, 3, 2, 2, 2, 1, 1, 2, 1, + 2, 4, 6, 3, 5, 7, 9, 3, 4, 7, + 1, 1, 1, 2, 0, 2, 2, 0, 6, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 3, 1, 2, 3, 7, 0, 2, 2, 2, 2, + 2, 3, 3, 2, 1, 4, 3, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 5, 0, 2, 0, 2, 0, 2, + 3, 1, 0, 1, 1, 3, 0, 3, 1, 1, + 1, 1, 1, 1, 4, 0, 2, 4, 0, 2, + 5, 4, 3, 0, 2, 3, 0, 1, 5, 3, + 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, + 4, 13, 22, 1, 1, 5, 3, 7, 5, 4, + 7, 0, 2, 2, 2, 2, 2, 2, 2, 5, + 2, 2, 2, 2, 2, 2, 5, 0, 2, 0, + 2, 0, 3, 9, 9, 7, 7, 1, 1, 1, + 2, 2, 1, 4, 0, 1, 1, 2, 2, 2, + 2, 1, 4, 2, 5, 3, 2, 2, 1, 4, + 3, 0, 2, 2, 0, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 9, 0, 2, 2, 0, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 0, 4, + 1, 3, 1, 13, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 5, 8, 6, 5, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, + 4, 4, 5, 1, 1, 1, 0, 4, 4, 4, + 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 5, 1, 0, 2, + 2, 1, 2, 4, 5, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 4, 6, 4, 4, 11, + 1, 5, 3, 7, 5, 5, 3, 1, 2, 2, + 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, + 4, 2, 0, 1, 1, 3, 1, 3, 1, 0, + 3, 5, 4, 3, 5, 5, 5, 5, 5, 5, + 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, + 4, 4, 4, 4, 3, 2, 0, 1, 1, 2, + 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 7, 7, 7, 7, 7, 4, + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 4, 4, 4, 4, 4, 4, 0, 2, 2, + 0, 2, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 5, 3, + 2, 2, 2, 2, 2, 5, 4, 6, 2, 4, + 0, 3, 3, 1, 1, 0, 3, 0, 1, 1, + 3, 0, 1, 1, 3, 1, 3, 4, 4, 4, + 4, 5, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 3, 4, 1, 0, 10, 6, 5, 6, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, + 3, 4, 6, 5, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 1, 2, 2, 4, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 1, 0, + 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 3, 2, 2, 3, 4, 2, 2, 2, + 5, 5, 7, 4, 3, 2, 3, 2, 1, 1, + 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, + 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, + 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, + 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, + 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, + 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, + 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, + 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, + 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, + 2, 2, 0, 2, 4, 3, 1, 1, +}; +static const YYINT yydefred[] = { 1, + 0, 85, 0, 0, 268, 0, 0, 0, 0, 782, + 783, 0, 0, 0, 0, 0, 0, 860, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, + 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, + 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, + 108, 0, 275, 0, 0, 839, 36, 39, 37, 0, + 38, 0, 192, 394, 395, 0, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, + 781, 0, 0, 0, 219, 220, 0, 0, 226, 227, + 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, + 0, 0, 0, 803, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 575, 733, 0, 710, 718, + 716, 0, 719, 720, 721, 722, 723, 724, 729, 730, + 731, 732, 692, 717, 0, 709, 0, 0, 0, 513, + 0, 576, 577, 578, 0, 0, 0, 0, 0, 0, + 714, 0, 0, 239, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, + 0, 813, 831, 849, 863, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 581, 0, 574, 0, 31, 0, 0, 0, 0, + 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, + 73, 0, 0, 103, 0, 21, 798, 0, 0, 804, + 805, 806, 808, 0, 809, 810, 811, 812, 0, 861, + 862, 0, 0, 0, 725, 726, 727, 728, 691, 0, + 694, 0, 711, 713, 237, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 695, 0, 0, 0, 0, 0, 0, 706, 0, 700, + 0, 0, 0, 0, 0, 699, 698, 0, 0, 0, + 0, 0, 234, 0, 0, 0, 64, 440, 68, 744, + 0, 0, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 0, 375, 0, 338, 346, + 347, 0, 0, 0, 0, 368, 5, 0, 528, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, + 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, + 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, + 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, + 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, + 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, + 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, + 412, 436, 0, 0, 0, 0, 794, 784, 0, 0, + 842, 841, 840, 0, 0, 0, 213, 0, 199, 193, + 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, + 197, 0, 0, 391, 0, 0, 0, 0, 0, 753, + 0, 752, 0, 0, 0, 0, 0, 314, 315, 0, + 0, 0, 0, 75, 69, 0, 96, 800, 0, 0, + 807, 0, 693, 712, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 705, 0, 0, + 0, 0, 737, 696, 0, 734, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, + 256, 0, 0, 839, 0, 0, 3, 0, 339, 174, + 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, + 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, + 350, 530, 529, 531, 532, 44, 0, 0, 527, 533, + 534, 537, 536, 538, 542, 543, 0, 541, 544, 0, + 0, 0, 0, 549, 0, 0, 0, 0, 0, 385, + 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, + 0, 0, 372, 0, 0, 0, 0, 12, 816, 824, + 825, 814, 817, 0, 0, 836, 0, 0, 13, 0, + 834, 0, 832, 0, 0, 0, 0, 14, 856, 857, + 850, 0, 0, 15, 867, 868, 864, 0, 125, 126, + 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, + 0, 0, 404, 0, 0, 843, 844, 845, 846, 847, + 848, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 757, 758, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, + 704, 0, 0, 0, 0, 0, 179, 180, 0, 0, + 0, 0, 0, 139, 0, 245, 259, 849, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 535, 0, 566, + 0, 0, 0, 564, 367, 384, 370, 0, 387, 376, + 377, 378, 379, 381, 382, 380, 0, 0, 0, 0, + 819, 818, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 855, 0, 0, 0, 0, 0, 0, + 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, + 0, 0, 0, 0, 398, 403, 0, 786, 0, 0, + 601, 639, 593, 594, 0, 628, 595, 596, 597, 598, + 599, 600, 630, 606, 607, 608, 609, 0, 0, 0, + 636, 0, 0, 0, 0, 591, 592, 615, 616, 617, + 634, 618, 619, 620, 621, 0, 0, 624, 0, 632, + 638, 273, 0, 0, 0, 0, 0, 0, 0, 741, + 0, 0, 0, 0, 746, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 444, 0, 77, 0, 97, 98, 0, 99, + 100, 101, 0, 0, 0, 487, 486, 0, 0, 0, + 0, 477, 476, 475, 474, 472, 470, 471, 473, 485, + 484, 483, 482, 0, 701, 702, 739, 735, 0, 0, + 0, 244, 243, 0, 0, 258, 257, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, + 358, 0, 0, 0, 0, 0, 0, 359, 0, 0, + 0, 0, 547, 0, 0, 550, 0, 0, 0, 344, + 0, 0, 0, 373, 374, 815, 826, 0, 828, 820, + 823, 801, 827, 833, 835, 0, 0, 0, 0, 0, + 134, 0, 0, 0, 0, 157, 0, 0, 0, 148, + 141, 294, 0, 0, 0, 305, 306, 307, 308, 300, + 301, 302, 299, 303, 304, 0, 0, 297, 0, 0, + 0, 0, 0, 0, 402, 410, 409, 408, 407, 405, + 406, 0, 0, 207, 629, 602, 603, 604, 605, 0, + 625, 631, 633, 637, 0, 0, 0, 635, 622, 623, + 677, 646, 647, 0, 674, 648, 649, 650, 651, 652, + 653, 676, 658, 659, 660, 661, 644, 645, 666, 667, + 668, 669, 670, 671, 672, 673, 643, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 662, 0, 0, 610, 200, 0, 209, 0, 191, 0, + 760, 759, 0, 756, 0, 755, 742, 0, 749, 78, + 75, 70, 0, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 81, 82, 0, 80, 0, 95, 0, + 481, 480, 479, 478, 0, 0, 190, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, + 251, 252, 253, 254, 246, 0, 0, 0, 173, 265, + 264, 266, 267, 260, 181, 0, 362, 0, 365, 366, + 0, 45, 46, 0, 546, 0, 552, 553, 345, 0, + 565, 0, 0, 0, 854, 865, 0, 0, 160, 0, + 0, 0, 145, 0, 163, 0, 0, 296, 0, 0, + 0, 318, 319, 320, 321, 0, 0, 790, 0, 788, + 0, 0, 0, 0, 675, 654, 655, 656, 657, 664, + 0, 0, 665, 0, 611, 0, 272, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 211, 441, 0, 0, 78, 0, 0, 0, + 217, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 0, 87, + 86, 0, 435, 795, 703, 0, 186, 0, 189, 0, + 0, 247, 248, 249, 250, 263, 261, 262, 357, 0, + 0, 548, 568, 388, 389, 0, 155, 0, 0, 166, + 0, 165, 162, 0, 0, 309, 310, 311, 312, 0, + 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, + 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 750, 67, 169, 0, 0, 434, 0, 433, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, + 423, 0, 422, 0, 421, 0, 419, 417, 0, 418, + 420, 0, 432, 0, 431, 0, 430, 0, 429, 0, + 450, 0, 446, 445, 0, 449, 0, 448, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 364, 0, 0, + 158, 161, 146, 295, 313, 270, 0, 792, 0, 0, + 588, 0, 614, 0, 761, 0, 0, 0, 766, 751, + 215, 214, 502, 498, 428, 0, 427, 0, 426, 0, + 425, 0, 500, 498, 496, 494, 488, 491, 500, 498, + 496, 494, 511, 504, 447, 507, 89, 91, 0, 0, + 188, 0, 0, 0, 0, 168, 0, 0, 641, 0, + 587, 0, 613, 0, 0, 0, 0, 0, 500, 498, + 496, 494, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, + 821, 322, 0, 763, 764, 765, 466, 503, 465, 499, + 0, 0, 0, 0, 456, 501, 455, 454, 497, 453, + 495, 451, 490, 489, 452, 492, 493, 460, 459, 458, + 457, 469, 512, 506, 505, 467, 508, 0, 468, 510, + 255, 0, 0, 0, 0, 0, 464, 463, 462, 461, + 509, 0, 0, 360, 0, 327, 323, 332, 333, 334, + 335, 336, 324, 325, 326, 328, 329, 330, 331, 274, + 0, 0, 0, 0, 586, 0, 0, 0, 0, 182, + 337, 0, 0, 0, 0, 0, 0, 0, 0, 183, +}; +#if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING) +static const YYINT yystos[] = { 0, + 545, 273, 409, 410, 411, 412, 413, 431, 432, 448, + 449, 450, 451, 455, 456, 461, 464, 471, 472, 526, + 527, 529, 530, 531, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 59, 555, 556, 635, 641, 642, 657, + 658, 660, 661, 663, 664, 665, 666, 667, 668, 669, + 671, 673, 675, 677, 678, 679, 680, 681, 682, 684, + 685, 686, 699, 717, 723, 470, 260, 261, 263, 546, + 547, 91, 561, 319, 380, 719, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 634, 634, 263, 269, 272, 295, 296, 300, 302, + 309, 326, 341, 40, 552, 553, 621, 623, 624, 61, + 91, 528, 636, 470, 638, 640, 470, 546, 264, 554, + 554, 264, 265, 571, 571, 268, 271, 275, 276, 277, + 278, 279, 281, 282, 283, 284, 286, 287, 290, 291, + 292, 293, 297, 298, 306, 308, 323, 324, 325, 358, + 359, 414, 415, 416, 543, 91, 33, 546, 550, 575, + 600, 618, 622, 624, 641, 642, 696, 123, 546, 546, + 546, 546, 262, 267, 578, 579, 578, 578, 123, 123, + 662, 123, 123, 123, 123, 578, 625, 315, 687, 626, + 278, 281, 282, 283, 284, 286, 287, 288, 123, 38, + 718, 721, 722, 554, 639, 46, 554, 627, 547, 91, + 575, 618, 619, 624, 696, 262, 288, 61, 583, 44, + 40, 40, 301, 303, 304, 305, 552, 552, 619, 620, + 622, 575, 61, 40, 554, 554, 462, 546, 638, 355, + 356, 357, 380, 474, 476, 477, 478, 479, 546, 330, + 331, 546, 546, 575, 281, 282, 283, 284, 618, 306, + 618, 279, 280, 289, 270, 272, 575, 277, 278, 279, + 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, + 589, 472, 42, 546, 624, 33, 546, 554, 47, 360, + 361, 362, 391, 91, 60, 42, 38, 391, 391, 391, + 391, 552, 623, 618, 683, 583, 41, 267, 41, 41, + 659, 545, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 417, 418, 419, 420, 421, + 422, 459, 473, 508, 509, 123, 125, 547, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 664, 667, 678, 679, 680, 682, 701, 702, + 703, 704, 705, 706, 707, 710, 670, 672, 674, 676, + 41, 294, 323, 327, 330, 331, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 353, 356, + 363, 372, 546, 619, 316, 688, 294, 327, 329, 330, + 331, 332, 333, 338, 347, 352, 354, 366, 367, 368, + 369, 370, 371, 372, 373, 379, 552, 42, 40, 91, + 559, 40, 559, 40, 559, 40, 559, 40, 559, 40, + 559, 40, 720, 721, 40, 578, 262, 263, 44, 58, + 328, 330, 331, 337, 546, 546, 93, 294, 327, 329, + 330, 331, 332, 366, 367, 368, 369, 372, 376, 377, + 378, 480, 575, 61, 472, 546, 40, 61, 552, 40, + 123, 40, 43, 263, 554, 554, 41, 374, 375, 91, + 546, 548, 619, 123, 40, 583, 93, 421, 637, 546, + 475, 391, 618, 280, 546, 619, 40, 40, 281, 282, + 283, 284, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 546, 93, 93, 93, 546, 554, 546, 40, + 40, 546, 275, 93, 554, 576, 577, 575, 602, 603, + 546, 546, 546, 546, 575, 683, 125, 322, 409, 423, + 428, 453, 454, 473, 508, 509, 125, 658, 661, 663, + 664, 667, 678, 679, 680, 682, 690, 691, 693, 695, + 125, 554, 554, 554, 91, 365, 542, 91, 358, 619, + 58, 547, 554, 554, 571, 266, 286, 287, 40, 570, + 571, 547, 554, 623, 270, 272, 575, 624, 619, 342, + 583, 722, 552, 620, 40, 578, 452, 40, 662, 310, + 312, 313, 314, 708, 709, 711, 713, 714, 715, 716, + 547, 554, 705, 463, 465, 468, 469, 125, 678, 679, + 682, 725, 726, 727, 728, 339, 463, 466, 125, 724, + 726, 729, 730, 296, 409, 461, 464, 125, 679, 682, + 731, 461, 464, 125, 679, 682, 732, 40, 330, 331, + 332, 366, 367, 368, 60, 617, 619, 689, 40, 40, + 558, 40, 554, 554, 554, 554, 571, 570, 570, 125, + 44, 547, 41, 554, 554, 330, 331, 332, 366, 367, + 368, 40, 40, 546, 546, 93, 583, 632, 633, 123, + 575, 306, 611, 612, 619, 262, 44, 41, 41, 621, + 60, 569, 601, 274, 607, 609, 557, 724, 391, 546, + 274, 320, 321, 562, 554, 40, 40, 40, 40, 554, + 554, 554, 571, 554, 570, 570, 571, 554, 554, 554, + 571, 93, 550, 550, 550, 619, 619, 275, 44, 93, + 62, 44, 42, 365, 629, 630, 554, 554, 639, 365, + 542, 358, 619, 123, 662, 123, 123, 123, 58, 554, + 91, 546, 91, 546, 554, 552, 274, 40, 40, 546, + 619, 40, 578, 575, 547, 551, 554, 41, 40, 275, + 558, 572, 573, 574, 125, 619, 708, 311, 705, 712, + 712, 712, 712, 547, 554, 705, 317, 317, 467, 61, + 42, 554, 614, 61, 583, 578, 578, 61, 61, 578, + 578, 40, 470, 554, 546, 470, 546, 470, 554, 294, + 306, 307, 324, 374, 543, 43, 45, 563, 564, 616, + 44, 554, 583, 631, 91, 575, 583, 41, 93, 41, + 41, 41, 41, 41, 720, 41, 58, 263, 44, 554, + 257, 271, 276, 277, 279, 280, 281, 282, 283, 284, + 286, 287, 289, 290, 291, 292, 293, 335, 337, 342, + 358, 391, 481, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 503, 123, 580, 581, 700, 318, 549, 93, 61, 41, + 44, 607, 263, 44, 125, 61, 263, 61, 91, 602, + 40, 40, 546, 548, 125, 277, 278, 279, 281, 282, + 283, 284, 286, 287, 290, 291, 292, 293, 297, 298, + 365, 587, 588, 610, 682, 722, 283, 284, 318, 457, + 458, 460, 578, 546, 546, 41, 41, 554, 554, 554, + 571, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 550, 41, 41, 554, 576, 575, 40, + 619, 327, 372, 546, 619, 327, 372, 552, 546, 91, + 546, 91, 546, 552, 274, 659, 125, 692, 694, 674, + 554, 93, 554, 554, 44, 93, 575, 548, 554, 571, + 274, 583, 41, 40, 44, 41, 44, 572, 575, 41, + 44, 547, 554, 547, 554, 554, 40, 58, 40, 41, + 41, 40, 40, 41, 41, 554, 550, 546, 318, 546, + 41, 40, 294, 565, 566, 564, 40, 546, 606, 62, + 619, 41, 391, 631, 294, 301, 303, 304, 305, 342, + 343, 344, 388, 389, 390, 392, 395, 41, 505, 506, + 507, 554, 480, 585, 41, 559, 559, 559, 559, 559, + 559, 554, 554, 41, 280, 281, 282, 283, 284, 40, + 567, 497, 489, 501, 40, 482, 502, 277, 567, 567, + 257, 276, 277, 279, 280, 281, 282, 283, 284, 286, + 287, 289, 290, 291, 292, 293, 484, 485, 487, 488, + 489, 491, 492, 495, 496, 498, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 42, 560, 91, 42, 41, 579, 547, 61, 582, 283, + 554, 562, 583, 584, 618, 632, 125, 61, 612, 123, + 123, 40, 583, 554, 62, 572, 572, 569, 601, 40, + 91, 40, 91, 281, 282, 283, 284, 40, 91, 40, + 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, + 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, + 91, 40, 91, 359, 364, 613, 682, 578, 547, 41, + 41, 41, 41, 41, 572, 451, 641, 546, 575, 554, + 554, 44, 575, 548, 125, 424, 425, 426, 427, 125, + 667, 679, 680, 682, 697, 427, 429, 430, 125, 667, + 679, 680, 682, 698, 125, 391, 93, 93, 619, 582, + 619, 41, 41, 546, 41, 572, 551, 551, 41, 585, + 574, 317, 317, 614, 41, 554, 554, 40, 566, 575, + 604, 605, 619, 44, 615, 546, 583, 41, 40, 58, + 58, 93, 93, 93, 93, 40, 548, 263, 44, 263, + 504, 583, 91, 91, 280, 281, 282, 283, 284, 525, + 44, 91, 38, 43, 93, 554, 125, 277, 278, 279, + 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, + 299, 583, 586, 588, 40, 40, 123, 610, 607, 93, + 41, 41, 40, 40, 562, 554, 554, 554, 40, 91, + 40, 91, 40, 91, 40, 91, 554, 554, 554, 554, + 554, 554, 571, 554, 554, 570, 554, 570, 571, 554, + 554, 554, 554, 554, 554, 554, 571, 554, 587, 554, + 263, 299, 554, 299, 306, 618, 554, 297, 346, 365, + 600, 608, 41, 637, 41, 546, 93, 93, 619, 619, + 510, 623, 623, 623, 623, 623, 623, 623, 547, 44, + 274, 41, 547, 547, 554, 58, 41, 554, 546, 41, + 44, 616, 615, 631, 554, 393, 394, 393, 394, 581, + 617, 554, 61, 44, 554, 554, 583, 93, 554, 43, + 93, 281, 282, 283, 284, 554, 281, 282, 283, 554, + 610, 125, 125, 62, 572, 572, 41, 93, 41, 93, + 554, 554, 554, 554, 554, 554, 571, 554, 41, 93, + 41, 93, 41, 93, 41, 93, 41, 41, 93, 41, + 41, 93, 41, 93, 41, 93, 41, 93, 41, 93, + 41, 93, 41, 41, 93, 41, 263, 41, 93, 306, + 618, 91, 546, 40, 44, 274, 552, 619, 548, 614, + 41, 615, 619, 41, 41, 41, 40, 263, 554, 583, + 93, 93, 93, 554, 41, 58, 58, 58, 41, 125, + 41, 41, 40, 40, 41, 93, 41, 93, 41, 93, + 41, 93, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 41, 40, 263, 93, 61, 572, + 619, 548, 575, 60, 568, 569, 58, 572, 41, 44, + 41, 580, 93, 554, 554, 554, 596, 593, 40, 40, + 40, 40, 592, 593, 594, 595, 590, 591, 592, 593, + 594, 595, 599, 597, 598, 587, 41, 568, 619, 40, + 614, 41, 583, 41, 41, 41, 41, 562, 41, 554, + 592, 593, 594, 595, 41, 554, 41, 41, 554, 41, + 571, 41, 554, 570, 41, 570, 571, 41, 41, 41, + 41, 41, 587, 263, 299, 41, 299, 306, 41, 618, + 582, 40, 274, 572, 628, 44, 41, 41, 41, 41, + 263, 572, 548, 41, 294, 309, 325, 334, 348, 349, + 350, 351, 380, 381, 382, 383, 384, 385, 386, 123, + 583, 41, 40, 40, 41, 510, 572, 554, 358, 41, + 41, 552, 575, 619, 274, 548, 568, 40, 572, 41, +}; +#endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */ +static const YYINT yydgoto[] = { 1, + 158, 71, 482, 897, 159, 776, 105, 106, 802, 35, + 36, 707, 781, 421, 1132, 73, 714, 828, 829, 1034, + 1035, 1081, 1545, 1546, 580, 1601, 782, 783, 784, 211, + 526, 527, 175, 176, 893, 894, 1139, 687, 1144, 1064, + 1313, 932, 933, 281, 1567, 1568, 1563, 1558, 1565, 1566, + 1557, 1574, 1575, 1573, 161, 703, 529, 530, 1261, 1262, + 1039, 705, 1372, 706, 934, 693, 694, 1196, 803, 1265, + 830, 656, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1625, 745, 746, 834, 688, 689, 92, 37, + 113, 489, 115, 205, 116, 38, 39, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 40, 41, 311, 42, 43, 181, 44, 353, 46, + 47, 354, 49, 50, 367, 51, 368, 52, 369, 53, + 370, 54, 355, 356, 357, 58, 358, 305, 60, 61, + 62, 189, 396, 658, 557, 558, 988, 559, 989, 560, + 215, 1225, 1234, 63, 895, 359, 360, 361, 362, 789, + 364, 365, 604, 605, 366, 606, 790, 607, 608, 609, + 610, 64, 201, 76, 433, 434, 936, 65, 630, 622, + 623, 624, 625, 632, 633, 641, 647, +}; +static const YYINT yysindex[] = { 0, +14035, 0, -360, 458, 0, 60, -212, 1699, 1699, 0, + 0, -131, 1208, 116, 186, -370, -245, 0, 246, 71, + 71, -27, -27, 9462, 183, 0, 458, 458, 458, 458, + 0, 0, 193, 0, 232, 232, 232, 0, 0, 0, + 337, 389, 0, 0, 0, 0, 0, 0, 0, 417, + 551, 567, 576, 0, 0, 0, 0, 0, 0, 232, + 0, 272, 0, 589, 71, 0, 0, 0, 0, 583, + 0, 71, 0, 0, 0, 524, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1670, 38, 662, 0, 0, 687, 693, 0, 0, + 590, 1047, 1047,11884, 7392, 0, 692, 0, 0, 717, + 71, 71, -40, 0, 1834, 638, 458, 583, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7392, 0, 0, + 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 456, 185, 285, 0, + 1148, 0, 0, 0, 1722, 42, 425, 583, 770, 76, + 0, 435, 450, 0, 483, 489, 1095, 185, 147, 583, + 583, 583, 0, 0, 766, 599, 855, 868, 0, 0, +12884, 0, 0, 0, 0, 880, 5016, 1670, 607, 6049, + 887, 75, 91, 99, 106, 119, 122, 893, 756, 898, + 0, 0, 232, 203, 897, 458, 857,11441, 891, 134, + 778, 0, 135, 0, 1047, 0, 921, 62, 922, 707, + 71, 71, 0, 0, 0, 0, 0, 0, 0, 933, + 0,11030, 108, 0, 885, 0, 0, 2, 1834, 0, + 0, 0, 0, 514, 0, 0, 0, 0, 583, 0, + 0, 14, 583, 778, 0, 0, 0, 0, 0, 185, + 0, 711, 0, 0, 0, 0,11603, 953, 964, 839, + 976, 986, 993, 996, 1011, 1021, 1024, 1044, 1052, 1053, + 0, 458, 915, 126, 1003, 760, 583, 0, 458, 0, + 1068, 1088, 458, 346, 7392, 0, 0, 458, 458, 458, + 458, 7392, 0, 185, 1022, 922, 0, 0, 0, 0, + 6283,13902, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 0, 71, 0, 0, + 0, 71, 1045, -56,12052, 0, 0, 1079, 0, 573, + 71, -27, 416, 573, 1095, 4830, 1670, -125, 1047,11884, + 1106, 232, 0, 0, 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 819, 355, 775, 129, 1000, 404, + 0, 1108, 0, 0, 0, 0, 0, 0, 587, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 616, 0, 1670, 0, 1119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1145, 0, 0, 1147, 71, 71, + 0, 71, 0, 71, 0, -27, 0, 364, 0, 364, + 0, 0, 1063, 1151, 524, 1167, 0, 0, 71, 71, + 0, 0, 0, 785, 583, 583, 0, 1169, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1170, 166, 0, 458, 439, 951, 1091, 7392, 0, +12125, 0, 956, 1176, 1189, 1190, 1095, 0, 0, 118, + 583, 1172, 962, 0, 0, 922, 0, 0, 774, 15, + 0, 458, 0, 0, 583, 965, 475, 71, 1201, 1202, + 1205, 1207, 71, 71, 71, -27, 544, 823, 71, 71, + 71, -27, 449, 458, 458, 458, 583, 0, 583, 1670, + 1670, 583, 0, 0, 974, 0, 98, 778, 1188, 1214, + 583, 583, 583, 583,11172, 0, 0, 894, 0, 0, + 0, 71, 71, 0, -308,12194, 0, 1138, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1146, 1152, 1155, + 0, 0, 0, 1210, 71, 255, 522, 71, 1047, 997, + 0, 0, 0, 0, 0, 0, 1230, 1242, 0, 0, + 0, 0, 0, 0, 0, 0,11603, 0, 0, 1244, + 922, 232, 7392, 0, 573, 1245, 1249, 1010,12983, 0, + 1670, 0, 0, 0, 819, -47, -47, -47, -47, 355, + 977, 978, 0, 830, 1237, 40, -6, 0, 0, 0, + 0, 0, 0, 232, 232, 0, 1238, 1243, 0, 232, + 0, 232, 0, 1263, -215, 458, 847, 0, 0, 0, + 0, 458, 848, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 1277, 71, 951, + 5140, 951, 1266, 1235, 1289, 1290, 1300, 1302, 1304, 0, + 756, 1305, 0, 1292, 18, 0, 0, 0, 0, 0, + 0, 71,14390, 32, 473, 458, 581, 1312, 1310, 0, + 972, 543, 1311, 1233, 1301, 0, 1102, 0, 0, 1308, + 5450, 1330, 1331, 716, 1258, 566, 506, 232, 458, 583, + 458, 0, 0, 1333, 1343, 71, 71, 71, -27, 1344, + 1345, 1348, 1351, 1352, 1355, 1357, 1361, 1362, 1366, 1367, + 1373, 458, 770, 770, 770, 1374, 1375, 71, 429, 0, + 0, 7392, 1377, 1670,11782, 979, 0, 0, 897, 558, + 644, 1047, 1154, 0,13134, 0, 0, 0, 71, 1329, + 71, 583, 71, 651, 1340, 7392, 716, 71, -27, 583, + 1163, 951, 1406, 208, 1405, 1409, 1408, 0, 1010, 0, + 5140, 1412, 1411, 0, 0, 0, 0, 573, 0, 0, + 0, 0, 0, 0, 0, 0, 524, 71, 71, 1417, + 0, 0, 1400, 1419, 922, 1421, 1422, 1420, 1435, 1437, + 1438, 71, 458, 0, 583, 458, 70, 458, 1440, 1444, + 0, 0, 0, 0, 1194, 0, 0, 83, 189, 1432, + 1670, 1454, 13, 1182, -64, 3, 592, 1407, 0, 1407, + 1407, 1407, 1407, 1407, 0, 0, 71, 0, 71, 1455, + 0, 0, 0, 0, 861, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1457, 1005, 1016, + 0, 1013, 1467, 55, 1234, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1457, 1457, 0,10342, 0, + 0, 0, 112, 1471, 232, 524, 1452, 458, 664, 0, + 951, 1390, 1458,12125, 0, 1393, 0, 130, 71, 1456, + 1010, 1010, 583, 1172, 0, 125, 141, 971, 149, 169, + 371, 430, 432, 442, 447, 468, 482, 490, 516, 520, + 532, 0, 0, 375, 0, 232, 0, 0, 524, 0, + 0, 0, 1479, 583, 583, 0, 0, 1480, 1481, 1482, + 1486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 0, 778, 1010, + 1077, 0, 0, 583, 458, 0, 0, 7392, 583, 71, + 583, 71, 696, 7392, 716,14105, 0, 1384, 349, 2574, + 0, 1139, 1436, 1439, 1670, 1452,11603, 0, 1490, 1492, + 458, 734, 0, 1010, 573, 0, 573, 1501, 3, 0, + 1010, 1226, 1227, 0, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 1504, 770, 583, 71, 583, + 0, 71, 1506, 1194, 7392, 0, 1670, 769, 458, 0, + 0, 0, 951, 1370, 1508, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1494, 1495, 0, 1462, 1472, + 1473, 1474, 1528, 716, 0, 0, 0, 0, 0, 0, + 0, 53, 1306, 0, 0, 0, 0, 0, 0, 1071, + 0, 0, 0, 0, 951, 1485, 1487, 0, 0, 0, + 0, 0, 0, 1186, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -5, 37, 0, 0, -24, 0, 2876, 0, 1543, + 0, 0, 922, 0, 1548, 0, 0, 1466, 0, 0, + 0, 0, 922, 1498, 0, 1558, 1563, 1568, 1573, 475, + 71, 71, 71, 535, 545, 549, 562, 71, 71, 71, + 71, 71, 71, -27, 71, 544, 71, 823, 71, 71, + 71, 71, 71, 71, 71, -27, 71, 2266, 71, 374, + 71, 1606, 71, 0, 0, 3784, 0, 1579, 0, 1193, + 0, 0, 0, 0, 1580, 1095, 0, 583, 166, 1529, + 1530, 1670,11603, 1114, 0, 1095, 1095, 1095, 1095, 0, + 0, 0, 0, 0, 0, 1095, 1095, 1095, 0, 0, + 0, 0, 0, 0, 0, 524, 0, 1582, 0, 0, + 1354, 0, 0, 583, 0, 1588, 0, 0, 0, 524, + 0, 524, 71, 1574, 0, 0, 1590, 71, 0, 166, + 1592, 1594, 0, 36, 0, 769, 922, 0, 71, 408, + 593, 0, 0, 0, 0,14390, 1576, 0, 71, 0, + 1578, 968, 71, 71, 0, 0, 0, 0, 0, 0, + 951, 1552, 0, 71, 0, 401, 0, 1608, 1609, 982, + 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1619, 1620, 1622, + 0, 922, 0, 0, 71, 764, 0, 8, 1521, 1601, + 0, 0, 1010, 1010, 1624, 1575, 1625, 1577, 71, 71, + 71, 71, 71, 71, -27, 71, 1628, 1583, 1631, 1589, + 1644, 1593, 1646, 1595, 1648, 1649, 1599, 1654, 1655, 1605, + 1658, 1607, 1660, 1618, 1661, 1659, 1663, 1662, 1664, 1671, + 1665, 1667, 1673, 1668, 1491, 1712, 1678, 0, 1076, 0, + 0, 674, 0, 0, 0, 115, 0, 1713, 0, 1489, + 1047, 0, 0, 0, 0, 0, 0, 0, 0, 1670, + 716, 0, 0, 0, 0, 40, 0, 1735, 769, 0, + 1670, 0, 0, 4537, 1736, 0, 0, 0, 0, 1738, + 1741, 1523, 71, 951, 1700, 1702, 922, 0, 1708, 71, + 0, 1762, 1764, 1765, 1766, 1771, 1749, 1755, 1761, 1773, + 120, 0, 0, 0, 1779, 1780, 0, 1782, 0, 1783, + 1785, 1731, 1789, 1743, 1790, 1744, 1797, 1746, 0, 1800, + 0, 1801, 0, 1802, 0, 1803, 0, 0, 1804, 0, + 0, 1811, 0, 1821, 0, 1823, 0, 1824, 0, 1825, + 0, 1828, 0, 0, 1830, 0, 1831, 0, 1833, 1617, + 0, 1778, 585, 1010, 1670, 716, 7392, 0, 1815, 1818, + 0, 0, 0, 0, 0, 0, 1010, 0, 1836, 939, + 0,14463, 0, 1791, 0, 71, 71, 71, 0, 0, + 0, 0, 0, 0, 0, 1838, 0, 1842, 0, 1843, + 0, 1846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2266, 1847, + 0, 1815,11603, 1796, 1849, 0, 40, 1850, 0, 951, + 0, 112, 0, 1851, 1852, 1853, 34, 44, 0, 0, + 0, 0, 47, 94, 102, 10, 27, 464, 104, 132, + 139, 67, 1961, 23, 961, 0, 1452, 1856, 1623, 1010, + 0, 0, 1006, 0, 0, 0, 0, 0, 0, 0, + 157, 164, 171, 97, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1627, 0, 0, + 0, 1010, 716, 1858, 2226, 951, 0, 0, 0, 0, + 0, 1859, 1861, 0, 1863, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 786, 1394, 1010, 71, 0, 1549, 1865, 1867, 1047, 0, + 0, 7392,11603, 1635, 716, 1815, 1871, 1010, 1872, 0, +}; +static const YYINT yyrindex[] = { 0, + 0, 0, 5326, 0, 0,11662, 2579, 0, 0, 0, + 0, 0,11982, 0, 0, 384, 2444, 0, 663, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1873, 1873, 1873, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1873, + 0, -46, 0, 0, 0, 0, 0, 0, 0, 1792, + 0, 0, 0, 0, 0, 1787, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7693, 0, 0, 0, 0, 0, 0, + 5760,11552,11552, 0, 0, 0, 6212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9896, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1756, 2364, 0, + 0, 0, 0, 0, 0, 0,11982, 1793, 4793, 5103, + 5413, 5723, 0, 0, 0, 1875, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1794,11552, + 0, 9396, 9396, 9396, 9396, 9396, 9396, 0, 0, 0, + 0, 0, 1873, 8068, 0, 0, 0, 0, 0, 0, + 7085, 0, 9003, 0,11982, 0, 0, 0, 9176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8283, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1805, 0, + 0, 1806,10008, 4492, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, + 0, 0, 0, 1882, 1870, 0, 0, 0, 0, 0, + 0, 0, 0, 1793, 0, 6033, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,11982, 0, 0, 0,11982, 0, + 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1812, 1319, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1814, 0, 0, 7895, 0, 0,11982, 0, 0, 1882, + 109, 1887, 0, 0, 0, 6467, 0, 0,10141, 1813, + 0, 0, 0, 0,12532, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4188, 0, 2060, 0, + 0,10252, 0, 0, 174, 0, 0, 639, 0, 1878, +10283,10438,10579,10610, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11982, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13285, 1873, 0, 0, 1896, 0, 0,12277, 0, 0, + 0, 0, 0, 0,13384, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1873, 1873, 0, 0, 0, 0, 1873, + 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 1819, 0, 4672, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8252, 0, 0, 0, 0, 0, + 0, 0, 153, 9704, 0, 7336, 0, 0, 1902, 0, + 0, 0, 1839, 0, 0, 0, 0, 0, 0, 6646, + 1870, 0, 0, 0, 0, -52, 0, 1873, 0, 1827, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2668, 2972, 3276, 0, 0, 205, 511, 0, + 0, 0,11329, 0, 0,11982, 0, 0, 0, 0, + 0,11982, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13467, 0, 0, 0, 0, 0, 0, 0,12801, + 0, 0, 0, 0, 1903, 0, 1914, 0,12277, 0, + 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1964, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12336, 0, 0, 229, 0, 0, + 0, 0, 4672, 0, 0, 837, 0, 9396, 0, 9396, + 9396, 9396, 9396, 9396, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 224, 0, 9, 0, + 0, 0, 1918, 0, 0, 0, 9865, 7520, 0, 0, + 0, 0, 1039, 1814, 0, 0, 0, 0, 0, 0, +12277,12277,12380, 1887, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1840, 0, 1873, 0, 0, 0, 0, + 0, 0, 0, 1854,12631, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3580, 0, 0, 0, 0, 681,12277, + 0, 0, 0, 454, 0, 0, 0, 0, 1857, 0, +14176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13618, 0, 0, 0,13717, 0, 0, 0, 0, + 0, 0, 0,12277, 1896, 0, 1896, 0, 357, 0, +12405, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3182, 3486, 0, 1434, + 0, 0, 0,12336, 0, 0, 1938, 1919, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8444, 8628, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6901, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,10721, + 0, 0, 0, 0, 0,11982, 0, 1860, 0, 0, + 0, 0, 0, 0, 0,11982,11982,11982,11982, 0, + 0, 0, 0, 0, 0,11982,11982,11982, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,13868, 0, 0, 0, 0, 0, 905, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1941, 0, 229, 0, 1919, 4672, 0, 0, 0, + 0, 0, 0, 0, 0, 153, 1944, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9563, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12277,12277, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1919, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8801, 0, 0, 0, 0, 731, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12277, 0, 0, 0, 0, 1945, 0, + 0, 0, 0, 0, 0, 0,12277, 0, 0, 0, + 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1946, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1866, 0, 0,12277, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,12277, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12277, 0, 0, 0, 0, 0,11982, 0, + 0, 0, 0, 0, 0, 1945, 0,12277, 0, 0, +}; +#if YYBTYACC +static const YYINT yycindex[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; #endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned -# endif +static const YYINT yygindex[] = { 1808, + -4, -17, -693, 0, -444, -124, -98, 0, -7, 0, + 0, 0, 1569, -74, 0, 0, -870, 0, 1162, 0, + 957, 196,-1439, -445, -418, 5, -771, 0, 981, -22, + 1257, 0, -16, 1103, 495, 735, -965, -76, 0, 998, + 0,-1148, 872, 0, 0, 0,-1385, -852,-1309,-1052, + 0, 0, 0, 0, 822, 1111, 1325, 0, 0, 0, + 0, -658, 0, 0,-1055, 0, 1132, 0, -980,-1175, + 777, 767, -21, 4, 1695, 1581, 2026, -161, 74, 0, + 0, 0, 0, 0, 0, -790, 1150, 0, 2047, 0, + 0, 859, 1943, 1517, 0, -23, 2039, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -302, 1322, 0, -295, -239, -292, 45, 0, + 0, 29, 0, 0, 0, 0, 0, 0, 1324, 0, + 0, 0, 33, 6, 41, 0, 17, 1784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, -159, + 0, 0, 1461, 0, 0, 0, 253, 0, 0, 0, + 0, 0, 0, 0, 1416, 2013, -28, 0, 1602, 0, + 1715, 0, 0, 0, 0, 0, 0, +}; +#define YYTABLESIZE 14966 +static const YYINT yytable[] = { 70, + 165, 160, 162, 227, 228, 303, 56, 1008, 548, 668, + 914, 669, 120, 121, 118, 549, 219, 59, 550, 177, + 178, 363, 169, 170, 171, 172, 124, 125, 1142, 48, + 1240, 902, 1293, 55, 568, 203, 702, 1254, 1291, 1359, + 297, 57, 1044, 186, 296, 45, 642, 206, 119, 642, + 1600, 598, 642, 167, 804, 473, 750, 204, 209, 206, + 206, 849, 295, 1616, 207, 147, 34, 1602, 302, 733, + 734, 735, 78, 998, 1587, 336, 135, 206, 826, 1294, + 827, 801, 232, 283, 1589, 1292, 109, 1595, 725, 726, + 1403, 417, 306, 294, 1318, 213, 1279, 164, 218, 642, + 1297, 472, 1578, 235, 236, 254, 74, 1611, 238, 66, + 249, 252, 253, 297, 419, 206, 469, 296, 423, 425, + 427, 429, 431, 259, 599, 826, 261, 827, 267, 1295, + 422, 94, 1432, 167, 1597, 295, 216, 1630, 424, 1156, + 1157, 739, 1598, 1569, 1608, 426, 304, 485, 316, 288, + 72, 284, 287, 1134, 1484, 579, 486, 112, 428, 283, + 206, 430, 198, 338, 1160, 420, 294, 75, 316, 1152, + 203, 206, 1609, 1591, 467, 283, 110, 164, 34, 1610, + 1162, 420, 393, 584, 471, 463, 436, 34, 1168, 420, + 740, 394, 206, 585, 585, 468, 420, 1627, 1205, 119, + 445, 446, 1133, 297, 1628, 466, 613, 296, 1170, 420, + 524, 1629, 420, 475, 476, 1161, 590, 738, 515, 67, + 68, 1571, 69, 1492, 114, 295, 1667, 481, 1037, 285, + 484, 1163, 1246, 751, 490, 483, 122, 123, 493, 1169, + 109, 734, 308, 585, 1510, 297, 439, 1004, 740, 296, + 593, 1593, 1151, 629, 813, 216, 294, 147, 147, 1171, + 440, 1431, 495, 788, 640, 640, 738, 295, 156, 135, + 496, 591, 528, 122, 123, 156, 111, 513, 518, 535, + 848, 517, 304, 285, 519, 1614, 525, 964, 522, 1325, + 119, 1214, 576, 531, 532, 533, 534, 740, 294, 216, + 119, 67, 68, 119, 69, 168, 78, 119, 566, 755, + 119, 78, 577, 578, 640, 1278, 554, 56, 562, 592, + 563, 1615, 572, 587, 564, 217, 582, 556, 59, 820, + 122, 123, 573, 574, 119, 596, 583, 98, 570, 552, + 48, 821, 822, 553, 55, 761, 575, 581, 611, 896, + 589, 555, 57, 712, 713, 551, 45, 119, 612, 823, + 122, 123, 290, 291, 292, 119, 1194, 119, 1027, 216, + 1277, 1195, 620, 620, 639, 645, 820, 67, 68, 167, + 69, 119, 579, 621, 621, 640, 646, 1029, 821, 822, + 1576, 216, 523, 67, 68, 119, 69, 269, 657, 619, + 269, 2, 119, 1043, 492, 709, 823, 34, 216, 824, + 1172, 663, 664, 98, 665, 1490, 666, 672, 109, 588, + 119, 237, 488, 164, 1613, 67, 68, 119, 69, 98, + 667, 674, 675, 34, 119, 290, 291, 292, 524, 363, + 1059, 1060, 1061, 1420, 67, 68, 691, 69, 67, 68, + 796, 69, 126, 964, 173, 579, 824, 286, 684, 179, + 685, 1173, 34, 597, 437, 438, 293, 626, 1158, 1174, + 766, 1176, 525, 1229, 695, 466, 1404, 336, 1194, 1572, + 98, 1178, 1063, 1195, 206, 567, 1180, 710, 156, 156, + 715, 156, 1319, 1421, 206, 720, 721, 722, 174, 724, + 579, 728, 729, 730, 1605, 67, 68, 1182, 69, 1594, + 723, 180, 727, 282, 67, 68, 731, 69, 206, 1290, + 1175, 1184, 1177, 736, 737, 290, 291, 292, 644, 1186, + 481, 686, 1179, 642, 747, 748, 1086, 1181, 483, 182, + 805, 732, 27, 28, 29, 30, 31, 32, 33, 753, + 109, 1435, 1436, 285, 736, 1188, 1087, 760, 1183, 1190, + 765, 762, 764, 262, 263, 898, 1581, 290, 291, 292, + 774, 1192, 1185, 264, 1329, 773, 241, 775, 825, 13, + 1187, 338, 770, 833, 1331, 837, 188, 777, 1333, 465, + 771, 627, 794, 615, 628, 363, 616, 617, 152, 153, + 154, 1335, 795, 736, 786, 465, 1189, 806, 807, 119, + 1191, 1621, 763, 810, 67, 811, 269, 69, 119, 269, + 523, 2, 1193, 473, 34, 1330, 200, 814, 206, 576, + 206, 815, 1065, 156, 473, 1332, 1361, 817, 836, 1334, + 819, 899, 203, 797, 797, 1539, 797, 978, 980, 577, + 578, 832, 1336, 984, 27, 28, 29, 30, 31, 32, + 33, 206, 92, 27, 28, 29, 30, 31, 32, 33, + 259, 1564, 1362, 183, 850, 655, 2, 1570, 528, 122, + 123, 576, 560, 548, 67, 68, 1588, 69, 119, 184, + 549, 943, 119, 550, 995, 1002, 206, 1489, 185, 913, + 560, 577, 578, 523, 944, 220, 945, 1592, 948, 949, + 950, 199, 1540, 579, 579, 117, 579, 67, 68, 969, + 69, 92, 935, 951, 561, 1548, 221, 122, 123, 576, + 967, 525, 222, 1194, 982, 590, 590, 338, 1195, 1212, + 974, 206, 561, 997, 979, 981, 983, 971, 975, 577, + 578, 991, 233, 993, 156, 994, 234, 1346, 1009, 1348, + 999, 260, 913, 1066, 1482, 1067, 1068, 1069, 1070, 1071, + 1012, 627, 627, 1000, 1245, 1226, 473, 1227, 1228, 1014, + 1013, 67, 68, 67, 69, 590, 69, 92, 937, 938, + 1015, 1016, 1542, 200, 712, 713, 10, 11, 12, 13, + 1406, 1407, 67, 68, 1026, 903, 307, 119, 1624, 576, + 126, 1028, 1264, 1030, 206, 297, 289, 67, 68, 296, + 69, 627, 1143, 939, 1038, 298, 1655, 1062, 473, 577, + 578, 1153, 67, 34, 1041, 69, 119, 295, 98, 1072, + 299, 1073, 916, 917, 918, 797, 919, 920, 921, 922, + 1632, 923, 924, 198, 13, 925, 926, 927, 928, 791, + 792, 793, 929, 930, 642, 308, 191, 643, 294, 192, + 193, 194, 195, 300, 196, 197, 198, 1145, 1137, 301, + 1247, 1657, 1248, 27, 28, 29, 30, 31, 32, 33, + 223, 1141, 224, 225, 226, 309, 1669, 67, 68, 618, + 69, 1154, 762, 67, 68, 762, 69, 695, 310, 27, + 28, 29, 30, 31, 32, 33, 649, 650, 651, 1198, + 371, 1199, 395, 67, 68, 216, 69, 119, 418, 1633, + 931, 126, 432, 67, 68, 92, 69, 435, 27, 28, + 29, 30, 31, 32, 33, 567, 1140, 1207, 567, 447, + 1197, 464, 652, 653, 654, 1209, 152, 153, 154, 98, + 470, 1213, 940, 941, 473, 942, 1267, 250, 251, 474, + 1208, 1666, 1210, 477, 1211, 67, 68, 487, 69, 1551, + 913, 473, 1550, 712, 713, 1408, 1409, 775, 491, 775, + 494, 554, 497, 1222, 1231, 639, 1244, 777, 1239, 777, + 1241, 1619, 556, 498, 1224, 1233, 640, 514, 1282, 297, + 473, 1414, 1260, 743, 552, 503, 1221, 1230, 553, 67, + 68, 1256, 69, 119, 1257, 504, 555, 119, 1223, 1232, + 551, 295, 505, 191, 1266, 506, 192, 193, 194, 195, + 1263, 196, 197, 198, 1427, 1428, 1429, 2, 473, 1626, + 507, 156, 626, 626, 1382, 1383, 1384, 1385, 34, 913, + 508, 1312, 294, 509, 1386, 1387, 1388, 255, 256, 257, + 258, 92, 92, 92, 92, 92, 37, 152, 153, 154, + 37, 1089, 1090, 510, 37, 37, 122, 123, 576, 478, + 479, 511, 512, 92, 92, 516, 269, 269, 37, 269, + 27, 28, 29, 30, 31, 32, 33, 520, 577, 578, + 92, 92, 92, 92, 676, 677, 678, 92, 92, 499, + 500, 501, 502, 92, 638, 1296, 92, 521, 600, 37, + 601, 602, 603, 92, 92, 565, 571, 290, 291, 292, + 1075, 1076, 1077, 1078, 1079, 595, 537, 648, 1604, 1606, + 679, 680, 681, 1326, 1327, 1328, 67, 68, 659, 69, + 1337, 1338, 1339, 1340, 1341, 1342, 156, 1344, 1345, 1347, + 1366, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1343, 1358, + 157, 1360, 1349, 1363, 660, 1367, 662, 670, 92, 92, + 1357, 92, 92, 92, 671, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 1376, 8, 9, 673, 682, 683, + 269, 269, 216, 690, 1417, 1379, 1380, 696, 1389, 697, + 67, 68, 1058, 69, 441, 13, 442, 443, 126, 698, + 699, 701, 1393, 444, 1394, 704, 627, 614, 711, 615, + 716, 717, 616, 617, 718, 1395, 719, 104, 738, 741, + 1398, 1164, 1165, 1166, 1167, 1399, 98, 742, 744, 1617, + 754, 1405, 1422, 1423, 1424, 1425, 1618, 759, 756, 768, + 767, 1412, 2, 97, 757, 1415, 1416, 758, 99, 109, + 100, 769, 1487, 772, 780, 778, 1419, 101, 779, 109, + 109, 109, 109, 797, 798, 634, 799, 800, 808, 109, + 109, 109, 812, 809, 102, 976, 838, 1426, 1430, 27, + 28, 29, 30, 31, 32, 33, 816, 818, 40, 103, + 831, 1441, 1442, 1443, 1444, 1445, 1446, 839, 1448, 840, + 841, 290, 291, 292, 1197, 67, 68, 1500, 69, 1447, + 842, 97, 843, 126, 844, 846, 99, 1481, 100, 847, + 977, 40, 900, 901, 904, 101, 40, 905, 40, 40, + 40, 906, 40, 95, 907, 40, 96, 1483, 908, 911, + 912, 98, 102, 946, 152, 153, 154, 40, 40, 40, + 40, 1480, 915, 947, 952, 953, 913, 103, 954, 97, + 98, 955, 956, 1488, 99, 957, 100, 958, 37, 37, + 37, 959, 960, 101, 1493, 1499, 961, 962, 635, 40, + 1268, 40, 1504, 963, 965, 966, 970, 265, 127, 266, + 102, 992, 128, 129, 130, 131, 132, 985, 133, 134, + 135, 136, 996, 137, 138, 103, 1001, 139, 140, 141, + 142, 40, 34, 40, 143, 144, 1003, 1197, 1005, 1006, + 13, 1007, 1010, 145, 1011, 146, 1017, 1018, 1019, 1022, + 636, 1020, 1021, 637, 1543, 1285, 1286, 1287, 1288, 1289, + 147, 148, 149, 1583, 1023, 1045, 95, 1024, 1025, 96, + 1031, 913, 1046, 1032, 1047, 1048, 1049, 1033, 1541, 152, + 153, 154, 866, 1040, 1042, 1074, 1080, 420, 1554, 1555, + 1556, 1082, 97, 98, 1083, 150, 1085, 99, 1220, 100, + 1088, 1135, 1138, 1084, 1147, 1150, 101, 1155, 1148, 1200, + 1201, 1202, 1203, 1050, 1051, 1052, 1204, 1206, 1237, 1236, + 1242, 1238, 1243, 102, 27, 28, 29, 30, 31, 32, + 33, 1249, 1252, 1253, 1255, 1258, 1579, 1269, 103, 1651, + 1590, 1270, 1271, 1620, 1272, 1596, 1590, 1599, 866, 1603, + 1662, 1596, 1590, 1599, 1273, 1274, 1275, 1276, 1280, 1053, + 1054, 1055, 1607, 1056, 1281, 1283, 1057, 1284, 40, 40, + 40, 40, 1315, 1596, 1590, 1599, 40, 1316, 1317, 40, + 1320, 40, 40, 40, 40, 40, 40, 40, 1321, 40, + 40, 40, 40, 1322, 40, 40, 40, 1323, 40, 40, + 40, 40, 1324, 488, 40, 40, 40, 40, 913, 1373, + 1375, 1377, 1378, 1381, 40, 1390, 40, 1391, 1392, 40, + 1397, 1396, 1400, 40, 40, 655, 40, 1401, 1413, 1663, + 40, 40, 40, 40, 1418, 1433, 1658, 1160, 1162, 1168, + 1170, 1172, 1174, 1176, 1178, 1180, 2, 40, 1182, 1184, + 913, 1186, 1434, 1045, 1437, 1439, 1664, 1438, 1449, 1440, + 1046, 1451, 1047, 1048, 1049, 1450, 40, 40, 40, 40, + 40, 1452, 40, 40, 1453, 1454, 1455, 1456, 1457, 1458, + 155, 1459, 40, 40, 1460, 1461, 156, 1462, 1463, 1464, + 1465, 1467, 157, 1469, 1471, 1473, 866, 1474, 1476, 40, + 1466, 1050, 1051, 1052, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 1468, 1478, 1477, 1470, 579, 1485, 1053, 1054, 1055, + 210, 1056, 1486, 1472, 1057, 1475, 40, 40, 40, 40, + 1479, 40, 40, 40, 40, 1491, 1495, 40, 1496, 40, + 1497, 40, 40, 40, 40, 1498, 40, 40, 579, 40, + 40, 40, 1501, 579, 1502, 579, 579, 579, 40, 579, + 1503, 1329, 579, 1331, 1333, 1335, 1506, 1216, 1217, 1218, + 1219, 1505, 1507, 1509, 579, 579, 579, 579, 1508, 1511, + 1512, 1513, 1514, 1516, 392, 1515, 40, 40, 40, 1517, + 1519, 10, 11, 12, 13, 1518, 1520, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 40, 40, 579, 40, 40, 40, + 1528, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 1529, 40, 1530, 1531, 1532, 67, 68, 1533, 69, 1534, + 1538, 1535, 1536, 126, 1544, 1547, 1549, 1559, 579, 1537, + 579, 1560, 1561, 1553, 866, 1562, 909, 1577, 1580, 1631, + 1582, 1584, 1585, 1586, 866, 1622, 1623, 866, 1634, 1652, + 1653, 98, 1654, 1656, 1364, 1660, 1659, 1661, 1665, 392, + 1668, 1365, 1670, 437, 104, 438, 137, 29, 27, 28, + 29, 30, 31, 32, 33, 736, 556, 802, 858, 67, + 68, 558, 69, 399, 837, 829, 551, 126, 747, 559, + 127, 138, 754, 554, 128, 129, 130, 131, 132, 859, + 133, 134, 135, 136, 555, 137, 138, 563, 271, 139, + 140, 141, 142, 748, 74, 98, 143, 144, 866, 866, + 866, 866, 866, 866, 866, 145, 830, 146, 143, 838, + 164, 144, 240, 147, 167, 661, 589, 312, 210, 1036, + 1259, 1251, 147, 148, 149, 968, 1552, 1136, 268, 269, + 270, 1612, 271, 272, 273, 274, 1250, 275, 276, 1314, + 1410, 277, 278, 279, 280, 579, 579, 1371, 579, 152, + 153, 154, 822, 579, 1159, 910, 579, 150, 579, 579, + 579, 579, 579, 579, 579, 1149, 579, 579, 579, 579, + 1402, 579, 579, 1411, 594, 579, 579, 579, 579, 163, + 1146, 579, 579, 579, 579, 93, 239, 700, 1374, 580, + 749, 579, 166, 579, 392, 787, 579, 392, 392, 392, + 392, 579, 392, 392, 392, 986, 202, 579, 579, 579, + 579, 990, 631, 152, 153, 154, 845, 536, 822, 0, + 708, 0, 580, 67, 68, 0, 69, 580, 0, 580, + 580, 580, 0, 580, 0, 0, 580, 0, 0, 0, + 0, 0, 0, 579, 0, 579, 579, 579, 580, 580, + 580, 580, 0, 0, 0, 0, 0, 0, 0, 579, + 579, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 579, 0, 0, 0, + 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 0, + 0, 0, 580, 579, 580, 0, 579, 579, 240, 241, + 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 579, 579, 579, 579, 0, 579, 579, + 579, 579, 155, 243, 579, 0, 579, 0, 579, 579, + 579, 0, 0, 579, 579, 0, 579, 579, 579, 0, + 0, 0, 0, 0, 0, 579, 822, 916, 917, 918, + 0, 919, 920, 921, 922, 0, 923, 924, 198, 0, + 925, 926, 927, 928, 0, 0, 0, 929, 930, 0, + 0, 0, 0, 579, 579, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 579, 579, 0, 579, 579, 579, 0, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 0, 579, 0, + 0, 0, 822, 0, 0, 0, 0, 244, 0, 245, + 246, 247, 248, 0, 0, 0, 0, 0, 0, 580, + 580, 0, 580, 0, 0, 931, 0, 580, 0, 0, + 580, 0, 580, 580, 580, 580, 580, 580, 580, 0, + 580, 580, 580, 580, 0, 580, 580, 0, 1650, 580, + 580, 580, 580, 0, 0, 580, 580, 580, 580, 0, + 0, 0, 0, 573, 0, 580, 0, 580, 0, 0, + 580, 0, 0, 0, 0, 580, 0, 0, 0, 0, + 0, 580, 580, 580, 580, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 822, 822, 573, 0, 0, 0, + 0, 573, 0, 573, 573, 573, 0, 573, 0, 0, + 0, 0, 0, 0, 822, 0, 0, 580, 0, 580, + 580, 580, 573, 573, 573, 573, 822, 0, 822, 822, + 0, 822, 822, 580, 580, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 580, 0, 0, 0, 573, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 0, 0, 0, 573, 580, 573, 0, + 580, 580, 0, 0, 0, 0, 0, 0, 822, 822, + 822, 822, 822, 822, 822, 0, 0, 580, 580, 580, + 580, 0, 580, 580, 580, 580, 0, 0, 580, 1635, + 580, 0, 580, 580, 580, 0, 0, 580, 580, 0, + 580, 580, 580, 0, 1636, 0, 0, 0, 0, 580, + 0, 0, 916, 917, 918, 0, 919, 920, 921, 922, + 1637, 923, 924, 198, 0, 925, 926, 927, 928, 1638, + 0, 0, 929, 930, 0, 0, 0, 580, 580, 0, + 0, 0, 0, 1639, 1640, 1641, 1642, 0, 0, 0, + 0, 0, 0, 0, 0, 580, 580, 0, 580, 580, + 580, 0, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 0, 580, 0, 0, 1643, 1644, 1645, 1646, 1647, + 1648, 1649, 0, 0, 0, 0, 393, 0, 0, 0, + 0, 0, 0, 573, 573, 0, 573, 0, 0, 0, + 931, 573, 34, 0, 573, 0, 573, 573, 573, 573, + 573, 573, 573, 0, 573, 573, 573, 573, 0, 573, + 573, 0, 0, 573, 573, 573, 573, 0, 0, 573, + 573, 573, 573, 0, 0, 0, 0, 571, 0, 573, + 0, 573, 0, 0, 573, 0, 0, 0, 0, 573, + 0, 0, 0, 0, 0, 573, 573, 573, 573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1235, 0, + 571, 393, 0, 803, 803, 571, 803, 571, 571, 571, + 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 0, 573, 573, 573, 571, 571, 571, 571, + 0, 0, 0, 0, 0, 0, 0, 573, 573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 573, 0, 0, 0, 571, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 0, 0, 0, + 571, 573, 571, 0, 573, 573, 0, 0, 803, 803, + 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 573, 573, 573, 0, 573, 573, 573, 573, + 0, 0, 573, 803, 573, 0, 573, 573, 573, 0, + 0, 573, 573, 0, 573, 573, 573, 0, 393, 0, + 0, 393, 0, 573, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 393, 0, 0, 393, + 393, 393, 393, 0, 393, 393, 393, 0, 0, 634, + 0, 573, 573, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, + 573, 0, 573, 573, 573, 0, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 0, 573, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 803, 0, 803, + 803, 803, 803, 0, 0, 0, 0, 571, 571, 0, + 571, 0, 0, 0, 0, 571, 851, 0, 571, 0, + 571, 571, 571, 571, 571, 571, 571, 0, 571, 571, + 571, 571, 0, 571, 571, 0, 0, 571, 571, 571, + 571, 0, 0, 571, 571, 571, 571, 0, 0, 0, + 0, 569, 0, 571, 0, 571, 0, 0, 571, 0, + 0, 0, 635, 571, 0, 0, 0, 0, 0, 571, + 571, 571, 571, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 851, 0, 569, 0, 0, 0, 0, 569, + 0, 569, 569, 569, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 571, 0, 571, 571, 571, + 569, 569, 569, 569, 636, 0, 0, 637, 0, 0, + 0, 571, 571, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, + 0, 0, 569, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 0, 0, 0, 569, 571, 569, 0, 571, 571, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 571, 571, 571, 571, 0, + 571, 571, 571, 571, 0, 0, 571, 0, 571, 0, + 571, 571, 571, 0, 0, 571, 571, 216, 571, 571, + 571, 0, 0, 0, 0, 0, 0, 571, 0, 0, + 851, 0, 1298, 1299, 1300, 0, 1301, 1302, 1303, 1304, + 0, 1305, 1306, 198, 0, 1307, 1308, 1309, 1310, 0, + 0, 0, 0, 851, 1311, 571, 571, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 571, 571, 0, 571, 571, 571, 0, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 0, + 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 569, 569, 0, 569, 0, 0, 0, 0, 569, + 852, 0, 569, 0, 569, 569, 569, 569, 569, 569, + 569, 0, 569, 569, 569, 569, 0, 569, 569, 0, + 0, 569, 569, 569, 569, 0, 0, 569, 569, 569, + 569, 0, 0, 0, 0, 570, 0, 569, 0, 569, + 0, 0, 569, 0, 0, 0, 851, 569, 0, 0, + 0, 0, 0, 569, 569, 569, 569, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 852, 0, 570, 0, + 0, 0, 0, 570, 0, 570, 570, 570, 0, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 851, 569, + 0, 569, 569, 569, 570, 570, 570, 570, 851, 0, + 0, 851, 0, 0, 0, 569, 569, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 0, 0, 0, 570, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 0, 0, 0, 570, 569, + 570, 0, 569, 569, 0, 0, 0, 0, 0, 0, + 0, 0, 851, 851, 851, 851, 851, 851, 851, 569, + 569, 569, 569, 0, 569, 569, 569, 569, 0, 0, + 569, 0, 569, 0, 569, 569, 569, 0, 0, 569, + 569, 0, 569, 569, 569, 0, 0, 0, 0, 0, + 0, 569, 0, 0, 852, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 852, 0, 569, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 569, 569, 0, + 569, 569, 569, 0, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 0, 569, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 570, 570, 0, 570, 0, + 0, 0, 0, 570, 853, 0, 570, 0, 570, 570, + 570, 570, 570, 570, 570, 0, 570, 570, 570, 570, + 0, 570, 570, 0, 0, 570, 570, 570, 570, 0, + 0, 570, 570, 570, 570, 0, 0, 0, 0, 572, + 0, 570, 0, 570, 0, 0, 570, 0, 0, 0, + 852, 570, 0, 0, 0, 0, 0, 570, 570, 570, + 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 853, 0, 572, 0, 0, 0, 0, 572, 0, 572, + 572, 572, 0, 572, 0, 0, 0, 0, 0, 0, + 0, 0, 852, 570, 0, 570, 570, 570, 572, 572, + 572, 572, 852, 0, 0, 852, 0, 0, 0, 570, + 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, + 572, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 0, + 0, 0, 572, 570, 572, 0, 570, 570, 0, 0, + 0, 0, 0, 0, 0, 0, 852, 852, 852, 852, + 852, 852, 852, 570, 570, 570, 570, 0, 570, 570, + 570, 570, 0, 0, 570, 0, 570, 0, 570, 570, + 570, 0, 0, 570, 570, 0, 570, 570, 570, 0, + 0, 0, 0, 0, 0, 570, 0, 0, 853, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 853, 0, 570, 570, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 570, 570, 0, 570, 570, 570, 0, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 0, 570, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, + 572, 0, 572, 0, 0, 0, 0, 572, 0, 0, + 572, 0, 572, 572, 572, 572, 572, 572, 572, 0, + 572, 572, 572, 572, 0, 572, 572, 0, 0, 572, + 572, 572, 572, 0, 0, 572, 572, 572, 572, 0, + 0, 0, 0, 708, 0, 572, 0, 572, 0, 0, + 572, 0, 0, 0, 853, 572, 0, 0, 0, 0, + 0, 572, 572, 572, 572, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, + 0, 708, 0, 708, 708, 708, 0, 708, 0, 0, + 0, 0, 0, 0, 0, 0, 853, 572, 0, 572, + 572, 572, 708, 708, 708, 708, 853, 0, 0, 853, + 0, 0, 0, 572, 572, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 572, 0, 0, 0, 708, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 0, 0, 0, 708, 572, 708, 0, + 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, + 853, 853, 853, 853, 853, 853, 853, 572, 572, 572, + 572, 0, 572, 572, 572, 572, 0, 0, 572, 0, + 572, 0, 572, 572, 572, 0, 0, 572, 572, 0, + 572, 572, 572, 0, 127, 0, 0, 0, 0, 572, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 0, + 1368, 144, 0, 0, 0, 0, 0, 572, 572, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 572, 572, 0, 572, 572, + 572, 0, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 0, 572, 0, 0, 0, 0, 0, 0, 1369, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 708, 708, 0, 708, 0, 1370, 0, + 0, 708, 0, 0, 708, 0, 708, 708, 708, 708, + 708, 708, 708, 0, 708, 708, 708, 708, 0, 708, + 708, 0, 0, 708, 708, 708, 708, 0, 0, 708, + 708, 708, 0, 0, 0, 0, 0, 707, 0, 708, + 0, 708, 0, 0, 708, 0, 0, 0, 0, 708, + 0, 0, 0, 0, 0, 708, 708, 708, 708, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 707, 0, 0, 0, 0, 707, 0, 707, 707, 707, + 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 0, 708, 708, 708, 707, 707, 707, 707, + 0, 0, 0, 0, 0, 0, 0, 708, 708, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 708, 0, 0, 0, 707, 708, + 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 708, 708, 0, 0, 0, + 707, 708, 707, 0, 708, 708, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 708, 708, 708, 0, 708, 708, 708, 708, + 0, 0, 708, 0, 708, 0, 708, 708, 708, 0, + 0, 708, 708, 0, 708, 708, 708, 0, 0, 0, + 0, 0, 0, 708, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 708, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 708, 0, 708, 708, 708, 0, 708, 708, 708, 708, + 708, 708, 708, 708, 708, 0, 708, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 707, 707, 0, + 707, 0, 0, 0, 0, 707, 0, 0, 707, 0, + 707, 707, 707, 707, 707, 707, 707, 0, 707, 707, + 707, 707, 0, 707, 707, 0, 0, 707, 707, 707, + 707, 0, 0, 707, 707, 707, 0, 0, 0, 0, + 0, 715, 0, 707, 0, 707, 0, 0, 707, 0, + 0, 0, 0, 707, 0, 0, 0, 0, 0, 707, + 707, 707, 707, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, + 0, 715, 715, 0, 0, 715, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 0, 707, 707, 707, + 715, 0, 715, 715, 0, 0, 0, 0, 0, 0, + 0, 707, 707, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1494, 707, 0, + 0, 0, 0, 707, 707, 707, 707, 707, 707, 707, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + 707, 0, 0, 0, 715, 707, 715, 0, 707, 707, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 707, 707, 707, 0, + 707, 707, 707, 707, 0, 0, 707, 0, 707, 0, + 707, 707, 707, 0, 0, 707, 707, 0, 707, 707, + 707, 0, 0, 0, 0, 0, 0, 707, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 707, 707, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 707, 707, 0, 707, 707, 707, 0, + 707, 707, 707, 707, 707, 707, 707, 707, 707, 0, + 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 715, 715, 0, 715, 0, 0, 0, 0, 715, + 0, 0, 715, 0, 715, 715, 715, 715, 715, 715, + 715, 0, 715, 715, 715, 715, 0, 715, 715, 0, + 0, 715, 715, 715, 715, 0, 0, 715, 715, 715, + 0, 0, 52, 0, 0, 0, 0, 715, 0, 715, + 0, 0, 715, 0, 0, 0, 0, 715, 0, 0, + 0, 0, 0, 715, 715, 715, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1045, 0, 0, 0, 0, 0, 0, 1046, 0, 1047, + 1048, 1049, 0, 0, 0, 0, 0, 0, 0, 715, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 715, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1050, 1051, + 1052, 0, 715, 0, 0, 0, 0, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 715, 715, 52, 0, 52, 0, 715, + 0, 0, 715, 715, 1053, 1054, 1055, 0, 1056, 0, + 0, 1057, 0, 0, 0, 0, 0, 0, 0, 715, + 715, 715, 715, 0, 715, 715, 715, 715, 0, 0, + 715, 0, 715, 0, 715, 715, 715, 0, 0, 715, + 715, 0, 715, 715, 715, 298, 0, 0, 0, 0, + 0, 715, 298, 0, 298, 298, 298, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 298, 298, 298, 0, 715, 715, 0, + 715, 715, 715, 0, 715, 715, 715, 715, 715, 715, + 715, 715, 715, 0, 715, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 52, 0, 0, 0, 298, + 298, 298, 0, 298, 0, 52, 298, 0, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 585, + 127, 586, 54, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, + 835, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, + 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, + 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 0, 0, 0, 0, 0, 0, 0, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 0, 0, 0, 0, 373, 0, + 0, 0, 374, 0, 0, 375, 376, 0, 0, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 54, 0, 0, 54, 0, 0, 389, 0, + 0, 390, 155, 0, 0, 54, 0, 0, 391, 54, + 54, 54, 0, 54, 54, 54, 54, 392, 54, 54, + 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 55, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 0, 0, 0, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 55, 0, 55, 0, 0, + 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 54, 54, 0, 54, 54, 54, 54, 0, + 0, 54, 0, 54, 0, 54, 54, 54, 54, 0, + 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, + 0, 54, 54, 54, 0, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 0, 105, 0, + 0, 0, 105, 0, 0, 105, 105, 0, 0, 0, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 55, 0, 0, 55, 0, 0, 105, 0, + 0, 105, 155, 0, 0, 55, 0, 0, 105, 55, + 55, 55, 0, 55, 55, 55, 55, 105, 55, 55, + 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 56, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 55, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 55, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 147, 148, 149, 0, 55, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, + 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, + 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 232, 0, 53, 0, 232, 232, 232, 232, 232, 0, + 232, 232, 232, 232, 56, 232, 232, 0, 0, 232, + 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, + 0, 56, 0, 0, 0, 232, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 232, 232, 232, 0, 56, 56, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 232, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, + 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, + 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 53, 0, 0, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, + 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, + 53, 0, 0, 0, 61, 0, 61, 0, 0, 0, + 0, 34, 397, 97, 0, 0, 0, 0, 99, 0, + 100, 0, 0, 0, 53, 0, 0, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 102, 398, 0, 399, 400, 401, + 402, 403, 0, 0, 0, 0, 404, 0, 0, 103, + 0, 53, 0, 0, 0, 405, 53, 53, 0, 0, + 406, 0, 407, 0, 0, 0, 0, 547, 0, 0, + 0, 0, 0, 0, 408, 409, 410, 411, 412, 413, + 414, 415, 0, 0, 0, 0, 0, 416, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 0, 0, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 0, 62, 0, 0, 0, + 0, 61, 0, 0, 61, 0, 0, 0, 0, 0, + 53, 53, 53, 53, 61, 53, 53, 53, 53, 0, + 0, 53, 0, 53, 0, 53, 53, 53, 53, 0, + 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, + 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 2, 0, 0, 53, 53, + 0, 53, 53, 53, 0, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 538, 0, 0, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, + 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, + 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, + 0, 539, 0, 5, 6, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 540, 0, 0, 0, 0, + 541, 0, 0, 8, 9, 0, 0, 0, 0, 61, + 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, + 10, 11, 12, 13, 0, 542, 543, 61, 61, 62, + 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 0, 0, 544, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 65, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, + 66, 0, 0, 0, 0, 65, 0, 0, 65, 0, + 0, 0, 0, 0, 62, 62, 62, 62, 65, 62, + 62, 62, 62, 0, 0, 62, 0, 62, 0, 62, + 62, 62, 62, 0, 62, 62, 0, 62, 62, 62, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 62, 62, 0, 62, 62, 62, 0, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, + 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, + 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 65, 65, 0, 65, 65, + 65, 65, 0, 0, 65, 0, 65, 0, 65, 65, + 65, 65, 0, 65, 65, 0, 65, 65, 65, 0, + 0, 0, 0, 0, 584, 584, 0, 0, 584, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 584, 0, 584, 0, 0, 0, 0, + 0, 0, 0, 65, 65, 0, 0, 0, 0, 0, + 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 66, 65, 65, 65, 0, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 584, 0, 584, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 0, 0, 582, 0, 0, 0, 0, + 0, 0, 0, 0, 584, 584, 0, 584, 66, 66, + 66, 66, 0, 66, 66, 66, 66, 584, 584, 66, + 0, 66, 0, 66, 66, 66, 66, 0, 66, 66, + 0, 66, 66, 66, 0, 582, 582, 0, 0, 582, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 582, 584, 582, 0, 0, 0, + 584, 0, 0, 0, 0, 0, 584, 0, 66, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 66, 66, 0, 66, + 66, 66, 0, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, + 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, + 584, 584, 584, 584, 584, 584, 584, 584, 0, 0, + 0, 584, 584, 584, 584, 584, 584, 584, 0, 0, + 0, 0, 584, 0, 0, 584, 584, 0, 0, 583, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 584, 584, 584, 584, 0, 584, 584, 584, + 584, 0, 0, 584, 0, 584, 0, 584, 584, 584, + 0, 0, 584, 584, 0, 584, 584, 584, 0, 583, + 583, 0, 0, 583, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, + 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 584, 584, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 582, 582, + 584, 584, 0, 584, 584, 584, 0, 584, 584, 584, + 584, 584, 584, 584, 584, 584, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 583, 0, 583, 0, 582, 0, 0, 0, + 0, 582, 0, 0, 0, 0, 0, 582, 0, 0, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, + 0, 0, 33, 0, 0, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 150, + 0, 33, 582, 582, 582, 582, 582, 582, 582, 0, + 0, 0, 0, 582, 0, 0, 582, 582, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 582, 582, 582, 582, 0, 582, 582, + 582, 582, 583, 583, 582, 0, 582, 0, 582, 582, + 582, 0, 0, 582, 582, 0, 582, 582, 582, 0, + 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 583, 0, 0, 0, 0, 583, 0, 0, 0, 0, + 0, 583, 0, 582, 582, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 582, 582, 0, 582, 582, 582, 0, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 0, 155, 0, 583, 583, 583, 583, + 583, 583, 583, 0, 0, 0, 0, 583, 0, 0, + 583, 583, 33, 34, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 583, 583, 583, + 583, 0, 583, 583, 583, 583, 0, 0, 583, 0, + 583, 0, 583, 583, 583, 0, 0, 583, 583, 0, + 583, 583, 583, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 34, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 583, 583, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 583, 583, 0, 583, 583, + 583, 0, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 0, 0, 0, 0, 0, 0, 785, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 0, 0, 0, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 0, 785, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, + 0, 33, 0, 33, 34, 0, 33, 34, 0, 0, + 0, 0, 0, 33, 33, 33, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785, 0, 785, 0, 0, 0, 0, 0, 0, 0, + 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 33, 33, + 0, 33, 33, 33, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, + 787, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 785, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785, 799, 34, 34, 34, 34, 0, 34, 34, 34, + 34, 0, 0, 34, 0, 34, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, + 0, 0, 0, 0, 787, 0, 787, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 34, 0, 0, 0, 799, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, + 0, 0, 0, 791, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, + 785, 0, 0, 0, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, + 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 0, 0, 785, 785, 785, 785, 0, + 785, 785, 785, 785, 787, 0, 785, 0, 785, 0, + 0, 785, 0, 0, 0, 0, 0, 0, 785, 785, + 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 791, 0, 791, 0, + 0, 0, 0, 787, 0, 785, 785, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 785, 785, 0, 785, 785, 785, 0, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 0, 0, 0, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 0, 0, 789, 0, 0, 0, + 0, 799, 799, 799, 799, 799, 0, 0, 0, 787, + 787, 787, 787, 791, 787, 787, 787, 787, 0, 0, + 787, 0, 787, 799, 799, 787, 791, 0, 0, 0, + 0, 0, 787, 787, 787, 0, 0, 0, 0, 0, + 799, 799, 799, 799, 0, 0, 0, 799, 799, 0, + 0, 0, 0, 799, 0, 799, 799, 0, 0, 0, + 789, 0, 789, 799, 799, 0, 0, 0, 0, 787, + 787, 0, 0, 0, 0, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 787, 787, 0, + 787, 787, 787, 0, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 0, 0, 0, 0, 0, 0, 0, + 793, 0, 0, 0, 0, 0, 0, 0, 799, 799, + 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 0, 0, 793, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, + 0, 791, 791, 791, 791, 0, 791, 791, 791, 791, + 789, 0, 791, 0, 791, 0, 0, 791, 0, 0, + 0, 0, 0, 0, 791, 791, 791, 0, 0, 0, + 0, 0, 0, 793, 0, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, + 0, 791, 791, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, + 791, 0, 791, 791, 791, 0, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 0, 0, 0, 789, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 793, 743, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 0, 789, 789, 789, 789, 0, + 789, 789, 789, 789, 0, 0, 789, 0, 789, 0, + 0, 789, 0, 0, 0, 0, 0, 0, 789, 789, + 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 743, 0, 743, 0, 0, + 0, 0, 0, 0, 0, 789, 789, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 789, 789, 0, 789, 789, 789, 0, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 0, + 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 0, 0, 0, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 0, 745, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 793, 793, + 793, 793, 0, 793, 793, 793, 793, 0, 0, 793, + 0, 793, 743, 0, 793, 743, 0, 0, 0, 0, + 0, 793, 793, 793, 0, 743, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, + 745, 0, 0, 0, 0, 0, 0, 0, 793, 793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 743, 0, 793, 793, 0, 793, + 793, 793, 0, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 0, 0, 0, 743, + 743, 743, 743, 743, 743, 743, 0, 0, 0, 0, + 743, 0, 0, 743, 743, 745, 0, 0, 745, 400, + 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, + 743, 743, 743, 743, 400, 743, 743, 743, 743, 0, + 0, 743, 0, 743, 0, 743, 743, 743, 0, 0, + 743, 743, 0, 743, 743, 743, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 745, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 743, 743, 0, 0, 0, 0, 0, 0, 400, 0, + 400, 0, 0, 0, 0, 0, 0, 0, 743, 743, + 0, 743, 743, 743, 0, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 0, + 0, 0, 745, 745, 745, 745, 745, 745, 745, 0, + 0, 0, 0, 745, 0, 0, 745, 745, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 442, 0, 745, 745, 745, 745, 0, 745, 745, + 745, 745, 0, 0, 745, 0, 745, 0, 745, 745, + 745, 0, 0, 745, 745, 0, 745, 745, 745, 0, + 0, 0, 0, 0, 0, 400, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 745, 745, 442, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 745, 208, 745, 745, 745, 0, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 400, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 208, 0, 208, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 0, + 0, 0, 400, 400, 400, 400, 400, 400, 400, 150, + 151, 0, 442, 400, 0, 442, 400, 400, 208, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 0, 0, 400, 400, 400, 400, 0, 400, 400, + 400, 400, 0, 0, 400, 0, 400, 0, 0, 400, + 0, 0, 0, 0, 210, 0, 400, 400, 400, 0, + 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 400, 400, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 400, 400, 210, 400, 400, 400, 0, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 442, 442, + 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 442, 442, 208, 0, 0, 442, + 442, 442, 442, 442, 442, 442, 0, 0, 0, 210, + 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 94, 0, 0, + 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, + 93, 442, 0, 442, 0, 208, 442, 0, 0, 0, + 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, + 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, + 0, 442, 442, 442, 0, 442, 442, 442, 442, 442, + 442, 442, 442, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 208, 208, 208, 208, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, + 0, 208, 94, 0, 208, 208, 0, 210, 0, 0, + 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 208, 208, 208, 0, 208, 208, 208, 208, + 0, 0, 0, 0, 208, 0, 0, 208, 93, 0, + 0, 0, 0, 0, 208, 208, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 208, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 208, 0, 208, 208, 208, 0, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, + 94, 0, 48, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 210, 0, 0, 210, 210, 0, 0, 0, + 0, 0, 0, 0, 93, 93, 93, 93, 93, 0, + 47, 0, 210, 210, 210, 210, 0, 210, 210, 210, + 210, 0, 0, 0, 0, 210, 93, 93, 210, 0, + 0, 0, 0, 0, 0, 210, 210, 210, 0, 0, + 0, 48, 0, 93, 93, 93, 93, 0, 0, 0, + 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, + 0, 0, 210, 210, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 1131, 0, 0, 0, 0, 0, 0, + 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 0, 48, 0, 0, + 0, 0, 0, 796, 0, 0, 94, 94, 94, 94, + 94, 93, 93, 0, 93, 93, 93, 0, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 49, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, + 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 796, + 796, 796, 796, 796, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 796, 796, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 796, 796, + 796, 796, 0, 0, 0, 796, 796, 0, 1091, 0, + 0, 796, 0, 0, 796, 0, 0, 0, 0, 51, + 0, 796, 796, 0, 0, 0, 0, 1092, 1093, 0, + 1094, 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, + 1102, 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 47, 47, 47, 47, 0, 796, 796, 51, 796, + 796, 796, 0, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 47, 47, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 48, 48, 0, 0, 0, 47, + 47, 47, 47, 50, 0, 0, 47, 47, 0, 0, + 49, 0, 47, 48, 48, 47, 0, 0, 0, 0, + 799, 0, 47, 47, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 51, 0, 0, 48, 48, 0, + 0, 0, 0, 48, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 47, 799, + 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, + 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, + 1111, 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, + 0, 0, 0, 0, 0, 799, 49, 49, 49, 49, + 49, 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 0, 0, 49, 49, 49, 49, 0, + 0, 0, 49, 49, 0, 0, 0, 0, 49, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 49, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 49, 0, 49, 49, 49, 0, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, + 50, 50, 0, 799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 50, 0, 0, 0, 0, 0, 0, 0, 51, 51, + 51, 51, 51, 0, 0, 0, 50, 50, 50, 50, + 0, 0, 0, 50, 50, 0, 0, 0, 0, 50, + 51, 51, 50, 0, 0, 0, 0, 0, 0, 50, + 50, 0, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 0, 157, 0, 51, 51, 0, 297, 0, 0, + 51, 296, 0, 51, 0, 0, 0, 0, 0, 0, + 51, 51, 0, 0, 0, 0, 0, 0, 0, 295, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 50, 0, 50, 50, 50, + 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 799, + 799, 799, 799, 799, 0, 51, 51, 0, 51, 51, + 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 799, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 799, 799, + 799, 799, 0, 0, 0, 799, 799, 0, 0, 0, + 0, 799, 0, 0, 799, 0, 0, 0, 0, 0, + 0, 799, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 297, + 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 799, 799, 0, 799, + 799, 799, 0, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 480, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 699, 0, 0, 0, 0, 699, 0, 0, 0, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 699, 290, + 291, 292, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 478, 479, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 152, 153, 154, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 157, 0, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 290, 291, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 478, 479, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 152, 153, 154, 699, 699, + 0, 699, 0, 0, 0, 0, 699, 0, 0, 699, + 0, 0, 0, 699, 699, 699, 699, 699, 0, 699, + 699, 699, 699, 0, 699, 699, 0, 0, 699, 699, + 699, 699, 0, 0, 699, 699, 699, 0, 0, 0, + 0, 0, 0, 0, 699, 157, 699, 0, 0, 0, + 297, 0, 225, 0, 296, 0, 0, 0, 0, 0, + 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, + 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 699, 0, 699, 699, + 699, 0, 0, 480, 212, 0, 0, 0, 0, 0, + 0, 0, 699, 699, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 0, 155, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 448, 0, 0, 143, 144, 0, + 0, 0, 699, 699, 699, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 449, 0, 450, + 451, 452, 453, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 0, 0, 0, 0, 0, 454, 455, 456, 457, + 0, 0, 458, 0, 157, 0, 459, 460, 461, 0, + 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, + 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, + 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 225, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 699, 210, 127, 225, 225, 225, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 225, + 146, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 462, 0, 0, 0, 0, 147, 148, 149, 0, 0, + 0, 0, 212, 0, 0, 0, 212, 212, 212, 212, + 212, 0, 212, 212, 212, 212, 0, 212, 212, 0, + 0, 212, 212, 212, 212, 212, 0, 0, 212, 212, + 150, 0, 290, 291, 292, 0, 0, 212, 0, 212, + 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 212, 212, 212, 0, 212, 0, + 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 152, 153, 154, 212, + 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, + 212, 0, 0, 212, 0, 0, 0, 212, 212, 212, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 157, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 972, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 0, 212, 210, 67, 68, 155, 69, 0, 0, 0, + 0, 126, 0, 973, 127, 0, 0, 157, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 212, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, + 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, + 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, + 0, 0, 0, 0, 210, 0, 0, 225, 0, 225, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 225, 225, 225, 0, 0, 317, + 0, 67, 68, 0, 69, 0, 0, 562, 0, 126, + 0, 0, 127, 0, 155, 0, 128, 129, 130, 131, + 132, 0, 133, 134, 135, 136, 0, 137, 138, 225, + 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 317, 159, 0, + 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 569, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 316, + 98, 143, 144, 0, 0, 0, 155, 0, 0, 0, + 692, 0, 146, 0, 0, 0, 0, 317, 316, 316, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 152, 153, 154, 128, 129, + 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, + 138, 0, 150, 139, 140, 141, 142, 0, 0, 98, + 143, 144, 0, 0, 0, 317, 0, 0, 0, 145, + 0, 146, 316, 0, 316, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 317, 0, 0, + 0, 752, 317, 317, 317, 317, 0, 317, 317, 317, + 317, 0, 317, 317, 0, 0, 317, 317, 317, 317, + 0, 0, 236, 317, 317, 0, 0, 0, 579, 0, + 0, 0, 317, 0, 317, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 155, 0, 0, 0, 0, 317, + 317, 317, 0, 0, 0, 0, 159, 152, 153, 154, + 159, 159, 159, 159, 159, 0, 159, 159, 159, 159, + 0, 159, 159, 0, 0, 159, 159, 159, 159, 0, + 0, 0, 159, 159, 317, 0, 0, 0, 0, 316, + 0, 159, 316, 159, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 0, 236, 0, 236, 0, 159, 159, + 159, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 235, 0, 0, 0, 317, 0, 0, 0, 0, + 317, 317, 317, 317, 0, 317, 317, 317, 317, 235, + 317, 317, 0, 159, 317, 317, 317, 317, 0, 0, + 0, 317, 317, 0, 0, 0, 0, 0, 0, 0, + 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, + 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, + 0, 236, 316, 0, 236, 0, 316, 316, 316, 316, + 316, 316, 0, 0, 236, 579, 0, 0, 0, 0, + 316, 316, 0, 0, 0, 0, 0, 0, 0, 317, + 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, + 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, + 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, + 0, 0, 316, 0, 0, 0, 0, 0, 0, 540, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, + 235, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, + 316, 0, 236, 540, 0, 540, 0, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 0, 0, 34, 0, 236, 0, 0, 317, 236, 236, + 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 336, 0, 337, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 236, + 236, 34, 0, 235, 0, 0, 0, 235, 235, 235, + 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, + 540, 235, 235, 540, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 540, 579, 0, 0, 0, 235, 235, + 235, 235, 0, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 336, 0, 785, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 0, 0, 0, 67, 0, 0, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, + 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 540, 540, 540, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, + 0, 0, 0, 540, 0, 0, 0, 540, 540, 540, + 540, 540, 540, 0, 0, 0, 0, 0, 0, 0, + 0, 540, 540, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 0, 0, 69, 0, 0, 540, 540, + 540, 540, 0, 0, 0, 2, 336, 0, 987, 540, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 540, 0, 0, 0, 0, 0, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 0, 0, 0, 0, 7, 0, 0, 0, + 326, 327, 328, 329, 330, 331, 0, 0, 540, 540, + 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 540, 540, 540, 540, 540, + 540, 540, 332, 545, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 334, 335, 67, 0, 7, 69, 0, 0, 326, + 327, 328, 329, 330, 331, 0, 2, 545, 0, 545, + 0, 0, 0, 8, 9, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, + 0, 332, 371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 0, 371, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 0, 363, 0, 0, 0, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 0, 0, 545, 0, 7, 545, 0, 0, + 326, 327, 328, 329, 330, 331, 0, 545, 0, 0, + 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 0, 0, 0, 0, 363, + 0, 363, 332, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 334, 335, 371, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 0, 356, 0, 0, 0, + 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, + 545, 545, 545, 0, 0, 0, 0, 545, 0, 0, + 0, 545, 545, 545, 545, 545, 545, 0, 0, 0, + 0, 0, 0, 0, 0, 545, 545, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 363, 0, 0, 363, + 0, 0, 545, 545, 545, 545, 0, 0, 0, 363, + 356, 0, 356, 545, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 210, 0, 0, 0, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 545, 545, 0, 0, 371, 0, 0, 0, + 371, 371, 371, 371, 371, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 371, 371, 0, 0, 0, 545, + 545, 545, 545, 545, 545, 545, 0, 0, 0, 0, + 0, 371, 371, 371, 371, 0, 0, 0, 0, 210, + 0, 210, 371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, + 0, 0, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 0, 0, 356, 0, 363, + 356, 0, 0, 363, 363, 363, 363, 363, 363, 0, + 356, 371, 371, 0, 0, 0, 0, 363, 363, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 363, 363, 363, 371, 371, + 371, 371, 371, 371, 371, 363, 539, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 363, 210, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 539, 0, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 363, 363, 363, 363, 363, 363, 363, 0, 0, + 0, 0, 0, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 561, 0, 0, 0, + 356, 0, 0, 0, 356, 356, 356, 356, 356, 356, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 356, 356, 356, 356, 0, + 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 356, 356, 539, 0, 210, + 539, 0, 0, 210, 210, 210, 210, 210, 210, 0, + 539, 0, 0, 0, 0, 0, 0, 210, 210, 0, + 0, 0, 356, 356, 356, 356, 356, 356, 356, 0, + 0, 0, 0, 34, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 0, 2, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 210, 0, 0, 0, 1215, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 210, 210, 210, 210, 210, 210, 210, 0, 0, + 0, 0, 0, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 0, 0, 0, 0, + 539, 0, 0, 0, 539, 539, 539, 539, 539, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 539, 539, + 187, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 3, 4, 5, 6, 7, 539, 539, 539, 539, 0, + 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, + 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 18, 19, 0, 539, 539, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 539, 539, 539, 539, 539, 539, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 538, 20, 21, 0, + 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 3, 4, 5, 6, 7, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 0, 0, 0, 14, + 15, 0, 0, 0, 0, 16, 0, 187, 17, 0, + 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, + 0, 0, 892, 539, 0, 5, 6, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 540, 0, 0, + 0, 0, 541, 0, 0, 8, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 12, 13, 0, 542, 543, 0, + 20, 21, 0, 22, 23, 24, 0, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 0, 544, 0, 0, + 0, 0, 0, 0, 187, 0, 187, 187, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 187, 0, 0, 187, 187, 0, 0, + 0, 0, 545, 546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 187, 187, 187, 0, 187, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 851, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 852, 0, 0, 0, 0, 853, 854, 0, 855, 856, + 857, 858, 859, 860, 0, 861, 862, 0, 863, 864, + 865, 866, 867, 187, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 187, 187, 187, 187, 187, 187, 0, 0, 851, + 0, 0, 0, 0, 868, 0, 869, 0, 0, 0, + 0, 870, 0, 852, 0, 0, 0, 0, 853, 854, + 0, 855, 856, 857, 858, 859, 860, 871, 861, 862, + 0, 863, 864, 865, 866, 867, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 868, 0, 869, + 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 873, 0, 874, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 884, 885, 886, 887, 888, 889, 890, 0, + 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 873, 0, 874, 875, 876, 877, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 0, 0, 0, 891, +}; +static const YYINT yycheck[] = { 4, + 24, 24, 24, 102, 103, 167, 1, 779, 311, 428, + 704, 430, 20, 21, 19, 311, 93, 1, 311, 36, + 37, 181, 27, 28, 29, 30, 22, 23, 899, 1, + 996, 690, 38, 1, 91, 64, 482, 1018, 44, 1188, + 38, 1, 833, 60, 42, 1, 38, 46, 264, 41, + 41, 40, 44, 24, 61, 43, 365, 65, 76, 46, + 46, 44, 60, 41, 72, 123, 59, 41, 167, 514, + 515, 516, 125, 767, 41, 123, 123, 46, 43, 43, + 45, 42, 105, 42, 41, 91, 13, 41, 507, 508, + 1266, 190, 169, 91, 1150, 92, 44, 24, 61, 91, + 125, 40, 1542, 111, 112, 128, 319, 41, 113, 470, + 115, 116, 117, 38, 40, 46, 215, 42, 193, 194, + 195, 196, 197, 145, 364, 43, 148, 45, 151, 93, + 40, 263, 125, 104, 41, 60, 262, 41, 40, 911, + 912, 44, 41, 1529, 41, 40, 168, 40, 40, 157, + 91, 156, 157, 42, 40, 47, 233, 528, 40, 42, + 46, 40, 288, 181, 40, 91, 91, 380, 60, 40, + 199, 46, 41, 1559, 40, 42, 61, 104, 59, 41, + 40, 91, 187, 345, 123, 208, 203, 59, 40, 91, + 93, 188, 46, 41, 42, 61, 91, 41, 970, 264, + 205, 206, 91, 38, 41, 210, 366, 42, 40, 91, + 93, 41, 91, 221, 222, 91, 342, 44, 93, 260, + 261, 1531, 263, 1399, 470, 60, 1666, 232, 40, 156, + 123, 91, 1004, 542, 239, 232, 264, 265, 260, 91, + 167, 686, 267, 91, 125, 38, 44, 40, 44, 42, + 349, 1561, 123, 125, 470, 262, 91, 315, 316, 91, + 58, 1317, 267, 311, 41, 42, 93, 60, 40, 316, + 267, 348, 295, 264, 265, 91, 91, 282, 286, 302, + 263, 286, 304, 210, 289, 263, 294, 732, 293, 1160, + 264, 985, 266, 298, 299, 300, 301, 93, 91, 262, + 264, 260, 261, 264, 263, 123, 359, 264, 365, 549, + 264, 364, 286, 287, 91, 263, 311, 312, 326, 348, + 328, 299, 340, 346, 332, 288, 344, 311, 312, 294, + 264, 265, 340, 341, 264, 352, 344, 296, 335, 311, + 312, 306, 307, 311, 312, 91, 342, 343, 366, 318, + 347, 311, 312, 320, 321, 311, 312, 264, 366, 324, + 264, 265, 360, 361, 362, 264, 359, 264, 813, 262, + 1064, 364, 367, 368, 369, 370, 294, 260, 261, 350, + 263, 264, 274, 367, 368, 369, 370, 318, 306, 307, + 1539, 262, 275, 260, 261, 264, 263, 41, 395, 367, + 44, 273, 264, 391, 391, 391, 324, 59, 262, 374, + 40, 419, 420, 296, 422, 1396, 424, 435, 345, 346, + 264, 462, 421, 350, 1573, 260, 261, 264, 263, 296, + 426, 439, 440, 59, 264, 360, 361, 362, 93, 599, + 505, 506, 507, 43, 260, 261, 469, 263, 260, 261, + 610, 263, 268, 898, 262, 40, 374, 33, 463, 123, + 465, 91, 59, 452, 262, 263, 391, 339, 914, 40, + 569, 40, 480, 125, 471, 480, 1267, 123, 359, 1532, + 296, 40, 480, 364, 46, 542, 40, 492, 260, 261, + 498, 263, 1151, 93, 46, 503, 504, 505, 267, 507, + 47, 509, 510, 511, 41, 260, 261, 40, 263, 1562, + 506, 123, 508, 472, 260, 261, 512, 263, 46, 525, + 91, 40, 91, 520, 521, 360, 361, 362, 125, 40, + 535, 93, 91, 525, 542, 543, 482, 91, 535, 123, + 617, 93, 535, 536, 537, 538, 539, 540, 541, 546, + 477, 1323, 1324, 480, 44, 40, 502, 565, 91, 40, + 568, 566, 567, 279, 280, 93, 1547, 360, 361, 362, + 593, 40, 91, 289, 40, 592, 123, 595, 543, 451, + 91, 599, 587, 660, 40, 662, 315, 595, 40, 472, + 587, 463, 610, 465, 466, 755, 468, 469, 414, 415, + 416, 40, 610, 93, 601, 472, 91, 624, 625, 264, + 91, 1577, 91, 630, 260, 632, 260, 263, 264, 263, + 275, 273, 91, 43, 59, 91, 38, 635, 46, 266, + 46, 636, 41, 91, 43, 91, 263, 642, 661, 91, + 648, 61, 671, 260, 261, 61, 263, 746, 91, 286, + 287, 659, 91, 752, 535, 536, 537, 538, 539, 540, + 541, 46, 0, 535, 536, 537, 538, 539, 540, 541, + 692, 1524, 299, 123, 682, 60, 273, 1530, 701, 264, + 265, 266, 44, 986, 260, 261, 1557, 263, 264, 123, + 986, 708, 264, 986, 44, 772, 46, 1391, 123, 704, + 62, 286, 287, 275, 709, 44, 711, 1560, 716, 717, + 718, 123, 1484, 260, 261, 470, 263, 260, 261, 742, + 263, 59, 706, 719, 44, 1497, 40, 264, 265, 266, + 738, 739, 40, 359, 91, 41, 42, 755, 364, 44, + 745, 46, 62, 766, 749, 750, 751, 744, 745, 286, + 287, 759, 61, 761, 91, 763, 40, 1176, 781, 1178, + 768, 306, 767, 838, 91, 840, 841, 842, 843, 844, + 788, 41, 42, 769, 41, 427, 43, 429, 430, 797, + 788, 260, 261, 260, 263, 91, 263, 125, 283, 284, + 798, 799, 1486, 38, 320, 321, 448, 449, 450, 451, + 393, 394, 260, 261, 812, 263, 41, 264, 1580, 266, + 268, 816, 44, 818, 46, 38, 47, 260, 261, 42, + 263, 91, 899, 318, 829, 391, 41, 835, 43, 286, + 287, 908, 260, 59, 831, 263, 264, 60, 296, 847, + 391, 849, 277, 278, 279, 462, 281, 282, 283, 284, + 1622, 286, 287, 288, 451, 290, 291, 292, 293, 607, + 608, 609, 297, 298, 461, 267, 278, 464, 91, 281, + 282, 283, 284, 391, 286, 287, 288, 899, 896, 391, + 1005, 1653, 1007, 535, 536, 537, 538, 539, 540, 541, + 301, 899, 303, 304, 305, 41, 1668, 260, 261, 125, + 263, 909, 41, 260, 261, 44, 263, 904, 41, 535, + 536, 537, 538, 539, 540, 541, 330, 331, 332, 936, + 41, 939, 316, 260, 261, 262, 263, 264, 42, 1623, + 365, 268, 40, 260, 261, 273, 263, 40, 535, 536, + 537, 538, 539, 540, 541, 41, 283, 971, 44, 93, + 934, 61, 366, 367, 368, 978, 414, 415, 416, 296, + 40, 984, 457, 458, 43, 460, 1043, 330, 331, 263, + 975, 1665, 980, 41, 982, 260, 261, 93, 263, 41, + 985, 43, 44, 320, 321, 393, 394, 1005, 475, 1007, + 280, 986, 40, 988, 989, 990, 1001, 1005, 995, 1007, + 997, 41, 986, 40, 988, 989, 990, 93, 1085, 38, + 43, 44, 1035, 42, 986, 40, 988, 989, 986, 260, + 261, 1029, 263, 264, 1032, 40, 986, 264, 988, 989, + 986, 60, 40, 278, 1039, 40, 281, 282, 283, 284, + 1037, 286, 287, 288, 281, 282, 283, 273, 43, 44, + 40, 91, 41, 42, 1216, 1217, 1218, 1219, 59, 1064, + 40, 1138, 91, 40, 1226, 1227, 1228, 281, 282, 283, + 284, 409, 410, 411, 412, 413, 38, 414, 415, 416, + 42, 886, 887, 40, 46, 47, 264, 265, 266, 374, + 375, 40, 40, 431, 432, 93, 260, 261, 60, 263, + 535, 536, 537, 538, 539, 540, 541, 40, 286, 287, + 448, 449, 450, 451, 330, 331, 332, 455, 456, 281, + 282, 283, 284, 461, 125, 1133, 464, 40, 310, 91, + 312, 313, 314, 471, 472, 91, 58, 360, 361, 362, + 280, 281, 282, 283, 284, 40, 125, 40, 1567, 1568, + 366, 367, 368, 1161, 1162, 1163, 260, 261, 40, 263, + 1168, 1169, 1170, 1171, 1172, 1173, 91, 1175, 1176, 1177, + 1192, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1174, 1187, + 33, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, + 1186, 529, 530, 531, 44, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 1209, 431, 432, 41, 40, 40, + 374, 375, 262, 123, 1291, 1212, 1213, 262, 1236, 44, + 260, 261, 41, 263, 328, 451, 330, 331, 268, 41, + 41, 60, 1250, 337, 1252, 274, 463, 463, 274, 465, + 40, 40, 468, 469, 40, 1253, 40, 40, 275, 62, + 1258, 281, 282, 283, 284, 1260, 296, 44, 365, 299, + 123, 1269, 281, 282, 283, 284, 306, 58, 123, 40, + 274, 1279, 273, 295, 123, 1283, 1284, 123, 300, 1206, + 302, 40, 1381, 40, 275, 41, 1294, 309, 40, 1216, + 1217, 1218, 1219, 317, 317, 296, 467, 61, 61, 1226, + 1227, 1228, 40, 61, 326, 327, 41, 1315, 1316, 535, + 536, 537, 538, 539, 540, 541, 470, 470, 0, 341, + 44, 1329, 1330, 1331, 1332, 1333, 1334, 93, 1336, 41, + 41, 360, 361, 362, 1318, 260, 261, 1414, 263, 1335, + 41, 295, 41, 268, 41, 41, 300, 1369, 302, 58, + 372, 33, 41, 44, 44, 309, 38, 125, 40, 41, + 42, 61, 44, 269, 263, 47, 272, 1372, 61, 40, + 40, 296, 326, 41, 414, 415, 416, 59, 60, 61, + 62, 306, 125, 41, 41, 41, 1391, 341, 41, 295, + 296, 41, 41, 1390, 300, 41, 302, 41, 360, 361, + 362, 41, 41, 309, 1401, 1413, 41, 41, 409, 91, + 41, 93, 1420, 41, 41, 41, 40, 270, 271, 272, + 326, 93, 275, 276, 277, 278, 279, 274, 281, 282, + 283, 284, 93, 286, 287, 341, 274, 290, 291, 292, + 293, 123, 59, 125, 297, 298, 41, 1431, 44, 41, + 451, 44, 41, 306, 44, 308, 40, 58, 40, 40, + 461, 41, 41, 464, 1487, 280, 281, 282, 283, 284, + 323, 324, 325, 1550, 40, 294, 269, 41, 41, 272, + 41, 1486, 301, 40, 303, 304, 305, 294, 1485, 414, + 415, 416, 59, 62, 41, 41, 40, 91, 1506, 1507, + 1508, 497, 295, 296, 489, 358, 40, 300, 125, 302, + 277, 41, 61, 501, 125, 123, 309, 62, 61, 41, + 41, 41, 41, 342, 343, 344, 41, 451, 93, 391, + 41, 93, 41, 326, 535, 536, 537, 538, 539, 540, + 541, 41, 317, 317, 41, 40, 1543, 40, 341, 1626, + 1558, 58, 58, 1575, 93, 1563, 1564, 1565, 125, 1567, + 1659, 1569, 1570, 1571, 93, 93, 93, 40, 263, 388, + 389, 390, 1568, 392, 504, 91, 395, 91, 260, 261, + 262, 263, 40, 1591, 1592, 1593, 268, 40, 123, 271, + 93, 273, 274, 275, 276, 277, 278, 279, 41, 281, + 282, 283, 284, 41, 286, 287, 288, 40, 290, 291, + 292, 293, 40, 421, 296, 297, 298, 299, 1623, 41, + 41, 93, 93, 510, 306, 44, 308, 274, 41, 311, + 41, 58, 41, 315, 316, 60, 318, 44, 61, 1662, + 322, 323, 324, 325, 93, 125, 1654, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 273, 339, 40, 40, + 1665, 40, 62, 294, 41, 41, 1663, 93, 41, 93, + 301, 41, 303, 304, 305, 93, 358, 359, 360, 361, + 362, 93, 364, 365, 41, 93, 41, 93, 41, 41, + 543, 93, 374, 375, 41, 41, 91, 93, 41, 93, + 41, 41, 33, 41, 41, 41, 273, 41, 41, 391, + 93, 342, 343, 344, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 93, 41, 263, 93, 0, 44, 388, 389, 390, + 91, 392, 274, 93, 395, 93, 448, 449, 450, 451, + 93, 453, 454, 455, 456, 41, 41, 459, 41, 461, + 40, 463, 464, 465, 466, 263, 468, 469, 33, 471, + 472, 473, 93, 38, 93, 40, 41, 42, 480, 44, + 93, 40, 47, 40, 40, 40, 58, 424, 425, 426, + 427, 41, 58, 41, 59, 60, 61, 62, 58, 41, + 41, 40, 40, 93, 38, 41, 508, 509, 510, 41, + 41, 448, 449, 450, 451, 93, 93, 41, 93, 40, + 40, 40, 40, 40, 526, 527, 91, 529, 530, 531, + 40, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 40, 543, 40, 40, 40, 260, 261, 40, 263, 40, + 93, 41, 40, 268, 60, 58, 41, 40, 123, 263, + 125, 40, 40, 93, 451, 40, 91, 41, 40, 263, + 41, 41, 41, 41, 461, 40, 274, 464, 41, 41, + 40, 296, 40, 510, 299, 41, 358, 41, 274, 123, + 40, 306, 41, 41, 123, 41, 123, 125, 535, 536, + 537, 538, 539, 540, 541, 44, 40, 123, 123, 260, + 261, 62, 263, 125, 123, 123, 41, 268, 125, 62, + 271, 123, 41, 41, 275, 276, 277, 278, 279, 123, + 281, 282, 283, 284, 41, 286, 287, 41, 41, 290, + 291, 292, 293, 125, 125, 296, 297, 298, 535, 536, + 537, 538, 539, 540, 541, 306, 123, 308, 41, 123, + 62, 41, 123, 40, 40, 417, 41, 180, 123, 828, + 1034, 1011, 323, 324, 325, 739, 1502, 895, 277, 278, + 279, 41, 281, 282, 283, 284, 1009, 286, 287, 1138, + 1276, 290, 291, 292, 293, 260, 261, 1196, 263, 414, + 415, 416, 59, 268, 914, 701, 271, 358, 273, 274, + 275, 276, 277, 278, 279, 904, 281, 282, 283, 284, + 1264, 286, 287, 1277, 350, 290, 291, 292, 293, 24, + 901, 296, 297, 298, 299, 9, 114, 477, 1200, 0, + 544, 306, 24, 308, 278, 605, 311, 281, 282, 283, + 284, 316, 286, 287, 288, 754, 64, 322, 323, 324, + 325, 758, 368, 414, 415, 416, 671, 304, 125, -1, + 489, -1, 33, 260, 261, -1, 263, 38, -1, 40, + 41, 42, -1, 44, -1, -1, 47, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, 355, 356, + 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 543, 380, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, 273, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, + -1, -1, 339, -1, -1, -1, -1, 474, -1, 476, + 477, 478, 479, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, 365, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, 123, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, 451, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, 463, -1, 465, 466, + -1, 468, 469, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, 294, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, 309, -1, -1, -1, -1, 480, + -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, + 325, 286, 287, 288, -1, 290, 291, 292, 293, 334, + -1, -1, 297, 298, -1, -1, -1, 508, 509, -1, + -1, -1, -1, 348, 349, 350, 351, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, 543, -1, -1, 380, 381, 382, 383, 384, + 385, 386, -1, -1, -1, -1, 38, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + 365, 268, 59, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, + 33, 123, -1, 260, 261, 38, 263, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, 355, 356, + 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, 380, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, 260, -1, + -1, 263, -1, 480, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 278, -1, -1, 281, + 282, 283, 284, -1, 286, 287, 288, -1, -1, 296, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 474, -1, 476, + 477, 478, 479, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, 59, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, 409, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 125, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, 451, 358, -1, 360, 361, 362, + 59, 60, 61, 62, 461, -1, -1, 464, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, 262, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + 273, -1, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, -1, -1, 296, 299, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + 59, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, 409, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, 33, -1, + -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, 451, 358, + -1, 360, 361, 362, 59, 60, 61, 62, 461, -1, + -1, 464, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, 59, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + 409, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 125, -1, 33, -1, -1, -1, -1, 38, -1, 40, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, 451, 358, -1, 360, 361, 362, 59, 60, + 61, 62, 461, -1, -1, 464, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 296, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, 409, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, 451, 358, -1, 360, + 361, 362, 59, 60, 61, 62, 461, -1, -1, 464, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, 271, -1, -1, -1, -1, 480, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, + 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, 543, -1, -1, -1, -1, -1, -1, 346, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, 365, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 41, 391, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 294, -1, -1, -1, -1, -1, -1, 301, -1, 303, + 304, 305, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, + 344, -1, 391, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 123, -1, 125, -1, 428, + -1, -1, 431, 432, 388, 389, 390, -1, 392, -1, + -1, 395, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, 294, -1, -1, -1, -1, + -1, 480, 301, -1, 303, 304, 305, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 342, 343, 344, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, 388, + 389, 390, -1, 392, -1, 273, 395, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, 270, + 271, 272, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, + -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, + -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, + 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, + -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, + -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, + 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, + -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 59, 294, 295, -1, -1, -1, -1, 300, -1, + 302, -1, -1, -1, 322, -1, -1, 309, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 339, -1, -1, 326, 327, -1, 329, 330, 331, + 332, 333, -1, -1, -1, -1, 338, -1, -1, 341, + -1, 359, -1, -1, -1, 347, 364, 365, -1, -1, + 352, -1, 354, -1, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, 366, 367, 368, 369, 370, 371, + 372, 373, -1, -1, -1, -1, -1, 379, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, + 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, -1, -1, 273, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, 322, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, 260, -1, -1, 263, + 448, 449, 450, 451, -1, 453, 454, 526, 527, 273, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, 473, -1, -1, -1, -1, + -1, -1, 296, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + 0, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, 448, 449, 450, 451, 273, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, + -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 273, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 273, 274, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 311, 61, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 358, + -1, 59, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, 260, 59, -1, 263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, 260, -1, 464, 263, -1, -1, + -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 260, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, 59, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 273, -1, 459, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 59, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, + 449, 450, 451, 260, 453, 454, 455, 456, -1, -1, + 459, -1, 461, 431, 432, 464, 273, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, 463, 464, -1, -1, -1, + 123, -1, 125, 471, 472, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 273, -1, 459, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 260, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, + -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, 260, -1, -1, 263, 44, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 448, 449, 450, 451, 59, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, 322, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 0, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, 59, -1, 61, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 358, + 359, -1, 260, 428, -1, 263, 431, 432, 125, -1, + -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, 0, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 414, 415, 416, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, 451, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 273, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 125, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 543, -1, -1, 0, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 125, 459, -1, 461, -1, 322, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, 125, -1, 431, 432, -1, 273, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, 273, -1, + -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, + 273, -1, 0, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, + 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, -1, -1, 461, 431, 432, 464, -1, + -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + -1, 59, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, 508, 509, -1, -1, 125, -1, -1, -1, + -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 125, -1, -1, + -1, -1, -1, 273, -1, -1, 409, 410, 411, 412, + 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 0, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, + 410, 411, 412, 413, -1, 273, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, 257, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, + -1, 471, 472, -1, -1, -1, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, + 289, 290, 291, 292, 293, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, 526, 527, 59, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, + 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, + 273, -1, 461, 431, 432, 464, -1, -1, -1, -1, + 0, -1, 471, 472, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, 125, -1, -1, 455, 456, -1, + -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, 59, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 484, 485, -1, 487, 488, + 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, + -1, -1, -1, -1, -1, 125, 409, 410, 411, 412, + 413, 273, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 33, -1, 455, 456, -1, 38, -1, -1, + 461, 42, -1, 464, -1, -1, -1, -1, -1, -1, + 471, 472, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 91, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, 60, 360, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, 414, 415, 416, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, 33, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, 414, 415, 416, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, + 38, -1, 91, -1, 42, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, -1, 91, 33, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, 271, -1, -1, 543, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, + -1, -1, 414, 415, 416, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, + 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, + -1, -1, 372, -1, 33, -1, 376, 377, 378, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, 543, 91, 271, 323, 324, 325, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, 358, + 308, -1, -1, -1, -1, -1, 33, -1, -1, -1, + 480, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, + 358, -1, 360, 361, 362, -1, -1, 306, -1, 308, + -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, + -1, -1, -1, 543, 323, 324, 325, -1, 327, -1, + 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, 414, 415, 416, 358, + -1, -1, -1, -1, -1, -1, -1, 366, 367, 368, + 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, 33, -1, -1, 306, -1, 308, + -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 480, 91, 260, 261, 543, 263, -1, -1, -1, + -1, 268, -1, 372, 271, -1, -1, 33, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, 414, 415, 416, -1, -1, + -1, -1, -1, -1, 543, -1, 323, 324, 325, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, 359, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, 91, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, -1, -1, 323, 324, 325, -1, -1, 33, + -1, 260, 261, -1, 263, -1, -1, 41, -1, 268, + -1, -1, 271, -1, 543, -1, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 358, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, -1, 91, 33, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, + 286, 287, -1, -1, 290, 291, 292, 293, -1, 40, + 296, 297, 298, -1, -1, -1, 543, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, 33, 59, 60, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, 414, 415, 416, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, 358, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, 91, -1, -1, -1, 306, + -1, 308, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, + -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, + 416, -1, -1, -1, -1, -1, -1, 271, -1, -1, + -1, 358, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 41, 297, 298, -1, -1, -1, 47, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + 59, -1, -1, -1, 543, -1, -1, -1, -1, 323, + 324, 325, -1, -1, -1, -1, 271, 414, 415, 416, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, 358, -1, -1, -1, -1, 260, + -1, 306, 263, 308, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 123, -1, 125, -1, 323, 324, + 325, -1, -1, -1, -1, -1, -1, 543, -1, -1, + -1, 41, -1, -1, -1, 271, -1, -1, -1, -1, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 59, + 286, 287, -1, 358, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + -1, 260, 413, -1, 263, -1, 417, 418, 419, 420, + 421, 422, -1, -1, 273, 274, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, 543, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, + -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 543, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, 510, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, + 541, -1, 391, 123, -1, 125, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, 59, -1, 413, -1, -1, 543, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 508, + 509, 59, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, + 260, 431, 432, 263, -1, -1, 535, 536, 537, 538, + 539, 540, 541, 273, 274, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 273, 123, -1, 125, 459, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, + 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 508, 509, 260, -1, 413, 263, -1, -1, 417, + 418, 419, 420, 421, 422, -1, 273, 123, -1, 125, + -1, -1, -1, 431, 432, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, + -1, 459, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 260, -1, 413, 263, -1, -1, + 417, 418, 419, 420, 421, 422, -1, 273, -1, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, + -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 273, + 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 508, 509, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + -1, -1, -1, -1, 431, 432, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, + -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, + 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, + 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, + 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, 260, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 125, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 508, 509, 260, -1, 413, + 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, + 273, -1, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 59, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, 273, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, 125, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, + 125, -1, -1, -1, -1, -1, -1, 273, -1, -1, + 409, 410, 411, 412, 413, 448, 449, 450, 451, -1, + -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, -1, 508, 509, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 409, 410, 411, 412, 413, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 461, -1, 322, 464, -1, + -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, + -1, -1, 123, 409, -1, 411, 412, 413, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 473, -1, -1, + -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 423, -1, + -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, 257, -1, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, -1, -1, 276, 277, -1, 279, 280, + 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, + 291, 292, 293, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, 257, + -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, + -1, 342, -1, 271, -1, -1, -1, -1, 276, 277, + -1, 279, 280, 281, 282, 283, 284, 358, 286, 287, + -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 335, -1, 337, + -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 481, -1, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, + -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 481, -1, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, -1, -1, 503, +}; +#if YYBTYACC +static const YYINT yyctable[] = { -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, +}; #endif +#define YYFINAL 1 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 543 +#define YYUNDFTOKEN 733 +#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) +#if YYDEBUG +static const char *const yyname[] = { + +"$end",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'!'",0, +0,0,0,"'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,0,0,0,0, +0,"':'","';'","'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"error","ERROR_","BAD_COMMENT_", +"BAD_LITERAL_","ID","DOTTEDNAME","QSTRING","SQSTRING","INT32","INT64","FLOAT64", +"HEXBYTE","TYPEDEF_T","TYPEDEF_M","TYPEDEF_F","TYPEDEF_TS","TYPEDEF_MR", +"TYPEDEF_CA","DCOLON","ELLIPSIS","VOID_","BOOL_","CHAR_","UNSIGNED_","INT_", +"INT8_","INT16_","INT32_","INT64_","FLOAT_","FLOAT32_","FLOAT64_","BYTEARRAY_", +"UINT_","UINT8_","UINT16_","UINT32_","UINT64_","FLAGS_","CALLCONV_","MDTOKEN_", +"OBJECT_","STRING_","NULLREF_","DEFAULT_","CDECL_","VARARG_","STDCALL_", +"THISCALL_","FASTCALL_","CLASS_","BYREFLIKE_","TYPEDREF_","UNMANAGED_", +"FINALLY_","HANDLER_","CATCH_","FILTER_","FAULT_","EXTENDS_","IMPLEMENTS_", +"TO_","AT_","TLS_","TRUE_","FALSE_","_INTERFACEIMPL","VALUE_","VALUETYPE_", +"NATIVE_","INSTANCE_","SPECIALNAME_","FORWARDER_","STATIC_","PUBLIC_", +"PRIVATE_","FAMILY_","FINAL_","SYNCHRONIZED_","INTERFACE_","SEALED_","NESTED_", +"ABSTRACT_","AUTO_","SEQUENTIAL_","EXPLICIT_","ANSI_","UNICODE_","AUTOCHAR_", +"IMPORT_","ENUM_","VIRTUAL_","NOINLINING_","AGGRESSIVEINLINING_", +"NOOPTIMIZATION_","AGGRESSIVEOPTIMIZATION_","UNMANAGEDEXP_","BEFOREFIELDINIT_", +"STRICT_","RETARGETABLE_","WINDOWSRUNTIME_","NOPLATFORM_","METHOD_","FIELD_", +"PINNED_","MODREQ_","MODOPT_","SERIALIZABLE_","PROPERTY_","TYPE_","ASSEMBLY_", +"FAMANDASSEM_","FAMORASSEM_","PRIVATESCOPE_","HIDEBYSIG_","NEWSLOT_", +"RTSPECIALNAME_","PINVOKEIMPL_","_CTOR","_CCTOR","LITERAL_","NOTSERIALIZED_", +"INITONLY_","REQSECOBJ_","CIL_","OPTIL_","MANAGED_","FORWARDREF_", +"PRESERVESIG_","RUNTIME_","INTERNALCALL_","_IMPORT","NOMANGLE_","LASTERR_", +"WINAPI_","AS_","BESTFIT_","ON_","OFF_","CHARMAPERROR_","INSTR_NONE", +"INSTR_VAR","INSTR_I","INSTR_I8","INSTR_R","INSTR_BRTARGET","INSTR_METHOD", +"INSTR_FIELD","INSTR_TYPE","INSTR_STRING","INSTR_SIG","INSTR_TOK", +"INSTR_SWITCH","_CLASS","_NAMESPACE","_METHOD","_FIELD","_DATA","_THIS","_BASE", +"_NESTER","_EMITBYTE","_TRY","_MAXSTACK","_LOCALS","_ENTRYPOINT","_ZEROINIT", +"_EVENT","_ADDON","_REMOVEON","_FIRE","_OTHER","_PROPERTY","_SET","_GET", +"_PERMISSION","_PERMISSIONSET","REQUEST_","DEMAND_","ASSERT_","DENY_", +"PERMITONLY_","LINKCHECK_","INHERITCHECK_","REQMIN_","REQOPT_","REQREFUSE_", +"PREJITGRANT_","PREJITDENY_","NONCASDEMAND_","NONCASLINKDEMAND_", +"NONCASINHERITANCE_","_LINE","P_LINE","_LANGUAGE","_CUSTOM","INIT_","_SIZE", +"_PACK","_VTABLE","_VTFIXUP","FROMUNMANAGED_","CALLMOSTDERIVED_","_VTENTRY", +"RETAINAPPDOMAIN_","_FILE","NOMETADATA_","_HASH","_ASSEMBLY","_PUBLICKEY", +"_PUBLICKEYTOKEN","ALGORITHM_","_VER","_LOCALE","EXTERN_","_MRESOURCE", +"_MODULE","_EXPORT","LEGACY_","LIBRARY_","X86_","AMD64_","ARM_","ARM64_", +"MARSHAL_","CUSTOM_","SYSSTRING_","FIXED_","VARIANT_","CURRENCY_","SYSCHAR_", +"DECIMAL_","DATE_","BSTR_","TBSTR_","LPSTR_","LPWSTR_","LPTSTR_","OBJECTREF_", +"IUNKNOWN_","IDISPATCH_","STRUCT_","SAFEARRAY_","BYVALSTR_","LPVOID_","ANY_", +"ARRAY_","LPSTRUCT_","IIDPARAM_","IN_","OUT_","OPT_","_PARAM","_OVERRIDE", +"WITH_","NULL_","HRESULT_","CARRAY_","USERDEFINED_","RECORD_","FILETIME_", +"BLOB_","STREAM_","STORAGE_","STREAMED_OBJECT_","STORED_OBJECT_","BLOB_OBJECT_", +"CF_","CLSID_","VECTOR_","_SUBSYSTEM","_CORFLAGS","ALIGNMENT_","_IMAGEBASE", +"_STACKRESERVE","_TYPEDEF","_TEMPLATE","_TYPELIST","_MSCORLIB","P_DEFINE", +"P_UNDEF","P_IFDEF","P_IFNDEF","P_ELSE","P_ENDIF","P_INCLUDE","CONSTRAINT_", +"CONST_","$accept","decls","dottedName","id","methodName","atOpt","slashedName", +"labels","callConv","callKind","int32","customHead","customHeadWithOwner", +"vtfixupAttr","paramAttr","ddItemCount","variantType","repeatOpt","truefalse", +"typarAttrib","typarAttribs","conTyparAttrib","conTyparAttribs","iidParamIndex", +"genArity","genArityNotEmpty","float64","int64","sigArgs0","sigArgs1","sigArg", +"type","bound","bounds1","bytes","hexbytes","nativeType","marshalBlob", +"initOpt","compQstring","caValue","marshalClause","fieldInit","serInit", +"fieldSerInit","constTypeArg","f32seq","f64seq","i8seq","i16seq","i32seq", +"i64seq","boolSeq","sqstringSeq","classSeq","objSeq","simpleType","tyArgs0", +"tyArgs1","tyArgs2","typeList","typeListNotEmpty","tyBound","customBlobDescr", +"serializType","customBlobArgs","customBlobNVPairs","secAttrBlob", +"secAttrSetBlob","fieldOrProp","intOrWildcard","typarsRest","typars", +"typarsClause","className","typeSpec","ownerType","customType","memberRef", +"methodRef","mdtoken","classAttr","methAttr","fieldAttr","implAttr","eventAttr", +"propAttr","pinvAttr","nameValPairs","nameValPair","secAction","psetHead", +"fileAttr","fileEntry","asmAttr","exptAttr","manresAttr","customDescr", +"customDescrWithOwner","instr_none","instr_var","instr_i","instr_i8","instr_r", +"instr_brtarget","instr_method","instr_field","instr_type","instr_string", +"instr_sig","instr_tok","instr_switch","instr_r_head","decl","classHead", +"classDecls","nameSpaceHead","methodHead","methodDecls","fieldDecl","dataDecl", +"vtableDecl","vtfixupDecl","extSourceSpec","fileDecl","assemblyHead", +"assemblyDecls","assemblyRefHead","assemblyRefDecls","exptypeHead", +"exptypeDecls","manifestResHead","manifestResDecls","moduleHead","secDecl", +"customAttrDecl","languageDecl","typedefDecl","compControl","classNameSeq", +"vtableHead","_class","classHeadBegin","extendsClause","implClause","implList", +"classDecl","eventHead","eventDecls","propHead","propDecls","exportHead", +"methodSpec","eventDecl","propDecl","methodHeadPart1","marshalBlobHead", +"localsHead","methodDecl","sehBlock","instr","scopeBlock","scopeOpen", +"tryBlock","sehClauses","sehClause","tryHead","catchClause","handlerBlock", +"filterClause","finallyClause","faultClause","filterHead","ddHead","ddBody", +"tls","ddItemList","ddItem","bytearrayhead","esHead","hashHead","assemblyDecl", +"asmOrRefDecl","publicKeyHead","localeHead","publicKeyTokenHead", +"assemblyRefDecl","exptypeDecl","manifestResDecl","illegal-symbol", +}; +static const char *const yyrule[] = { +"$accept : decls", +"decls :", +"decls : decls decl", +"decl : classHead '{' classDecls '}'", +"decl : nameSpaceHead '{' decls '}'", +"decl : methodHead methodDecls '}'", +"decl : fieldDecl", +"decl : dataDecl", +"decl : vtableDecl", +"decl : vtfixupDecl", +"decl : extSourceSpec", +"decl : fileDecl", +"decl : assemblyHead '{' assemblyDecls '}'", +"decl : assemblyRefHead '{' assemblyRefDecls '}'", +"decl : exptypeHead '{' exptypeDecls '}'", +"decl : manifestResHead '{' manifestResDecls '}'", +"decl : moduleHead", +"decl : secDecl", +"decl : customAttrDecl", +"decl : _SUBSYSTEM int32", +"decl : _CORFLAGS int32", +"decl : _FILE ALIGNMENT_ int32", +"decl : _IMAGEBASE int64", +"decl : _STACKRESERVE int64", +"decl : languageDecl", +"decl : typedefDecl", +"decl : compControl", +"decl : _TYPELIST '{' classNameSeq '}'", +"decl : _MSCORLIB", +"classNameSeq :", +"classNameSeq : className classNameSeq", +"compQstring : QSTRING", +"compQstring : compQstring '+' QSTRING", +"languageDecl : _LANGUAGE SQSTRING", +"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING", +"languageDecl : _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING", +"id : ID", +"id : SQSTRING", +"dottedName : id", +"dottedName : DOTTEDNAME", +"dottedName : dottedName '.' dottedName", +"int32 : INT32", +"int64 : INT64", +"int64 : INT32", +"float64 : FLOAT64", +"float64 : FLOAT32_ '(' int32 ')'", +"float64 : FLOAT64_ '(' int64 ')'", +"typedefDecl : _TYPEDEF type AS_ dottedName", +"typedefDecl : _TYPEDEF className AS_ dottedName", +"typedefDecl : _TYPEDEF memberRef AS_ dottedName", +"typedefDecl : _TYPEDEF customDescr AS_ dottedName", +"typedefDecl : _TYPEDEF customDescrWithOwner AS_ dottedName", +"compControl : P_DEFINE dottedName", +"compControl : P_DEFINE dottedName compQstring", +"compControl : P_UNDEF dottedName", +"compControl : P_IFDEF dottedName", +"compControl : P_IFNDEF dottedName", +"compControl : P_ELSE", +"compControl : P_ENDIF", +"compControl : P_INCLUDE QSTRING", +"compControl : ';'", +"customDescr : _CUSTOM customType", +"customDescr : _CUSTOM customType '=' compQstring", +"customDescr : _CUSTOM customType '=' '{' customBlobDescr '}'", +"customDescr : customHead bytes ')'", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' compQstring", +"customDescrWithOwner : _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}'", +"customDescrWithOwner : customHeadWithOwner bytes ')'", +"customHead : _CUSTOM customType '=' '('", +"customHeadWithOwner : _CUSTOM '(' ownerType ')' customType '=' '('", +"customType : methodRef", +"ownerType : typeSpec", +"ownerType : memberRef", +"customBlobDescr : customBlobArgs customBlobNVPairs", +"customBlobArgs :", +"customBlobArgs : customBlobArgs serInit", +"customBlobArgs : customBlobArgs compControl", +"customBlobNVPairs :", +"customBlobNVPairs : customBlobNVPairs fieldOrProp serializType dottedName '=' serInit", +"customBlobNVPairs : customBlobNVPairs compControl", +"fieldOrProp : FIELD_", +"fieldOrProp : PROPERTY_", +"customAttrDecl : customDescr", +"customAttrDecl : customDescrWithOwner", +"customAttrDecl : TYPEDEF_CA", +"serializType : simpleType", +"serializType : TYPE_", +"serializType : OBJECT_", +"serializType : ENUM_ CLASS_ SQSTRING", +"serializType : ENUM_ className", +"serializType : serializType '[' ']'", +"moduleHead : _MODULE", +"moduleHead : _MODULE dottedName", +"moduleHead : _MODULE EXTERN_ dottedName", +"vtfixupDecl : _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id", +"vtfixupAttr :", +"vtfixupAttr : vtfixupAttr INT32_", +"vtfixupAttr : vtfixupAttr INT64_", +"vtfixupAttr : vtfixupAttr FROMUNMANAGED_", +"vtfixupAttr : vtfixupAttr CALLMOSTDERIVED_", +"vtfixupAttr : vtfixupAttr RETAINAPPDOMAIN_", +"vtableDecl : vtableHead bytes ')'", +"vtableHead : _VTABLE '=' '('", +"nameSpaceHead : _NAMESPACE dottedName", +"_class : _CLASS", +"classHeadBegin : _class classAttr dottedName typarsClause", +"classHead : classHeadBegin extendsClause implClause", +"classAttr :", +"classAttr : classAttr PUBLIC_", +"classAttr : classAttr PRIVATE_", +"classAttr : classAttr VALUE_", +"classAttr : classAttr ENUM_", +"classAttr : classAttr INTERFACE_", +"classAttr : classAttr SEALED_", +"classAttr : classAttr ABSTRACT_", +"classAttr : classAttr AUTO_", +"classAttr : classAttr SEQUENTIAL_", +"classAttr : classAttr EXPLICIT_", +"classAttr : classAttr ANSI_", +"classAttr : classAttr UNICODE_", +"classAttr : classAttr AUTOCHAR_", +"classAttr : classAttr IMPORT_", +"classAttr : classAttr SERIALIZABLE_", +"classAttr : classAttr WINDOWSRUNTIME_", +"classAttr : classAttr NESTED_ PUBLIC_", +"classAttr : classAttr NESTED_ PRIVATE_", +"classAttr : classAttr NESTED_ FAMILY_", +"classAttr : classAttr NESTED_ ASSEMBLY_", +"classAttr : classAttr NESTED_ FAMANDASSEM_", +"classAttr : classAttr NESTED_ FAMORASSEM_", +"classAttr : classAttr BEFOREFIELDINIT_", +"classAttr : classAttr SPECIALNAME_", +"classAttr : classAttr RTSPECIALNAME_", +"classAttr : classAttr FLAGS_ '(' int32 ')'", +"extendsClause :", +"extendsClause : EXTENDS_ typeSpec", +"implClause :", +"implClause : IMPLEMENTS_ implList", +"classDecls :", +"classDecls : classDecls classDecl", +"implList : implList ',' typeSpec", +"implList : typeSpec", +"typeList :", +"typeList : typeListNotEmpty", +"typeListNotEmpty : typeSpec", +"typeListNotEmpty : typeListNotEmpty ',' typeSpec", +"typarsClause :", +"typarsClause : '<' typars '>'", +"typarAttrib : '+'", +"typarAttrib : '-'", +"typarAttrib : CLASS_", +"typarAttrib : VALUETYPE_", +"typarAttrib : BYREFLIKE_", +"typarAttrib : _CTOR", +"typarAttrib : FLAGS_ '(' int32 ')'", +"typarAttribs :", +"typarAttribs : typarAttrib typarAttribs", +"conTyparAttrib : FLAGS_ '(' int32 ')'", +"conTyparAttribs :", +"conTyparAttribs : conTyparAttrib conTyparAttribs", +"typars : CONST_ conTyparAttribs type dottedName typarsRest", +"typars : typarAttribs tyBound dottedName typarsRest", +"typars : typarAttribs dottedName typarsRest", +"typarsRest :", +"typarsRest : ',' typars", +"tyBound : '(' typeList ')'", +"genArity :", +"genArity : genArityNotEmpty", +"genArityNotEmpty : '<' '[' int32 ']' '>'", +"classDecl : methodHead methodDecls '}'", +"classDecl : classHead '{' classDecls '}'", +"classDecl : eventHead '{' eventDecls '}'", +"classDecl : propHead '{' propDecls '}'", +"classDecl : fieldDecl", +"classDecl : dataDecl", +"classDecl : secDecl", +"classDecl : extSourceSpec", +"classDecl : customAttrDecl", +"classDecl : _SIZE int32", +"classDecl : _PACK int32", +"classDecl : exportHead '{' exptypeDecls '}'", +"classDecl : _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')'", +"classDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", +"classDecl : languageDecl", +"classDecl : compControl", +"classDecl : _PARAM TYPE_ '[' int32 ']'", +"classDecl : _PARAM TYPE_ dottedName", +"classDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", +"classDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", +"classDecl : _INTERFACEIMPL TYPE_ typeSpec customDescr", +"fieldDecl : _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt", +"fieldAttr :", +"fieldAttr : fieldAttr STATIC_", +"fieldAttr : fieldAttr PUBLIC_", +"fieldAttr : fieldAttr PRIVATE_", +"fieldAttr : fieldAttr FAMILY_", +"fieldAttr : fieldAttr INITONLY_", +"fieldAttr : fieldAttr RTSPECIALNAME_", +"fieldAttr : fieldAttr SPECIALNAME_", +"fieldAttr : fieldAttr MARSHAL_ '(' marshalBlob ')'", +"fieldAttr : fieldAttr ASSEMBLY_", +"fieldAttr : fieldAttr FAMANDASSEM_", +"fieldAttr : fieldAttr FAMORASSEM_", +"fieldAttr : fieldAttr PRIVATESCOPE_", +"fieldAttr : fieldAttr LITERAL_", +"fieldAttr : fieldAttr NOTSERIALIZED_", +"fieldAttr : fieldAttr FLAGS_ '(' int32 ')'", +"atOpt :", +"atOpt : AT_ id", +"initOpt :", +"initOpt : '=' fieldInit", +"repeatOpt :", +"repeatOpt : '[' int32 ']'", +"methodRef : callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')'", +"methodRef : callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')'", +"methodRef : callConv type methodName tyArgs0 '(' sigArgs0 ')'", +"methodRef : callConv type methodName genArityNotEmpty '(' sigArgs0 ')'", +"methodRef : mdtoken", +"methodRef : TYPEDEF_M", +"methodRef : TYPEDEF_MR", +"callConv : INSTANCE_ callConv", +"callConv : EXPLICIT_ callConv", +"callConv : callKind", +"callConv : CALLCONV_ '(' int32 ')'", +"callKind :", +"callKind : DEFAULT_", +"callKind : VARARG_", +"callKind : UNMANAGED_ CDECL_", +"callKind : UNMANAGED_ STDCALL_", +"callKind : UNMANAGED_ THISCALL_", +"callKind : UNMANAGED_ FASTCALL_", +"callKind : UNMANAGED_", +"mdtoken : MDTOKEN_ '(' int32 ')'", +"memberRef : methodSpec methodRef", +"memberRef : FIELD_ type typeSpec DCOLON dottedName", +"memberRef : FIELD_ type dottedName", +"memberRef : FIELD_ TYPEDEF_F", +"memberRef : FIELD_ TYPEDEF_MR", +"memberRef : mdtoken", +"eventHead : _EVENT eventAttr typeSpec dottedName", +"eventHead : _EVENT eventAttr dottedName", +"eventAttr :", +"eventAttr : eventAttr RTSPECIALNAME_", +"eventAttr : eventAttr SPECIALNAME_", +"eventDecls :", +"eventDecls : eventDecls eventDecl", +"eventDecl : _ADDON methodRef", +"eventDecl : _REMOVEON methodRef", +"eventDecl : _FIRE methodRef", +"eventDecl : _OTHER methodRef", +"eventDecl : extSourceSpec", +"eventDecl : customAttrDecl", +"eventDecl : languageDecl", +"eventDecl : compControl", +"propHead : _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt", +"propAttr :", +"propAttr : propAttr RTSPECIALNAME_", +"propAttr : propAttr SPECIALNAME_", +"propDecls :", +"propDecls : propDecls propDecl", +"propDecl : _SET methodRef", +"propDecl : _GET methodRef", +"propDecl : _OTHER methodRef", +"propDecl : customAttrDecl", +"propDecl : extSourceSpec", +"propDecl : languageDecl", +"propDecl : compControl", +"methodHeadPart1 : _METHOD", +"marshalClause :", +"marshalClause : MARSHAL_ '(' marshalBlob ')'", +"marshalBlob : nativeType", +"marshalBlob : marshalBlobHead hexbytes '}'", +"marshalBlobHead : '{'", +"methodHead : methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{'", +"methAttr :", +"methAttr : methAttr STATIC_", +"methAttr : methAttr PUBLIC_", +"methAttr : methAttr PRIVATE_", +"methAttr : methAttr FAMILY_", +"methAttr : methAttr FINAL_", +"methAttr : methAttr SPECIALNAME_", +"methAttr : methAttr VIRTUAL_", +"methAttr : methAttr STRICT_", +"methAttr : methAttr ABSTRACT_", +"methAttr : methAttr ASSEMBLY_", +"methAttr : methAttr FAMANDASSEM_", +"methAttr : methAttr FAMORASSEM_", +"methAttr : methAttr PRIVATESCOPE_", +"methAttr : methAttr HIDEBYSIG_", +"methAttr : methAttr NEWSLOT_", +"methAttr : methAttr RTSPECIALNAME_", +"methAttr : methAttr UNMANAGEDEXP_", +"methAttr : methAttr REQSECOBJ_", +"methAttr : methAttr FLAGS_ '(' int32 ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')'", +"methAttr : methAttr PINVOKEIMPL_ '(' pinvAttr ')'", +"pinvAttr :", +"pinvAttr : pinvAttr NOMANGLE_", +"pinvAttr : pinvAttr ANSI_", +"pinvAttr : pinvAttr UNICODE_", +"pinvAttr : pinvAttr AUTOCHAR_", +"pinvAttr : pinvAttr LASTERR_", +"pinvAttr : pinvAttr WINAPI_", +"pinvAttr : pinvAttr CDECL_", +"pinvAttr : pinvAttr STDCALL_", +"pinvAttr : pinvAttr THISCALL_", +"pinvAttr : pinvAttr FASTCALL_", +"pinvAttr : pinvAttr BESTFIT_ ':' ON_", +"pinvAttr : pinvAttr BESTFIT_ ':' OFF_", +"pinvAttr : pinvAttr CHARMAPERROR_ ':' ON_", +"pinvAttr : pinvAttr CHARMAPERROR_ ':' OFF_", +"pinvAttr : pinvAttr FLAGS_ '(' int32 ')'", +"methodName : _CTOR", +"methodName : _CCTOR", +"methodName : dottedName", +"paramAttr :", +"paramAttr : paramAttr '[' IN_ ']'", +"paramAttr : paramAttr '[' OUT_ ']'", +"paramAttr : paramAttr '[' OPT_ ']'", +"paramAttr : paramAttr '[' int32 ']'", +"implAttr :", +"implAttr : implAttr NATIVE_", +"implAttr : implAttr CIL_", +"implAttr : implAttr OPTIL_", +"implAttr : implAttr MANAGED_", +"implAttr : implAttr UNMANAGED_", +"implAttr : implAttr FORWARDREF_", +"implAttr : implAttr PRESERVESIG_", +"implAttr : implAttr RUNTIME_", +"implAttr : implAttr INTERNALCALL_", +"implAttr : implAttr SYNCHRONIZED_", +"implAttr : implAttr NOINLINING_", +"implAttr : implAttr AGGRESSIVEINLINING_", +"implAttr : implAttr NOOPTIMIZATION_", +"implAttr : implAttr AGGRESSIVEOPTIMIZATION_", +"implAttr : implAttr FLAGS_ '(' int32 ')'", +"localsHead : _LOCALS", +"methodDecls :", +"methodDecls : methodDecls methodDecl", +"methodDecl : _EMITBYTE int32", +"methodDecl : sehBlock", +"methodDecl : _MAXSTACK int32", +"methodDecl : localsHead '(' sigArgs0 ')'", +"methodDecl : localsHead INIT_ '(' sigArgs0 ')'", +"methodDecl : _ENTRYPOINT", +"methodDecl : _ZEROINIT", +"methodDecl : dataDecl", +"methodDecl : instr", +"methodDecl : id ':'", +"methodDecl : secDecl", +"methodDecl : extSourceSpec", +"methodDecl : languageDecl", +"methodDecl : customAttrDecl", +"methodDecl : compControl", +"methodDecl : _EXPORT '[' int32 ']'", +"methodDecl : _EXPORT '[' int32 ']' AS_ id", +"methodDecl : _VTENTRY int32 ':' int32", +"methodDecl : _OVERRIDE typeSpec DCOLON methodName", +"methodDecl : _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')'", +"methodDecl : scopeBlock", +"methodDecl : _PARAM TYPE_ '[' int32 ']'", +"methodDecl : _PARAM TYPE_ dottedName", +"methodDecl : _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec", +"methodDecl : _PARAM CONSTRAINT_ dottedName ',' typeSpec", +"methodDecl : _PARAM '[' int32 ']' initOpt", +"scopeBlock : scopeOpen methodDecls '}'", +"scopeOpen : '{'", +"sehBlock : tryBlock sehClauses", +"sehClauses : sehClause sehClauses", +"sehClauses : sehClause", +"tryBlock : tryHead scopeBlock", +"tryBlock : tryHead id TO_ id", +"tryBlock : tryHead int32 TO_ int32", +"tryHead : _TRY", +"sehClause : catchClause handlerBlock", +"sehClause : filterClause handlerBlock", +"sehClause : finallyClause handlerBlock", +"sehClause : faultClause handlerBlock", +"filterClause : filterHead scopeBlock", +"filterClause : filterHead id", +"filterClause : filterHead int32", +"filterHead : FILTER_", +"catchClause : CATCH_ typeSpec", +"finallyClause : FINALLY_", +"faultClause : FAULT_", +"handlerBlock : scopeBlock", +"handlerBlock : HANDLER_ id TO_ id", +"handlerBlock : HANDLER_ int32 TO_ int32", +"dataDecl : ddHead ddBody", +"ddHead : _DATA tls id '='", +"ddHead : _DATA tls", +"tls :", +"tls : TLS_", +"tls : CIL_", +"ddBody : '{' ddItemList '}'", +"ddBody : ddItem", +"ddItemList : ddItem ',' ddItemList", +"ddItemList : ddItem", +"ddItemCount :", +"ddItemCount : '[' int32 ']'", +"ddItem : CHAR_ '*' '(' compQstring ')'", +"ddItem : '&' '(' id ')'", +"ddItem : bytearrayhead bytes ')'", +"ddItem : FLOAT32_ '(' float64 ')' ddItemCount", +"ddItem : FLOAT64_ '(' float64 ')' ddItemCount", +"ddItem : INT64_ '(' int64 ')' ddItemCount", +"ddItem : INT32_ '(' int32 ')' ddItemCount", +"ddItem : INT16_ '(' int32 ')' ddItemCount", +"ddItem : INT8_ '(' int32 ')' ddItemCount", +"ddItem : FLOAT32_ ddItemCount", +"ddItem : FLOAT64_ ddItemCount", +"ddItem : INT64_ ddItemCount", +"ddItem : INT32_ ddItemCount", +"ddItem : INT16_ ddItemCount", +"ddItem : INT8_ ddItemCount", +"fieldSerInit : FLOAT32_ '(' float64 ')'", +"fieldSerInit : FLOAT64_ '(' float64 ')'", +"fieldSerInit : FLOAT32_ '(' int32 ')'", +"fieldSerInit : FLOAT64_ '(' int64 ')'", +"fieldSerInit : INT64_ '(' int64 ')'", +"fieldSerInit : INT32_ '(' int32 ')'", +"fieldSerInit : INT16_ '(' int32 ')'", +"fieldSerInit : INT8_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT64_ '(' int64 ')'", +"fieldSerInit : UNSIGNED_ INT32_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT16_ '(' int32 ')'", +"fieldSerInit : UNSIGNED_ INT8_ '(' int32 ')'", +"fieldSerInit : UINT64_ '(' int64 ')'", +"fieldSerInit : UINT32_ '(' int32 ')'", +"fieldSerInit : UINT16_ '(' int32 ')'", +"fieldSerInit : UINT8_ '(' int32 ')'", +"fieldSerInit : CHAR_ '(' int32 ')'", +"fieldSerInit : BOOL_ '(' truefalse ')'", +"fieldSerInit : bytearrayhead bytes ')'", +"bytearrayhead : BYTEARRAY_ '('", +"bytes :", +"bytes : hexbytes", +"hexbytes : HEXBYTE", +"hexbytes : hexbytes HEXBYTE", +"fieldInit : fieldSerInit", +"fieldInit : compQstring", +"fieldInit : NULLREF_", +"serInit : fieldSerInit", +"serInit : STRING_ '(' NULLREF_ ')'", +"serInit : STRING_ '(' SQSTRING ')'", +"serInit : TYPE_ '(' CLASS_ SQSTRING ')'", +"serInit : TYPE_ '(' className ')'", +"serInit : TYPE_ '(' NULLREF_ ')'", +"serInit : OBJECT_ '(' serInit ')'", +"serInit : FLOAT32_ '[' int32 ']' '(' f32seq ')'", +"serInit : FLOAT64_ '[' int32 ']' '(' f64seq ')'", +"serInit : INT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : INT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : INT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : INT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : UINT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : UINT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : UINT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : UINT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')'", +"serInit : UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')'", +"serInit : UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')'", +"serInit : UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')'", +"serInit : CHAR_ '[' int32 ']' '(' i16seq ')'", +"serInit : BOOL_ '[' int32 ']' '(' boolSeq ')'", +"serInit : STRING_ '[' int32 ']' '(' sqstringSeq ')'", +"serInit : TYPE_ '[' int32 ']' '(' classSeq ')'", +"serInit : OBJECT_ '[' int32 ']' '(' objSeq ')'", +"constTypeArg : FLOAT32_ '(' float64 ')'", +"constTypeArg : FLOAT64_ '(' float64 ')'", +"constTypeArg : FLOAT32_ '(' int32 ')'", +"constTypeArg : FLOAT64_ '(' int64 ')'", +"constTypeArg : INT64_ '(' int64 ')'", +"constTypeArg : INT32_ '(' int32 ')'", +"constTypeArg : INT16_ '(' int32 ')'", +"constTypeArg : INT8_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT64_ '(' int64 ')'", +"constTypeArg : UNSIGNED_ INT32_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT16_ '(' int32 ')'", +"constTypeArg : UNSIGNED_ INT8_ '(' int32 ')'", +"constTypeArg : UINT64_ '(' int64 ')'", +"constTypeArg : UINT32_ '(' int32 ')'", +"constTypeArg : UINT16_ '(' int32 ')'", +"constTypeArg : UINT8_ '(' int32 ')'", +"constTypeArg : CHAR_ '(' int32 ')'", +"constTypeArg : BOOL_ '(' truefalse ')'", +"f32seq :", +"f32seq : f32seq float64", +"f32seq : f32seq int32", +"f64seq :", +"f64seq : f64seq float64", +"f64seq : f64seq int64", +"i64seq :", +"i64seq : i64seq int64", +"i32seq :", +"i32seq : i32seq int32", +"i16seq :", +"i16seq : i16seq int32", +"i8seq :", +"i8seq : i8seq int32", +"boolSeq :", +"boolSeq : boolSeq truefalse", +"sqstringSeq :", +"sqstringSeq : sqstringSeq NULLREF_", +"sqstringSeq : sqstringSeq SQSTRING", +"classSeq :", +"classSeq : classSeq NULLREF_", +"classSeq : classSeq CLASS_ SQSTRING", +"classSeq : classSeq className", +"objSeq :", +"objSeq : objSeq serInit", +"methodSpec : METHOD_", +"instr_none : INSTR_NONE", +"instr_var : INSTR_VAR", +"instr_i : INSTR_I", +"instr_i8 : INSTR_I8", +"instr_r : INSTR_R", +"instr_brtarget : INSTR_BRTARGET", +"instr_method : INSTR_METHOD", +"instr_field : INSTR_FIELD", +"instr_type : INSTR_TYPE", +"instr_string : INSTR_STRING", +"instr_sig : INSTR_SIG", +"instr_tok : INSTR_TOK", +"instr_switch : INSTR_SWITCH", +"instr_r_head : instr_r '('", +"instr : instr_none", +"instr : instr_var int32", +"instr : instr_var id", +"instr : instr_i int32", +"instr : instr_i8 int64", +"instr : instr_r float64", +"instr : instr_r int64", +"instr : instr_r_head bytes ')'", +"instr : instr_brtarget int32", +"instr : instr_brtarget id", +"instr : instr_method methodRef", +"instr : instr_field type typeSpec DCOLON dottedName", +"instr : instr_field type dottedName", +"instr : instr_field mdtoken", +"instr : instr_field TYPEDEF_F", +"instr : instr_field TYPEDEF_MR", +"instr : instr_type typeSpec", +"instr : instr_string compQstring", +"instr : instr_string ANSI_ '(' compQstring ')'", +"instr : instr_string bytearrayhead bytes ')'", +"instr : instr_sig callConv type '(' sigArgs0 ')'", +"instr : instr_tok ownerType", +"instr : instr_switch '(' labels ')'", +"labels :", +"labels : id ',' labels", +"labels : int32 ',' labels", +"labels : id", +"labels : int32", +"tyArgs0 :", +"tyArgs0 : '<' tyArgs1 '>'", +"tyArgs1 :", +"tyArgs1 : tyArgs2", +"tyArgs2 : type", +"tyArgs2 : tyArgs2 ',' type", +"sigArgs0 :", +"sigArgs0 : sigArgs1", +"sigArgs1 : sigArg", +"sigArgs1 : sigArgs1 ',' sigArg", +"sigArg : ELLIPSIS", +"sigArg : paramAttr type marshalClause", +"sigArg : paramAttr type marshalClause id", +"className : '[' dottedName ']' slashedName", +"className : '[' mdtoken ']' slashedName", +"className : '[' '*' ']' slashedName", +"className : '[' _MODULE dottedName ']' slashedName", +"className : slashedName", +"className : mdtoken", +"className : TYPEDEF_T", +"className : _THIS", +"className : _BASE", +"className : _NESTER", +"slashedName : dottedName", +"slashedName : slashedName '/' dottedName", +"typeSpec : className", +"typeSpec : '[' dottedName ']'", +"typeSpec : '[' _MODULE dottedName ']'", +"typeSpec : type", +"nativeType :", +"nativeType : CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')'", +"nativeType : CUSTOM_ '(' compQstring ',' compQstring ')'", +"nativeType : FIXED_ SYSSTRING_ '[' int32 ']'", +"nativeType : FIXED_ ARRAY_ '[' int32 ']' nativeType", +"nativeType : VARIANT_", +"nativeType : CURRENCY_", +"nativeType : SYSCHAR_", +"nativeType : VOID_", +"nativeType : BOOL_", +"nativeType : INT8_", +"nativeType : INT16_", +"nativeType : INT32_", +"nativeType : INT64_", +"nativeType : FLOAT32_", +"nativeType : FLOAT64_", +"nativeType : ERROR_", +"nativeType : UNSIGNED_ INT8_", +"nativeType : UNSIGNED_ INT16_", +"nativeType : UNSIGNED_ INT32_", +"nativeType : UNSIGNED_ INT64_", +"nativeType : UINT8_", +"nativeType : UINT16_", +"nativeType : UINT32_", +"nativeType : UINT64_", +"nativeType : nativeType '*'", +"nativeType : nativeType '[' ']'", +"nativeType : nativeType '[' int32 ']'", +"nativeType : nativeType '[' int32 '+' int32 ']'", +"nativeType : nativeType '[' '+' int32 ']'", +"nativeType : DECIMAL_", +"nativeType : DATE_", +"nativeType : BSTR_", +"nativeType : LPSTR_", +"nativeType : LPWSTR_", +"nativeType : LPTSTR_", +"nativeType : OBJECTREF_", +"nativeType : IUNKNOWN_ iidParamIndex", +"nativeType : IDISPATCH_ iidParamIndex", +"nativeType : STRUCT_", +"nativeType : INTERFACE_ iidParamIndex", +"nativeType : SAFEARRAY_ variantType", +"nativeType : SAFEARRAY_ variantType ',' compQstring", +"nativeType : INT_", +"nativeType : UNSIGNED_ INT_", +"nativeType : UINT_", +"nativeType : NESTED_ STRUCT_", +"nativeType : BYVALSTR_", +"nativeType : ANSI_ BSTR_", +"nativeType : TBSTR_", +"nativeType : VARIANT_ BOOL_", +"nativeType : METHOD_", +"nativeType : AS_ ANY_", +"nativeType : LPSTRUCT_", +"nativeType : TYPEDEF_TS", +"iidParamIndex :", +"iidParamIndex : '(' IIDPARAM_ '=' int32 ')'", +"variantType :", +"variantType : NULL_", +"variantType : VARIANT_", +"variantType : CURRENCY_", +"variantType : VOID_", +"variantType : BOOL_", +"variantType : INT8_", +"variantType : INT16_", +"variantType : INT32_", +"variantType : INT64_", +"variantType : FLOAT32_", +"variantType : FLOAT64_", +"variantType : UNSIGNED_ INT8_", +"variantType : UNSIGNED_ INT16_", +"variantType : UNSIGNED_ INT32_", +"variantType : UNSIGNED_ INT64_", +"variantType : UINT8_", +"variantType : UINT16_", +"variantType : UINT32_", +"variantType : UINT64_", +"variantType : '*'", +"variantType : variantType '[' ']'", +"variantType : variantType VECTOR_", +"variantType : variantType '&'", +"variantType : DECIMAL_", +"variantType : DATE_", +"variantType : BSTR_", +"variantType : LPSTR_", +"variantType : LPWSTR_", +"variantType : IUNKNOWN_", +"variantType : IDISPATCH_", +"variantType : SAFEARRAY_", +"variantType : INT_", +"variantType : UNSIGNED_ INT_", +"variantType : UINT_", +"variantType : ERROR_", +"variantType : HRESULT_", +"variantType : CARRAY_", +"variantType : USERDEFINED_", +"variantType : RECORD_", +"variantType : FILETIME_", +"variantType : BLOB_", +"variantType : STREAM_", +"variantType : STORAGE_", +"variantType : STREAMED_OBJECT_", +"variantType : STORED_OBJECT_", +"variantType : BLOB_OBJECT_", +"variantType : CF_", +"variantType : CLSID_", +"type : CLASS_ className", +"type : OBJECT_", +"type : VALUE_ CLASS_ className", +"type : VALUETYPE_ className", +"type : CONST_ constTypeArg", +"type : type '[' ']'", +"type : type '[' bounds1 ']'", +"type : type '&'", +"type : type '*'", +"type : type PINNED_", +"type : type MODREQ_ '(' typeSpec ')'", +"type : type MODOPT_ '(' typeSpec ')'", +"type : methodSpec callConv type '*' '(' sigArgs0 ')'", +"type : type '<' tyArgs1 '>'", +"type : '!' '!' int32", +"type : '!' int32", +"type : '!' '!' dottedName", +"type : '!' dottedName", +"type : TYPEDREF_", +"type : VOID_", +"type : NATIVE_ INT_", +"type : NATIVE_ UNSIGNED_ INT_", +"type : NATIVE_ UINT_", +"type : simpleType", +"type : ELLIPSIS type", +"simpleType : CHAR_", +"simpleType : STRING_", +"simpleType : BOOL_", +"simpleType : INT8_", +"simpleType : INT16_", +"simpleType : INT32_", +"simpleType : INT64_", +"simpleType : FLOAT32_", +"simpleType : FLOAT64_", +"simpleType : UNSIGNED_ INT8_", +"simpleType : UNSIGNED_ INT16_", +"simpleType : UNSIGNED_ INT32_", +"simpleType : UNSIGNED_ INT64_", +"simpleType : UINT8_", +"simpleType : UINT16_", +"simpleType : UINT32_", +"simpleType : UINT64_", +"simpleType : TYPEDEF_TS", +"bounds1 : bound", +"bounds1 : bounds1 ',' bound", +"bound :", +"bound : ELLIPSIS", +"bound : int32", +"bound : int32 ELLIPSIS int32", +"bound : int32 ELLIPSIS", +"secDecl : _PERMISSION secAction typeSpec '(' nameValPairs ')'", +"secDecl : _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}'", +"secDecl : _PERMISSION secAction typeSpec", +"secDecl : psetHead bytes ')'", +"secDecl : _PERMISSIONSET secAction compQstring", +"secDecl : _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}'", +"secAttrSetBlob :", +"secAttrSetBlob : secAttrBlob", +"secAttrSetBlob : secAttrBlob ',' secAttrSetBlob", +"secAttrBlob : typeSpec '=' '{' customBlobNVPairs '}'", +"secAttrBlob : CLASS_ SQSTRING '=' '{' customBlobNVPairs '}'", +"psetHead : _PERMISSIONSET secAction '=' '('", +"psetHead : _PERMISSIONSET secAction BYTEARRAY_ '('", +"nameValPairs : nameValPair", +"nameValPairs : nameValPair ',' nameValPairs", +"nameValPair : compQstring '=' caValue", +"truefalse : TRUE_", +"truefalse : FALSE_", +"caValue : truefalse", +"caValue : int32", +"caValue : INT32_ '(' int32 ')'", +"caValue : compQstring", +"caValue : className '(' INT8_ ':' int32 ')'", +"caValue : className '(' INT16_ ':' int32 ')'", +"caValue : className '(' INT32_ ':' int32 ')'", +"caValue : className '(' int32 ')'", +"secAction : REQUEST_", +"secAction : DEMAND_", +"secAction : ASSERT_", +"secAction : DENY_", +"secAction : PERMITONLY_", +"secAction : LINKCHECK_", +"secAction : INHERITCHECK_", +"secAction : REQMIN_", +"secAction : REQOPT_", +"secAction : REQREFUSE_", +"secAction : PREJITGRANT_", +"secAction : PREJITDENY_", +"secAction : NONCASDEMAND_", +"secAction : NONCASLINKDEMAND_", +"secAction : NONCASINHERITANCE_", +"esHead : _LINE", +"esHead : P_LINE", +"extSourceSpec : esHead int32 SQSTRING", +"extSourceSpec : esHead int32", +"extSourceSpec : esHead int32 ':' int32 SQSTRING", +"extSourceSpec : esHead int32 ':' int32", +"extSourceSpec : esHead int32 ':' int32 ',' int32 SQSTRING", +"extSourceSpec : esHead int32 ':' int32 ',' int32", +"extSourceSpec : esHead int32 ',' int32 ':' int32 SQSTRING", +"extSourceSpec : esHead int32 ',' int32 ':' int32", +"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING", +"extSourceSpec : esHead int32 ',' int32 ':' int32 ',' int32", +"extSourceSpec : esHead int32 QSTRING", +"fileDecl : _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry", +"fileDecl : _FILE fileAttr dottedName fileEntry", +"fileAttr :", +"fileAttr : fileAttr NOMETADATA_", +"fileEntry :", +"fileEntry : _ENTRYPOINT", +"hashHead : _HASH '=' '('", +"assemblyHead : _ASSEMBLY asmAttr dottedName", +"asmAttr :", +"asmAttr : asmAttr RETARGETABLE_", +"asmAttr : asmAttr WINDOWSRUNTIME_", +"asmAttr : asmAttr NOPLATFORM_", +"asmAttr : asmAttr LEGACY_ LIBRARY_", +"asmAttr : asmAttr CIL_", +"asmAttr : asmAttr X86_", +"asmAttr : asmAttr AMD64_", +"asmAttr : asmAttr ARM_", +"asmAttr : asmAttr ARM64_", +"assemblyDecls :", +"assemblyDecls : assemblyDecls assemblyDecl", +"assemblyDecl : _HASH ALGORITHM_ int32", +"assemblyDecl : secDecl", +"assemblyDecl : asmOrRefDecl", +"intOrWildcard : int32", +"intOrWildcard : '*'", +"asmOrRefDecl : publicKeyHead bytes ')'", +"asmOrRefDecl : _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard", +"asmOrRefDecl : _LOCALE compQstring", +"asmOrRefDecl : localeHead bytes ')'", +"asmOrRefDecl : customAttrDecl", +"asmOrRefDecl : compControl", +"publicKeyHead : _PUBLICKEY '=' '('", +"publicKeyTokenHead : _PUBLICKEYTOKEN '=' '('", +"localeHead : _LOCALE '=' '('", +"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName", +"assemblyRefHead : _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName", +"assemblyRefDecls :", +"assemblyRefDecls : assemblyRefDecls assemblyRefDecl", +"assemblyRefDecl : hashHead bytes ')'", +"assemblyRefDecl : asmOrRefDecl", +"assemblyRefDecl : publicKeyTokenHead bytes ')'", +"assemblyRefDecl : AUTO_", +"exptypeHead : _CLASS EXTERN_ exptAttr dottedName", +"exportHead : _EXPORT exptAttr dottedName", +"exptAttr :", +"exptAttr : exptAttr PRIVATE_", +"exptAttr : exptAttr PUBLIC_", +"exptAttr : exptAttr FORWARDER_", +"exptAttr : exptAttr NESTED_ PUBLIC_", +"exptAttr : exptAttr NESTED_ PRIVATE_", +"exptAttr : exptAttr NESTED_ FAMILY_", +"exptAttr : exptAttr NESTED_ ASSEMBLY_", +"exptAttr : exptAttr NESTED_ FAMANDASSEM_", +"exptAttr : exptAttr NESTED_ FAMORASSEM_", +"exptypeDecls :", +"exptypeDecls : exptypeDecls exptypeDecl", +"exptypeDecl : _FILE dottedName", +"exptypeDecl : _CLASS EXTERN_ slashedName", +"exptypeDecl : _ASSEMBLY EXTERN_ dottedName", +"exptypeDecl : MDTOKEN_ '(' int32 ')'", +"exptypeDecl : _CLASS int32", +"exptypeDecl : customAttrDecl", +"exptypeDecl : compControl", +"manifestResHead : _MRESOURCE manresAttr dottedName", +"manifestResHead : _MRESOURCE manresAttr dottedName AS_ dottedName", +"manresAttr :", +"manresAttr : manresAttr PUBLIC_", +"manresAttr : manresAttr PRIVATE_", +"manifestResDecls :", +"manifestResDecls : manifestResDecls manifestResDecl", +"manifestResDecl : _FILE dottedName AT_ int32", +"manifestResDecl : _ASSEMBLY EXTERN_ dottedName", +"manifestResDecl : customAttrDecl", +"manifestResDecl : compControl", -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - - -/* Stored state numbers (used for stacks). */ -typedef yytype_int16 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; +}; +#endif -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif +#if YYDEBUG +int yydebug; #endif +int yyerrflag; +int yychar; +YYSTYPE yyval; +YYSTYPE yylval; +int yynerrs; -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +YYLTYPE yyloc; /* position returned by actions */ +YYLTYPE yylloc; /* position from the lexer */ #endif -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif -#endif +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +#ifndef YYLLOC_DEFAULT +#define YYLLOC_DEFAULT(loc, rhs, n) \ +do \ +{ \ + if (n == 0) \ + { \ + (loc).first_line = YYRHSLOC(rhs, 0).last_line; \ + (loc).first_column = YYRHSLOC(rhs, 0).last_column; \ + (loc).last_line = YYRHSLOC(rhs, 0).last_line; \ + (loc).last_column = YYRHSLOC(rhs, 0).last_column; \ + } \ + else \ + { \ + (loc).first_line = YYRHSLOC(rhs, 1).first_line; \ + (loc).first_column = YYRHSLOC(rhs, 1).first_column; \ + (loc).last_line = YYRHSLOC(rhs, n).last_line; \ + (loc).last_column = YYRHSLOC(rhs, n).last_column; \ + } \ +} while (0) +#endif /* YYLLOC_DEFAULT */ +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ +#if YYBTYACC -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) -#else -# define YY_USE(E) /* empty */ +#ifndef YYLVQUEUEGROWTH +#define YYLVQUEUEGROWTH 32 #endif +#endif /* YYBTYACC */ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ -# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") -# else -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# endif -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") +/* define the initial stack-sizes */ +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE #else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 10000 +#define YYMAXDEPTH 10000 #endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END +#ifndef YYINITSTACKSIZE +#define YYINITSTACKSIZE 200 #endif +typedef struct { + unsigned stacksize; + YYINT *s_base; + YYINT *s_mark; + YYINT *s_last; + YYSTYPE *l_base; + YYSTYPE *l_mark; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE *p_base; + YYLTYPE *p_mark; +#endif +} YYSTACKDATA; +#if YYBTYACC -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if !defined yyoverflow - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# include /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* !defined yyoverflow */ - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc +struct YYParseState_s { - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; + struct YYParseState_s *save; /* Previously saved parser state */ + YYSTACKDATA yystack; /* saved parser stack */ + int state; /* saved parser state */ + int errflag; /* saved error recovery status */ + int lexeme; /* saved index of the conflict lexeme in the lexical queue */ + YYINT ctry; /* saved index in yyctable[] for this conflict */ }; +typedef struct YYParseState_s YYParseState; +#endif /* YYBTYACC */ +/* variables for the parser stack */ +static YYSTACKDATA yystack; +#if YYBTYACC -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) +/* Current parser state */ +static YYParseState *yyps = 0; -# define YYCOPY_NEEDED 1 +/* yypath != NULL: do the full parse, starting at *yypath parser state. */ +static YYParseState *yypath = 0; -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ - } \ - while (0) +/* Base of the lexical value queue */ +static YYSTYPE *yylvals = 0; -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ +/* Current position at lexical value queue */ +static YYSTYPE *yylvp = 0; -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 2 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3784 +/* End position of lexical value queue */ +static YYSTYPE *yylve = 0; -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 309 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 189 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 869 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 1672 +/* The last allocated position at the lexical value queue */ +static YYSTYPE *yylvlim = 0; -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 544 +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +/* Base of the lexical position queue */ +static YYLTYPE *yylpsns = 0; +/* Current position at lexical position queue */ +static YYLTYPE *yylpp = 0; -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) +/* End position of lexical position queue */ +static YYLTYPE *yylpe = 0; -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int16 yytranslate[] = -{ - 0, 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, 308, 2, 2, 2, 2, 306, 2, - 295, 296, 305, 292, 293, 303, 294, 307, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 304, 297, - 301, 298, 302, 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, 299, 2, 300, 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, 290, 2, 291, 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, - 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, 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, 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, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 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, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289 -}; - -#if YYDEBUG -/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_int16 yyrline[] = -{ - 0, 191, 191, 192, 195, 196, 197, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 224, 225, 228, 231, 232, 233, 234, 235, 236, - 239, 240, 243, 244, 247, 248, 250, 255, 256, 259, - 260, 261, 264, 267, 268, 271, 272, 273, 277, 278, - 279, 280, 281, 286, 287, 288, 289, 292, 295, 296, - 300, 301, 305, 306, 307, 308, 311, 312, 313, 315, - 318, 321, 327, 330, 331, 335, 341, 342, 344, 347, - 348, 354, 357, 358, 361, 365, 366, 374, 375, 376, - 377, 379, 381, 386, 387, 388, 395, 399, 400, 401, - 402, 403, 404, 407, 410, 414, 417, 420, 426, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 458, 459, 462, 463, - 466, 467, 470, 471, 475, 476, 479, 480, 483, 484, - 487, 488, 489, 490, 491, 492, 493, 496, 497, 500, - 503, 504, 507, 508, 509, 512, 513, 516, 519, 520, - 523, 527, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 548, 557, 558, 559, 564, 570, - 571, 572, 579, 584, 585, 586, 587, 588, 589, 590, - 591, 603, 605, 606, 607, 608, 609, 610, 611, 614, - 615, 618, 619, 622, 623, 627, 644, 650, 666, 671, - 672, 673, 676, 677, 678, 679, 682, 683, 684, 685, - 686, 687, 688, 689, 692, 695, 700, 704, 708, 710, - 712, 717, 718, 722, 723, 724, 727, 728, 731, 732, - 733, 734, 735, 736, 737, 738, 742, 748, 749, 750, - 753, 754, 758, 759, 760, 761, 762, 763, 764, 768, - 774, 775, 778, 779, 782, 785, 801, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 815, 816, 817, 818, 819, 820, 821, 824, 827, 832, - 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 844, 845, 846, 847, 850, 851, 852, 855, 856, - 857, 858, 859, 862, 863, 864, 865, 866, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 876, 877, 880, - 884, 885, 888, 889, 890, 891, 893, 896, 897, 898, - 899, 900, 901, 902, 903, 904, 905, 906, 916, 926, - 928, 931, 938, 939, 944, 950, 951, 953, 974, 977, - 981, 984, 985, 988, 989, 990, 994, 999, 1000, 1001, - 1002, 1006, 1007, 1009, 1013, 1017, 1022, 1026, 1030, 1031, - 1032, 1037, 1040, 1041, 1044, 1045, 1046, 1049, 1050, 1053, - 1054, 1057, 1058, 1063, 1064, 1065, 1066, 1073, 1080, 1087, - 1094, 1102, 1110, 1111, 1112, 1113, 1114, 1115, 1119, 1122, - 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, - 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1160, 1163, 1164, - 1167, 1168, 1172, 1173, 1174, 1179, 1180, 1181, 1183, 1185, - 1187, 1188, 1189, 1193, 1197, 1201, 1205, 1209, 1213, 1217, - 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, 1253, 1257, - 1261, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, - 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1307, - 1308, 1310, 1314, 1315, 1317, 1321, 1322, 1326, 1327, 1330, - 1331, 1334, 1335, 1338, 1339, 1343, 1344, 1345, 1349, 1350, - 1351, 1353, 1357, 1358, 1362, 1368, 1371, 1374, 1377, 1380, - 1383, 1386, 1394, 1397, 1400, 1403, 1406, 1409, 1412, 1416, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1432, 1433, 1434, - 1441, 1449, 1457, 1463, 1469, 1475, 1479, 1480, 1482, 1484, - 1488, 1494, 1497, 1498, 1499, 1500, 1501, 1505, 1506, 1509, - 1510, 1513, 1514, 1518, 1519, 1522, 1523, 1526, 1527, 1528, - 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1542, 1548, - 1555, 1556, 1559, 1560, 1561, 1562, 1566, 1567, 1574, 1580, - 1582, 1585, 1587, 1588, 1590, 1592, 1593, 1594, 1595, 1596, - 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, - 1607, 1608, 1610, 1612, 1617, 1622, 1625, 1627, 1629, 1630, - 1631, 1632, 1633, 1635, 1637, 1639, 1640, 1642, 1645, 1649, - 1650, 1651, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1660, - 1661, 1664, 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, - 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, - 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, - 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, - 1715, 1716, 1720, 1726, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1734, 1735, 1737, 1739, 1746, 1753, 1759, 1765, 1780, - 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1804, 1805, 1806, - 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1824, 1825, 1828, 1829, 1830, - 1831, 1834, 1838, 1840, 1842, 1843, 1844, 1846, 1855, 1856, - 1857, 1860, 1863, 1868, 1869, 1873, 1874, 1877, 1880, 1881, - 1884, 1887, 1890, 1893, 1897, 1903, 1909, 1915, 1923, 1924, - 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, - 1935, 1936, 1937, 1941, 1942, 1945, 1948, 1950, 1953, 1955, - 1959, 1962, 1966, 1969, 1973, 1976, 1982, 1984, 1987, 1988, - 1991, 1992, 1995, 1998, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2013, 2014, 2017, 2018, 2019, 2022, - 2023, 2026, 2027, 2029, 2030, 2031, 2032, 2035, 2038, 2041, - 2044, 2046, 2050, 2051, 2054, 2055, 2056, 2057, 2060, 2063, - 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, - 2078, 2079, 2082, 2083, 2084, 2085, 2087, 2089, 2090, 2093, - 2094, 2098, 2099, 2100, 2103, 2104, 2107, 2108, 2109, 2110 -}; +/* The last allocated position at the lexical position queue */ +static YYLTYPE *yylplim = 0; #endif -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) +/* Current position at lexical token queue */ +static YYINT *yylexp = 0; -#if YYDEBUG || 0 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; +static YYINT *yylexemes = 0; +#endif /* YYBTYACC */ +#line 2113 "asmparse.y" + + +#include "grammar_after.cpp" +#line 7068 "asmparse.cpp" -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "\"end of file\"", "error", "\"invalid token\"", "ERROR_", - "BAD_COMMENT_", "BAD_LITERAL_", "ID", "DOTTEDNAME", "QSTRING", - "SQSTRING", "INT32_T", "INT64_T", "FLOAT64", "HEXBYTE", "TYPEDEF_T", - "TYPEDEF_M", "TYPEDEF_F", "TYPEDEF_TS", "TYPEDEF_MR", "TYPEDEF_CA", - "DCOLON", "ELLIPSIS", "VOID_", "BOOL_", "CHAR_", "UNSIGNED_", "INT_", - "INT8_", "INT16_", "INT32_", "INT64_", "FLOAT_", "FLOAT32_", "FLOAT64_", - "BYTEARRAY_", "UINT_", "UINT8_", "UINT16_", "UINT32_", "UINT64_", - "FLAGS_", "CALLCONV_", "MDTOKEN_", "OBJECT_", "STRING_", "NULLREF_", - "DEFAULT_", "CDECL_", "VARARG_", "STDCALL_", "THISCALL_", "FASTCALL_", - "CLASS_", "BYREFLIKE_", "TYPEDREF_", "UNMANAGED_", "FINALLY_", - "HANDLER_", "CATCH_", "FILTER_", "FAULT_", "EXTENDS_", "IMPLEMENTS_", - "TO_", "AT_", "TLS_", "TRUE_", "FALSE_", "_INTERFACEIMPL", "VALUE_", - "VALUETYPE_", "NATIVE_", "INSTANCE_", "SPECIALNAME_", "FORWARDER_", - "STATIC_", "PUBLIC_", "PRIVATE_", "FAMILY_", "FINAL_", "SYNCHRONIZED_", - "INTERFACE_", "SEALED_", "NESTED_", "ABSTRACT_", "AUTO_", "SEQUENTIAL_", - "EXPLICIT_", "ANSI_", "UNICODE_", "AUTOCHAR_", "IMPORT_", "ENUM_", - "VIRTUAL_", "NOINLINING_", "AGGRESSIVEINLINING_", "NOOPTIMIZATION_", - "AGGRESSIVEOPTIMIZATION_", "UNMANAGEDEXP_", "BEFOREFIELDINIT_", - "STRICT_", "RETARGETABLE_", "WINDOWSRUNTIME_", "NOPLATFORM_", "METHOD_", - "FIELD_", "PINNED_", "MODREQ_", "MODOPT_", "SERIALIZABLE_", "PROPERTY_", - "TYPE_", "ASSEMBLY_", "FAMANDASSEM_", "FAMORASSEM_", "PRIVATESCOPE_", - "HIDEBYSIG_", "NEWSLOT_", "RTSPECIALNAME_", "PINVOKEIMPL_", "_CTOR", - "_CCTOR", "LITERAL_", "NOTSERIALIZED_", "INITONLY_", "REQSECOBJ_", - "CIL_", "OPTIL_", "MANAGED_", "FORWARDREF_", "PRESERVESIG_", "RUNTIME_", - "INTERNALCALL_", "_IMPORT", "NOMANGLE_", "LASTERR_", "WINAPI_", "AS_", - "BESTFIT_", "ON_", "OFF_", "CHARMAPERROR_", "INSTR_NONE", "INSTR_VAR", - "INSTR_I", "INSTR_I8", "INSTR_R", "INSTR_BRTARGET", "INSTR_METHOD", - "INSTR_FIELD", "INSTR_TYPE", "INSTR_STRING", "INSTR_SIG", "INSTR_TOK", - "INSTR_SWITCH", "_CLASS", "_NAMESPACE", "_METHOD", "_FIELD", "_DATA", - "_THIS", "_BASE", "_NESTER", "_EMITBYTE", "_TRY", "_MAXSTACK", "_LOCALS", - "_ENTRYPOINT", "_ZEROINIT", "_EVENT", "_ADDON", "_REMOVEON", "_FIRE", - "_OTHER", "_PROPERTY", "_SET", "_GET", "_PERMISSION", "_PERMISSIONSET", - "REQUEST_", "DEMAND_", "ASSERT_", "DENY_", "PERMITONLY_", "LINKCHECK_", - "INHERITCHECK_", "REQMIN_", "REQOPT_", "REQREFUSE_", "PREJITGRANT_", - "PREJITDENY_", "NONCASDEMAND_", "NONCASLINKDEMAND_", - "NONCASINHERITANCE_", "_LINE", "P_LINE", "_LANGUAGE", "_CUSTOM", "INIT_", - "_SIZE", "_PACK", "_VTABLE", "_VTFIXUP", "FROMUNMANAGED_", - "CALLMOSTDERIVED_", "_VTENTRY", "RETAINAPPDOMAIN_", "_FILE", - "NOMETADATA_", "_HASH", "_ASSEMBLY", "_PUBLICKEY", "_PUBLICKEYTOKEN", - "ALGORITHM_", "_VER", "_LOCALE", "EXTERN_", "_MRESOURCE", "_MODULE", - "_EXPORT", "LEGACY_", "LIBRARY_", "X86_", "AMD64_", "ARM_", "ARM64_", - "MARSHAL_", "CUSTOM_", "SYSSTRING_", "FIXED_", "VARIANT_", "CURRENCY_", - "SYSCHAR_", "DECIMAL_", "DATE_", "BSTR_", "TBSTR_", "LPSTR_", "LPWSTR_", - "LPTSTR_", "OBJECTREF_", "IUNKNOWN_", "IDISPATCH_", "STRUCT_", - "SAFEARRAY_", "BYVALSTR_", "LPVOID_", "ANY_", "ARRAY_", "LPSTRUCT_", - "IIDPARAM_", "IN_", "OUT_", "OPT_", "_PARAM", "_OVERRIDE", "WITH_", - "NULL_", "HRESULT_", "CARRAY_", "USERDEFINED_", "RECORD_", "FILETIME_", - "BLOB_", "STREAM_", "STORAGE_", "STREAMED_OBJECT_", "STORED_OBJECT_", - "BLOB_OBJECT_", "CF_", "CLSID_", "VECTOR_", "_SUBSYSTEM", "_CORFLAGS", - "ALIGNMENT_", "_IMAGEBASE", "_STACKRESERVE", "_TYPEDEF", "_TEMPLATE", - "_TYPELIST", "_MSCORLIB", "P_DEFINE", "P_UNDEF", "P_IFDEF", "P_IFNDEF", - "P_ELSE", "P_ENDIF", "P_INCLUDE", "CONSTRAINT_", "CONST_", "'{'", "'}'", - "'+'", "','", "'.'", "'('", "')'", "';'", "'='", "'['", "']'", "'<'", - "'>'", "'-'", "':'", "'*'", "'&'", "'/'", "'!'", "$accept", "decls", - "decl", "classNameSeq", "compQstring", "languageDecl", "id", - "dottedName", "int32", "int64", "float64", "typedefDecl", "compControl", - "customDescr", "customDescrWithOwner", "customHead", - "customHeadWithOwner", "customType", "ownerType", "customBlobDescr", - "customBlobArgs", "customBlobNVPairs", "fieldOrProp", "customAttrDecl", - "serializType", "moduleHead", "vtfixupDecl", "vtfixupAttr", "vtableDecl", - "vtableHead", "nameSpaceHead", "_class", "classHeadBegin", "classHead", - "classAttr", "extendsClause", "implClause", "classDecls", "implList", - "typeList", "typeListNotEmpty", "typarsClause", "typarAttrib", - "typarAttribs", "conTyparAttrib", "conTyparAttribs", "typars", - "typarsRest", "tyBound", "genArity", "genArityNotEmpty", "classDecl", - "fieldDecl", "fieldAttr", "atOpt", "initOpt", "repeatOpt", "methodRef", - "callConv", "callKind", "mdtoken", "memberRef", "eventHead", "eventAttr", - "eventDecls", "eventDecl", "propHead", "propAttr", "propDecls", - "propDecl", "methodHeadPart1", "marshalClause", "marshalBlob", - "marshalBlobHead", "methodHead", "methAttr", "pinvAttr", "methodName", - "paramAttr", "implAttr", "localsHead", "methodDecls", "methodDecl", - "scopeBlock", "scopeOpen", "sehBlock", "sehClauses", "tryBlock", - "tryHead", "sehClause", "filterClause", "filterHead", "catchClause", - "finallyClause", "faultClause", "handlerBlock", "dataDecl", "ddHead", - "tls", "ddBody", "ddItemList", "ddItemCount", "ddItem", "fieldSerInit", - "bytearrayhead", "bytes", "hexbytes", "fieldInit", "serInit", - "constTypeArg", "f32seq", "f64seq", "i64seq", "i32seq", "i16seq", - "i8seq", "boolSeq", "sqstringSeq", "classSeq", "objSeq", "methodSpec", - "instr_none", "instr_var", "instr_i", "instr_i8", "instr_r", - "instr_brtarget", "instr_method", "instr_field", "instr_type", - "instr_string", "instr_sig", "instr_tok", "instr_switch", "instr_r_head", - "instr", "labels", "tyArgs0", "tyArgs1", "tyArgs2", "sigArgs0", - "sigArgs1", "sigArg", "className", "slashedName", "typeSpec", - "nativeType", "iidParamIndex", "variantType", "type", "simpleType", - "bounds1", "bound", "secDecl", "secAttrSetBlob", "secAttrBlob", - "psetHead", "nameValPairs", "nameValPair", "truefalse", "caValue", - "secAction", "esHead", "extSourceSpec", "fileDecl", "fileAttr", - "fileEntry", "hashHead", "assemblyHead", "asmAttr", "assemblyDecls", - "assemblyDecl", "intOrWildcard", "asmOrRefDecl", "publicKeyHead", - "publicKeyTokenHead", "localeHead", "assemblyRefHead", - "assemblyRefDecls", "assemblyRefDecl", "exptypeHead", "exportHead", - "exptAttr", "exptypeDecls", "exptypeDecl", "manifestResHead", - "manresAttr", "manifestResDecls", "manifestResDecl", YY_NULLPTR -}; +/* For use in generated program */ +#define yydepth (int)(yystack.s_mark - yystack.s_base) +#if YYBTYACC +#define yytrial (yyps->save) +#endif /* YYBTYACC */ -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} +#if YYDEBUG +#include /* needed for printf */ #endif -#define YYPACT_NINF (-1398) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-581) - -#define yytable_value_is_error(Yyn) \ - 0 +#include /* needed for malloc, etc */ +#include /* needed for memset */ -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = +/* allocate initial stack or double stack size, up to YYMAXDEPTH */ +static int yygrowstack(YYSTACKDATA *data) { - -1398, 2337, -1398, -1398, -166, 656, -1398, -196, 98, 2579, - 2579, -1398, -1398, 127, 819, -164, -124, -66, 37, -1398, - 308, 245, 245, 319, 319, 1896, 32, -1398, 656, 656, - 656, 656, -1398, -1398, 349, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, 392, 392, -1398, -1398, -1398, -1398, 392, 74, - -1398, 322, 128, -1398, -1398, -1398, -1398, 682, -1398, 392, - 245, -1398, -1398, 131, 146, 149, 174, -1398, -1398, -1398, - -1398, -1398, 140, 245, -1398, -1398, -1398, 346, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, 2222, 40, 201, -1398, -1398, 147, 180, - -1398, -1398, 694, 524, 524, 2128, 198, -1398, 3124, -1398, - -1398, 251, 245, 245, 152, -1398, 921, 555, 656, 140, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3124, - -1398, -1398, -1398, 1041, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, 142, -1398, 474, 142, - 284, -1398, 1810, -1398, -1398, -1398, 2811, 54, 36, 140, - 411, 422, -1398, 431, 1304, 438, 277, 527, -1398, 142, - 81, 140, 140, 140, -1398, -1398, 291, 586, 311, 334, - -1398, 3572, 2222, 621, -1398, 3627, 2534, 313, 181, 283, - 306, 330, 344, 355, 373, 743, 379, -1398, -1398, 392, - 424, 68, -1398, -1398, -1398, -1398, 521, 656, 456, 2914, - 420, 132, -1398, 524, -1398, 78, 640, -1398, 445, 214, - 469, 760, 245, 245, -1398, -1398, -1398, -1398, -1398, -1398, - 468, -1398, -1398, 75, 1376, -1398, 480, -1398, -1398, -27, - 921, -1398, -1398, -1398, -1398, 567, -1398, -1398, -1398, -1398, - 140, -1398, -1398, 62, 140, 640, -1398, -1398, -1398, -1398, - -1398, 142, -1398, 780, -1398, -1398, -1398, -1398, 1698, 526, - 534, 1106, 540, 543, 559, 595, 607, 615, 627, 634, - 645, 647, -1398, 656, 516, 120, 578, 583, 140, -1398, - 656, 656, 656, -1398, 3124, 656, 656, -1398, 652, 654, - 656, 47, 3124, -1398, -1398, 597, 142, 469, -1398, -1398, - -1398, -1398, 3117, 659, -1398, -1398, -1398, -1398, -1398, -1398, - 823, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -55, -1398, 2222, -1398, 3301, 668, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, 674, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, 245, -1398, 245, -1398, -1398, -1398, 245, - 658, -11, 2291, -1398, -1398, -1398, 667, -1398, -1398, 5, - -1398, -1398, -1398, -1398, 790, 173, -1398, -1398, 604, 245, - 319, 248, 604, 1304, 1088, 2222, 404, 524, 2128, 681, - 392, -1398, -1398, -1398, 691, 245, 245, -1398, 245, -1398, - 245, -1398, 319, -1398, 224, -1398, 224, -1398, -1398, 699, - 704, 346, 706, -1398, -1398, -1398, 245, 245, 1244, 1263, - 1479, 598, -1398, -1398, -1398, 980, 140, 140, -1398, 709, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, 714, 88, -1398, 656, 125, 3124, 1009, - 729, -1398, 2364, -1398, 1013, 732, 733, 741, 1304, -1398, - -1398, 469, -1398, -1398, 95, 42, 737, 1020, -1398, -1398, - 832, 105, -1398, 656, -1398, -1398, 42, 1022, 446, 245, - 749, 750, 751, 753, 245, 245, 245, 319, 370, 882, - 245, 245, 245, 319, 193, 656, 656, 656, 140, -1398, - 140, 140, 140, 1593, 140, 140, 2222, 2222, 140, -1398, - -1398, 1034, 6, -1398, 759, 769, 640, -1398, -1398, -1398, - 245, -1398, -1398, -1398, -1398, -1398, -1398, 271, -1398, 770, - -1398, 961, -1398, -1398, -1398, 245, 245, -1398, -4, 2433, - -1398, -1398, -1398, -1398, 783, -1398, -1398, 787, 791, -1398, - -1398, -1398, -1398, 792, 245, 1009, 3018, -1398, -1398, 779, - 245, 124, 136, 245, 524, 1077, -1398, 803, 71, 2632, - -1398, 2222, -1398, -1398, -1398, 790, 58, 173, 58, 58, - 58, 1039, 1040, -1398, -1398, -1398, -1398, -1398, -1398, 812, - 813, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - 1698, -1398, 824, 469, 392, 3124, -1398, 604, 826, 1009, - 827, 828, 833, 841, 842, 843, 852, -1398, 743, 853, - -1398, 848, 49, 940, 857, 30, 41, -1398, -1398, -1398, - -1398, -1398, -1398, 392, 392, -1398, 858, 866, -1398, 392, - -1398, 392, -1398, 870, 89, 656, 950, -1398, -1398, -1398, - -1398, 656, 954, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, 245, 3204, 0, 231, 656, 972, -9, - 875, 879, -1398, 531, 886, 889, 901, -1398, 1187, -1398, - -1398, 900, 909, 1218, 3073, 906, 907, 535, 593, 392, - 656, 140, 656, -1398, -1398, 915, 918, 245, 245, 245, - 319, 922, 929, 930, 939, 941, 942, 943, 944, 962, - 963, 968, 969, 656, 277, 277, 277, 971, 976, 978, - 245, 205, -1398, -1398, 3124, 979, 981, -1398, -1398, -1398, - -1398, 1177, -1398, -1398, 606, 63, 934, 2222, 2222, 2059, - 878, -1398, -1398, 521, 161, 203, 524, 1260, -1398, -1398, - -1398, 2715, -1398, 985, -17, 2667, 221, 928, 245, 983, - 245, 140, 245, 343, 984, 3124, 535, 71, -1398, 3018, - 989, 993, -1398, -1398, -1398, -1398, 604, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, 346, 245, 245, 319, 42, - 1267, 1009, 995, 563, 996, 999, 997, -1398, 412, 998, - -1398, 998, 998, 998, 998, 998, -1398, -1398, 245, -1398, - 245, 245, 1003, -1398, -1398, 990, 1011, 469, 1012, 1014, - 1016, 1017, 1018, 1019, 245, 656, -1398, 140, 656, 24, - 656, 1021, -1398, -1398, -1398, -1398, 774, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1025, - 1070, 1086, -1398, 1076, 1029, -57, 1302, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1025, 1025, -1398, - 1785, -1398, -1398, -1398, 1030, 392, 250, 346, 1032, 656, - 491, -1398, 1009, 1042, 1033, 1044, -1398, 2364, -1398, 79, - -1398, 418, 432, 1133, 479, 499, 525, 532, 545, 564, - 576, 577, 608, 617, 618, 626, 639, -1398, 1371, -1398, - 392, -1398, 245, 1045, 71, 71, 140, 737, -1398, -1398, - 346, -1398, -1398, -1398, 1036, 140, 140, -1398, -1398, 1046, - 1048, 1053, 1057, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, 277, 71, -1398, -1398, -1398, - -1398, 640, -1398, 245, 1059, 1177, 3124, -1398, 2222, 351, - 656, -1398, -1398, 1158, -1398, -1398, 662, 656, -1398, -1398, - 3124, 140, 245, 140, 245, 396, 3124, 535, 3347, 528, - 804, -1398, 1986, -1398, 1009, 3165, 1061, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1054, 1056, -1398, - 1063, 1064, 1065, 1066, 1062, 535, -1398, 1230, 1068, 1069, - 2222, 1032, 1698, -1398, 1074, 928, -1398, 1350, 1310, 1312, - -1398, -1398, 1082, 1083, 656, 663, -1398, 71, 604, 604, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 50, 1372, - -1398, -1398, 30, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - 1084, 277, 140, 245, 140, -1398, -1398, -1398, -1398, -1398, - -1398, 1134, -1398, -1398, -1398, -1398, 1009, 1089, 1090, -1398, - -1398, -1398, -1398, -1398, -1398, 1024, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, 486, -1398, 97, 34, -1398, -1398, 2178, - -1398, 1092, 469, -1398, 1097, -1398, -1398, -1398, -1398, 1104, - -1398, -1398, -1398, -1398, 469, 446, 245, 245, 245, 665, - 671, 679, 686, 245, 245, 245, 245, 245, 245, 319, - 245, 370, 245, 882, 245, 245, 245, 245, 245, 245, - 245, 319, 245, 3315, 245, 223, 245, 171, 245, -1398, - -1398, -1398, 2533, 1099, 1107, -1398, 1114, 1115, 1121, 1122, - -1398, 1256, -1398, -1398, -1398, -1398, 1128, 1130, 245, -1398, - 88, 1131, 1136, -1398, 271, -1398, 351, 1304, -1398, 140, - 88, 1135, 1137, 2222, 1698, 1175, -1398, 1304, 1304, 1304, - 1304, -1398, -1398, -1398, -1398, -1398, -1398, 1304, 1304, 1304, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, 469, -1398, 245, - 556, 713, -1398, -1398, -1398, -1398, 3204, 1132, 346, -1398, - 1141, -1398, -1398, 1416, -1398, 346, -1398, 346, 245, -1398, - -1398, 140, -1398, 1142, -1398, -1398, -1398, 245, -1398, 1138, - -1398, -1398, 1145, 440, 245, 245, -1398, -1398, -1398, -1398, - -1398, -1398, 1009, 1139, -1398, -1398, 245, -1398, -119, 1149, - 1154, 1179, 1155, 1156, 1157, 1159, 1161, 1162, 1166, 1167, - 1169, 1170, -1398, 469, -1398, -1398, 245, 755, -1398, 1496, - 1176, 1144, 1171, 1174, 1186, 245, 245, 245, 245, 245, - 245, 319, 245, 1183, 1188, 1191, 1189, 1194, 1192, 1195, - 1193, 1198, 1199, 1206, 1211, 1213, 1210, 1215, 1212, 1217, - 1214, 1220, 1222, 1221, 1223, 1236, 1233, 1238, 1243, 1240, - 1246, 1457, 1247, 1251, -1398, 255, -1398, 212, -1398, -1398, - 1250, -1398, -1398, 71, 71, -1398, -1398, -1398, 1257, 351, - -1398, 2222, -1398, -1398, 602, -1398, 1180, -1398, 1535, 524, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3328, 1261, -1398, - -1398, -1398, -1398, 1262, 1264, -1398, 2222, 535, -1398, -1398, - -1398, -1398, 1547, 30, 245, 1009, 1265, 1266, 469, -1398, - 1268, 245, -1398, 1269, 1272, 1274, 1276, 1277, 1259, 1270, - 1281, 1282, 1586, -1398, -1398, -1398, 1285, -1398, 1291, 1292, - 1287, 1293, 1290, 1295, 1294, 1296, 1297, -1398, 1298, -1398, - 1300, -1398, 1301, -1398, 1303, -1398, -1398, 1313, -1398, -1398, - 1314, -1398, 1316, -1398, 1318, -1398, 1329, -1398, 1332, -1398, - 1333, -1398, -1398, 1338, -1398, 1342, -1398, 1344, 1563, -1398, - 1341, 689, -1398, 1346, 1347, -1398, -1398, -1398, 71, 2222, - 535, 3124, -1398, -1398, -1398, 71, -1398, 1345, -1398, 1355, - 1352, 328, -1398, 3535, -1398, 1349, -1398, 245, 245, 245, - -1398, -1398, -1398, -1398, -1398, 1356, -1398, 1365, -1398, 1374, - -1398, 1375, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 3315, -1398, - -1398, 1354, -1398, 1345, 1698, 1377, 1368, 1379, -1398, 30, - -1398, 1009, -1398, 250, -1398, 1382, 1383, 1384, 185, 83, - -1398, -1398, -1398, -1398, 108, 134, 137, 111, 195, 233, - 144, 162, 182, 115, 1952, 72, 574, -1398, 1032, 1388, - 1651, -1398, 71, -1398, 612, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, 187, 188, 190, 154, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, 1663, - -1398, -1398, -1398, 71, 535, 1173, 1389, 1009, -1398, -1398, - -1398, -1398, -1398, 1391, 1393, 1395, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, 697, 1436, 71, 245, -1398, 1589, 1398, 1399, - 524, -1398, -1398, 3124, 1698, 1678, 535, 1345, 1407, 71, - 1410, -1398 -}; - -/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_int16 yydefact[] = -{ - 2, 0, 1, 86, 106, 0, 269, 213, 394, 0, - 0, 783, 784, 0, 226, 0, 0, 798, 804, 861, - 93, 0, 0, 0, 0, 0, 0, 29, 0, 0, - 0, 0, 58, 59, 0, 61, 3, 25, 26, 27, - 84, 85, 438, 438, 19, 17, 10, 9, 438, 0, - 109, 136, 0, 7, 276, 340, 8, 0, 18, 438, - 0, 11, 12, 0, 0, 0, 0, 840, 37, 40, - 38, 39, 105, 0, 193, 395, 396, 393, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 0, 0, 34, 220, 221, 0, 0, - 227, 228, 233, 226, 226, 0, 62, 72, 0, 224, - 219, 0, 0, 0, 0, 804, 0, 0, 0, 94, - 42, 20, 21, 44, 43, 23, 24, 576, 734, 0, - 711, 719, 717, 0, 720, 721, 722, 723, 724, 725, - 730, 731, 732, 733, 693, 718, 0, 710, 0, 0, - 0, 514, 0, 577, 578, 579, 0, 0, 0, 580, - 0, 0, 240, 0, 226, 0, 574, 0, 715, 30, - 53, 55, 56, 57, 60, 440, 0, 439, 0, 0, - 2, 0, 0, 138, 140, 226, 0, 0, 401, 401, - 401, 401, 401, 401, 0, 0, 0, 391, 398, 438, - 0, 786, 814, 832, 850, 864, 0, 0, 0, 0, - 0, 0, 575, 226, 582, 744, 585, 32, 0, 0, - 746, 0, 0, 0, 229, 230, 231, 232, 222, 223, - 0, 74, 73, 0, 0, 104, 0, 22, 799, 800, - 0, 805, 806, 807, 809, 0, 810, 811, 812, 813, - 803, 862, 863, 859, 95, 716, 726, 727, 728, 729, - 692, 0, 695, 0, 712, 714, 238, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 696, 0, 0, 0, 0, 0, 709, 707, - 0, 0, 0, 235, 0, 0, 0, 701, 0, 0, - 0, 737, 559, 700, 699, 0, 30, 54, 65, 441, - 69, 103, 0, 0, 112, 133, 110, 111, 114, 115, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 113, - 132, 125, 124, 134, 148, 137, 0, 108, 0, 0, - 282, 277, 278, 279, 280, 281, 285, 283, 293, 284, - 286, 287, 288, 289, 290, 291, 292, 0, 294, 318, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 0, 376, 0, 339, 347, 348, 0, - 0, 0, 0, 369, 6, 354, 0, 356, 355, 0, - 341, 362, 340, 343, 0, 0, 349, 529, 0, 0, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, - 438, 350, 352, 353, 0, 0, 0, 417, 0, 416, - 0, 415, 0, 414, 0, 412, 0, 413, 437, 0, - 400, 0, 0, 745, 795, 785, 0, 0, 0, 0, - 0, 0, 843, 842, 841, 0, 838, 41, 214, 0, - 200, 194, 195, 196, 197, 202, 203, 204, 205, 199, - 206, 207, 198, 0, 0, 392, 0, 0, 0, 0, - 0, 754, 748, 753, 0, 35, 0, 0, 226, 76, - 70, 63, 315, 316, 737, 317, 557, 0, 97, 801, - 797, 830, 808, 0, 694, 713, 237, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 708, 706, - 51, 52, 50, 0, 49, 581, 0, 0, 48, 738, - 697, 739, 0, 735, 0, 560, 561, 28, 31, 5, - 0, 126, 127, 128, 129, 130, 131, 157, 107, 139, - 143, 0, 106, 243, 257, 0, 0, 840, 0, 0, - 4, 185, 186, 179, 0, 141, 175, 0, 0, 340, - 176, 177, 178, 0, 0, 299, 0, 342, 344, 0, - 0, 0, 0, 0, 226, 0, 351, 0, 318, 0, - 386, 0, 384, 387, 370, 372, 0, 0, 0, 0, - 0, 0, 0, 373, 531, 530, 532, 533, 45, 0, - 0, 528, 535, 534, 538, 537, 539, 543, 544, 542, - 0, 545, 0, 546, 438, 0, 550, 552, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, - 405, 0, 788, 0, 0, 0, 0, 13, 826, 825, - 817, 815, 818, 438, 438, 837, 0, 0, 14, 438, - 835, 438, 833, 0, 0, 0, 0, 15, 858, 857, - 851, 0, 0, 16, 869, 868, 865, 844, 845, 846, - 847, 848, 849, 0, 586, 209, 0, 583, 0, 0, - 0, 755, 76, 0, 0, 0, 749, 33, 0, 225, - 234, 66, 0, 79, 559, 0, 0, 0, 0, 438, - 0, 860, 0, 758, 759, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 572, 570, 571, 700, 0, 0, - 741, 737, 698, 705, 0, 0, 0, 152, 154, 153, - 155, 160, 150, 151, 157, 0, 0, 0, 0, 0, - 226, 180, 181, 0, 0, 0, 226, 0, 140, 246, - 260, 0, 850, 0, 299, 0, 0, 270, 0, 0, - 0, 364, 0, 0, 0, 0, 0, 318, 567, 0, - 0, 564, 565, 368, 385, 371, 0, 388, 378, 382, - 383, 381, 377, 379, 380, 0, 0, 0, 0, 541, - 0, 0, 0, 0, 555, 556, 0, 536, 0, 401, - 402, 401, 401, 401, 401, 401, 399, 404, 0, 787, - 0, 0, 0, 820, 819, 0, 0, 823, 0, 0, - 0, 0, 0, 0, 0, 0, 856, 852, 0, 0, - 0, 0, 602, 640, 594, 595, 0, 629, 596, 597, - 598, 599, 600, 601, 631, 607, 608, 609, 610, 641, - 0, 0, 637, 0, 0, 0, 591, 592, 593, 616, - 617, 618, 635, 619, 620, 621, 622, 641, 641, 625, - 643, 633, 639, 274, 0, 0, 272, 0, 211, 584, - 0, 742, 0, 0, 38, 0, 747, 748, 36, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 78, 75, 445, - 438, 77, 0, 0, 318, 318, 317, 557, 98, 99, - 0, 100, 101, 102, 0, 831, 236, 488, 487, 0, - 0, 0, 0, 478, 477, 476, 475, 473, 471, 474, - 472, 486, 485, 484, 483, 573, 318, 702, 703, 740, - 736, 562, 135, 0, 0, 160, 0, 158, 144, 165, - 0, 149, 142, 0, 245, 244, 580, 0, 259, 258, - 0, 839, 0, 188, 0, 0, 0, 0, 0, 0, - 0, 171, 0, 295, 0, 0, 0, 306, 307, 308, - 309, 301, 302, 303, 300, 304, 305, 0, 0, 298, - 0, 0, 0, 0, 0, 0, 359, 357, 0, 0, - 0, 211, 0, 360, 0, 270, 345, 318, 0, 0, - 374, 375, 0, 0, 0, 0, 548, 318, 552, 552, - 551, 403, 411, 410, 409, 408, 406, 407, 792, 790, - 816, 827, 0, 829, 821, 824, 802, 828, 834, 836, - 0, 853, 854, 0, 867, 208, 630, 603, 604, 605, - 606, 0, 626, 632, 634, 638, 0, 0, 0, 636, - 623, 624, 678, 647, 648, 0, 675, 649, 650, 651, - 652, 653, 654, 677, 659, 660, 661, 662, 645, 646, - 667, 668, 669, 670, 671, 672, 673, 674, 644, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 663, 627, 201, 0, 0, 611, 210, 0, - 192, 0, 763, 761, 0, 760, 757, 756, 743, 0, - 79, 750, 76, 71, 67, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 83, 81, 0, 0, 0, 558, 0, 0, 0, 0, - 96, 800, 482, 481, 480, 479, 0, 0, 0, 161, - 0, 0, 145, 146, 157, 164, 165, 226, 191, 241, - 0, 0, 0, 0, 0, 0, 172, 226, 226, 226, - 226, 173, 254, 255, 253, 247, 252, 226, 226, 226, - 174, 267, 268, 265, 261, 266, 182, 299, 297, 0, - 0, 0, 319, 320, 321, 322, 586, 148, 0, 363, - 0, 366, 367, 0, 346, 568, 566, 0, 0, 46, - 47, 540, 547, 0, 553, 554, 791, 0, 789, 0, - 855, 866, 0, 0, 0, 0, 676, 655, 656, 657, - 658, 665, 0, 0, 666, 273, 0, 612, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 444, 443, 442, 212, 0, 0, 79, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 0, 88, 0, 87, 436, - 0, 218, 217, 318, 318, 796, 704, 156, 0, 165, - 167, 0, 166, 163, 0, 187, 0, 190, 0, 226, - 248, 249, 250, 251, 264, 262, 263, 0, 0, 310, - 311, 312, 313, 0, 0, 358, 0, 0, 569, 389, - 390, 549, 794, 0, 0, 0, 0, 0, 628, 664, - 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 751, 68, 435, 0, 434, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 425, 0, 424, - 0, 423, 0, 422, 0, 420, 418, 0, 421, 419, - 0, 433, 0, 432, 0, 431, 0, 430, 0, 451, - 0, 447, 446, 0, 450, 0, 449, 0, 0, 91, - 0, 0, 170, 0, 0, 159, 162, 147, 318, 0, - 0, 0, 296, 314, 271, 318, 365, 168, 793, 0, - 0, 0, 589, 586, 615, 0, 762, 0, 0, 0, - 767, 752, 503, 499, 429, 0, 428, 0, 427, 0, - 426, 0, 501, 499, 497, 495, 489, 492, 501, 499, - 497, 495, 512, 505, 448, 508, 90, 92, 0, 216, - 215, 0, 189, 168, 0, 0, 0, 0, 169, 0, - 642, 0, 588, 590, 614, 0, 0, 0, 0, 0, - 501, 499, 497, 495, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 211, 0, - 0, 323, 318, 822, 0, 764, 765, 766, 467, 504, - 466, 500, 0, 0, 0, 0, 457, 502, 456, 455, - 498, 454, 496, 452, 491, 490, 453, 494, 493, 461, - 460, 459, 458, 470, 513, 507, 506, 468, 509, 0, - 469, 511, 256, 318, 0, 0, 0, 0, 465, 464, - 463, 462, 510, 0, 0, 0, 328, 324, 333, 334, - 335, 336, 337, 325, 326, 327, 329, 330, 331, 332, - 275, 361, 0, 0, 318, 0, 587, 0, 0, 0, - 226, 183, 338, 0, 0, 0, 0, 168, 0, 318, - 0, 184 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -1398, 1523, -1398, 1402, -43, 8, 51, -5, 11, 43, - -418, -1398, 16, -15, 1684, -1398, -1398, 1232, 1308, -662, - -1398, -1042, -1398, 28, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -326, -1398, -1398, -1398, 949, -1398, -1398, - -1398, 454, -1398, 964, -1398, 754, 510, -1141, -1398, -1397, - -448, -1398, -325, -1398, -1398, -1009, -1398, -163, -99, -1398, - -7, 1707, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, 698, 482, -1398, -318, -1398, -739, -704, 1380, -1398, - -1398, -232, -1398, -165, -1398, -1398, 1148, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -64, 15, -1398, -1398, -1398, - 1108, -137, 1687, 609, -29, -12, 850, -1398, -1146, -1398, - -1398, -1398, -1338, -1308, -1312, -1287, -1398, -1398, -1398, -1398, - 14, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, -1398, -1398, -1398, -1398, -117, 810, 1047, -1398, - -746, -1398, 712, -14, -437, -20, 253, 107, -1398, -23, - 565, -1398, 1031, 13, 851, -1398, -1398, 869, -1398, -881, - -1398, 1749, -1398, 33, -1398, -1398, 572, 1284, -1398, 1660, - -1398, -1398, -1035, 1351, -1398, -1398, -1398, -1398, -1398, -1398, - -1398, -1398, 1227, 1023, -1398, -1398, -1398, -1398, -1398 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - 0, 1, 36, 305, 689, 385, 71, 159, 834, 1602, - 613, 38, 387, 40, 41, 42, 43, 106, 230, 702, - 703, 928, 1192, 388, 1367, 45, 46, 708, 47, 48, - 49, 50, 51, 52, 181, 183, 337, 338, 549, 1211, - 1212, 548, 754, 755, 975, 976, 756, 1215, 980, 1547, - 1548, 565, 53, 209, 898, 1140, 74, 107, 108, 109, - 212, 231, 567, 759, 999, 1235, 568, 760, 1000, 1244, - 54, 1025, 894, 895, 55, 185, 775, 486, 789, 1625, - 389, 186, 390, 797, 392, 393, 594, 394, 395, 595, - 596, 597, 598, 599, 600, 798, 396, 57, 77, 197, - 429, 417, 430, 929, 930, 176, 177, 1315, 931, 282, - 1568, 1569, 1567, 1566, 1559, 1564, 1558, 1575, 1576, 1574, - 213, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 816, 706, 534, 535, - 790, 791, 792, 214, 166, 232, 896, 1082, 1133, 216, - 168, 532, 533, 412, 695, 696, 59, 690, 691, 715, - 1146, 93, 60, 413, 62, 114, 490, 659, 63, 116, - 438, 651, 835, 652, 653, 661, 654, 64, 439, 662, - 65, 573, 206, 440, 670, 66, 117, 441, 676 -}; - -/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = -{ - 72, 293, 167, 937, 228, 229, 635, 110, 636, 37, - 160, 165, 564, 566, 58, 119, 56, 39, 162, 1145, - 569, 391, 1262, 170, 171, 172, 173, 1279, 199, 44, - 903, 178, 121, 122, 61, 1005, 179, 1355, 705, 164, - 120, 1034, 68, 69, 120, 70, 120, 200, 217, 217, - 67, 220, 419, 421, 423, 425, 427, 120, 829, 1276, - 68, 69, -580, 70, 897, 294, 125, 126, 529, 68, - 69, 201, 70, 215, 218, 1383, 434, 435, 734, 735, - 736, 1615, 1033, 217, 208, 234, 359, 217, 1073, 217, - 726, 728, 788, 120, 68, 69, 99, 70, 162, 120, - 581, 68, 69, 73, 70, 120, 255, 764, 1319, 239, - 309, 250, 253, 254, 468, 796, 529, 1616, 120, 164, - 1004, 123, 124, 236, 237, 123, 124, 307, 210, 268, - 68, 69, 260, 70, 111, 262, 95, 99, 68, 69, - 489, 70, 68, 69, 120, 70, 1579, 120, 68, 69, - 286, 70, 285, 288, 120, 306, 127, 110, 68, 69, - 589, 70, 335, 75, 123, 124, 199, 68, 69, 289, - 70, 1087, 120, 1421, 99, 112, 334, 68, 69, 68, - 70, 1422, 70, 120, 99, 127, 464, 432, 1196, 1197, - 481, 1088, 120, 1573, 297, 298, 299, 120, 120, 493, - 120, 446, 447, 587, 286, 120, 467, 608, 113, 68, - 69, 1565, 70, 99, 487, 120, 1360, 1571, 68, 69, - 1206, 70, 1572, 1361, 76, 1595, 529, 609, 610, 485, - 603, 120, 1357, 476, 477, 491, 608, 386, 1486, 207, - 616, 1570, 710, 123, 124, 608, 547, 494, 497, 1593, - 735, 713, 714, 115, 1594, 120, 609, 610, 123, 124, - 608, 68, 69, 496, 70, 609, 610, 207, 1358, 127, - 1668, 523, 283, 1592, 1321, 474, 1432, 582, 514, 536, - 609, 610, 518, 474, 765, 520, 521, 522, 583, 900, - 524, 525, 306, 1225, 207, 528, 965, 99, 519, 741, - 588, 1273, 153, 154, 155, 845, 742, 1478, 625, 263, - 264, 746, 531, 466, 68, 69, 550, 70, 207, 265, - 37, 1257, 169, 747, 748, 58, 1296, 56, 39, 123, - 124, 153, 154, 155, 1297, 833, 207, 771, 219, 836, - 44, 749, 830, 1277, 287, 61, 561, 530, 383, -580, - 466, 571, 68, 570, 562, 70, 207, 174, 978, 284, - 238, 436, 585, 623, 180, 479, 563, -563, 1617, 1152, - 480, 572, 437, 469, 1153, 207, 470, 624, 1499, 1590, - 120, 620, 608, 182, 577, 621, 578, 301, 1295, 302, - 579, 750, 1577, 303, 304, 530, 110, 619, 628, 207, - 284, 162, 609, 610, 1596, 175, 602, 1601, 1071, 605, - 606, 1612, 217, 615, 207, 153, 154, 155, 184, 207, - 516, 202, 164, 780, 391, 687, 630, 631, 1614, 632, - 1598, 633, 801, 1599, 207, 782, 203, 284, 194, 204, - 1609, 157, 222, 607, 612, 688, 601, 641, 642, 604, - 1631, 650, 694, 614, 648, 648, 668, 674, 1610, 685, - 992, 686, 965, 383, 205, 634, 649, 649, 669, 675, - 157, 110, 1020, 1021, 1022, 223, 415, 286, 1611, 467, - 416, 1588, 639, 1628, 1629, 785, 1630, 207, 711, 1198, - 1320, 1603, 622, 733, 221, 531, 233, 68, 69, 217, - 70, 120, 994, 487, 472, 127, 738, 739, 1397, 473, - 716, 1480, 713, 714, 1583, 721, 722, 723, 485, 725, - 1141, 729, 730, 731, 118, 207, 261, 68, 69, 1606, - 70, 899, 774, 99, 802, 803, 804, 68, 69, 767, - 904, 68, 69, 611, 70, 127, 235, 3, 290, 1136, - 724, 745, 727, 777, 157, 1137, 732, 713, 714, 291, - 751, 68, 69, 752, 70, 98, 761, 762, 292, 1622, - 100, 794, 101, 99, 753, 295, 781, 783, 418, 102, - 68, 69, 416, 70, 296, 773, 818, 308, 127, 68, - 69, 779, 70, 120, 784, 442, 103, 443, 444, 309, - 810, 420, 813, 837, 445, 416, 391, 310, 800, 199, - 68, 104, 812, 70, 120, 809, 99, 3, 414, 1618, - 474, 1551, 938, 939, 1552, 422, 1619, 1483, 1484, 416, - 311, 251, 252, 297, 298, 299, 1030, 207, 815, 424, - 386, 838, 839, 416, 1214, 207, 746, 842, 799, 843, - 426, 153, 154, 155, 416, 482, 483, 940, 747, 748, - 847, 990, 68, 69, 300, 70, 849, 996, 428, 297, - 298, 299, 564, 566, 431, 846, 749, 1589, 814, 260, - 569, 536, 1052, 336, 1053, 1054, 1055, 1056, 1057, 1223, - 207, 153, 154, 155, 851, 1399, 1400, 944, 1227, 1228, - 1229, 1230, 936, 1497, 474, 945, 187, 946, 1051, 188, - 189, 190, 191, 1155, 192, 193, 194, 1156, 465, 927, - 433, 971, 11, 12, 13, 14, 750, 1157, 949, 950, - 951, 1158, 474, 1415, 153, 154, 155, 982, 983, 987, - 471, 224, 1541, 225, 226, 227, 297, 298, 299, 1545, - 979, 969, 531, 1342, 986, 1345, 448, 1291, 991, 993, - 995, 474, 1032, 952, 478, 120, 1035, 187, 1045, 475, - 188, 189, 190, 191, 1163, 192, 193, 194, 1164, 1292, - 488, 936, 1428, 1429, 1430, 1293, 1543, 1023, 492, 1026, - 157, 1028, 1294, 1029, 1165, 14, 941, 942, 1166, 943, - 1076, 1077, 1078, 1079, 1080, 671, 495, 1039, 672, 28, - 29, 30, 31, 32, 33, 34, 515, 1041, 1042, 1231, - 1167, 498, 386, 3, 1168, 35, 301, 1169, 302, 499, - 157, 1170, 303, 304, 96, 504, 1626, 97, 505, 1058, - 1171, 1059, 1060, 1072, 1172, 1074, 590, 1038, 591, 592, - 593, 1043, 1401, 1402, 506, 1070, 1040, 1142, 1047, 1173, - 98, 99, 301, 1174, 302, 100, 1154, 101, 303, 304, - 1620, 1175, 1177, 157, 102, 1176, 1178, 1633, 517, 28, - 29, 30, 31, 32, 33, 34, 1144, 694, 537, 673, - 507, 103, 123, 124, 608, 35, 207, 1488, 752, 541, - 542, 543, 508, 1179, 474, 1627, 104, 1180, 1658, 753, - 509, 1143, 1181, 1183, 609, 610, 1182, 1184, 1193, 98, - 1634, 1185, 510, 1670, 100, 1186, 101, 68, 69, 511, - 70, 1274, 1275, 102, 1187, 544, 545, 546, 1188, 301, - 512, 302, 513, 1194, 1191, 303, 304, 526, 1138, 527, - 103, 988, -242, 1210, 540, 474, 207, 580, 1213, 1272, - 1325, 1247, 1667, 574, 1326, 104, 1327, 1220, 1218, 575, - 1328, 586, 195, 1224, 1329, 1216, 627, 1237, 1330, 1238, - 1239, 1331, 1219, 207, 1207, 1332, 629, 1538, 196, 474, - 637, 1200, 936, 1656, 1090, 1091, 989, 638, 11, 12, - 13, 14, 640, 1221, 683, 1222, 561, 1232, 1241, 684, - 1261, 571, 1263, 570, 562, 1233, 1242, 217, 668, 692, - 936, 697, 241, 242, 243, 698, 563, 1234, 1243, 699, - 669, 572, 1236, 1245, 297, 298, 299, 700, 704, 1271, - 707, 656, 712, 1283, 717, 718, 719, 244, 720, 196, - 1286, 1287, 1288, 1289, 1290, 740, 677, 678, 679, 815, - 815, 743, 744, 757, 1390, 1391, 1392, 1393, 256, 257, - 258, 259, 758, 768, 1394, 1395, 1396, 769, 297, 298, - 299, 770, 772, 778, 1281, 28, 29, 30, 31, 32, - 33, 34, 680, 681, 682, 1240, 1313, 786, 787, 814, - 814, 35, 805, 806, 617, 128, 618, 807, 808, 129, - 130, 131, 132, 133, 105, 134, 135, 136, 137, 811, - 138, 139, 817, 819, 140, 141, 142, 143, 820, 821, - 99, 144, 145, 500, 501, 502, 503, 822, 823, 824, - 146, 245, 147, 246, 247, 248, 249, 1298, 825, 827, - 1605, 1608, 828, 831, 1024, 832, 840, 148, 149, 150, - 1159, 1160, 1161, 1162, 841, 844, 848, 1322, 1323, 1324, - 850, 901, 902, 1362, 1333, 1334, 1335, 1336, 1337, 1338, - 906, 1340, 1341, 1343, 905, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 151, 1354, 907, 1356, 908, 1359, 909, 1363, - 910, 934, 935, 1387, 1388, 1379, 1423, 1424, 1425, 1426, - 110, 947, 1339, 1635, 948, 1384, 1344, 974, 953, 1378, - 110, 110, 110, 110, 1353, 954, 955, 301, 1636, 302, - 110, 110, 110, 303, 304, 956, 981, 957, 958, 959, - 960, 911, 912, 913, 1637, 914, 915, 916, 917, 1418, - 918, 919, 194, 1638, 920, 921, 922, 923, 961, 962, - 1398, 924, 925, 3, 963, 964, 966, 1639, 1640, 1641, - 1642, 301, 967, 302, 968, 972, 973, 737, 304, 1410, - 997, 1003, 3, 1027, 1031, 1036, 1037, 1044, 1412, 1048, - 1491, 1046, 1049, 1050, 1062, 1416, 1417, 416, 1061, 1643, - 1644, 1645, 1646, 1647, 1648, 1649, 1063, 1420, 1064, 1405, - 1065, 1066, 1067, 1083, 1068, 1069, 1408, 1075, 1409, 96, - 1081, 1084, 97, 1085, 1086, 1089, 1134, 1427, 1431, 926, - 1139, 1149, 1201, 1148, 1150, 1191, 1439, 1440, 1441, 1442, - 1443, 1444, 1202, 1446, 1203, 98, 99, 1195, 655, 1204, - 100, 1479, 101, 1205, 1208, 1217, 1249, 1256, 1250, 102, - 1251, 1487, 1481, 1252, 1253, 1254, 1255, 1258, 1259, 1260, - 1264, 788, 1501, 1267, 1445, 1268, 103, 156, 1269, 1270, - 1280, 1278, 68, 69, 1282, 70, 1496, 1316, 1284, 1285, - 127, 104, 1317, 128, 1318, 1369, 158, 129, 130, 131, - 132, 133, 936, 134, 135, 136, 137, 1370, 138, 139, - 1371, 1372, 140, 141, 142, 143, 1373, 1374, 99, 144, - 145, 9, 10, 489, 1376, 1500, 1377, 1380, 146, 1381, - 147, 1389, 1505, 547, 1406, 1385, 1407, 1386, 1411, 1419, - 1435, 14, 1413, 1414, 1155, 148, 149, 150, 1191, 1157, - 1163, 1165, 1167, 643, 1169, 644, 1171, 1173, 645, 646, - 14, 1175, 1177, 1650, 1179, 1181, 1475, 1434, 1544, 1542, - 1437, 1436, 656, 1489, 644, 657, 1189, 645, 646, 1447, - 151, 1190, 297, 298, 299, 936, 1438, 1449, 1448, 1450, - 1451, 1453, 1452, 1454, 1455, 1456, 482, 483, 3, 28, - 29, 30, 31, 32, 33, 34, 1457, 1458, 1584, 1459, - 1460, 1461, 1462, 1463, 1464, 35, 1465, 1467, 1555, 1556, - 1557, 663, 1466, 1468, 1580, 28, 29, 30, 31, 32, - 33, 34, 1469, 1470, 1471, 647, 153, 154, 155, 1472, - 1473, 35, 1474, 1476, 28, 29, 30, 31, 32, 33, - 34, 1477, 1482, 1485, 658, 1490, 1498, 1493, 1494, 1495, - 35, 1663, 1621, 1507, 1325, 1502, 1503, 1327, 1504, 1329, - 1591, 1331, 1536, 1506, 1508, 1597, 1591, 1600, 1510, 1604, - 1512, 1597, 1591, 1600, 1652, 1509, 1513, 1515, 1514, 1516, - 1517, 1518, 1520, 1522, 1519, 1523, 1524, 1521, 1525, 68, - 69, 1189, 70, 1597, 1591, 1600, 1190, 127, 1526, 1527, - 128, 1528, 1607, 1529, 129, 130, 131, 132, 133, 936, - 134, 135, 136, 137, 1530, 138, 139, 1531, 1532, 140, - 141, 142, 143, 1533, 664, 99, 144, 145, 1534, 1535, - 1664, 1537, 1539, 1540, 1665, 146, 1546, 147, 1550, 1554, - 1578, 1560, 28, 29, 30, 31, 32, 33, 34, 1549, - 1561, 936, 148, 149, 150, 156, 1659, 932, 35, 1562, - 1563, 1624, 1632, 1581, 1582, 484, 14, 302, 1585, 1586, - 1587, 303, 304, 1623, 158, 1651, 665, 1653, 1654, 666, - 1655, 1189, 1657, 1660, 1661, 1662, 1190, 151, 1666, 297, - 298, 299, 1669, 312, 68, 69, 1671, 70, 538, 161, - 701, 1404, 127, 482, 483, 128, 626, 998, 977, 129, - 130, 131, 132, 133, 1382, 134, 135, 136, 137, 1209, - 138, 139, 163, 1265, 140, 141, 142, 143, 1403, 576, - 99, 144, 145, 795, 198, 1135, 826, 1199, 1314, 1266, - 146, 933, 147, 153, 154, 155, 1553, 1368, 1151, 94, - 28, 29, 30, 31, 32, 33, 34, 148, 149, 150, - 667, 1147, 970, 1375, 709, 240, 35, 28, 29, 30, - 31, 32, 33, 34, 763, 0, 0, 1433, 1092, 0, - 660, 0, 0, 35, 0, 1002, 0, 0, 0, 0, - 0, 0, 151, 0, 297, 298, 299, 1093, 1094, 0, - 1095, 1096, 1097, 1098, 1099, 1100, 0, 1101, 1102, 0, - 1103, 1104, 1105, 1106, 1107, 0, 266, 128, 267, 0, - 0, 129, 130, 131, 132, 133, 0, 134, 135, 136, - 137, 0, 138, 139, 0, 0, 140, 141, 142, 143, - 0, 0, 0, 144, 145, 0, 0, 0, 153, 154, - 155, 0, 146, 0, 147, 0, 0, 28, 29, 30, - 31, 32, 33, 34, 0, 0, 0, 1511, 0, 148, - 149, 150, 156, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 0, 302, 0, 0, 0, 737, 304, - 0, 158, 68, 69, 0, 70, 0, 0, 0, 0, - 127, 0, 0, 128, 151, 0, 0, 129, 130, 131, - 132, 133, 0, 134, 135, 136, 137, 0, 138, 139, - 0, 0, 140, 141, 142, 143, 0, 0, 99, 144, - 145, 0, 0, 0, 0, 0, 0, 0, 146, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 149, 150, 0, 0, - 0, 0, 0, 0, 0, 911, 912, 913, 0, 914, - 915, 916, 917, 0, 918, 919, 194, 156, 920, 921, - 922, 923, 0, 0, 0, 924, 925, 484, 0, 302, - 151, 152, 0, 303, 304, 3, 158, 0, 0, 0, - 0, 0, 0, 0, 0, 1108, 1109, 0, 1110, 1111, - 1112, 0, 1113, 1114, 0, 0, 1115, 1116, 663, 1117, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 1131, 153, 154, 155, 0, - 0, 0, 0, 926, 0, 68, 69, 0, 70, 0, - 0, 0, 0, 127, 0, 0, 128, 0, 0, 0, - 129, 130, 131, 132, 133, 0, 134, 135, 136, 137, - 1132, 138, 139, 14, 0, 140, 141, 142, 143, 156, - 0, 99, 144, 145, 0, 0, 0, 0, 0, 0, - 0, 146, 0, 147, 0, 0, 0, 0, 158, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 148, 149, - 150, 0, 984, 0, 68, 69, 0, 70, 0, 0, - 0, 664, 127, 0, 0, 128, 0, 0, 0, 129, - 130, 131, 132, 133, 0, 134, 135, 136, 137, 0, - 138, 139, 0, 151, 140, 141, 142, 143, 0, 0, - 99, 144, 145, 0, 0, 0, 0, 985, 0, 0, - 146, 0, 147, 14, 0, 156, 217, 0, 0, 0, - 0, 0, 0, 665, 0, 157, 666, 148, 149, 150, - 0, 1299, 1300, 1301, 158, 1302, 1303, 1304, 1305, 0, - 1306, 1307, 194, 0, 1308, 1309, 1310, 1311, 0, 153, - 154, 155, 0, 1312, 0, 0, 0, 0, 68, 69, - 0, 70, 151, 152, 0, 0, 127, 0, 0, 128, - 0, 0, 0, 129, 130, 131, 132, 133, 1613, 134, - 135, 136, 137, 0, 138, 139, 0, 0, 140, 141, - 142, 143, 0, 0, 99, 144, 145, 28, 29, 30, - 31, 32, 33, 34, 146, 0, 147, 1246, 0, 0, - 0, 0, 0, 35, 0, 0, 0, 0, 153, 154, - 155, 148, 149, 150, 0, 0, 0, 68, 69, 0, - 70, 0, 0, 0, 0, 127, 0, 0, 128, 0, - 0, 0, 129, 130, 131, 132, 133, 0, 134, 135, - 136, 137, 0, 138, 139, 0, 151, 140, 141, 142, - 143, 0, 0, 99, 144, 145, 0, 2, 0, 0, - 0, 0, 0, 146, 0, 147, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 211, 0, - 148, 149, 150, 0, 0, 0, 0, 158, 0, 0, - 68, 69, 0, 70, 0, 0, 0, 0, 127, 0, - 0, 128, 153, 154, 155, 129, 130, 131, 132, 133, - 0, 134, 135, 136, 137, 584, 138, 139, 0, 0, - 140, 141, 142, 143, 0, 0, 99, 144, 145, 0, - 0, 0, 0, 0, 0, 0, 693, 156, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, - 0, 0, 0, 148, 149, 150, 158, 0, 0, 68, - 69, 0, 70, 0, 0, 0, 0, 127, 0, 0, - 128, 153, 154, 155, 129, 130, 131, 132, 133, 0, - 134, 135, 136, 137, 0, 138, 139, 0, 151, 140, - 141, 142, 143, 0, 0, 99, 144, 145, 0, 0, - 0, 0, 0, 0, 0, 146, 0, 147, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 148, 149, 150, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 9, 10, 0, 0, 0, 0, - 0, 211, 0, 0, 153, 154, 155, 0, 0, 0, - 158, 11, 12, 13, 14, 0, 0, 766, 15, 16, - 68, 0, 0, 70, 17, 0, 0, 18, 0, 0, - 128, 0, 0, 3, 19, 20, 131, 132, 133, 0, - 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, - 141, 142, 143, 0, 0, 0, 1364, 145, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 211, 0, 0, 153, 154, 155, 0, 0, 0, 158, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 22, 0, 23, 24, 25, 0, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 1365, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 68, 0, - 0, 70, 0, 0, 1366, 0, 0, 0, 0, 0, - 0, 3, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 0, 0, 0, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, - 0, 0, 0, 8, 0, 0, 0, 373, 374, 375, - 376, 377, 378, 0, 0, 0, 0, 1006, 0, 0, - 0, 9, 10, 0, 1007, 0, 1008, 1009, 1010, 0, - 0, 68, 156, 0, 70, 0, 0, 0, 11, 12, - 13, 14, 211, 0, 3, 0, 0, 0, 0, 379, - 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 380, 0, 1011, 1012, 1013, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 0, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 0, 381, 382, - 0, 8, 0, 0, 0, 373, 374, 375, 376, 377, - 378, 1014, 1015, 1016, 0, 1017, 0, 0, 1018, 9, - 10, 0, 0, 0, 0, 28, 29, 30, 31, 32, - 33, 34, 0, 0, 383, 384, 11, 12, 13, 14, - 0, 35, 0, 0, 269, 270, 271, 379, 272, 273, - 274, 275, 0, 276, 277, 0, 0, 278, 279, 280, - 281, 380, 0, 0, 0, 0, 0, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 0, 0, 0, 0, 8, 0, 0, 0, 373, 374, - 375, 376, 377, 378, 0, 0, 381, 382, 0, 0, - 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 14, 28, 29, 30, 31, 32, 33, 34, - 379, 0, 383, 793, 0, 0, 0, 0, 0, 35, - 0, 128, 0, 0, 380, 129, 130, 131, 132, 133, - 0, 134, 135, 136, 137, 0, 138, 139, 0, 0, - 140, 141, 142, 143, 449, 0, 0, 144, 145, 0, - 0, 0, 0, 1019, 0, 0, 146, 0, 147, 381, - 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 149, 150, 0, 450, 0, 451, - 452, 453, 454, 0, 0, 0, 28, 29, 30, 31, - 32, 33, 34, 0, 0, 383, 1001, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 151, 0, - 0, 0, 0, 0, 0, 0, 455, 456, 457, 458, - 0, 0, 459, 0, 0, 128, 460, 461, 462, 129, - 130, 131, 132, 133, 0, 134, 135, 136, 137, 0, - 138, 139, 0, 0, 140, 141, 142, 143, 0, 0, - 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, - 146, 0, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, - 128, 0, 0, 0, 129, 130, 131, 132, 133, 0, - 134, 135, 136, 137, 0, 138, 139, 0, 0, 140, - 141, 142, 143, 0, 0, 0, 144, 145, 0, 0, - 0, 0, 151, 0, 0, 146, 0, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 463, 128, 148, 149, 150, 129, 130, 131, 132, 133, - 0, 134, 135, 136, 137, 0, 138, 139, 0, 0, - 140, 141, 142, 143, 0, 0, 0, 144, 145, 0, - 0, 0, 0, 0, 0, 0, 146, 151, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 149, 150, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 1006, 0, 852, 0, 0, - 0, 0, 1007, 0, 1008, 1009, 1010, 0, 0, 0, - 0, 853, 158, 0, 0, 0, 854, 855, 151, 856, - 857, 858, 859, 860, 861, 0, 862, 863, 0, 864, - 865, 866, 867, 868, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1011, 1012, 1013, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 869, 0, 870, 0, 0, - 0, 0, 871, 0, 9, 10, 0, 0, 0, 1014, - 1015, 1016, 0, 1017, 0, 0, 1018, 156, 872, 0, - 0, 11, 12, 13, 14, 0, 0, 776, 15, 16, - 3, 0, 0, 0, 17, 0, 158, 18, 0, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 911, 912, - 913, 873, 914, 915, 916, 917, 0, 918, 919, 194, - 0, 920, 921, 922, 923, 0, 0, 0, 924, 925, - 0, 0, 156, 0, 0, 0, 3, 0, 1006, 551, - 0, 0, 932, 0, 0, 1007, 0, 1008, 1009, 1010, - 0, 158, 0, 0, 0, 0, 0, 0, 0, 21, - 22, 0, 23, 24, 25, 0, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 0, 0, 0, 539, 0, - 0, 0, 0, 156, 35, 551, 1011, 1012, 1013, 0, - 0, 0, 0, 0, 0, 0, 926, 0, 0, 0, - 0, 874, 158, 875, 876, 877, 878, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 0, 0, 0, 892, 0, 0, 552, 0, 6, 7, - 8, 1248, 1014, 1015, 1016, 0, 1017, 0, 0, 1018, - 553, 0, 0, 0, 0, 554, 0, 0, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 893, 11, 12, 13, 14, 0, - 555, 556, 552, 0, 6, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, - 557, 554, 0, 0, 9, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, - 0, 11, 12, 13, 14, 0, 555, 556, 0, 0, - 0, 0, 853, 0, 0, 558, 559, 854, 855, 0, - 856, 857, 858, 859, 860, 861, 557, 862, 863, 0, - 864, 865, 866, 867, 868, 0, 0, 0, 68, 69, - 0, 70, 28, 29, 30, 31, 32, 33, 34, 0, - 0, 0, 560, 0, 0, 0, 0, 0, 35, 0, - 0, 558, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 869, 0, 870, 0, - 0, 0, 0, 871, 1492, 0, 0, 0, 28, 29, - 30, 31, 32, 33, 34, 0, 0, 0, 1226, 872, - 0, 314, 0, 0, 35, 315, 0, 0, 316, 317, - 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 0, 0, 339, 98, 0, - 0, 330, 873, 100, 331, 101, 0, 0, 0, 0, - 0, 332, 102, 0, 0, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 340, 0, 341, 342, 343, 344, 345, 0, 0, 0, - 0, 346, 0, 0, 104, 0, 0, 0, 0, 0, - 347, 0, 0, 0, 0, 348, 0, 349, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 351, 352, 353, 354, 355, 356, 357, 0, 0, 0, - 0, 0, 358, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 874, 0, 875, 876, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 0, 0, 0, 892 -}; - -static const yytype_int16 yycheck[] = -{ - 5, 164, 25, 707, 103, 104, 424, 14, 426, 1, - 25, 25, 338, 338, 1, 20, 1, 1, 25, 900, - 338, 186, 1031, 28, 29, 30, 31, 1062, 57, 1, - 692, 43, 21, 22, 1, 774, 48, 1183, 486, 25, - 10, 787, 6, 7, 10, 9, 10, 59, 8, 8, - 216, 94, 189, 190, 191, 192, 193, 10, 9, 9, - 6, 7, 20, 9, 64, 164, 23, 24, 21, 6, - 7, 60, 9, 93, 34, 1216, 8, 9, 515, 516, - 517, 9, 786, 8, 73, 108, 185, 8, 64, 8, - 508, 509, 21, 10, 6, 7, 42, 9, 105, 10, - 111, 6, 7, 299, 9, 10, 129, 111, 1150, 114, - 13, 116, 117, 118, 213, 57, 21, 45, 10, 105, - 137, 10, 11, 112, 113, 10, 11, 170, 77, 152, - 6, 7, 146, 9, 298, 149, 9, 42, 6, 7, - 167, 9, 6, 7, 10, 9, 1543, 10, 6, 7, - 157, 9, 157, 158, 10, 169, 14, 164, 6, 7, - 392, 9, 182, 65, 10, 11, 195, 6, 7, 158, - 9, 228, 10, 292, 42, 299, 181, 6, 7, 6, - 9, 300, 9, 10, 42, 14, 209, 199, 934, 935, - 233, 248, 10, 1531, 106, 107, 108, 10, 10, 137, - 10, 206, 207, 198, 211, 10, 211, 12, 274, 6, - 7, 1523, 9, 42, 234, 10, 45, 1529, 6, 7, - 966, 9, 1530, 52, 126, 1563, 21, 32, 33, 234, - 395, 10, 9, 222, 223, 240, 12, 186, 1379, 294, - 403, 1528, 137, 10, 11, 12, 301, 261, 268, 1561, - 687, 66, 67, 216, 1562, 10, 32, 33, 10, 11, - 12, 6, 7, 268, 9, 32, 33, 294, 45, 14, - 1667, 294, 218, 1560, 1155, 292, 1318, 288, 283, 302, - 32, 33, 287, 292, 288, 290, 291, 292, 299, 298, - 295, 296, 306, 997, 294, 300, 733, 42, 287, 293, - 295, 1047, 160, 161, 162, 216, 300, 52, 407, 25, - 26, 40, 301, 218, 6, 7, 336, 9, 294, 35, - 312, 1025, 290, 52, 53, 312, 292, 312, 312, 10, - 11, 160, 161, 162, 300, 305, 294, 569, 298, 298, - 312, 70, 293, 293, 308, 312, 338, 300, 290, 307, - 218, 338, 6, 338, 338, 9, 294, 8, 295, 305, - 208, 293, 382, 406, 290, 290, 338, 296, 296, 290, - 295, 338, 304, 295, 295, 294, 298, 406, 1413, 296, - 10, 404, 12, 61, 373, 405, 375, 299, 291, 301, - 379, 120, 1538, 305, 306, 300, 403, 404, 410, 294, - 305, 408, 32, 33, 296, 13, 395, 296, 845, 398, - 399, 296, 8, 402, 294, 160, 161, 162, 290, 294, - 300, 290, 408, 299, 589, 300, 415, 416, 1574, 418, - 296, 420, 597, 296, 294, 299, 290, 305, 34, 290, - 296, 299, 295, 400, 401, 468, 395, 436, 437, 398, - 296, 438, 472, 402, 438, 439, 440, 441, 296, 464, - 299, 466, 899, 290, 290, 422, 438, 439, 440, 441, - 299, 478, 251, 252, 253, 295, 295, 484, 296, 484, - 299, 296, 431, 296, 296, 584, 296, 294, 493, 937, - 1152, 296, 88, 300, 293, 484, 298, 6, 7, 8, - 9, 10, 299, 523, 290, 14, 526, 527, 1247, 295, - 499, 299, 66, 67, 1549, 504, 505, 506, 523, 508, - 29, 510, 511, 512, 216, 294, 52, 6, 7, 296, - 9, 300, 575, 42, 598, 599, 600, 6, 7, 559, - 9, 6, 7, 295, 9, 14, 295, 19, 137, 299, - 507, 540, 509, 576, 299, 305, 513, 66, 67, 137, - 289, 6, 7, 292, 9, 41, 555, 556, 137, 1578, - 46, 591, 48, 42, 303, 137, 581, 582, 295, 55, - 6, 7, 299, 9, 307, 574, 629, 296, 14, 6, - 7, 580, 9, 10, 583, 74, 72, 76, 77, 13, - 620, 295, 625, 646, 83, 299, 771, 296, 597, 638, - 6, 87, 624, 9, 10, 620, 42, 19, 305, 45, - 292, 293, 29, 30, 296, 295, 52, 1373, 1374, 299, - 296, 76, 77, 106, 107, 108, 293, 294, 627, 295, - 589, 653, 654, 299, 293, 294, 40, 659, 597, 661, - 295, 160, 161, 162, 299, 120, 121, 64, 52, 53, - 665, 760, 6, 7, 137, 9, 671, 766, 295, 106, - 107, 108, 998, 998, 295, 664, 70, 1558, 627, 693, - 998, 704, 819, 62, 821, 822, 823, 824, 825, 293, - 294, 160, 161, 162, 683, 139, 140, 709, 170, 171, - 172, 173, 707, 1407, 292, 710, 24, 712, 296, 27, - 28, 29, 30, 295, 32, 33, 34, 299, 298, 703, - 296, 744, 194, 195, 196, 197, 120, 295, 717, 718, - 719, 299, 292, 293, 160, 161, 162, 757, 758, 759, - 295, 47, 1488, 49, 50, 51, 106, 107, 108, 1495, - 755, 740, 741, 1171, 759, 1173, 300, 271, 763, 764, - 765, 292, 785, 720, 296, 10, 789, 24, 811, 9, - 27, 28, 29, 30, 295, 32, 33, 34, 299, 293, - 300, 786, 27, 28, 29, 299, 1490, 776, 221, 778, - 299, 780, 306, 782, 295, 197, 203, 204, 299, 206, - 26, 27, 28, 29, 30, 207, 26, 796, 210, 281, - 282, 283, 284, 285, 286, 287, 300, 806, 807, 291, - 295, 295, 771, 19, 299, 297, 299, 295, 301, 295, - 299, 299, 305, 306, 15, 295, 1582, 18, 295, 828, - 295, 830, 831, 848, 299, 850, 56, 796, 58, 59, - 60, 808, 139, 140, 295, 844, 805, 900, 295, 295, - 41, 42, 299, 299, 301, 46, 909, 48, 305, 306, - 296, 295, 295, 299, 55, 299, 299, 1623, 300, 281, - 282, 283, 284, 285, 286, 287, 900, 907, 291, 291, - 295, 72, 10, 11, 12, 297, 294, 295, 292, 76, - 77, 78, 295, 295, 292, 293, 87, 299, 1654, 303, - 295, 900, 295, 295, 32, 33, 299, 299, 930, 41, - 1624, 295, 295, 1669, 46, 299, 48, 6, 7, 295, - 9, 1048, 1049, 55, 295, 112, 113, 114, 299, 299, - 295, 301, 295, 932, 928, 305, 306, 295, 897, 295, - 72, 73, 290, 976, 295, 292, 294, 299, 978, 296, - 295, 1004, 1666, 295, 299, 87, 295, 990, 983, 295, - 299, 304, 290, 996, 295, 980, 295, 173, 299, 175, - 176, 295, 987, 294, 973, 299, 295, 298, 306, 292, - 291, 940, 997, 296, 887, 888, 118, 293, 194, 195, - 196, 197, 296, 992, 295, 994, 998, 999, 1000, 295, - 1030, 998, 1032, 998, 998, 999, 1000, 8, 1002, 290, - 1025, 8, 101, 102, 103, 293, 998, 999, 1000, 296, - 1002, 998, 999, 1000, 106, 107, 108, 296, 301, 1044, - 20, 209, 20, 1086, 295, 295, 295, 126, 295, 306, - 26, 27, 28, 29, 30, 21, 76, 77, 78, 1048, - 1049, 302, 293, 293, 1227, 1228, 1229, 1230, 27, 28, - 29, 30, 111, 290, 1237, 1238, 1239, 290, 106, 107, - 108, 290, 290, 304, 1073, 281, 282, 283, 284, 285, - 286, 287, 112, 113, 114, 291, 1139, 20, 295, 1048, - 1049, 297, 63, 63, 16, 17, 18, 295, 295, 21, - 22, 23, 24, 25, 295, 27, 28, 29, 30, 295, - 32, 33, 296, 296, 36, 37, 38, 39, 300, 296, - 42, 43, 44, 27, 28, 29, 30, 296, 296, 296, - 52, 220, 54, 222, 223, 224, 225, 1136, 296, 296, - 1568, 1569, 304, 213, 226, 298, 298, 69, 70, 71, - 27, 28, 29, 30, 298, 295, 216, 1156, 1157, 1158, - 216, 296, 293, 1187, 1163, 1164, 1165, 1166, 1167, 1168, - 291, 1170, 1171, 1172, 298, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 104, 1182, 293, 1184, 9, 1186, 298, 1188, - 291, 295, 295, 1223, 1224, 1210, 27, 28, 29, 30, - 1217, 296, 1169, 40, 296, 1220, 1173, 40, 296, 1208, - 1227, 1228, 1229, 1230, 1181, 296, 296, 299, 55, 301, - 1237, 1238, 1239, 305, 306, 296, 302, 296, 296, 296, - 296, 23, 24, 25, 71, 27, 28, 29, 30, 1292, - 32, 33, 34, 80, 36, 37, 38, 39, 296, 296, - 1249, 43, 44, 19, 296, 296, 295, 94, 95, 96, - 97, 299, 296, 301, 296, 296, 295, 305, 306, 1268, - 20, 296, 19, 300, 300, 296, 293, 20, 1277, 293, - 1389, 296, 293, 296, 304, 1284, 1285, 299, 295, 126, - 127, 128, 129, 130, 131, 132, 295, 1296, 296, 1258, - 296, 295, 295, 243, 296, 296, 1265, 296, 1267, 15, - 295, 235, 18, 247, 295, 23, 296, 1316, 1317, 111, - 298, 298, 296, 291, 290, 1319, 1325, 1326, 1327, 1328, - 1329, 1330, 296, 1332, 296, 41, 42, 302, 85, 296, - 46, 1365, 48, 296, 295, 197, 295, 295, 304, 55, - 304, 1381, 1367, 300, 300, 300, 300, 137, 300, 300, - 296, 21, 1415, 63, 1331, 63, 72, 289, 296, 296, - 296, 9, 6, 7, 250, 9, 1406, 295, 299, 299, - 14, 87, 295, 17, 290, 296, 308, 21, 22, 23, - 24, 25, 1407, 27, 28, 29, 30, 300, 32, 33, - 296, 296, 36, 37, 38, 39, 295, 295, 42, 43, - 44, 177, 178, 167, 296, 1414, 296, 296, 52, 293, - 54, 256, 1421, 301, 293, 300, 20, 300, 296, 300, - 296, 197, 304, 298, 295, 69, 70, 71, 1432, 295, - 295, 295, 295, 209, 295, 211, 295, 295, 214, 215, - 197, 295, 295, 290, 295, 295, 9, 291, 1491, 1489, - 296, 300, 209, 293, 211, 212, 105, 214, 215, 296, - 104, 110, 106, 107, 108, 1490, 300, 296, 300, 300, - 296, 296, 300, 300, 296, 296, 120, 121, 19, 281, - 282, 283, 284, 285, 286, 287, 300, 296, 1551, 296, - 300, 296, 300, 296, 300, 297, 296, 296, 1507, 1508, - 1509, 42, 300, 300, 1544, 281, 282, 283, 284, 285, - 286, 287, 296, 300, 296, 291, 160, 161, 162, 296, - 300, 297, 296, 296, 281, 282, 283, 284, 285, 286, - 287, 300, 302, 296, 291, 20, 9, 296, 296, 295, - 297, 1660, 1576, 304, 295, 300, 300, 295, 300, 295, - 1559, 295, 9, 296, 304, 1564, 1565, 1566, 296, 1568, - 295, 1570, 1571, 1572, 1627, 304, 295, 300, 296, 296, - 300, 296, 296, 295, 300, 295, 295, 300, 295, 6, - 7, 105, 9, 1592, 1593, 1594, 110, 14, 295, 295, - 17, 295, 1569, 295, 21, 22, 23, 24, 25, 1624, - 27, 28, 29, 30, 295, 32, 33, 295, 295, 36, - 37, 38, 39, 295, 155, 42, 43, 44, 296, 295, - 1663, 300, 296, 296, 1664, 52, 301, 54, 296, 300, - 296, 295, 281, 282, 283, 284, 285, 286, 287, 304, - 295, 1666, 69, 70, 71, 289, 1655, 299, 297, 295, - 295, 20, 9, 296, 295, 299, 197, 301, 296, 296, - 296, 305, 306, 295, 308, 296, 207, 296, 295, 210, - 295, 105, 256, 104, 296, 296, 110, 104, 20, 106, - 107, 108, 295, 180, 6, 7, 296, 9, 306, 25, - 478, 1257, 14, 120, 121, 17, 408, 768, 754, 21, - 22, 23, 24, 25, 1214, 27, 28, 29, 30, 975, - 32, 33, 25, 1035, 36, 37, 38, 39, 1256, 359, - 42, 43, 44, 595, 57, 895, 638, 937, 1139, 1037, - 52, 704, 54, 160, 161, 162, 1503, 1192, 907, 10, - 281, 282, 283, 284, 285, 286, 287, 69, 70, 71, - 291, 902, 741, 1201, 490, 115, 297, 281, 282, 283, - 284, 285, 286, 287, 557, -1, -1, 291, 3, -1, - 439, -1, -1, 297, -1, 772, -1, -1, -1, -1, - -1, -1, 104, -1, 106, 107, 108, 22, 23, -1, - 25, 26, 27, 28, 29, 30, -1, 32, 33, -1, - 35, 36, 37, 38, 39, -1, 16, 17, 18, -1, - -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, - 30, -1, 32, 33, -1, -1, 36, 37, 38, 39, - -1, -1, -1, 43, 44, -1, -1, -1, 160, 161, - 162, -1, 52, -1, 54, -1, -1, 281, 282, 283, - 284, 285, 286, 287, -1, -1, -1, 291, -1, 69, - 70, 71, 289, 297, -1, -1, -1, -1, -1, -1, - -1, -1, 299, -1, 301, -1, -1, -1, 305, 306, - -1, 308, 6, 7, -1, 9, -1, -1, -1, -1, - 14, -1, -1, 17, 104, -1, -1, 21, 22, 23, - 24, 25, -1, 27, 28, 29, 30, -1, 32, 33, - -1, -1, 36, 37, 38, 39, -1, -1, 42, 43, - 44, -1, -1, -1, -1, -1, -1, -1, 52, -1, - 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 23, 24, 25, -1, 27, - 28, 29, 30, -1, 32, 33, 34, 289, 36, 37, - 38, 39, -1, -1, -1, 43, 44, 299, -1, 301, - 104, 105, -1, 305, 306, 19, 308, -1, -1, -1, - -1, -1, -1, -1, -1, 230, 231, -1, 233, 234, - 235, -1, 237, 238, -1, -1, 241, 242, 42, 244, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 160, 161, 162, -1, - -1, -1, -1, 111, -1, 6, 7, -1, 9, -1, - -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, - 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, - 305, 32, 33, 197, -1, 36, 37, 38, 39, 289, - -1, 42, 43, 44, -1, -1, -1, -1, -1, -1, - -1, 52, -1, 54, -1, -1, -1, -1, 308, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, - 71, -1, 73, -1, 6, 7, -1, 9, -1, -1, - -1, 155, 14, -1, -1, 17, -1, -1, -1, 21, - 22, 23, 24, 25, -1, 27, 28, 29, 30, -1, - 32, 33, -1, 104, 36, 37, 38, 39, -1, -1, - 42, 43, 44, -1, -1, -1, -1, 118, -1, -1, - 52, -1, 54, 197, -1, 289, 8, -1, -1, -1, - -1, -1, -1, 207, -1, 299, 210, 69, 70, 71, - -1, 23, 24, 25, 308, 27, 28, 29, 30, -1, - 32, 33, 34, -1, 36, 37, 38, 39, -1, 160, - 161, 162, -1, 45, -1, -1, -1, -1, 6, 7, - -1, 9, 104, 105, -1, -1, 14, -1, -1, 17, - -1, -1, -1, 21, 22, 23, 24, 25, 296, 27, - 28, 29, 30, -1, 32, 33, -1, -1, 36, 37, - 38, 39, -1, -1, 42, 43, 44, 281, 282, 283, - 284, 285, 286, 287, 52, -1, 54, 291, -1, -1, - -1, -1, -1, 297, -1, -1, -1, -1, 160, 161, - 162, 69, 70, 71, -1, -1, -1, 6, 7, -1, - 9, -1, -1, -1, -1, 14, -1, -1, 17, -1, - -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, - 29, 30, -1, 32, 33, -1, 104, 36, 37, 38, - 39, -1, -1, 42, 43, 44, -1, 0, -1, -1, - -1, -1, -1, 52, -1, 54, -1, -1, 289, -1, - -1, -1, -1, -1, -1, -1, 19, -1, 299, -1, - 69, 70, 71, -1, -1, -1, -1, 308, -1, -1, - 6, 7, -1, 9, -1, -1, -1, -1, 14, -1, - -1, 17, 160, 161, 162, 21, 22, 23, 24, 25, - -1, 27, 28, 29, 30, 104, 32, 33, -1, -1, - 36, 37, 38, 39, -1, -1, 42, 43, 44, -1, - -1, -1, -1, -1, -1, -1, 52, 289, 54, -1, - -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, - -1, -1, -1, 69, 70, 71, 308, -1, -1, 6, - 7, -1, 9, -1, -1, -1, -1, 14, -1, -1, - 17, 160, 161, 162, 21, 22, 23, 24, 25, -1, - 27, 28, 29, 30, -1, 32, 33, -1, 104, 36, - 37, 38, 39, -1, -1, 42, 43, 44, -1, -1, - -1, -1, -1, -1, -1, 52, -1, 54, -1, -1, - -1, -1, 155, 156, 157, 158, 159, -1, -1, -1, - -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, 289, -1, -1, 177, 178, -1, -1, -1, -1, - -1, 299, -1, -1, 160, 161, 162, -1, -1, -1, - 308, 194, 195, 196, 197, -1, -1, 104, 201, 202, - 6, -1, -1, 9, 207, -1, -1, 210, -1, -1, - 17, -1, -1, 19, 217, 218, 23, 24, 25, -1, - 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, - 37, 38, 39, -1, -1, -1, 43, 44, -1, -1, - 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 299, -1, -1, 160, 161, 162, -1, -1, -1, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, - 273, -1, 275, 276, 277, -1, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 92, -1, -1, -1, -1, - -1, -1, -1, -1, 297, -1, -1, -1, 6, -1, - -1, 9, -1, -1, 111, -1, -1, -1, -1, -1, - -1, 19, -1, 289, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 299, -1, -1, -1, -1, -1, -1, - -1, -1, 308, -1, -1, -1, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, - -1, -1, -1, 159, -1, -1, -1, 163, 164, 165, - 166, 167, 168, -1, -1, -1, -1, 40, -1, -1, - -1, 177, 178, -1, 47, -1, 49, 50, 51, -1, - -1, 6, 289, -1, 9, -1, -1, -1, 194, 195, - 196, 197, 299, -1, 19, -1, -1, -1, -1, 205, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 219, -1, 88, 89, 90, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, -1, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, -1, 254, 255, - -1, 159, -1, -1, -1, 163, 164, 165, 166, 167, - 168, 134, 135, 136, -1, 138, -1, -1, 141, 177, - 178, -1, -1, -1, -1, 281, 282, 283, 284, 285, - 286, 287, -1, -1, 290, 291, 194, 195, 196, 197, - -1, 297, -1, -1, 23, 24, 25, 205, 27, 28, - 29, 30, -1, 32, 33, -1, -1, 36, 37, 38, - 39, 219, -1, -1, -1, -1, -1, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - -1, -1, -1, -1, 159, -1, -1, -1, 163, 164, - 165, 166, 167, 168, -1, -1, 254, 255, -1, -1, - -1, -1, 177, 178, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - 195, 196, 197, 281, 282, 283, 284, 285, 286, 287, - 205, -1, 290, 291, -1, -1, -1, -1, -1, 297, - -1, 17, -1, -1, 219, 21, 22, 23, 24, 25, - -1, 27, 28, 29, 30, -1, 32, 33, -1, -1, - 36, 37, 38, 39, 40, -1, -1, 43, 44, -1, - -1, -1, -1, 296, -1, -1, 52, -1, 54, 254, - 255, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, - 76, 77, 78, -1, -1, -1, 281, 282, 283, 284, - 285, 286, 287, -1, -1, 290, 291, -1, -1, -1, - -1, -1, 297, -1, -1, -1, -1, -1, 104, -1, - -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, - -1, -1, 118, -1, -1, 17, 122, 123, 124, 21, - 22, 23, 24, 25, -1, 27, 28, 29, 30, -1, - 32, 33, -1, -1, 36, 37, 38, 39, -1, -1, - -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 69, 70, 71, - 17, -1, -1, -1, 21, 22, 23, 24, 25, -1, - 27, 28, 29, 30, -1, 32, 33, -1, -1, 36, - 37, 38, 39, -1, -1, -1, 43, 44, -1, -1, - -1, -1, 104, -1, -1, 52, -1, 54, -1, -1, - -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, - 226, 17, 69, 70, 71, 21, 22, 23, 24, 25, - -1, 27, 28, 29, 30, -1, 32, 33, -1, -1, - 36, 37, 38, 39, -1, -1, -1, 43, 44, -1, - -1, -1, -1, -1, -1, -1, 52, 104, 54, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, 289, -1, 40, -1, 3, -1, -1, - -1, -1, 47, -1, 49, 50, 51, -1, -1, -1, - -1, 17, 308, -1, -1, -1, 22, 23, 104, 25, - 26, 27, 28, 29, 30, -1, 32, 33, -1, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 155, 156, 157, 158, 159, -1, -1, -1, - -1, -1, -1, -1, -1, 81, -1, 83, -1, -1, - -1, -1, 88, -1, 177, 178, -1, -1, -1, 134, - 135, 136, -1, 138, -1, -1, 141, 289, 104, -1, - -1, 194, 195, 196, 197, -1, -1, 299, 201, 202, - 19, -1, -1, -1, 207, -1, 308, 210, -1, -1, - -1, -1, -1, -1, 217, 218, -1, -1, 23, 24, - 25, 137, 27, 28, 29, 30, -1, 32, 33, 34, - -1, 36, 37, 38, 39, -1, -1, -1, 43, 44, - -1, -1, 289, -1, -1, -1, 19, -1, 40, 68, - -1, -1, 299, -1, -1, 47, -1, 49, 50, 51, - -1, 308, -1, -1, -1, -1, -1, -1, -1, 272, - 273, -1, 275, 276, 277, -1, 279, 280, 281, 282, - 283, 284, 285, 286, 287, -1, -1, -1, 291, -1, - -1, -1, -1, 289, 297, 68, 88, 89, 90, -1, - -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, - -1, 227, 308, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - -1, -1, -1, 249, -1, -1, 155, -1, 157, 158, - 159, 296, 134, 135, 136, -1, 138, -1, -1, 141, - 169, -1, -1, -1, -1, 174, -1, -1, 177, 178, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 290, 194, 195, 196, 197, -1, - 199, 200, 155, -1, 157, 158, 159, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 169, -1, -1, -1, - 219, 174, -1, -1, 177, 178, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, - -1, 194, 195, 196, 197, -1, 199, 200, -1, -1, - -1, -1, 17, -1, -1, 254, 255, 22, 23, -1, - 25, 26, 27, 28, 29, 30, 219, 32, 33, -1, - 35, 36, 37, 38, 39, -1, -1, -1, 6, 7, - -1, 9, 281, 282, 283, 284, 285, 286, 287, -1, - -1, -1, 291, -1, -1, -1, -1, -1, 297, -1, - -1, 254, 255, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 40, -1, -1, -1, 81, -1, 83, -1, - -1, -1, -1, 88, 296, -1, -1, -1, 281, 282, - 283, 284, 285, 286, 287, -1, -1, -1, 291, 104, - -1, 69, -1, -1, 297, 73, -1, -1, 76, 77, - -1, -1, -1, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, -1, 40, 41, -1, - -1, 99, 137, 46, 102, 48, -1, -1, -1, -1, - -1, 109, 55, -1, -1, -1, -1, -1, -1, -1, - 118, -1, -1, -1, -1, -1, -1, -1, -1, 72, - 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, 87, -1, -1, -1, -1, -1, - 93, -1, -1, -1, -1, 98, -1, 100, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 227, -1, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, -1, -1, -1, 249 -}; - -/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of - state STATE-NUM. */ -static const yytype_int16 yystos[] = -{ - 0, 310, 0, 19, 155, 156, 157, 158, 159, 177, - 178, 194, 195, 196, 197, 201, 202, 207, 210, 217, - 218, 272, 273, 275, 276, 277, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 297, 311, 314, 320, 321, - 322, 323, 324, 325, 332, 334, 335, 337, 338, 339, - 340, 341, 342, 361, 379, 383, 405, 406, 462, 465, - 471, 472, 473, 477, 486, 489, 494, 216, 6, 7, - 9, 315, 316, 299, 365, 65, 126, 407, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 470, 470, 9, 15, 18, 41, 42, - 46, 48, 55, 72, 87, 295, 326, 366, 367, 368, - 369, 298, 299, 274, 474, 216, 478, 495, 216, 316, - 10, 317, 317, 10, 11, 318, 318, 14, 17, 21, - 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, - 36, 37, 38, 39, 43, 44, 52, 54, 69, 70, - 71, 104, 105, 160, 161, 162, 289, 299, 308, 316, - 322, 323, 369, 370, 429, 452, 453, 458, 459, 290, - 316, 316, 316, 316, 8, 13, 414, 415, 414, 414, - 290, 343, 61, 344, 290, 384, 390, 24, 27, 28, - 29, 30, 32, 33, 34, 290, 306, 408, 411, 413, - 414, 317, 290, 290, 290, 290, 491, 294, 317, 362, - 315, 299, 369, 429, 452, 454, 458, 8, 34, 298, - 313, 293, 295, 295, 47, 49, 50, 51, 367, 367, - 327, 370, 454, 298, 458, 295, 317, 317, 208, 316, - 478, 101, 102, 103, 126, 220, 222, 223, 224, 225, - 316, 76, 77, 316, 316, 458, 27, 28, 29, 30, - 452, 52, 452, 25, 26, 35, 16, 18, 458, 23, - 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, - 38, 39, 418, 218, 305, 316, 369, 308, 316, 317, - 137, 137, 137, 366, 367, 137, 307, 106, 107, 108, - 137, 299, 301, 305, 306, 312, 452, 313, 296, 13, - 296, 296, 310, 40, 69, 73, 76, 77, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 99, 102, 109, 118, 316, 454, 62, 345, 346, 40, - 73, 75, 76, 77, 78, 79, 84, 93, 98, 100, - 112, 113, 114, 115, 116, 117, 118, 119, 125, 367, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 163, 164, 165, 166, 167, 168, 205, - 219, 254, 255, 290, 291, 314, 315, 321, 332, 389, - 391, 392, 393, 394, 396, 397, 405, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 462, 472, 305, 295, 299, 410, 295, 410, - 295, 410, 295, 410, 295, 410, 295, 410, 295, 409, - 411, 295, 414, 296, 8, 9, 293, 304, 479, 487, - 492, 496, 74, 76, 77, 83, 316, 316, 300, 40, - 73, 75, 76, 77, 78, 112, 113, 114, 115, 118, - 122, 123, 124, 226, 458, 298, 218, 316, 367, 295, - 298, 295, 290, 295, 292, 9, 317, 317, 296, 290, - 295, 313, 120, 121, 299, 316, 386, 454, 300, 167, - 475, 316, 221, 137, 452, 26, 316, 454, 295, 295, - 27, 28, 29, 30, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 316, 300, 300, 300, 316, 317, - 316, 316, 316, 458, 316, 316, 295, 295, 316, 21, - 300, 317, 460, 461, 447, 448, 458, 291, 312, 291, - 295, 76, 77, 78, 112, 113, 114, 301, 350, 347, - 454, 68, 155, 169, 174, 199, 200, 219, 254, 255, - 291, 314, 321, 332, 342, 360, 361, 371, 375, 383, - 405, 462, 472, 490, 295, 295, 387, 317, 317, 317, - 299, 111, 288, 299, 104, 454, 304, 198, 295, 390, - 56, 58, 59, 60, 395, 398, 399, 400, 401, 402, - 403, 315, 317, 392, 315, 317, 317, 318, 12, 32, - 33, 295, 318, 319, 315, 317, 366, 16, 18, 369, - 458, 454, 88, 313, 413, 367, 327, 295, 414, 295, - 317, 317, 317, 317, 318, 319, 319, 291, 293, 315, - 296, 317, 317, 209, 211, 214, 215, 291, 321, 332, - 462, 480, 482, 483, 485, 85, 209, 212, 291, 476, - 482, 484, 488, 42, 155, 207, 210, 291, 321, 332, - 493, 207, 210, 291, 321, 332, 497, 76, 77, 78, - 112, 113, 114, 295, 295, 316, 316, 300, 458, 313, - 466, 467, 290, 52, 454, 463, 464, 8, 293, 296, - 296, 326, 328, 329, 301, 359, 446, 20, 336, 476, - 137, 316, 20, 66, 67, 468, 317, 295, 295, 295, - 295, 317, 317, 317, 318, 317, 319, 318, 319, 317, - 317, 317, 318, 300, 453, 453, 453, 305, 454, 454, - 21, 293, 300, 302, 293, 317, 40, 52, 53, 70, - 120, 289, 292, 303, 351, 352, 355, 293, 111, 372, - 376, 317, 317, 491, 111, 288, 104, 454, 290, 290, - 290, 390, 290, 317, 313, 385, 299, 458, 304, 317, - 299, 316, 299, 316, 317, 367, 20, 295, 21, 387, - 449, 450, 451, 291, 454, 395, 57, 392, 404, 315, - 317, 392, 404, 404, 404, 63, 63, 295, 295, 316, - 454, 295, 414, 458, 315, 317, 445, 296, 313, 296, - 300, 296, 296, 296, 296, 296, 409, 296, 304, 9, - 293, 213, 298, 305, 317, 481, 298, 313, 414, 414, - 298, 298, 414, 414, 295, 216, 317, 316, 216, 316, - 216, 317, 3, 17, 22, 23, 25, 26, 27, 28, - 29, 30, 32, 33, 35, 36, 37, 38, 39, 81, - 83, 88, 104, 137, 227, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 249, 290, 381, 382, 455, 64, 363, 300, - 298, 296, 293, 328, 9, 298, 291, 293, 9, 298, - 291, 23, 24, 25, 27, 28, 29, 30, 32, 33, - 36, 37, 38, 39, 43, 44, 111, 321, 330, 412, - 413, 417, 299, 447, 295, 295, 316, 386, 29, 30, - 64, 203, 204, 206, 414, 316, 316, 296, 296, 317, - 317, 317, 318, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 453, 295, 296, 296, 317, - 461, 458, 296, 295, 40, 353, 354, 352, 295, 316, - 357, 302, 454, 454, 73, 118, 316, 454, 73, 118, - 367, 316, 299, 316, 299, 316, 367, 20, 346, 373, - 377, 291, 492, 296, 137, 385, 40, 47, 49, 50, - 51, 88, 89, 90, 134, 135, 136, 138, 141, 296, - 251, 252, 253, 317, 226, 380, 317, 300, 317, 317, - 293, 300, 458, 386, 449, 458, 296, 293, 315, 317, - 315, 317, 317, 318, 20, 313, 296, 295, 293, 293, - 296, 296, 410, 410, 410, 410, 410, 410, 317, 317, - 317, 295, 304, 295, 296, 296, 295, 295, 296, 296, - 317, 453, 316, 64, 316, 296, 26, 27, 28, 29, - 30, 295, 456, 243, 235, 247, 295, 228, 248, 23, - 456, 456, 3, 22, 23, 25, 26, 27, 28, 29, - 30, 32, 33, 35, 36, 37, 38, 39, 230, 231, - 233, 234, 235, 237, 238, 241, 242, 244, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 305, 457, 296, 415, 299, 305, 315, 298, - 364, 29, 313, 317, 452, 468, 469, 466, 291, 298, - 290, 463, 290, 295, 313, 295, 299, 295, 299, 27, - 28, 29, 30, 295, 299, 295, 299, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 299, 295, 299, 295, - 299, 295, 299, 295, 299, 295, 299, 295, 299, 105, - 110, 321, 331, 414, 317, 302, 449, 449, 359, 446, - 315, 296, 296, 296, 296, 296, 449, 317, 295, 354, - 458, 348, 349, 454, 293, 356, 316, 197, 322, 316, - 458, 317, 317, 293, 458, 386, 291, 170, 171, 172, - 173, 291, 314, 321, 332, 374, 472, 173, 175, 176, - 291, 314, 321, 332, 378, 472, 291, 313, 296, 295, - 304, 304, 300, 300, 300, 300, 295, 386, 137, 300, - 300, 454, 364, 454, 296, 380, 451, 63, 63, 296, - 296, 316, 296, 449, 445, 445, 9, 293, 9, 481, - 296, 317, 250, 313, 299, 299, 26, 27, 28, 29, - 30, 271, 293, 299, 306, 291, 292, 300, 317, 23, - 24, 25, 27, 28, 29, 30, 32, 33, 36, 37, - 38, 39, 45, 313, 412, 416, 295, 295, 290, 330, - 328, 468, 317, 317, 317, 295, 299, 295, 299, 295, - 299, 295, 299, 317, 317, 317, 317, 317, 317, 318, - 317, 317, 319, 317, 318, 319, 317, 317, 317, 317, - 317, 317, 317, 318, 317, 417, 317, 9, 45, 317, - 45, 52, 452, 317, 43, 92, 111, 333, 459, 296, - 300, 296, 296, 295, 295, 475, 296, 296, 317, 316, - 296, 293, 355, 356, 316, 300, 300, 454, 454, 256, - 366, 366, 366, 366, 366, 366, 366, 385, 317, 139, - 140, 139, 140, 381, 350, 315, 293, 20, 315, 315, - 317, 296, 317, 304, 298, 293, 317, 317, 313, 300, - 317, 292, 300, 27, 28, 29, 30, 317, 27, 28, - 29, 317, 330, 291, 291, 296, 300, 296, 300, 317, - 317, 317, 317, 317, 317, 318, 317, 296, 300, 296, - 300, 296, 300, 296, 300, 296, 296, 300, 296, 296, - 300, 296, 300, 296, 300, 296, 300, 296, 300, 296, - 300, 296, 296, 300, 296, 9, 296, 300, 52, 452, - 299, 316, 302, 449, 449, 296, 356, 454, 295, 293, - 20, 367, 296, 296, 296, 295, 454, 386, 9, 481, - 317, 313, 300, 300, 300, 317, 296, 304, 304, 304, - 296, 291, 295, 295, 296, 300, 296, 300, 296, 300, - 296, 300, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 296, 295, 9, 300, 298, 296, - 296, 449, 454, 386, 458, 449, 301, 358, 359, 304, - 296, 293, 296, 455, 300, 317, 317, 317, 425, 423, - 295, 295, 295, 295, 424, 423, 422, 421, 419, 420, - 424, 423, 422, 421, 428, 426, 427, 417, 296, 358, - 454, 296, 295, 481, 313, 296, 296, 296, 296, 468, - 296, 317, 424, 423, 422, 421, 296, 317, 296, 296, - 317, 296, 318, 296, 317, 319, 296, 318, 319, 296, - 296, 296, 296, 296, 417, 9, 45, 296, 45, 52, - 296, 452, 364, 295, 20, 388, 449, 293, 296, 296, - 296, 296, 9, 449, 386, 40, 55, 71, 80, 94, - 95, 96, 97, 126, 127, 128, 129, 130, 131, 132, - 290, 296, 313, 296, 295, 295, 296, 256, 449, 317, - 104, 296, 296, 367, 458, 454, 20, 386, 358, 295, - 449, 296 -}; - -/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ -static const yytype_int16 yyr1[] = -{ - 0, 309, 310, 310, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 312, 312, 313, 313, 314, 314, 314, 315, 315, 316, - 316, 316, 317, 318, 318, 319, 319, 319, 320, 320, - 320, 320, 320, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 322, 322, 322, 322, 323, 323, 323, 323, - 324, 325, 326, 327, 327, 328, 329, 329, 329, 330, - 330, 330, 331, 331, 332, 332, 332, 333, 333, 333, - 333, 333, 333, 334, 334, 334, 335, 336, 336, 336, - 336, 336, 336, 337, 338, 339, 340, 341, 342, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 344, 344, 345, 345, - 346, 346, 347, 347, 348, 348, 349, 349, 350, 350, - 351, 351, 351, 351, 351, 351, 351, 352, 352, 353, - 354, 354, 355, 355, 355, 356, 356, 357, 358, 358, - 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 360, 361, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, - 363, 364, 364, 365, 365, 366, 366, 366, 366, 366, - 366, 366, 367, 367, 367, 367, 368, 368, 368, 368, - 368, 368, 368, 368, 369, 370, 370, 370, 370, 370, - 370, 371, 371, 372, 372, 372, 373, 373, 374, 374, - 374, 374, 374, 374, 374, 374, 375, 376, 376, 376, - 377, 377, 378, 378, 378, 378, 378, 378, 378, 379, - 380, 380, 381, 381, 382, 383, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 386, 386, 386, 387, 387, - 387, 387, 387, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 389, - 390, 390, 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, 392, 393, - 394, 395, 395, 396, 396, 396, 397, 398, 398, 398, - 398, 399, 399, 399, 400, 401, 402, 403, 404, 404, - 404, 405, 406, 406, 407, 407, 407, 408, 408, 409, - 409, 410, 410, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 413, 414, 414, - 415, 415, 416, 416, 416, 417, 417, 417, 417, 417, - 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, - 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, - 417, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, - 419, 419, 420, 420, 420, 421, 421, 422, 422, 423, - 423, 424, 424, 425, 425, 426, 426, 426, 427, 427, - 427, 427, 428, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 445, 445, 445, 445, 445, 446, 446, 447, - 447, 448, 448, 449, 449, 450, 450, 451, 451, 451, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 453, 453, 454, 454, 454, 454, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 456, 456, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 460, 460, 461, 461, 461, - 461, 461, 462, 462, 462, 462, 462, 462, 463, 463, - 463, 464, 464, 465, 465, 466, 466, 467, 468, 468, - 469, 469, 469, 469, 469, 469, 469, 469, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 471, 471, 472, 472, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 473, 473, 474, 474, - 475, 475, 476, 477, 478, 478, 478, 478, 478, 478, - 478, 478, 478, 478, 479, 479, 480, 480, 480, 481, - 481, 482, 482, 482, 482, 482, 482, 483, 484, 485, - 486, 486, 487, 487, 488, 488, 488, 488, 489, 490, - 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, - 492, 492, 493, 493, 493, 493, 493, 493, 493, 494, - 494, 495, 495, 495, 496, 496, 497, 497, 497, 497 -}; - -/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ -static const yytype_int8 yyr2[] = -{ - 0, 2, 0, 2, 4, 4, 3, 1, 1, 1, - 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 2, 2, 3, 2, 2, 1, 1, 1, 4, 1, - 0, 2, 1, 3, 2, 4, 6, 1, 1, 1, - 1, 3, 1, 1, 1, 1, 4, 4, 4, 4, - 4, 4, 4, 2, 3, 2, 2, 2, 1, 1, - 2, 1, 2, 4, 6, 3, 5, 7, 9, 3, - 4, 7, 1, 1, 1, 2, 0, 2, 2, 0, - 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 2, 3, 1, 2, 3, 7, 0, 2, 2, - 2, 2, 2, 3, 3, 2, 1, 4, 3, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 5, 0, 2, 0, 2, - 0, 2, 3, 1, 0, 1, 1, 3, 0, 3, - 1, 1, 1, 1, 1, 1, 4, 0, 2, 4, - 0, 2, 5, 4, 3, 0, 2, 3, 0, 1, - 5, 3, 4, 4, 4, 1, 1, 1, 1, 1, - 2, 2, 4, 13, 22, 1, 1, 5, 3, 7, - 5, 4, 7, 0, 2, 2, 2, 2, 2, 2, - 2, 5, 2, 2, 2, 2, 2, 2, 5, 0, - 2, 0, 2, 0, 3, 9, 9, 7, 7, 1, - 1, 1, 2, 2, 1, 4, 0, 1, 1, 2, - 2, 2, 2, 1, 4, 2, 5, 3, 2, 2, - 1, 4, 3, 0, 2, 2, 0, 2, 2, 2, - 2, 2, 1, 1, 1, 1, 9, 0, 2, 2, - 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, - 0, 4, 1, 3, 1, 13, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 5, 8, 6, 5, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 5, 1, 1, 1, 0, 4, - 4, 4, 4, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, - 0, 2, 2, 1, 2, 4, 5, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 4, 6, 4, - 4, 11, 1, 5, 3, 7, 5, 5, 3, 1, - 2, 2, 1, 2, 4, 4, 1, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 1, 1, 1, 4, - 4, 2, 4, 2, 0, 1, 1, 3, 1, 3, - 1, 0, 3, 5, 4, 3, 5, 5, 5, 5, - 5, 5, 2, 2, 2, 2, 2, 2, 4, 4, - 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, - 4, 4, 4, 4, 4, 4, 3, 2, 0, 1, - 1, 2, 1, 1, 1, 1, 4, 4, 5, 4, - 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, - 7, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 5, 5, 5, 4, 4, 4, 4, 4, 4, 0, - 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, - 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, - 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, - 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, - 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, - 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 2, 2, 3, 4, 2, - 2, 2, 5, 5, 7, 4, 3, 2, 3, 2, - 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, - 3, 2, 6, 7, 3, 3, 3, 6, 0, 1, - 3, 5, 6, 4, 4, 1, 3, 3, 1, 1, - 1, 1, 4, 1, 6, 6, 6, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 5, 4, 7, - 6, 7, 6, 9, 8, 3, 8, 4, 0, 2, - 0, 1, 3, 3, 0, 2, 2, 2, 3, 2, - 2, 2, 2, 2, 0, 2, 3, 1, 1, 1, - 1, 3, 8, 2, 3, 1, 1, 3, 3, 3, - 4, 6, 0, 2, 3, 1, 3, 1, 4, 3, - 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 0, 2, 2, 3, 3, 4, 2, 1, 1, 3, - 5, 0, 2, 2, 0, 2, 4, 3, 1, 1 -}; - + int i; + unsigned newsize; + YYINT *newss; + YYSTYPE *newvs; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE *newps; +#endif -enum { YYENOMEM = -2 }; + if ((newsize = data->stacksize) == 0) + newsize = YYINITSTACKSIZE; + else if (newsize >= YYMAXDEPTH) + return YYENOMEM; + else if ((newsize *= 2) > YYMAXDEPTH) + newsize = YYMAXDEPTH; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) + i = (int) (data->s_mark - data->s_base); + newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss)); + if (newss == 0) + return YYENOMEM; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab -#define YYNOMEM goto yyexhaustedlab + data->s_base = newss; + data->s_mark = newss + i; + newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); + if (newvs == 0) + return YYENOMEM; -#define YYRECOVERING() (!!yyerrstatus) + data->l_base = newvs; + data->l_mark = newvs + i; -#define YYBACKUP(Token, Value) \ - do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ - while (0) +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps)); + if (newps == 0) + return YYENOMEM; -/* Backward compatibility with an undocumented macro. - Use YYerror or YYUNDEF. */ -#define YYERRCODE YYUNDEF + data->p_base = newps; + data->p_mark = newps + i; +#endif + data->stacksize = newsize; + data->s_last = data->s_base + newsize - 1; -/* Enable debugging if requested. */ #if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - - - - -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Kind, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) -{ - FILE *yyoutput = yyo; - YY_USE (yyoutput); - if (!yyvaluep) - return; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END + if (yydebug) + fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize); +#endif + return 0; } - -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ - -static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +#if YYPURE || defined(YY_NO_LEAKS) +static void yyfreestack(YYSTACKDATA *data) { - YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - - yy_symbol_value_print (yyo, yykind, yyvaluep); - YYFPRINTF (yyo, ")"); + free(data->s_base); + free(data->l_base); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + free(data->p_base); +#endif + memset(data, 0, sizeof(*data)); } +#else +#define yyfreestack(data) /* nothing */ +#endif /* YYPURE || defined(YY_NO_LEAKS) */ +#if YYBTYACC -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +static YYParseState * +yyNewState(unsigned size) { - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ + YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState)); + if (p == NULL) return NULL; -static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, - int yyrule) -{ - int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) + p->yystack.stacksize = size; + if (size == 0) { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), - &yyvsp[(yyi + 1) - (yynrhs)]); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 + p->yystack.s_base = NULL; + p->yystack.l_base = NULL; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + p->yystack.p_base = NULL; #endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 + return p; + } + p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT)); + if (p->yystack.s_base == NULL) return NULL; + p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE)); + if (p->yystack.l_base == NULL) return NULL; + memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + p->yystack.p_base = (YYLTYPE *) malloc(size * sizeof(YYLTYPE)); + if (p->yystack.p_base == NULL) return NULL; + memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE)); #endif - - - - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ + return p; +} static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep) +yyFreeState(YYParseState *p) { - YY_USE (yyvaluep); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END + yyfreestack(&p->yystack); + free(p); } - - -/* Lookahead token kind. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - - - -/*----------. -| yyparse. | -`----------*/ +#endif /* YYBTYACC */ + +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +#if YYBTYACC +#define YYVALID do { if (yyps->save) goto yyvalid; } while(0) +#define YYVALID_NESTED do { if (yyps->save && \ + yyps->save->save == 0) goto yyvalid; } while(0) +#endif /* YYBTYACC */ int -yyparse (void) +YYPARSE_DECL() { - yy_state_fast_t yystate = 0; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; - - /* Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; - - /* The state stack: array, bottom, top. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; - - /* The semantic value stack: array, bottom, top. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; - - int yyn; - /* The return value of yyparse. */ - int yyresult; - /* Lookahead symbol kind. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; + int yym, yyn, yystate, yyresult; +#if YYBTYACC + int yynewerrflag; + YYParseState *yyerrctx = NULL; +#endif /* YYBTYACC */ +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */ +#endif +#if YYDEBUG + const char *yys; - YYDPRINTF ((stderr, "Starting parse\n")); + if ((yys = getenv("YYDEBUG")) != 0) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } + if (yydebug) + fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX); +#endif +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range)); +#endif - yychar = YYEMPTY; /* Cause a token to be read. */ +#if YYBTYACC + yyps = yyNewState(0); if (yyps == 0) goto yyenomem; + yyps->save = 0; +#endif /* YYBTYACC */ + yym = 0; + /* yyn is set below */ + yynerrs = 0; + yyerrflag = 0; + yychar = YYEMPTY; + yystate = 0; + +#if YYPURE + memset(&yystack, 0, sizeof(yystack)); +#endif - goto yysetstate; + if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; + yystack.s_mark = yystack.s_base; + yystack.l_mark = yystack.l_base; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark = yystack.p_base; +#endif + yystate = 0; + *yystack.s_mark = 0; +yyloop: + if ((yyn = yydefred[yystate]) != 0) goto yyreduce; + if (yychar < 0) + { +#if YYBTYACC + do { + if (yylvp < yylve) + { + /* we're currently re-reading tokens */ + yylval = *yylvp++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylloc = *yylpp++; +#endif + yychar = *yylexp++; + break; + } + if (yyps->save) + { + /* in trial mode; save scanner results for future parse attempts */ + if (yylvp == yylvlim) + { /* Enlarge lexical value queue */ + size_t p = (size_t) (yylvp - yylvals); + size_t s = (size_t) (yylvlim - yylvals); + + s += YYLVQUEUEGROWTH; + if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem; + if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem; +#endif + yylvp = yylve = yylvals + p; + yylvlim = yylvals + s; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpe = yylpsns + p; + yylplim = yylpsns + s; +#endif + yylexp = yylexemes + p; + } + *yylexp = (YYINT) YYLEX; + *yylvp++ = yylval; + yylve++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *yylpp++ = yylloc; + yylpe++; +#endif + yychar = *yylexp++; + break; + } + /* normal operation, no conflict encountered */ +#endif /* YYBTYACC */ + yychar = YYLEX; +#if YYBTYACC + } while (0); +#endif /* YYBTYACC */ + if (yychar < 0) yychar = YYEOF; +#if YYDEBUG + if (yydebug) + { + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; + fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)", + YYDEBUGSTR, yydepth, yystate, yychar, yys); +#ifdef YYSTYPE_TOSTRING +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ + fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval)); +#endif + fputc('\n', stderr); + } +#endif + } +#if YYBTYACC -/*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | -`------------------------------------------------------------*/ -yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; + /* Do we have a conflict? */ + if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) + { + YYINT ctry; + if (yypath) + { + YYParseState *save; +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n", + YYDEBUGSTR, yydepth, yystate); +#endif + /* Switch to the next conflict context */ + save = yypath; + yypath = save->save; + save->save = NULL; + ctry = save->ctry; + if (save->state != yystate) YYABORT; + yyFreeState(save); -/*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); + } + else + { - if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - YYNOMEM; -#else + /* Unresolved conflict - start/continue trial parse */ + YYParseState *save; +#if YYDEBUG + if (yydebug) + { + fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate); + if (yyps->save) + fputs("ALREADY in conflict, continuing trial parse.\n", stderr); + else + fputs("Starting trial parse.\n", stderr); + } +#endif + save = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1)); + if (save == NULL) goto yyenomem; + save->save = yyps->save; + save->state = yystate; + save->errflag = yyerrflag; + save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base); + memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); + save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base); + memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base); + memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); +#endif + ctry = yytable[yyn]; + if (yyctable[ctry] == -1) + { +#if YYDEBUG + if (yydebug && yychar >= YYEOF) + fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth); +#endif + ctry++; + } + save->ctry = ctry; + if (yyps->save == NULL) + { + /* If this is a first conflict in the stack, start saving lexemes */ + if (!yylexemes) + { + yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT)); + if (yylexemes == NULL) goto yyenomem; + yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE)); + if (yylvals == NULL) goto yyenomem; + yylvlim = yylvals + YYLVQUEUEGROWTH; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpsns = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE)); + if (yylpsns == NULL) goto yyenomem; + yylplim = yylpsns + YYLVQUEUEGROWTH; +#endif + } + if (yylvp == yylve) + { + yylvp = yylve = yylvals; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpe = yylpsns; +#endif + yylexp = yylexemes; + if (yychar >= YYEOF) + { + *yylve++ = yylval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *yylpe++ = yylloc; +#endif + *yylexp = (YYINT) yychar; + yychar = YYEMPTY; + } + } + } + if (yychar >= YYEOF) + { + yylvp--; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp--; +#endif + yylexp--; + yychar = YYEMPTY; + } + save->lexeme = (int) (yylvp - yylvals); + yyps->save = save; + } + if (yytable[yyn] == ctry) + { +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n", + YYDEBUGSTR, yydepth, yystate, yyctable[ctry]); +#endif + if (yychar < 0) + { + yylvp++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp++; +#endif + yylexp++; + } + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) + goto yyoverflow; + yystate = yyctable[ctry]; + *++yystack.s_mark = (YYINT) yystate; + *++yystack.l_mark = yylval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *++yystack.p_mark = yylloc; +#endif + yychar = YYEMPTY; + if (yyerrflag > 0) --yyerrflag; + goto yyloop; + } + else + { + yyn = yyctable[ctry]; + goto yyreduce; + } + } /* End of code dealing with conflicts */ +#endif /* YYBTYACC */ + if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) { - /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; - -# if defined yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; - } -# else /* defined YYSTACK_RELOCATE */ - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - YYNOMEM; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); - if (! yyptr) - YYNOMEM; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n", + YYDEBUGSTR, yydepth, yystate, yytable[yyn]); +#endif + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; + yystate = yytable[yyn]; + *++yystack.s_mark = yytable[yyn]; + *++yystack.l_mark = yylval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *++yystack.p_mark = yylloc; +#endif + yychar = YYEMPTY; + if (yyerrflag > 0) --yyerrflag; + goto yyloop; } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ + if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) + { + yyn = yytable[yyn]; + goto yyreduce; + } + if (yyerrflag != 0) goto yyinrecovery; +#if YYBTYACC - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; + yynewerrflag = 1; + goto yyerrhandler; + goto yyerrlab; /* redundant goto avoids 'unused label' warning */ - /* Not known => get a lookahead token if don't already have one. */ +yyerrlab: + /* explicit YYERROR from an action -- pop the rhs of the rule reduced + * before looking for error recovery */ + yystack.s_mark -= yym; + yystate = *yystack.s_mark; + yystack.l_mark -= yym; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark -= yym; +#endif - /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ - if (yychar == YYEMPTY) + yynewerrflag = 0; +yyerrhandler: + while (yyps->save) { - YYDPRINTF ((stderr, "Reading a token\n")); - yychar = yylex (); + int ctry; + YYParseState *save = yyps->save; +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n", + YYDEBUGSTR, yydepth, yystate, yyps->save->state, + (int)(yylvp - yylvals - yyps->save->lexeme)); +#endif + /* Memorize most forward-looking error state in case it's really an error. */ + if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals) + { + /* Free old saved error context state */ + if (yyerrctx) yyFreeState(yyerrctx); + /* Create and fill out new saved error context state */ + yyerrctx = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1)); + if (yyerrctx == NULL) goto yyenomem; + yyerrctx->save = yyps->save; + yyerrctx->state = yystate; + yyerrctx->errflag = yyerrflag; + yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base); + memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); + yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base); + memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base); + memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); +#endif + yyerrctx->lexeme = (int) (yylvp - yylvals); + } + yylvp = yylvals + save->lexeme; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpsns + save->lexeme; +#endif + yylexp = yylexemes + save->lexeme; + yychar = YYEMPTY; + yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base); + memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); + yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base); + memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base); + memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); +#endif + ctry = ++save->ctry; + yystate = save->state; + /* We tried shift, try reduce now */ + if ((yyn = yyctable[ctry]) >= 0) goto yyreduce; + yyps->save = save->save; + save->save = NULL; + yyFreeState(save); + + /* Nothing left on the stack -- error */ + if (!yyps->save) + { +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n", + YYPREFIX, yydepth); +#endif + /* Restore state as it was in the most forward-advanced error */ + yylvp = yylvals + yyerrctx->lexeme; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpsns + yyerrctx->lexeme; +#endif + yylexp = yylexemes + yyerrctx->lexeme; + yychar = yylexp[-1]; + yylval = yylvp[-1]; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylloc = yylpp[-1]; +#endif + yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base); + memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); + yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base); + memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base); + memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); +#endif + yystate = yyerrctx->state; + yyFreeState(yyerrctx); + yyerrctx = NULL; + } + yynewerrflag = 1; } + if (yynewerrflag == 0) goto yyinrecovery; +#endif /* YYBTYACC */ + + YYERROR_CALL("syntax error"); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */ +#endif + +#if !YYBTYACC + goto yyerrlab; /* redundant goto avoids 'unused label' warning */ +yyerrlab: +#endif + ++yynerrs; - if (yychar <= YYEOF) +yyinrecovery: + if (yyerrflag < 3) { - yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); + yyerrflag = 3; + for (;;) + { + if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE) + { +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n", + YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]); +#endif + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; + yystate = yytable[yyn]; + *++yystack.s_mark = yytable[yyn]; + *++yystack.l_mark = yylval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + /* lookahead position is error end position */ + yyerror_loc_range[2] = yylloc; + YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */ + *++yystack.p_mark = yyloc; +#endif + goto yyloop; + } + else + { +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: error recovery discarding state %d\n", + YYDEBUGSTR, yydepth, *yystack.s_mark); +#endif + if (yystack.s_mark <= yystack.s_base) goto yyabort; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + /* the current TOS position is the error start position */ + yyerror_loc_range[1] = *yystack.p_mark; +#endif +#if defined(YYDESTRUCT_CALL) +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYDESTRUCT_CALL("error: discarding state", + yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark); +#else + YYDESTRUCT_CALL("error: discarding state", + yystos[*yystack.s_mark], yystack.l_mark); +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ +#endif /* defined(YYDESTRUCT_CALL) */ + --yystack.s_mark; + --yystack.l_mark; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + --yystack.p_mark; +#endif + } + } } - else if (yychar == YYerror) + else { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = YYUNDEF; - yytoken = YYSYMBOL_YYerror; - goto yyerrlab1; + if (yychar == YYEOF) goto yyabort; +#if YYDEBUG + if (yydebug) + { + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; + fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n", + YYDEBUGSTR, yydepth, yystate, yychar, yys); + } +#endif +#if defined(YYDESTRUCT_CALL) +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc); +#else + YYDESTRUCT_CALL("error: discarding token", yychar, &yylval); +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ +#endif /* defined(YYDESTRUCT_CALL) */ + yychar = YYEMPTY; + goto yyloop; } - else + +yyreduce: + yym = yylen[yyn]; +#if YYDEBUG + if (yydebug) { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)", + YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]); +#ifdef YYSTYPE_TOSTRING +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ + if (yym > 0) + { + int i; + fputc('<', stderr); + for (i = yym; i > 0; i--) + { + if (i != yym) fputs(", ", stderr); + fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]], + yystack.l_mark[1-i]), stderr); + } + fputc('>', stderr); + } +#endif + fputc('\n', stderr); } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) +#endif + if (yym > 0) + yyval = yystack.l_mark[1-yym]; + else + memset(&yyval, 0, sizeof yyval); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + + /* Perform position reduction */ + memset(&yyloc, 0, sizeof(yyloc)); +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; + YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym); + /* just in case YYERROR is invoked within the action, save + the start of the rhs as the error start position */ + yyerror_loc_range[1] = yystack.p_mark[1-yym]; } +#endif - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) + switch (yyn) { - case 4: /* decl: classHead '{' classDecls '}' */ +case 3: #line 195 "asmparse.y" - { PASM->EndClass(); } -#line 3875 "asmparse.cpp" - break; - - case 5: /* decl: nameSpaceHead '{' decls '}' */ + { PASM->EndClass(); } +#line 7741 "asmparse.cpp" +break; +case 4: #line 196 "asmparse.y" - { PASM->EndNameSpace(); } -#line 3881 "asmparse.cpp" - break; - - case 6: /* decl: methodHead methodDecls '}' */ + { PASM->EndNameSpace(); } +#line 7746 "asmparse.cpp" +break; +case 5: #line 197 "asmparse.y" - { if(PASM->m_pCurMethod->m_ulLines[1] ==0) - { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; - PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} + { if(PASM->m_pCurMethod->m_ulLines[1] ==0) + { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; + PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 3890 "asmparse.cpp" - break; - - case 13: /* decl: assemblyHead '{' assemblyDecls '}' */ +#line 7754 "asmparse.cpp" +break; +case 12: #line 207 "asmparse.y" - { PASMM->EndAssembly(); } -#line 3896 "asmparse.cpp" - break; - - case 14: /* decl: assemblyRefHead '{' assemblyRefDecls '}' */ + { PASMM->EndAssembly(); } +#line 7759 "asmparse.cpp" +break; +case 13: #line 208 "asmparse.y" - { PASMM->EndAssembly(); } -#line 3902 "asmparse.cpp" - break; - - case 15: /* decl: exptypeHead '{' exptypeDecls '}' */ + { PASMM->EndAssembly(); } +#line 7764 "asmparse.cpp" +break; +case 14: #line 209 "asmparse.y" - { PASMM->EndComType(); } -#line 3908 "asmparse.cpp" - break; - - case 16: /* decl: manifestResHead '{' manifestResDecls '}' */ + { PASMM->EndComType(); } +#line 7769 "asmparse.cpp" +break; +case 15: #line 210 "asmparse.y" - { PASMM->EndManifestRes(); } -#line 3914 "asmparse.cpp" - break; - - case 20: /* decl: _SUBSYSTEM int32 */ + { PASMM->EndManifestRes(); } +#line 7774 "asmparse.cpp" +break; +case 19: #line 214 "asmparse.y" - { -#ifdef _PREFAST_ -#pragma warning(push) -#pragma warning(disable:22011) // Suppress PREFast warning about integer overflow/underflow -#endif - PASM->m_dwSubsystem = (yyvsp[0].int32); -#ifdef _PREFAST_ -#pragma warning(pop) -#endif + { +#ifdef _PREFAST_ +#pragma warning(push) +#pragma warning(disable:22011) /* Suppress PREFast warning about integer overflow/underflow */ +#endif + PASM->m_dwSubsystem = yystack.l_mark[0].int32; +#ifdef _PREFAST_ +#pragma warning(pop) +#endif } -#line 3929 "asmparse.cpp" - break; - - case 21: /* decl: _CORFLAGS int32 */ +#line 7788 "asmparse.cpp" +break; +case 20: #line 224 "asmparse.y" - { PASM->m_dwComImageFlags = (yyvsp[0].int32); } -#line 3935 "asmparse.cpp" - break; - - case 22: /* decl: _FILE ALIGNMENT_ int32 */ + { PASM->m_dwComImageFlags = yystack.l_mark[0].int32; } +#line 7793 "asmparse.cpp" +break; +case 21: #line 225 "asmparse.y" - { PASM->m_dwFileAlignment = (yyvsp[0].int32); - if(((yyvsp[0].int32) & ((yyvsp[0].int32) - 1))||((yyvsp[0].int32) < 0x200)||((yyvsp[0].int32) > 0x10000)) + { PASM->m_dwFileAlignment = yystack.l_mark[0].int32; + if((yystack.l_mark[0].int32 & (yystack.l_mark[0].int32 - 1))||(yystack.l_mark[0].int32 < 0x200)||(yystack.l_mark[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 3943 "asmparse.cpp" - break; - - case 23: /* decl: _IMAGEBASE int64 */ +#line 7800 "asmparse.cpp" +break; +case 22: #line 228 "asmparse.y" - { PASM->m_stBaseAddress = (ULONGLONG)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); - if(PASM->m_stBaseAddress & 0xFFFF) + { PASM->m_stBaseAddress = (ULONGLONG)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; + if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 3951 "asmparse.cpp" - break; - - case 24: /* decl: _STACKRESERVE int64 */ +#line 7807 "asmparse.cpp" +break; +case 23: #line 231 "asmparse.y" - { PASM->m_stSizeOfStackReserve = (size_t)(*((yyvsp[0].int64))); delete (yyvsp[0].int64); } -#line 3957 "asmparse.cpp" - break; - - case 29: /* decl: _MSCORLIB */ + { PASM->m_stSizeOfStackReserve = (size_t)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; } +#line 7812 "asmparse.cpp" +break; +case 28: #line 236 "asmparse.y" - { PASM->m_fIsMscorlib = TRUE; } -#line 3963 "asmparse.cpp" - break; - - case 32: /* compQstring: QSTRING */ + { PASM->m_fIsMscorlib = TRUE; } +#line 7817 "asmparse.cpp" +break; +case 31: #line 243 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 3969 "asmparse.cpp" - break; - - case 33: /* compQstring: compQstring '+' QSTRING */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 7822 "asmparse.cpp" +break; +case 32: #line 244 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 3975 "asmparse.cpp" - break; - - case 34: /* languageDecl: _LANGUAGE SQSTRING */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 7827 "asmparse.cpp" +break; +case 33: #line 247 "asmparse.y" - { LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLang)); } -#line 3981 "asmparse.cpp" - break; - - case 35: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING */ + { LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLang)); } +#line 7832 "asmparse.cpp" +break; +case 34: #line 248 "asmparse.y" - { LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLang)); - LPCSTRToGuid((yyvsp[0].string),&(PASM->m_guidLangVendor));} -#line 3988 "asmparse.cpp" - break; - - case 36: /* languageDecl: _LANGUAGE SQSTRING ',' SQSTRING ',' SQSTRING */ + { LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLang)); + LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLangVendor));} +#line 7838 "asmparse.cpp" +break; +case 35: #line 250 "asmparse.y" - { LPCSTRToGuid((yyvsp[-4].string),&(PASM->m_guidLang)); - LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidLangVendor)); - LPCSTRToGuid((yyvsp[-2].string),&(PASM->m_guidDoc));} -#line 3996 "asmparse.cpp" - break; - - case 37: /* id: ID */ + { LPCSTRToGuid(yystack.l_mark[-4].string,&(PASM->m_guidLang)); + LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLangVendor)); + LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidDoc));} +#line 7845 "asmparse.cpp" +break; +case 36: #line 255 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 4002 "asmparse.cpp" - break; - - case 38: /* id: SQSTRING */ + { yyval.string = yystack.l_mark[0].string; } +#line 7850 "asmparse.cpp" +break; +case 37: #line 256 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 4008 "asmparse.cpp" - break; - - case 39: /* dottedName: id */ + { yyval.string = yystack.l_mark[0].string; } +#line 7855 "asmparse.cpp" +break; +case 38: #line 259 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 4014 "asmparse.cpp" - break; - - case 40: /* dottedName: DOTTEDNAME */ + { yyval.string = yystack.l_mark[0].string; } +#line 7860 "asmparse.cpp" +break; +case 39: #line 260 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 4020 "asmparse.cpp" - break; - - case 41: /* dottedName: dottedName '.' dottedName */ + { yyval.string = yystack.l_mark[0].string; } +#line 7865 "asmparse.cpp" +break; +case 40: #line 261 "asmparse.y" - { (yyval.string) = newStringWDel((yyvsp[-2].string), '.', (yyvsp[0].string)); } -#line 4026 "asmparse.cpp" - break; - - case 42: /* int32: INT32_T */ + { yyval.string = newStringWDel(yystack.l_mark[-2].string, '.', yystack.l_mark[0].string); } +#line 7870 "asmparse.cpp" +break; +case 41: #line 264 "asmparse.y" - { (yyval.int32) = (yyvsp[0].int32); } -#line 4032 "asmparse.cpp" - break; - - case 43: /* int64: INT64_T */ + { yyval.int32 = yystack.l_mark[0].int32; } +#line 7875 "asmparse.cpp" +break; +case 42: #line 267 "asmparse.y" - { (yyval.int64) = (yyvsp[0].int64); } -#line 4038 "asmparse.cpp" - break; - - case 44: /* int64: INT32_T */ + { yyval.int64 = yystack.l_mark[0].int64; } +#line 7880 "asmparse.cpp" +break; +case 43: #line 268 "asmparse.y" - { (yyval.int64) = neg ? new __int64((yyvsp[0].int32)) : new __int64((unsigned)(yyvsp[0].int32)); } -#line 4044 "asmparse.cpp" - break; - - case 45: /* float64: FLOAT64 */ + { yyval.int64 = neg ? new __int64(yystack.l_mark[0].int32) : new __int64((unsigned)yystack.l_mark[0].int32); } +#line 7885 "asmparse.cpp" +break; +case 44: #line 271 "asmparse.y" - { (yyval.float64) = (yyvsp[0].float64); } -#line 4050 "asmparse.cpp" - break; - - case 46: /* float64: FLOAT32_ '(' int32 ')' */ + { yyval.float64 = yystack.l_mark[0].float64; } +#line 7890 "asmparse.cpp" +break; +case 45: #line 272 "asmparse.y" - { float f; *((__int32*) (&f)) = (yyvsp[-1].int32); (yyval.float64) = new double(f); } -#line 4056 "asmparse.cpp" - break; - - case 47: /* float64: FLOAT64_ '(' int64 ')' */ + { float f; *((__int32*) (&f)) = yystack.l_mark[-1].int32; yyval.float64 = new double(f); } +#line 7895 "asmparse.cpp" +break; +case 46: #line 273 "asmparse.y" - { (yyval.float64) = (double*) (yyvsp[-1].int64); } -#line 4062 "asmparse.cpp" - break; - - case 48: /* typedefDecl: _TYPEDEF type AS_ dottedName */ + { yyval.float64 = (double*) yystack.l_mark[-1].int64; } +#line 7900 "asmparse.cpp" +break; +case 47: #line 277 "asmparse.y" - { PASM->AddTypeDef((yyvsp[-2].binstr),(yyvsp[0].string)); } -#line 4068 "asmparse.cpp" - break; - - case 49: /* typedefDecl: _TYPEDEF className AS_ dottedName */ + { PASM->AddTypeDef(yystack.l_mark[-2].binstr,yystack.l_mark[0].string); } +#line 7905 "asmparse.cpp" +break; +case 48: #line 278 "asmparse.y" - { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } -#line 4074 "asmparse.cpp" - break; - - case 50: /* typedefDecl: _TYPEDEF memberRef AS_ dottedName */ + { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } +#line 7910 "asmparse.cpp" +break; +case 49: #line 279 "asmparse.y" - { PASM->AddTypeDef((yyvsp[-2].token),(yyvsp[0].string)); } -#line 4080 "asmparse.cpp" - break; - - case 51: /* typedefDecl: _TYPEDEF customDescr AS_ dottedName */ + { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } +#line 7915 "asmparse.cpp" +break; +case 50: #line 280 "asmparse.y" - { (yyvsp[-2].cad)->tkOwner = 0; PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } -#line 4086 "asmparse.cpp" - break; - - case 52: /* typedefDecl: _TYPEDEF customDescrWithOwner AS_ dottedName */ + { yystack.l_mark[-2].cad->tkOwner = 0; PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } +#line 7920 "asmparse.cpp" +break; +case 51: #line 281 "asmparse.y" - { PASM->AddTypeDef((yyvsp[-2].cad),(yyvsp[0].string)); } -#line 4092 "asmparse.cpp" - break; - - case 53: /* compControl: P_DEFINE dottedName */ + { PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } +#line 7925 "asmparse.cpp" +break; +case 52: #line 286 "asmparse.y" - { DefineVar((yyvsp[0].string), NULL); } -#line 4098 "asmparse.cpp" - break; - - case 54: /* compControl: P_DEFINE dottedName compQstring */ + { DefineVar(yystack.l_mark[0].string, NULL); } +#line 7930 "asmparse.cpp" +break; +case 53: #line 287 "asmparse.y" - { DefineVar((yyvsp[-1].string), (yyvsp[0].binstr)); } -#line 4104 "asmparse.cpp" - break; - - case 55: /* compControl: P_UNDEF dottedName */ + { DefineVar(yystack.l_mark[-1].string, yystack.l_mark[0].binstr); } +#line 7935 "asmparse.cpp" +break; +case 54: #line 288 "asmparse.y" - { UndefVar((yyvsp[0].string)); } -#line 4110 "asmparse.cpp" - break; - - case 56: /* compControl: P_IFDEF dottedName */ + { UndefVar(yystack.l_mark[0].string); } +#line 7940 "asmparse.cpp" +break; +case 55: #line 289 "asmparse.y" - { SkipToken = !IsVarDefined((yyvsp[0].string)); - IfEndif++; + { SkipToken = !IsVarDefined(yystack.l_mark[0].string); + IfEndif++; } -#line 4118 "asmparse.cpp" - break; - - case 57: /* compControl: P_IFNDEF dottedName */ +#line 7947 "asmparse.cpp" +break; +case 56: #line 292 "asmparse.y" - { SkipToken = IsVarDefined((yyvsp[0].string)); - IfEndif++; + { SkipToken = IsVarDefined(yystack.l_mark[0].string); + IfEndif++; } -#line 4126 "asmparse.cpp" - break; - - case 58: /* compControl: P_ELSE */ +#line 7954 "asmparse.cpp" +break; +case 57: #line 295 "asmparse.y" - { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 4132 "asmparse.cpp" - break; - - case 59: /* compControl: P_ENDIF */ + { if(IfEndif == 1) SkipToken = !SkipToken;} +#line 7959 "asmparse.cpp" +break; +case 58: #line 296 "asmparse.y" - { if(IfEndif == 0) - PASM->report->error("Unmatched #endif\n"); - else IfEndif--; + { if(IfEndif == 0) + PASM->report->error("Unmatched #endif\n"); + else IfEndif--; } -#line 4141 "asmparse.cpp" - break; - - case 60: /* compControl: P_INCLUDE QSTRING */ +#line 7967 "asmparse.cpp" +break; +case 59: #line 300 "asmparse.y" - { _ASSERTE(!"yylex should have dealt with this"); } -#line 4147 "asmparse.cpp" - break; - - case 61: /* compControl: ';' */ + { _ASSERTE(!"yylex should have dealt with this"); } +#line 7972 "asmparse.cpp" +break; +case 60: #line 301 "asmparse.y" - { } -#line 4153 "asmparse.cpp" - break; - - case 62: /* customDescr: _CUSTOM customType */ + { } +#line 7977 "asmparse.cpp" +break; +case 61: #line 305 "asmparse.y" - { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[0].token), NULL); } -#line 4159 "asmparse.cpp" - break; - - case 63: /* customDescr: _CUSTOM customType '=' compQstring */ + { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[0].token, NULL); } +#line 7982 "asmparse.cpp" +break; +case 62: #line 306 "asmparse.y" - { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].token), (yyvsp[0].binstr)); } -#line 4165 "asmparse.cpp" - break; - - case 64: /* customDescr: _CUSTOM customType '=' '{' customBlobDescr '}' */ + { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } +#line 7987 "asmparse.cpp" +break; +case 63: #line 307 "asmparse.y" - { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 4171 "asmparse.cpp" - break; - - case 65: /* customDescr: customHead bytes ')' */ + { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } +#line 7992 "asmparse.cpp" +break; +case 64: #line 308 "asmparse.y" - { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } -#line 4177 "asmparse.cpp" - break; - - case 66: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType */ + { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } +#line 7997 "asmparse.cpp" +break; +case 65: #line 311 "asmparse.y" - { (yyval.cad) = new CustomDescr((yyvsp[-2].token), (yyvsp[0].token), NULL); } -#line 4183 "asmparse.cpp" - break; - - case 67: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' compQstring */ + { yyval.cad = new CustomDescr(yystack.l_mark[-2].token, yystack.l_mark[0].token, NULL); } +#line 8002 "asmparse.cpp" +break; +case 66: #line 312 "asmparse.y" - { (yyval.cad) = new CustomDescr((yyvsp[-4].token), (yyvsp[-2].token), (yyvsp[0].binstr)); } -#line 4189 "asmparse.cpp" - break; - - case 68: /* customDescrWithOwner: _CUSTOM '(' ownerType ')' customType '=' '{' customBlobDescr '}' */ + { yyval.cad = new CustomDescr(yystack.l_mark[-4].token, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } +#line 8007 "asmparse.cpp" +break; +case 67: #line 314 "asmparse.y" - { (yyval.cad) = new CustomDescr((yyvsp[-6].token), (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 4195 "asmparse.cpp" - break; - - case 69: /* customDescrWithOwner: customHeadWithOwner bytes ')' */ + { yyval.cad = new CustomDescr(yystack.l_mark[-6].token, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } +#line 8012 "asmparse.cpp" +break; +case 68: #line 315 "asmparse.y" - { (yyval.cad) = new CustomDescr(PASM->m_tkCurrentCVOwner, (yyvsp[-2].int32), (yyvsp[-1].binstr)); } -#line 4201 "asmparse.cpp" - break; - - case 70: /* customHead: _CUSTOM customType '=' '(' */ + { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } +#line 8017 "asmparse.cpp" +break; +case 69: #line 318 "asmparse.y" - { (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } -#line 4207 "asmparse.cpp" - break; - - case 71: /* customHeadWithOwner: _CUSTOM '(' ownerType ')' customType '=' '(' */ + { yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } +#line 8022 "asmparse.cpp" +break; +case 70: #line 322 "asmparse.y" - { PASM->m_pCustomDescrList = NULL; - PASM->m_tkCurrentCVOwner = (yyvsp[-4].token); - (yyval.int32) = (yyvsp[-2].token); bParsingByteArray = TRUE; } -#line 4215 "asmparse.cpp" - break; - - case 72: /* customType: methodRef */ + { PASM->m_pCustomDescrList = NULL; + PASM->m_tkCurrentCVOwner = yystack.l_mark[-4].token; + yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } +#line 8029 "asmparse.cpp" +break; +case 71: #line 327 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); } -#line 4221 "asmparse.cpp" - break; - - case 73: /* ownerType: typeSpec */ + { yyval.token = yystack.l_mark[0].token; } +#line 8034 "asmparse.cpp" +break; +case 72: #line 330 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); } -#line 4227 "asmparse.cpp" - break; - - case 74: /* ownerType: memberRef */ + { yyval.token = yystack.l_mark[0].token; } +#line 8039 "asmparse.cpp" +break; +case 73: #line 331 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); } -#line 4233 "asmparse.cpp" - break; - - case 75: /* customBlobDescr: customBlobArgs customBlobNVPairs */ + { yyval.token = yystack.l_mark[0].token; } +#line 8044 "asmparse.cpp" +break; +case 74: #line 335 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt16(VAL16(nCustomBlobNVPairs)); - (yyval.binstr)->append((yyvsp[0].binstr)); + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); + yyval.binstr->append(yystack.l_mark[0].binstr); nCustomBlobNVPairs = 0; } -#line 4242 "asmparse.cpp" - break; - - case 76: /* customBlobArgs: %empty */ +#line 8052 "asmparse.cpp" +break; +case 75: #line 341 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt16(VAL16(0x0001)); } -#line 4248 "asmparse.cpp" - break; - - case 77: /* customBlobArgs: customBlobArgs serInit */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } +#line 8057 "asmparse.cpp" +break; +case 76: #line 342 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); } -#line 4255 "asmparse.cpp" - break; - - case 78: /* customBlobArgs: customBlobArgs compControl */ + { yyval.binstr = yystack.l_mark[-1].binstr; + AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); } +#line 8063 "asmparse.cpp" +break; +case 77: #line 344 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 4261 "asmparse.cpp" - break; - - case 79: /* customBlobNVPairs: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 8068 "asmparse.cpp" +break; +case 78: #line 347 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 4267 "asmparse.cpp" - break; - - case 80: /* customBlobNVPairs: customBlobNVPairs fieldOrProp serializType dottedName '=' serInit */ + { yyval.binstr = new BinStr(); } +#line 8073 "asmparse.cpp" +break; +case 79: #line 349 "asmparse.y" - { (yyval.binstr) = (yyvsp[-5].binstr); (yyval.binstr)->appendInt8((yyvsp[-4].int32)); - (yyval.binstr)->append((yyvsp[-3].binstr)); - AppendStringWithLength((yyval.binstr),(yyvsp[-2].string)); - AppendFieldToCustomBlob((yyval.binstr),(yyvsp[0].binstr)); + { yyval.binstr = yystack.l_mark[-5].binstr; yyval.binstr->appendInt8(yystack.l_mark[-4].int32); + yyval.binstr->append(yystack.l_mark[-3].binstr); + AppendStringWithLength(yyval.binstr,yystack.l_mark[-2].string); + AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); nCustomBlobNVPairs++; } -#line 4277 "asmparse.cpp" - break; - - case 81: /* customBlobNVPairs: customBlobNVPairs compControl */ +#line 8082 "asmparse.cpp" +break; +case 80: #line 354 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 4283 "asmparse.cpp" - break; - - case 82: /* fieldOrProp: FIELD_ */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 8087 "asmparse.cpp" +break; +case 81: #line 357 "asmparse.y" - { (yyval.int32) = SERIALIZATION_TYPE_FIELD; } -#line 4289 "asmparse.cpp" - break; - - case 83: /* fieldOrProp: PROPERTY_ */ + { yyval.int32 = SERIALIZATION_TYPE_FIELD; } +#line 8092 "asmparse.cpp" +break; +case 82: #line 358 "asmparse.y" - { (yyval.int32) = SERIALIZATION_TYPE_PROPERTY; } -#line 4295 "asmparse.cpp" - break; - - case 84: /* customAttrDecl: customDescr */ + { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } +#line 8097 "asmparse.cpp" +break; +case 83: #line 361 "asmparse.y" - { if((yyvsp[0].cad)->tkOwner && !(yyvsp[0].cad)->tkInterfacePair) - PASM->DefineCV((yyvsp[0].cad)); - else if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); } -#line 4304 "asmparse.cpp" - break; - - case 85: /* customAttrDecl: customDescrWithOwner */ + { if(yystack.l_mark[0].cad->tkOwner && !yystack.l_mark[0].cad->tkInterfacePair) + PASM->DefineCV(yystack.l_mark[0].cad); + else if(PASM->m_pCustomDescrList) + PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } +#line 8105 "asmparse.cpp" +break; +case 84: #line 365 "asmparse.y" - { PASM->DefineCV((yyvsp[0].cad)); } -#line 4310 "asmparse.cpp" - break; - - case 86: /* customAttrDecl: TYPEDEF_CA */ + { PASM->DefineCV(yystack.l_mark[0].cad); } +#line 8110 "asmparse.cpp" +break; +case 85: #line 366 "asmparse.y" - { CustomDescr* pNew = new CustomDescr((yyvsp[0].tdd)->m_pCA); - if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; - if(pNew->tkOwner) - PASM->DefineCV(pNew); - else if(PASM->m_pCustomDescrList) + { CustomDescr* pNew = new CustomDescr(yystack.l_mark[0].tdd->m_pCA); + if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; + if(pNew->tkOwner) + PASM->DefineCV(pNew); + else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 4321 "asmparse.cpp" - break; - - case 87: /* serializType: simpleType */ +#line 8120 "asmparse.cpp" +break; +case 86: #line 374 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 4327 "asmparse.cpp" - break; - - case 88: /* serializType: TYPE_ */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 8125 "asmparse.cpp" +break; +case 87: #line 375 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 4333 "asmparse.cpp" - break; - - case 89: /* serializType: OBJECT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } +#line 8130 "asmparse.cpp" +break; +case 88: #line 376 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 4339 "asmparse.cpp" - break; - - case 90: /* serializType: ENUM_ CLASS_ SQSTRING */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } +#line 8135 "asmparse.cpp" +break; +case 89: #line 377 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); } -#line 4346 "asmparse.cpp" - break; - - case 91: /* serializType: ENUM_ className */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); } +#line 8141 "asmparse.cpp" +break; +case 90: #line 379 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token))); } -#line 4353 "asmparse.cpp" - break; - - case 92: /* serializType: serializType '[' ']' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token)); } +#line 8147 "asmparse.cpp" +break; +case 91: #line 381 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 4359 "asmparse.cpp" - break; - - case 93: /* moduleHead: _MODULE */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 8152 "asmparse.cpp" +break; +case 92: #line 386 "asmparse.y" - { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 4365 "asmparse.cpp" - break; - - case 94: /* moduleHead: _MODULE dottedName */ + { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } +#line 8157 "asmparse.cpp" +break; +case 93: #line 387 "asmparse.y" - { PASMM->SetModuleName((yyvsp[0].string)); PASM->m_tkCurrentCVOwner=1; } -#line 4371 "asmparse.cpp" - break; - - case 95: /* moduleHead: _MODULE EXTERN_ dottedName */ + { PASMM->SetModuleName(yystack.l_mark[0].string); PASM->m_tkCurrentCVOwner=1; } +#line 8162 "asmparse.cpp" +break; +case 94: #line 388 "asmparse.y" - { BinStr* pbs = new BinStr(); - unsigned L = (unsigned)strlen((yyvsp[0].string)); - memcpy((char*)(pbs->getBuff(L)),(yyvsp[0].string),L); + { BinStr* pbs = new BinStr(); + unsigned L = (unsigned)strlen(yystack.l_mark[0].string); + memcpy((char*)(pbs->getBuff(L)),yystack.l_mark[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 4380 "asmparse.cpp" - break; - - case 96: /* vtfixupDecl: _VTFIXUP '[' int32 ']' vtfixupAttr AT_ id */ +#line 8170 "asmparse.cpp" +break; +case 95: #line 395 "asmparse.y" - { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ - PASM->m_VTFList.PUSH(new VTFEntry((USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (yyvsp[0].string))); } -#line 4387 "asmparse.cpp" - break; - - case 97: /* vtfixupAttr: %empty */ + { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ + PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, yystack.l_mark[0].string)); } +#line 8176 "asmparse.cpp" +break; +case 96: #line 399 "asmparse.y" - { (yyval.int32) = 0; } -#line 4393 "asmparse.cpp" - break; - - case 98: /* vtfixupAttr: vtfixupAttr INT32_ */ + { yyval.int32 = 0; } +#line 8181 "asmparse.cpp" +break; +case 97: #line 400 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_32BIT; } -#line 4399 "asmparse.cpp" - break; - - case 99: /* vtfixupAttr: vtfixupAttr INT64_ */ + { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_32BIT; } +#line 8186 "asmparse.cpp" +break; +case 98: #line 401 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_64BIT; } -#line 4405 "asmparse.cpp" - break; - - case 100: /* vtfixupAttr: vtfixupAttr FROMUNMANAGED_ */ + { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_64BIT; } +#line 8191 "asmparse.cpp" +break; +case 99: #line 402 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED; } -#line 4411 "asmparse.cpp" - break; - - case 101: /* vtfixupAttr: vtfixupAttr CALLMOSTDERIVED_ */ + { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } +#line 8196 "asmparse.cpp" +break; +case 100: #line 403 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_CALL_MOST_DERIVED; } -#line 4417 "asmparse.cpp" - break; - - case 102: /* vtfixupAttr: vtfixupAttr RETAINAPPDOMAIN_ */ + { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } +#line 8201 "asmparse.cpp" +break; +case 101: #line 404 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 4423 "asmparse.cpp" - break; - - case 103: /* vtableDecl: vtableHead bytes ')' */ + { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } +#line 8206 "asmparse.cpp" +break; +case 102: #line 407 "asmparse.y" - { PASM->m_pVTable = (yyvsp[-1].binstr); } -#line 4429 "asmparse.cpp" - break; - - case 104: /* vtableHead: _VTABLE '=' '(' */ + { PASM->m_pVTable = yystack.l_mark[-1].binstr; } +#line 8211 "asmparse.cpp" +break; +case 103: #line 410 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 4435 "asmparse.cpp" - break; - - case 105: /* nameSpaceHead: _NAMESPACE dottedName */ + { bParsingByteArray = TRUE; } +#line 8216 "asmparse.cpp" +break; +case 104: #line 414 "asmparse.y" - { PASM->StartNameSpace((yyvsp[0].string)); } -#line 4441 "asmparse.cpp" - break; - - case 106: /* _class: _CLASS */ + { PASM->StartNameSpace(yystack.l_mark[0].string); } +#line 8221 "asmparse.cpp" +break; +case 105: #line 417 "asmparse.y" - { newclass = TRUE; } -#line 4447 "asmparse.cpp" - break; - - case 107: /* classHeadBegin: _class classAttr dottedName typarsClause */ + { newclass = TRUE; } +#line 8226 "asmparse.cpp" +break; +case 106: #line 420 "asmparse.y" - { if((yyvsp[0].typarlist)) FixupConstraints(); - PASM->StartClass((yyvsp[-1].string), (yyvsp[-2].classAttr), (yyvsp[0].typarlist)); - TyParFixupList.RESET(false); - newclass = FALSE; + { if(yystack.l_mark[0].typarlist) FixupConstraints(); + PASM->StartClass(yystack.l_mark[-1].string, yystack.l_mark[-2].classAttr, yystack.l_mark[0].typarlist); + TyParFixupList.RESET(false); + newclass = FALSE; } -#line 4457 "asmparse.cpp" - break; - - case 108: /* classHead: classHeadBegin extendsClause implClause */ +#line 8235 "asmparse.cpp" +break; +case 107: #line 426 "asmparse.y" - { PASM->AddClass(); } -#line 4463 "asmparse.cpp" - break; - - case 109: /* classAttr: %empty */ + { PASM->AddClass(); } +#line 8240 "asmparse.cpp" +break; +case 108: #line 429 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) 0; } -#line 4469 "asmparse.cpp" - break; - - case 110: /* classAttr: classAttr PUBLIC_ */ + { yyval.classAttr = (CorRegTypeAttr) 0; } +#line 8245 "asmparse.cpp" +break; +case 109: #line 430 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdPublic); } -#line 4475 "asmparse.cpp" - break; - - case 111: /* classAttr: classAttr PRIVATE_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdPublic); } +#line 8250 "asmparse.cpp" +break; +case 110: #line 431 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdVisibilityMask) | tdNotPublic); } -#line 4481 "asmparse.cpp" - break; - - case 112: /* classAttr: classAttr VALUE_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } +#line 8255 "asmparse.cpp" +break; +case 111: #line 432 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x80000000 | tdSealed); } -#line 4487 "asmparse.cpp" - break; - - case 113: /* classAttr: classAttr ENUM_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x80000000 | tdSealed); } +#line 8260 "asmparse.cpp" +break; +case 112: #line 433 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | 0x40000000); } -#line 4493 "asmparse.cpp" - break; - - case 114: /* classAttr: classAttr INTERFACE_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x40000000); } +#line 8265 "asmparse.cpp" +break; +case 113: #line 434 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdInterface | tdAbstract); } -#line 4499 "asmparse.cpp" - break; - - case 115: /* classAttr: classAttr SEALED_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdInterface | tdAbstract); } +#line 8270 "asmparse.cpp" +break; +case 114: #line 435 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSealed); } -#line 4505 "asmparse.cpp" - break; - - case 116: /* classAttr: classAttr ABSTRACT_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSealed); } +#line 8275 "asmparse.cpp" +break; +case 115: #line 436 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdAbstract); } -#line 4511 "asmparse.cpp" - break; - - case 117: /* classAttr: classAttr AUTO_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdAbstract); } +#line 8280 "asmparse.cpp" +break; +case 116: #line 437 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdAutoLayout); } -#line 4517 "asmparse.cpp" - break; - - case 118: /* classAttr: classAttr SEQUENTIAL_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } +#line 8285 "asmparse.cpp" +break; +case 117: #line 438 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdSequentialLayout); } -#line 4523 "asmparse.cpp" - break; - - case 119: /* classAttr: classAttr EXPLICIT_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } +#line 8290 "asmparse.cpp" +break; +case 118: #line 439 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdLayoutMask) | tdExplicitLayout); } -#line 4529 "asmparse.cpp" - break; - - case 120: /* classAttr: classAttr ANSI_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } +#line 8295 "asmparse.cpp" +break; +case 119: #line 440 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAnsiClass); } -#line 4535 "asmparse.cpp" - break; - - case 121: /* classAttr: classAttr UNICODE_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } +#line 8300 "asmparse.cpp" +break; +case 120: #line 441 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdUnicodeClass); } -#line 4541 "asmparse.cpp" - break; - - case 122: /* classAttr: classAttr AUTOCHAR_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } +#line 8305 "asmparse.cpp" +break; +case 121: #line 442 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-1].classAttr) & ~tdStringFormatMask) | tdAutoClass); } -#line 4547 "asmparse.cpp" - break; - - case 123: /* classAttr: classAttr IMPORT_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } +#line 8310 "asmparse.cpp" +break; +case 122: #line 443 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdImport); } -#line 4553 "asmparse.cpp" - break; - - case 124: /* classAttr: classAttr SERIALIZABLE_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdImport); } +#line 8315 "asmparse.cpp" +break; +case 123: #line 444 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSerializable); } -#line 4559 "asmparse.cpp" - break; - - case 125: /* classAttr: classAttr WINDOWSRUNTIME_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSerializable); } +#line 8320 "asmparse.cpp" +break; +case 124: #line 445 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdWindowsRuntime); } -#line 4565 "asmparse.cpp" - break; - - case 126: /* classAttr: classAttr NESTED_ PUBLIC_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdWindowsRuntime); } +#line 8325 "asmparse.cpp" +break; +case 125: #line 446 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPublic); } -#line 4571 "asmparse.cpp" - break; - - case 127: /* classAttr: classAttr NESTED_ PRIVATE_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } +#line 8330 "asmparse.cpp" +break; +case 126: #line 447 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedPrivate); } -#line 4577 "asmparse.cpp" - break; - - case 128: /* classAttr: classAttr NESTED_ FAMILY_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } +#line 8335 "asmparse.cpp" +break; +case 127: #line 448 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamily); } -#line 4583 "asmparse.cpp" - break; - - case 129: /* classAttr: classAttr NESTED_ ASSEMBLY_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } +#line 8340 "asmparse.cpp" +break; +case 128: #line 449 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedAssembly); } -#line 4589 "asmparse.cpp" - break; - - case 130: /* classAttr: classAttr NESTED_ FAMANDASSEM_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } +#line 8345 "asmparse.cpp" +break; +case 129: #line 450 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 4595 "asmparse.cpp" - break; - - case 131: /* classAttr: classAttr NESTED_ FAMORASSEM_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } +#line 8350 "asmparse.cpp" +break; +case 130: #line 451 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) (((yyvsp[-2].classAttr) & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 4601 "asmparse.cpp" - break; - - case 132: /* classAttr: classAttr BEFOREFIELDINIT_ */ + { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } +#line 8355 "asmparse.cpp" +break; +case 131: #line 452 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdBeforeFieldInit); } -#line 4607 "asmparse.cpp" - break; - - case 133: /* classAttr: classAttr SPECIALNAME_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdBeforeFieldInit); } +#line 8360 "asmparse.cpp" +break; +case 132: #line 453 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr) | tdSpecialName); } -#line 4613 "asmparse.cpp" - break; - - case 134: /* classAttr: classAttr RTSPECIALNAME_ */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSpecialName); } +#line 8365 "asmparse.cpp" +break; +case 133: #line 454 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].classAttr)); } -#line 4619 "asmparse.cpp" - break; - - case 135: /* classAttr: classAttr FLAGS_ '(' int32 ')' */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr); } +#line 8370 "asmparse.cpp" +break; +case 134: #line 455 "asmparse.y" - { (yyval.classAttr) = (CorRegTypeAttr) ((yyvsp[-1].int32)); } -#line 4625 "asmparse.cpp" - break; - - case 137: /* extendsClause: EXTENDS_ typeSpec */ + { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].int32); } +#line 8375 "asmparse.cpp" +break; +case 136: #line 459 "asmparse.y" - { PASM->m_crExtends = (yyvsp[0].token); } -#line 4631 "asmparse.cpp" - break; - - case 142: /* implList: implList ',' typeSpec */ + { PASM->m_crExtends = yystack.l_mark[0].token; } +#line 8380 "asmparse.cpp" +break; +case 141: #line 470 "asmparse.y" - { PASM->AddToImplList((yyvsp[0].token)); } -#line 4637 "asmparse.cpp" - break; - - case 143: /* implList: typeSpec */ + { PASM->AddToImplList(yystack.l_mark[0].token); } +#line 8385 "asmparse.cpp" +break; +case 142: #line 471 "asmparse.y" - { PASM->AddToImplList((yyvsp[0].token)); } -#line 4643 "asmparse.cpp" - break; - - case 144: /* typeList: %empty */ + { PASM->AddToImplList(yystack.l_mark[0].token); } +#line 8390 "asmparse.cpp" +break; +case 143: #line 475 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 4649 "asmparse.cpp" - break; - - case 145: /* typeList: typeListNotEmpty */ + { yyval.binstr = new BinStr(); } +#line 8395 "asmparse.cpp" +break; +case 144: #line 476 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 4655 "asmparse.cpp" - break; - - case 146: /* typeListNotEmpty: typeSpec */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 8400 "asmparse.cpp" +break; +case 145: #line 479 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[0].token)); } -#line 4661 "asmparse.cpp" - break; - - case 147: /* typeListNotEmpty: typeListNotEmpty ',' typeSpec */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[0].token); } +#line 8405 "asmparse.cpp" +break; +case 146: #line 480 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->appendInt32((yyvsp[0].token)); } -#line 4667 "asmparse.cpp" - break; - - case 148: /* typarsClause: %empty */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].token); } +#line 8410 "asmparse.cpp" +break; +case 147: #line 483 "asmparse.y" - { (yyval.typarlist) = NULL; PASM->m_TyParList = NULL;} -#line 4673 "asmparse.cpp" - break; - - case 149: /* typarsClause: '<' typars '>' */ + { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} +#line 8415 "asmparse.cpp" +break; +case 148: #line 484 "asmparse.y" - { PASM->m_TyParList = (yyvsp[-1].typarlist); ResolveTyParList(PASM->m_TyParList); (yyval.typarlist) = PASM->m_TyParList; } -#line 4679 "asmparse.cpp" - break; - - case 150: /* typarAttrib: '+' */ + { PASM->m_TyParList = yystack.l_mark[-1].typarlist; ResolveTyParList(PASM->m_TyParList); yyval.typarlist = PASM->m_TyParList; } +#line 8420 "asmparse.cpp" +break; +case 149: #line 487 "asmparse.y" - { (yyval.int32) = gpCovariant; } -#line 4685 "asmparse.cpp" - break; - - case 151: /* typarAttrib: '-' */ + { yyval.int32 = gpCovariant; } +#line 8425 "asmparse.cpp" +break; +case 150: #line 488 "asmparse.y" - { (yyval.int32) = gpContravariant; } -#line 4691 "asmparse.cpp" - break; - - case 152: /* typarAttrib: CLASS_ */ + { yyval.int32 = gpContravariant; } +#line 8430 "asmparse.cpp" +break; +case 151: #line 489 "asmparse.y" - { (yyval.int32) = gpReferenceTypeConstraint; } -#line 4697 "asmparse.cpp" - break; - - case 153: /* typarAttrib: VALUETYPE_ */ + { yyval.int32 = gpReferenceTypeConstraint; } +#line 8435 "asmparse.cpp" +break; +case 152: #line 490 "asmparse.y" - { (yyval.int32) = gpNotNullableValueTypeConstraint; } -#line 4703 "asmparse.cpp" - break; - - case 154: /* typarAttrib: BYREFLIKE_ */ + { yyval.int32 = gpNotNullableValueTypeConstraint; } +#line 8440 "asmparse.cpp" +break; +case 153: #line 491 "asmparse.y" - { (yyval.int32) = gpAcceptByRefLike; } -#line 4709 "asmparse.cpp" - break; - - case 155: /* typarAttrib: _CTOR */ + { yyval.int32 = gpAcceptByRefLike; } +#line 8445 "asmparse.cpp" +break; +case 154: #line 492 "asmparse.y" - { (yyval.int32) = gpDefaultConstructorConstraint; } -#line 4715 "asmparse.cpp" - break; - - case 156: /* typarAttrib: FLAGS_ '(' int32 ')' */ + { yyval.int32 = gpDefaultConstructorConstraint; } +#line 8450 "asmparse.cpp" +break; +case 155: #line 493 "asmparse.y" - { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } -#line 4721 "asmparse.cpp" - break; - - case 157: /* typarAttribs: %empty */ + { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } +#line 8455 "asmparse.cpp" +break; +case 156: #line 496 "asmparse.y" - { (yyval.int32) = 0; } -#line 4727 "asmparse.cpp" - break; - - case 158: /* typarAttribs: typarAttrib typarAttribs */ + { yyval.int32 = 0; } +#line 8460 "asmparse.cpp" +break; +case 157: #line 497 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } -#line 4733 "asmparse.cpp" - break; - - case 159: /* conTyparAttrib: FLAGS_ '(' int32 ')' */ + { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } +#line 8465 "asmparse.cpp" +break; +case 158: #line 500 "asmparse.y" - { (yyval.int32) = (CorGenericParamAttr)(yyvsp[-1].int32); } -#line 4739 "asmparse.cpp" - break; - - case 160: /* conTyparAttribs: %empty */ + { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } +#line 8470 "asmparse.cpp" +break; +case 159: #line 503 "asmparse.y" - { (yyval.int32) = 0; } -#line 4745 "asmparse.cpp" - break; - - case 161: /* conTyparAttribs: conTyparAttrib conTyparAttribs */ + { yyval.int32 = 0; } +#line 8475 "asmparse.cpp" +break; +case 160: #line 504 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | (yyvsp[0].int32); } -#line 4751 "asmparse.cpp" - break; - - case 162: /* typars: CONST_ conTyparAttribs type dottedName typarsRest */ + { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } +#line 8480 "asmparse.cpp" +break; +case 161: #line 507 "asmparse.y" - {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].binstr), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist)); } -#line 4757 "asmparse.cpp" - break; - - case 163: /* typars: typarAttribs tyBound dottedName typarsRest */ + {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } +#line 8485 "asmparse.cpp" +break; +case 162: #line 508 "asmparse.y" - {(yyval.typarlist) = new TyParList((yyvsp[-3].int32), (yyvsp[-2].binstr), (yyvsp[-1].string), (yyvsp[0].typarlist));} -#line 4763 "asmparse.cpp" - break; - - case 164: /* typars: typarAttribs dottedName typarsRest */ + {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} +#line 8490 "asmparse.cpp" +break; +case 163: #line 509 "asmparse.y" - {(yyval.typarlist) = new TyParList((yyvsp[-2].int32), NULL, (yyvsp[-1].string), (yyvsp[0].typarlist));} -#line 4769 "asmparse.cpp" - break; - - case 165: /* typarsRest: %empty */ + {yyval.typarlist = new TyParList(yystack.l_mark[-2].int32, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} +#line 8495 "asmparse.cpp" +break; +case 164: #line 512 "asmparse.y" - { (yyval.typarlist) = NULL; } -#line 4775 "asmparse.cpp" - break; - - case 166: /* typarsRest: ',' typars */ + { yyval.typarlist = NULL; } +#line 8500 "asmparse.cpp" +break; +case 165: #line 513 "asmparse.y" - { (yyval.typarlist) = (yyvsp[0].typarlist); } -#line 4781 "asmparse.cpp" - break; - - case 167: /* tyBound: '(' typeList ')' */ + { yyval.typarlist = yystack.l_mark[0].typarlist; } +#line 8505 "asmparse.cpp" +break; +case 166: #line 516 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 4787 "asmparse.cpp" - break; - - case 168: /* genArity: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 8510 "asmparse.cpp" +break; +case 167: #line 519 "asmparse.y" - { (yyval.int32)= 0; } -#line 4793 "asmparse.cpp" - break; - - case 169: /* genArity: genArityNotEmpty */ + { yyval.int32= 0; } +#line 8515 "asmparse.cpp" +break; +case 168: #line 520 "asmparse.y" - { (yyval.int32) = (yyvsp[0].int32); } -#line 4799 "asmparse.cpp" - break; - - case 170: /* genArityNotEmpty: '<' '[' int32 ']' '>' */ + { yyval.int32 = yystack.l_mark[0].int32; } +#line 8520 "asmparse.cpp" +break; +case 169: #line 523 "asmparse.y" - { (yyval.int32) = (yyvsp[-2].int32); } -#line 4805 "asmparse.cpp" - break; - - case 171: /* classDecl: methodHead methodDecls '}' */ + { yyval.int32 = yystack.l_mark[-2].int32; } +#line 8525 "asmparse.cpp" +break; +case 170: #line 527 "asmparse.y" - { if(PASM->m_pCurMethod->m_ulLines[1] ==0) - { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; - PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} + { if(PASM->m_pCurMethod->m_ulLines[1] ==0) + { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; + PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 4814 "asmparse.cpp" - break; - - case 172: /* classDecl: classHead '{' classDecls '}' */ +#line 8533 "asmparse.cpp" +break; +case 171: #line 531 "asmparse.y" - { PASM->EndClass(); } -#line 4820 "asmparse.cpp" - break; - - case 173: /* classDecl: eventHead '{' eventDecls '}' */ + { PASM->EndClass(); } +#line 8538 "asmparse.cpp" +break; +case 172: #line 532 "asmparse.y" - { PASM->EndEvent(); } -#line 4826 "asmparse.cpp" - break; - - case 174: /* classDecl: propHead '{' propDecls '}' */ + { PASM->EndEvent(); } +#line 8543 "asmparse.cpp" +break; +case 173: #line 533 "asmparse.y" - { PASM->EndProp(); } -#line 4832 "asmparse.cpp" - break; - - case 180: /* classDecl: _SIZE int32 */ + { PASM->EndProp(); } +#line 8548 "asmparse.cpp" +break; +case 179: #line 539 "asmparse.y" - { PASM->m_pCurClass->m_ulSize = (yyvsp[0].int32); } -#line 4838 "asmparse.cpp" - break; - - case 181: /* classDecl: _PACK int32 */ + { PASM->m_pCurClass->m_ulSize = yystack.l_mark[0].int32; } +#line 8553 "asmparse.cpp" +break; +case 180: #line 540 "asmparse.y" - { PASM->m_pCurClass->m_ulPack = (yyvsp[0].int32); } -#line 4844 "asmparse.cpp" - break; - - case 182: /* classDecl: exportHead '{' exptypeDecls '}' */ + { PASM->m_pCurClass->m_ulPack = yystack.l_mark[0].int32; } +#line 8558 "asmparse.cpp" +break; +case 181: #line 541 "asmparse.y" - { PASMM->EndComType(); } -#line 4850 "asmparse.cpp" - break; - - case 183: /* classDecl: _OVERRIDE typeSpec DCOLON methodName WITH_ callConv type typeSpec DCOLON methodName '(' sigArgs0 ')' */ + { PASMM->EndComType(); } +#line 8563 "asmparse.cpp" +break; +case 182: #line 543 "asmparse.y" - { BinStr *sig1 = parser->MakeSig((yyvsp[-7].int32), (yyvsp[-6].binstr), (yyvsp[-1].binstr)); - BinStr *sig2 = new BinStr(); sig2->append(sig1); - PASM->AddMethodImpl((yyvsp[-11].token),(yyvsp[-9].string),sig1,(yyvsp[-5].token),(yyvsp[-3].string),sig2); - PASM->ResetArgNameList(); + { BinStr *sig1 = parser->MakeSig(yystack.l_mark[-7].int32, yystack.l_mark[-6].binstr, yystack.l_mark[-1].binstr); + BinStr *sig2 = new BinStr(); sig2->append(sig1); + PASM->AddMethodImpl(yystack.l_mark[-11].token,yystack.l_mark[-9].string,sig1,yystack.l_mark[-5].token,yystack.l_mark[-3].string,sig2); + PASM->ResetArgNameList(); } -#line 4860 "asmparse.cpp" - break; - - case 184: /* classDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' WITH_ METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ +#line 8572 "asmparse.cpp" +break; +case 183: #line 549 "asmparse.y" - { PASM->AddMethodImpl((yyvsp[-17].token),(yyvsp[-15].string), - ((yyvsp[-14].int32)==0 ? parser->MakeSig((yyvsp[-19].int32),(yyvsp[-18].binstr),(yyvsp[-12].binstr)) : - parser->MakeSig((yyvsp[-19].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-18].binstr),(yyvsp[-12].binstr),(yyvsp[-14].int32))), - (yyvsp[-6].token),(yyvsp[-4].string), - ((yyvsp[-3].int32)==0 ? parser->MakeSig((yyvsp[-8].int32),(yyvsp[-7].binstr),(yyvsp[-1].binstr)) : - parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32)))); - PASM->ResetArgNameList(); + { PASM->AddMethodImpl(yystack.l_mark[-17].token,yystack.l_mark[-15].string, + (yystack.l_mark[-14].int32==0 ? parser->MakeSig(yystack.l_mark[-19].int32,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr) : + parser->MakeSig(yystack.l_mark[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr,yystack.l_mark[-14].int32)), + yystack.l_mark[-6].token,yystack.l_mark[-4].string, + (yystack.l_mark[-3].int32==0 ? parser->MakeSig(yystack.l_mark[-8].int32,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr) : + parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32))); + PASM->ResetArgNameList(); } -#line 4873 "asmparse.cpp" - break; - - case 187: /* classDecl: _PARAM TYPE_ '[' int32 ']' */ +#line 8584 "asmparse.cpp" +break; +case 186: #line 559 "asmparse.y" - { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurClass->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[(yyvsp[-1].int32)-1].CAList(); - else - PASM->report->error("Type parameter index out of range\n"); + { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); + else + PASM->report->error("Type parameter index out of range\n"); } -#line 4883 "asmparse.cpp" - break; - - case 188: /* classDecl: _PARAM TYPE_ dottedName */ +#line 8593 "asmparse.cpp" +break; +case 187: #line 564 "asmparse.y" - { int n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); - if(n >= 0) - PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); - else - PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); + { int n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); + if(n >= 0) + PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); + else + PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 4894 "asmparse.cpp" - break; - - case 189: /* classDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ +#line 8603 "asmparse.cpp" +break; +case 188: #line 570 "asmparse.y" - { PASM->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } -#line 4900 "asmparse.cpp" - break; - - case 190: /* classDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ + { PASM->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } +#line 8608 "asmparse.cpp" +break; +case 189: #line 571 "asmparse.y" - { PASM->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } -#line 4906 "asmparse.cpp" - break; - - case 191: /* classDecl: _INTERFACEIMPL TYPE_ typeSpec customDescr */ + { PASM->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } +#line 8613 "asmparse.cpp" +break; +case 190: #line 572 "asmparse.y" - { (yyvsp[0].cad)->tkInterfacePair = (yyvsp[-1].token); - if(PASM->m_pCustomDescrList) - PASM->m_pCustomDescrList->PUSH((yyvsp[0].cad)); + { yystack.l_mark[0].cad->tkInterfacePair = yystack.l_mark[-1].token; + if(PASM->m_pCustomDescrList) + PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } -#line 4915 "asmparse.cpp" - break; - - case 192: /* fieldDecl: _FIELD repeatOpt fieldAttr type dottedName atOpt initOpt */ +#line 8621 "asmparse.cpp" +break; +case 191: #line 580 "asmparse.y" - { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - PASM->AddField((yyvsp[-2].string), (yyvsp[-3].binstr), (yyvsp[-4].fieldAttr), (yyvsp[-1].string), (yyvsp[0].binstr), (yyvsp[-5].int32)); } -#line 4922 "asmparse.cpp" - break; - - case 193: /* fieldAttr: %empty */ + { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + PASM->AddField(yystack.l_mark[-2].string, yystack.l_mark[-3].binstr, yystack.l_mark[-4].fieldAttr, yystack.l_mark[-1].string, yystack.l_mark[0].binstr, yystack.l_mark[-5].int32); } +#line 8627 "asmparse.cpp" +break; +case 192: #line 584 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) 0; } -#line 4928 "asmparse.cpp" - break; - - case 194: /* fieldAttr: fieldAttr STATIC_ */ + { yyval.fieldAttr = (CorFieldAttr) 0; } +#line 8632 "asmparse.cpp" +break; +case 193: #line 585 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdStatic); } -#line 4934 "asmparse.cpp" - break; - - case 195: /* fieldAttr: fieldAttr PUBLIC_ */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdStatic); } +#line 8637 "asmparse.cpp" +break; +case 194: #line 586 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPublic); } -#line 4940 "asmparse.cpp" - break; - - case 196: /* fieldAttr: fieldAttr PRIVATE_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } +#line 8642 "asmparse.cpp" +break; +case 195: #line 587 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivate); } -#line 4946 "asmparse.cpp" - break; - - case 197: /* fieldAttr: fieldAttr FAMILY_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } +#line 8647 "asmparse.cpp" +break; +case 196: #line 588 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamily); } -#line 4952 "asmparse.cpp" - break; - - case 198: /* fieldAttr: fieldAttr INITONLY_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } +#line 8652 "asmparse.cpp" +break; +case 197: #line 589 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdInitOnly); } -#line 4958 "asmparse.cpp" - break; - - case 199: /* fieldAttr: fieldAttr RTSPECIALNAME_ */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdInitOnly); } +#line 8657 "asmparse.cpp" +break; +case 198: #line 590 "asmparse.y" - { (yyval.fieldAttr) = (yyvsp[-1].fieldAttr); } -#line 4964 "asmparse.cpp" - break; - - case 200: /* fieldAttr: fieldAttr SPECIALNAME_ */ + { yyval.fieldAttr = yystack.l_mark[-1].fieldAttr; } +#line 8662 "asmparse.cpp" +break; +case 199: #line 591 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdSpecialName); } -#line 4970 "asmparse.cpp" - break; - - case 201: /* fieldAttr: fieldAttr MARSHAL_ '(' marshalBlob ')' */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdSpecialName); } +#line 8667 "asmparse.cpp" +break; +case 200: #line 604 "asmparse.y" - { PASM->m_pMarshal = (yyvsp[-1].binstr); } -#line 4976 "asmparse.cpp" - break; - - case 202: /* fieldAttr: fieldAttr ASSEMBLY_ */ + { PASM->m_pMarshal = yystack.l_mark[-1].binstr; } +#line 8672 "asmparse.cpp" +break; +case 201: #line 605 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdAssembly); } -#line 4982 "asmparse.cpp" - break; - - case 203: /* fieldAttr: fieldAttr FAMANDASSEM_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } +#line 8677 "asmparse.cpp" +break; +case 202: #line 606 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 4988 "asmparse.cpp" - break; - - case 204: /* fieldAttr: fieldAttr FAMORASSEM_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } +#line 8682 "asmparse.cpp" +break; +case 203: #line 607 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdFamORAssem); } -#line 4994 "asmparse.cpp" - break; - - case 205: /* fieldAttr: fieldAttr PRIVATESCOPE_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } +#line 8687 "asmparse.cpp" +break; +case 204: #line 608 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) (((yyvsp[-1].fieldAttr) & ~mdMemberAccessMask) | fdPrivateScope); } -#line 5000 "asmparse.cpp" - break; - - case 206: /* fieldAttr: fieldAttr LITERAL_ */ + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } +#line 8692 "asmparse.cpp" +break; +case 205: #line 609 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdLiteral); } -#line 5006 "asmparse.cpp" - break; - - case 207: /* fieldAttr: fieldAttr NOTSERIALIZED_ */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdLiteral); } +#line 8697 "asmparse.cpp" +break; +case 206: #line 610 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].fieldAttr) | fdNotSerialized); } -#line 5012 "asmparse.cpp" - break; - - case 208: /* fieldAttr: fieldAttr FLAGS_ '(' int32 ')' */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdNotSerialized); } +#line 8702 "asmparse.cpp" +break; +case 207: #line 611 "asmparse.y" - { (yyval.fieldAttr) = (CorFieldAttr) ((yyvsp[-1].int32)); } -#line 5018 "asmparse.cpp" - break; - - case 209: /* atOpt: %empty */ + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].int32); } +#line 8707 "asmparse.cpp" +break; +case 208: #line 614 "asmparse.y" - { (yyval.string) = 0; } -#line 5024 "asmparse.cpp" - break; - - case 210: /* atOpt: AT_ id */ + { yyval.string = 0; } +#line 8712 "asmparse.cpp" +break; +case 209: #line 615 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 5030 "asmparse.cpp" - break; - - case 211: /* initOpt: %empty */ + { yyval.string = yystack.l_mark[0].string; } +#line 8717 "asmparse.cpp" +break; +case 210: #line 618 "asmparse.y" - { (yyval.binstr) = NULL; } -#line 5036 "asmparse.cpp" - break; - - case 212: /* initOpt: '=' fieldInit */ + { yyval.binstr = NULL; } +#line 8722 "asmparse.cpp" +break; +case 211: #line 619 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 5042 "asmparse.cpp" - break; - - case 213: /* repeatOpt: %empty */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 8727 "asmparse.cpp" +break; +case 212: #line 622 "asmparse.y" - { (yyval.int32) = 0xFFFFFFFF; } -#line 5048 "asmparse.cpp" - break; - - case 214: /* repeatOpt: '[' int32 ']' */ + { yyval.int32 = 0xFFFFFFFF; } +#line 8732 "asmparse.cpp" +break; +case 213: #line 623 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32); } -#line 5054 "asmparse.cpp" - break; - - case 215: /* methodRef: callConv type typeSpec DCOLON methodName tyArgs0 '(' sigArgs0 ')' */ + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 8737 "asmparse.cpp" +break; +case 214: #line 628 "asmparse.y" - { PASM->ResetArgNameList(); - if ((yyvsp[-3].binstr) == NULL) - { - if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - (yyval.token) = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), parser->MakeSig((yyvsp[-8].int32)|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr))); - } - else - { - mdToken mr; - if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), - parser->MakeSig((yyvsp[-8].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr), corCountArgs((yyvsp[-3].binstr)))); - (yyval.token) = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); - } + { PASM->ResetArgNameList(); + if (yystack.l_mark[-3].binstr == NULL) + { + if((iCallConv)&&((yystack.l_mark[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(yystack.l_mark[-6].token, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-8].int32|iCallConv, yystack.l_mark[-7].binstr, yystack.l_mark[-1].binstr)); + } + else + { + mdToken mr; + if((iCallConv)&&((yystack.l_mark[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef(yystack.l_mark[-6].token, yystack.l_mark[-4].string, + parser->MakeSig(yystack.l_mark[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-7].binstr, yystack.l_mark[-1].binstr, corCountArgs(yystack.l_mark[-3].binstr))); + yyval.token = PASM->MakeMethodSpec(mr, + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); + } } -#line 5075 "asmparse.cpp" - break; - - case 216: /* methodRef: callConv type typeSpec DCOLON methodName genArityNotEmpty '(' sigArgs0 ')' */ +#line 8757 "asmparse.cpp" +break; +case 215: #line 645 "asmparse.y" - { PASM->ResetArgNameList(); - if((iCallConv)&&(((yyvsp[-8].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - (yyval.token) = PASM->MakeMemberRef((yyvsp[-6].token), (yyvsp[-4].string), - parser->MakeSig((yyvsp[-8].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-7].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); + { PASM->ResetArgNameList(); + if((iCallConv)&&((yystack.l_mark[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(yystack.l_mark[-6].token, yystack.l_mark[-4].string, + parser->MakeSig(yystack.l_mark[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-7].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 5085 "asmparse.cpp" - break; - - case 217: /* methodRef: callConv type methodName tyArgs0 '(' sigArgs0 ')' */ +#line 8766 "asmparse.cpp" +break; +case 216: #line 651 "asmparse.y" - { PASM->ResetArgNameList(); - if ((yyvsp[-3].binstr) == NULL) - { - if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - (yyval.token) = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32)|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr))); - } - else - { - mdToken mr; - if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - mr = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr), corCountArgs((yyvsp[-3].binstr)))); - (yyval.token) = PASM->MakeMethodSpec(mr, - parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, (yyvsp[-3].binstr))); - } + { PASM->ResetArgNameList(); + if (yystack.l_mark[-3].binstr == NULL) + { + if((iCallConv)&&((yystack.l_mark[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-6].int32|iCallConv, yystack.l_mark[-5].binstr, yystack.l_mark[-1].binstr)); + } + else + { + mdToken mr; + if((iCallConv)&&((yystack.l_mark[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + mr = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-5].binstr, yystack.l_mark[-1].binstr, corCountArgs(yystack.l_mark[-3].binstr))); + yyval.token = PASM->MakeMethodSpec(mr, + parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); + } } -#line 5105 "asmparse.cpp" - break; - - case 218: /* methodRef: callConv type methodName genArityNotEmpty '(' sigArgs0 ')' */ +#line 8785 "asmparse.cpp" +break; +case 217: #line 667 "asmparse.y" - { PASM->ResetArgNameList(); - if((iCallConv)&&(((yyvsp[-6].int32) & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); - (yyval.token) = PASM->MakeMemberRef(mdTokenNil, (yyvsp[-4].string), parser->MakeSig((yyvsp[-6].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, (yyvsp[-5].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32))); + { PASM->ResetArgNameList(); + if((iCallConv)&&((yystack.l_mark[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); + yyval.token = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-5].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 5114 "asmparse.cpp" - break; - - case 219: /* methodRef: mdtoken */ +#line 8793 "asmparse.cpp" +break; +case 218: #line 671 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); } -#line 5120 "asmparse.cpp" - break; - - case 220: /* methodRef: TYPEDEF_M */ + { yyval.token = yystack.l_mark[0].token; } +#line 8798 "asmparse.cpp" +break; +case 219: #line 672 "asmparse.y" - { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 5126 "asmparse.cpp" - break; - - case 221: /* methodRef: TYPEDEF_MR */ + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } +#line 8803 "asmparse.cpp" +break; +case 220: #line 673 "asmparse.y" - { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 5132 "asmparse.cpp" - break; - - case 222: /* callConv: INSTANCE_ callConv */ + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } +#line 8808 "asmparse.cpp" +break; +case 221: #line 676 "asmparse.y" - { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 5138 "asmparse.cpp" - break; - - case 223: /* callConv: EXPLICIT_ callConv */ + { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } +#line 8813 "asmparse.cpp" +break; +case 222: #line 677 "asmparse.y" - { (yyval.int32) = ((yyvsp[0].int32) | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 5144 "asmparse.cpp" - break; - - case 224: /* callConv: callKind */ + { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } +#line 8818 "asmparse.cpp" +break; +case 223: #line 678 "asmparse.y" - { (yyval.int32) = (yyvsp[0].int32); } -#line 5150 "asmparse.cpp" - break; - - case 225: /* callConv: CALLCONV_ '(' int32 ')' */ + { yyval.int32 = yystack.l_mark[0].int32; } +#line 8823 "asmparse.cpp" +break; +case 224: #line 679 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32); } -#line 5156 "asmparse.cpp" - break; - - case 226: /* callKind: %empty */ + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 8828 "asmparse.cpp" +break; +case 225: #line 682 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 5162 "asmparse.cpp" - break; - - case 227: /* callKind: DEFAULT_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 8833 "asmparse.cpp" +break; +case 226: #line 683 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 5168 "asmparse.cpp" - break; - - case 228: /* callKind: VARARG_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 8838 "asmparse.cpp" +break; +case 227: #line 684 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 5174 "asmparse.cpp" - break; - - case 229: /* callKind: UNMANAGED_ CDECL_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } +#line 8843 "asmparse.cpp" +break; +case 228: #line 685 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_C; } -#line 5180 "asmparse.cpp" - break; - - case 230: /* callKind: UNMANAGED_ STDCALL_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } +#line 8848 "asmparse.cpp" +break; +case 229: #line 686 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 5186 "asmparse.cpp" - break; - - case 231: /* callKind: UNMANAGED_ THISCALL_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } +#line 8853 "asmparse.cpp" +break; +case 230: #line 687 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 5192 "asmparse.cpp" - break; - - case 232: /* callKind: UNMANAGED_ FASTCALL_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } +#line 8858 "asmparse.cpp" +break; +case 231: #line 688 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 5198 "asmparse.cpp" - break; - - case 233: /* callKind: UNMANAGED_ */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } +#line 8863 "asmparse.cpp" +break; +case 232: #line 689 "asmparse.y" - { (yyval.int32) = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 5204 "asmparse.cpp" - break; - - case 234: /* mdtoken: MDTOKEN_ '(' int32 ')' */ + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } +#line 8868 "asmparse.cpp" +break; +case 233: #line 692 "asmparse.y" - { (yyval.token) = (yyvsp[-1].int32); } -#line 5210 "asmparse.cpp" - break; - - case 235: /* memberRef: methodSpec methodRef */ + { yyval.token = yystack.l_mark[-1].int32; } +#line 8873 "asmparse.cpp" +break; +case 234: #line 695 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); - PASM->delArgNameList(PASM->m_firstArgName); - PASM->m_firstArgName = parser->m_ANSFirst.POP(); - PASM->m_lastArgName = parser->m_ANSLast.POP(); - PASM->SetMemberRefFixup((yyvsp[0].token),iOpcodeLen); } -#line 5220 "asmparse.cpp" - break; - - case 236: /* memberRef: FIELD_ type typeSpec DCOLON dottedName */ + { yyval.token = yystack.l_mark[0].token; + PASM->delArgNameList(PASM->m_firstArgName); + PASM->m_firstArgName = parser->m_ANSFirst.POP(); + PASM->m_lastArgName = parser->m_ANSLast.POP(); + PASM->SetMemberRefFixup(yystack.l_mark[0].token,iOpcodeLen); } +#line 8882 "asmparse.cpp" +break; +case 235: #line 701 "asmparse.y" - { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - (yyval.token) = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); - PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 5228 "asmparse.cpp" - break; - - case 237: /* memberRef: FIELD_ type dottedName */ + { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + yyval.token = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8889 "asmparse.cpp" +break; +case 236: #line 705 "asmparse.y" - { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - (yyval.token) = PASM->MakeMemberRef(NULL, (yyvsp[0].string), (yyvsp[-1].binstr)); - PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 5236 "asmparse.cpp" - break; - - case 238: /* memberRef: FIELD_ TYPEDEF_F */ + { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + yyval.token = PASM->MakeMemberRef(NULL, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8896 "asmparse.cpp" +break; +case 237: #line 708 "asmparse.y" - { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; - PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 5243 "asmparse.cpp" - break; - - case 239: /* memberRef: FIELD_ TYPEDEF_MR */ + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8902 "asmparse.cpp" +break; +case 238: #line 710 "asmparse.y" - { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; - PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 5250 "asmparse.cpp" - break; - - case 240: /* memberRef: mdtoken */ + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8908 "asmparse.cpp" +break; +case 239: #line 712 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); - PASM->SetMemberRefFixup((yyval.token),iOpcodeLen); } -#line 5257 "asmparse.cpp" - break; - - case 241: /* eventHead: _EVENT eventAttr typeSpec dottedName */ + { yyval.token = yystack.l_mark[0].token; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8914 "asmparse.cpp" +break; +case 240: #line 717 "asmparse.y" - { PASM->ResetEvent((yyvsp[0].string), (yyvsp[-1].token), (yyvsp[-2].eventAttr)); } -#line 5263 "asmparse.cpp" - break; - - case 242: /* eventHead: _EVENT eventAttr dottedName */ + { PASM->ResetEvent(yystack.l_mark[0].string, yystack.l_mark[-1].token, yystack.l_mark[-2].eventAttr); } +#line 8919 "asmparse.cpp" +break; +case 241: #line 718 "asmparse.y" - { PASM->ResetEvent((yyvsp[0].string), mdTypeRefNil, (yyvsp[-1].eventAttr)); } -#line 5269 "asmparse.cpp" - break; - - case 243: /* eventAttr: %empty */ + { PASM->ResetEvent(yystack.l_mark[0].string, mdTypeRefNil, yystack.l_mark[-1].eventAttr); } +#line 8924 "asmparse.cpp" +break; +case 242: #line 722 "asmparse.y" - { (yyval.eventAttr) = (CorEventAttr) 0; } -#line 5275 "asmparse.cpp" - break; - - case 244: /* eventAttr: eventAttr RTSPECIALNAME_ */ + { yyval.eventAttr = (CorEventAttr) 0; } +#line 8929 "asmparse.cpp" +break; +case 243: #line 723 "asmparse.y" - { (yyval.eventAttr) = (yyvsp[-1].eventAttr); } -#line 5281 "asmparse.cpp" - break; - - case 245: /* eventAttr: eventAttr SPECIALNAME_ */ + { yyval.eventAttr = yystack.l_mark[-1].eventAttr; } +#line 8934 "asmparse.cpp" +break; +case 244: #line 724 "asmparse.y" - { (yyval.eventAttr) = (CorEventAttr) ((yyvsp[-1].eventAttr) | evSpecialName); } -#line 5287 "asmparse.cpp" - break; - - case 248: /* eventDecl: _ADDON methodRef */ + { yyval.eventAttr = (CorEventAttr) (yystack.l_mark[-1].eventAttr | evSpecialName); } +#line 8939 "asmparse.cpp" +break; +case 247: #line 731 "asmparse.y" - { PASM->SetEventMethod(0, (yyvsp[0].token)); } -#line 5293 "asmparse.cpp" - break; - - case 249: /* eventDecl: _REMOVEON methodRef */ + { PASM->SetEventMethod(0, yystack.l_mark[0].token); } +#line 8944 "asmparse.cpp" +break; +case 248: #line 732 "asmparse.y" - { PASM->SetEventMethod(1, (yyvsp[0].token)); } -#line 5299 "asmparse.cpp" - break; - - case 250: /* eventDecl: _FIRE methodRef */ + { PASM->SetEventMethod(1, yystack.l_mark[0].token); } +#line 8949 "asmparse.cpp" +break; +case 249: #line 733 "asmparse.y" - { PASM->SetEventMethod(2, (yyvsp[0].token)); } -#line 5305 "asmparse.cpp" - break; - - case 251: /* eventDecl: _OTHER methodRef */ + { PASM->SetEventMethod(2, yystack.l_mark[0].token); } +#line 8954 "asmparse.cpp" +break; +case 250: #line 734 "asmparse.y" - { PASM->SetEventMethod(3, (yyvsp[0].token)); } -#line 5311 "asmparse.cpp" - break; - - case 256: /* propHead: _PROPERTY propAttr callConv type dottedName '(' sigArgs0 ')' initOpt */ + { PASM->SetEventMethod(3, yystack.l_mark[0].token); } +#line 8959 "asmparse.cpp" +break; +case 255: #line 743 "asmparse.y" - { PASM->ResetProp((yyvsp[-4].string), - parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | - ((yyvsp[-6].int32) & IMAGE_CEE_CS_CALLCONV_HASTHIS)),(yyvsp[-5].binstr),(yyvsp[-2].binstr)), (yyvsp[-7].propAttr), (yyvsp[0].binstr));} -#line 5319 "asmparse.cpp" - break; - - case 257: /* propAttr: %empty */ + { PASM->ResetProp(yystack.l_mark[-4].string, + parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | + (yystack.l_mark[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yystack.l_mark[-5].binstr,yystack.l_mark[-2].binstr), yystack.l_mark[-7].propAttr, yystack.l_mark[0].binstr);} +#line 8966 "asmparse.cpp" +break; +case 256: #line 748 "asmparse.y" - { (yyval.propAttr) = (CorPropertyAttr) 0; } -#line 5325 "asmparse.cpp" - break; - - case 258: /* propAttr: propAttr RTSPECIALNAME_ */ + { yyval.propAttr = (CorPropertyAttr) 0; } +#line 8971 "asmparse.cpp" +break; +case 257: #line 749 "asmparse.y" - { (yyval.propAttr) = (yyvsp[-1].propAttr); } -#line 5331 "asmparse.cpp" - break; - - case 259: /* propAttr: propAttr SPECIALNAME_ */ + { yyval.propAttr = yystack.l_mark[-1].propAttr; } +#line 8976 "asmparse.cpp" +break; +case 258: #line 750 "asmparse.y" - { (yyval.propAttr) = (CorPropertyAttr) ((yyvsp[-1].propAttr) | prSpecialName); } -#line 5337 "asmparse.cpp" - break; - - case 262: /* propDecl: _SET methodRef */ + { yyval.propAttr = (CorPropertyAttr) (yystack.l_mark[-1].propAttr | prSpecialName); } +#line 8981 "asmparse.cpp" +break; +case 261: #line 758 "asmparse.y" - { PASM->SetPropMethod(0, (yyvsp[0].token)); } -#line 5343 "asmparse.cpp" - break; - - case 263: /* propDecl: _GET methodRef */ + { PASM->SetPropMethod(0, yystack.l_mark[0].token); } +#line 8986 "asmparse.cpp" +break; +case 262: #line 759 "asmparse.y" - { PASM->SetPropMethod(1, (yyvsp[0].token)); } -#line 5349 "asmparse.cpp" - break; - - case 264: /* propDecl: _OTHER methodRef */ + { PASM->SetPropMethod(1, yystack.l_mark[0].token); } +#line 8991 "asmparse.cpp" +break; +case 263: #line 760 "asmparse.y" - { PASM->SetPropMethod(2, (yyvsp[0].token)); } -#line 5355 "asmparse.cpp" - break; - - case 269: /* methodHeadPart1: _METHOD */ + { PASM->SetPropMethod(2, yystack.l_mark[0].token); } +#line 8996 "asmparse.cpp" +break; +case 268: #line 768 "asmparse.y" - { PASM->ResetForNextMethod(); - uMethodBeginLine = PASM->m_ulCurLine; - uMethodBeginColumn=PASM->m_ulCurColumn; + { PASM->ResetForNextMethod(); + uMethodBeginLine = PASM->m_ulCurLine; + uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 5364 "asmparse.cpp" - break; - - case 270: /* marshalClause: %empty */ +#line 9004 "asmparse.cpp" +break; +case 269: #line 774 "asmparse.y" - { (yyval.binstr) = NULL; } -#line 5370 "asmparse.cpp" - break; - - case 271: /* marshalClause: MARSHAL_ '(' marshalBlob ')' */ + { yyval.binstr = NULL; } +#line 9009 "asmparse.cpp" +break; +case 270: #line 775 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 5376 "asmparse.cpp" - break; - - case 272: /* marshalBlob: nativeType */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 9014 "asmparse.cpp" +break; +case 271: #line 778 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 5382 "asmparse.cpp" - break; - - case 273: /* marshalBlob: marshalBlobHead hexbytes '}' */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9019 "asmparse.cpp" +break; +case 272: #line 779 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 5388 "asmparse.cpp" - break; - - case 274: /* marshalBlobHead: '{' */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 9024 "asmparse.cpp" +break; +case 273: #line 782 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 5394 "asmparse.cpp" - break; - - case 275: /* methodHead: methodHeadPart1 methAttr callConv paramAttr type marshalClause methodName typarsClause '(' sigArgs0 ')' implAttr '{' */ + { bParsingByteArray = TRUE; } +#line 9029 "asmparse.cpp" +break; +case 274: #line 786 "asmparse.y" - { BinStr* sig; - if ((yyvsp[-5].typarlist) == NULL) sig = parser->MakeSig((yyvsp[-10].int32), (yyvsp[-8].binstr), (yyvsp[-3].binstr)); - else { - FixupTyPars((yyvsp[-8].binstr)); - sig = parser->MakeSig((yyvsp[-10].int32) | IMAGE_CEE_CS_CALLCONV_GENERIC, (yyvsp[-8].binstr), (yyvsp[-3].binstr), (yyvsp[-5].typarlist)->Count()); - FixupConstraints(); - } - PASM->StartMethod((yyvsp[-6].string), sig, (yyvsp[-11].methAttr), (yyvsp[-7].binstr), (yyvsp[-9].int32), (yyvsp[-5].typarlist)); - TyParFixupList.RESET(false); - PASM->SetImplAttr((USHORT)(yyvsp[-1].implAttr)); - PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; - PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; + { BinStr* sig; + if (yystack.l_mark[-5].typarlist == NULL) sig = parser->MakeSig(yystack.l_mark[-10].int32, yystack.l_mark[-8].binstr, yystack.l_mark[-3].binstr); + else { + FixupTyPars(yystack.l_mark[-8].binstr); + sig = parser->MakeSig(yystack.l_mark[-10].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC, yystack.l_mark[-8].binstr, yystack.l_mark[-3].binstr, yystack.l_mark[-5].typarlist->Count()); + FixupConstraints(); + } + PASM->StartMethod(yystack.l_mark[-6].string, sig, yystack.l_mark[-11].methAttr, yystack.l_mark[-7].binstr, yystack.l_mark[-9].int32, yystack.l_mark[-5].typarlist); + TyParFixupList.RESET(false); + PASM->SetImplAttr((USHORT)yystack.l_mark[-1].implAttr); + PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; + PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 5412 "asmparse.cpp" - break; - - case 276: /* methAttr: %empty */ +#line 9046 "asmparse.cpp" +break; +case 275: #line 801 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) 0; } -#line 5418 "asmparse.cpp" - break; - - case 277: /* methAttr: methAttr STATIC_ */ + { yyval.methAttr = (CorMethodAttr) 0; } +#line 9051 "asmparse.cpp" +break; +case 276: #line 802 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdStatic); } -#line 5424 "asmparse.cpp" - break; - - case 278: /* methAttr: methAttr PUBLIC_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdStatic); } +#line 9056 "asmparse.cpp" +break; +case 277: #line 803 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPublic); } -#line 5430 "asmparse.cpp" - break; - - case 279: /* methAttr: methAttr PRIVATE_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } +#line 9061 "asmparse.cpp" +break; +case 278: #line 804 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivate); } -#line 5436 "asmparse.cpp" - break; - - case 280: /* methAttr: methAttr FAMILY_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } +#line 9066 "asmparse.cpp" +break; +case 279: #line 805 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamily); } -#line 5442 "asmparse.cpp" - break; - - case 281: /* methAttr: methAttr FINAL_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } +#line 9071 "asmparse.cpp" +break; +case 280: #line 806 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdFinal); } -#line 5448 "asmparse.cpp" - break; - - case 282: /* methAttr: methAttr SPECIALNAME_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdFinal); } +#line 9076 "asmparse.cpp" +break; +case 281: #line 807 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdSpecialName); } -#line 5454 "asmparse.cpp" - break; - - case 283: /* methAttr: methAttr VIRTUAL_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdSpecialName); } +#line 9081 "asmparse.cpp" +break; +case 282: #line 808 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdVirtual); } -#line 5460 "asmparse.cpp" - break; - - case 284: /* methAttr: methAttr STRICT_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdVirtual); } +#line 9086 "asmparse.cpp" +break; +case 283: #line 809 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdCheckAccessOnOverride); } -#line 5466 "asmparse.cpp" - break; - - case 285: /* methAttr: methAttr ABSTRACT_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdCheckAccessOnOverride); } +#line 9091 "asmparse.cpp" +break; +case 284: #line 810 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdAbstract); } -#line 5472 "asmparse.cpp" - break; - - case 286: /* methAttr: methAttr ASSEMBLY_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdAbstract); } +#line 9096 "asmparse.cpp" +break; +case 285: #line 811 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdAssem); } -#line 5478 "asmparse.cpp" - break; - - case 287: /* methAttr: methAttr FAMANDASSEM_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } +#line 9101 "asmparse.cpp" +break; +case 286: #line 812 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 5484 "asmparse.cpp" - break; - - case 288: /* methAttr: methAttr FAMORASSEM_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } +#line 9106 "asmparse.cpp" +break; +case 287: #line 813 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdFamORAssem); } -#line 5490 "asmparse.cpp" - break; - - case 289: /* methAttr: methAttr PRIVATESCOPE_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } +#line 9111 "asmparse.cpp" +break; +case 288: #line 814 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) (((yyvsp[-1].methAttr) & ~mdMemberAccessMask) | mdPrivateScope); } -#line 5496 "asmparse.cpp" - break; - - case 290: /* methAttr: methAttr HIDEBYSIG_ */ + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } +#line 9116 "asmparse.cpp" +break; +case 289: #line 815 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdHideBySig); } -#line 5502 "asmparse.cpp" - break; - - case 291: /* methAttr: methAttr NEWSLOT_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdHideBySig); } +#line 9121 "asmparse.cpp" +break; +case 290: #line 816 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdNewSlot); } -#line 5508 "asmparse.cpp" - break; - - case 292: /* methAttr: methAttr RTSPECIALNAME_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdNewSlot); } +#line 9126 "asmparse.cpp" +break; +case 291: #line 817 "asmparse.y" - { (yyval.methAttr) = (yyvsp[-1].methAttr); } -#line 5514 "asmparse.cpp" - break; - - case 293: /* methAttr: methAttr UNMANAGEDEXP_ */ + { yyval.methAttr = yystack.l_mark[-1].methAttr; } +#line 9131 "asmparse.cpp" +break; +case 292: #line 818 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdUnmanagedExport); } -#line 5520 "asmparse.cpp" - break; - - case 294: /* methAttr: methAttr REQSECOBJ_ */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdUnmanagedExport); } +#line 9136 "asmparse.cpp" +break; +case 293: #line 819 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].methAttr) | mdRequireSecObject); } -#line 5526 "asmparse.cpp" - break; - - case 295: /* methAttr: methAttr FLAGS_ '(' int32 ')' */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdRequireSecObject); } +#line 9141 "asmparse.cpp" +break; +case 294: #line 820 "asmparse.y" - { (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-1].int32)); } -#line 5532 "asmparse.cpp" - break; - - case 296: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring AS_ compQstring pinvAttr ')' */ + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].int32); } +#line 9146 "asmparse.cpp" +break; +case 295: #line 822 "asmparse.y" - { PASM->SetPinvoke((yyvsp[-4].binstr),0,(yyvsp[-2].binstr),(yyvsp[-1].pinvAttr)); - (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-7].methAttr) | mdPinvokeImpl); } -#line 5539 "asmparse.cpp" - break; - - case 297: /* methAttr: methAttr PINVOKEIMPL_ '(' compQstring pinvAttr ')' */ + { PASM->SetPinvoke(yystack.l_mark[-4].binstr,0,yystack.l_mark[-2].binstr,yystack.l_mark[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-7].methAttr | mdPinvokeImpl); } +#line 9152 "asmparse.cpp" +break; +case 296: #line 825 "asmparse.y" - { PASM->SetPinvoke((yyvsp[-2].binstr),0,NULL,(yyvsp[-1].pinvAttr)); - (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-5].methAttr) | mdPinvokeImpl); } -#line 5546 "asmparse.cpp" - break; - - case 298: /* methAttr: methAttr PINVOKEIMPL_ '(' pinvAttr ')' */ + { PASM->SetPinvoke(yystack.l_mark[-2].binstr,0,NULL,yystack.l_mark[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-5].methAttr | mdPinvokeImpl); } +#line 9158 "asmparse.cpp" +break; +case 297: #line 828 "asmparse.y" - { PASM->SetPinvoke(new BinStr(),0,NULL,(yyvsp[-1].pinvAttr)); - (yyval.methAttr) = (CorMethodAttr) ((yyvsp[-4].methAttr) | mdPinvokeImpl); } -#line 5553 "asmparse.cpp" - break; - - case 299: /* pinvAttr: %empty */ + { PASM->SetPinvoke(new BinStr(),0,NULL,yystack.l_mark[-1].pinvAttr); + yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-4].methAttr | mdPinvokeImpl); } +#line 9164 "asmparse.cpp" +break; +case 298: #line 832 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) 0; } -#line 5559 "asmparse.cpp" - break; - - case 300: /* pinvAttr: pinvAttr NOMANGLE_ */ + { yyval.pinvAttr = (CorPinvokeMap) 0; } +#line 9169 "asmparse.cpp" +break; +case 299: #line 833 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmNoMangle); } -#line 5565 "asmparse.cpp" - break; - - case 301: /* pinvAttr: pinvAttr ANSI_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmNoMangle); } +#line 9174 "asmparse.cpp" +break; +case 300: #line 834 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAnsi); } -#line 5571 "asmparse.cpp" - break; - - case 302: /* pinvAttr: pinvAttr UNICODE_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAnsi); } +#line 9179 "asmparse.cpp" +break; +case 301: #line 835 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetUnicode); } -#line 5577 "asmparse.cpp" - break; - - case 303: /* pinvAttr: pinvAttr AUTOCHAR_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetUnicode); } +#line 9184 "asmparse.cpp" +break; +case 302: #line 836 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCharSetAuto); } -#line 5583 "asmparse.cpp" - break; - - case 304: /* pinvAttr: pinvAttr LASTERR_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAuto); } +#line 9189 "asmparse.cpp" +break; +case 303: #line 837 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmSupportsLastError); } -#line 5589 "asmparse.cpp" - break; - - case 305: /* pinvAttr: pinvAttr WINAPI_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmSupportsLastError); } +#line 9194 "asmparse.cpp" +break; +case 304: #line 838 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvWinapi); } -#line 5595 "asmparse.cpp" - break; - - case 306: /* pinvAttr: pinvAttr CDECL_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvWinapi); } +#line 9199 "asmparse.cpp" +break; +case 305: #line 839 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvCdecl); } -#line 5601 "asmparse.cpp" - break; - - case 307: /* pinvAttr: pinvAttr STDCALL_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvCdecl); } +#line 9204 "asmparse.cpp" +break; +case 306: #line 840 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvStdcall); } -#line 5607 "asmparse.cpp" - break; - - case 308: /* pinvAttr: pinvAttr THISCALL_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvStdcall); } +#line 9209 "asmparse.cpp" +break; +case 307: #line 841 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvThiscall); } -#line 5613 "asmparse.cpp" - break; - - case 309: /* pinvAttr: pinvAttr FASTCALL_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvThiscall); } +#line 9214 "asmparse.cpp" +break; +case 308: #line 842 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].pinvAttr) | pmCallConvFastcall); } -#line 5619 "asmparse.cpp" - break; - - case 310: /* pinvAttr: pinvAttr BESTFIT_ ':' ON_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvFastcall); } +#line 9219 "asmparse.cpp" +break; +case 309: #line 843 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitEnabled); } -#line 5625 "asmparse.cpp" - break; - - case 311: /* pinvAttr: pinvAttr BESTFIT_ ':' OFF_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitEnabled); } +#line 9224 "asmparse.cpp" +break; +case 310: #line 844 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmBestFitDisabled); } -#line 5631 "asmparse.cpp" - break; - - case 312: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' ON_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitDisabled); } +#line 9229 "asmparse.cpp" +break; +case 311: #line 845 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharEnabled); } -#line 5637 "asmparse.cpp" - break; - - case 313: /* pinvAttr: pinvAttr CHARMAPERROR_ ':' OFF_ */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } +#line 9234 "asmparse.cpp" +break; +case 312: #line 846 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-3].pinvAttr) | pmThrowOnUnmappableCharDisabled); } -#line 5643 "asmparse.cpp" - break; - - case 314: /* pinvAttr: pinvAttr FLAGS_ '(' int32 ')' */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } +#line 9239 "asmparse.cpp" +break; +case 313: #line 847 "asmparse.y" - { (yyval.pinvAttr) = (CorPinvokeMap) ((yyvsp[-1].int32)); } -#line 5649 "asmparse.cpp" - break; - - case 315: /* methodName: _CTOR */ + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].int32); } +#line 9244 "asmparse.cpp" +break; +case 314: #line 850 "asmparse.y" - { (yyval.string) = newString(COR_CTOR_METHOD_NAME); } -#line 5655 "asmparse.cpp" - break; - - case 316: /* methodName: _CCTOR */ + { yyval.string = newString(COR_CTOR_METHOD_NAME); } +#line 9249 "asmparse.cpp" +break; +case 315: #line 851 "asmparse.y" - { (yyval.string) = newString(COR_CCTOR_METHOD_NAME); } -#line 5661 "asmparse.cpp" - break; - - case 317: /* methodName: dottedName */ + { yyval.string = newString(COR_CCTOR_METHOD_NAME); } +#line 9254 "asmparse.cpp" +break; +case 316: #line 852 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 5667 "asmparse.cpp" - break; - - case 318: /* paramAttr: %empty */ + { yyval.string = yystack.l_mark[0].string; } +#line 9259 "asmparse.cpp" +break; +case 317: #line 855 "asmparse.y" - { (yyval.int32) = 0; } -#line 5673 "asmparse.cpp" - break; - - case 319: /* paramAttr: paramAttr '[' IN_ ']' */ + { yyval.int32 = 0; } +#line 9264 "asmparse.cpp" +break; +case 318: #line 856 "asmparse.y" - { (yyval.int32) = (yyvsp[-3].int32) | pdIn; } -#line 5679 "asmparse.cpp" - break; - - case 320: /* paramAttr: paramAttr '[' OUT_ ']' */ + { yyval.int32 = yystack.l_mark[-3].int32 | pdIn; } +#line 9269 "asmparse.cpp" +break; +case 319: #line 857 "asmparse.y" - { (yyval.int32) = (yyvsp[-3].int32) | pdOut; } -#line 5685 "asmparse.cpp" - break; - - case 321: /* paramAttr: paramAttr '[' OPT_ ']' */ + { yyval.int32 = yystack.l_mark[-3].int32 | pdOut; } +#line 9274 "asmparse.cpp" +break; +case 320: #line 858 "asmparse.y" - { (yyval.int32) = (yyvsp[-3].int32) | pdOptional; } -#line 5691 "asmparse.cpp" - break; - - case 322: /* paramAttr: paramAttr '[' int32 ']' */ + { yyval.int32 = yystack.l_mark[-3].int32 | pdOptional; } +#line 9279 "asmparse.cpp" +break; +case 321: #line 859 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) + 1; } -#line 5697 "asmparse.cpp" - break; - - case 323: /* implAttr: %empty */ + { yyval.int32 = yystack.l_mark[-1].int32 + 1; } +#line 9284 "asmparse.cpp" +break; +case 322: #line 862 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (miIL | miManaged); } -#line 5703 "asmparse.cpp" - break; - - case 324: /* implAttr: implAttr NATIVE_ */ + { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } +#line 9289 "asmparse.cpp" +break; +case 323: #line 863 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miNative); } -#line 5709 "asmparse.cpp" - break; - - case 325: /* implAttr: implAttr CIL_ */ + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miNative); } +#line 9294 "asmparse.cpp" +break; +case 324: #line 864 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miIL); } -#line 5715 "asmparse.cpp" - break; - - case 326: /* implAttr: implAttr OPTIL_ */ + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miIL); } +#line 9299 "asmparse.cpp" +break; +case 325: #line 865 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFF4) | miOPTIL); } -#line 5721 "asmparse.cpp" - break; - - case 327: /* implAttr: implAttr MANAGED_ */ + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miOPTIL); } +#line 9304 "asmparse.cpp" +break; +case 326: #line 866 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miManaged); } -#line 5727 "asmparse.cpp" - break; - - case 328: /* implAttr: implAttr UNMANAGED_ */ + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miManaged); } +#line 9309 "asmparse.cpp" +break; +case 327: #line 867 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) (((yyvsp[-1].implAttr) & 0xFFFB) | miUnmanaged); } -#line 5733 "asmparse.cpp" - break; - - case 329: /* implAttr: implAttr FORWARDREF_ */ + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miUnmanaged); } +#line 9314 "asmparse.cpp" +break; +case 328: #line 868 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miForwardRef); } -#line 5739 "asmparse.cpp" - break; - - case 330: /* implAttr: implAttr PRESERVESIG_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miForwardRef); } +#line 9319 "asmparse.cpp" +break; +case 329: #line 869 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miPreserveSig); } -#line 5745 "asmparse.cpp" - break; - - case 331: /* implAttr: implAttr RUNTIME_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miPreserveSig); } +#line 9324 "asmparse.cpp" +break; +case 330: #line 870 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miRuntime); } -#line 5751 "asmparse.cpp" - break; - - case 332: /* implAttr: implAttr INTERNALCALL_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miRuntime); } +#line 9329 "asmparse.cpp" +break; +case 331: #line 871 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miInternalCall); } -#line 5757 "asmparse.cpp" - break; - - case 333: /* implAttr: implAttr SYNCHRONIZED_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miInternalCall); } +#line 9334 "asmparse.cpp" +break; +case 332: #line 872 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miSynchronized); } -#line 5763 "asmparse.cpp" - break; - - case 334: /* implAttr: implAttr NOINLINING_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miSynchronized); } +#line 9339 "asmparse.cpp" +break; +case 333: #line 873 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoInlining); } -#line 5769 "asmparse.cpp" - break; - - case 335: /* implAttr: implAttr AGGRESSIVEINLINING_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoInlining); } +#line 9344 "asmparse.cpp" +break; +case 334: #line 874 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveInlining); } -#line 5775 "asmparse.cpp" - break; - - case 336: /* implAttr: implAttr NOOPTIMIZATION_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveInlining); } +#line 9349 "asmparse.cpp" +break; +case 335: #line 875 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miNoOptimization); } -#line 5781 "asmparse.cpp" - break; - - case 337: /* implAttr: implAttr AGGRESSIVEOPTIMIZATION_ */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoOptimization); } +#line 9354 "asmparse.cpp" +break; +case 336: #line 876 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].implAttr) | miAggressiveOptimization); } -#line 5787 "asmparse.cpp" - break; - - case 338: /* implAttr: implAttr FLAGS_ '(' int32 ')' */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveOptimization); } +#line 9359 "asmparse.cpp" +break; +case 337: #line 877 "asmparse.y" - { (yyval.implAttr) = (CorMethodImpl) ((yyvsp[-1].int32)); } -#line 5793 "asmparse.cpp" - break; - - case 339: /* localsHead: _LOCALS */ + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].int32); } +#line 9364 "asmparse.cpp" +break; +case 338: #line 880 "asmparse.y" - { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; + { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 5800 "asmparse.cpp" - break; - - case 342: /* methodDecl: _EMITBYTE int32 */ +#line 9370 "asmparse.cpp" +break; +case 341: #line 888 "asmparse.y" - { PASM->EmitByte((yyvsp[0].int32)); } -#line 5806 "asmparse.cpp" - break; - - case 343: /* methodDecl: sehBlock */ + { PASM->EmitByte(yystack.l_mark[0].int32); } +#line 9375 "asmparse.cpp" +break; +case 342: #line 889 "asmparse.y" - { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 5812 "asmparse.cpp" - break; - - case 344: /* methodDecl: _MAXSTACK int32 */ + { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } +#line 9380 "asmparse.cpp" +break; +case 343: #line 890 "asmparse.y" - { PASM->EmitMaxStack((yyvsp[0].int32)); } -#line 5818 "asmparse.cpp" - break; - - case 345: /* methodDecl: localsHead '(' sigArgs0 ')' */ + { PASM->EmitMaxStack(yystack.l_mark[0].int32); } +#line 9385 "asmparse.cpp" +break; +case 344: #line 891 "asmparse.y" - { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); + { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 5825 "asmparse.cpp" - break; - - case 346: /* methodDecl: localsHead INIT_ '(' sigArgs0 ')' */ +#line 9391 "asmparse.cpp" +break; +case 345: #line 893 "asmparse.y" - { PASM->EmitZeroInit(); - PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, (yyvsp[-1].binstr))); + { PASM->EmitZeroInit(); + PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 5833 "asmparse.cpp" - break; - - case 347: /* methodDecl: _ENTRYPOINT */ +#line 9398 "asmparse.cpp" +break; +case 346: #line 896 "asmparse.y" - { PASM->EmitEntryPoint(); } -#line 5839 "asmparse.cpp" - break; - - case 348: /* methodDecl: _ZEROINIT */ + { PASM->EmitEntryPoint(); } +#line 9403 "asmparse.cpp" +break; +case 347: #line 897 "asmparse.y" - { PASM->EmitZeroInit(); } -#line 5845 "asmparse.cpp" - break; - - case 351: /* methodDecl: id ':' */ + { PASM->EmitZeroInit(); } +#line 9408 "asmparse.cpp" +break; +case 350: #line 900 "asmparse.y" - { PASM->AddLabel(PASM->m_CurPC,(yyvsp[-1].string)); /*PASM->EmitLabel($1);*/ } -#line 5851 "asmparse.cpp" - break; - - case 357: /* methodDecl: _EXPORT '[' int32 ']' */ + { PASM->AddLabel(PASM->m_CurPC,yystack.l_mark[-1].string); /*PASM->EmitLabel($1);*/ } +#line 9413 "asmparse.cpp" +break; +case 356: #line 906 "asmparse.y" - { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) - { - PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-1].int32); - PASM->m_pCurMethod->m_szExportAlias = NULL; - if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)((yyvsp[-1].int32) + 0x8000); - } - else - PASM->report->warn("Duplicate .export directive, ignored\n"); + { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) + { + PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-1].int32; + PASM->m_pCurMethod->m_szExportAlias = NULL; + if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yystack.l_mark[-1].int32 + 0x8000); + } + else + PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 5866 "asmparse.cpp" - break; - - case 358: /* methodDecl: _EXPORT '[' int32 ']' AS_ id */ +#line 9427 "asmparse.cpp" +break; +case 357: #line 916 "asmparse.y" - { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) - { - PASM->m_pCurMethod->m_dwExportOrdinal = (yyvsp[-3].int32); - PASM->m_pCurMethod->m_szExportAlias = (yyvsp[0].string); - if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; - if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)((yyvsp[-3].int32) + 0x8000); - } - else - PASM->report->warn("Duplicate .export directive, ignored\n"); + { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) + { + PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-3].int32; + PASM->m_pCurMethod->m_szExportAlias = yystack.l_mark[0].string; + if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; + if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = (WORD)(yystack.l_mark[-3].int32 + 0x8000); + } + else + PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 5881 "asmparse.cpp" - break; - - case 359: /* methodDecl: _VTENTRY int32 ':' int32 */ +#line 9441 "asmparse.cpp" +break; +case 358: #line 926 "asmparse.y" - { PASM->m_pCurMethod->m_wVTEntry = (WORD)(yyvsp[-2].int32); - PASM->m_pCurMethod->m_wVTSlot = (WORD)(yyvsp[0].int32); } -#line 5888 "asmparse.cpp" - break; - - case 360: /* methodDecl: _OVERRIDE typeSpec DCOLON methodName */ + { PASM->m_pCurMethod->m_wVTEntry = (WORD)yystack.l_mark[-2].int32; + PASM->m_pCurMethod->m_wVTSlot = (WORD)yystack.l_mark[0].int32; } +#line 9447 "asmparse.cpp" +break; +case 359: #line 929 "asmparse.y" - { PASM->AddMethodImpl((yyvsp[-2].token),(yyvsp[0].string),NULL,NULL,NULL,NULL); } -#line 5894 "asmparse.cpp" - break; - - case 361: /* methodDecl: _OVERRIDE METHOD_ callConv type typeSpec DCOLON methodName genArity '(' sigArgs0 ')' */ + { PASM->AddMethodImpl(yystack.l_mark[-2].token,yystack.l_mark[0].string,NULL,NULL,NULL,NULL); } +#line 9452 "asmparse.cpp" +break; +case 360: #line 932 "asmparse.y" - { PASM->AddMethodImpl((yyvsp[-6].token),(yyvsp[-4].string), - ((yyvsp[-3].int32)==0 ? parser->MakeSig((yyvsp[-8].int32),(yyvsp[-7].binstr),(yyvsp[-1].binstr)) : - parser->MakeSig((yyvsp[-8].int32)| IMAGE_CEE_CS_CALLCONV_GENERIC,(yyvsp[-7].binstr),(yyvsp[-1].binstr),(yyvsp[-3].int32))) - ,NULL,NULL,NULL); - PASM->ResetArgNameList(); + { PASM->AddMethodImpl(yystack.l_mark[-6].token,yystack.l_mark[-4].string, + (yystack.l_mark[-3].int32==0 ? parser->MakeSig(yystack.l_mark[-8].int32,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr) : + parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32)) + ,NULL,NULL,NULL); + PASM->ResetArgNameList(); } -#line 5905 "asmparse.cpp" - break; - - case 363: /* methodDecl: _PARAM TYPE_ '[' int32 ']' */ +#line 9462 "asmparse.cpp" +break; +case 362: #line 939 "asmparse.y" - { if(((yyvsp[-1].int32) > 0) && ((yyvsp[-1].int32) <= (int)PASM->m_pCurMethod->m_NumTyPars)) - PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[(yyvsp[-1].int32)-1].CAList(); - else - PASM->report->error("Type parameter index out of range\n"); + { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) + PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); + else + PASM->report->error("Type parameter index out of range\n"); } -#line 5915 "asmparse.cpp" - break; - - case 364: /* methodDecl: _PARAM TYPE_ dottedName */ +#line 9471 "asmparse.cpp" +break; +case 363: #line 944 "asmparse.y" - { int n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); - if(n >= 0) - PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); - else - PASM->report->error("Type parameter '%s' undefined\n",(yyvsp[0].string)); + { int n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); + if(n >= 0) + PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); + else + PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 5926 "asmparse.cpp" - break; - - case 365: /* methodDecl: _PARAM CONSTRAINT_ '[' int32 ']' ',' typeSpec */ +#line 9481 "asmparse.cpp" +break; +case 364: #line 950 "asmparse.y" - { PASM->m_pCurMethod->AddGenericParamConstraint((yyvsp[-3].int32), 0, (yyvsp[0].token)); } -#line 5932 "asmparse.cpp" - break; - - case 366: /* methodDecl: _PARAM CONSTRAINT_ dottedName ',' typeSpec */ + { PASM->m_pCurMethod->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } +#line 9486 "asmparse.cpp" +break; +case 365: #line 951 "asmparse.y" - { PASM->m_pCurMethod->AddGenericParamConstraint(0, (yyvsp[-2].string), (yyvsp[0].token)); } -#line 5938 "asmparse.cpp" - break; - - case 367: /* methodDecl: _PARAM '[' int32 ']' initOpt */ + { PASM->m_pCurMethod->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } +#line 9491 "asmparse.cpp" +break; +case 366: #line 954 "asmparse.y" - { if( (yyvsp[-2].int32) ) { - ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, (yyvsp[-2].int32) - 1); - if(pAN) - { - PASM->m_pCustomDescrList = &(pAN->CustDList); - pAN->pValue = (yyvsp[0].binstr); - } - else - { - PASM->m_pCustomDescrList = NULL; - if((yyvsp[0].binstr)) delete (yyvsp[0].binstr); - } - } else { - PASM->m_pCustomDescrList = &(PASM->m_pCurMethod->m_RetCustDList); - PASM->m_pCurMethod->m_pRetValue = (yyvsp[0].binstr); - } - PASM->m_tkCurrentCVOwner = 0; + { if( yystack.l_mark[-2].int32 ) { + ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yystack.l_mark[-2].int32 - 1); + if(pAN) + { + PASM->m_pCustomDescrList = &(pAN->CustDList); + pAN->pValue = yystack.l_mark[0].binstr; + } + else + { + PASM->m_pCustomDescrList = NULL; + if(yystack.l_mark[0].binstr) delete yystack.l_mark[0].binstr; + } + } else { + PASM->m_pCustomDescrList = &(PASM->m_pCurMethod->m_RetCustDList); + PASM->m_pCurMethod->m_pRetValue = yystack.l_mark[0].binstr; + } + PASM->m_tkCurrentCVOwner = 0; } -#line 5961 "asmparse.cpp" - break; - - case 368: /* scopeBlock: scopeOpen methodDecls '}' */ +#line 9513 "asmparse.cpp" +break; +case 367: #line 974 "asmparse.y" - { PASM->m_pCurMethod->CloseScope(); } -#line 5967 "asmparse.cpp" - break; - - case 369: /* scopeOpen: '{' */ + { PASM->m_pCurMethod->CloseScope(); } +#line 9518 "asmparse.cpp" +break; +case 368: #line 977 "asmparse.y" - { PASM->m_pCurMethod->OpenScope(); } -#line 5973 "asmparse.cpp" - break; - - case 373: /* tryBlock: tryHead scopeBlock */ + { PASM->m_pCurMethod->OpenScope(); } +#line 9523 "asmparse.cpp" +break; +case 372: #line 988 "asmparse.y" - { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 5979 "asmparse.cpp" - break; - - case 374: /* tryBlock: tryHead id TO_ id */ + { PASM->m_SEHD->tryTo = PASM->m_CurPC; } +#line 9528 "asmparse.cpp" +break; +case 373: #line 989 "asmparse.y" - { PASM->SetTryLabels((yyvsp[-2].string), (yyvsp[0].string)); } -#line 5985 "asmparse.cpp" - break; - - case 375: /* tryBlock: tryHead int32 TO_ int32 */ + { PASM->SetTryLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } +#line 9533 "asmparse.cpp" +break; +case 374: #line 990 "asmparse.y" - { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = (yyvsp[-2].int32); - PASM->m_SEHD->tryTo = (yyvsp[0].int32);} } -#line 5992 "asmparse.cpp" - break; - - case 376: /* tryHead: _TRY */ + { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yystack.l_mark[-2].int32; + PASM->m_SEHD->tryTo = yystack.l_mark[0].int32;} } +#line 9539 "asmparse.cpp" +break; +case 375: #line 994 "asmparse.y" - { PASM->NewSEHDescriptor(); + { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 5999 "asmparse.cpp" - break; - - case 377: /* sehClause: catchClause handlerBlock */ +#line 9545 "asmparse.cpp" +break; +case 376: #line 999 "asmparse.y" - { PASM->EmitTry(); } -#line 6005 "asmparse.cpp" - break; - - case 378: /* sehClause: filterClause handlerBlock */ + { PASM->EmitTry(); } +#line 9550 "asmparse.cpp" +break; +case 377: #line 1000 "asmparse.y" - { PASM->EmitTry(); } -#line 6011 "asmparse.cpp" - break; - - case 379: /* sehClause: finallyClause handlerBlock */ + { PASM->EmitTry(); } +#line 9555 "asmparse.cpp" +break; +case 378: #line 1001 "asmparse.y" - { PASM->EmitTry(); } -#line 6017 "asmparse.cpp" - break; - - case 380: /* sehClause: faultClause handlerBlock */ + { PASM->EmitTry(); } +#line 9560 "asmparse.cpp" +break; +case 379: #line 1002 "asmparse.y" - { PASM->EmitTry(); } -#line 6023 "asmparse.cpp" - break; - - case 381: /* filterClause: filterHead scopeBlock */ + { PASM->EmitTry(); } +#line 9565 "asmparse.cpp" +break; +case 380: #line 1006 "asmparse.y" - { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6029 "asmparse.cpp" - break; - - case 382: /* filterClause: filterHead id */ + { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 9570 "asmparse.cpp" +break; +case 381: #line 1007 "asmparse.y" - { PASM->SetFilterLabel((yyvsp[0].string)); + { PASM->SetFilterLabel(yystack.l_mark[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6036 "asmparse.cpp" - break; - - case 383: /* filterClause: filterHead int32 */ +#line 9576 "asmparse.cpp" +break; +case 382: #line 1009 "asmparse.y" - { PASM->m_SEHD->sehFilter = (yyvsp[0].int32); + { PASM->m_SEHD->sehFilter = yystack.l_mark[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6043 "asmparse.cpp" - break; - - case 384: /* filterHead: FILTER_ */ +#line 9582 "asmparse.cpp" +break; +case 383: #line 1013 "asmparse.y" - { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 6050 "asmparse.cpp" - break; - - case 385: /* catchClause: CATCH_ typeSpec */ +#line 9588 "asmparse.cpp" +break; +case 384: #line 1017 "asmparse.y" - { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; - PASM->SetCatchClass((yyvsp[0].token)); + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; + PASM->SetCatchClass(yystack.l_mark[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6058 "asmparse.cpp" - break; - - case 386: /* finallyClause: FINALLY_ */ +#line 9595 "asmparse.cpp" +break; +case 385: #line 1022 "asmparse.y" - { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6065 "asmparse.cpp" - break; - - case 387: /* faultClause: FAULT_ */ +#line 9601 "asmparse.cpp" +break; +case 386: #line 1026 "asmparse.y" - { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; + { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 6072 "asmparse.cpp" - break; - - case 388: /* handlerBlock: scopeBlock */ +#line 9607 "asmparse.cpp" +break; +case 387: #line 1030 "asmparse.y" - { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 6078 "asmparse.cpp" - break; - - case 389: /* handlerBlock: HANDLER_ id TO_ id */ + { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } +#line 9612 "asmparse.cpp" +break; +case 388: #line 1031 "asmparse.y" - { PASM->SetHandlerLabels((yyvsp[-2].string), (yyvsp[0].string)); } -#line 6084 "asmparse.cpp" - break; - - case 390: /* handlerBlock: HANDLER_ int32 TO_ int32 */ + { PASM->SetHandlerLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } +#line 9617 "asmparse.cpp" +break; +case 389: #line 1032 "asmparse.y" - { PASM->m_SEHD->sehHandler = (yyvsp[-2].int32); - PASM->m_SEHD->sehHandlerTo = (yyvsp[0].int32); } -#line 6091 "asmparse.cpp" - break; - - case 392: /* ddHead: _DATA tls id '=' */ + { PASM->m_SEHD->sehHandler = yystack.l_mark[-2].int32; + PASM->m_SEHD->sehHandlerTo = yystack.l_mark[0].int32; } +#line 9623 "asmparse.cpp" +break; +case 391: #line 1040 "asmparse.y" - { PASM->EmitDataLabel((yyvsp[-1].string)); } -#line 6097 "asmparse.cpp" - break; - - case 394: /* tls: %empty */ + { PASM->EmitDataLabel(yystack.l_mark[-1].string); } +#line 9628 "asmparse.cpp" +break; +case 393: #line 1044 "asmparse.y" - { PASM->SetDataSection(); } -#line 6103 "asmparse.cpp" - break; - - case 395: /* tls: TLS_ */ + { PASM->SetDataSection(); } +#line 9633 "asmparse.cpp" +break; +case 394: #line 1045 "asmparse.y" - { PASM->SetTLSSection(); } -#line 6109 "asmparse.cpp" - break; - - case 396: /* tls: CIL_ */ + { PASM->SetTLSSection(); } +#line 9638 "asmparse.cpp" +break; +case 395: #line 1046 "asmparse.y" - { PASM->SetILSection(); } -#line 6115 "asmparse.cpp" - break; - - case 401: /* ddItemCount: %empty */ + { PASM->SetILSection(); } +#line 9643 "asmparse.cpp" +break; +case 400: #line 1057 "asmparse.y" - { (yyval.int32) = 1; } -#line 6121 "asmparse.cpp" - break; - - case 402: /* ddItemCount: '[' int32 ']' */ + { yyval.int32 = 1; } +#line 9648 "asmparse.cpp" +break; +case 401: #line 1058 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32); - if((yyvsp[-1].int32) <= 0) { PASM->report->error("Illegal item count: %d\n",(yyvsp[-1].int32)); - if(!PASM->OnErrGo) (yyval.int32) = 1; }} -#line 6129 "asmparse.cpp" - break; - - case 403: /* ddItem: CHAR_ '*' '(' compQstring ')' */ + { yyval.int32 = yystack.l_mark[-1].int32; + if(yystack.l_mark[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yystack.l_mark[-1].int32); + if(!PASM->OnErrGo) yyval.int32 = 1; }} +#line 9655 "asmparse.cpp" +break; +case 402: #line 1063 "asmparse.y" - { PASM->EmitDataString((yyvsp[-1].binstr)); } -#line 6135 "asmparse.cpp" - break; - - case 404: /* ddItem: '&' '(' id ')' */ + { PASM->EmitDataString(yystack.l_mark[-1].binstr); } +#line 9660 "asmparse.cpp" +break; +case 403: #line 1064 "asmparse.y" - { PASM->EmitDD((yyvsp[-1].string)); } -#line 6141 "asmparse.cpp" - break; - - case 405: /* ddItem: bytearrayhead bytes ')' */ + { PASM->EmitDD(yystack.l_mark[-1].string); } +#line 9665 "asmparse.cpp" +break; +case 404: #line 1065 "asmparse.y" - { PASM->EmitData((yyvsp[-1].binstr)->ptr(),(yyvsp[-1].binstr)->length()); } -#line 6147 "asmparse.cpp" - break; - - case 406: /* ddItem: FLOAT32_ '(' float64 ')' ddItemCount */ + { PASM->EmitData(yystack.l_mark[-1].binstr->ptr(),yystack.l_mark[-1].binstr->length()); } +#line 9670 "asmparse.cpp" +break; +case 405: #line 1067 "asmparse.y" - { float f = (float) (*(yyvsp[-2].float64)); float* p = new (nothrow) float[(yyvsp[0].int32)]; - if(p != NULL) { - for(int i=0; i < (yyvsp[0].int32); i++) p[i] = f; - PASM->EmitData(p, sizeof(float)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(float)*(yyvsp[0].int32)); } -#line 6158 "asmparse.cpp" - break; - - case 407: /* ddItem: FLOAT64_ '(' float64 ')' ddItemCount */ + { float f = (float) (*yystack.l_mark[-2].float64); float* p = new (nothrow) float[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int i=0; i < yystack.l_mark[0].int32; i++) p[i] = f; + PASM->EmitData(p, sizeof(float)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(float)*yystack.l_mark[0].int32); } +#line 9680 "asmparse.cpp" +break; +case 406: #line 1074 "asmparse.y" - { double* p = new (nothrow) double[(yyvsp[0].int32)]; - if(p != NULL) { - for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].float64)); - PASM->EmitData(p, sizeof(double)*(yyvsp[0].int32)); delete (yyvsp[-2].float64); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(double)*(yyvsp[0].int32)); } -#line 6169 "asmparse.cpp" - break; - - case 408: /* ddItem: INT64_ '(' int64 ')' ddItemCount */ + { double* p = new (nothrow) double[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int i=0; iEmitData(p, sizeof(double)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(double)*yystack.l_mark[0].int32); } +#line 9690 "asmparse.cpp" +break; +case 407: #line 1081 "asmparse.y" - { __int64* p = new (nothrow) __int64[(yyvsp[0].int32)]; - if(p != NULL) { - for(int i=0; i<(yyvsp[0].int32); i++) p[i] = *((yyvsp[-2].int64)); - PASM->EmitData(p, sizeof(__int64)*(yyvsp[0].int32)); delete (yyvsp[-2].int64); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int64)*(yyvsp[0].int32)); } -#line 6180 "asmparse.cpp" - break; - - case 409: /* ddItem: INT32_ '(' int32 ')' ddItemCount */ + { __int64* p = new (nothrow) __int64[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int i=0; iEmitData(p, sizeof(__int64)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].int64; delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(__int64)*yystack.l_mark[0].int32); } +#line 9700 "asmparse.cpp" +break; +case 408: #line 1088 "asmparse.y" - { __int32* p = new (nothrow) __int32[(yyvsp[0].int32)]; - if(p != NULL) { - for(int i=0; i<(yyvsp[0].int32); i++) p[i] = (yyvsp[-2].int32); - PASM->EmitData(p, sizeof(__int32)*(yyvsp[0].int32)); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int32)*(yyvsp[0].int32)); } -#line 6191 "asmparse.cpp" - break; - - case 410: /* ddItem: INT16_ '(' int32 ')' ddItemCount */ + { __int32* p = new (nothrow) __int32[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int i=0; iEmitData(p, sizeof(__int32)*yystack.l_mark[0].int32); delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(__int32)*yystack.l_mark[0].int32); } +#line 9710 "asmparse.cpp" +break; +case 409: #line 1095 "asmparse.y" - { __int16 i = (__int16) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); - __int16* p = new (nothrow) __int16[(yyvsp[0].int32)]; - if(p != NULL) { - for(int j=0; j<(yyvsp[0].int32); j++) p[j] = i; - PASM->EmitData(p, sizeof(__int16)*(yyvsp[0].int32)); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int16)*(yyvsp[0].int32)); } -#line 6203 "asmparse.cpp" - break; - - case 411: /* ddItem: INT8_ '(' int32 ')' ddItemCount */ + { __int16 i = (__int16) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); + __int16* p = new (nothrow) __int16[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int j=0; jEmitData(p, sizeof(__int16)*yystack.l_mark[0].int32); delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(__int16)*yystack.l_mark[0].int32); } +#line 9721 "asmparse.cpp" +break; +case 410: #line 1103 "asmparse.y" - { __int8 i = (__int8) (yyvsp[-2].int32); FAIL_UNLESS(i == (yyvsp[-2].int32), ("Value %d too big\n", (yyvsp[-2].int32))); - __int8* p = new (nothrow) __int8[(yyvsp[0].int32)]; - if(p != NULL) { - for(int j=0; j<(yyvsp[0].int32); j++) p[j] = i; - PASM->EmitData(p, sizeof(__int8)*(yyvsp[0].int32)); delete [] p; - } else PASM->report->error("Out of memory emitting data block %d bytes\n", - sizeof(__int8)*(yyvsp[0].int32)); } -#line 6215 "asmparse.cpp" - break; - - case 412: /* ddItem: FLOAT32_ ddItemCount */ + { __int8 i = (__int8) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); + __int8* p = new (nothrow) __int8[yystack.l_mark[0].int32]; + if(p != NULL) { + for(int j=0; jEmitData(p, sizeof(__int8)*yystack.l_mark[0].int32); delete [] p; + } else PASM->report->error("Out of memory emitting data block %d bytes\n", + sizeof(__int8)*yystack.l_mark[0].int32); } +#line 9732 "asmparse.cpp" +break; +case 411: #line 1110 "asmparse.y" - { PASM->EmitData(NULL, sizeof(float)*(yyvsp[0].int32)); } -#line 6221 "asmparse.cpp" - break; - - case 413: /* ddItem: FLOAT64_ ddItemCount */ + { PASM->EmitData(NULL, sizeof(float)*yystack.l_mark[0].int32); } +#line 9737 "asmparse.cpp" +break; +case 412: #line 1111 "asmparse.y" - { PASM->EmitData(NULL, sizeof(double)*(yyvsp[0].int32)); } -#line 6227 "asmparse.cpp" - break; - - case 414: /* ddItem: INT64_ ddItemCount */ + { PASM->EmitData(NULL, sizeof(double)*yystack.l_mark[0].int32); } +#line 9742 "asmparse.cpp" +break; +case 413: #line 1112 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int64)*(yyvsp[0].int32)); } -#line 6233 "asmparse.cpp" - break; - - case 415: /* ddItem: INT32_ ddItemCount */ + { PASM->EmitData(NULL, sizeof(__int64)*yystack.l_mark[0].int32); } +#line 9747 "asmparse.cpp" +break; +case 414: #line 1113 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int32)*(yyvsp[0].int32)); } -#line 6239 "asmparse.cpp" - break; - - case 416: /* ddItem: INT16_ ddItemCount */ + { PASM->EmitData(NULL, sizeof(__int32)*yystack.l_mark[0].int32); } +#line 9752 "asmparse.cpp" +break; +case 415: #line 1114 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int16)*(yyvsp[0].int32)); } -#line 6245 "asmparse.cpp" - break; - - case 417: /* ddItem: INT8_ ddItemCount */ + { PASM->EmitData(NULL, sizeof(__int16)*yystack.l_mark[0].int32); } +#line 9757 "asmparse.cpp" +break; +case 416: #line 1115 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int8)*(yyvsp[0].int32)); } -#line 6251 "asmparse.cpp" - break; - - case 418: /* fieldSerInit: FLOAT32_ '(' float64 ')' */ + { PASM->EmitData(NULL, sizeof(__int8)*yystack.l_mark[0].int32); } +#line 9762 "asmparse.cpp" +break; +case 417: #line 1119 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*(yyvsp[-1].float64)); - (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[-1].float64); } -#line 6259 "asmparse.cpp" - break; - - case 419: /* fieldSerInit: FLOAT64_ '(' float64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*yystack.l_mark[-1].float64); + yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } +#line 9769 "asmparse.cpp" +break; +case 418: #line 1122 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].float64)); delete (yyvsp[-1].float64); } -#line 6266 "asmparse.cpp" - break; - - case 420: /* fieldSerInit: FLOAT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } +#line 9775 "asmparse.cpp" +break; +case 419: #line 1124 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6273 "asmparse.cpp" - break; - - case 421: /* fieldSerInit: FLOAT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 9781 "asmparse.cpp" +break; +case 420: #line 1126 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6280 "asmparse.cpp" - break; - - case 422: /* fieldSerInit: INT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 9787 "asmparse.cpp" +break; +case 421: #line 1128 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6287 "asmparse.cpp" - break; - - case 423: /* fieldSerInit: INT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 9793 "asmparse.cpp" +break; +case 422: #line 1130 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6294 "asmparse.cpp" - break; - - case 424: /* fieldSerInit: INT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 9799 "asmparse.cpp" +break; +case 423: #line 1132 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6301 "asmparse.cpp" - break; - - case 425: /* fieldSerInit: INT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 9805 "asmparse.cpp" +break; +case 424: #line 1134 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6308 "asmparse.cpp" - break; - - case 426: /* fieldSerInit: UNSIGNED_ INT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 9811 "asmparse.cpp" +break; +case 425: #line 1136 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6315 "asmparse.cpp" - break; - - case 427: /* fieldSerInit: UNSIGNED_ INT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 9817 "asmparse.cpp" +break; +case 426: #line 1138 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6322 "asmparse.cpp" - break; - - case 428: /* fieldSerInit: UNSIGNED_ INT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 9823 "asmparse.cpp" +break; +case 427: #line 1140 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6329 "asmparse.cpp" - break; - - case 429: /* fieldSerInit: UNSIGNED_ INT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 9829 "asmparse.cpp" +break; +case 428: #line 1142 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6336 "asmparse.cpp" - break; - - case 430: /* fieldSerInit: UINT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 9835 "asmparse.cpp" +break; +case 429: #line 1144 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6343 "asmparse.cpp" - break; - - case 431: /* fieldSerInit: UINT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 9841 "asmparse.cpp" +break; +case 430: #line 1146 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6350 "asmparse.cpp" - break; - - case 432: /* fieldSerInit: UINT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 9847 "asmparse.cpp" +break; +case 431: #line 1148 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6357 "asmparse.cpp" - break; - - case 433: /* fieldSerInit: UINT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 9853 "asmparse.cpp" +break; +case 432: #line 1150 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6364 "asmparse.cpp" - break; - - case 434: /* fieldSerInit: CHAR_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 9859 "asmparse.cpp" +break; +case 433: #line 1152 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6371 "asmparse.cpp" - break; - - case 435: /* fieldSerInit: BOOL_ '(' truefalse ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 9865 "asmparse.cpp" +break; +case 434: #line 1154 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); - (yyval.binstr)->appendInt8((yyvsp[-1].int32));} -#line 6378 "asmparse.cpp" - break; - - case 436: /* fieldSerInit: bytearrayhead bytes ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} +#line 9871 "asmparse.cpp" +break; +case 435: #line 1156 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); - (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-1].binstr);} -#line 6385 "asmparse.cpp" - break; - - case 437: /* bytearrayhead: BYTEARRAY_ '(' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); + yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-1].binstr;} +#line 9877 "asmparse.cpp" +break; +case 436: #line 1160 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 6391 "asmparse.cpp" - break; - - case 438: /* bytes: %empty */ + { bParsingByteArray = TRUE; } +#line 9882 "asmparse.cpp" +break; +case 437: #line 1163 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6397 "asmparse.cpp" - break; - - case 439: /* bytes: hexbytes */ + { yyval.binstr = new BinStr(); } +#line 9887 "asmparse.cpp" +break; +case 438: #line 1164 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6403 "asmparse.cpp" - break; - - case 440: /* hexbytes: HEXBYTE */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9892 "asmparse.cpp" +break; +case 439: #line 1167 "asmparse.y" - { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(i); } -#line 6409 "asmparse.cpp" - break; - - case 441: /* hexbytes: hexbytes HEXBYTE */ + { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } +#line 9897 "asmparse.cpp" +break; +case 440: #line 1168 "asmparse.y" - { __int8 i = (__int8) (yyvsp[0].int32); (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(i); } -#line 6415 "asmparse.cpp" - break; - - case 442: /* fieldInit: fieldSerInit */ + { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(i); } +#line 9902 "asmparse.cpp" +break; +case 441: #line 1172 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6421 "asmparse.cpp" - break; - - case 443: /* fieldInit: compQstring */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9907 "asmparse.cpp" +break; +case 442: #line 1173 "asmparse.y" - { (yyval.binstr) = BinStrToUnicode((yyvsp[0].binstr),true); (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING);} -#line 6427 "asmparse.cpp" - break; - - case 444: /* fieldInit: NULLREF_ */ + { yyval.binstr = BinStrToUnicode(yystack.l_mark[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} +#line 9912 "asmparse.cpp" +break; +case 443: #line 1174 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CLASS); - (yyval.binstr)->appendInt32(0); } -#line 6434 "asmparse.cpp" - break; - - case 445: /* serInit: fieldSerInit */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); + yyval.binstr->appendInt32(0); } +#line 9918 "asmparse.cpp" +break; +case 444: #line 1179 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 6440 "asmparse.cpp" - break; - - case 446: /* serInit: STRING_ '(' NULLREF_ ')' */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9923 "asmparse.cpp" +break; +case 445: #line 1180 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); (yyval.binstr)->appendInt8(0xFF); } -#line 6446 "asmparse.cpp" - break; - - case 447: /* serInit: STRING_ '(' SQSTRING ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } +#line 9928 "asmparse.cpp" +break; +case 446: #line 1181 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); - AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} -#line 6453 "asmparse.cpp" - break; - - case 448: /* serInit: TYPE_ '(' CLASS_ SQSTRING ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); + AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} +#line 9934 "asmparse.cpp" +break; +case 447: #line 1183 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength((yyval.binstr),(yyvsp[-1].string)); delete [] (yyvsp[-1].string);} -#line 6460 "asmparse.cpp" - break; - - case 449: /* serInit: TYPE_ '(' className ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} +#line 9940 "asmparse.cpp" +break; +case 448: #line 1185 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[-1].token)));} -#line 6467 "asmparse.cpp" - break; - - case 450: /* serInit: TYPE_ '(' NULLREF_ ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[-1].token));} +#line 9946 "asmparse.cpp" +break; +case 449: #line 1187 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_TYPE); (yyval.binstr)->appendInt8(0xFF); } -#line 6473 "asmparse.cpp" - break; - - case 451: /* serInit: OBJECT_ '(' serInit ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } +#line 9951 "asmparse.cpp" +break; +case 450: #line 1188 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 6479 "asmparse.cpp" - break; - - case 452: /* serInit: FLOAT32_ '[' int32 ']' '(' f32seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} +#line 9956 "asmparse.cpp" +break; +case 451: #line 1190 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_R4); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6487 "asmparse.cpp" - break; - - case 453: /* serInit: FLOAT64_ '[' int32 ']' '(' f64seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_R4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9963 "asmparse.cpp" +break; +case 452: #line 1194 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_R8); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6495 "asmparse.cpp" - break; - - case 454: /* serInit: INT64_ '[' int32 ']' '(' i64seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_R8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9970 "asmparse.cpp" +break; +case 453: #line 1198 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_I8); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6503 "asmparse.cpp" - break; - - case 455: /* serInit: INT32_ '[' int32 ']' '(' i32seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9977 "asmparse.cpp" +break; +case 454: #line 1202 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_I4); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6511 "asmparse.cpp" - break; - - case 456: /* serInit: INT16_ '[' int32 ']' '(' i16seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9984 "asmparse.cpp" +break; +case 455: #line 1206 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_I2); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6519 "asmparse.cpp" - break; - - case 457: /* serInit: INT8_ '[' int32 ']' '(' i8seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9991 "asmparse.cpp" +break; +case 456: #line 1210 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_I1); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6527 "asmparse.cpp" - break; - - case 458: /* serInit: UINT64_ '[' int32 ']' '(' i64seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_I1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 9998 "asmparse.cpp" +break; +case 457: #line 1214 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6535 "asmparse.cpp" - break; - - case 459: /* serInit: UINT32_ '[' int32 ']' '(' i32seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10005 "asmparse.cpp" +break; +case 458: #line 1218 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6543 "asmparse.cpp" - break; - - case 460: /* serInit: UINT16_ '[' int32 ']' '(' i16seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10012 "asmparse.cpp" +break; +case 459: #line 1222 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6551 "asmparse.cpp" - break; - - case 461: /* serInit: UINT8_ '[' int32 ']' '(' i8seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10019 "asmparse.cpp" +break; +case 460: #line 1226 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6559 "asmparse.cpp" - break; - - case 462: /* serInit: UNSIGNED_ INT64_ '[' int32 ']' '(' i64seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10026 "asmparse.cpp" +break; +case 461: #line 1230 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6567 "asmparse.cpp" - break; - - case 463: /* serInit: UNSIGNED_ INT32_ '[' int32 ']' '(' i32seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U8); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10033 "asmparse.cpp" +break; +case 462: #line 1234 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6575 "asmparse.cpp" - break; - - case 464: /* serInit: UNSIGNED_ INT16_ '[' int32 ']' '(' i16seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U4); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10040 "asmparse.cpp" +break; +case 463: #line 1238 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6583 "asmparse.cpp" - break; - - case 465: /* serInit: UNSIGNED_ INT8_ '[' int32 ']' '(' i8seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U2); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10047 "asmparse.cpp" +break; +case 464: #line 1242 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6591 "asmparse.cpp" - break; - - case 466: /* serInit: CHAR_ '[' int32 ']' '(' i16seq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_U1); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10054 "asmparse.cpp" +break; +case 465: #line 1246 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_CHAR); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6599 "asmparse.cpp" - break; - - case 467: /* serInit: BOOL_ '[' int32 ']' '(' boolSeq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10061 "asmparse.cpp" +break; +case 466: #line 1250 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_BOOLEAN); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6607 "asmparse.cpp" - break; - - case 468: /* serInit: STRING_ '[' int32 ']' '(' sqstringSeq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10068 "asmparse.cpp" +break; +case 467: #line 1254 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_STRING); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6615 "asmparse.cpp" - break; - - case 469: /* serInit: TYPE_ '[' int32 ']' '(' classSeq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10075 "asmparse.cpp" +break; +case 468: #line 1258 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TYPE); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6623 "asmparse.cpp" - break; - - case 470: /* serInit: OBJECT_ '[' int32 ']' '(' objSeq ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10082 "asmparse.cpp" +break; +case 469: #line 1262 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt32((yyvsp[-4].int32)); - (yyval.binstr)->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 6631 "asmparse.cpp" - break; - - case 471: /* constTypeArg: FLOAT32_ '(' float64 ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); + yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); + yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 10089 "asmparse.cpp" +break; +case 470: #line 1267 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); - float f = (float)(*(yyvsp[-1].float64)); - (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[-1].float64); } -#line 6639 "asmparse.cpp" - break; - - case 472: /* constTypeArg: FLOAT64_ '(' float64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + float f = (float)(*yystack.l_mark[-1].float64); + yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } +#line 10096 "asmparse.cpp" +break; +case 471: #line 1270 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].float64)); delete (yyvsp[-1].float64); } -#line 6646 "asmparse.cpp" - break; - - case 473: /* constTypeArg: FLOAT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } +#line 10102 "asmparse.cpp" +break; +case 472: #line 1272 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6653 "asmparse.cpp" - break; - - case 474: /* constTypeArg: FLOAT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 10108 "asmparse.cpp" +break; +case 473: #line 1274 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6660 "asmparse.cpp" - break; - - case 475: /* constTypeArg: INT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 10114 "asmparse.cpp" +break; +case 474: #line 1276 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6667 "asmparse.cpp" - break; - - case 476: /* constTypeArg: INT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 10120 "asmparse.cpp" +break; +case 475: #line 1278 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6674 "asmparse.cpp" - break; - - case 477: /* constTypeArg: INT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 10126 "asmparse.cpp" +break; +case 476: #line 1280 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6681 "asmparse.cpp" - break; - - case 478: /* constTypeArg: INT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 10132 "asmparse.cpp" +break; +case 477: #line 1282 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6688 "asmparse.cpp" - break; - - case 479: /* constTypeArg: UNSIGNED_ INT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 10138 "asmparse.cpp" +break; +case 478: #line 1284 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6695 "asmparse.cpp" - break; - - case 480: /* constTypeArg: UNSIGNED_ INT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 10144 "asmparse.cpp" +break; +case 479: #line 1286 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6702 "asmparse.cpp" - break; - - case 481: /* constTypeArg: UNSIGNED_ INT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 10150 "asmparse.cpp" +break; +case 480: #line 1288 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6709 "asmparse.cpp" - break; - - case 482: /* constTypeArg: UNSIGNED_ INT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 10156 "asmparse.cpp" +break; +case 481: #line 1290 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6716 "asmparse.cpp" - break; - - case 483: /* constTypeArg: UINT64_ '(' int64 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 10162 "asmparse.cpp" +break; +case 482: #line 1292 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[-1].int64)); delete (yyvsp[-1].int64); } -#line 6723 "asmparse.cpp" - break; - - case 484: /* constTypeArg: UINT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } +#line 10168 "asmparse.cpp" +break; +case 483: #line 1294 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 6730 "asmparse.cpp" - break; - - case 485: /* constTypeArg: UINT16_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 10174 "asmparse.cpp" +break; +case 484: #line 1296 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6737 "asmparse.cpp" - break; - - case 486: /* constTypeArg: UINT8_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 10180 "asmparse.cpp" +break; +case 485: #line 1298 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); - (yyval.binstr)->appendInt8((yyvsp[-1].int32)); } -#line 6744 "asmparse.cpp" - break; - - case 487: /* constTypeArg: CHAR_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } +#line 10186 "asmparse.cpp" +break; +case 486: #line 1300 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); - (yyval.binstr)->appendInt16((yyvsp[-1].int32)); } -#line 6751 "asmparse.cpp" - break; - - case 488: /* constTypeArg: BOOL_ '(' truefalse ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); + yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } +#line 10192 "asmparse.cpp" +break; +case 487: #line 1302 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); - (yyval.binstr)->appendInt8((yyvsp[-1].int32));} -#line 6758 "asmparse.cpp" - break; - - case 489: /* f32seq: %empty */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} +#line 10198 "asmparse.cpp" +break; +case 488: #line 1307 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6764 "asmparse.cpp" - break; - - case 490: /* f32seq: f32seq float64 */ + { yyval.binstr = new BinStr(); } +#line 10203 "asmparse.cpp" +break; +case 489: #line 1308 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - float f = (float) (*(yyvsp[0].float64)); (yyval.binstr)->appendInt32(*((__int32*)&f)); delete (yyvsp[0].float64); } -#line 6771 "asmparse.cpp" - break; - - case 491: /* f32seq: f32seq int32 */ + { yyval.binstr = yystack.l_mark[-1].binstr; + float f = (float) (*yystack.l_mark[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[0].float64; } +#line 10209 "asmparse.cpp" +break; +case 490: #line 1310 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 6778 "asmparse.cpp" - break; - - case 492: /* f64seq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt32(yystack.l_mark[0].int32); } +#line 10215 "asmparse.cpp" +break; +case 491: #line 1314 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6784 "asmparse.cpp" - break; - - case 493: /* f64seq: f64seq float64 */ + { yyval.binstr = new BinStr(); } +#line 10220 "asmparse.cpp" +break; +case 492: #line 1315 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].float64)); delete (yyvsp[0].float64); } -#line 6791 "asmparse.cpp" - break; - - case 494: /* f64seq: f64seq int64 */ + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].float64); delete yystack.l_mark[0].float64; } +#line 10226 "asmparse.cpp" +break; +case 493: #line 1317 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } -#line 6798 "asmparse.cpp" - break; - - case 495: /* i64seq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } +#line 10232 "asmparse.cpp" +break; +case 494: #line 1321 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6804 "asmparse.cpp" - break; - - case 496: /* i64seq: i64seq int64 */ + { yyval.binstr = new BinStr(); } +#line 10237 "asmparse.cpp" +break; +case 495: #line 1322 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt64((__int64 *)(yyvsp[0].int64)); delete (yyvsp[0].int64); } -#line 6811 "asmparse.cpp" - break; - - case 497: /* i32seq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } +#line 10243 "asmparse.cpp" +break; +case 496: #line 1326 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6817 "asmparse.cpp" - break; - - case 498: /* i32seq: i32seq int32 */ + { yyval.binstr = new BinStr(); } +#line 10248 "asmparse.cpp" +break; +case 497: #line 1327 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt32((yyvsp[0].int32));} -#line 6823 "asmparse.cpp" - break; - - case 499: /* i16seq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].int32);} +#line 10253 "asmparse.cpp" +break; +case 498: #line 1330 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6829 "asmparse.cpp" - break; - - case 500: /* i16seq: i16seq int32 */ + { yyval.binstr = new BinStr(); } +#line 10258 "asmparse.cpp" +break; +case 499: #line 1331 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt16((yyvsp[0].int32));} -#line 6835 "asmparse.cpp" - break; - - case 501: /* i8seq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt16(yystack.l_mark[0].int32);} +#line 10263 "asmparse.cpp" +break; +case 500: #line 1334 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6841 "asmparse.cpp" - break; - - case 502: /* i8seq: i8seq int32 */ + { yyval.binstr = new BinStr(); } +#line 10268 "asmparse.cpp" +break; +case 501: #line 1335 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8((yyvsp[0].int32)); } -#line 6847 "asmparse.cpp" - break; - - case 503: /* boolSeq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(yystack.l_mark[0].int32); } +#line 10273 "asmparse.cpp" +break; +case 502: #line 1338 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6853 "asmparse.cpp" - break; - - case 504: /* boolSeq: boolSeq truefalse */ + { yyval.binstr = new BinStr(); } +#line 10278 "asmparse.cpp" +break; +case 503: #line 1339 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - (yyval.binstr)->appendInt8((yyvsp[0].int32));} -#line 6860 "asmparse.cpp" - break; - - case 505: /* sqstringSeq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt8(yystack.l_mark[0].int32);} +#line 10284 "asmparse.cpp" +break; +case 504: #line 1343 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6866 "asmparse.cpp" - break; - - case 506: /* sqstringSeq: sqstringSeq NULLREF_ */ + { yyval.binstr = new BinStr(); } +#line 10289 "asmparse.cpp" +break; +case 505: #line 1344 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } -#line 6872 "asmparse.cpp" - break; - - case 507: /* sqstringSeq: sqstringSeq SQSTRING */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 10294 "asmparse.cpp" +break; +case 506: #line 1345 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} -#line 6879 "asmparse.cpp" - break; - - case 508: /* classSeq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} +#line 10300 "asmparse.cpp" +break; +case 507: #line 1349 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6885 "asmparse.cpp" - break; - - case 509: /* classSeq: classSeq NULLREF_ */ + { yyval.binstr = new BinStr(); } +#line 10305 "asmparse.cpp" +break; +case 508: #line 1350 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->appendInt8(0xFF); } -#line 6891 "asmparse.cpp" - break; - - case 510: /* classSeq: classSeq CLASS_ SQSTRING */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 10310 "asmparse.cpp" +break; +case 509: #line 1351 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); - AppendStringWithLength((yyval.binstr),(yyvsp[0].string)); delete [] (yyvsp[0].string);} -#line 6898 "asmparse.cpp" - break; - - case 511: /* classSeq: classSeq className */ + { yyval.binstr = yystack.l_mark[-2].binstr; + AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} +#line 10316 "asmparse.cpp" +break; +case 510: #line 1353 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); - AppendStringWithLength((yyval.binstr),PASM->ReflectionNotation((yyvsp[0].token)));} -#line 6905 "asmparse.cpp" - break; - - case 512: /* objSeq: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token));} +#line 10322 "asmparse.cpp" +break; +case 511: #line 1357 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 6911 "asmparse.cpp" - break; - - case 513: /* objSeq: objSeq serInit */ + { yyval.binstr = new BinStr(); } +#line 10327 "asmparse.cpp" +break; +case 512: #line 1358 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 6917 "asmparse.cpp" - break; - - case 514: /* methodSpec: METHOD_ */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10332 "asmparse.cpp" +break; +case 513: #line 1362 "asmparse.y" - { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); - parser->m_ANSLast.PUSH(PASM->m_lastArgName); - PASM->m_firstArgName = NULL; + { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); + parser->m_ANSLast.PUSH(PASM->m_lastArgName); + PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 6926 "asmparse.cpp" - break; - - case 515: /* instr_none: INSTR_NONE */ +#line 10340 "asmparse.cpp" +break; +case 514: #line 1368 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6932 "asmparse.cpp" - break; - - case 516: /* instr_var: INSTR_VAR */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10345 "asmparse.cpp" +break; +case 515: #line 1371 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6938 "asmparse.cpp" - break; - - case 517: /* instr_i: INSTR_I */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10350 "asmparse.cpp" +break; +case 516: #line 1374 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6944 "asmparse.cpp" - break; - - case 518: /* instr_i8: INSTR_I8 */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10355 "asmparse.cpp" +break; +case 517: #line 1377 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6950 "asmparse.cpp" - break; - - case 519: /* instr_r: INSTR_R */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10360 "asmparse.cpp" +break; +case 518: #line 1380 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6956 "asmparse.cpp" - break; - - case 520: /* instr_brtarget: INSTR_BRTARGET */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10365 "asmparse.cpp" +break; +case 519: #line 1383 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6962 "asmparse.cpp" - break; - - case 521: /* instr_method: INSTR_METHOD */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10370 "asmparse.cpp" +break; +case 520: #line 1386 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); - if((!PASM->OnErrGo)&& - (((yyvsp[0].opcode) == CEE_NEWOBJ)|| - ((yyvsp[0].opcode) == CEE_CALLVIRT))) - iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); + if((!PASM->OnErrGo)&& + ((yystack.l_mark[0].opcode == CEE_NEWOBJ)|| + (yystack.l_mark[0].opcode == CEE_CALLVIRT))) + iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 6973 "asmparse.cpp" - break; - - case 522: /* instr_field: INSTR_FIELD */ +#line 10380 "asmparse.cpp" +break; +case 521: #line 1394 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6979 "asmparse.cpp" - break; - - case 523: /* instr_type: INSTR_TYPE */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10385 "asmparse.cpp" +break; +case 522: #line 1397 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6985 "asmparse.cpp" - break; - - case 524: /* instr_string: INSTR_STRING */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10390 "asmparse.cpp" +break; +case 523: #line 1400 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6991 "asmparse.cpp" - break; - - case 525: /* instr_sig: INSTR_SIG */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10395 "asmparse.cpp" +break; +case 524: #line 1403 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 6997 "asmparse.cpp" - break; - - case 526: /* instr_tok: INSTR_TOK */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10400 "asmparse.cpp" +break; +case 525: #line 1406 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); iOpcodeLen = PASM->OpcodeLen((yyval.instr)); } -#line 7003 "asmparse.cpp" - break; - - case 527: /* instr_switch: INSTR_SWITCH */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } +#line 10405 "asmparse.cpp" +break; +case 526: #line 1409 "asmparse.y" - { (yyval.instr) = SetupInstr((yyvsp[0].opcode)); } -#line 7009 "asmparse.cpp" - break; - - case 528: /* instr_r_head: instr_r '(' */ + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10410 "asmparse.cpp" +break; +case 527: #line 1412 "asmparse.y" - { (yyval.instr) = (yyvsp[-1].instr); bParsingByteArray = TRUE; } -#line 7015 "asmparse.cpp" - break; - - case 529: /* instr: instr_none */ + { yyval.instr = yystack.l_mark[-1].instr; bParsingByteArray = TRUE; } +#line 10415 "asmparse.cpp" +break; +case 528: #line 1416 "asmparse.y" - { PASM->EmitOpcode((yyvsp[0].instr)); } -#line 7021 "asmparse.cpp" - break; - - case 530: /* instr: instr_var int32 */ + { PASM->EmitOpcode(yystack.l_mark[0].instr); } +#line 10420 "asmparse.cpp" +break; +case 529: #line 1417 "asmparse.y" - { PASM->EmitInstrVar((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 7027 "asmparse.cpp" - break; - - case 531: /* instr: instr_var id */ + { PASM->EmitInstrVar(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10425 "asmparse.cpp" +break; +case 530: #line 1418 "asmparse.y" - { PASM->EmitInstrVarByName((yyvsp[-1].instr), (yyvsp[0].string)); } -#line 7033 "asmparse.cpp" - break; - - case 532: /* instr: instr_i int32 */ + { PASM->EmitInstrVarByName(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } +#line 10430 "asmparse.cpp" +break; +case 531: #line 1419 "asmparse.y" - { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 7039 "asmparse.cpp" - break; - - case 533: /* instr: instr_i8 int64 */ + { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10435 "asmparse.cpp" +break; +case 532: #line 1420 "asmparse.y" - { PASM->EmitInstrI8((yyvsp[-1].instr), (yyvsp[0].int64)); } -#line 7045 "asmparse.cpp" - break; - - case 534: /* instr: instr_r float64 */ + { PASM->EmitInstrI8(yystack.l_mark[-1].instr, yystack.l_mark[0].int64); } +#line 10440 "asmparse.cpp" +break; +case 533: #line 1421 "asmparse.y" - { PASM->EmitInstrR((yyvsp[-1].instr), (yyvsp[0].float64)); delete ((yyvsp[0].float64));} -#line 7051 "asmparse.cpp" - break; - - case 535: /* instr: instr_r int64 */ + { PASM->EmitInstrR(yystack.l_mark[-1].instr, yystack.l_mark[0].float64); delete (yystack.l_mark[0].float64);} +#line 10445 "asmparse.cpp" +break; +case 534: #line 1422 "asmparse.y" - { double f = (double) (*(yyvsp[0].int64)); PASM->EmitInstrR((yyvsp[-1].instr), &f); } -#line 7057 "asmparse.cpp" - break; - - case 536: /* instr: instr_r_head bytes ')' */ + { double f = (double) (*yystack.l_mark[0].int64); PASM->EmitInstrR(yystack.l_mark[-1].instr, &f); } +#line 10450 "asmparse.cpp" +break; +case 535: #line 1423 "asmparse.y" - { unsigned L = (yyvsp[-1].binstr)->length(); - FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", - L,sizeof(float))); - if(L < sizeof(float)) {YYERROR; } - else { - double f = (L >= sizeof(double)) ? *((double *)((yyvsp[-1].binstr)->ptr())) - : (double)(*(float *)((yyvsp[-1].binstr)->ptr())); - PASM->EmitInstrR((yyvsp[-2].instr),&f); } - delete (yyvsp[-1].binstr); } -#line 7071 "asmparse.cpp" - break; - - case 537: /* instr: instr_brtarget int32 */ + { unsigned L = yystack.l_mark[-1].binstr->length(); + FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", + L,sizeof(float))); + if(L < sizeof(float)) {YYERROR; } + else { + double f = (L >= sizeof(double)) ? *((double *)(yystack.l_mark[-1].binstr->ptr())) + : (double)(*(float *)(yystack.l_mark[-1].binstr->ptr())); + PASM->EmitInstrR(yystack.l_mark[-2].instr,&f); } + delete yystack.l_mark[-1].binstr; } +#line 10463 "asmparse.cpp" +break; +case 536: #line 1432 "asmparse.y" - { PASM->EmitInstrBrOffset((yyvsp[-1].instr), (yyvsp[0].int32)); } -#line 7077 "asmparse.cpp" - break; - - case 538: /* instr: instr_brtarget id */ + { PASM->EmitInstrBrOffset(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10468 "asmparse.cpp" +break; +case 537: #line 1433 "asmparse.y" - { PASM->EmitInstrBrTarget((yyvsp[-1].instr), (yyvsp[0].string)); } -#line 7083 "asmparse.cpp" - break; - - case 539: /* instr: instr_method methodRef */ + { PASM->EmitInstrBrTarget(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } +#line 10473 "asmparse.cpp" +break; +case 538: #line 1435 "asmparse.y" - { PASM->SetMemberRefFixup((yyvsp[0].token),PASM->OpcodeLen((yyvsp[-1].instr))); - PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); - PASM->m_tkCurrentCVOwner = (yyvsp[0].token); - PASM->m_pCustomDescrList = NULL; - iCallConv = 0; + { PASM->SetMemberRefFixup(yystack.l_mark[0].token,PASM->OpcodeLen(yystack.l_mark[-1].instr)); + PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); + PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; + PASM->m_pCustomDescrList = NULL; + iCallConv = 0; } -#line 7094 "asmparse.cpp" - break; - - case 540: /* instr: instr_field type typeSpec DCOLON dottedName */ +#line 10483 "asmparse.cpp" +break; +case 539: #line 1442 "asmparse.y" - { (yyvsp[-3].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef((yyvsp[-2].token), (yyvsp[0].string), (yyvsp[-3].binstr)); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-4].instr))); - PASM->EmitInstrI((yyvsp[-4].instr),mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; + { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-4].instr)); + PASM->EmitInstrI(yystack.l_mark[-4].instr,mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; } -#line 7106 "asmparse.cpp" - break; - - case 541: /* instr: instr_field type dottedName */ +#line 10494 "asmparse.cpp" +break; +case 540: #line 1450 "asmparse.y" - { (yyvsp[-1].binstr)->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); - mdToken mr = PASM->MakeMemberRef(mdTokenNil, (yyvsp[0].string), (yyvsp[-1].binstr)); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-2].instr))); - PASM->EmitInstrI((yyvsp[-2].instr),mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; + { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); + mdToken mr = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-2].instr)); + PASM->EmitInstrI(yystack.l_mark[-2].instr,mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; } -#line 7118 "asmparse.cpp" - break; - - case 542: /* instr: instr_field mdtoken */ +#line 10505 "asmparse.cpp" +break; +case 541: #line 1457 "asmparse.y" - { mdToken mr = (yyvsp[0].token); - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); - PASM->EmitInstrI((yyvsp[-1].instr),mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; + { mdToken mr = yystack.l_mark[0].token; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); + PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; } -#line 7129 "asmparse.cpp" - break; - - case 543: /* instr: instr_field TYPEDEF_F */ +#line 10515 "asmparse.cpp" +break; +case 542: #line 1463 "asmparse.y" - { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); - PASM->EmitInstrI((yyvsp[-1].instr),mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; + { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); + PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; } -#line 7140 "asmparse.cpp" - break; - - case 544: /* instr: instr_field TYPEDEF_MR */ +#line 10525 "asmparse.cpp" +break; +case 543: #line 1469 "asmparse.y" - { mdToken mr = (yyvsp[0].tdd)->m_tkTypeSpec; - PASM->SetMemberRefFixup(mr, PASM->OpcodeLen((yyvsp[-1].instr))); - PASM->EmitInstrI((yyvsp[-1].instr),mr); - PASM->m_tkCurrentCVOwner = mr; - PASM->m_pCustomDescrList = NULL; + { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; + PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); + PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); + PASM->m_tkCurrentCVOwner = mr; + PASM->m_pCustomDescrList = NULL; } -#line 7151 "asmparse.cpp" - break; - - case 545: /* instr: instr_type typeSpec */ +#line 10535 "asmparse.cpp" +break; +case 544: #line 1475 "asmparse.y" - { PASM->EmitInstrI((yyvsp[-1].instr), (yyvsp[0].token)); - PASM->m_tkCurrentCVOwner = (yyvsp[0].token); - PASM->m_pCustomDescrList = NULL; + { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].token); + PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; + PASM->m_pCustomDescrList = NULL; } -#line 7160 "asmparse.cpp" - break; - - case 546: /* instr: instr_string compQstring */ +#line 10543 "asmparse.cpp" +break; +case 545: #line 1479 "asmparse.y" - { PASM->EmitInstrStringLiteral((yyvsp[-1].instr), (yyvsp[0].binstr),TRUE); } -#line 7166 "asmparse.cpp" - break; - - case 547: /* instr: instr_string ANSI_ '(' compQstring ')' */ + { PASM->EmitInstrStringLiteral(yystack.l_mark[-1].instr, yystack.l_mark[0].binstr,TRUE); } +#line 10548 "asmparse.cpp" +break; +case 546: #line 1481 "asmparse.y" - { PASM->EmitInstrStringLiteral((yyvsp[-4].instr), (yyvsp[-1].binstr),FALSE); } -#line 7172 "asmparse.cpp" - break; - - case 548: /* instr: instr_string bytearrayhead bytes ')' */ + { PASM->EmitInstrStringLiteral(yystack.l_mark[-4].instr, yystack.l_mark[-1].binstr,FALSE); } +#line 10553 "asmparse.cpp" +break; +case 547: #line 1483 "asmparse.y" - { PASM->EmitInstrStringLiteral((yyvsp[-3].instr), (yyvsp[-1].binstr),FALSE,TRUE); } -#line 7178 "asmparse.cpp" - break; - - case 549: /* instr: instr_sig callConv type '(' sigArgs0 ')' */ + { PASM->EmitInstrStringLiteral(yystack.l_mark[-3].instr, yystack.l_mark[-1].binstr,FALSE,TRUE); } +#line 10558 "asmparse.cpp" +break; +case 548: #line 1485 "asmparse.y" - { PASM->EmitInstrSig((yyvsp[-5].instr), parser->MakeSig((yyvsp[-4].int32), (yyvsp[-3].binstr), (yyvsp[-1].binstr))); - PASM->ResetArgNameList(); + { PASM->EmitInstrSig(yystack.l_mark[-5].instr, parser->MakeSig(yystack.l_mark[-4].int32, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr)); + PASM->ResetArgNameList(); } -#line 7186 "asmparse.cpp" - break; - - case 550: /* instr: instr_tok ownerType */ +#line 10565 "asmparse.cpp" +break; +case 549: #line 1489 "asmparse.y" - { PASM->EmitInstrI((yyvsp[-1].instr),(yyvsp[0].token)); - PASM->m_tkCurrentCVOwner = (yyvsp[0].token); - PASM->m_pCustomDescrList = NULL; - iOpcodeLen = 0; + { PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); + PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; + PASM->m_pCustomDescrList = NULL; + iOpcodeLen = 0; } -#line 7196 "asmparse.cpp" - break; - - case 551: /* instr: instr_switch '(' labels ')' */ +#line 10574 "asmparse.cpp" +break; +case 550: #line 1494 "asmparse.y" - { PASM->EmitInstrSwitch((yyvsp[-3].instr), (yyvsp[-1].labels)); } -#line 7202 "asmparse.cpp" - break; - - case 552: /* labels: %empty */ + { PASM->EmitInstrSwitch(yystack.l_mark[-3].instr, yystack.l_mark[-1].labels); } +#line 10579 "asmparse.cpp" +break; +case 551: #line 1497 "asmparse.y" - { (yyval.labels) = 0; } -#line 7208 "asmparse.cpp" - break; - - case 553: /* labels: id ',' labels */ + { yyval.labels = 0; } +#line 10584 "asmparse.cpp" +break; +case 552: #line 1498 "asmparse.y" - { (yyval.labels) = new Labels((yyvsp[-2].string), (yyvsp[0].labels), TRUE); } -#line 7214 "asmparse.cpp" - break; - - case 554: /* labels: int32 ',' labels */ + { yyval.labels = new Labels(yystack.l_mark[-2].string, yystack.l_mark[0].labels, TRUE); } +#line 10589 "asmparse.cpp" +break; +case 553: #line 1499 "asmparse.y" - { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[-2].int32), (yyvsp[0].labels), FALSE); } -#line 7220 "asmparse.cpp" - break; - - case 555: /* labels: id */ + { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[-2].int32, yystack.l_mark[0].labels, FALSE); } +#line 10594 "asmparse.cpp" +break; +case 554: #line 1500 "asmparse.y" - { (yyval.labels) = new Labels((yyvsp[0].string), NULL, TRUE); } -#line 7226 "asmparse.cpp" - break; - - case 556: /* labels: int32 */ + { yyval.labels = new Labels(yystack.l_mark[0].string, NULL, TRUE); } +#line 10599 "asmparse.cpp" +break; +case 555: #line 1501 "asmparse.y" - { (yyval.labels) = new Labels((char *)(UINT_PTR)(yyvsp[0].int32), NULL, FALSE); } -#line 7232 "asmparse.cpp" - break; - - case 557: /* tyArgs0: %empty */ + { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[0].int32, NULL, FALSE); } +#line 10604 "asmparse.cpp" +break; +case 556: #line 1505 "asmparse.y" - { (yyval.binstr) = NULL; } -#line 7238 "asmparse.cpp" - break; - - case 558: /* tyArgs0: '<' tyArgs1 '>' */ + { yyval.binstr = NULL; } +#line 10609 "asmparse.cpp" +break; +case 557: #line 1506 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); } -#line 7244 "asmparse.cpp" - break; - - case 559: /* tyArgs1: %empty */ + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 10614 "asmparse.cpp" +break; +case 558: #line 1509 "asmparse.y" - { (yyval.binstr) = NULL; } -#line 7250 "asmparse.cpp" - break; - - case 560: /* tyArgs1: tyArgs2 */ + { yyval.binstr = NULL; } +#line 10619 "asmparse.cpp" +break; +case 559: #line 1510 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 7256 "asmparse.cpp" - break; - - case 561: /* tyArgs2: type */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 10624 "asmparse.cpp" +break; +case 560: #line 1513 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 7262 "asmparse.cpp" - break; - - case 562: /* tyArgs2: tyArgs2 ',' type */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 10629 "asmparse.cpp" +break; +case 561: #line 1514 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 7268 "asmparse.cpp" - break; - - case 563: /* sigArgs0: %empty */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10634 "asmparse.cpp" +break; +case 562: #line 1518 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 7274 "asmparse.cpp" - break; - - case 564: /* sigArgs0: sigArgs1 */ + { yyval.binstr = new BinStr(); } +#line 10639 "asmparse.cpp" +break; +case 563: #line 1519 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr);} -#line 7280 "asmparse.cpp" - break; - - case 565: /* sigArgs1: sigArg */ + { yyval.binstr = yystack.l_mark[0].binstr;} +#line 10644 "asmparse.cpp" +break; +case 564: #line 1522 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 7286 "asmparse.cpp" - break; - - case 566: /* sigArgs1: sigArgs1 ',' sigArg */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 10649 "asmparse.cpp" +break; +case 565: #line 1523 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 7292 "asmparse.cpp" - break; - - case 567: /* sigArg: ELLIPSIS */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10654 "asmparse.cpp" +break; +case 566: #line 1526 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 7298 "asmparse.cpp" - break; - - case 568: /* sigArg: paramAttr type marshalClause */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } +#line 10659 "asmparse.cpp" +break; +case 567: #line 1527 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-1].binstr)); PASM->addArgName(NULL, (yyvsp[-1].binstr), (yyvsp[0].binstr), (yyvsp[-2].int32)); } -#line 7304 "asmparse.cpp" - break; - - case 569: /* sigArg: paramAttr type marshalClause id */ + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->addArgName(NULL, yystack.l_mark[-1].binstr, yystack.l_mark[0].binstr, yystack.l_mark[-2].int32); } +#line 10664 "asmparse.cpp" +break; +case 568: #line 1528 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[-2].binstr)); PASM->addArgName((yyvsp[0].string), (yyvsp[-2].binstr), (yyvsp[-1].binstr), (yyvsp[-3].int32));} -#line 7310 "asmparse.cpp" - break; - - case 570: /* className: '[' dottedName ']' slashedName */ + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-2].binstr); PASM->addArgName(yystack.l_mark[0].string, yystack.l_mark[-2].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32);} +#line 10669 "asmparse.cpp" +break; +case 569: #line 1532 "asmparse.y" - { (yyval.token) = PASM->ResolveClassRef(PASM->GetAsmRef((yyvsp[-2].string)), (yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} -#line 7316 "asmparse.cpp" - break; - - case 571: /* className: '[' mdtoken ']' slashedName */ + { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yystack.l_mark[-2].string), yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} +#line 10674 "asmparse.cpp" +break; +case 570: #line 1533 "asmparse.y" - { (yyval.token) = PASM->ResolveClassRef((yyvsp[-2].token), (yyvsp[0].string), NULL); } -#line 7322 "asmparse.cpp" - break; - - case 572: /* className: '[' '*' ']' slashedName */ + { yyval.token = PASM->ResolveClassRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, NULL); } +#line 10679 "asmparse.cpp" +break; +case 571: #line 1534 "asmparse.y" - { (yyval.token) = PASM->ResolveClassRef(mdTokenNil, (yyvsp[0].string), NULL); } -#line 7328 "asmparse.cpp" - break; - - case 573: /* className: '[' _MODULE dottedName ']' slashedName */ + { yyval.token = PASM->ResolveClassRef(mdTokenNil, yystack.l_mark[0].string, NULL); } +#line 10684 "asmparse.cpp" +break; +case 572: #line 1535 "asmparse.y" - { (yyval.token) = PASM->ResolveClassRef(PASM->GetModRef((yyvsp[-2].string)),(yyvsp[0].string), NULL); delete[] (yyvsp[-2].string);} -#line 7334 "asmparse.cpp" - break; - - case 574: /* className: slashedName */ + { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yystack.l_mark[-2].string),yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} +#line 10689 "asmparse.cpp" +break; +case 573: #line 1536 "asmparse.y" - { (yyval.token) = PASM->ResolveClassRef(1,(yyvsp[0].string),NULL); } -#line 7340 "asmparse.cpp" - break; - - case 575: /* className: mdtoken */ + { yyval.token = PASM->ResolveClassRef(1,yystack.l_mark[0].string,NULL); } +#line 10694 "asmparse.cpp" +break; +case 574: #line 1537 "asmparse.y" - { (yyval.token) = (yyvsp[0].token); } -#line 7346 "asmparse.cpp" - break; - - case 576: /* className: TYPEDEF_T */ + { yyval.token = yystack.l_mark[0].token; } +#line 10699 "asmparse.cpp" +break; +case 575: #line 1538 "asmparse.y" - { (yyval.token) = (yyvsp[0].tdd)->m_tkTypeSpec; } -#line 7352 "asmparse.cpp" - break; - - case 577: /* className: _THIS */ + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } +#line 10704 "asmparse.cpp" +break; +case 576: #line 1539 "asmparse.y" - { if(PASM->m_pCurClass != NULL) (yyval.token) = PASM->m_pCurClass->m_cl; - else { (yyval.token) = 0; PASM->report->error(".this outside class scope\n"); } + { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; + else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 7360 "asmparse.cpp" - break; - - case 578: /* className: _BASE */ +#line 10711 "asmparse.cpp" +break; +case 577: #line 1542 "asmparse.y" - { if(PASM->m_pCurClass != NULL) { - (yyval.token) = PASM->m_pCurClass->m_crExtends; - if(RidFromToken((yyval.token)) == 0) - PASM->report->error(".base undefined\n"); - } else { (yyval.token) = 0; PASM->report->error(".base outside class scope\n"); } + { if(PASM->m_pCurClass != NULL) { + yyval.token = PASM->m_pCurClass->m_crExtends; + if(RidFromToken(yyval.token) == 0) + PASM->report->error(".base undefined\n"); + } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 7371 "asmparse.cpp" - break; - - case 579: /* className: _NESTER */ +#line 10721 "asmparse.cpp" +break; +case 578: #line 1548 "asmparse.y" - { if(PASM->m_pCurClass != NULL) { - if(PASM->m_pCurClass->m_pEncloser != NULL) (yyval.token) = PASM->m_pCurClass->m_pEncloser->m_cl; - else { (yyval.token) = 0; PASM->report->error(".nester undefined\n"); } - } else { (yyval.token) = 0; PASM->report->error(".nester outside class scope\n"); } + { if(PASM->m_pCurClass != NULL) { + if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; + else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } + } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 7381 "asmparse.cpp" - break; - - case 580: /* slashedName: dottedName */ +#line 10730 "asmparse.cpp" +break; +case 579: #line 1555 "asmparse.y" - { (yyval.string) = (yyvsp[0].string); } -#line 7387 "asmparse.cpp" - break; - - case 581: /* slashedName: slashedName '/' dottedName */ + { yyval.string = yystack.l_mark[0].string; } +#line 10735 "asmparse.cpp" +break; +case 580: #line 1556 "asmparse.y" - { (yyval.string) = newStringWDel((yyvsp[-2].string), NESTING_SEP, (yyvsp[0].string)); } -#line 7393 "asmparse.cpp" - break; - - case 582: /* typeSpec: className */ + { yyval.string = newStringWDel(yystack.l_mark[-2].string, NESTING_SEP, yystack.l_mark[0].string); } +#line 10740 "asmparse.cpp" +break; +case 581: #line 1559 "asmparse.y" - { (yyval.token) = (yyvsp[0].token);} -#line 7399 "asmparse.cpp" - break; - - case 583: /* typeSpec: '[' dottedName ']' */ + { yyval.token = yystack.l_mark[0].token;} +#line 10745 "asmparse.cpp" +break; +case 582: #line 1560 "asmparse.y" - { (yyval.token) = PASM->GetAsmRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} -#line 7405 "asmparse.cpp" - break; - - case 584: /* typeSpec: '[' _MODULE dottedName ']' */ + { yyval.token = PASM->GetAsmRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} +#line 10750 "asmparse.cpp" +break; +case 583: #line 1561 "asmparse.y" - { (yyval.token) = PASM->GetModRef((yyvsp[-1].string)); delete[] (yyvsp[-1].string);} -#line 7411 "asmparse.cpp" - break; - - case 585: /* typeSpec: type */ + { yyval.token = PASM->GetModRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} +#line 10755 "asmparse.cpp" +break; +case 584: #line 1562 "asmparse.y" - { (yyval.token) = PASM->ResolveTypeSpec((yyvsp[0].binstr)); } -#line 7417 "asmparse.cpp" - break; - - case 586: /* nativeType: %empty */ + { yyval.token = PASM->ResolveTypeSpec(yystack.l_mark[0].binstr); } +#line 10760 "asmparse.cpp" +break; +case 585: #line 1566 "asmparse.y" - { (yyval.binstr) = new BinStr(); } -#line 7423 "asmparse.cpp" - break; - - case 587: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ',' compQstring ',' compQstring ')' */ + { yyval.binstr = new BinStr(); } +#line 10765 "asmparse.cpp" +break; +case 586: #line 1568 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); - corEmitInt((yyval.binstr),(yyvsp[-7].binstr)->length()); (yyval.binstr)->append((yyvsp[-7].binstr)); - corEmitInt((yyval.binstr),(yyvsp[-5].binstr)->length()); (yyval.binstr)->append((yyvsp[-5].binstr)); - corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); - corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); + corEmitInt(yyval.binstr,yystack.l_mark[-7].binstr->length()); yyval.binstr->append(yystack.l_mark[-7].binstr); + corEmitInt(yyval.binstr,yystack.l_mark[-5].binstr->length()); yyval.binstr->append(yystack.l_mark[-5].binstr); + corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); + corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 7434 "asmparse.cpp" - break; - - case 588: /* nativeType: CUSTOM_ '(' compQstring ',' compQstring ')' */ +#line 10775 "asmparse.cpp" +break; +case 587: #line 1575 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); - corEmitInt((yyval.binstr),0); - corEmitInt((yyval.binstr),0); - corEmitInt((yyval.binstr),(yyvsp[-3].binstr)->length()); (yyval.binstr)->append((yyvsp[-3].binstr)); - corEmitInt((yyval.binstr),(yyvsp[-1].binstr)->length()); (yyval.binstr)->append((yyvsp[-1].binstr)); } -#line 7444 "asmparse.cpp" - break; - - case 589: /* nativeType: FIXED_ SYSSTRING_ '[' int32 ']' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); + corEmitInt(yyval.binstr,0); + corEmitInt(yyval.binstr,0); + corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); + corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); } +#line 10784 "asmparse.cpp" +break; +case 588: #line 1580 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); - corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } -#line 7451 "asmparse.cpp" - break; - - case 590: /* nativeType: FIXED_ ARRAY_ '[' int32 ']' nativeType */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); + corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } +#line 10790 "asmparse.cpp" +break; +case 589: #line 1583 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FIXEDARRAY); - corEmitInt((yyval.binstr),(yyvsp[-2].int32)); (yyval.binstr)->append((yyvsp[0].binstr)); } -#line 7458 "asmparse.cpp" - break; - - case 591: /* nativeType: VARIANT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); + corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); yyval.binstr->append(yystack.l_mark[0].binstr); } +#line 10796 "asmparse.cpp" +break; +case 590: #line 1585 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANT); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 7465 "asmparse.cpp" - break; - - case 592: /* nativeType: CURRENCY_ */ +#line 10802 "asmparse.cpp" +break; +case 591: #line 1587 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 7471 "asmparse.cpp" - break; - - case 593: /* nativeType: SYSCHAR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } +#line 10807 "asmparse.cpp" +break; +case 592: #line 1588 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SYSCHAR); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 7478 "asmparse.cpp" - break; - - case 594: /* nativeType: VOID_ */ +#line 10813 "asmparse.cpp" +break; +case 593: #line 1590 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VOID); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 7485 "asmparse.cpp" - break; - - case 595: /* nativeType: BOOL_ */ +#line 10819 "asmparse.cpp" +break; +case 594: #line 1592 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 7491 "asmparse.cpp" - break; - - case 596: /* nativeType: INT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } +#line 10824 "asmparse.cpp" +break; +case 595: #line 1593 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I1); } -#line 7497 "asmparse.cpp" - break; - - case 597: /* nativeType: INT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } +#line 10829 "asmparse.cpp" +break; +case 596: #line 1594 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I2); } -#line 7503 "asmparse.cpp" - break; - - case 598: /* nativeType: INT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } +#line 10834 "asmparse.cpp" +break; +case 597: #line 1595 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I4); } -#line 7509 "asmparse.cpp" - break; - - case 599: /* nativeType: INT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } +#line 10839 "asmparse.cpp" +break; +case 598: #line 1596 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_I8); } -#line 7515 "asmparse.cpp" - break; - - case 600: /* nativeType: FLOAT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } +#line 10844 "asmparse.cpp" +break; +case 599: #line 1597 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R4); } -#line 7521 "asmparse.cpp" - break; - - case 601: /* nativeType: FLOAT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } +#line 10849 "asmparse.cpp" +break; +case 600: #line 1598 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_R8); } -#line 7527 "asmparse.cpp" - break; - - case 602: /* nativeType: ERROR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } +#line 10854 "asmparse.cpp" +break; +case 601: #line 1599 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ERROR); } -#line 7533 "asmparse.cpp" - break; - - case 603: /* nativeType: UNSIGNED_ INT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } +#line 10859 "asmparse.cpp" +break; +case 602: #line 1600 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } -#line 7539 "asmparse.cpp" - break; - - case 604: /* nativeType: UNSIGNED_ INT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 10864 "asmparse.cpp" +break; +case 603: #line 1601 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } -#line 7545 "asmparse.cpp" - break; - - case 605: /* nativeType: UNSIGNED_ INT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 10869 "asmparse.cpp" +break; +case 604: #line 1602 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } -#line 7551 "asmparse.cpp" - break; - - case 606: /* nativeType: UNSIGNED_ INT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 10874 "asmparse.cpp" +break; +case 605: #line 1603 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } -#line 7557 "asmparse.cpp" - break; - - case 607: /* nativeType: UINT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 10879 "asmparse.cpp" +break; +case 606: #line 1604 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U1); } -#line 7563 "asmparse.cpp" - break; - - case 608: /* nativeType: UINT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 10884 "asmparse.cpp" +break; +case 607: #line 1605 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U2); } -#line 7569 "asmparse.cpp" - break; - - case 609: /* nativeType: UINT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 10889 "asmparse.cpp" +break; +case 608: #line 1606 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U4); } -#line 7575 "asmparse.cpp" - break; - - case 610: /* nativeType: UINT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 10894 "asmparse.cpp" +break; +case 609: #line 1607 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_U8); } -#line 7581 "asmparse.cpp" - break; - - case 611: /* nativeType: nativeType '*' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 10899 "asmparse.cpp" +break; +case 610: #line 1608 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(NATIVE_TYPE_PTR); + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 7588 "asmparse.cpp" - break; - - case 612: /* nativeType: nativeType '[' ']' */ +#line 10905 "asmparse.cpp" +break; +case 611: #line 1610 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); - (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); } -#line 7595 "asmparse.cpp" - break; - - case 613: /* nativeType: nativeType '[' int32 ']' */ + { yyval.binstr = yystack.l_mark[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } +#line 10911 "asmparse.cpp" +break; +case 612: #line 1612 "asmparse.y" - { (yyval.binstr) = (yyvsp[-3].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); - (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt((yyval.binstr),0); - corEmitInt((yyval.binstr),(yyvsp[-1].int32)); - corEmitInt((yyval.binstr),0); } -#line 7605 "asmparse.cpp" - break; - - case 614: /* nativeType: nativeType '[' int32 '+' int32 ']' */ + { yyval.binstr = yystack.l_mark[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt(yyval.binstr,0); + corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); + corEmitInt(yyval.binstr,0); } +#line 10920 "asmparse.cpp" +break; +case 613: #line 1617 "asmparse.y" - { (yyval.binstr) = (yyvsp[-5].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); - (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt((yyval.binstr),(yyvsp[-1].int32)); - corEmitInt((yyval.binstr),(yyvsp[-3].int32)); - corEmitInt((yyval.binstr),ntaSizeParamIndexSpecified); } -#line 7615 "asmparse.cpp" - break; - - case 615: /* nativeType: nativeType '[' '+' int32 ']' */ + { yyval.binstr = yystack.l_mark[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); + corEmitInt(yyval.binstr,yystack.l_mark[-3].int32); + corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } +#line 10929 "asmparse.cpp" +break; +case 614: #line 1622 "asmparse.y" - { (yyval.binstr) = (yyvsp[-4].binstr); if((yyval.binstr)->length()==0) (yyval.binstr)->appendInt8(NATIVE_TYPE_MAX); - (yyval.binstr)->insertInt8(NATIVE_TYPE_ARRAY); - corEmitInt((yyval.binstr),(yyvsp[-1].int32)); } -#line 7623 "asmparse.cpp" - break; - - case 616: /* nativeType: DECIMAL_ */ + { yyval.binstr = yystack.l_mark[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); + yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); + corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } +#line 10936 "asmparse.cpp" +break; +case 615: #line 1625 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DECIMAL); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 7630 "asmparse.cpp" - break; - - case 617: /* nativeType: DATE_ */ +#line 10942 "asmparse.cpp" +break; +case 616: #line 1627 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_DATE); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 7637 "asmparse.cpp" - break; - - case 618: /* nativeType: BSTR_ */ +#line 10948 "asmparse.cpp" +break; +case 617: #line 1629 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BSTR); } -#line 7643 "asmparse.cpp" - break; - - case 619: /* nativeType: LPSTR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } +#line 10953 "asmparse.cpp" +break; +case 618: #line 1630 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTR); } -#line 7649 "asmparse.cpp" - break; - - case 620: /* nativeType: LPWSTR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } +#line 10958 "asmparse.cpp" +break; +case 619: #line 1631 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 7655 "asmparse.cpp" - break; - - case 621: /* nativeType: LPTSTR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } +#line 10963 "asmparse.cpp" +break; +case 620: #line 1632 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 7661 "asmparse.cpp" - break; - - case 622: /* nativeType: OBJECTREF_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } +#line 10968 "asmparse.cpp" +break; +case 621: #line 1633 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_OBJECTREF); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 7668 "asmparse.cpp" - break; - - case 623: /* nativeType: IUNKNOWN_ iidParamIndex */ +#line 10974 "asmparse.cpp" +break; +case 622: #line 1635 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IUNKNOWN); - if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7675 "asmparse.cpp" - break; - - case 624: /* nativeType: IDISPATCH_ iidParamIndex */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); + if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } +#line 10980 "asmparse.cpp" +break; +case 623: #line 1637 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_IDISPATCH); - if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7682 "asmparse.cpp" - break; - - case 625: /* nativeType: STRUCT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); + if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } +#line 10986 "asmparse.cpp" +break; +case 624: #line 1639 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_STRUCT); } -#line 7688 "asmparse.cpp" - break; - - case 626: /* nativeType: INTERFACE_ iidParamIndex */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } +#line 10991 "asmparse.cpp" +break; +case 625: #line 1640 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INTF); - if((yyvsp[0].int32) != -1) corEmitInt((yyval.binstr),(yyvsp[0].int32)); } -#line 7695 "asmparse.cpp" - break; - - case 627: /* nativeType: SAFEARRAY_ variantType */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); + if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } +#line 10997 "asmparse.cpp" +break; +case 626: #line 1642 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt((yyval.binstr),(yyvsp[0].int32)); - corEmitInt((yyval.binstr),0);} -#line 7703 "asmparse.cpp" - break; - - case 628: /* nativeType: SAFEARRAY_ variantType ',' compQstring */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); + corEmitInt(yyval.binstr,yystack.l_mark[0].int32); + corEmitInt(yyval.binstr,0);} +#line 11004 "asmparse.cpp" +break; +case 627: #line 1645 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_SAFEARRAY); - corEmitInt((yyval.binstr),(yyvsp[-2].int32)); - corEmitInt((yyval.binstr),(yyvsp[0].binstr)->length()); (yyval.binstr)->append((yyvsp[0].binstr)); } -#line 7711 "asmparse.cpp" - break; - - case 629: /* nativeType: INT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); + corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); + corEmitInt(yyval.binstr,yystack.l_mark[0].binstr->length()); yyval.binstr->append(yystack.l_mark[0].binstr); } +#line 11011 "asmparse.cpp" +break; +case 628: #line 1649 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_INT); } -#line 7717 "asmparse.cpp" - break; - - case 630: /* nativeType: UNSIGNED_ INT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } +#line 11016 "asmparse.cpp" +break; +case 629: #line 1650 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } -#line 7723 "asmparse.cpp" - break; - - case 631: /* nativeType: UINT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 11021 "asmparse.cpp" +break; +case 630: #line 1651 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_UINT); } -#line 7729 "asmparse.cpp" - break; - - case 632: /* nativeType: NESTED_ STRUCT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 11026 "asmparse.cpp" +break; +case 631: #line 1652 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 7736 "asmparse.cpp" - break; - - case 633: /* nativeType: BYVALSTR_ */ +#line 11032 "asmparse.cpp" +break; +case 632: #line 1654 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 7742 "asmparse.cpp" - break; - - case 634: /* nativeType: ANSI_ BSTR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } +#line 11037 "asmparse.cpp" +break; +case 633: #line 1655 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 7748 "asmparse.cpp" - break; - - case 635: /* nativeType: TBSTR_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } +#line 11042 "asmparse.cpp" +break; +case 634: #line 1656 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_TBSTR); } -#line 7754 "asmparse.cpp" - break; - - case 636: /* nativeType: VARIANT_ BOOL_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } +#line 11047 "asmparse.cpp" +break; +case 635: #line 1657 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 7760 "asmparse.cpp" - break; - - case 637: /* nativeType: METHOD_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } +#line 11052 "asmparse.cpp" +break; +case 636: #line 1658 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_FUNC); } -#line 7766 "asmparse.cpp" - break; - - case 638: /* nativeType: AS_ ANY_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } +#line 11057 "asmparse.cpp" +break; +case 637: #line 1659 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_ASANY); } -#line 7772 "asmparse.cpp" - break; - - case 639: /* nativeType: LPSTRUCT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } +#line 11062 "asmparse.cpp" +break; +case 638: #line 1660 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 7778 "asmparse.cpp" - break; - - case 640: /* nativeType: TYPEDEF_TS */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } +#line 11067 "asmparse.cpp" +break; +case 639: #line 1661 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } -#line 7784 "asmparse.cpp" - break; - - case 641: /* iidParamIndex: %empty */ + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } +#line 11072 "asmparse.cpp" +break; +case 640: #line 1664 "asmparse.y" - { (yyval.int32) = -1; } -#line 7790 "asmparse.cpp" - break; - - case 642: /* iidParamIndex: '(' IIDPARAM_ '=' int32 ')' */ + { yyval.int32 = -1; } +#line 11077 "asmparse.cpp" +break; +case 641: #line 1665 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32); } -#line 7796 "asmparse.cpp" - break; - - case 643: /* variantType: %empty */ + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 11082 "asmparse.cpp" +break; +case 642: #line 1668 "asmparse.y" - { (yyval.int32) = VT_EMPTY; } -#line 7802 "asmparse.cpp" - break; - - case 644: /* variantType: NULL_ */ + { yyval.int32 = VT_EMPTY; } +#line 11087 "asmparse.cpp" +break; +case 643: #line 1669 "asmparse.y" - { (yyval.int32) = VT_NULL; } -#line 7808 "asmparse.cpp" - break; - - case 645: /* variantType: VARIANT_ */ + { yyval.int32 = VT_NULL; } +#line 11092 "asmparse.cpp" +break; +case 644: #line 1670 "asmparse.y" - { (yyval.int32) = VT_VARIANT; } -#line 7814 "asmparse.cpp" - break; - - case 646: /* variantType: CURRENCY_ */ + { yyval.int32 = VT_VARIANT; } +#line 11097 "asmparse.cpp" +break; +case 645: #line 1671 "asmparse.y" - { (yyval.int32) = VT_CY; } -#line 7820 "asmparse.cpp" - break; - - case 647: /* variantType: VOID_ */ + { yyval.int32 = VT_CY; } +#line 11102 "asmparse.cpp" +break; +case 646: #line 1672 "asmparse.y" - { (yyval.int32) = VT_VOID; } -#line 7826 "asmparse.cpp" - break; - - case 648: /* variantType: BOOL_ */ + { yyval.int32 = VT_VOID; } +#line 11107 "asmparse.cpp" +break; +case 647: #line 1673 "asmparse.y" - { (yyval.int32) = VT_BOOL; } -#line 7832 "asmparse.cpp" - break; - - case 649: /* variantType: INT8_ */ + { yyval.int32 = VT_BOOL; } +#line 11112 "asmparse.cpp" +break; +case 648: #line 1674 "asmparse.y" - { (yyval.int32) = VT_I1; } -#line 7838 "asmparse.cpp" - break; - - case 650: /* variantType: INT16_ */ + { yyval.int32 = VT_I1; } +#line 11117 "asmparse.cpp" +break; +case 649: #line 1675 "asmparse.y" - { (yyval.int32) = VT_I2; } -#line 7844 "asmparse.cpp" - break; - - case 651: /* variantType: INT32_ */ + { yyval.int32 = VT_I2; } +#line 11122 "asmparse.cpp" +break; +case 650: #line 1676 "asmparse.y" - { (yyval.int32) = VT_I4; } -#line 7850 "asmparse.cpp" - break; - - case 652: /* variantType: INT64_ */ + { yyval.int32 = VT_I4; } +#line 11127 "asmparse.cpp" +break; +case 651: #line 1677 "asmparse.y" - { (yyval.int32) = VT_I8; } -#line 7856 "asmparse.cpp" - break; - - case 653: /* variantType: FLOAT32_ */ + { yyval.int32 = VT_I8; } +#line 11132 "asmparse.cpp" +break; +case 652: #line 1678 "asmparse.y" - { (yyval.int32) = VT_R4; } -#line 7862 "asmparse.cpp" - break; - - case 654: /* variantType: FLOAT64_ */ + { yyval.int32 = VT_R4; } +#line 11137 "asmparse.cpp" +break; +case 653: #line 1679 "asmparse.y" - { (yyval.int32) = VT_R8; } -#line 7868 "asmparse.cpp" - break; - - case 655: /* variantType: UNSIGNED_ INT8_ */ + { yyval.int32 = VT_R8; } +#line 11142 "asmparse.cpp" +break; +case 654: #line 1680 "asmparse.y" - { (yyval.int32) = VT_UI1; } -#line 7874 "asmparse.cpp" - break; - - case 656: /* variantType: UNSIGNED_ INT16_ */ + { yyval.int32 = VT_UI1; } +#line 11147 "asmparse.cpp" +break; +case 655: #line 1681 "asmparse.y" - { (yyval.int32) = VT_UI2; } -#line 7880 "asmparse.cpp" - break; - - case 657: /* variantType: UNSIGNED_ INT32_ */ + { yyval.int32 = VT_UI2; } +#line 11152 "asmparse.cpp" +break; +case 656: #line 1682 "asmparse.y" - { (yyval.int32) = VT_UI4; } -#line 7886 "asmparse.cpp" - break; - - case 658: /* variantType: UNSIGNED_ INT64_ */ + { yyval.int32 = VT_UI4; } +#line 11157 "asmparse.cpp" +break; +case 657: #line 1683 "asmparse.y" - { (yyval.int32) = VT_UI8; } -#line 7892 "asmparse.cpp" - break; - - case 659: /* variantType: UINT8_ */ + { yyval.int32 = VT_UI8; } +#line 11162 "asmparse.cpp" +break; +case 658: #line 1684 "asmparse.y" - { (yyval.int32) = VT_UI1; } -#line 7898 "asmparse.cpp" - break; - - case 660: /* variantType: UINT16_ */ + { yyval.int32 = VT_UI1; } +#line 11167 "asmparse.cpp" +break; +case 659: #line 1685 "asmparse.y" - { (yyval.int32) = VT_UI2; } -#line 7904 "asmparse.cpp" - break; - - case 661: /* variantType: UINT32_ */ + { yyval.int32 = VT_UI2; } +#line 11172 "asmparse.cpp" +break; +case 660: #line 1686 "asmparse.y" - { (yyval.int32) = VT_UI4; } -#line 7910 "asmparse.cpp" - break; - - case 662: /* variantType: UINT64_ */ + { yyval.int32 = VT_UI4; } +#line 11177 "asmparse.cpp" +break; +case 661: #line 1687 "asmparse.y" - { (yyval.int32) = VT_UI8; } -#line 7916 "asmparse.cpp" - break; - - case 663: /* variantType: '*' */ + { yyval.int32 = VT_UI8; } +#line 11182 "asmparse.cpp" +break; +case 662: #line 1688 "asmparse.y" - { (yyval.int32) = VT_PTR; } -#line 7922 "asmparse.cpp" - break; - - case 664: /* variantType: variantType '[' ']' */ + { yyval.int32 = VT_PTR; } +#line 11187 "asmparse.cpp" +break; +case 663: #line 1689 "asmparse.y" - { (yyval.int32) = (yyvsp[-2].int32) | VT_ARRAY; } -#line 7928 "asmparse.cpp" - break; - - case 665: /* variantType: variantType VECTOR_ */ + { yyval.int32 = yystack.l_mark[-2].int32 | VT_ARRAY; } +#line 11192 "asmparse.cpp" +break; +case 664: #line 1690 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | VT_VECTOR; } -#line 7934 "asmparse.cpp" - break; - - case 666: /* variantType: variantType '&' */ + { yyval.int32 = yystack.l_mark[-1].int32 | VT_VECTOR; } +#line 11197 "asmparse.cpp" +break; +case 665: #line 1691 "asmparse.y" - { (yyval.int32) = (yyvsp[-1].int32) | VT_BYREF; } -#line 7940 "asmparse.cpp" - break; - - case 667: /* variantType: DECIMAL_ */ + { yyval.int32 = yystack.l_mark[-1].int32 | VT_BYREF; } +#line 11202 "asmparse.cpp" +break; +case 666: #line 1692 "asmparse.y" - { (yyval.int32) = VT_DECIMAL; } -#line 7946 "asmparse.cpp" - break; - - case 668: /* variantType: DATE_ */ + { yyval.int32 = VT_DECIMAL; } +#line 11207 "asmparse.cpp" +break; +case 667: #line 1693 "asmparse.y" - { (yyval.int32) = VT_DATE; } -#line 7952 "asmparse.cpp" - break; - - case 669: /* variantType: BSTR_ */ + { yyval.int32 = VT_DATE; } +#line 11212 "asmparse.cpp" +break; +case 668: #line 1694 "asmparse.y" - { (yyval.int32) = VT_BSTR; } -#line 7958 "asmparse.cpp" - break; - - case 670: /* variantType: LPSTR_ */ + { yyval.int32 = VT_BSTR; } +#line 11217 "asmparse.cpp" +break; +case 669: #line 1695 "asmparse.y" - { (yyval.int32) = VT_LPSTR; } -#line 7964 "asmparse.cpp" - break; - - case 671: /* variantType: LPWSTR_ */ + { yyval.int32 = VT_LPSTR; } +#line 11222 "asmparse.cpp" +break; +case 670: #line 1696 "asmparse.y" - { (yyval.int32) = VT_LPWSTR; } -#line 7970 "asmparse.cpp" - break; - - case 672: /* variantType: IUNKNOWN_ */ + { yyval.int32 = VT_LPWSTR; } +#line 11227 "asmparse.cpp" +break; +case 671: #line 1697 "asmparse.y" - { (yyval.int32) = VT_UNKNOWN; } -#line 7976 "asmparse.cpp" - break; - - case 673: /* variantType: IDISPATCH_ */ + { yyval.int32 = VT_UNKNOWN; } +#line 11232 "asmparse.cpp" +break; +case 672: #line 1698 "asmparse.y" - { (yyval.int32) = VT_DISPATCH; } -#line 7982 "asmparse.cpp" - break; - - case 674: /* variantType: SAFEARRAY_ */ + { yyval.int32 = VT_DISPATCH; } +#line 11237 "asmparse.cpp" +break; +case 673: #line 1699 "asmparse.y" - { (yyval.int32) = VT_SAFEARRAY; } -#line 7988 "asmparse.cpp" - break; - - case 675: /* variantType: INT_ */ + { yyval.int32 = VT_SAFEARRAY; } +#line 11242 "asmparse.cpp" +break; +case 674: #line 1700 "asmparse.y" - { (yyval.int32) = VT_INT; } -#line 7994 "asmparse.cpp" - break; - - case 676: /* variantType: UNSIGNED_ INT_ */ + { yyval.int32 = VT_INT; } +#line 11247 "asmparse.cpp" +break; +case 675: #line 1701 "asmparse.y" - { (yyval.int32) = VT_UINT; } -#line 8000 "asmparse.cpp" - break; - - case 677: /* variantType: UINT_ */ + { yyval.int32 = VT_UINT; } +#line 11252 "asmparse.cpp" +break; +case 676: #line 1702 "asmparse.y" - { (yyval.int32) = VT_UINT; } -#line 8006 "asmparse.cpp" - break; - - case 678: /* variantType: ERROR_ */ + { yyval.int32 = VT_UINT; } +#line 11257 "asmparse.cpp" +break; +case 677: #line 1703 "asmparse.y" - { (yyval.int32) = VT_ERROR; } -#line 8012 "asmparse.cpp" - break; - - case 679: /* variantType: HRESULT_ */ + { yyval.int32 = VT_ERROR; } +#line 11262 "asmparse.cpp" +break; +case 678: #line 1704 "asmparse.y" - { (yyval.int32) = VT_HRESULT; } -#line 8018 "asmparse.cpp" - break; - - case 680: /* variantType: CARRAY_ */ + { yyval.int32 = VT_HRESULT; } +#line 11267 "asmparse.cpp" +break; +case 679: #line 1705 "asmparse.y" - { (yyval.int32) = VT_CARRAY; } -#line 8024 "asmparse.cpp" - break; - - case 681: /* variantType: USERDEFINED_ */ + { yyval.int32 = VT_CARRAY; } +#line 11272 "asmparse.cpp" +break; +case 680: #line 1706 "asmparse.y" - { (yyval.int32) = VT_USERDEFINED; } -#line 8030 "asmparse.cpp" - break; - - case 682: /* variantType: RECORD_ */ + { yyval.int32 = VT_USERDEFINED; } +#line 11277 "asmparse.cpp" +break; +case 681: #line 1707 "asmparse.y" - { (yyval.int32) = VT_RECORD; } -#line 8036 "asmparse.cpp" - break; - - case 683: /* variantType: FILETIME_ */ + { yyval.int32 = VT_RECORD; } +#line 11282 "asmparse.cpp" +break; +case 682: #line 1708 "asmparse.y" - { (yyval.int32) = VT_FILETIME; } -#line 8042 "asmparse.cpp" - break; - - case 684: /* variantType: BLOB_ */ + { yyval.int32 = VT_FILETIME; } +#line 11287 "asmparse.cpp" +break; +case 683: #line 1709 "asmparse.y" - { (yyval.int32) = VT_BLOB; } -#line 8048 "asmparse.cpp" - break; - - case 685: /* variantType: STREAM_ */ + { yyval.int32 = VT_BLOB; } +#line 11292 "asmparse.cpp" +break; +case 684: #line 1710 "asmparse.y" - { (yyval.int32) = VT_STREAM; } -#line 8054 "asmparse.cpp" - break; - - case 686: /* variantType: STORAGE_ */ + { yyval.int32 = VT_STREAM; } +#line 11297 "asmparse.cpp" +break; +case 685: #line 1711 "asmparse.y" - { (yyval.int32) = VT_STORAGE; } -#line 8060 "asmparse.cpp" - break; - - case 687: /* variantType: STREAMED_OBJECT_ */ + { yyval.int32 = VT_STORAGE; } +#line 11302 "asmparse.cpp" +break; +case 686: #line 1712 "asmparse.y" - { (yyval.int32) = VT_STREAMED_OBJECT; } -#line 8066 "asmparse.cpp" - break; - - case 688: /* variantType: STORED_OBJECT_ */ + { yyval.int32 = VT_STREAMED_OBJECT; } +#line 11307 "asmparse.cpp" +break; +case 687: #line 1713 "asmparse.y" - { (yyval.int32) = VT_STORED_OBJECT; } -#line 8072 "asmparse.cpp" - break; - - case 689: /* variantType: BLOB_OBJECT_ */ + { yyval.int32 = VT_STORED_OBJECT; } +#line 11312 "asmparse.cpp" +break; +case 688: #line 1714 "asmparse.y" - { (yyval.int32) = VT_BLOB_OBJECT; } -#line 8078 "asmparse.cpp" - break; - - case 690: /* variantType: CF_ */ + { yyval.int32 = VT_BLOB_OBJECT; } +#line 11317 "asmparse.cpp" +break; +case 689: #line 1715 "asmparse.y" - { (yyval.int32) = VT_CF; } -#line 8084 "asmparse.cpp" - break; - - case 691: /* variantType: CLSID_ */ + { yyval.int32 = VT_CF; } +#line 11322 "asmparse.cpp" +break; +case 690: #line 1716 "asmparse.y" - { (yyval.int32) = VT_CLSID; } -#line 8090 "asmparse.cpp" - break; - - case 692: /* type: CLASS_ className */ + { yyval.int32 = VT_CLSID; } +#line 11327 "asmparse.cpp" +break; +case 691: #line 1720 "asmparse.y" - { if((yyvsp[0].token) == PASM->m_tkSysString) - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } - else if((yyvsp[0].token) == PASM->m_tkSysObject) - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } - else - (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, (yyvsp[0].token)); } -#line 8101 "asmparse.cpp" - break; - - case 693: /* type: OBJECT_ */ + { if(yystack.l_mark[0].token == PASM->m_tkSysString) + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } + else if(yystack.l_mark[0].token == PASM->m_tkSysObject) + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } + else + yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yystack.l_mark[0].token); } +#line 11337 "asmparse.cpp" +break; +case 692: #line 1726 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 8107 "asmparse.cpp" - break; - - case 694: /* type: VALUE_ CLASS_ className */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } +#line 11342 "asmparse.cpp" +break; +case 693: #line 1727 "asmparse.y" - { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } -#line 8113 "asmparse.cpp" - break; - - case 695: /* type: VALUETYPE_ className */ + { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } +#line 11347 "asmparse.cpp" +break; +case 694: #line 1728 "asmparse.y" - { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, (yyvsp[0].token)); } -#line 8119 "asmparse.cpp" - break; - - case 696: /* type: CONST_ constTypeArg */ + { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } +#line 11352 "asmparse.cpp" +break; +case 695: #line 1729 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_CTARG); } -#line 8125 "asmparse.cpp" - break; - - case 697: /* type: type '[' ']' */ + { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } +#line 11357 "asmparse.cpp" +break; +case 696: #line 1730 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8131 "asmparse.cpp" - break; - - case 698: /* type: type '[' bounds1 ']' */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 11362 "asmparse.cpp" +break; +case 697: #line 1731 "asmparse.y" - { (yyval.binstr) = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, (yyvsp[-3].binstr), (yyvsp[-1].binstr)); } -#line 8137 "asmparse.cpp" - break; - - case 699: /* type: type '&' */ + { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr); } +#line 11367 "asmparse.cpp" +break; +case 698: #line 1732 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_BYREF); } -#line 8143 "asmparse.cpp" - break; - - case 700: /* type: type '*' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 11372 "asmparse.cpp" +break; +case 699: #line 1733 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PTR); } -#line 8149 "asmparse.cpp" - break; - - case 701: /* type: type PINNED_ */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 11377 "asmparse.cpp" +break; +case 700: #line 1734 "asmparse.y" - { (yyval.binstr) = (yyvsp[-1].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_PINNED); } -#line 8155 "asmparse.cpp" - break; - - case 702: /* type: type MODREQ_ '(' typeSpec ')' */ + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 11382 "asmparse.cpp" +break; +case 701: #line 1735 "asmparse.y" - { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, (yyvsp[-1].token)); - (yyval.binstr)->append((yyvsp[-4].binstr)); } -#line 8162 "asmparse.cpp" - break; - - case 703: /* type: type MODOPT_ '(' typeSpec ')' */ + { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yystack.l_mark[-1].token); + yyval.binstr->append(yystack.l_mark[-4].binstr); } +#line 11388 "asmparse.cpp" +break; +case 702: #line 1737 "asmparse.y" - { (yyval.binstr) = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, (yyvsp[-1].token)); - (yyval.binstr)->append((yyvsp[-4].binstr)); } -#line 8169 "asmparse.cpp" - break; - - case 704: /* type: methodSpec callConv type '*' '(' sigArgs0 ')' */ + { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yystack.l_mark[-1].token); + yyval.binstr->append(yystack.l_mark[-4].binstr); } +#line 11394 "asmparse.cpp" +break; +case 703: #line 1740 "asmparse.y" - { (yyval.binstr) = parser->MakeSig((yyvsp[-5].int32), (yyvsp[-4].binstr), (yyvsp[-1].binstr)); - (yyval.binstr)->insertInt8(ELEMENT_TYPE_FNPTR); - PASM->delArgNameList(PASM->m_firstArgName); - PASM->m_firstArgName = parser->m_ANSFirst.POP(); - PASM->m_lastArgName = parser->m_ANSLast.POP(); + { yyval.binstr = parser->MakeSig(yystack.l_mark[-5].int32, yystack.l_mark[-4].binstr, yystack.l_mark[-1].binstr); + yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); + PASM->delArgNameList(PASM->m_firstArgName); + PASM->m_firstArgName = parser->m_ANSFirst.POP(); + PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 8180 "asmparse.cpp" - break; - - case 705: /* type: type '<' tyArgs1 '>' */ +#line 11404 "asmparse.cpp" +break; +case 704: #line 1746 "asmparse.y" - { if((yyvsp[-1].binstr) == NULL) (yyval.binstr) = (yyvsp[-3].binstr); - else { - (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(ELEMENT_TYPE_GENERICINST); - (yyval.binstr)->append((yyvsp[-3].binstr)); - corEmitInt((yyval.binstr), corCountArgs((yyvsp[-1].binstr))); - (yyval.binstr)->append((yyvsp[-1].binstr)); delete (yyvsp[-3].binstr); delete (yyvsp[-1].binstr); }} -#line 8192 "asmparse.cpp" - break; - - case 706: /* type: '!' '!' int32 */ + { if(yystack.l_mark[-1].binstr == NULL) yyval.binstr = yystack.l_mark[-3].binstr; + else { + yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(ELEMENT_TYPE_GENERICINST); + yyval.binstr->append(yystack.l_mark[-3].binstr); + corEmitInt(yyval.binstr, corCountArgs(yystack.l_mark[-1].binstr)); + yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-3].binstr; delete yystack.l_mark[-1].binstr; }} +#line 11415 "asmparse.cpp" +break; +case 705: #line 1753 "asmparse.y" - { //if(PASM->m_pCurMethod) { - // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) - // PASM->report->error("Invalid method type parameter '%d'\n",$3); - (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); - //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); + { /*if(PASM->m_pCurMethod) { */ + /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) */ + /* PASM->report->error("Invalid method type parameter '%d'\n",$3); */ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); + /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); */ } -#line 8203 "asmparse.cpp" - break; - - case 707: /* type: '!' int32 */ +#line 11425 "asmparse.cpp" +break; +case 706: #line 1759 "asmparse.y" - { //if(PASM->m_pCurClass) { - // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) - // PASM->report->error("Invalid type parameter '%d'\n",$2); - (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VAR); corEmitInt((yyval.binstr), (yyvsp[0].int32)); - //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); + { /*if(PASM->m_pCurClass) { */ + /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) */ + /* PASM->report->error("Invalid type parameter '%d'\n",$2); */ + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); + /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); */ } -#line 8214 "asmparse.cpp" - break; - - case 708: /* type: '!' '!' dottedName */ +#line 11435 "asmparse.cpp" +break; +case 707: #line 1765 "asmparse.y" - { int eltype = ELEMENT_TYPE_MVAR; - int n=-1; - if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar((yyvsp[0].string)); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf((yyvsp[0].string)); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH((yyvsp[0].string)); - eltype = ELEMENT_TYPE_MVARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",(yyvsp[0].string)); - n = 0x1FFFFFFF; } - (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); + { int eltype = ELEMENT_TYPE_MVAR; + int n=-1; + if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yystack.l_mark[0].string); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH(yystack.l_mark[0].string); + eltype = ELEMENT_TYPE_MVARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n",yystack.l_mark[0].string); + n = 0x1FFFFFFF; } + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 8234 "asmparse.cpp" - break; - - case 709: /* type: '!' dottedName */ +#line 11454 "asmparse.cpp" +break; +case 708: #line 1780 "asmparse.y" - { int eltype = ELEMENT_TYPE_VAR; - int n=-1; - if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar((yyvsp[0].string)); - else { - if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf((yyvsp[0].string)); - if(n == -1) - { n = TyParFixupList.COUNT(); - TyParFixupList.PUSH((yyvsp[0].string)); - eltype = ELEMENT_TYPE_VARFIXUP; - } - } - if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",(yyvsp[0].string)); - n = 0x1FFFFFFF; } - (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(eltype); corEmitInt((yyval.binstr),n); + { int eltype = ELEMENT_TYPE_VAR; + int n=-1; + if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); + else { + if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yystack.l_mark[0].string); + if(n == -1) + { n = TyParFixupList.COUNT(); + TyParFixupList.PUSH(yystack.l_mark[0].string); + eltype = ELEMENT_TYPE_VARFIXUP; + } + } + if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n",yystack.l_mark[0].string); + n = 0x1FFFFFFF; } + yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 8254 "asmparse.cpp" - break; - - case 710: /* type: TYPEDREF_ */ +#line 11473 "asmparse.cpp" +break; +case 709: #line 1795 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 8260 "asmparse.cpp" - break; - - case 711: /* type: VOID_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 11478 "asmparse.cpp" +break; +case 710: #line 1796 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_VOID); } -#line 8266 "asmparse.cpp" - break; - - case 712: /* type: NATIVE_ INT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } +#line 11483 "asmparse.cpp" +break; +case 711: #line 1797 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I); } -#line 8272 "asmparse.cpp" - break; - - case 713: /* type: NATIVE_ UNSIGNED_ INT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } +#line 11488 "asmparse.cpp" +break; +case 712: #line 1798 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } -#line 8278 "asmparse.cpp" - break; - - case 714: /* type: NATIVE_ UINT_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 11493 "asmparse.cpp" +break; +case 713: #line 1799 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U); } -#line 8284 "asmparse.cpp" - break; - - case 715: /* type: simpleType */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 11498 "asmparse.cpp" +break; +case 714: #line 1800 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 8290 "asmparse.cpp" - break; - - case 716: /* type: ELLIPSIS type */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 11503 "asmparse.cpp" +break; +case 715: #line 1801 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); (yyval.binstr)->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 8296 "asmparse.cpp" - break; - - case 717: /* simpleType: CHAR_ */ + { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 11508 "asmparse.cpp" +break; +case 716: #line 1804 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_CHAR); } -#line 8302 "asmparse.cpp" - break; - - case 718: /* simpleType: STRING_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } +#line 11513 "asmparse.cpp" +break; +case 717: #line 1805 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_STRING); } -#line 8308 "asmparse.cpp" - break; - - case 719: /* simpleType: BOOL_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } +#line 11518 "asmparse.cpp" +break; +case 718: #line 1806 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 8314 "asmparse.cpp" - break; - - case 720: /* simpleType: INT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 11523 "asmparse.cpp" +break; +case 719: #line 1807 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I1); } -#line 8320 "asmparse.cpp" - break; - - case 721: /* simpleType: INT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } +#line 11528 "asmparse.cpp" +break; +case 720: #line 1808 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I2); } -#line 8326 "asmparse.cpp" - break; - - case 722: /* simpleType: INT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } +#line 11533 "asmparse.cpp" +break; +case 721: #line 1809 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I4); } -#line 8332 "asmparse.cpp" - break; - - case 723: /* simpleType: INT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } +#line 11538 "asmparse.cpp" +break; +case 722: #line 1810 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_I8); } -#line 8338 "asmparse.cpp" - break; - - case 724: /* simpleType: FLOAT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } +#line 11543 "asmparse.cpp" +break; +case 723: #line 1811 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R4); } -#line 8344 "asmparse.cpp" - break; - - case 725: /* simpleType: FLOAT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } +#line 11548 "asmparse.cpp" +break; +case 724: #line 1812 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_R8); } -#line 8350 "asmparse.cpp" - break; - - case 726: /* simpleType: UNSIGNED_ INT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } +#line 11553 "asmparse.cpp" +break; +case 725: #line 1813 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } -#line 8356 "asmparse.cpp" - break; - - case 727: /* simpleType: UNSIGNED_ INT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11558 "asmparse.cpp" +break; +case 726: #line 1814 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } -#line 8362 "asmparse.cpp" - break; - - case 728: /* simpleType: UNSIGNED_ INT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11563 "asmparse.cpp" +break; +case 727: #line 1815 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } -#line 8368 "asmparse.cpp" - break; - - case 729: /* simpleType: UNSIGNED_ INT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11568 "asmparse.cpp" +break; +case 728: #line 1816 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } -#line 8374 "asmparse.cpp" - break; - - case 730: /* simpleType: UINT8_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11573 "asmparse.cpp" +break; +case 729: #line 1817 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U1); } -#line 8380 "asmparse.cpp" - break; - - case 731: /* simpleType: UINT16_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11578 "asmparse.cpp" +break; +case 730: #line 1818 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U2); } -#line 8386 "asmparse.cpp" - break; - - case 732: /* simpleType: UINT32_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11583 "asmparse.cpp" +break; +case 731: #line 1819 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U4); } -#line 8392 "asmparse.cpp" - break; - - case 733: /* simpleType: UINT64_ */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11588 "asmparse.cpp" +break; +case 732: #line 1820 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt8(ELEMENT_TYPE_U8); } -#line 8398 "asmparse.cpp" - break; - - case 734: /* simpleType: TYPEDEF_TS */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11593 "asmparse.cpp" +break; +case 733: #line 1821 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->append((yyvsp[0].tdd)->m_pbsTypeSpec); } -#line 8404 "asmparse.cpp" - break; - - case 735: /* bounds1: bound */ + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } +#line 11598 "asmparse.cpp" +break; +case 734: #line 1824 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); } -#line 8410 "asmparse.cpp" - break; - - case 736: /* bounds1: bounds1 ',' bound */ + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 11603 "asmparse.cpp" +break; +case 735: #line 1825 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyvsp[-2].binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); } -#line 8416 "asmparse.cpp" - break; - - case 737: /* bound: %empty */ + { yyval.binstr = yystack.l_mark[-2].binstr; yystack.l_mark[-2].binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 11608 "asmparse.cpp" +break; +case 736: #line 1828 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 8422 "asmparse.cpp" - break; - - case 738: /* bound: ELLIPSIS */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11613 "asmparse.cpp" +break; +case 737: #line 1829 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0x7FFFFFFF); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 8428 "asmparse.cpp" - break; - - case 739: /* bound: int32 */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11618 "asmparse.cpp" +break; +case 738: #line 1830 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32(0); (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 8434 "asmparse.cpp" - break; - - case 740: /* bound: int32 ELLIPSIS int32 */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } +#line 11623 "asmparse.cpp" +break; +case 739: #line 1831 "asmparse.y" - { FAIL_UNLESS((yyvsp[-2].int32) <= (yyvsp[0].int32), ("lower bound %d must be <= upper bound %d\n", (yyvsp[-2].int32), (yyvsp[0].int32))); - if ((yyvsp[-2].int32) > (yyvsp[0].int32)) { YYERROR; }; - (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-2].int32)); (yyval.binstr)->appendInt32((yyvsp[0].int32)-(yyvsp[-2].int32)+1); } -#line 8442 "asmparse.cpp" - break; - - case 741: /* bound: int32 ELLIPSIS */ + { FAIL_UNLESS(yystack.l_mark[-2].int32 <= yystack.l_mark[0].int32, ("lower bound %d must be <= upper bound %d\n", yystack.l_mark[-2].int32, yystack.l_mark[0].int32)); + if (yystack.l_mark[-2].int32 > yystack.l_mark[0].int32) { YYERROR; }; + yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-2].int32); yyval.binstr->appendInt32(yystack.l_mark[0].int32-yystack.l_mark[-2].int32+1); } +#line 11630 "asmparse.cpp" +break; +case 740: #line 1834 "asmparse.y" - { (yyval.binstr) = new BinStr(); (yyval.binstr)->appendInt32((yyvsp[-1].int32)); (yyval.binstr)->appendInt32(0x7FFFFFFF); } -#line 8448 "asmparse.cpp" - break; - - case 742: /* secDecl: _PERMISSION secAction typeSpec '(' nameValPairs ')' */ + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11635 "asmparse.cpp" +break; +case 741: #line 1839 "asmparse.y" - { PASM->AddPermissionDecl((yyvsp[-4].secAct), (yyvsp[-3].token), (yyvsp[-1].pair)); } -#line 8454 "asmparse.cpp" - break; - - case 743: /* secDecl: _PERMISSION secAction typeSpec '=' '{' customBlobDescr '}' */ + { PASM->AddPermissionDecl(yystack.l_mark[-4].secAct, yystack.l_mark[-3].token, yystack.l_mark[-1].pair); } +#line 11640 "asmparse.cpp" +break; +case 742: #line 1841 "asmparse.y" - { PASM->AddPermissionDecl((yyvsp[-5].secAct), (yyvsp[-4].token), (yyvsp[-1].binstr)); } -#line 8460 "asmparse.cpp" - break; - - case 744: /* secDecl: _PERMISSION secAction typeSpec */ + { PASM->AddPermissionDecl(yystack.l_mark[-5].secAct, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } +#line 11645 "asmparse.cpp" +break; +case 743: #line 1842 "asmparse.y" - { PASM->AddPermissionDecl((yyvsp[-1].secAct), (yyvsp[0].token), (NVPair *)NULL); } -#line 8466 "asmparse.cpp" - break; - - case 745: /* secDecl: psetHead bytes ')' */ + { PASM->AddPermissionDecl(yystack.l_mark[-1].secAct, yystack.l_mark[0].token, (NVPair *)NULL); } +#line 11650 "asmparse.cpp" +break; +case 744: #line 1843 "asmparse.y" - { PASM->AddPermissionSetDecl((yyvsp[-2].secAct), (yyvsp[-1].binstr)); } -#line 8472 "asmparse.cpp" - break; - - case 746: /* secDecl: _PERMISSIONSET secAction compQstring */ + { PASM->AddPermissionSetDecl(yystack.l_mark[-2].secAct, yystack.l_mark[-1].binstr); } +#line 11655 "asmparse.cpp" +break; +case 745: #line 1845 "asmparse.y" - { PASM->AddPermissionSetDecl((yyvsp[-1].secAct),BinStrToUnicode((yyvsp[0].binstr),true));} -#line 8478 "asmparse.cpp" - break; - - case 747: /* secDecl: _PERMISSIONSET secAction '=' '{' secAttrSetBlob '}' */ + { PASM->AddPermissionSetDecl(yystack.l_mark[-1].secAct,BinStrToUnicode(yystack.l_mark[0].binstr,true));} +#line 11660 "asmparse.cpp" +break; +case 746: #line 1847 "asmparse.y" - { BinStr* ret = new BinStr(); - ret->insertInt8('.'); - corEmitInt(ret, nSecAttrBlobs); - ret->append((yyvsp[-1].binstr)); - PASM->AddPermissionSetDecl((yyvsp[-4].secAct),ret); + { BinStr* ret = new BinStr(); + ret->insertInt8('.'); + corEmitInt(ret, nSecAttrBlobs); + ret->append(yystack.l_mark[-1].binstr); + PASM->AddPermissionSetDecl(yystack.l_mark[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 8489 "asmparse.cpp" - break; - - case 748: /* secAttrSetBlob: %empty */ +#line 11670 "asmparse.cpp" +break; +case 747: #line 1855 "asmparse.y" - { (yyval.binstr) = new BinStr(); nSecAttrBlobs = 0;} -#line 8495 "asmparse.cpp" - break; - - case 749: /* secAttrSetBlob: secAttrBlob */ + { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} +#line 11675 "asmparse.cpp" +break; +case 748: #line 1856 "asmparse.y" - { (yyval.binstr) = (yyvsp[0].binstr); nSecAttrBlobs = 1; } -#line 8501 "asmparse.cpp" - break; - - case 750: /* secAttrSetBlob: secAttrBlob ',' secAttrSetBlob */ + { yyval.binstr = yystack.l_mark[0].binstr; nSecAttrBlobs = 1; } +#line 11680 "asmparse.cpp" +break; +case 749: #line 1857 "asmparse.y" - { (yyval.binstr) = (yyvsp[-2].binstr); (yyval.binstr)->append((yyvsp[0].binstr)); nSecAttrBlobs++; } -#line 8507 "asmparse.cpp" - break; - - case 751: /* secAttrBlob: typeSpec '=' '{' customBlobNVPairs '}' */ + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); nSecAttrBlobs++; } +#line 11685 "asmparse.cpp" +break; +case 750: #line 1861 "asmparse.y" - { (yyval.binstr) = PASM->EncodeSecAttr(PASM->ReflectionNotation((yyvsp[-4].token)),(yyvsp[-1].binstr),nCustomBlobNVPairs); + { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yystack.l_mark[-4].token),yystack.l_mark[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 8514 "asmparse.cpp" - break; - - case 752: /* secAttrBlob: CLASS_ SQSTRING '=' '{' customBlobNVPairs '}' */ +#line 11691 "asmparse.cpp" +break; +case 751: #line 1864 "asmparse.y" - { (yyval.binstr) = PASM->EncodeSecAttr((yyvsp[-4].string),(yyvsp[-1].binstr),nCustomBlobNVPairs); + { yyval.binstr = PASM->EncodeSecAttr(yystack.l_mark[-4].string,yystack.l_mark[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 8521 "asmparse.cpp" - break; - - case 753: /* psetHead: _PERMISSIONSET secAction '=' '(' */ +#line 11697 "asmparse.cpp" +break; +case 752: #line 1868 "asmparse.y" - { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } -#line 8527 "asmparse.cpp" - break; - - case 754: /* psetHead: _PERMISSIONSET secAction BYTEARRAY_ '(' */ + { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } +#line 11702 "asmparse.cpp" +break; +case 753: #line 1870 "asmparse.y" - { (yyval.secAct) = (yyvsp[-2].secAct); bParsingByteArray = TRUE; } -#line 8533 "asmparse.cpp" - break; - - case 755: /* nameValPairs: nameValPair */ + { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } +#line 11707 "asmparse.cpp" +break; +case 754: #line 1873 "asmparse.y" - { (yyval.pair) = (yyvsp[0].pair); } -#line 8539 "asmparse.cpp" - break; - - case 756: /* nameValPairs: nameValPair ',' nameValPairs */ + { yyval.pair = yystack.l_mark[0].pair; } +#line 11712 "asmparse.cpp" +break; +case 755: #line 1874 "asmparse.y" - { (yyval.pair) = (yyvsp[-2].pair)->Concat((yyvsp[0].pair)); } -#line 8545 "asmparse.cpp" - break; - - case 757: /* nameValPair: compQstring '=' caValue */ + { yyval.pair = yystack.l_mark[-2].pair->Concat(yystack.l_mark[0].pair); } +#line 11717 "asmparse.cpp" +break; +case 756: #line 1877 "asmparse.y" - { (yyvsp[-2].binstr)->appendInt8(0); (yyval.pair) = new NVPair((yyvsp[-2].binstr), (yyvsp[0].binstr)); } -#line 8551 "asmparse.cpp" - break; - - case 758: /* truefalse: TRUE_ */ + { yystack.l_mark[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yystack.l_mark[-2].binstr, yystack.l_mark[0].binstr); } +#line 11722 "asmparse.cpp" +break; +case 757: #line 1880 "asmparse.y" - { (yyval.int32) = 1; } -#line 8557 "asmparse.cpp" - break; - - case 759: /* truefalse: FALSE_ */ + { yyval.int32 = 1; } +#line 11727 "asmparse.cpp" +break; +case 758: #line 1881 "asmparse.y" - { (yyval.int32) = 0; } -#line 8563 "asmparse.cpp" - break; - - case 760: /* caValue: truefalse */ + { yyval.int32 = 0; } +#line 11732 "asmparse.cpp" +break; +case 759: #line 1884 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_BOOLEAN); - (yyval.binstr)->appendInt8((yyvsp[0].int32)); } -#line 8571 "asmparse.cpp" - break; - - case 761: /* caValue: int32 */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); + yyval.binstr->appendInt8(yystack.l_mark[0].int32); } +#line 11739 "asmparse.cpp" +break; +case 760: #line 1887 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); - (yyval.binstr)->appendInt32((yyvsp[0].int32)); } -#line 8579 "asmparse.cpp" - break; - - case 762: /* caValue: INT32_ '(' int32 ')' */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); + yyval.binstr->appendInt32(yystack.l_mark[0].int32); } +#line 11746 "asmparse.cpp" +break; +case 761: #line 1890 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_I4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8587 "asmparse.cpp" - break; - - case 763: /* caValue: compQstring */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 11753 "asmparse.cpp" +break; +case 762: #line 1893 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_STRING); - (yyval.binstr)->append((yyvsp[0].binstr)); delete (yyvsp[0].binstr); - (yyval.binstr)->appendInt8(0); } -#line 8596 "asmparse.cpp" - break; - - case 764: /* caValue: className '(' INT8_ ':' int32 ')' */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); + yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; + yyval.binstr->appendInt8(0); } +#line 11761 "asmparse.cpp" +break; +case 763: #line 1897 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); - strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - (yyval.binstr)->appendInt8(1); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8607 "asmparse.cpp" - break; - - case 765: /* caValue: className '(' INT16_ ':' int32 ')' */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); + strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + yyval.binstr->appendInt8(1); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 11771 "asmparse.cpp" +break; +case 764: #line 1903 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); - strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - (yyval.binstr)->appendInt8(2); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8618 "asmparse.cpp" - break; - - case 766: /* caValue: className '(' INT32_ ':' int32 ')' */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); + strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + yyval.binstr->appendInt8(2); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 11781 "asmparse.cpp" +break; +case 765: #line 1909 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation((yyvsp[-5].token)); - strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - (yyval.binstr)->appendInt8(4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8629 "asmparse.cpp" - break; - - case 767: /* caValue: className '(' int32 ')' */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); + strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + yyval.binstr->appendInt8(4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 11791 "asmparse.cpp" +break; +case 766: #line 1915 "asmparse.y" - { (yyval.binstr) = new BinStr(); - (yyval.binstr)->appendInt8(SERIALIZATION_TYPE_ENUM); - char* sz = PASM->ReflectionNotation((yyvsp[-3].token)); - strcpy_s((char *)(yyval.binstr)->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); - (yyval.binstr)->appendInt8(4); - (yyval.binstr)->appendInt32((yyvsp[-1].int32)); } -#line 8640 "asmparse.cpp" - break; - - case 768: /* secAction: REQUEST_ */ + { yyval.binstr = new BinStr(); + yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); + char* sz = PASM->ReflectionNotation(yystack.l_mark[-3].token); + strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); + yyval.binstr->appendInt8(4); + yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } +#line 11801 "asmparse.cpp" +break; +case 767: #line 1923 "asmparse.y" - { (yyval.secAct) = dclRequest; } -#line 8646 "asmparse.cpp" - break; - - case 769: /* secAction: DEMAND_ */ + { yyval.secAct = dclRequest; } +#line 11806 "asmparse.cpp" +break; +case 768: #line 1924 "asmparse.y" - { (yyval.secAct) = dclDemand; } -#line 8652 "asmparse.cpp" - break; - - case 770: /* secAction: ASSERT_ */ + { yyval.secAct = dclDemand; } +#line 11811 "asmparse.cpp" +break; +case 769: #line 1925 "asmparse.y" - { (yyval.secAct) = dclAssert; } -#line 8658 "asmparse.cpp" - break; - - case 771: /* secAction: DENY_ */ + { yyval.secAct = dclAssert; } +#line 11816 "asmparse.cpp" +break; +case 770: #line 1926 "asmparse.y" - { (yyval.secAct) = dclDeny; } -#line 8664 "asmparse.cpp" - break; - - case 772: /* secAction: PERMITONLY_ */ + { yyval.secAct = dclDeny; } +#line 11821 "asmparse.cpp" +break; +case 771: #line 1927 "asmparse.y" - { (yyval.secAct) = dclPermitOnly; } -#line 8670 "asmparse.cpp" - break; - - case 773: /* secAction: LINKCHECK_ */ + { yyval.secAct = dclPermitOnly; } +#line 11826 "asmparse.cpp" +break; +case 772: #line 1928 "asmparse.y" - { (yyval.secAct) = dclLinktimeCheck; } -#line 8676 "asmparse.cpp" - break; - - case 774: /* secAction: INHERITCHECK_ */ + { yyval.secAct = dclLinktimeCheck; } +#line 11831 "asmparse.cpp" +break; +case 773: #line 1929 "asmparse.y" - { (yyval.secAct) = dclInheritanceCheck; } -#line 8682 "asmparse.cpp" - break; - - case 775: /* secAction: REQMIN_ */ + { yyval.secAct = dclInheritanceCheck; } +#line 11836 "asmparse.cpp" +break; +case 774: #line 1930 "asmparse.y" - { (yyval.secAct) = dclRequestMinimum; } -#line 8688 "asmparse.cpp" - break; - - case 776: /* secAction: REQOPT_ */ + { yyval.secAct = dclRequestMinimum; } +#line 11841 "asmparse.cpp" +break; +case 775: #line 1931 "asmparse.y" - { (yyval.secAct) = dclRequestOptional; } -#line 8694 "asmparse.cpp" - break; - - case 777: /* secAction: REQREFUSE_ */ + { yyval.secAct = dclRequestOptional; } +#line 11846 "asmparse.cpp" +break; +case 776: #line 1932 "asmparse.y" - { (yyval.secAct) = dclRequestRefuse; } -#line 8700 "asmparse.cpp" - break; - - case 778: /* secAction: PREJITGRANT_ */ + { yyval.secAct = dclRequestRefuse; } +#line 11851 "asmparse.cpp" +break; +case 777: #line 1933 "asmparse.y" - { (yyval.secAct) = dclPrejitGrant; } -#line 8706 "asmparse.cpp" - break; - - case 779: /* secAction: PREJITDENY_ */ + { yyval.secAct = dclPrejitGrant; } +#line 11856 "asmparse.cpp" +break; +case 778: #line 1934 "asmparse.y" - { (yyval.secAct) = dclPrejitDenied; } -#line 8712 "asmparse.cpp" - break; - - case 780: /* secAction: NONCASDEMAND_ */ + { yyval.secAct = dclPrejitDenied; } +#line 11861 "asmparse.cpp" +break; +case 779: #line 1935 "asmparse.y" - { (yyval.secAct) = dclNonCasDemand; } -#line 8718 "asmparse.cpp" - break; - - case 781: /* secAction: NONCASLINKDEMAND_ */ + { yyval.secAct = dclNonCasDemand; } +#line 11866 "asmparse.cpp" +break; +case 780: #line 1936 "asmparse.y" - { (yyval.secAct) = dclNonCasLinkDemand; } -#line 8724 "asmparse.cpp" - break; - - case 782: /* secAction: NONCASINHERITANCE_ */ + { yyval.secAct = dclNonCasLinkDemand; } +#line 11871 "asmparse.cpp" +break; +case 781: #line 1937 "asmparse.y" - { (yyval.secAct) = dclNonCasInheritance; } -#line 8730 "asmparse.cpp" - break; - - case 783: /* esHead: _LINE */ + { yyval.secAct = dclNonCasInheritance; } +#line 11876 "asmparse.cpp" +break; +case 782: #line 1941 "asmparse.y" - { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 8736 "asmparse.cpp" - break; - - case 784: /* esHead: P_LINE */ + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 11881 "asmparse.cpp" +break; +case 783: #line 1942 "asmparse.y" - { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 8742 "asmparse.cpp" - break; - - case 785: /* extSourceSpec: esHead int32 SQSTRING */ + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } +#line 11886 "asmparse.cpp" +break; +case 784: #line 1945 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32); - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName((yyvsp[0].string));} -#line 8750 "asmparse.cpp" - break; - - case 786: /* extSourceSpec: esHead int32 */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yystack.l_mark[0].string);} +#line 11893 "asmparse.cpp" +break; +case 785: #line 1948 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[0].int32); + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 8757 "asmparse.cpp" - break; - - case 787: /* extSourceSpec: esHead int32 ':' int32 SQSTRING */ +#line 11899 "asmparse.cpp" +break; +case 786: #line 1950 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-3].int32); - PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName((yyvsp[0].string));} -#line 8765 "asmparse.cpp" - break; - - case 788: /* extSourceSpec: esHead int32 ':' int32 */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-3].int32; + PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yystack.l_mark[0].string);} +#line 11906 "asmparse.cpp" +break; +case 787: #line 1953 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-2].int32); - PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1);} -#line 8772 "asmparse.cpp" - break; - - case 789: /* extSourceSpec: esHead int32 ':' int32 ',' int32 SQSTRING */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-2].int32; + PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1);} +#line 11912 "asmparse.cpp" +break; +case 788: #line 1956 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-5].int32); - PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); - PASM->SetSourceFileName((yyvsp[0].string));} -#line 8780 "asmparse.cpp" - break; - - case 790: /* extSourceSpec: esHead int32 ':' int32 ',' int32 */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-5].int32; + PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; + PASM->SetSourceFileName(yystack.l_mark[0].string);} +#line 11919 "asmparse.cpp" +break; +case 789: #line 1960 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-4].int32); - PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } -#line 8787 "asmparse.cpp" - break; - - case 791: /* extSourceSpec: esHead int32 ',' int32 ':' int32 SQSTRING */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-4].int32; + PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } +#line 11925 "asmparse.cpp" +break; +case 790: #line 1963 "asmparse.y" - { PENV->nExtLine = (yyvsp[-5].int32); PENV->nExtLineEnd = (yyvsp[-3].int32); - PENV->nExtCol=(yyvsp[-1].int32); PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName((yyvsp[0].string));} -#line 8795 "asmparse.cpp" - break; - - case 792: /* extSourceSpec: esHead int32 ',' int32 ':' int32 */ + { PENV->nExtLine = yystack.l_mark[-5].int32; PENV->nExtLineEnd = yystack.l_mark[-3].int32; + PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yystack.l_mark[0].string);} +#line 11932 "asmparse.cpp" +break; +case 791: #line 1967 "asmparse.y" - { PENV->nExtLine = (yyvsp[-4].int32); PENV->nExtLineEnd = (yyvsp[-2].int32); - PENV->nExtCol=(yyvsp[0].int32); PENV->nExtColEnd = static_cast(-1); } -#line 8802 "asmparse.cpp" - break; - - case 793: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 SQSTRING */ + { PENV->nExtLine = yystack.l_mark[-4].int32; PENV->nExtLineEnd = yystack.l_mark[-2].int32; + PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1); } +#line 11938 "asmparse.cpp" +break; +case 792: #line 1970 "asmparse.y" - { PENV->nExtLine = (yyvsp[-7].int32); PENV->nExtLineEnd = (yyvsp[-5].int32); - PENV->nExtCol=(yyvsp[-3].int32); PENV->nExtColEnd = (yyvsp[-1].int32); - PASM->SetSourceFileName((yyvsp[0].string));} -#line 8810 "asmparse.cpp" - break; - - case 794: /* extSourceSpec: esHead int32 ',' int32 ':' int32 ',' int32 */ + { PENV->nExtLine = yystack.l_mark[-7].int32; PENV->nExtLineEnd = yystack.l_mark[-5].int32; + PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; + PASM->SetSourceFileName(yystack.l_mark[0].string);} +#line 11945 "asmparse.cpp" +break; +case 793: #line 1974 "asmparse.y" - { PENV->nExtLine = (yyvsp[-6].int32); PENV->nExtLineEnd = (yyvsp[-4].int32); - PENV->nExtCol=(yyvsp[-2].int32); PENV->nExtColEnd = (yyvsp[0].int32); } -#line 8817 "asmparse.cpp" - break; - - case 795: /* extSourceSpec: esHead int32 QSTRING */ + { PENV->nExtLine = yystack.l_mark[-6].int32; PENV->nExtLineEnd = yystack.l_mark[-4].int32; + PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } +#line 11951 "asmparse.cpp" +break; +case 794: #line 1976 "asmparse.y" - { PENV->nExtLine = PENV->nExtLineEnd = (yyvsp[-1].int32) - 1; - PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); - PASM->SetSourceFileName((yyvsp[0].binstr));} -#line 8825 "asmparse.cpp" - break; - - case 796: /* fileDecl: _FILE fileAttr dottedName fileEntry hashHead bytes ')' fileEntry */ + { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32 - 1; + PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); + PASM->SetSourceFileName(yystack.l_mark[0].binstr);} +#line 11958 "asmparse.cpp" +break; +case 795: #line 1983 "asmparse.y" - { PASMM->AddFile((yyvsp[-5].string), (yyvsp[-6].fileAttr)|(yyvsp[-4].fileAttr)|(yyvsp[0].fileAttr), (yyvsp[-2].binstr)); } -#line 8831 "asmparse.cpp" - break; - - case 797: /* fileDecl: _FILE fileAttr dottedName fileEntry */ + { PASMM->AddFile(yystack.l_mark[-5].string, yystack.l_mark[-6].fileAttr|yystack.l_mark[-4].fileAttr|yystack.l_mark[0].fileAttr, yystack.l_mark[-2].binstr); } +#line 11963 "asmparse.cpp" +break; +case 796: #line 1984 "asmparse.y" - { PASMM->AddFile((yyvsp[-1].string), (yyvsp[-2].fileAttr)|(yyvsp[0].fileAttr), NULL); } -#line 8837 "asmparse.cpp" - break; - - case 798: /* fileAttr: %empty */ + { PASMM->AddFile(yystack.l_mark[-1].string, yystack.l_mark[-2].fileAttr|yystack.l_mark[0].fileAttr, NULL); } +#line 11968 "asmparse.cpp" +break; +case 797: #line 1987 "asmparse.y" - { (yyval.fileAttr) = (CorFileFlags) 0; } -#line 8843 "asmparse.cpp" - break; - - case 799: /* fileAttr: fileAttr NOMETADATA_ */ + { yyval.fileAttr = (CorFileFlags) 0; } +#line 11973 "asmparse.cpp" +break; +case 798: #line 1988 "asmparse.y" - { (yyval.fileAttr) = (CorFileFlags) ((yyvsp[-1].fileAttr) | ffContainsNoMetaData); } -#line 8849 "asmparse.cpp" - break; - - case 800: /* fileEntry: %empty */ + { yyval.fileAttr = (CorFileFlags) (yystack.l_mark[-1].fileAttr | ffContainsNoMetaData); } +#line 11978 "asmparse.cpp" +break; +case 799: #line 1991 "asmparse.y" - { (yyval.fileAttr) = (CorFileFlags) 0; } -#line 8855 "asmparse.cpp" - break; - - case 801: /* fileEntry: _ENTRYPOINT */ + { yyval.fileAttr = (CorFileFlags) 0; } +#line 11983 "asmparse.cpp" +break; +case 800: #line 1992 "asmparse.y" - { (yyval.fileAttr) = (CorFileFlags) 0x80000000; } -#line 8861 "asmparse.cpp" - break; - - case 802: /* hashHead: _HASH '=' '(' */ + { yyval.fileAttr = (CorFileFlags) 0x80000000; } +#line 11988 "asmparse.cpp" +break; +case 801: #line 1995 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 8867 "asmparse.cpp" - break; - - case 803: /* assemblyHead: _ASSEMBLY asmAttr dottedName */ + { bParsingByteArray = TRUE; } +#line 11993 "asmparse.cpp" +break; +case 802: #line 1998 "asmparse.y" - { PASMM->StartAssembly((yyvsp[0].string), NULL, (DWORD)(yyvsp[-1].asmAttr), FALSE); } -#line 8873 "asmparse.cpp" - break; - - case 804: /* asmAttr: %empty */ + { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, (DWORD)yystack.l_mark[-1].asmAttr, FALSE); } +#line 11998 "asmparse.cpp" +break; +case 803: #line 2001 "asmparse.y" - { (yyval.asmAttr) = (CorAssemblyFlags) 0; } -#line 8879 "asmparse.cpp" - break; - - case 805: /* asmAttr: asmAttr RETARGETABLE_ */ + { yyval.asmAttr = (CorAssemblyFlags) 0; } +#line 12003 "asmparse.cpp" +break; +case 804: #line 2002 "asmparse.y" - { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afRetargetable); } -#line 8885 "asmparse.cpp" - break; - - case 806: /* asmAttr: asmAttr WINDOWSRUNTIME_ */ + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afRetargetable); } +#line 12008 "asmparse.cpp" +break; +case 805: #line 2003 "asmparse.y" - { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afContentType_WindowsRuntime); } -#line 8891 "asmparse.cpp" - break; - - case 807: /* asmAttr: asmAttr NOPLATFORM_ */ + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afContentType_WindowsRuntime); } +#line 12013 "asmparse.cpp" +break; +case 806: #line 2004 "asmparse.y" - { (yyval.asmAttr) = (CorAssemblyFlags) ((yyvsp[-1].asmAttr) | afPA_NoPlatform); } -#line 8897 "asmparse.cpp" - break; - - case 808: /* asmAttr: asmAttr LEGACY_ LIBRARY_ */ + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afPA_NoPlatform); } +#line 12018 "asmparse.cpp" +break; +case 807: #line 2005 "asmparse.y" - { (yyval.asmAttr) = (yyvsp[-2].asmAttr); } -#line 8903 "asmparse.cpp" - break; - - case 809: /* asmAttr: asmAttr CIL_ */ + { yyval.asmAttr = yystack.l_mark[-2].asmAttr; } +#line 12023 "asmparse.cpp" +break; +case 808: #line 2006 "asmparse.y" - { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_MSIL); } -#line 8909 "asmparse.cpp" - break; - - case 810: /* asmAttr: asmAttr X86_ */ + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_MSIL); } +#line 12028 "asmparse.cpp" +break; +case 809: #line 2007 "asmparse.y" - { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_x86); } -#line 8915 "asmparse.cpp" - break; - - case 811: /* asmAttr: asmAttr AMD64_ */ + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_x86); } +#line 12033 "asmparse.cpp" +break; +case 810: #line 2008 "asmparse.y" - { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_AMD64); } -#line 8921 "asmparse.cpp" - break; - - case 812: /* asmAttr: asmAttr ARM_ */ + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_AMD64); } +#line 12038 "asmparse.cpp" +break; +case 811: #line 2009 "asmparse.y" - { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM); } -#line 8927 "asmparse.cpp" - break; - - case 813: /* asmAttr: asmAttr ARM64_ */ + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM); } +#line 12043 "asmparse.cpp" +break; +case 812: #line 2010 "asmparse.y" - { SET_PA((yyval.asmAttr),(yyvsp[-1].asmAttr),afPA_ARM64); } -#line 8933 "asmparse.cpp" - break; - - case 816: /* assemblyDecl: _HASH ALGORITHM_ int32 */ + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM64); } +#line 12048 "asmparse.cpp" +break; +case 815: #line 2017 "asmparse.y" - { PASMM->SetAssemblyHashAlg((yyvsp[0].int32)); } -#line 8939 "asmparse.cpp" - break; - - case 819: /* intOrWildcard: int32 */ + { PASMM->SetAssemblyHashAlg(yystack.l_mark[0].int32); } +#line 12053 "asmparse.cpp" +break; +case 818: #line 2022 "asmparse.y" - { (yyval.int32) = (yyvsp[0].int32); } -#line 8945 "asmparse.cpp" - break; - - case 820: /* intOrWildcard: '*' */ + { yyval.int32 = yystack.l_mark[0].int32; } +#line 12058 "asmparse.cpp" +break; +case 819: #line 2023 "asmparse.y" - { (yyval.int32) = 0xFFFF; } -#line 8951 "asmparse.cpp" - break; - - case 821: /* asmOrRefDecl: publicKeyHead bytes ')' */ + { yyval.int32 = 0xFFFF; } +#line 12063 "asmparse.cpp" +break; +case 820: #line 2026 "asmparse.y" - { PASMM->SetAssemblyPublicKey((yyvsp[-1].binstr)); } -#line 8957 "asmparse.cpp" - break; - - case 822: /* asmOrRefDecl: _VER intOrWildcard ':' intOrWildcard ':' intOrWildcard ':' intOrWildcard */ + { PASMM->SetAssemblyPublicKey(yystack.l_mark[-1].binstr); } +#line 12068 "asmparse.cpp" +break; +case 821: #line 2028 "asmparse.y" - { PASMM->SetAssemblyVer((USHORT)(yyvsp[-6].int32), (USHORT)(yyvsp[-4].int32), (USHORT)(yyvsp[-2].int32), (USHORT)(yyvsp[0].int32)); } -#line 8963 "asmparse.cpp" - break; - - case 823: /* asmOrRefDecl: _LOCALE compQstring */ + { PASMM->SetAssemblyVer((USHORT)yystack.l_mark[-6].int32, (USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, (USHORT)yystack.l_mark[0].int32); } +#line 12073 "asmparse.cpp" +break; +case 822: #line 2029 "asmparse.y" - { (yyvsp[0].binstr)->appendInt8(0); PASMM->SetAssemblyLocale((yyvsp[0].binstr),TRUE); } -#line 8969 "asmparse.cpp" - break; - - case 824: /* asmOrRefDecl: localeHead bytes ')' */ + { yystack.l_mark[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yystack.l_mark[0].binstr,TRUE); } +#line 12078 "asmparse.cpp" +break; +case 823: #line 2030 "asmparse.y" - { PASMM->SetAssemblyLocale((yyvsp[-1].binstr),FALSE); } -#line 8975 "asmparse.cpp" - break; - - case 827: /* publicKeyHead: _PUBLICKEY '=' '(' */ + { PASMM->SetAssemblyLocale(yystack.l_mark[-1].binstr,FALSE); } +#line 12083 "asmparse.cpp" +break; +case 826: #line 2035 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 8981 "asmparse.cpp" - break; - - case 828: /* publicKeyTokenHead: _PUBLICKEYTOKEN '=' '(' */ + { bParsingByteArray = TRUE; } +#line 12088 "asmparse.cpp" +break; +case 827: #line 2038 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 8987 "asmparse.cpp" - break; - - case 829: /* localeHead: _LOCALE '=' '(' */ + { bParsingByteArray = TRUE; } +#line 12093 "asmparse.cpp" +break; +case 828: #line 2041 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 8993 "asmparse.cpp" - break; - - case 830: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName */ + { bParsingByteArray = TRUE; } +#line 12098 "asmparse.cpp" +break; +case 829: #line 2045 "asmparse.y" - { PASMM->StartAssembly((yyvsp[0].string), NULL, (yyvsp[-1].asmAttr), TRUE); } -#line 8999 "asmparse.cpp" - break; - - case 831: /* assemblyRefHead: _ASSEMBLY EXTERN_ asmAttr dottedName AS_ dottedName */ + { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, yystack.l_mark[-1].asmAttr, TRUE); } +#line 12103 "asmparse.cpp" +break; +case 830: #line 2047 "asmparse.y" - { PASMM->StartAssembly((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].asmAttr), TRUE); } -#line 9005 "asmparse.cpp" - break; - - case 834: /* assemblyRefDecl: hashHead bytes ')' */ + { PASMM->StartAssembly(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].asmAttr, TRUE); } +#line 12108 "asmparse.cpp" +break; +case 833: #line 2054 "asmparse.y" - { PASMM->SetAssemblyHashBlob((yyvsp[-1].binstr)); } -#line 9011 "asmparse.cpp" - break; - - case 836: /* assemblyRefDecl: publicKeyTokenHead bytes ')' */ + { PASMM->SetAssemblyHashBlob(yystack.l_mark[-1].binstr); } +#line 12113 "asmparse.cpp" +break; +case 835: #line 2056 "asmparse.y" - { PASMM->SetAssemblyPublicKeyToken((yyvsp[-1].binstr)); } -#line 9017 "asmparse.cpp" - break; - - case 837: /* assemblyRefDecl: AUTO_ */ + { PASMM->SetAssemblyPublicKeyToken(yystack.l_mark[-1].binstr); } +#line 12118 "asmparse.cpp" +break; +case 836: #line 2057 "asmparse.y" - { PASMM->SetAssemblyAutodetect(); } -#line 9023 "asmparse.cpp" - break; - - case 838: /* exptypeHead: _CLASS EXTERN_ exptAttr dottedName */ + { PASMM->SetAssemblyAutodetect(); } +#line 12123 "asmparse.cpp" +break; +case 837: #line 2060 "asmparse.y" - { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr));} -#line 9029 "asmparse.cpp" - break; - - case 839: /* exportHead: _EXPORT exptAttr dottedName */ + { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr);} +#line 12128 "asmparse.cpp" +break; +case 838: #line 2063 "asmparse.y" - { PASMM->StartComType((yyvsp[0].string), (yyvsp[-1].exptAttr)); } -#line 9035 "asmparse.cpp" - break; - - case 840: /* exptAttr: %empty */ + { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr); } +#line 12133 "asmparse.cpp" +break; +case 839: #line 2066 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) 0; } -#line 9041 "asmparse.cpp" - break; - - case 841: /* exptAttr: exptAttr PRIVATE_ */ + { yyval.exptAttr = (CorTypeAttr) 0; } +#line 12138 "asmparse.cpp" +break; +case 840: #line 2067 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdNotPublic); } -#line 9047 "asmparse.cpp" - break; - - case 842: /* exptAttr: exptAttr PUBLIC_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdNotPublic); } +#line 12143 "asmparse.cpp" +break; +case 841: #line 2068 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdPublic); } -#line 9053 "asmparse.cpp" - break; - - case 843: /* exptAttr: exptAttr FORWARDER_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdPublic); } +#line 12148 "asmparse.cpp" +break; +case 842: #line 2069 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-1].exptAttr) | tdForwarder); } -#line 9059 "asmparse.cpp" - break; - - case 844: /* exptAttr: exptAttr NESTED_ PUBLIC_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdForwarder); } +#line 12153 "asmparse.cpp" +break; +case 843: #line 2070 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPublic); } -#line 9065 "asmparse.cpp" - break; - - case 845: /* exptAttr: exptAttr NESTED_ PRIVATE_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPublic); } +#line 12158 "asmparse.cpp" +break; +case 844: #line 2071 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedPrivate); } -#line 9071 "asmparse.cpp" - break; - - case 846: /* exptAttr: exptAttr NESTED_ FAMILY_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPrivate); } +#line 12163 "asmparse.cpp" +break; +case 845: #line 2072 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamily); } -#line 9077 "asmparse.cpp" - break; - - case 847: /* exptAttr: exptAttr NESTED_ ASSEMBLY_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamily); } +#line 12168 "asmparse.cpp" +break; +case 846: #line 2073 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedAssembly); } -#line 9083 "asmparse.cpp" - break; - - case 848: /* exptAttr: exptAttr NESTED_ FAMANDASSEM_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedAssembly); } +#line 12173 "asmparse.cpp" +break; +case 847: #line 2074 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamANDAssem); } -#line 9089 "asmparse.cpp" - break; - - case 849: /* exptAttr: exptAttr NESTED_ FAMORASSEM_ */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamANDAssem); } +#line 12178 "asmparse.cpp" +break; +case 848: #line 2075 "asmparse.y" - { (yyval.exptAttr) = (CorTypeAttr) ((yyvsp[-2].exptAttr) | tdNestedFamORAssem); } -#line 9095 "asmparse.cpp" - break; - - case 852: /* exptypeDecl: _FILE dottedName */ + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamORAssem); } +#line 12183 "asmparse.cpp" +break; +case 851: #line 2082 "asmparse.y" - { PASMM->SetComTypeFile((yyvsp[0].string)); } -#line 9101 "asmparse.cpp" - break; - - case 853: /* exptypeDecl: _CLASS EXTERN_ slashedName */ + { PASMM->SetComTypeFile(yystack.l_mark[0].string); } +#line 12188 "asmparse.cpp" +break; +case 852: #line 2083 "asmparse.y" - { PASMM->SetComTypeComType((yyvsp[0].string)); } -#line 9107 "asmparse.cpp" - break; - - case 854: /* exptypeDecl: _ASSEMBLY EXTERN_ dottedName */ + { PASMM->SetComTypeComType(yystack.l_mark[0].string); } +#line 12193 "asmparse.cpp" +break; +case 853: #line 2084 "asmparse.y" - { PASMM->SetComTypeAsmRef((yyvsp[0].string)); } -#line 9113 "asmparse.cpp" - break; - - case 855: /* exptypeDecl: MDTOKEN_ '(' int32 ')' */ + { PASMM->SetComTypeAsmRef(yystack.l_mark[0].string); } +#line 12198 "asmparse.cpp" +break; +case 854: #line 2085 "asmparse.y" - { if(!PASMM->SetComTypeImplementationTok((yyvsp[-1].int32))) + { if(!PASMM->SetComTypeImplementationTok(yystack.l_mark[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 9120 "asmparse.cpp" - break; - - case 856: /* exptypeDecl: _CLASS int32 */ +#line 12204 "asmparse.cpp" +break; +case 855: #line 2087 "asmparse.y" - { if(!PASMM->SetComTypeClassTok((yyvsp[0].int32))) + { if(!PASMM->SetComTypeClassTok(yystack.l_mark[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 9127 "asmparse.cpp" - break; - - case 859: /* manifestResHead: _MRESOURCE manresAttr dottedName */ +#line 12210 "asmparse.cpp" +break; +case 858: #line 2093 "asmparse.y" - { PASMM->StartManifestRes((yyvsp[0].string), (yyvsp[0].string), (yyvsp[-1].manresAttr)); } -#line 9133 "asmparse.cpp" - break; - - case 860: /* manifestResHead: _MRESOURCE manresAttr dottedName AS_ dottedName */ + { PASMM->StartManifestRes(yystack.l_mark[0].string, yystack.l_mark[0].string, yystack.l_mark[-1].manresAttr); } +#line 12215 "asmparse.cpp" +break; +case 859: #line 2095 "asmparse.y" - { PASMM->StartManifestRes((yyvsp[-2].string), (yyvsp[0].string), (yyvsp[-3].manresAttr)); } -#line 9139 "asmparse.cpp" - break; - - case 861: /* manresAttr: %empty */ + { PASMM->StartManifestRes(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].manresAttr); } +#line 12220 "asmparse.cpp" +break; +case 860: #line 2098 "asmparse.y" - { (yyval.manresAttr) = (CorManifestResourceFlags) 0; } -#line 9145 "asmparse.cpp" - break; - - case 862: /* manresAttr: manresAttr PUBLIC_ */ + { yyval.manresAttr = (CorManifestResourceFlags) 0; } +#line 12225 "asmparse.cpp" +break; +case 861: #line 2099 "asmparse.y" - { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPublic); } -#line 9151 "asmparse.cpp" - break; - - case 863: /* manresAttr: manresAttr PRIVATE_ */ + { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPublic); } +#line 12230 "asmparse.cpp" +break; +case 862: #line 2100 "asmparse.y" - { (yyval.manresAttr) = (CorManifestResourceFlags) ((yyvsp[-1].manresAttr) | mrPrivate); } -#line 9157 "asmparse.cpp" - break; - - case 866: /* manifestResDecl: _FILE dottedName AT_ int32 */ + { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPrivate); } +#line 12235 "asmparse.cpp" +break; +case 865: #line 2107 "asmparse.y" - { PASMM->SetManifestResFile((yyvsp[-2].string), (ULONG)(yyvsp[0].int32)); } -#line 9163 "asmparse.cpp" - break; - - case 867: /* manifestResDecl: _ASSEMBLY EXTERN_ dottedName */ + { PASMM->SetManifestResFile(yystack.l_mark[-2].string, (ULONG)yystack.l_mark[0].int32); } +#line 12240 "asmparse.cpp" +break; +case 866: #line 2108 "asmparse.y" - { PASMM->SetManifestResAsmRef((yyvsp[0].string)); } -#line 9169 "asmparse.cpp" - break; - - -#line 9173 "asmparse.cpp" - - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - - *++yyvsp = yyval; - - /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - yyerror (YY_("syntax error")); + { PASMM->SetManifestResAsmRef(yystack.l_mark[0].string); } +#line 12245 "asmparse.cpp" +break; +#line 12247 "asmparse.cpp" + default: + break; } - - if (yyerrstatus == 3) + yystack.s_mark -= yym; + yystate = *yystack.s_mark; + yystack.l_mark -= yym; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark -= yym; +#endif + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else +#if YYDEBUG + if (yydebug) { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; + fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth); +#ifdef YYSTYPE_TOSTRING +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ + fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval)); +#endif + fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL); } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - ++yynerrs; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - /* Pop stack until we find a state that shifts the error token. */ - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) +#endif + yystate = YYFINAL; + *++yystack.s_mark = YYFINAL; + *++yystack.l_mark = yyval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *++yystack.p_mark = yyloc; +#endif + if (yychar < 0) { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) +#if YYBTYACC + do { + if (yylvp < yylve) { - yyn = yytable[yyn]; - if (0 < yyn) + /* we're currently re-reading tokens */ + yylval = *yylvp++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylloc = *yylpp++; +#endif + yychar = *yylexp++; + break; + } + if (yyps->save) + { + /* in trial mode; save scanner results for future parse attempts */ + if (yylvp == yylvlim) + { /* Enlarge lexical value queue */ + size_t p = (size_t) (yylvp - yylvals); + size_t s = (size_t) (yylvlim - yylvals); + + s += YYLVQUEUEGROWTH; + if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) + goto yyenomem; + if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) + goto yyenomem; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) + goto yyenomem; +#endif + yylvp = yylve = yylvals + p; + yylvlim = yylvals + s; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpe = yylpsns + p; + yylplim = yylpsns + s; +#endif + yylexp = yylexemes + p; + } + *yylexp = (YYINT) YYLEX; + *yylvp++ = yylval; + yylve++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *yylpp++ = yylloc; + yylpe++; +#endif + yychar = *yylexp++; break; } + /* normal operation, no conflict encountered */ +#endif /* YYBTYACC */ + yychar = YYLEX; +#if YYBTYACC + } while (0); +#endif /* YYBTYACC */ + if (yychar < 0) yychar = YYEOF; +#if YYDEBUG + if (yydebug) + { + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; + fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n", + YYDEBUGSTR, yydepth, YYFINAL, yychar, yys); + } +#endif } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - YY_ACCESSING_SYMBOL (yystate), yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); + if (yychar == YYEOF) goto yyaccept; + goto yyloop; } + if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate) + yystate = yytable[yyn]; + else + yystate = yydgoto[yym]; +#if YYDEBUG + if (yydebug) + { + fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth); +#ifdef YYSTYPE_TOSTRING +#if YYBTYACC + if (!yytrial) +#endif /* YYBTYACC */ + fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval)); +#endif + fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate); + } +#endif + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; + *++yystack.s_mark = (YYINT) yystate; + *++yystack.l_mark = yyval; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + *++yystack.p_mark = yyloc; +#endif + goto yyloop; +#if YYBTYACC - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturnlab; - - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturnlab; - - -/*-----------------------------------------------------------. -| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | -`-----------------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - goto yyreturnlab; - - -/*----------------------------------------------------------. -| yyreturnlab -- parsing is finished, clean up and return. | -`----------------------------------------------------------*/ -yyreturnlab: - if (yychar != YYEMPTY) + /* Reduction declares that this path is valid. Set yypath and do a full parse */ +yyvalid: + if (yypath) YYABORT; + while (yyps->save) { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + YYParseState *save = yyps->save; + yyps->save = save->save; + save->save = yypath; + yypath = save; } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n", + YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme)); +#endif + if (yyerrctx) { - yydestruct ("Cleanup: popping", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); - YYPOPSTACK (1); + yyFreeState(yyerrctx); + yyerrctx = NULL; } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); + yylvp = yylvals + yypath->lexeme; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpsns + yypath->lexeme; #endif + yylexp = yylexemes + yypath->lexeme; + yychar = YYEMPTY; + yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base); + memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); + yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base); + memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base); + memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); +#endif + yystate = yypath->state; + goto yyloop; +#endif /* YYBTYACC */ + +yyoverflow: + YYERROR_CALL("yacc stack overflow"); +#if YYBTYACC + goto yyabort_nomem; +yyenomem: + YYERROR_CALL("memory exhausted"); +yyabort_nomem: +#endif /* YYBTYACC */ + yyresult = 2; + goto yyreturn; + +yyabort: + yyresult = 1; + goto yyreturn; + +yyaccept: +#if YYBTYACC + if (yyps->save) goto yyvalid; +#endif /* YYBTYACC */ + yyresult = 0; + +yyreturn: +#if defined(YYDESTRUCT_CALL) + if (yychar != YYEOF && yychar != YYEMPTY) +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc); +#else + YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval); +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ - return yyresult; -} - -#line 2113 "asmparse.y" + { + YYSTYPE *pv; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE *pp; + for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp) + YYDESTRUCT_CALL("cleanup: discarding state", + yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp); +#else + for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv) + YYDESTRUCT_CALL("cleanup: discarding state", + yystos[*(yystack.s_base + (pv - yystack.l_base))], pv); +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ + } +#endif /* defined(YYDESTRUCT_CALL) */ -#include "grammar_after.cpp" +#if YYBTYACC + if (yyerrctx) + { + yyFreeState(yyerrctx); + yyerrctx = NULL; + } + while (yyps) + { + YYParseState *save = yyps; + yyps = save->save; + save->save = NULL; + yyFreeState(save); + } + while (yypath) + { + YYParseState *save = yypath; + yypath = save->save; + save->save = NULL; + yyFreeState(save); + } +#endif /* YYBTYACC */ + yyfreestack(&yystack); + return (yyresult); +} From a2d4d3f8949ed589b6d5e90b1989da4b1c4ccee4 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 4 Aug 2023 21:14:06 +0900 Subject: [PATCH 72/80] Parse constraints for const type parameter --- src/coreclr/ilasm/asmparse.y | 3 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 10061 +++++++++++----------- 2 files changed, 5044 insertions(+), 5020 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index 8b4aa7c7a6b98..e4a5fc0595dc5 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -504,7 +504,8 @@ conTyparAttribs : /* EMPTY */ { $$ = 0; } | conTyparAttrib conTyparAttribs { $$ = $1 | $2; } ; -typars : CONST_ conTyparAttribs type dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } +typars : CONST_ conTyparAttribs type tyBound dottedName typarsRest {$$ = new TyParList($2, $3, $4, $5, $6); } + | CONST_ conTyparAttribs type dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } | typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} | typarAttribs dottedName typarsRest {$$ = new TyParList($1, NULL, $2, $3);} ; diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index 8d4789bc64411..d22055dafc998 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -412,77 +412,77 @@ static const YYINT yylhs[] = { -1, 80, 80, 80, 80, 142, 142, 143, 143, 114, 114, 144, 144, 59, 59, 60, 60, 72, 72, 18, 18, 18, 18, 18, 18, 18, 19, 19, 20, 21, 21, - 71, 71, 71, 70, 70, 61, 23, 23, 24, 145, + 71, 71, 71, 71, 70, 70, 61, 23, 23, 24, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 118, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 4, 4, 37, - 37, 16, 16, 78, 78, 78, 78, 78, 78, 78, - 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 79, 77, 77, 77, 77, 77, 77, 146, - 146, 84, 84, 84, 147, 147, 152, 152, 152, 152, - 152, 152, 152, 152, 148, 85, 85, 85, 149, 149, - 153, 153, 153, 153, 153, 153, 153, 154, 40, 40, - 36, 36, 155, 116, 81, 81, 81, 81, 81, 81, + 145, 118, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 4, 4, + 37, 37, 16, 16, 78, 78, 78, 78, 78, 78, + 78, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8, 8, 8, 79, 77, 77, 77, 77, 77, 77, + 146, 146, 84, 84, 84, 147, 147, 152, 152, 152, + 152, 152, 152, 152, 152, 148, 85, 85, 85, 149, + 149, 153, 153, 153, 153, 153, 153, 153, 154, 40, + 40, 36, 36, 155, 116, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, + 81, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 3, 3, 3, 13, 13, 13, 13, - 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 156, 117, 117, + 86, 86, 86, 86, 3, 3, 3, 13, 13, 13, + 13, 13, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 156, 117, + 117, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 160, 161, 158, 163, - 163, 162, 162, 162, 165, 164, 164, 164, 164, 168, - 168, 168, 171, 166, 169, 170, 167, 167, 167, 119, - 172, 172, 174, 174, 174, 173, 173, 175, 175, 14, - 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, + 157, 157, 157, 157, 157, 157, 157, 160, 161, 158, + 163, 163, 162, 162, 162, 165, 164, 164, 164, 164, + 168, 168, 168, 171, 166, 169, 170, 167, 167, 167, + 119, 172, 172, 174, 174, 174, 173, 173, 175, 175, + 14, 14, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 177, 33, 33, 34, 34, - 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, + 43, 43, 43, 43, 43, 43, 177, 33, 33, 34, + 34, 41, 41, 41, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, - 46, 46, 46, 50, 50, 49, 49, 48, 48, 47, - 47, 51, 51, 52, 52, 52, 53, 53, 53, 53, - 54, 54, 151, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 159, 159, 159, + 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, + 45, 46, 46, 46, 50, 50, 49, 49, 48, 48, + 47, 47, 51, 51, 52, 52, 52, 53, 53, 53, + 53, 54, 54, 151, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 6, 6, 6, 6, 6, 56, 56, 57, 57, 58, - 58, 27, 27, 28, 28, 29, 29, 29, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 5, 5, - 74, 74, 74, 74, 35, 35, 35, 35, 35, 35, + 159, 6, 6, 6, 6, 6, 56, 56, 57, 57, + 58, 58, 27, 27, 28, 28, 29, 29, 29, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 5, + 5, 74, 74, 74, 74, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 22, - 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 22, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, + 30, 30, 30, 30, 30, 30, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 32, 32, 31, 31, 31, 31, 31, - 133, 133, 133, 133, 133, 133, 67, 67, 67, 66, - 66, 90, 90, 87, 87, 88, 17, 17, 39, 39, - 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, + 55, 55, 55, 55, 32, 32, 31, 31, 31, 31, + 31, 133, 133, 133, 133, 133, 133, 67, 67, 67, + 66, 66, 90, 90, 87, 87, 88, 17, 17, 39, + 39, 39, 39, 39, 39, 39, 39, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 178, 178, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 123, 123, 91, 91, 92, 92, - 179, 124, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 125, 125, 180, 180, 180, 69, 69, 181, - 181, 181, 181, 181, 181, 182, 184, 183, 126, 126, - 127, 127, 185, 185, 185, 185, 128, 150, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 129, 129, - 186, 186, 186, 186, 186, 186, 186, 130, 130, 95, - 95, 95, 131, 131, 187, 187, 187, 187, + 89, 89, 178, 178, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 123, 123, 91, 91, 92, + 92, 179, 124, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 125, 125, 180, 180, 180, 69, 69, + 181, 181, 181, 181, 181, 181, 182, 184, 183, 126, + 126, 127, 127, 185, 185, 185, 185, 128, 150, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 129, + 129, 186, 186, 186, 186, 186, 186, 186, 130, 130, + 95, 95, 95, 131, 131, 187, 187, 187, 187, }; static const YYINT yylen[] = { 2, 0, 2, 4, 4, 3, 1, 1, 1, 1, 1, @@ -501,246 +501,247 @@ static const YYINT yylen[] = { 2, 2, 2, 2, 5, 0, 2, 0, 2, 0, 2, 3, 1, 0, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, 1, 4, 0, 2, 4, 0, 2, - 5, 4, 3, 0, 2, 3, 0, 1, 5, 3, - 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, - 4, 13, 22, 1, 1, 5, 3, 7, 5, 4, - 7, 0, 2, 2, 2, 2, 2, 2, 2, 5, - 2, 2, 2, 2, 2, 2, 5, 0, 2, 0, - 2, 0, 3, 9, 9, 7, 7, 1, 1, 1, - 2, 2, 1, 4, 0, 1, 1, 2, 2, 2, - 2, 1, 4, 2, 5, 3, 2, 2, 1, 4, - 3, 0, 2, 2, 0, 2, 2, 2, 2, 2, - 1, 1, 1, 1, 9, 0, 2, 2, 0, 2, - 2, 2, 2, 1, 1, 1, 1, 1, 0, 4, - 1, 3, 1, 13, 0, 2, 2, 2, 2, 2, + 6, 5, 4, 3, 0, 2, 3, 0, 1, 5, + 3, 4, 4, 4, 1, 1, 1, 1, 1, 2, + 2, 4, 13, 22, 1, 1, 5, 3, 7, 5, + 4, 7, 0, 2, 2, 2, 2, 2, 2, 2, + 5, 2, 2, 2, 2, 2, 2, 5, 0, 2, + 0, 2, 0, 3, 9, 9, 7, 7, 1, 1, + 1, 2, 2, 1, 4, 0, 1, 1, 2, 2, + 2, 2, 1, 4, 2, 5, 3, 2, 2, 1, + 4, 3, 0, 2, 2, 0, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 9, 0, 2, 2, 0, + 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, + 4, 1, 3, 1, 13, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 5, 8, 6, 5, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, - 4, 4, 5, 1, 1, 1, 0, 4, 4, 4, - 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 5, 1, 0, 2, - 2, 1, 2, 4, 5, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 4, 6, 4, 4, 11, - 1, 5, 3, 7, 5, 5, 3, 1, 2, 2, - 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, - 4, 2, 0, 1, 1, 3, 1, 3, 1, 0, - 3, 5, 4, 3, 5, 5, 5, 5, 5, 5, - 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, - 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, - 4, 4, 4, 4, 3, 2, 0, 1, 1, 2, - 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 8, 7, 7, 7, 7, 7, 4, - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 4, 4, 4, 4, 4, 4, 0, 2, 2, - 0, 2, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 2, 0, 2, 3, 2, - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 5, 3, - 2, 2, 2, 2, 2, 5, 4, 6, 2, 4, - 0, 3, 3, 1, 1, 0, 3, 0, 1, 1, - 3, 0, 1, 1, 3, 1, 3, 4, 4, 4, - 4, 5, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 3, 4, 1, 0, 10, 6, 5, 6, 1, + 2, 2, 2, 2, 5, 8, 6, 5, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, + 4, 4, 4, 5, 1, 1, 1, 0, 4, 4, + 4, 4, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 5, 1, 0, + 2, 2, 1, 2, 4, 5, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 4, 6, 4, 4, + 11, 1, 5, 3, 7, 5, 5, 3, 1, 2, + 2, 1, 2, 4, 4, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 1, 1, 1, 4, 4, + 2, 4, 2, 0, 1, 1, 3, 1, 3, 1, + 0, 3, 5, 4, 3, 5, 5, 5, 5, 5, + 5, 2, 2, 2, 2, 2, 2, 4, 4, 4, + 4, 4, 4, 4, 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 3, 2, 0, 1, 1, + 2, 1, 1, 1, 1, 4, 4, 5, 4, 4, + 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, + 5, 5, 4, 4, 4, 4, 4, 4, 0, 2, + 2, 0, 2, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 2, 0, 2, 3, + 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 5, + 3, 2, 2, 2, 2, 2, 5, 4, 6, 2, + 4, 0, 3, 3, 1, 1, 0, 3, 0, 1, + 1, 3, 0, 1, 1, 3, 1, 3, 4, 4, + 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 3, 4, 1, 0, 10, 6, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, - 3, 4, 6, 5, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 1, 2, 2, 4, 1, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 1, 0, - 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 1, 3, 2, 2, 3, 4, 2, 2, 2, - 5, 5, 7, 4, 3, 2, 3, 2, 1, 1, - 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, + 2, 3, 4, 6, 5, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 1, 2, 2, 4, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, + 0, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, - 1, 1, 1, 1, 3, 0, 1, 1, 3, 2, - 6, 7, 3, 3, 3, 6, 0, 1, 3, 5, - 6, 4, 4, 1, 3, 3, 1, 1, 1, 1, - 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 3, 2, 2, 3, 4, 2, 2, + 2, 5, 5, 7, 4, 3, 2, 3, 2, 1, + 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, + 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, + 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, + 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 5, 4, 7, 6, 7, - 6, 9, 8, 3, 8, 4, 0, 2, 0, 1, - 3, 3, 0, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 0, 2, 3, 1, 1, 1, 1, 3, - 8, 2, 3, 1, 1, 3, 3, 3, 4, 6, - 0, 2, 3, 1, 3, 1, 4, 3, 0, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 0, 2, - 2, 3, 3, 4, 2, 1, 1, 3, 5, 0, - 2, 2, 0, 2, 4, 3, 1, 1, + 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, + 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, + 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, + 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, + 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, + 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, + 0, 2, 2, 0, 2, 4, 3, 1, 1, }; static const YYINT yydefred[] = { 1, - 0, 85, 0, 0, 268, 0, 0, 0, 0, 782, - 783, 0, 0, 0, 0, 0, 0, 860, 0, 0, + 0, 85, 0, 0, 269, 0, 0, 0, 0, 783, + 784, 0, 0, 0, 0, 0, 0, 861, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 57, 58, 0, 60, 0, 0, 0, 83, 84, 2, - 0, 0, 339, 6, 7, 8, 9, 10, 11, 0, + 0, 0, 340, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 16, 17, 18, 24, 25, 26, 0, - 108, 0, 275, 0, 0, 839, 36, 39, 37, 0, - 38, 0, 192, 394, 395, 0, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 0, 0, 0, 219, 220, 0, 0, 226, 227, - 0, 0, 0, 0, 0, 223, 0, 71, 218, 0, - 0, 0, 0, 803, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 575, 733, 0, 710, 718, - 716, 0, 719, 720, 721, 722, 723, 724, 729, 730, - 731, 732, 692, 717, 0, 709, 0, 0, 0, 513, - 0, 576, 577, 578, 0, 0, 0, 0, 0, 0, - 714, 0, 0, 239, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 439, 0, 0, 0, 0, 139, 1, - 0, 813, 831, 849, 863, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 390, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 581, 0, 574, 0, 31, 0, 0, 0, 0, - 0, 0, 228, 229, 230, 231, 221, 222, 72, 0, - 73, 0, 0, 103, 0, 21, 798, 0, 0, 804, - 805, 806, 808, 0, 809, 810, 811, 812, 0, 861, - 862, 0, 0, 0, 725, 726, 727, 728, 691, 0, - 694, 0, 711, 713, 237, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 695, 0, 0, 0, 0, 0, 0, 706, 0, 700, - 0, 0, 0, 0, 0, 699, 698, 0, 0, 0, - 0, 0, 234, 0, 0, 0, 64, 440, 68, 744, - 0, 0, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 0, 375, 0, 338, 346, - 347, 0, 0, 0, 0, 368, 5, 0, 528, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 348, 352, 351, 354, 353, 355, 0, 340, - 342, 349, 361, 339, 0, 0, 0, 0, 0, 0, + 108, 0, 276, 0, 0, 840, 36, 39, 37, 0, + 38, 0, 193, 395, 396, 0, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 0, 0, 0, 220, 221, 0, 0, 227, 228, + 0, 0, 0, 0, 0, 224, 0, 71, 219, 0, + 0, 0, 0, 804, 0, 0, 0, 0, 41, 19, + 20, 43, 42, 22, 23, 576, 734, 0, 711, 719, + 717, 0, 720, 721, 722, 723, 724, 725, 730, 731, + 732, 733, 693, 718, 0, 710, 0, 0, 0, 514, + 0, 577, 578, 579, 0, 0, 0, 0, 0, 0, + 715, 0, 0, 240, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 440, 0, 0, 0, 0, 139, 1, + 0, 814, 832, 850, 864, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 391, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 582, 0, 575, 0, 31, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 222, 223, 72, 0, + 73, 0, 0, 103, 0, 21, 799, 0, 0, 805, + 806, 807, 809, 0, 810, 811, 812, 813, 0, 862, + 863, 0, 0, 0, 726, 727, 728, 729, 692, 0, + 695, 0, 712, 714, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 696, 0, 0, 0, 0, 0, 0, 707, 0, 701, + 0, 0, 0, 0, 0, 700, 699, 0, 0, 0, + 0, 0, 235, 0, 0, 0, 64, 441, 68, 745, + 0, 0, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 0, 376, 0, 339, 347, + 348, 0, 0, 0, 0, 369, 5, 0, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 353, 352, 355, 354, 356, 0, 341, + 343, 350, 362, 340, 0, 0, 0, 0, 0, 0, 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, - 123, 133, 0, 136, 0, 107, 0, 281, 276, 277, - 278, 279, 280, 284, 282, 292, 283, 285, 286, 287, - 288, 289, 290, 291, 0, 293, 317, 0, 0, 0, - 416, 0, 415, 0, 414, 0, 413, 0, 411, 0, - 412, 436, 0, 0, 0, 0, 794, 784, 0, 0, - 842, 841, 840, 0, 0, 0, 213, 0, 199, 193, - 194, 195, 196, 201, 202, 203, 204, 198, 205, 206, - 197, 0, 0, 391, 0, 0, 0, 0, 0, 753, - 0, 752, 0, 0, 0, 0, 0, 314, 315, 0, - 0, 0, 0, 75, 69, 0, 96, 800, 0, 0, - 807, 0, 693, 712, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 705, 0, 0, - 0, 0, 737, 696, 0, 734, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 27, 0, 105, 242, - 256, 0, 0, 839, 0, 0, 3, 0, 339, 174, - 175, 177, 176, 178, 184, 185, 140, 0, 0, 0, - 4, 341, 343, 0, 0, 0, 0, 0, 0, 0, - 350, 530, 529, 531, 532, 44, 0, 0, 527, 533, - 534, 537, 536, 538, 542, 543, 0, 541, 544, 0, - 0, 0, 0, 549, 0, 0, 0, 0, 0, 385, - 0, 383, 386, 369, 0, 0, 0, 0, 0, 0, - 0, 0, 372, 0, 0, 0, 0, 12, 816, 824, - 825, 814, 817, 0, 0, 836, 0, 0, 13, 0, - 834, 0, 832, 0, 0, 0, 0, 14, 856, 857, - 850, 0, 0, 15, 867, 868, 864, 0, 125, 126, + 123, 133, 0, 136, 0, 107, 0, 282, 277, 278, + 279, 280, 281, 285, 283, 293, 284, 286, 287, 288, + 289, 290, 291, 292, 0, 294, 318, 0, 0, 0, + 417, 0, 416, 0, 415, 0, 414, 0, 412, 0, + 413, 437, 0, 0, 0, 0, 795, 785, 0, 0, + 843, 842, 841, 0, 0, 0, 214, 0, 200, 194, + 195, 196, 197, 202, 203, 204, 205, 199, 206, 207, + 198, 0, 0, 392, 0, 0, 0, 0, 0, 754, + 0, 753, 0, 0, 0, 0, 0, 315, 316, 0, + 0, 0, 0, 75, 69, 0, 96, 801, 0, 0, + 808, 0, 694, 713, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, + 0, 0, 738, 697, 0, 735, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 27, 0, 105, 243, + 257, 0, 0, 840, 0, 0, 3, 0, 340, 175, + 176, 178, 177, 179, 185, 186, 140, 0, 0, 0, + 4, 342, 344, 0, 0, 0, 0, 0, 0, 0, + 351, 531, 530, 532, 533, 44, 0, 0, 528, 534, + 535, 538, 537, 539, 543, 544, 0, 542, 545, 0, + 0, 0, 0, 550, 0, 0, 0, 0, 0, 386, + 0, 384, 387, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 373, 0, 0, 0, 0, 12, 817, 825, + 826, 815, 818, 0, 0, 837, 0, 0, 13, 0, + 835, 0, 833, 0, 0, 0, 0, 14, 857, 858, + 851, 0, 0, 15, 868, 869, 865, 0, 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, - 0, 0, 404, 0, 0, 843, 844, 845, 846, 847, - 848, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 32, 0, 224, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 758, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, - 704, 0, 0, 0, 0, 0, 179, 180, 0, 0, - 0, 0, 0, 139, 0, 245, 259, 849, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 535, 0, 566, - 0, 0, 0, 564, 367, 384, 370, 0, 387, 376, - 377, 378, 379, 381, 382, 380, 0, 0, 0, 0, - 819, 818, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 855, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, + 0, 0, 405, 0, 0, 844, 845, 846, 847, 848, + 849, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 32, 0, 225, 234, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 758, 759, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 698, + 705, 0, 0, 0, 0, 0, 180, 181, 0, 0, + 0, 0, 0, 139, 0, 246, 260, 850, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 536, 0, 567, + 0, 0, 0, 565, 368, 385, 371, 0, 388, 377, + 378, 379, 380, 382, 383, 381, 0, 0, 0, 0, + 820, 819, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 856, 0, 0, 0, 0, 0, 0, 151, 153, 152, 154, 0, 149, 150, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, - 0, 0, 0, 0, 398, 403, 0, 786, 0, 0, - 601, 639, 593, 594, 0, 628, 595, 596, 597, 598, - 599, 600, 630, 606, 607, 608, 609, 0, 0, 0, - 636, 0, 0, 0, 0, 591, 592, 615, 616, 617, - 634, 618, 619, 620, 621, 0, 0, 624, 0, 632, - 638, 273, 0, 0, 0, 0, 0, 0, 0, 741, - 0, 0, 0, 0, 746, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, + 0, 0, 0, 0, 399, 404, 0, 787, 0, 0, + 602, 640, 594, 595, 0, 629, 596, 597, 598, 599, + 600, 601, 631, 607, 608, 609, 610, 0, 0, 0, + 637, 0, 0, 0, 0, 592, 593, 616, 617, 618, + 635, 619, 620, 621, 622, 0, 0, 625, 0, 633, + 639, 274, 0, 0, 0, 0, 0, 0, 0, 742, + 0, 0, 0, 0, 747, 0, 35, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 444, 0, 77, 0, 97, 98, 0, 99, - 100, 101, 0, 0, 0, 487, 486, 0, 0, 0, - 0, 477, 476, 475, 474, 472, 470, 471, 473, 485, - 484, 483, 482, 0, 701, 702, 739, 735, 0, 0, - 0, 244, 243, 0, 0, 258, 257, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, - 358, 0, 0, 0, 0, 0, 0, 359, 0, 0, - 0, 0, 547, 0, 0, 550, 0, 0, 0, 344, - 0, 0, 0, 373, 374, 815, 826, 0, 828, 820, - 823, 801, 827, 833, 835, 0, 0, 0, 0, 0, + 0, 76, 445, 0, 77, 0, 97, 98, 0, 99, + 100, 101, 0, 0, 0, 488, 487, 0, 0, 0, + 0, 478, 477, 476, 475, 473, 471, 472, 474, 486, + 485, 484, 483, 0, 702, 703, 740, 736, 0, 0, + 0, 245, 244, 0, 0, 259, 258, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 359, 0, 0, 0, 0, 0, 0, 360, 0, 0, + 0, 0, 548, 0, 0, 551, 0, 0, 0, 345, + 0, 0, 0, 374, 375, 816, 827, 0, 829, 821, + 824, 802, 828, 834, 836, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 157, 0, 0, 0, 148, - 141, 294, 0, 0, 0, 305, 306, 307, 308, 300, - 301, 302, 299, 303, 304, 0, 0, 297, 0, 0, - 0, 0, 0, 0, 402, 410, 409, 408, 407, 405, - 406, 0, 0, 207, 629, 602, 603, 604, 605, 0, - 625, 631, 633, 637, 0, 0, 0, 635, 622, 623, - 677, 646, 647, 0, 674, 648, 649, 650, 651, 652, - 653, 676, 658, 659, 660, 661, 644, 645, 666, 667, - 668, 669, 670, 671, 672, 673, 643, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 662, 0, 0, 610, 200, 0, 209, 0, 191, 0, - 760, 759, 0, 756, 0, 755, 742, 0, 749, 78, - 75, 70, 0, 0, 557, 0, 0, 0, 0, 0, + 141, 295, 0, 0, 0, 306, 307, 308, 309, 301, + 302, 303, 300, 304, 305, 0, 0, 298, 0, 0, + 0, 0, 0, 0, 403, 411, 410, 409, 408, 406, + 407, 0, 0, 208, 630, 603, 604, 605, 606, 0, + 626, 632, 634, 638, 0, 0, 0, 636, 623, 624, + 678, 647, 648, 0, 675, 649, 650, 651, 652, 653, + 654, 677, 659, 660, 661, 662, 645, 646, 667, 668, + 669, 670, 671, 672, 673, 674, 644, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 663, 0, 0, 611, 201, 0, 210, 0, 192, 0, + 761, 760, 0, 757, 0, 756, 743, 0, 750, 78, + 75, 70, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, 80, 0, 95, 0, - 481, 480, 479, 478, 0, 0, 190, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, - 251, 252, 253, 254, 246, 0, 0, 0, 173, 265, - 264, 266, 267, 260, 181, 0, 362, 0, 365, 366, - 0, 45, 46, 0, 546, 0, 552, 553, 345, 0, - 565, 0, 0, 0, 854, 865, 0, 0, 160, 0, - 0, 0, 145, 0, 163, 0, 0, 296, 0, 0, - 0, 318, 319, 320, 321, 0, 0, 790, 0, 788, - 0, 0, 0, 0, 675, 654, 655, 656, 657, 664, - 0, 0, 665, 0, 611, 0, 272, 0, 0, 0, + 482, 481, 480, 479, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 172, 0, 0, 0, 0, 173, + 252, 253, 254, 255, 247, 0, 0, 0, 174, 266, + 265, 267, 268, 261, 182, 0, 363, 0, 366, 367, + 0, 45, 46, 0, 547, 0, 553, 554, 346, 0, + 566, 0, 0, 0, 855, 866, 0, 0, 160, 0, + 0, 0, 145, 0, 164, 0, 0, 297, 0, 0, + 0, 319, 320, 321, 322, 0, 0, 791, 0, 789, + 0, 0, 0, 0, 676, 655, 656, 657, 658, 665, + 0, 0, 666, 0, 612, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 211, 441, 0, 0, 78, 0, 0, 0, - 217, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 444, 0, 212, 442, 0, 0, 78, 0, 0, 0, + 218, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 87, - 86, 0, 435, 795, 703, 0, 186, 0, 189, 0, - 0, 247, 248, 249, 250, 263, 261, 262, 357, 0, - 0, 548, 568, 388, 389, 0, 155, 0, 0, 166, - 0, 165, 162, 0, 0, 309, 310, 311, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, - 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 750, 67, 169, 0, 0, 434, 0, 433, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, - 423, 0, 422, 0, 421, 0, 419, 417, 0, 418, - 420, 0, 432, 0, 431, 0, 430, 0, 429, 0, - 450, 0, 446, 445, 0, 449, 0, 448, 0, 0, - 90, 0, 0, 0, 0, 0, 0, 364, 0, 0, - 158, 161, 146, 295, 313, 270, 0, 792, 0, 0, - 588, 0, 614, 0, 761, 0, 0, 0, 766, 751, - 215, 214, 502, 498, 428, 0, 427, 0, 426, 0, - 425, 0, 500, 498, 496, 494, 488, 491, 500, 498, - 496, 494, 511, 504, 447, 507, 89, 91, 0, 0, - 188, 0, 0, 0, 0, 168, 0, 0, 641, 0, - 587, 0, 613, 0, 0, 0, 0, 0, 500, 498, - 496, 494, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, - 821, 322, 0, 763, 764, 765, 466, 503, 465, 499, - 0, 0, 0, 0, 456, 501, 455, 454, 497, 453, - 495, 451, 490, 489, 452, 492, 493, 460, 459, 458, - 457, 469, 512, 506, 505, 467, 508, 0, 468, 510, - 255, 0, 0, 0, 0, 0, 464, 463, 462, 461, - 509, 0, 0, 360, 0, 327, 323, 332, 333, 334, - 335, 336, 324, 325, 326, 328, 329, 330, 331, 274, - 0, 0, 0, 0, 586, 0, 0, 0, 0, 182, - 337, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 86, 0, 436, 796, 704, 0, 187, 0, 190, 0, + 0, 248, 249, 250, 251, 264, 262, 263, 358, 0, + 0, 549, 569, 389, 390, 0, 155, 0, 0, 0, + 167, 0, 166, 163, 0, 0, 310, 311, 312, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 664, 0, + 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 751, 67, 170, 0, 0, 435, 0, 434, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, + 0, 424, 0, 423, 0, 422, 0, 420, 418, 0, + 419, 421, 0, 433, 0, 432, 0, 431, 0, 430, + 0, 451, 0, 447, 446, 0, 450, 0, 449, 0, + 0, 90, 0, 0, 0, 0, 0, 0, 365, 0, + 0, 158, 162, 0, 146, 296, 314, 271, 0, 793, + 0, 0, 589, 0, 615, 0, 762, 0, 0, 0, + 767, 752, 216, 215, 503, 499, 429, 0, 428, 0, + 427, 0, 426, 0, 501, 499, 497, 495, 489, 492, + 501, 499, 497, 495, 512, 505, 448, 508, 89, 91, + 0, 0, 189, 0, 0, 0, 0, 169, 0, 161, + 0, 642, 0, 588, 0, 614, 0, 0, 0, 0, + 0, 501, 499, 497, 495, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, + 0, 0, 0, 822, 323, 0, 764, 765, 766, 467, + 504, 466, 500, 0, 0, 0, 0, 457, 502, 456, + 455, 498, 454, 496, 452, 491, 490, 453, 493, 494, + 461, 460, 459, 458, 470, 513, 507, 506, 468, 509, + 0, 469, 511, 256, 0, 0, 0, 0, 0, 465, + 464, 463, 462, 510, 0, 0, 361, 0, 328, 324, + 333, 334, 335, 336, 337, 325, 326, 327, 329, 330, + 331, 332, 275, 0, 0, 0, 0, 587, 0, 0, + 0, 0, 183, 338, 0, 0, 0, 0, 0, 0, + 0, 0, 184, }; #if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING) static const YYINT yystos[] = { 0, @@ -883,46 +884,47 @@ static const YYINT yystos[] = { 0, 263, 299, 554, 299, 306, 618, 554, 297, 346, 365, 600, 608, 41, 637, 41, 546, 93, 93, 619, 619, 510, 623, 623, 623, 623, 623, 623, 623, 547, 44, - 274, 41, 547, 547, 554, 58, 41, 554, 546, 41, - 44, 616, 615, 631, 554, 393, 394, 393, 394, 581, - 617, 554, 61, 44, 554, 554, 583, 93, 554, 43, - 93, 281, 282, 283, 284, 554, 281, 282, 283, 554, - 610, 125, 125, 62, 572, 572, 41, 93, 41, 93, - 554, 554, 554, 554, 554, 554, 571, 554, 41, 93, - 41, 93, 41, 93, 41, 93, 41, 41, 93, 41, - 41, 93, 41, 93, 41, 93, 41, 93, 41, 93, - 41, 93, 41, 41, 93, 41, 263, 41, 93, 306, - 618, 91, 546, 40, 44, 274, 552, 619, 548, 614, - 41, 615, 619, 41, 41, 41, 40, 263, 554, 583, - 93, 93, 93, 554, 41, 58, 58, 58, 41, 125, - 41, 41, 40, 40, 41, 93, 41, 93, 41, 93, - 41, 93, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 41, 40, 263, 93, 61, 572, - 619, 548, 575, 60, 568, 569, 58, 572, 41, 44, - 41, 580, 93, 554, 554, 554, 596, 593, 40, 40, - 40, 40, 592, 593, 594, 595, 590, 591, 592, 593, - 594, 595, 599, 597, 598, 587, 41, 568, 619, 40, - 614, 41, 583, 41, 41, 41, 41, 562, 41, 554, - 592, 593, 594, 595, 41, 554, 41, 41, 554, 41, - 571, 41, 554, 570, 41, 570, 571, 41, 41, 41, - 41, 41, 587, 263, 299, 41, 299, 306, 41, 618, - 582, 40, 274, 572, 628, 44, 41, 41, 41, 41, - 263, 572, 548, 41, 294, 309, 325, 334, 348, 349, - 350, 351, 380, 381, 382, 383, 384, 385, 386, 123, - 583, 41, 40, 40, 41, 510, 572, 554, 358, 41, - 41, 552, 575, 619, 274, 548, 568, 40, 572, 41, + 274, 41, 547, 547, 554, 58, 41, 554, 546, 606, + 41, 44, 616, 615, 631, 554, 393, 394, 393, 394, + 581, 617, 554, 61, 44, 554, 554, 583, 93, 554, + 43, 93, 281, 282, 283, 284, 554, 281, 282, 283, + 554, 610, 125, 125, 62, 572, 572, 41, 93, 41, + 93, 554, 554, 554, 554, 554, 554, 571, 554, 41, + 93, 41, 93, 41, 93, 41, 93, 41, 41, 93, + 41, 41, 93, 41, 93, 41, 93, 41, 93, 41, + 93, 41, 93, 41, 41, 93, 41, 263, 41, 93, + 306, 618, 91, 546, 40, 44, 274, 552, 619, 548, + 614, 41, 615, 546, 619, 41, 41, 41, 40, 263, + 554, 583, 93, 93, 93, 554, 41, 58, 58, 58, + 41, 125, 41, 41, 40, 40, 41, 93, 41, 93, + 41, 93, 41, 93, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 41, 40, 263, 93, + 61, 572, 619, 548, 575, 60, 568, 569, 58, 615, + 572, 41, 44, 41, 580, 93, 554, 554, 554, 596, + 593, 40, 40, 40, 40, 592, 593, 594, 595, 590, + 591, 592, 593, 594, 595, 599, 597, 598, 587, 41, + 568, 619, 40, 614, 41, 583, 41, 41, 41, 41, + 562, 41, 554, 592, 593, 594, 595, 41, 554, 41, + 41, 554, 41, 571, 41, 554, 570, 41, 570, 571, + 41, 41, 41, 41, 41, 587, 263, 299, 41, 299, + 306, 41, 618, 582, 40, 274, 572, 628, 44, 41, + 41, 41, 41, 263, 572, 548, 41, 294, 309, 325, + 334, 348, 349, 350, 351, 380, 381, 382, 383, 384, + 385, 386, 123, 583, 41, 40, 40, 41, 510, 572, + 554, 358, 41, 41, 552, 575, 619, 274, 548, 568, + 40, 572, 41, }; #endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */ static const YYINT yydgoto[] = { 1, 158, 71, 482, 897, 159, 776, 105, 106, 802, 35, 36, 707, 781, 421, 1132, 73, 714, 828, 829, 1034, - 1035, 1081, 1545, 1546, 580, 1601, 782, 783, 784, 211, + 1035, 1081, 1547, 1548, 580, 1604, 782, 783, 784, 211, 526, 527, 175, 176, 893, 894, 1139, 687, 1144, 1064, - 1313, 932, 933, 281, 1567, 1568, 1563, 1558, 1565, 1566, - 1557, 1574, 1575, 1573, 161, 703, 529, 530, 1261, 1262, + 1313, 932, 933, 281, 1570, 1571, 1566, 1561, 1568, 1569, + 1560, 1577, 1578, 1576, 161, 703, 529, 530, 1261, 1262, 1039, 705, 1372, 706, 934, 693, 694, 1196, 803, 1265, 830, 656, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1625, 745, 746, 834, 688, 689, 92, 37, + 190, 208, 1628, 745, 746, 834, 688, 689, 92, 37, 113, 489, 115, 205, 116, 38, 39, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 40, 41, 311, 42, 43, 181, 44, 353, 46, @@ -935,342 +937,344 @@ static const YYINT yydgoto[] = { 1, 623, 624, 625, 632, 633, 641, 647, }; static const YYINT yysindex[] = { 0, -14035, 0, -360, 458, 0, 60, -212, 1699, 1699, 0, - 0, -131, 1208, 116, 186, -370, -245, 0, 246, 71, - 71, -27, -27, 9462, 183, 0, 458, 458, 458, 458, - 0, 0, 193, 0, 232, 232, 232, 0, 0, 0, - 337, 389, 0, 0, 0, 0, 0, 0, 0, 417, - 551, 567, 576, 0, 0, 0, 0, 0, 0, 232, - 0, 272, 0, 589, 71, 0, 0, 0, 0, 583, - 0, 71, 0, 0, 0, 524, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1670, 38, 662, 0, 0, 687, 693, 0, 0, - 590, 1047, 1047,11884, 7392, 0, 692, 0, 0, 717, - 71, 71, -40, 0, 1834, 638, 458, 583, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7392, 0, 0, +14122, 0, -368, 643, 0, 68, -246, 1476, 1476, 0, + 0, -145, 1184, 128, 89, -267, -205, 0, 314, 38, + 38, 263, 263, 9541, 146, 0, 643, 643, 643, 643, + 0, 0, 88, 0, 100, 100, 100, 0, 0, 0, + 255, 355, 0, 0, 0, 0, 0, 0, 0, 372, + 389, 467, 487, 0, 0, 0, 0, 0, 0, 100, + 0, 184, 0, 863, 38, 0, 0, 0, 0, 587, + 0, 38, 0, 0, 0, 422, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,11827, 19, 602, 0, 0, 622, 664, 0, 0, + 917, 682, 682,11742, 7471, 0, 647, 0, 0, 681, + 38, 38, 384, 0, 2521, 703, 643, 587, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7471, 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 456, 185, 285, 0, - 1148, 0, 0, 0, 1722, 42, 425, 583, 770, 76, - 0, 435, 450, 0, 483, 489, 1095, 185, 147, 583, - 583, 583, 0, 0, 766, 599, 855, 868, 0, 0, -12884, 0, 0, 0, 0, 880, 5016, 1670, 607, 6049, - 887, 75, 91, 99, 106, 119, 122, 893, 756, 898, - 0, 0, 232, 203, 897, 458, 857,11441, 891, 134, - 778, 0, 135, 0, 1047, 0, 921, 62, 922, 707, - 71, 71, 0, 0, 0, 0, 0, 0, 0, 933, - 0,11030, 108, 0, 885, 0, 0, 2, 1834, 0, - 0, 0, 0, 514, 0, 0, 0, 0, 583, 0, - 0, 14, 583, 778, 0, 0, 0, 0, 0, 185, - 0, 711, 0, 0, 0, 0,11603, 953, 964, 839, - 976, 986, 993, 996, 1011, 1021, 1024, 1044, 1052, 1053, - 0, 458, 915, 126, 1003, 760, 583, 0, 458, 0, - 1068, 1088, 458, 346, 7392, 0, 0, 458, 458, 458, - 458, 7392, 0, 185, 1022, 922, 0, 0, 0, 0, - 6283,13902, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 0, 71, 0, 0, - 0, 71, 1045, -56,12052, 0, 0, 1079, 0, 573, - 71, -27, 416, 573, 1095, 4830, 1670, -125, 1047,11884, - 1106, 232, 0, 0, 0, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 819, 355, 775, 129, 1000, 404, - 0, 1108, 0, 0, 0, 0, 0, 0, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 616, 0, 1670, 0, 1119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1145, 0, 0, 1147, 71, 71, - 0, 71, 0, 71, 0, -27, 0, 364, 0, 364, - 0, 0, 1063, 1151, 524, 1167, 0, 0, 71, 71, - 0, 0, 0, 785, 583, 583, 0, 1169, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1170, 166, 0, 458, 439, 951, 1091, 7392, 0, -12125, 0, 956, 1176, 1189, 1190, 1095, 0, 0, 118, - 583, 1172, 962, 0, 0, 922, 0, 0, 774, 15, - 0, 458, 0, 0, 583, 965, 475, 71, 1201, 1202, - 1205, 1207, 71, 71, 71, -27, 544, 823, 71, 71, - 71, -27, 449, 458, 458, 458, 583, 0, 583, 1670, - 1670, 583, 0, 0, 974, 0, 98, 778, 1188, 1214, - 583, 583, 583, 583,11172, 0, 0, 894, 0, 0, - 0, 71, 71, 0, -308,12194, 0, 1138, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1146, 1152, 1155, - 0, 0, 0, 1210, 71, 255, 522, 71, 1047, 997, - 0, 0, 0, 0, 0, 0, 1230, 1242, 0, 0, - 0, 0, 0, 0, 0, 0,11603, 0, 0, 1244, - 922, 232, 7392, 0, 573, 1245, 1249, 1010,12983, 0, - 1670, 0, 0, 0, 819, -47, -47, -47, -47, 355, - 977, 978, 0, 830, 1237, 40, -6, 0, 0, 0, - 0, 0, 0, 232, 232, 0, 1238, 1243, 0, 232, - 0, 232, 0, 1263, -215, 458, 847, 0, 0, 0, - 0, 458, 848, 0, 0, 0, 0, 71, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 1277, 71, 951, - 5140, 951, 1266, 1235, 1289, 1290, 1300, 1302, 1304, 0, - 756, 1305, 0, 1292, 18, 0, 0, 0, 0, 0, - 0, 71,14390, 32, 473, 458, 581, 1312, 1310, 0, - 972, 543, 1311, 1233, 1301, 0, 1102, 0, 0, 1308, - 5450, 1330, 1331, 716, 1258, 566, 506, 232, 458, 583, - 458, 0, 0, 1333, 1343, 71, 71, 71, -27, 1344, - 1345, 1348, 1351, 1352, 1355, 1357, 1361, 1362, 1366, 1367, - 1373, 458, 770, 770, 770, 1374, 1375, 71, 429, 0, - 0, 7392, 1377, 1670,11782, 979, 0, 0, 897, 558, - 644, 1047, 1154, 0,13134, 0, 0, 0, 71, 1329, - 71, 583, 71, 651, 1340, 7392, 716, 71, -27, 583, - 1163, 951, 1406, 208, 1405, 1409, 1408, 0, 1010, 0, - 5140, 1412, 1411, 0, 0, 0, 0, 573, 0, 0, - 0, 0, 0, 0, 0, 0, 524, 71, 71, 1417, - 0, 0, 1400, 1419, 922, 1421, 1422, 1420, 1435, 1437, - 1438, 71, 458, 0, 583, 458, 70, 458, 1440, 1444, - 0, 0, 0, 0, 1194, 0, 0, 83, 189, 1432, - 1670, 1454, 13, 1182, -64, 3, 592, 1407, 0, 1407, - 1407, 1407, 1407, 1407, 0, 0, 71, 0, 71, 1455, - 0, 0, 0, 0, 861, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1457, 1005, 1016, - 0, 1013, 1467, 55, 1234, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1457, 1457, 0,10342, 0, - 0, 0, 112, 1471, 232, 524, 1452, 458, 664, 0, - 951, 1390, 1458,12125, 0, 1393, 0, 130, 71, 1456, - 1010, 1010, 583, 1172, 0, 125, 141, 971, 149, 169, - 371, 430, 432, 442, 447, 468, 482, 490, 516, 520, - 532, 0, 0, 375, 0, 232, 0, 0, 524, 0, - 0, 0, 1479, 583, 583, 0, 0, 1480, 1481, 1482, - 1486, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 770, 0, 0, 0, 0, 778, 1010, - 1077, 0, 0, 583, 458, 0, 0, 7392, 583, 71, - 583, 71, 696, 7392, 716,14105, 0, 1384, 349, 2574, - 0, 1139, 1436, 1439, 1670, 1452,11603, 0, 1490, 1492, - 458, 734, 0, 1010, 573, 0, 573, 1501, 3, 0, - 1010, 1226, 1227, 0, 0, 0, 0, 40, 0, 0, - 0, 0, 0, 0, 0, 1504, 770, 583, 71, 583, - 0, 71, 1506, 1194, 7392, 0, 1670, 769, 458, 0, - 0, 0, 951, 1370, 1508, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1494, 1495, 0, 1462, 1472, - 1473, 1474, 1528, 716, 0, 0, 0, 0, 0, 0, - 0, 53, 1306, 0, 0, 0, 0, 0, 0, 1071, - 0, 0, 0, 0, 951, 1485, 1487, 0, 0, 0, - 0, 0, 0, 1186, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -5, 37, 0, 0, -24, 0, 2876, 0, 1543, - 0, 0, 922, 0, 1548, 0, 0, 1466, 0, 0, - 0, 0, 922, 1498, 0, 1558, 1563, 1568, 1573, 475, - 71, 71, 71, 535, 545, 549, 562, 71, 71, 71, - 71, 71, 71, -27, 71, 544, 71, 823, 71, 71, - 71, 71, 71, 71, 71, -27, 71, 2266, 71, 374, - 71, 1606, 71, 0, 0, 3784, 0, 1579, 0, 1193, - 0, 0, 0, 0, 1580, 1095, 0, 583, 166, 1529, - 1530, 1670,11603, 1114, 0, 1095, 1095, 1095, 1095, 0, - 0, 0, 0, 0, 0, 1095, 1095, 1095, 0, 0, - 0, 0, 0, 0, 0, 524, 0, 1582, 0, 0, - 1354, 0, 0, 583, 0, 1588, 0, 0, 0, 524, - 0, 524, 71, 1574, 0, 0, 1590, 71, 0, 166, - 1592, 1594, 0, 36, 0, 769, 922, 0, 71, 408, - 593, 0, 0, 0, 0,14390, 1576, 0, 71, 0, - 1578, 968, 71, 71, 0, 0, 0, 0, 0, 0, - 951, 1552, 0, 71, 0, 401, 0, 1608, 1609, 982, - 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1619, 1620, 1622, - 0, 922, 0, 0, 71, 764, 0, 8, 1521, 1601, - 0, 0, 1010, 1010, 1624, 1575, 1625, 1577, 71, 71, - 71, 71, 71, 71, -27, 71, 1628, 1583, 1631, 1589, - 1644, 1593, 1646, 1595, 1648, 1649, 1599, 1654, 1655, 1605, - 1658, 1607, 1660, 1618, 1661, 1659, 1663, 1662, 1664, 1671, - 1665, 1667, 1673, 1668, 1491, 1712, 1678, 0, 1076, 0, - 0, 674, 0, 0, 0, 115, 0, 1713, 0, 1489, - 1047, 0, 0, 0, 0, 0, 0, 0, 0, 1670, - 716, 0, 0, 0, 0, 40, 0, 1735, 769, 0, - 1670, 0, 0, 4537, 1736, 0, 0, 0, 0, 1738, - 1741, 1523, 71, 951, 1700, 1702, 922, 0, 1708, 71, - 0, 1762, 1764, 1765, 1766, 1771, 1749, 1755, 1761, 1773, - 120, 0, 0, 0, 1779, 1780, 0, 1782, 0, 1783, - 1785, 1731, 1789, 1743, 1790, 1744, 1797, 1746, 0, 1800, - 0, 1801, 0, 1802, 0, 1803, 0, 0, 1804, 0, - 0, 1811, 0, 1821, 0, 1823, 0, 1824, 0, 1825, - 0, 1828, 0, 0, 1830, 0, 1831, 0, 1833, 1617, - 0, 1778, 585, 1010, 1670, 716, 7392, 0, 1815, 1818, - 0, 0, 0, 0, 0, 0, 1010, 0, 1836, 939, - 0,14463, 0, 1791, 0, 71, 71, 71, 0, 0, - 0, 0, 0, 0, 0, 1838, 0, 1842, 0, 1843, - 0, 1846, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2266, 1847, - 0, 1815,11603, 1796, 1849, 0, 40, 1850, 0, 951, - 0, 112, 0, 1851, 1852, 1853, 34, 44, 0, 0, - 0, 0, 47, 94, 102, 10, 27, 464, 104, 132, - 139, 67, 1961, 23, 961, 0, 1452, 1856, 1623, 1010, - 0, 0, 1006, 0, 0, 0, 0, 0, 0, 0, - 157, 164, 171, 97, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1627, 0, 0, - 0, 1010, 716, 1858, 2226, 951, 0, 0, 0, 0, - 0, 1859, 1861, 0, 1863, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 786, 1394, 1010, 71, 0, 1549, 1865, 1867, 1047, 0, - 0, 7392,11603, 1635, 716, 1815, 1871, 1010, 1872, 0, + 0, 0, 0, 0, -34, 0, 419, -34, 689, 0, + 5219, 0, 0, 0, 1457, 101, 178, 587, 690, 103, + 0, 391, 399, 0, 405, 417, 1866, -34, 39, 587, + 587, 587, 0, 0, 786, 584, 792, 814, 0, 0, +12986, 0, 0, 0, 0, 842, 5095,11827, 544, 6128, + 856, 75, 86, 102, 104, 118, 121, 883, 651, 888, + 0, 0, 100, 194, 1081, 643, 833,11310, 869, 109, + 477, 0, 135, 0, 682, 0, 900, 46, 907, 692, + 38, 38, 0, 0, 0, 0, 0, 0, 0, 920, + 0, 1686, 76, 0, 872, 0, 0, 15, 2521, 0, + 0, 0, 0, 495, 0, 0, 0, 0, 587, 0, + 0, -1, 587, 477, 0, 0, 0, 0, 0, -34, + 0, 696, 0, 0, 0, 0,11440, 932, 945, 930, + 947, 949, 962, 964, 970, 972, 974, 976, 984, 988, + 0, 643, 881, 494, 943, 977, 587, 0, 643, 0, + 998, 1000, 643, -18, 7471, 0, 0, 643, 643, 643, + 643, 7471, 0, -34, 922, 907, 0, 0, 0, 0, + 6362,13989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 38, 0, 38, 0, 0, + 0, 38, 959, -59,11905, 0, 0, 996, 0, 819, + 38, 263, 453, 819, 1866, 4909,11827, -132, 682,11742, + 1021, 100, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 961, 363, 1063, 129, 835, 775, + 0, 1044, 0, 0, 0, 0, 0, 0, 499, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 116, 0,11827, 0, 1058, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1060, 0, 0, 1070, 38, 38, + 0, 38, 0, 38, 0, 263, 0, 575, 0, 575, + 0, 0, 968, 1073, 422, 1082, 0, 0, 38, 38, + 0, 0, 0, 586, 587, 587, 0, 1085, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1088, 1960, 0, 643, 503, 870, 1006, 7471, 0, +12016, 0, 871, 1095, 1101, 1107, 1866, 0, 0, 162, + 587, 1097, 884, 0, 0, 907, 0, 0, 697, 10, + 0, 643, 0, 0, 587, 893, 393, 38, 1141, 1145, + 1147, 1155, 38, 38, 38, 263, 693, 944, 38, 38, + 38, 263, 519, 643, 643, 643, 587, 0, 587,11827, +11827, 587, 0, 0, 931, 0, 126, 477, 1161, 1188, + 587, 587, 587, 587,11109, 0, 0, 877, 0, 0, + 0, 38, 38, 0, -226,12115, 0, 1111, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1120, 1122, 1124, + 0, 0, 0, 1190, 38, 427, 546, 38, 682, 980, + 0, 0, 0, 0, 0, 0, 1213, 1215, 0, 0, + 0, 0, 0, 0, 0, 0,11440, 0, 0, 1218, + 907, 100, 7471, 0, 819, 1219, 1221, 993,13137, 0, +11827, 0, 0, 0, 961, -61, -61, -61, -61, 363, + 942, 952, 0, 803, 1217, 35, 53, 0, 0, 0, + 0, 0, 0, 100, 100, 0, 1223, 1228, 0, 100, + 0, 100, 0, 1239, -204, 643, 812, 0, 0, 0, + 0, 643, 824, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 1253, 38, 870, + 5529, 870, 1257, 1226, 1279, 1280, 1287, 1293, 1297, 0, + 651, 1302, 0, 1288, 40, 0, 0, 0, 0, 0, + 0, 38,14478, -6, 585, 643, 574, 1306, 1301, 0, + 582, 185, 1309, 1225, 1295, 0, 1094, 0, 0, 1308, + 5839, 1322, 1337, -153, 1254, 566, -51, 100, 643, 587, + 643, 0, 0, 1339, 1340, 38, 38, 38, 263, 1345, + 1348, 1352, 1354, 1356, 1367, 1372, 1374, 1375, 1376, 1378, + 1379, 643, 690, 690, 690, 1387, 1389, 38, 376, 0, + 0, 7471, 1338,11827,11664, 737, 0, 0, 1081, 558, + 652, 682, 1117, 0,13220, 0, 0, 0, 38, 1341, + 38, 587, 38, 628, 1342, 7471, -153, 38, 263, 587, + 1158, 870, 1392, 867, 1393, 1402, 1400, 0, 993, 0, + 5529, 1405, 1403, 0, 0, 0, 0, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 422, 38, 38, 1408, + 0, 0, 1394, 1410, 907, 1413, 1414, 1411, 1421, 1422, + 1423, 38, 643, 0, 587, 643, 28, 643, 1424, 1427, + 0, 0, 0, 0, 1168, 0, 0, 409, 269, 1406, +11827, 1435, 12, 748, -215, 34, 714, 1390, 0, 1390, + 1390, 1390, 1390, 1390, 0, 0, 38, 0, 38, 1437, + 0, 0, 0, 0, 983, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1442, 990, 999, + 0, 991, 1445, 70, 1220, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1442, 1442, 0,10421, 0, + 0, 0, 106, 1455, 100, 422, 1438, 643, 2063, 0, + 870, 1373, 1439,12016, 0, 1381, 0, 93, 38, 1443, + 993, 993, 587, 1097, 0, 132, 134, 1049, 394, 410, + 415, 430, 432, 442, 465, 468, 498, 513, 515, 520, + 524, 0, 0, 334, 0, 100, 0, 0, 422, 0, + 0, 0, 1465, 587, 587, 0, 0, 1466, 1467, 1468, + 1470, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 690, 0, 0, 0, 0, 477, 993, + 1061, 0, 0, 587, 643, 0, 0, 7471, 587, 38, + 587, 38, 729, 7471, -153,14191, 0, 934, 349, 1491, + 0, 1125, 1420, 1425,11827, 1438,11440, 0, 1474, 1478, + 643, 781, 0, 993, 819, 0, 819, 1479, 34, 0, + 993, 1200, 1205, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 1483, 690, 587, 38, 587, + 0, 38, 1487, 1168, 7471, 0,11827, 847, 643, 0, + 0, 0, 870, 1240, 1489, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1472, 1475, 0, 1444, 1446, + 1447, 1449, 1496, -153, 0, 0, 0, 0, 0, 0, + 0, 51, 1275, 0, 0, 0, 0, 0, 0, 1042, + 0, 0, 0, 0, 870, 1456, 1460, 0, 0, 0, + 0, 0, 0, 1023, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -3, 147, 0, 0, 3, 0, 2347, 0, 1508, + 0, 0, 907, 0, 1512, 0, 0, 1432, 0, 0, + 0, 0, 907, 1463, 0, 1517, 1521, 1528, 1529, 393, + 38, 38, 38, 545, 562, 589, 590, 38, 38, 38, + 38, 38, 38, 263, 38, 693, 38, 944, 38, 38, + 38, 38, 38, 38, 38, 263, 38, 2953, 38, 227, + 38, 989, 38, 0, 0, 3255, 0, 1532, 0, 1149, + 0, 0, 0, 0, 1534, 1866, 0, 587, 1960, 1485, + 1488,11827,11440, 1075, 0, 1866, 1866, 1866, 1866, 0, + 0, 0, 0, 0, 0, 1866, 1866, 1866, 0, 0, + 0, 0, 0, 0, 0, 422, 0, 1536, 0, 0, + 1312, 0, 0, 587, 0, 1549, 0, 0, 0, 422, + 0, 422, 38, 1533, 0, 0, 1551, 38, 0, 1350, + 1552, 1550, 0, 36, 0, 847, 907, 0, 38, 483, + 517, 0, 0, 0, 0,14478, 1535, 0, 38, 0, + 1544, 1053, 38, 38, 0, 0, 0, 0, 0, 0, + 870, 1503, 0, 38, 0, 165, 0, 1557, 1566, 1083, + 1568, 1569, 1572, 1574, 1575, 1578, 1579, 1581, 1583, 1584, + 0, 907, 0, 0, 38, 762, 0, 7, 1500, 1564, + 0, 0, 993, 993, 1586, 1538, 1592, 1541, 38, 38, + 38, 38, 38, 38, 263, 38, 1595, 1545, 1596, 1546, + 1599, 1548, 1601, 1553, 1603, 1604, 1554, 1607, 1608, 1558, + 1611, 1560, 1613, 1562, 1615, 1570, 1616, 1585, 1621, 1590, + 1624, 1626, 1594, 1627, 1429, 1652, 1605, 0, 1311, 0, + 0, 686, 0, 0, 0, 202, 0, 1655, 0, 1426, + 682, 0, 0, 0, 0, 0, 0, 0, 0,11827, + -153, 0, 0, 0, 0, 35, 0, 1660, 847, 643, + 0,11827, 0, 0, 1692, 1661, 0, 0, 0, 0, + 1662, 1665, 1452, 38, 870, 1614, 1625, 907, 0, 1636, + 38, 0, 1668, 1677, 1690, 1691, 1701, 1674, 1687, 1693, + 1711, 120, 0, 0, 0, 1712, 1713, 0, 1721, 0, + 1726, 1728, 1678, 1729, 1681, 1735, 1689, 1745, 1695, 0, + 1727, 0, 1750, 0, 1751, 0, 1752, 0, 0, 1753, + 0, 0, 1791, 0, 1792, 0, 1793, 0, 1794, 0, + 1796, 0, 1797, 0, 0, 1798, 0, 1809, 0, 1815, + 1593, 0, 1765, 630, 993,11827, -153, 7471, 0, 1800, + 1807, 0, 0, 847, 0, 0, 0, 0, 993, 0, + 1831, 760, 0,14506, 0, 1781, 0, 38, 38, 38, + 0, 0, 0, 0, 0, 0, 0, 1840, 0, 1841, + 0, 1843, 0, 1844, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2953, 1845, 0, 1800,11440, 1799, 1847, 0, 35, 0, + 1848, 0, 870, 0, 106, 0, 1850, 1851, 1852, 11, + 62, 0, 0, 0, 0, 94, 99, 119, 124, 223, + 529, 127, 140, 150, 164, 2647, 23, 466, 0, 1438, + 1858, 1628, 993, 0, 0, 1072, 0, 0, 0, 0, + 0, 0, 0, 157, 166, 176, 179, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1622, 0, 0, 0, 993, -153, 1860, 2913, 870, 0, + 0, 0, 0, 0, 1862, 1859, 0, 1864, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 854, 1395, 993, 38, 0, 1530, 1889, + 1899, 682, 0, 0, 7471,11440, 1669, -153, 1800, 1904, + 993, 1907, 0, }; static const YYINT yyrindex[] = { 0, - 0, 0, 5326, 0, 0,11662, 2579, 0, 0, 0, - 0, 0,11982, 0, 0, 384, 2444, 0, 663, 0, + 0, 0, 5405, 0, 0,11534, 2051, 0, 0, 0, + 0, 0,12385, 0, 0, 434, 3129, 0, 663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1873, 1873, 1873, 0, 0, 0, + 0, 0, 0, 0, 1909, 1909, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1873, - 0, -46, 0, 0, 0, 0, 0, 0, 0, 1792, - 0, 0, 0, 0, 0, 1787, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1909, + 0, -60, 0, 0, 0, 0, 0, 0, 0, 1822, + 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7693, 0, 0, 0, 0, 0, 0, - 5760,11552,11552, 0, 0, 0, 6212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9896, 0, 0, + 0, 0, 0, 7772, 0, 0, 0, 0, 0, 0, +12179,12257,12257, 0, 0, 0, 6291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1756, 2364, 0, - 0, 0, 0, 0, 0, 0,11982, 1793, 4793, 5103, - 5413, 5723, 0, 0, 0, 1875, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1794,11552, - 0, 9396, 9396, 9396, 9396, 9396, 9396, 0, 0, 0, - 0, 0, 1873, 8068, 0, 0, 0, 0, 0, 0, - 7085, 0, 9003, 0,11982, 0, 0, 0, 9176, 0, + 0, 0, 0, 0, 0, 0, 0, 1835, 2443, 0, + 0, 0, 0, 0, 0, 0,12385, 1826, 4872, 5182, + 5492, 5802, 0, 0, 0, 1912, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1833,12257, + 0, 9475, 9475, 9475, 9475, 9475, 9475, 0, 0, 0, + 0, 0, 1909, 8147, 0, 0, 0, 0, 0, 0, + 7164, 0, 9082, 0,12385, 0, 0, 0, 9255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8283, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1805, 0, - 0, 1806,10008, 4492, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8362, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1836, 0, + 0, 1857,10087, 4571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, - 0, 0, 0, 1882, 1870, 0, 0, 0, 0, 0, - 0, 0, 0, 1793, 0, 6033, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3963, 0, 0, 0, + 0, 0, 0, 1922, 1913, 0, 0, 0, 0, 0, + 0, 0, 0, 1826, 0, 6112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,11982, 0, 0, 0,11982, 0, - 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12385, 0, 0, 0,12385, 0, + 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1812, 1319, 0, 0, 0, 0, + 0, 0, 0, 1846, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1865, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1814, 0, 0, 7895, 0, 0,11982, 0, 0, 1882, - 109, 1887, 0, 0, 0, 6467, 0, 0,10141, 1813, - 0, 0, 0, 0,12532, 0, 0, 0, 0, 0, + 1849, 0, 0, 7974, 0, 0,12385, 0, 0, 1922, + 31, 1941, 0, 0, 0, 6546, 0, 0,10220, 1868, + 0, 0, 0, 0,12653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4188, 0, 2060, 0, - 0,10252, 0, 0, 174, 0, 0, 639, 0, 1878, -10283,10438,10579,10610, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4267, 0, 2139, 0, + 0,10331, 0, 0, 138, 0, 0, 123, 0, 1923, +10362,10517,10658,10689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,11982, 0, + 0, 0, 0, 0, 0, 0, 0, 0,12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13285, 1873, 0, 0, 1896, 0, 0,12277, 0, 0, - 0, 0, 0, 0,13384, 0, 0, 0, 0, 0, +13303, 1909, 0, 0, 1946, 0, 0,12312, 0, 0, + 0, 0, 0, 0,13454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1873, 1873, 0, 0, 0, 0, 1873, - 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1909, 1909, 0, 0, 0, 0, 1909, + 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 1819, 0, 4672, + 0, 0, 0, 0, 358, 0, 0, 1876, 0, 4616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8252, 0, 0, 0, 0, 0, - 0, 0, 153, 9704, 0, 7336, 0, 0, 1902, 0, - 0, 0, 1839, 0, 0, 0, 0, 0, 0, 6646, - 1870, 0, 0, 0, 0, -52, 0, 1873, 0, 1827, + 0, 0, 0, 0, 8331, 0, 0, 0, 0, 0, + 0, 0, 425, 9783, 0, 7415, 0, 0, 1948, 0, + 0, 0, 1875, 0, 0, 0, 0, 0, 0, 6725, + 1913, 0, 0, 0, 0, -71, 0, 1909, 0, 1878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2668, 2972, 3276, 0, 0, 205, 511, 0, - 0, 0,11329, 0, 0,11982, 0, 0, 0, 0, - 0,11982, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13467, 0, 0, 0, 0, 0, 0, 0,12801, - 0, 0, 0, 0, 1903, 0, 1914, 0,12277, 0, - 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2747, 3051, 3355, 0, 0, 156, 606, 0, + 0, 0,11251, 0, 0,12385, 0, 0, 0, 0, + 0,12385, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13621, 0, 0, 0, 0, 0, 0, 0,12819, + 0, 0, 0, 0, 1962, 0, 1963, 0,12312, 0, + 0, 0, 1964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1964, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12336, 0, 0, 229, 0, 0, - 0, 0, 4672, 0, 0, 837, 0, 9396, 0, 9396, - 9396, 9396, 9396, 9396, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1931, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12448, 0, 0, 358, 0, 0, + 0, 0, 4616, 0, 0, 550, 0, 9475, 0, 9475, + 9475, 9475, 9475, 9475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, - 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 224, 0, 9, 0, - 0, 0, 1918, 0, 0, 0, 9865, 7520, 0, 0, - 0, 0, 1039, 1814, 0, 0, 0, 0, 0, 0, -12277,12277,12380, 1887, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 660, 0, 0, + 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 660, 660, 0, 9, 0, + 0, 0, 1965, 0, 0, 0, 9944, 7599, 0, 0, + 0, 0, 1039, 1849, 0, 0, 0, 0, 0, 0, +12312,12312,12502, 1941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1840, 0, 1873, 0, 0, 0, 0, - 0, 0, 0, 1854,12631, 0, 0, 0, 0, 0, + 0, 0, 0, 1882, 0, 1909, 0, 0, 0, 0, + 0, 0, 0, 1885,12736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3580, 0, 0, 0, 0, 681,12277, - 0, 0, 0, 454, 0, 0, 0, 0, 1857, 0, -14176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13618, 0, 0, 0,13717, 0, 0, 0, 0, - 0, 0, 0,12277, 1896, 0, 1896, 0, 357, 0, -12405, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3182, 3486, 0, 1434, - 0, 0, 0,12336, 0, 0, 1938, 1919, 0, 0, + 0, 0, 0, 3659, 0, 0, 0, 0, 668,12312, + 0, 0, 0, 50, 0, 0, 0, 0, 1890, 0, +14293, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,13704, 0, 0, 0,13787, 0, 0, 0, 0, + 0, 0, 0,12312, 1946, 0, 1946, 0, 105, 0, +12533, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2045, 2349, 0, 1304, + 0, 0, 0,12448, 0, 0, 1971, 1952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8444, 8628, 0, 0, 0, 0, 0, 0, 0, + 0, 8523, 8707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1012, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6901, 0, 0, 0, 0, 0, 0, 0, + 0, 979, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,10721, - 0, 0, 0, 0, 0,11982, 0, 1860, 0, 0, - 0, 0, 0, 0, 0,11982,11982,11982,11982, 0, - 0, 0, 0, 0, 0,11982,11982,11982, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,10800, + 0, 0, 0, 0, 0,12385, 0, 1892, 0, 0, + 0, 0, 0, 0, 0,12385,12385,12385,12385, 0, + 0, 0, 0, 0, 0,12385,12385,12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,13868, 0, 0, 0, 0, 0, 905, + 0, 0, 0,13938, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1941, 0, 229, 0, 1919, 4672, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 1944, 0, 0, 0, + 0, 1975, 0, 358, 0, 1952, 4616, 0, 0, 0, + 0, 0, 0, 0, 0, 425, 1977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9563, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12277,12277, 0, 0, 0, 0, 0, 0, + 0, 9642, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,12312,12312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11982, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1919, 0, +12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8801, 0, 0, 0, 0, 731, 0, 0, 0, + 0, 0, 8880, 0, 0, 0, 0, 745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,12277, 0, 0, 0, 0, 1945, 0, - 0, 0, 0, 0, 0, 0,12277, 0, 0, 0, - 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12312, 0, 0, 0, 0, 1978, + 0, 0, 0, 1952, 0, 0, 0, 0,12312, 0, + 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1946, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1978, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1866, 0, 0,12277, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1896, + 0, 0,12312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,12312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,12277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12277, 0, 0, 0, 0, 0,11982, 0, - 0, 0, 0, 0, 0, 1945, 0,12277, 0, 0, + 0, 0, 0, 0, 0,12312, 0, 0, 0, 0, + 0,12385, 0, 0, 0, 0, 0, 0, 1978, 0, +12312, 0, 0, }; #if YYBTYACC static const YYINT yycindex[] = { 0, @@ -1441,2875 +1445,2912 @@ static const YYINT yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, }; #endif -static const YYINT yygindex[] = { 1808, - -4, -17, -693, 0, -444, -124, -98, 0, -7, 0, - 0, 0, 1569, -74, 0, 0, -870, 0, 1162, 0, - 957, 196,-1439, -445, -418, 5, -771, 0, 981, -22, - 1257, 0, -16, 1103, 495, 735, -965, -76, 0, 998, - 0,-1148, 872, 0, 0, 0,-1385, -852,-1309,-1052, - 0, 0, 0, 0, 822, 1111, 1325, 0, 0, 0, - 0, -658, 0, 0,-1055, 0, 1132, 0, -980,-1175, - 777, 767, -21, 4, 1695, 1581, 2026, -161, 74, 0, - 0, 0, 0, 0, 0, -790, 1150, 0, 2047, 0, - 0, 859, 1943, 1517, 0, -23, 2039, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -302, 1322, 0, -295, -239, -292, 45, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 1324, 0, - 0, 0, 33, 6, 41, 0, 17, 1784, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, -159, - 0, 0, 1461, 0, 0, 0, 253, 0, 0, 0, - 0, 0, 0, 0, 1416, 2013, -28, 0, 1602, 0, - 1715, 0, 0, 0, 0, 0, 0, +static const YYINT yygindex[] = { 1842, + -4, -17, -685, 0, -378, -86, -98, 0, -7, 0, + 0, 0, 1606, -74, 0, 0, -883, 0, 1196, 0, + 1003, 234,-1445, -445, -418, 5, -757, 0, 1014, -22, + 1294, 0, -16, 1143, 535, 764, -967, -76, 0, 1032, + 0,-1149, 904, 0, 0, 0,-1287,-1289,-1229,-1085, + 0, 0, 0, 0, 849, 1129, 1349, 0, 0, 0, + 789, -659, 0, 0,-1049, 0, 1148, 0, -980,-1196, + 790, 778, -21, 4, 1703, 1580, 2034, -161, 74, 0, + 0, 0, 0, 0, 0, -790, 1162, 0, 2050, 0, + 0, 862, 1950, 1522, 0, -23, 2041, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -303, 1313, 0, -302, -296, -300, 45, 0, + 0, 29, 0, 0, 0, 0, 0, 0, 1310, 0, + 0, 0, 33, 6, 41, 0, 17, 1766, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, -148, + 0, 0, 1464, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 0, 1401, 2007, -28, 0, 1587, 0, + 1705, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 14966 +#define YYTABLESIZE 15009 static const YYINT yytable[] = { 70, - 165, 160, 162, 227, 228, 303, 56, 1008, 548, 668, - 914, 669, 120, 121, 118, 549, 219, 59, 550, 177, - 178, 363, 169, 170, 171, 172, 124, 125, 1142, 48, - 1240, 902, 1293, 55, 568, 203, 702, 1254, 1291, 1359, - 297, 57, 1044, 186, 296, 45, 642, 206, 119, 642, - 1600, 598, 642, 167, 804, 473, 750, 204, 209, 206, - 206, 849, 295, 1616, 207, 147, 34, 1602, 302, 733, - 734, 735, 78, 998, 1587, 336, 135, 206, 826, 1294, - 827, 801, 232, 283, 1589, 1292, 109, 1595, 725, 726, - 1403, 417, 306, 294, 1318, 213, 1279, 164, 218, 642, - 1297, 472, 1578, 235, 236, 254, 74, 1611, 238, 66, - 249, 252, 253, 297, 419, 206, 469, 296, 423, 425, - 427, 429, 431, 259, 599, 826, 261, 827, 267, 1295, - 422, 94, 1432, 167, 1597, 295, 216, 1630, 424, 1156, - 1157, 739, 1598, 1569, 1608, 426, 304, 485, 316, 288, - 72, 284, 287, 1134, 1484, 579, 486, 112, 428, 283, - 206, 430, 198, 338, 1160, 420, 294, 75, 316, 1152, - 203, 206, 1609, 1591, 467, 283, 110, 164, 34, 1610, - 1162, 420, 393, 584, 471, 463, 436, 34, 1168, 420, - 740, 394, 206, 585, 585, 468, 420, 1627, 1205, 119, - 445, 446, 1133, 297, 1628, 466, 613, 296, 1170, 420, - 524, 1629, 420, 475, 476, 1161, 590, 738, 515, 67, - 68, 1571, 69, 1492, 114, 295, 1667, 481, 1037, 285, - 484, 1163, 1246, 751, 490, 483, 122, 123, 493, 1169, - 109, 734, 308, 585, 1510, 297, 439, 1004, 740, 296, - 593, 1593, 1151, 629, 813, 216, 294, 147, 147, 1171, - 440, 1431, 495, 788, 640, 640, 738, 295, 156, 135, - 496, 591, 528, 122, 123, 156, 111, 513, 518, 535, - 848, 517, 304, 285, 519, 1614, 525, 964, 522, 1325, - 119, 1214, 576, 531, 532, 533, 534, 740, 294, 216, - 119, 67, 68, 119, 69, 168, 78, 119, 566, 755, - 119, 78, 577, 578, 640, 1278, 554, 56, 562, 592, - 563, 1615, 572, 587, 564, 217, 582, 556, 59, 820, - 122, 123, 573, 574, 119, 596, 583, 98, 570, 552, - 48, 821, 822, 553, 55, 761, 575, 581, 611, 896, - 589, 555, 57, 712, 713, 551, 45, 119, 612, 823, - 122, 123, 290, 291, 292, 119, 1194, 119, 1027, 216, - 1277, 1195, 620, 620, 639, 645, 820, 67, 68, 167, - 69, 119, 579, 621, 621, 640, 646, 1029, 821, 822, - 1576, 216, 523, 67, 68, 119, 69, 269, 657, 619, - 269, 2, 119, 1043, 492, 709, 823, 34, 216, 824, - 1172, 663, 664, 98, 665, 1490, 666, 672, 109, 588, - 119, 237, 488, 164, 1613, 67, 68, 119, 69, 98, - 667, 674, 675, 34, 119, 290, 291, 292, 524, 363, - 1059, 1060, 1061, 1420, 67, 68, 691, 69, 67, 68, - 796, 69, 126, 964, 173, 579, 824, 286, 684, 179, - 685, 1173, 34, 597, 437, 438, 293, 626, 1158, 1174, - 766, 1176, 525, 1229, 695, 466, 1404, 336, 1194, 1572, - 98, 1178, 1063, 1195, 206, 567, 1180, 710, 156, 156, - 715, 156, 1319, 1421, 206, 720, 721, 722, 174, 724, - 579, 728, 729, 730, 1605, 67, 68, 1182, 69, 1594, - 723, 180, 727, 282, 67, 68, 731, 69, 206, 1290, - 1175, 1184, 1177, 736, 737, 290, 291, 292, 644, 1186, - 481, 686, 1179, 642, 747, 748, 1086, 1181, 483, 182, - 805, 732, 27, 28, 29, 30, 31, 32, 33, 753, - 109, 1435, 1436, 285, 736, 1188, 1087, 760, 1183, 1190, - 765, 762, 764, 262, 263, 898, 1581, 290, 291, 292, - 774, 1192, 1185, 264, 1329, 773, 241, 775, 825, 13, - 1187, 338, 770, 833, 1331, 837, 188, 777, 1333, 465, - 771, 627, 794, 615, 628, 363, 616, 617, 152, 153, - 154, 1335, 795, 736, 786, 465, 1189, 806, 807, 119, - 1191, 1621, 763, 810, 67, 811, 269, 69, 119, 269, - 523, 2, 1193, 473, 34, 1330, 200, 814, 206, 576, - 206, 815, 1065, 156, 473, 1332, 1361, 817, 836, 1334, - 819, 899, 203, 797, 797, 1539, 797, 978, 980, 577, - 578, 832, 1336, 984, 27, 28, 29, 30, 31, 32, - 33, 206, 92, 27, 28, 29, 30, 31, 32, 33, - 259, 1564, 1362, 183, 850, 655, 2, 1570, 528, 122, - 123, 576, 560, 548, 67, 68, 1588, 69, 119, 184, - 549, 943, 119, 550, 995, 1002, 206, 1489, 185, 913, - 560, 577, 578, 523, 944, 220, 945, 1592, 948, 949, - 950, 199, 1540, 579, 579, 117, 579, 67, 68, 969, - 69, 92, 935, 951, 561, 1548, 221, 122, 123, 576, - 967, 525, 222, 1194, 982, 590, 590, 338, 1195, 1212, - 974, 206, 561, 997, 979, 981, 983, 971, 975, 577, - 578, 991, 233, 993, 156, 994, 234, 1346, 1009, 1348, - 999, 260, 913, 1066, 1482, 1067, 1068, 1069, 1070, 1071, - 1012, 627, 627, 1000, 1245, 1226, 473, 1227, 1228, 1014, - 1013, 67, 68, 67, 69, 590, 69, 92, 937, 938, - 1015, 1016, 1542, 200, 712, 713, 10, 11, 12, 13, - 1406, 1407, 67, 68, 1026, 903, 307, 119, 1624, 576, - 126, 1028, 1264, 1030, 206, 297, 289, 67, 68, 296, - 69, 627, 1143, 939, 1038, 298, 1655, 1062, 473, 577, - 578, 1153, 67, 34, 1041, 69, 119, 295, 98, 1072, - 299, 1073, 916, 917, 918, 797, 919, 920, 921, 922, - 1632, 923, 924, 198, 13, 925, 926, 927, 928, 791, - 792, 793, 929, 930, 642, 308, 191, 643, 294, 192, - 193, 194, 195, 300, 196, 197, 198, 1145, 1137, 301, - 1247, 1657, 1248, 27, 28, 29, 30, 31, 32, 33, - 223, 1141, 224, 225, 226, 309, 1669, 67, 68, 618, - 69, 1154, 762, 67, 68, 762, 69, 695, 310, 27, - 28, 29, 30, 31, 32, 33, 649, 650, 651, 1198, - 371, 1199, 395, 67, 68, 216, 69, 119, 418, 1633, - 931, 126, 432, 67, 68, 92, 69, 435, 27, 28, - 29, 30, 31, 32, 33, 567, 1140, 1207, 567, 447, - 1197, 464, 652, 653, 654, 1209, 152, 153, 154, 98, - 470, 1213, 940, 941, 473, 942, 1267, 250, 251, 474, - 1208, 1666, 1210, 477, 1211, 67, 68, 487, 69, 1551, - 913, 473, 1550, 712, 713, 1408, 1409, 775, 491, 775, - 494, 554, 497, 1222, 1231, 639, 1244, 777, 1239, 777, - 1241, 1619, 556, 498, 1224, 1233, 640, 514, 1282, 297, - 473, 1414, 1260, 743, 552, 503, 1221, 1230, 553, 67, - 68, 1256, 69, 119, 1257, 504, 555, 119, 1223, 1232, - 551, 295, 505, 191, 1266, 506, 192, 193, 194, 195, - 1263, 196, 197, 198, 1427, 1428, 1429, 2, 473, 1626, - 507, 156, 626, 626, 1382, 1383, 1384, 1385, 34, 913, - 508, 1312, 294, 509, 1386, 1387, 1388, 255, 256, 257, - 258, 92, 92, 92, 92, 92, 37, 152, 153, 154, - 37, 1089, 1090, 510, 37, 37, 122, 123, 576, 478, - 479, 511, 512, 92, 92, 516, 269, 269, 37, 269, - 27, 28, 29, 30, 31, 32, 33, 520, 577, 578, - 92, 92, 92, 92, 676, 677, 678, 92, 92, 499, - 500, 501, 502, 92, 638, 1296, 92, 521, 600, 37, - 601, 602, 603, 92, 92, 565, 571, 290, 291, 292, - 1075, 1076, 1077, 1078, 1079, 595, 537, 648, 1604, 1606, - 679, 680, 681, 1326, 1327, 1328, 67, 68, 659, 69, - 1337, 1338, 1339, 1340, 1341, 1342, 156, 1344, 1345, 1347, + 165, 160, 162, 227, 228, 303, 56, 548, 549, 668, + 550, 669, 120, 121, 118, 1142, 219, 59, 914, 177, + 178, 1008, 169, 170, 171, 172, 124, 125, 1240, 48, + 902, 568, 363, 55, 1293, 203, 702, 1254, 1359, 206, + 1291, 57, 1044, 186, 206, 45, 643, 598, 119, 643, + 167, 1590, 643, 78, 473, 206, 156, 204, 209, 119, + 206, 336, 135, 1619, 207, 34, 147, 599, 302, 1404, + 317, 297, 74, 206, 524, 296, 801, 580, 826, 218, + 827, 998, 232, 849, 206, 472, 109, 1292, 725, 726, + 317, 417, 306, 295, 1279, 213, 580, 164, 1581, 643, + 1318, 66, 1592, 235, 236, 254, 67, 68, 238, 69, + 249, 252, 253, 804, 419, 485, 469, 94, 423, 425, + 427, 429, 431, 259, 294, 422, 261, 1297, 267, 216, + 167, 1433, 1152, 75, 1598, 733, 734, 735, 750, 1600, + 297, 424, 283, 426, 296, 270, 304, 1134, 270, 288, + 283, 284, 287, 1156, 1157, 198, 486, 428, 72, 1601, + 430, 206, 295, 338, 1603, 420, 561, 1611, 471, 739, + 203, 1160, 242, 1162, 467, 655, 420, 164, 34, 111, + 1612, 739, 393, 584, 561, 463, 436, 34, 110, 1294, + 1613, 394, 420, 294, 420, 468, 1133, 1630, 484, 741, + 445, 446, 1493, 283, 1614, 466, 1631, 1421, 420, 590, + 286, 420, 1205, 475, 476, 1151, 1632, 613, 740, 1633, + 478, 479, 1161, 1670, 1163, 67, 68, 481, 69, 285, + 739, 937, 938, 126, 490, 483, 1567, 439, 493, 1295, + 109, 1485, 1573, 1572, 1512, 119, 1246, 206, 741, 788, + 593, 440, 755, 629, 524, 135, 523, 1422, 147, 147, + 112, 98, 495, 1605, 114, 813, 939, 1432, 168, 308, + 496, 591, 528, 1595, 1594, 156, 1325, 513, 518, 535, + 216, 517, 304, 285, 519, 1617, 525, 78, 522, 1059, + 1060, 1061, 78, 531, 532, 533, 534, 1550, 119, 1214, + 216, 119, 848, 1574, 580, 566, 217, 734, 1037, 580, + 580, 896, 580, 1278, 216, 751, 554, 56, 562, 592, + 563, 1618, 572, 587, 564, 119, 582, 556, 59, 820, + 712, 713, 573, 574, 1596, 596, 583, 216, 570, 552, + 48, 821, 822, 553, 55, 1029, 575, 581, 611, 173, + 589, 555, 57, 964, 216, 551, 45, 119, 612, 823, + 67, 68, 119, 69, 270, 1194, 174, 270, 67, 68, + 1195, 69, 620, 620, 639, 645, 167, 179, 1277, 152, + 153, 154, 119, 621, 621, 640, 646, 122, 123, 492, + 119, 1579, 34, 290, 291, 292, 98, 156, 657, 619, + 709, 2, 1043, 119, 98, 940, 941, 34, 942, 824, + 119, 663, 664, 119, 665, 1491, 666, 672, 109, 588, + 119, 67, 68, 164, 69, 119, 1616, 122, 123, 119, + 667, 674, 675, 1168, 1027, 488, 523, 67, 68, 119, + 69, 119, 122, 123, 67, 68, 691, 903, 1575, 1170, + 363, 826, 126, 827, 1172, 437, 438, 98, 684, 597, + 685, 796, 290, 291, 292, 586, 586, 626, 1158, 1174, + 766, 1176, 525, 1229, 695, 466, 1405, 180, 1194, 1597, + 98, 1178, 567, 1195, 1169, 336, 119, 710, 576, 1361, + 715, 1319, 579, 293, 182, 720, 721, 722, 188, 724, + 1171, 728, 729, 730, 1180, 1173, 1622, 1182, 577, 578, + 723, 183, 727, 1063, 297, 586, 731, 761, 296, 964, + 1175, 1290, 1177, 736, 737, 1362, 122, 123, 67, 68, + 481, 69, 1179, 643, 747, 748, 295, 1184, 483, 206, + 805, 27, 28, 29, 30, 31, 32, 33, 206, 753, + 109, 1086, 1186, 285, 1188, 1181, 156, 760, 1183, 1190, + 765, 762, 764, 1192, 206, 1436, 1437, 294, 1584, 1608, + 774, 1087, 282, 67, 68, 773, 69, 775, 825, 13, + 465, 338, 770, 833, 1329, 837, 515, 777, 1185, 184, + 771, 627, 794, 615, 628, 686, 616, 617, 152, 153, + 154, 1331, 795, 1187, 786, 1189, 363, 806, 807, 185, + 1191, 732, 1624, 810, 1193, 811, 473, 156, 156, 297, + 156, 2, 67, 743, 34, 69, 119, 814, 1333, 1335, + 206, 815, 206, 465, 899, 1330, 763, 817, 836, 119, + 819, 295, 203, 67, 68, 220, 69, 978, 980, 737, + 523, 832, 1332, 984, 27, 28, 29, 30, 31, 32, + 33, 221, 92, 27, 28, 29, 30, 31, 32, 33, + 259, 995, 294, 206, 850, 206, 1591, 898, 528, 1334, + 1336, 67, 548, 549, 69, 550, 67, 68, 200, 69, + 1541, 943, 1194, 798, 798, 1002, 798, 1195, 737, 913, + 641, 641, 820, 222, 944, 1490, 945, 233, 948, 949, + 950, 562, 712, 713, 821, 822, 122, 123, 576, 969, + 234, 92, 935, 951, 260, 67, 68, 1542, 69, 562, + 967, 525, 823, 126, 591, 591, 289, 338, 577, 578, + 974, 1551, 982, 997, 979, 981, 983, 971, 975, 763, + 641, 991, 763, 993, 1065, 994, 473, 1346, 1009, 1348, + 999, 98, 913, 1066, 1620, 1067, 1068, 1069, 1070, 1071, + 1012, 1621, 1212, 1000, 206, 1226, 1483, 1227, 1228, 1014, + 1013, 298, 824, 117, 591, 628, 628, 92, 1058, 299, + 1015, 1016, 122, 123, 576, 300, 10, 11, 12, 13, + 1554, 1544, 473, 1553, 1026, 67, 68, 301, 69, 270, + 270, 1028, 270, 1030, 577, 578, 568, 67, 68, 568, + 69, 1245, 1143, 473, 1038, 1627, 307, 1062, 649, 650, + 651, 1153, 309, 34, 1041, 628, 290, 291, 292, 1072, + 576, 1073, 916, 917, 918, 237, 919, 920, 921, 922, + 308, 923, 924, 198, 310, 925, 926, 927, 928, 395, + 577, 578, 929, 930, 652, 653, 654, 1635, 27, 28, + 29, 30, 31, 32, 33, 1407, 1408, 1145, 1137, 152, + 153, 154, 371, 27, 28, 29, 30, 31, 32, 33, + 1264, 1141, 206, 34, 1658, 798, 473, 418, 1660, 644, + 200, 1154, 67, 68, 297, 69, 1004, 695, 296, 1409, + 1410, 67, 68, 1672, 69, 676, 677, 678, 1247, 1198, + 1248, 1199, 432, 270, 270, 447, 295, 435, 191, 464, + 931, 192, 193, 194, 195, 92, 196, 197, 198, 470, + 1636, 290, 291, 292, 823, 67, 68, 1207, 69, 473, + 1197, 679, 680, 681, 474, 1209, 119, 294, 576, 638, + 477, 1213, 67, 68, 487, 69, 1267, 262, 263, 491, + 1208, 497, 1210, 514, 1211, 494, 97, 264, 577, 578, + 913, 99, 1669, 100, 498, 199, 503, 775, 504, 775, + 101, 554, 34, 1222, 1231, 639, 1244, 777, 1239, 777, + 1241, 505, 556, 506, 1224, 1233, 640, 102, 1282, 507, + 823, 508, 1260, 509, 552, 510, 1221, 1230, 553, 627, + 627, 1256, 103, 511, 1257, 119, 555, 512, 1223, 1232, + 551, 97, 250, 251, 1266, 516, 99, 520, 100, 521, + 1263, 1045, 1428, 1429, 1430, 101, 537, 2, 1046, 565, + 1047, 1048, 1049, 571, 1382, 1383, 1384, 1385, 1220, 913, + 595, 1312, 102, 976, 1386, 1387, 1388, 255, 256, 257, + 258, 92, 92, 92, 92, 92, 37, 103, 67, 156, + 37, 69, 119, 648, 37, 37, 791, 792, 793, 1050, + 1051, 1052, 670, 92, 92, 473, 1415, 659, 37, 660, + 27, 28, 29, 30, 31, 32, 33, 2, 977, 662, + 92, 92, 92, 92, 473, 1629, 671, 92, 92, 1089, + 1090, 34, 673, 92, 682, 1296, 92, 683, 690, 37, + 634, 216, 696, 92, 92, 1053, 1054, 1055, 697, 1056, + 191, 698, 1057, 192, 193, 194, 195, 699, 196, 197, + 198, 1607, 1609, 1326, 1327, 1328, 701, 704, 823, 627, + 1337, 1338, 1339, 1340, 1341, 1342, 711, 1344, 1345, 1347, 1366, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1343, 1358, - 157, 1360, 1349, 1363, 660, 1367, 662, 670, 92, 92, - 1357, 92, 92, 92, 671, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 1376, 8, 9, 673, 682, 683, - 269, 269, 216, 690, 1417, 1379, 1380, 696, 1389, 697, - 67, 68, 1058, 69, 441, 13, 442, 443, 126, 698, - 699, 701, 1393, 444, 1394, 704, 627, 614, 711, 615, - 716, 717, 616, 617, 718, 1395, 719, 104, 738, 741, - 1398, 1164, 1165, 1166, 1167, 1399, 98, 742, 744, 1617, - 754, 1405, 1422, 1423, 1424, 1425, 1618, 759, 756, 768, - 767, 1412, 2, 97, 757, 1415, 1416, 758, 99, 109, - 100, 769, 1487, 772, 780, 778, 1419, 101, 779, 109, - 109, 109, 109, 797, 798, 634, 799, 800, 808, 109, - 109, 109, 812, 809, 102, 976, 838, 1426, 1430, 27, - 28, 29, 30, 31, 32, 33, 816, 818, 40, 103, - 831, 1441, 1442, 1443, 1444, 1445, 1446, 839, 1448, 840, - 841, 290, 291, 292, 1197, 67, 68, 1500, 69, 1447, - 842, 97, 843, 126, 844, 846, 99, 1481, 100, 847, - 977, 40, 900, 901, 904, 101, 40, 905, 40, 40, - 40, 906, 40, 95, 907, 40, 96, 1483, 908, 911, - 912, 98, 102, 946, 152, 153, 154, 40, 40, 40, - 40, 1480, 915, 947, 952, 953, 913, 103, 954, 97, - 98, 955, 956, 1488, 99, 957, 100, 958, 37, 37, - 37, 959, 960, 101, 1493, 1499, 961, 962, 635, 40, - 1268, 40, 1504, 963, 965, 966, 970, 265, 127, 266, - 102, 992, 128, 129, 130, 131, 132, 985, 133, 134, - 135, 136, 996, 137, 138, 103, 1001, 139, 140, 141, - 142, 40, 34, 40, 143, 144, 1003, 1197, 1005, 1006, - 13, 1007, 1010, 145, 1011, 146, 1017, 1018, 1019, 1022, - 636, 1020, 1021, 637, 1543, 1285, 1286, 1287, 1288, 1289, - 147, 148, 149, 1583, 1023, 1045, 95, 1024, 1025, 96, - 1031, 913, 1046, 1032, 1047, 1048, 1049, 1033, 1541, 152, - 153, 154, 866, 1040, 1042, 1074, 1080, 420, 1554, 1555, - 1556, 1082, 97, 98, 1083, 150, 1085, 99, 1220, 100, - 1088, 1135, 1138, 1084, 1147, 1150, 101, 1155, 1148, 1200, - 1201, 1202, 1203, 1050, 1051, 1052, 1204, 1206, 1237, 1236, - 1242, 1238, 1243, 102, 27, 28, 29, 30, 31, 32, - 33, 1249, 1252, 1253, 1255, 1258, 1579, 1269, 103, 1651, - 1590, 1270, 1271, 1620, 1272, 1596, 1590, 1599, 866, 1603, - 1662, 1596, 1590, 1599, 1273, 1274, 1275, 1276, 1280, 1053, - 1054, 1055, 1607, 1056, 1281, 1283, 1057, 1284, 40, 40, - 40, 40, 1315, 1596, 1590, 1599, 40, 1316, 1317, 40, - 1320, 40, 40, 40, 40, 40, 40, 40, 1321, 40, - 40, 40, 40, 1322, 40, 40, 40, 1323, 40, 40, - 40, 40, 1324, 488, 40, 40, 40, 40, 913, 1373, - 1375, 1377, 1378, 1381, 40, 1390, 40, 1391, 1392, 40, - 1397, 1396, 1400, 40, 40, 655, 40, 1401, 1413, 1663, - 40, 40, 40, 40, 1418, 1433, 1658, 1160, 1162, 1168, - 1170, 1172, 1174, 1176, 1178, 1180, 2, 40, 1182, 1184, - 913, 1186, 1434, 1045, 1437, 1439, 1664, 1438, 1449, 1440, - 1046, 1451, 1047, 1048, 1049, 1450, 40, 40, 40, 40, - 40, 1452, 40, 40, 1453, 1454, 1455, 1456, 1457, 1458, - 155, 1459, 40, 40, 1460, 1461, 156, 1462, 1463, 1464, - 1465, 1467, 157, 1469, 1471, 1473, 866, 1474, 1476, 40, - 1466, 1050, 1051, 1052, 40, 40, 40, 40, 40, 40, + 716, 1360, 1349, 1363, 717, 1367, 718, 618, 92, 92, + 1357, 92, 92, 92, 719, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 1376, 738, 2, 122, 123, 576, + 499, 500, 501, 502, 1418, 1379, 1380, 223, 1389, 224, + 225, 226, 741, 104, 823, 13, 290, 291, 292, 577, + 578, 742, 1393, 754, 1394, 642, 67, 68, 643, 69, + 119, 744, 756, 635, 757, 1395, 758, 759, 67, 68, + 1398, 69, 768, 767, 769, 1399, 126, 772, 797, 778, + 779, 1406, 1075, 1076, 1077, 1078, 1079, 780, 798, 799, + 600, 1413, 601, 602, 603, 1416, 1417, 800, 812, 109, + 1268, 816, 1488, 808, 98, 13, 1420, 1364, 809, 109, + 109, 109, 109, 818, 1365, 636, 831, 838, 637, 109, + 109, 109, 1285, 1286, 1287, 1288, 1289, 1427, 1431, 27, + 28, 29, 30, 31, 32, 33, 823, 823, 839, 840, + 841, 1442, 1443, 1444, 1445, 1446, 1447, 842, 1449, 1164, + 1165, 1166, 1167, 843, 1197, 2, 823, 844, 1502, 1448, + 67, 68, 846, 69, 901, 847, 900, 1482, 823, 905, + 823, 823, 904, 823, 823, 906, 907, 1216, 1217, 1218, + 1219, 911, 867, 1423, 1424, 1425, 1426, 1484, 908, 27, + 28, 29, 30, 31, 32, 33, 912, 970, 915, 946, + 947, 10, 11, 12, 13, 952, 913, 297, 953, 1037, + 985, 296, 954, 1489, 955, 1494, 956, 40, 37, 37, + 37, 156, 152, 153, 154, 1495, 1501, 957, 441, 295, + 442, 443, 958, 1506, 959, 960, 961, 444, 962, 963, + 823, 823, 823, 823, 823, 823, 823, 965, 867, 966, + 40, 1001, 1003, 992, 996, 40, 1005, 40, 40, 40, + 294, 40, 1006, 1007, 40, 1010, 1011, 1017, 1197, 1019, + 1022, 1018, 95, 1020, 1021, 96, 40, 40, 40, 40, + 1023, 1033, 1024, 1025, 1031, 1545, 1032, 1040, 27, 28, + 29, 30, 31, 32, 33, 1042, 1586, 1074, 97, 98, + 420, 1080, 913, 99, 1085, 100, 1082, 1083, 40, 1543, + 40, 1084, 101, 8, 9, 1135, 1088, 1147, 1138, 1148, + 1557, 1558, 1559, 1150, 1155, 1200, 1201, 1202, 1203, 102, + 1204, 1206, 1237, 13, 1242, 1236, 1252, 1238, 1243, 1249, + 40, 1253, 40, 1255, 103, 614, 1258, 615, 1269, 1270, + 616, 617, 1271, 1045, 393, 1276, 1272, 1280, 1273, 1274, + 1046, 1275, 1047, 1048, 1049, 1281, 1283, 1315, 1582, 34, + 1284, 1316, 1654, 1593, 1317, 1320, 1623, 1321, 1599, 1593, + 1602, 1322, 1606, 1665, 1599, 1593, 1602, 1323, 1324, 488, + 67, 68, 1373, 69, 1375, 1610, 867, 1377, 126, 1390, + 1378, 1050, 1051, 1052, 1381, 1391, 1599, 1593, 1602, 1392, + 1396, 1397, 1401, 1402, 655, 1419, 1160, 27, 28, 29, + 30, 31, 32, 33, 1414, 1162, 98, 1168, 1170, 67, + 68, 1172, 69, 1174, 1176, 1235, 1481, 1178, 1180, 393, + 1182, 913, 1184, 1186, 1434, 1435, 1438, 1053, 1054, 1055, + 1439, 1056, 1440, 1441, 1057, 1450, 1452, 1451, 1453, 1454, + 1455, 1456, 1666, 1458, 1459, 1457, 1460, 1461, 1462, 1661, + 1463, 1464, 1465, 1466, 1467, 1468, 1470, 40, 40, 40, + 40, 1472, 1469, 913, 1474, 40, 1475, 1477, 40, 1667, + 40, 40, 40, 40, 40, 40, 40, 1471, 40, 40, + 40, 40, 1473, 40, 40, 40, 1476, 40, 40, 40, + 40, 1478, 1479, 40, 40, 40, 40, 1480, 1486, 1487, + 1492, 1497, 1498, 40, 1499, 40, 1503, 1329, 40, 290, + 291, 292, 40, 40, 1500, 40, 1331, 1504, 157, 40, + 40, 40, 40, 297, 152, 153, 154, 296, 1505, 1333, + 1335, 1508, 1496, 268, 269, 270, 40, 271, 272, 273, + 274, 1507, 275, 276, 1509, 295, 277, 278, 279, 280, + 1510, 1511, 1513, 1514, 867, 40, 40, 40, 40, 40, + 1515, 40, 40, 2, 867, 1516, 1525, 867, 1517, 1519, + 1518, 40, 40, 1520, 393, 1521, 480, 393, 393, 393, + 393, 1522, 393, 393, 393, 1523, 634, 1524, 40, 1526, + 1527, 1528, 1529, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 1468, 1478, 1477, 1470, 579, 1485, 1053, 1054, 1055, - 210, 1056, 1486, 1472, 1057, 1475, 40, 40, 40, 40, - 1479, 40, 40, 40, 40, 1491, 1495, 40, 1496, 40, - 1497, 40, 40, 40, 40, 1498, 40, 40, 579, 40, - 40, 40, 1501, 579, 1502, 579, 579, 579, 40, 579, - 1503, 1329, 579, 1331, 1333, 1335, 1506, 1216, 1217, 1218, - 1219, 1505, 1507, 1509, 579, 579, 579, 579, 1508, 1511, - 1512, 1513, 1514, 1516, 392, 1515, 40, 40, 40, 1517, - 1519, 10, 11, 12, 13, 1518, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1527, 40, 40, 579, 40, 40, 40, - 1528, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 1529, 40, 1530, 1531, 1532, 67, 68, 1533, 69, 1534, - 1538, 1535, 1536, 126, 1544, 1547, 1549, 1559, 579, 1537, - 579, 1560, 1561, 1553, 866, 1562, 909, 1577, 1580, 1631, - 1582, 1584, 1585, 1586, 866, 1622, 1623, 866, 1634, 1652, - 1653, 98, 1654, 1656, 1364, 1660, 1659, 1661, 1665, 392, - 1668, 1365, 1670, 437, 104, 438, 137, 29, 27, 28, - 29, 30, 31, 32, 33, 736, 556, 802, 858, 67, - 68, 558, 69, 399, 837, 829, 551, 126, 747, 559, - 127, 138, 754, 554, 128, 129, 130, 131, 132, 859, - 133, 134, 135, 136, 555, 137, 138, 563, 271, 139, - 140, 141, 142, 748, 74, 98, 143, 144, 866, 866, - 866, 866, 866, 866, 866, 145, 830, 146, 143, 838, - 164, 144, 240, 147, 167, 661, 589, 312, 210, 1036, - 1259, 1251, 147, 148, 149, 968, 1552, 1136, 268, 269, - 270, 1612, 271, 272, 273, 274, 1250, 275, 276, 1314, - 1410, 277, 278, 279, 280, 579, 579, 1371, 579, 152, - 153, 154, 822, 579, 1159, 910, 579, 150, 579, 579, - 579, 579, 579, 579, 579, 1149, 579, 579, 579, 579, - 1402, 579, 579, 1411, 594, 579, 579, 579, 579, 163, - 1146, 579, 579, 579, 579, 93, 239, 700, 1374, 580, - 749, 579, 166, 579, 392, 787, 579, 392, 392, 392, - 392, 579, 392, 392, 392, 986, 202, 579, 579, 579, - 579, 990, 631, 152, 153, 154, 845, 536, 822, 0, - 708, 0, 580, 67, 68, 0, 69, 580, 0, 580, - 580, 580, 0, 580, 0, 0, 580, 0, 0, 0, - 0, 0, 0, 579, 0, 579, 579, 579, 580, 580, - 580, 580, 0, 0, 0, 0, 0, 0, 0, 579, - 579, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 579, 0, 0, 0, - 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 0, - 0, 0, 580, 579, 580, 0, 579, 579, 240, 241, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 579, 579, 579, 579, 0, 579, 579, - 579, 579, 155, 243, 579, 0, 579, 0, 579, 579, - 579, 0, 0, 579, 579, 0, 579, 579, 579, 0, - 0, 0, 0, 0, 0, 579, 822, 916, 917, 918, - 0, 919, 920, 921, 922, 0, 923, 924, 198, 0, - 925, 926, 927, 928, 0, 0, 0, 929, 930, 0, - 0, 0, 0, 579, 579, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 579, 579, 0, 579, 579, 579, 0, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 0, 579, 0, - 0, 0, 822, 0, 0, 0, 0, 244, 0, 245, - 246, 247, 248, 0, 0, 0, 0, 0, 0, 580, - 580, 0, 580, 0, 0, 931, 0, 580, 0, 0, - 580, 0, 580, 580, 580, 580, 580, 580, 580, 0, - 580, 580, 580, 580, 0, 580, 580, 0, 1650, 580, - 580, 580, 580, 0, 0, 580, 580, 580, 580, 0, - 0, 0, 0, 573, 0, 580, 0, 580, 0, 0, - 580, 0, 0, 0, 0, 580, 0, 0, 0, 0, - 0, 580, 580, 580, 580, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 822, 822, 573, 0, 0, 0, - 0, 573, 0, 573, 573, 573, 0, 573, 0, 0, - 0, 0, 0, 0, 822, 0, 0, 580, 0, 580, - 580, 580, 573, 573, 573, 573, 822, 0, 822, 822, - 0, 822, 822, 580, 580, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 580, 0, 0, 0, 573, 580, 580, 580, 580, 580, + 1530, 1531, 1532, 1533, 580, 1534, 1535, 1536, 867, 867, + 867, 867, 867, 867, 867, 40, 40, 40, 40, 1537, + 40, 40, 40, 40, 1538, 1539, 40, 1540, 40, 1546, + 40, 40, 40, 40, 1549, 40, 40, 580, 40, 40, + 40, 1552, 580, 1556, 580, 580, 580, 40, 580, 1562, + 1563, 580, 1564, 1565, 1634, 1580, 1583, 1662, 1585, 909, + 1587, 1588, 1589, 580, 580, 580, 580, 1625, 1656, 635, + 1637, 1626, 1655, 1657, 1659, 40, 40, 40, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 40, 40, 580, 40, 40, 40, 1663, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 1664, + 40, 13, 1668, 1671, 104, 67, 68, 1673, 69, 438, + 29, 636, 439, 126, 637, 137, 127, 580, 803, 580, + 128, 129, 130, 131, 132, 737, 133, 134, 135, 136, + 400, 137, 138, 748, 559, 139, 140, 141, 142, 859, + 557, 98, 143, 144, 560, 1045, 552, 838, 755, 852, + 830, 145, 1046, 146, 1047, 1048, 1049, 297, 138, 749, + 860, 296, 555, 556, 564, 272, 74, 831, 147, 148, + 149, 143, 839, 165, 241, 144, 147, 168, 211, 295, + 590, 312, 661, 1036, 1251, 27, 28, 29, 30, 31, + 32, 33, 968, 1050, 1051, 1052, 1259, 1136, 1555, 1411, + 1250, 1314, 1159, 150, 1371, 290, 291, 292, 1400, 910, + 294, 1149, 594, 1403, 1412, 852, 700, 163, 93, 478, + 479, 1374, 1146, 239, 166, 749, 986, 990, 787, 536, + 202, 845, 631, 0, 0, 708, 0, 0, 0, 1053, + 1054, 1055, 0, 1056, 0, 0, 1057, 0, 394, 0, + 0, 0, 0, 0, 580, 580, 0, 580, 0, 152, + 153, 154, 580, 853, 0, 580, 0, 580, 580, 580, + 580, 580, 580, 580, 0, 580, 580, 580, 580, 0, + 580, 580, 0, 0, 580, 580, 580, 580, 0, 0, + 580, 580, 580, 580, 95, 0, 0, 96, 581, 0, + 580, 0, 580, 0, 0, 580, 0, 0, 0, 0, + 580, 0, 0, 156, 0, 0, 580, 580, 580, 580, + 97, 98, 0, 0, 0, 99, 0, 100, 0, 853, + 0, 581, 0, 394, 101, 0, 581, 0, 581, 581, + 581, 0, 581, 0, 0, 581, 0, 0, 0, 0, + 0, 102, 580, 0, 580, 580, 580, 581, 581, 581, + 581, 0, 0, 852, 0, 0, 103, 0, 580, 580, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 69, 0, 0, 580, 852, 0, 155, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 0, 0, 0, 573, 580, 573, 0, - 580, 580, 0, 0, 0, 0, 0, 0, 822, 822, - 822, 822, 822, 822, 822, 0, 0, 580, 580, 580, - 580, 0, 580, 580, 580, 580, 0, 0, 580, 1635, - 580, 0, 580, 580, 580, 0, 0, 580, 580, 0, - 580, 580, 580, 0, 1636, 0, 0, 0, 0, 580, - 0, 0, 916, 917, 918, 0, 919, 920, 921, 922, - 1637, 923, 924, 198, 0, 925, 926, 927, 928, 1638, - 0, 0, 929, 930, 0, 0, 0, 580, 580, 0, - 0, 0, 0, 1639, 1640, 1641, 1642, 0, 0, 0, - 0, 0, 0, 0, 0, 580, 580, 0, 580, 580, - 580, 0, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 0, 580, 0, 0, 1643, 1644, 1645, 1646, 1647, - 1648, 1649, 0, 0, 0, 0, 393, 0, 0, 0, - 0, 0, 0, 573, 573, 0, 573, 0, 0, 0, - 931, 573, 34, 0, 573, 0, 573, 573, 573, 573, - 573, 573, 573, 0, 573, 573, 573, 573, 0, 573, - 573, 0, 0, 573, 573, 573, 573, 0, 0, 573, - 573, 573, 573, 0, 0, 0, 0, 571, 0, 573, - 0, 573, 0, 0, 573, 0, 0, 0, 0, 573, - 0, 0, 0, 0, 0, 573, 573, 573, 573, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1235, 0, - 571, 393, 0, 803, 803, 571, 803, 571, 571, 571, - 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 573, 0, 573, 573, 573, 571, 571, 571, 571, - 0, 0, 0, 0, 0, 0, 0, 573, 573, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 573, 0, 0, 0, 571, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 0, 0, 0, - 571, 573, 571, 0, 573, 573, 0, 0, 803, 803, - 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 573, 573, 573, 573, 0, 573, 573, 573, 573, - 0, 0, 573, 803, 573, 0, 573, 573, 573, 0, - 0, 573, 573, 0, 573, 573, 573, 0, 393, 0, - 0, 393, 0, 573, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 393, 0, 0, 393, - 393, 393, 393, 0, 393, 393, 393, 0, 0, 634, - 0, 573, 573, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, - 573, 0, 573, 573, 573, 0, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 0, 573, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 803, 0, 803, - 803, 803, 803, 0, 0, 0, 0, 571, 571, 0, - 571, 0, 0, 0, 0, 571, 851, 0, 571, 0, - 571, 571, 571, 571, 571, 571, 571, 0, 571, 571, - 571, 571, 0, 571, 571, 0, 0, 571, 571, 571, - 571, 0, 0, 571, 571, 571, 571, 0, 0, 0, - 0, 569, 0, 571, 0, 571, 0, 0, 571, 0, - 0, 0, 635, 571, 0, 0, 0, 0, 0, 571, - 571, 571, 571, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 851, 0, 569, 0, 0, 0, 0, 569, - 0, 569, 569, 569, 0, 569, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 571, 0, 571, 571, 571, - 569, 569, 569, 569, 636, 0, 0, 637, 0, 0, - 0, 571, 571, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, - 0, 0, 569, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 0, 0, 0, 569, 571, 569, 0, 571, 571, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 571, 571, 571, 571, 0, - 571, 571, 571, 571, 0, 0, 571, 0, 571, 0, - 571, 571, 571, 0, 0, 571, 571, 216, 571, 571, - 571, 0, 0, 0, 0, 0, 0, 571, 0, 0, - 851, 0, 1298, 1299, 1300, 0, 1301, 1302, 1303, 1304, - 0, 1305, 1306, 198, 0, 1307, 1308, 1309, 1310, 0, - 0, 0, 0, 851, 1311, 571, 571, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 571, 571, 0, 571, 571, 571, 0, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 0, - 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 569, 569, 0, 569, 0, 0, 0, 0, 569, - 852, 0, 569, 0, 569, 569, 569, 569, 569, 569, - 569, 0, 569, 569, 569, 569, 0, 569, 569, 0, - 0, 569, 569, 569, 569, 0, 0, 569, 569, 569, - 569, 0, 0, 0, 0, 570, 0, 569, 0, 569, - 0, 0, 569, 0, 0, 0, 851, 569, 0, 0, - 0, 0, 0, 569, 569, 569, 569, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 852, 0, 570, 0, - 0, 0, 0, 570, 0, 570, 570, 570, 0, 570, - 0, 0, 0, 0, 0, 0, 0, 0, 851, 569, - 0, 569, 569, 569, 570, 570, 570, 570, 851, 0, - 0, 851, 0, 0, 0, 569, 569, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 0, 0, 0, 570, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 0, 0, 0, 570, 569, - 570, 0, 569, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 851, 851, 851, 851, 851, 851, 851, 569, - 569, 569, 569, 0, 569, 569, 569, 569, 0, 0, - 569, 0, 569, 0, 569, 569, 569, 0, 0, 569, - 569, 0, 569, 569, 569, 0, 0, 0, 0, 0, - 0, 569, 0, 0, 852, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 852, 0, 569, - 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 569, 569, 0, - 569, 569, 569, 0, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 0, 569, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 570, 570, 0, 570, 0, - 0, 0, 0, 570, 853, 0, 570, 0, 570, 570, - 570, 570, 570, 570, 570, 0, 570, 570, 570, 570, - 0, 570, 570, 0, 0, 570, 570, 570, 570, 0, - 0, 570, 570, 570, 570, 0, 0, 0, 0, 572, - 0, 570, 0, 570, 0, 0, 570, 0, 0, 0, - 852, 570, 0, 0, 0, 0, 0, 570, 570, 570, - 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 853, 0, 572, 0, 0, 0, 0, 572, 0, 572, - 572, 572, 0, 572, 0, 0, 0, 0, 0, 0, - 0, 0, 852, 570, 0, 570, 570, 570, 572, 572, - 572, 572, 852, 0, 0, 852, 0, 0, 0, 570, - 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, - 572, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 0, - 0, 0, 572, 570, 572, 0, 570, 570, 0, 0, - 0, 0, 0, 0, 0, 0, 852, 852, 852, 852, - 852, 852, 852, 570, 570, 570, 570, 0, 570, 570, - 570, 570, 0, 0, 570, 0, 570, 0, 570, 570, - 570, 0, 0, 570, 570, 0, 570, 570, 570, 0, - 0, 0, 0, 0, 0, 570, 0, 0, 853, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 853, 0, 570, 570, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 570, 570, 0, 570, 570, 570, 0, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 0, 570, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 580, 580, 580, 580, 580, 580, 580, 580, 0, 0, + 0, 581, 580, 581, 0, 580, 580, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 580, 580, 580, 580, 0, 580, 580, 580, + 580, 0, 0, 580, 0, 580, 0, 580, 580, 580, + 0, 0, 580, 580, 0, 580, 580, 580, 0, 0, + 394, 0, 0, 394, 580, 0, 0, 853, 0, 290, + 291, 292, 67, 68, 216, 69, 119, 0, 394, 0, + 126, 394, 394, 394, 394, 0, 394, 394, 394, 852, + 853, 0, 580, 580, 0, 1140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, + 580, 580, 0, 580, 580, 580, 0, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 0, 580, 0, 0, + 0, 852, 712, 713, 0, 0, 0, 0, 0, 0, + 0, 852, 0, 0, 852, 0, 0, 0, 581, 581, + 0, 581, 0, 0, 0, 0, 581, 854, 0, 581, + 0, 581, 581, 581, 581, 581, 581, 581, 0, 581, + 581, 581, 581, 0, 581, 581, 0, 0, 581, 581, + 581, 581, 0, 0, 581, 581, 581, 581, 0, 0, + 0, 0, 574, 0, 581, 0, 581, 0, 0, 581, + 0, 0, 0, 853, 581, 0, 0, 0, 0, 0, + 581, 581, 581, 581, 0, 852, 852, 852, 852, 852, + 852, 852, 0, 854, 0, 574, 152, 153, 154, 0, + 574, 0, 574, 574, 574, 0, 574, 0, 0, 0, + 0, 0, 0, 0, 0, 853, 581, 0, 581, 581, + 581, 574, 574, 574, 574, 853, 0, 0, 853, 0, + 0, 0, 581, 581, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, + 0, 0, 0, 574, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 0, 0, 0, 574, 581, 574, 0, 581, + 581, 0, 0, 0, 0, 0, 0, 0, 0, 853, + 853, 853, 853, 853, 853, 853, 581, 581, 581, 581, + 0, 581, 581, 581, 581, 0, 0, 581, 0, 581, + 0, 581, 581, 581, 0, 0, 581, 581, 216, 581, + 581, 581, 0, 0, 0, 0, 0, 0, 581, 0, + 0, 854, 0, 1298, 1299, 1300, 0, 1301, 1302, 1303, + 1304, 0, 1305, 1306, 198, 0, 1307, 1308, 1309, 1310, + 0, 0, 0, 0, 854, 1311, 581, 581, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 581, 581, 0, 581, 581, 581, + 0, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 0, 581, 0, 0, 0, 0, 0, 1615, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 574, 574, 0, 574, 0, 0, 0, 0, + 574, 0, 0, 574, 0, 574, 574, 574, 574, 574, + 574, 574, 0, 574, 574, 574, 574, 0, 574, 574, + 0, 0, 574, 574, 574, 574, 0, 0, 574, 574, + 574, 574, 0, 0, 0, 0, 572, 0, 574, 0, + 574, 0, 0, 574, 0, 0, 0, 854, 574, 0, + 0, 0, 0, 0, 574, 574, 574, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, - 572, 0, 572, 0, 0, 0, 0, 572, 0, 0, - 572, 0, 572, 572, 572, 572, 572, 572, 572, 0, - 572, 572, 572, 572, 0, 572, 572, 0, 0, 572, - 572, 572, 572, 0, 0, 572, 572, 572, 572, 0, - 0, 0, 0, 708, 0, 572, 0, 572, 0, 0, - 572, 0, 0, 0, 853, 572, 0, 0, 0, 0, - 0, 572, 572, 572, 572, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, - 0, 708, 0, 708, 708, 708, 0, 708, 0, 0, - 0, 0, 0, 0, 0, 0, 853, 572, 0, 572, - 572, 572, 708, 708, 708, 708, 853, 0, 0, 853, - 0, 0, 0, 572, 572, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 572, 0, 0, 0, 708, 572, 572, 572, 572, 572, + 67, 68, 0, 69, 572, 0, 572, 572, 572, 0, + 572, 0, 0, 0, 0, 0, 0, 0, 0, 854, + 574, 0, 574, 574, 574, 572, 572, 572, 572, 854, + 0, 0, 854, 0, 0, 0, 574, 574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 574, 0, 0, 0, 572, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 0, 0, 0, 572, + 574, 572, 0, 574, 574, 240, 241, 242, 0, 0, + 0, 0, 0, 854, 854, 854, 854, 854, 854, 854, + 574, 574, 574, 574, 0, 574, 574, 574, 574, 0, + 243, 574, 0, 574, 0, 574, 574, 574, 0, 0, + 574, 574, 0, 574, 574, 574, 0, 0, 0, 0, + 0, 0, 574, 916, 917, 918, 0, 919, 920, 921, + 922, 0, 923, 924, 198, 0, 925, 926, 927, 928, + 0, 0, 0, 929, 930, 0, 0, 0, 0, 0, + 574, 574, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 574, 574, + 0, 574, 574, 574, 0, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 0, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 244, 0, 245, 246, 247, 248, + 0, 0, 0, 0, 0, 0, 572, 572, 0, 572, + 0, 931, 0, 0, 572, 0, 0, 572, 0, 572, + 572, 572, 572, 572, 572, 572, 0, 572, 572, 572, + 572, 0, 572, 572, 0, 1653, 572, 572, 572, 572, + 0, 0, 572, 572, 572, 572, 0, 0, 0, 0, + 570, 0, 572, 0, 572, 0, 0, 572, 0, 0, + 0, 0, 572, 0, 0, 0, 0, 0, 572, 572, + 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 570, 0, 0, 0, 0, 570, 0, + 570, 570, 570, 0, 570, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 572, 0, 572, 572, 572, 570, + 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, + 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, + 0, 570, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 0, 0, 0, 708, 572, 708, 0, - 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, - 853, 853, 853, 853, 853, 853, 853, 572, 572, 572, - 572, 0, 572, 572, 572, 572, 0, 0, 572, 0, - 572, 0, 572, 572, 572, 0, 0, 572, 572, 0, - 572, 572, 572, 0, 127, 0, 0, 0, 0, 572, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 0, 139, 140, 141, 142, 0, 0, 0, - 1368, 144, 0, 0, 0, 0, 0, 572, 572, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 572, 572, 0, 572, 572, - 572, 0, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 0, 572, 0, 0, 0, 0, 0, 0, 1369, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 708, 708, 0, 708, 0, 1370, 0, - 0, 708, 0, 0, 708, 0, 708, 708, 708, 708, - 708, 708, 708, 0, 708, 708, 708, 708, 0, 708, - 708, 0, 0, 708, 708, 708, 708, 0, 0, 708, - 708, 708, 0, 0, 0, 0, 0, 707, 0, 708, - 0, 708, 0, 0, 708, 0, 0, 0, 0, 708, - 0, 0, 0, 0, 0, 708, 708, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 707, 0, 0, 0, 0, 707, 0, 707, 707, 707, - 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 0, 708, 708, 708, 707, 707, 707, 707, - 0, 0, 0, 0, 0, 0, 0, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 0, 0, 707, 708, + 0, 0, 0, 570, 572, 570, 0, 572, 572, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 572, 572, 572, 572, 0, 572, + 572, 572, 572, 0, 0, 572, 1638, 572, 0, 572, + 572, 572, 0, 0, 572, 572, 0, 572, 572, 572, + 0, 1639, 0, 0, 0, 0, 572, 0, 0, 916, + 917, 918, 0, 919, 920, 921, 922, 1640, 923, 924, + 198, 0, 925, 926, 927, 928, 1641, 0, 0, 929, + 930, 0, 0, 0, 572, 572, 0, 0, 0, 0, + 1642, 1643, 1644, 1645, 0, 0, 0, 0, 0, 0, + 0, 0, 572, 572, 0, 572, 572, 572, 0, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 0, 572, + 0, 0, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 570, 570, 0, 570, 0, 0, 0, 931, 570, 0, + 0, 570, 0, 570, 570, 570, 570, 570, 570, 570, + 0, 570, 570, 570, 570, 0, 570, 570, 0, 0, + 570, 570, 570, 570, 0, 0, 570, 570, 570, 570, + 0, 0, 0, 0, 571, 0, 570, 0, 570, 0, + 0, 570, 0, 0, 0, 0, 570, 0, 0, 0, + 0, 0, 570, 570, 570, 570, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 804, 804, + 0, 804, 571, 0, 571, 571, 571, 0, 571, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, + 570, 570, 570, 571, 571, 571, 571, 0, 0, 0, + 0, 0, 0, 0, 570, 570, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 570, 0, 0, 0, 571, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 0, 0, 0, 571, 570, 571, + 0, 570, 570, 804, 804, 804, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 570, 570, + 570, 570, 0, 570, 570, 570, 570, 0, 804, 570, + 0, 570, 0, 570, 570, 570, 0, 0, 570, 570, + 0, 570, 570, 570, 0, 127, 0, 0, 0, 0, + 570, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 0, 1368, 144, 0, 0, 0, 0, 0, 570, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 570, 570, 0, 570, + 570, 570, 0, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 0, 570, 0, 0, 0, 0, 0, 0, + 1369, 0, 804, 0, 804, 804, 804, 804, 0, 0, + 0, 0, 0, 0, 571, 571, 0, 571, 0, 1370, + 0, 0, 571, 0, 0, 571, 0, 571, 571, 571, + 571, 571, 571, 571, 0, 571, 571, 571, 571, 0, + 571, 571, 0, 0, 571, 571, 571, 571, 0, 0, + 571, 571, 571, 571, 0, 0, 0, 0, 573, 0, + 571, 0, 571, 0, 0, 571, 0, 0, 0, 0, + 571, 0, 0, 0, 0, 0, 571, 571, 571, 571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 0, 0, 0, 0, 573, 0, 573, 573, + 573, 0, 573, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 0, 571, 571, 571, 573, 573, 573, + 573, 0, 0, 0, 0, 0, 0, 0, 571, 571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 571, 0, 0, 0, 573, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 0, 0, + 0, 573, 571, 573, 0, 571, 571, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 571, 571, 571, 0, 571, 571, 571, + 571, 0, 0, 571, 0, 571, 0, 571, 571, 571, + 0, 0, 571, 571, 0, 571, 571, 571, 0, 0, + 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 571, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 571, 571, 0, 571, 571, 571, 0, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 0, 571, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 573, 573, + 0, 573, 0, 0, 0, 0, 573, 0, 0, 573, + 0, 573, 573, 573, 573, 573, 573, 573, 0, 573, + 573, 573, 573, 0, 573, 573, 0, 0, 573, 573, + 573, 573, 0, 0, 573, 573, 573, 573, 0, 0, + 0, 0, 709, 0, 573, 0, 573, 0, 0, 573, + 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, + 573, 573, 573, 573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, + 709, 0, 709, 709, 709, 0, 709, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 573, 0, 573, 573, + 573, 709, 709, 709, 709, 0, 0, 0, 0, 0, + 0, 0, 573, 573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, + 0, 0, 0, 709, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 0, 0, 0, 709, 573, 709, 0, 573, + 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 573, 573, 573, 573, + 0, 573, 573, 573, 573, 0, 0, 573, 0, 573, + 0, 573, 573, 573, 0, 0, 573, 573, 0, 573, + 573, 573, 0, 0, 0, 0, 0, 0, 573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 573, 573, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 573, 573, 0, 573, 573, 573, + 0, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 709, 709, 0, 709, 0, 0, 0, 0, + 709, 0, 0, 709, 0, 709, 709, 709, 709, 709, + 709, 709, 0, 709, 709, 709, 709, 0, 709, 709, + 0, 0, 709, 709, 709, 709, 0, 0, 709, 709, + 709, 0, 0, 0, 0, 0, 708, 0, 709, 0, + 709, 0, 0, 709, 0, 0, 0, 0, 709, 0, + 0, 0, 0, 0, 709, 709, 709, 709, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 0, 0, 0, 0, 708, 0, 708, 708, 708, 0, + 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 709, 0, 709, 709, 709, 708, 708, 708, 708, 0, + 0, 0, 0, 0, 0, 0, 709, 709, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 709, 0, 0, 0, 708, 709, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, + 709, 709, 709, 709, 709, 709, 0, 0, 0, 708, + 709, 708, 0, 709, 709, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 709, 709, 709, 709, 0, 709, 709, 709, 709, 0, + 0, 709, 0, 709, 0, 709, 709, 709, 0, 0, + 709, 709, 0, 709, 709, 709, 0, 0, 0, 0, + 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 709, 709, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 709, 709, + 0, 709, 709, 709, 0, 709, 709, 709, 709, 709, + 709, 709, 709, 709, 0, 709, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 708, 708, 0, 708, + 0, 0, 0, 0, 708, 0, 0, 708, 0, 708, + 708, 708, 708, 708, 708, 708, 0, 708, 708, 708, + 708, 0, 708, 708, 0, 0, 708, 708, 708, 708, + 0, 0, 708, 708, 708, 0, 0, 0, 0, 0, + 716, 0, 708, 0, 708, 0, 0, 708, 0, 0, + 0, 0, 708, 0, 0, 0, 0, 0, 708, 708, + 708, 708, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 716, 0, 0, 0, 0, 0, 0, + 716, 716, 0, 0, 716, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 708, 0, 708, 708, 708, 716, + 0, 716, 716, 0, 0, 0, 0, 0, 0, 0, + 708, 708, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 708, 0, 0, + 0, 0, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 0, 0, 0, - 707, 708, 707, 0, 708, 708, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 708, 708, 708, 0, 708, 708, 708, 708, - 0, 0, 708, 0, 708, 0, 708, 708, 708, 0, - 0, 708, 708, 0, 708, 708, 708, 0, 0, 0, - 0, 0, 0, 708, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 716, 708, 716, 0, 708, 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 708, 708, 708, 708, 0, 708, + 708, 708, 708, 0, 0, 708, 0, 708, 0, 708, + 708, 708, 0, 0, 708, 708, 0, 708, 708, 708, + 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 708, 708, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, - 708, 0, 708, 708, 708, 0, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 0, 708, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 707, 707, 0, - 707, 0, 0, 0, 0, 707, 0, 0, 707, 0, - 707, 707, 707, 707, 707, 707, 707, 0, 707, 707, - 707, 707, 0, 707, 707, 0, 0, 707, 707, 707, - 707, 0, 0, 707, 707, 707, 0, 0, 0, 0, - 0, 715, 0, 707, 0, 707, 0, 0, 707, 0, - 0, 0, 0, 707, 0, 0, 0, 0, 0, 707, - 707, 707, 707, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, - 0, 715, 715, 0, 0, 715, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 0, 707, 707, 707, - 715, 0, 715, 715, 0, 0, 0, 0, 0, 0, - 0, 707, 707, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1494, 707, 0, - 0, 0, 0, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 0, 0, 0, 715, 707, 715, 0, 707, 707, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 707, 707, 707, 0, - 707, 707, 707, 707, 0, 0, 707, 0, 707, 0, - 707, 707, 707, 0, 0, 707, 707, 0, 707, 707, - 707, 0, 0, 0, 0, 0, 0, 707, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 707, 707, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 298, 707, 707, 0, 707, 707, 707, 0, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 0, - 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 715, 715, 0, 715, 0, 0, 0, 0, 715, - 0, 0, 715, 0, 715, 715, 715, 715, 715, 715, - 715, 0, 715, 715, 715, 715, 0, 715, 715, 0, - 0, 715, 715, 715, 715, 0, 0, 715, 715, 715, - 0, 0, 52, 0, 0, 0, 0, 715, 0, 715, - 0, 0, 715, 0, 0, 0, 0, 715, 0, 0, - 0, 0, 0, 715, 715, 715, 715, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1045, 0, 0, 0, 0, 0, 0, 1046, 0, 1047, - 1048, 1049, 0, 0, 0, 0, 0, 0, 0, 715, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 715, 715, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1050, 1051, - 1052, 0, 715, 0, 0, 0, 0, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 52, 0, 52, 0, 715, - 0, 0, 715, 715, 1053, 1054, 1055, 0, 1056, 0, - 0, 1057, 0, 0, 0, 0, 0, 0, 0, 715, - 715, 715, 715, 0, 715, 715, 715, 715, 0, 0, - 715, 0, 715, 0, 715, 715, 715, 0, 0, 715, - 715, 0, 715, 715, 715, 298, 0, 0, 0, 0, - 0, 715, 298, 0, 298, 298, 298, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, - 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 298, 298, 298, 0, 715, 715, 0, - 715, 715, 715, 0, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 0, 715, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 52, 0, 0, 0, 298, - 298, 298, 0, 298, 0, 52, 298, 0, 0, 52, - 52, 52, 0, 52, 52, 52, 52, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 0, 52, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 585, - 127, 586, 54, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 52, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 147, 148, 149, 0, 52, 52, 0, 0, - 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 52, 52, + 0, 0, 0, 0, 708, 708, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 708, 708, 0, 708, 708, 708, 0, 708, + 708, 708, 708, 708, 708, 708, 708, 708, 0, 708, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 716, 716, 0, 716, 0, 0, 0, 0, 716, 0, + 0, 716, 0, 716, 716, 716, 716, 716, 716, 716, + 0, 716, 716, 716, 716, 0, 716, 716, 0, 0, + 716, 716, 716, 716, 0, 0, 716, 716, 716, 0, + 0, 52, 0, 0, 0, 0, 716, 0, 716, 0, + 0, 716, 0, 0, 0, 0, 716, 0, 0, 0, + 0, 0, 716, 716, 716, 716, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 0, 0, 0, 0, 0, 0, 299, 0, 299, 299, + 299, 0, 0, 0, 0, 0, 0, 0, 716, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 716, 716, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 299, 299, 299, + 0, 716, 0, 0, 0, 0, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 716, 52, 0, 52, 0, 716, 0, + 0, 716, 716, 299, 299, 299, 0, 299, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 716, 716, + 716, 716, 0, 716, 716, 716, 716, 0, 0, 716, + 0, 716, 0, 716, 716, 716, 0, 0, 716, 716, + 0, 716, 716, 716, 0, 0, 0, 0, 0, 0, + 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 716, 716, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 716, 716, 0, 716, + 716, 716, 0, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 0, 716, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 52, 52, + 52, 0, 52, 52, 52, 52, 0, 52, 52, 52, + 0, 52, 52, 52, 52, 0, 0, 52, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 585, 127, + 586, 54, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 52, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 147, 148, 149, 0, 52, 52, 0, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 0, 0, 0, 52, + 52, 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 54, 0, 54, 0, 0, - 835, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 52, 52, 0, 52, 52, 52, 52, 0, - 0, 52, 0, 52, 0, 52, 52, 52, 52, 0, - 52, 52, 0, 52, 52, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 52, 52, 52, 54, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 52, 52, 52, 0, 52, 52, 52, 52, 0, 0, + 52, 0, 52, 0, 52, 52, 52, 52, 0, 52, + 52, 0, 52, 52, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 52, 0, 0, 0, 0, 0, 0, 0, 372, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, - 0, 52, 52, 52, 0, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 0, 0, 0, 0, 373, 0, - 0, 0, 374, 0, 0, 375, 376, 0, 0, 0, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 54, 0, 0, 54, 0, 0, 389, 0, - 0, 390, 155, 0, 0, 54, 0, 0, 391, 54, - 54, 54, 0, 54, 54, 54, 54, 392, 54, 54, - 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 55, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 54, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 54, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 147, 148, 149, 0, 54, 54, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 52, 0, 0, 0, 0, 0, 0, 0, 372, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, + 52, 52, 52, 0, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 0, 0, 0, 0, 373, 0, 0, + 0, 374, 0, 0, 375, 376, 0, 0, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 54, 0, 0, 54, 0, 0, 389, 0, 0, + 390, 155, 0, 0, 54, 0, 0, 391, 54, 54, + 54, 0, 54, 54, 54, 54, 392, 54, 54, 54, + 0, 54, 54, 54, 54, 0, 0, 54, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 127, + 266, 55, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 54, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 54, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 147, 148, 149, 0, 54, 54, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 0, 0, 0, 54, + 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 55, 0, 55, 0, 0, - 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 54, 54, 54, 0, 54, 54, 54, 54, 0, - 0, 54, 0, 54, 0, 54, 54, 54, 54, 0, - 54, 54, 0, 54, 54, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 54, 0, 0, 0, 0, 0, 0, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 0, 54, 54, 54, 0, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 0, 0, 0, 0, 105, 0, - 0, 0, 105, 0, 0, 105, 105, 0, 0, 0, + 54, 54, 54, 54, 55, 0, 55, 0, 0, 835, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 54, 54, 54, 0, 54, 54, 54, 54, 0, 0, + 54, 0, 54, 0, 54, 54, 54, 54, 0, 54, + 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 105, 0, 105, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 54, 0, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, + 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 0, 0, 0, 0, 105, 0, 0, + 0, 105, 0, 0, 105, 105, 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 55, 0, 0, 55, 0, 0, 105, 0, - 0, 105, 155, 0, 0, 55, 0, 0, 105, 55, - 55, 55, 0, 55, 55, 55, 55, 105, 55, 55, - 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 0, 56, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 55, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, - 0, 55, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 147, 148, 149, 0, 55, 55, 0, 0, - 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 55, 55, + 105, 55, 0, 0, 55, 0, 0, 105, 0, 0, + 105, 155, 0, 0, 55, 0, 0, 105, 55, 55, + 55, 0, 55, 55, 55, 55, 105, 55, 55, 55, + 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, + 0, 56, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 55, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 55, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 147, 148, 149, 0, 55, 55, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, + 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 56, 0, 56, 0, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, - 0, 55, 0, 55, 0, 55, 55, 55, 55, 0, - 55, 55, 0, 55, 55, 55, 0, 0, 0, 0, + 55, 55, 55, 55, 56, 0, 56, 0, 0, 909, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, + 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, + 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, - 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, + 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 56, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 56, 0, 0, 0, 56, - 56, 56, 0, 56, 56, 56, 56, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 0, 56, 56, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 0, 53, 0, 232, 232, 232, 232, 232, 0, - 232, 232, 232, 232, 56, 232, 232, 0, 0, 232, - 232, 232, 232, 0, 0, 0, 232, 232, 0, 0, - 0, 56, 0, 0, 0, 232, 0, 232, 0, 0, + 0, 56, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 56, 0, 0, 0, 56, 56, + 56, 0, 56, 56, 56, 56, 0, 56, 56, 56, + 0, 56, 56, 56, 56, 0, 0, 56, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, + 0, 53, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 56, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, + 56, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 232, 232, 232, 0, 56, 56, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 147, 148, 149, 0, 56, 56, 0, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 232, 56, 56, + 0, 0, 0, 0, 0, 0, 150, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 0, 0, 0, 56, + 56, 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 53, 0, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 56, 56, 0, 56, 56, 56, 56, 0, - 0, 56, 0, 56, 0, 56, 56, 56, 56, 0, - 56, 56, 0, 56, 56, 56, 0, 0, 0, 0, + 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 56, 56, 56, 0, 56, 56, 56, 56, 0, 0, + 56, 0, 56, 0, 56, 56, 56, 56, 0, 56, + 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 0, 56, 56, 56, 0, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 232, 0, 0, 53, 0, 0, 0, 53, - 53, 53, 0, 53, 53, 53, 53, 0, 53, 53, - 53, 0, 53, 53, 53, 53, 0, 0, 53, 53, - 53, 0, 0, 0, 61, 0, 61, 0, 0, 0, - 0, 34, 397, 97, 0, 0, 0, 0, 99, 0, - 100, 0, 0, 0, 53, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 102, 398, 0, 399, 400, 401, - 402, 403, 0, 0, 0, 0, 404, 0, 0, 103, - 0, 53, 0, 0, 0, 405, 53, 53, 0, 0, - 406, 0, 407, 0, 0, 0, 0, 547, 0, 0, - 0, 0, 0, 0, 408, 409, 410, 411, 412, 413, - 414, 415, 0, 0, 0, 0, 0, 416, 53, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, + 56, 56, 56, 0, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 0, 0, 0, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 53, 0, 0, 0, 53, 53, + 53, 0, 53, 53, 53, 53, 0, 53, 53, 53, + 0, 53, 53, 53, 53, 0, 0, 53, 53, 53, + 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, + 34, 397, 97, 0, 0, 0, 0, 99, 0, 100, + 0, 0, 0, 53, 0, 0, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 0, 0, 102, 398, 0, 399, 400, 401, 402, + 403, 0, 0, 0, 0, 404, 0, 0, 103, 0, + 53, 0, 0, 0, 405, 53, 53, 0, 0, 406, + 0, 407, 0, 0, 0, 0, 547, 0, 0, 0, + 0, 0, 0, 408, 409, 410, 411, 412, 413, 414, + 415, 0, 0, 0, 0, 0, 416, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 0, 0, 0, 53, + 53, 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 62, 0, 0, 0, - 0, 61, 0, 0, 61, 0, 0, 0, 0, 0, - 53, 53, 53, 53, 61, 53, 53, 53, 53, 0, - 0, 53, 0, 53, 0, 53, 53, 53, 53, 0, - 53, 53, 0, 53, 53, 53, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, - 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 2, 0, 0, 53, 53, - 0, 53, 53, 53, 0, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 538, 0, 0, 61, 61, 61, + 53, 53, 53, 53, 0, 62, 0, 0, 0, 0, + 61, 0, 0, 61, 0, 0, 0, 0, 0, 53, + 53, 53, 53, 61, 53, 53, 53, 53, 0, 0, + 53, 0, 53, 0, 53, 53, 53, 53, 0, 53, + 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 53, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 0, 0, 0, 2, 0, 0, 53, 53, 0, + 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 538, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 0, 0, 0, 61, 61, + 61, 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 61, 61, 61, 0, 61, 61, 61, 61, 0, 0, - 61, 0, 61, 0, 61, 61, 61, 61, 0, 61, - 61, 0, 61, 61, 61, 0, 0, 0, 0, 0, - 0, 539, 0, 5, 6, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 540, 0, 0, 0, 0, - 541, 0, 0, 8, 9, 0, 0, 0, 0, 61, - 61, 0, 0, 0, 0, 0, 62, 0, 0, 62, - 10, 11, 12, 13, 0, 542, 543, 61, 61, 62, - 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 0, 0, 544, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 65, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, + 61, 61, 61, 0, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 61, + 61, 61, 0, 61, 61, 61, 61, 0, 0, 61, + 0, 61, 0, 61, 61, 61, 61, 0, 61, 61, + 0, 61, 61, 61, 0, 0, 0, 0, 0, 0, + 539, 0, 5, 6, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 540, 0, 0, 0, 0, 541, + 0, 0, 8, 9, 0, 0, 0, 0, 61, 61, + 0, 0, 0, 0, 0, 62, 0, 0, 62, 10, + 11, 12, 13, 0, 542, 543, 61, 61, 62, 61, + 61, 61, 0, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 0, 0, 544, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 65, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 545, + 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, - 66, 0, 0, 0, 0, 65, 0, 0, 65, 0, - 0, 0, 0, 0, 62, 62, 62, 62, 65, 62, - 62, 62, 62, 0, 0, 62, 0, 62, 0, 62, - 62, 62, 62, 0, 62, 62, 0, 62, 62, 62, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 62, 62, 0, 62, 62, 62, 0, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 66, 0, 0, 0, 0, + 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 0, 66, + 0, 0, 0, 0, 65, 0, 0, 65, 0, 0, + 0, 0, 0, 62, 62, 62, 62, 65, 62, 62, + 62, 62, 0, 0, 62, 0, 62, 0, 62, 62, + 62, 62, 0, 62, 62, 0, 62, 62, 62, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, - 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, + 0, 0, 0, 62, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 62, 62, 0, 62, 62, 62, 0, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, - 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 65, 65, 65, 0, 65, 65, - 65, 65, 0, 0, 65, 0, 65, 0, 65, 65, - 65, 65, 0, 65, 65, 0, 65, 65, 65, 0, - 0, 0, 0, 0, 584, 584, 0, 0, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 584, 0, 584, 0, 0, 0, 0, - 0, 0, 0, 65, 65, 0, 0, 0, 0, 0, - 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 65, 65, 66, 65, 65, 65, 0, 65, 65, + 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 584, 0, 584, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 65, 65, 65, 0, 65, 65, 65, + 65, 0, 0, 65, 0, 65, 0, 65, 65, 65, + 65, 0, 65, 65, 0, 65, 65, 65, 0, 0, + 0, 0, 0, 585, 585, 0, 0, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 585, 0, 585, 0, 0, 0, 0, 0, + 0, 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 65, 65, 66, 65, 65, 65, 0, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 585, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 66, 66, 66, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 0, 0, 0, 66, 66, 66, + 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 0, 0, 582, 0, 0, 0, 0, - 0, 0, 0, 0, 584, 584, 0, 584, 66, 66, - 66, 66, 0, 66, 66, 66, 66, 584, 584, 66, - 0, 66, 0, 66, 66, 66, 66, 0, 66, 66, - 0, 66, 66, 66, 0, 582, 582, 0, 0, 582, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 582, 584, 582, 0, 0, 0, - 584, 0, 0, 0, 0, 0, 584, 0, 66, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 66, 66, 0, 66, - 66, 66, 0, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, - 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 584, 584, 0, 0, - 0, 584, 584, 584, 584, 584, 584, 584, 0, 0, - 0, 0, 584, 0, 0, 584, 584, 0, 0, 583, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 584, 584, 584, 584, 0, 584, 584, 584, - 584, 0, 0, 584, 0, 584, 0, 584, 584, 584, - 0, 0, 584, 584, 0, 584, 584, 584, 0, 583, - 583, 0, 0, 583, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, - 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 584, 584, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 582, 582, - 584, 584, 0, 584, 584, 584, 0, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 583, 0, 583, 0, 582, 0, 0, 0, - 0, 582, 0, 0, 0, 0, 0, 582, 0, 0, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 0, 143, 144, - 0, 0, 33, 0, 0, 0, 0, 145, 0, 146, + 66, 66, 0, 0, 583, 0, 0, 0, 0, 0, + 0, 0, 0, 585, 585, 0, 585, 66, 66, 66, + 66, 0, 66, 66, 66, 66, 585, 585, 66, 0, + 66, 0, 66, 66, 66, 66, 0, 66, 66, 0, + 66, 66, 66, 0, 583, 583, 0, 0, 583, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 583, 585, 583, 0, 0, 0, 585, + 0, 0, 0, 0, 0, 585, 0, 66, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 66, 66, 0, 66, 66, + 66, 0, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 583, 0, 583, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, + 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, + 585, 585, 585, 585, 585, 585, 585, 0, 0, 0, + 585, 585, 585, 585, 585, 585, 585, 0, 0, 0, + 0, 585, 0, 0, 585, 585, 0, 0, 584, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 585, 585, 585, 585, 0, 585, 585, 585, 585, + 0, 0, 585, 0, 585, 0, 585, 585, 585, 0, + 0, 585, 585, 0, 585, 585, 585, 0, 584, 584, + 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 584, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 585, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 583, 583, 585, + 585, 0, 585, 585, 585, 0, 585, 585, 585, 585, + 585, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 582, 582, 582, 582, 582, 582, 582, 582, 582, - 582, 582, 582, 582, 582, 582, 582, 582, 582, 150, - 0, 33, 582, 582, 582, 582, 582, 582, 582, 0, - 0, 0, 0, 582, 0, 0, 582, 582, 0, 0, + 0, 584, 0, 584, 0, 583, 0, 0, 0, 0, + 583, 0, 0, 0, 0, 0, 583, 0, 0, 0, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, + 0, 33, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 582, 582, 582, 582, 0, 582, 582, - 582, 582, 583, 583, 582, 0, 582, 0, 582, 582, - 582, 0, 0, 582, 582, 0, 582, 582, 582, 0, - 0, 0, 0, 0, 0, 33, 0, 33, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 583, 0, 0, 0, 0, 583, 0, 0, 0, 0, - 0, 583, 0, 582, 582, 0, 0, 0, 0, 0, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 150, 0, + 33, 583, 583, 583, 583, 583, 583, 583, 0, 0, + 0, 0, 583, 0, 0, 583, 583, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 583, 583, 583, 583, 0, 583, 583, 583, + 583, 584, 584, 583, 0, 583, 0, 583, 583, 583, + 0, 0, 583, 583, 0, 583, 583, 583, 0, 0, + 0, 0, 0, 0, 33, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, + 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, + 584, 0, 583, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 582, 582, 0, 582, 582, 582, 0, 582, 582, - 582, 582, 582, 582, 582, 582, 582, 0, 0, 0, + 583, 583, 0, 583, 583, 583, 0, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 583, 583, 583, 583, 583, - 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, - 583, 583, 583, 0, 155, 0, 583, 583, 583, 583, - 583, 583, 583, 0, 0, 0, 0, 583, 0, 0, - 583, 583, 33, 34, 0, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 583, 583, 583, - 583, 0, 583, 583, 583, 583, 0, 0, 583, 0, - 583, 0, 583, 583, 583, 0, 0, 583, 583, 0, - 583, 583, 583, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 34, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 583, 583, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 583, 583, 0, 583, 583, - 583, 0, 583, 583, 583, 583, 583, 583, 583, 583, - 583, 0, 0, 0, 0, 0, 0, 785, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 0, 0, 0, 0, 584, 584, 584, 584, 584, 584, + 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, + 584, 584, 0, 155, 0, 584, 584, 584, 584, 584, + 584, 584, 0, 0, 0, 0, 584, 0, 0, 584, + 584, 33, 34, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 584, 584, 584, 584, + 0, 584, 584, 584, 584, 0, 0, 584, 0, 584, + 0, 584, 584, 584, 0, 0, 584, 584, 0, 584, + 584, 584, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 34, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 584, 584, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 584, 584, 0, 584, 584, 584, + 0, 584, 584, 584, 584, 584, 584, 584, 584, 584, + 0, 0, 0, 0, 0, 0, 786, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 0, 0, 0, 33, + 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 785, 0, 0, 0, + 33, 33, 33, 33, 0, 786, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 33, 33, 33, 0, 33, 33, 33, 33, 0, 0, + 33, 0, 33, 34, 0, 33, 34, 0, 0, 0, + 0, 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 33, 33, 0, 33, 33, 33, 33, 0, - 0, 33, 0, 33, 34, 0, 33, 34, 0, 0, - 0, 0, 0, 33, 33, 33, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, + 0, 786, 0, 0, 0, 0, 0, 0, 0, 33, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 33, 33, 0, + 33, 33, 33, 0, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 785, 0, 785, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 33, 33, - 0, 33, 33, 33, 0, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, + 0, 800, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, - 787, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 785, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 785, 799, 34, 34, 34, 34, 0, 34, 34, 34, - 34, 0, 0, 34, 0, 34, 0, 0, 34, 0, - 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, - 0, 0, 0, 0, 787, 0, 787, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 0, 0, 0, 799, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, - 0, 0, 0, 791, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 785, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, - 785, 0, 0, 0, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, - 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, - 0, 787, 0, 0, 0, 785, 785, 785, 785, 0, - 785, 785, 785, 785, 787, 0, 785, 0, 785, 0, - 0, 785, 0, 0, 0, 0, 0, 0, 785, 785, - 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 791, 0, 791, 0, - 0, 0, 0, 787, 0, 785, 785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 785, 785, 0, 785, 785, 785, 0, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 787, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 787, 787, 0, 0, 0, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 787, 0, 0, 789, 0, 0, 0, - 0, 799, 799, 799, 799, 799, 0, 0, 0, 787, - 787, 787, 787, 791, 787, 787, 787, 787, 0, 0, - 787, 0, 787, 799, 799, 787, 791, 0, 0, 0, - 0, 0, 787, 787, 787, 0, 0, 0, 0, 0, - 799, 799, 799, 799, 0, 0, 0, 799, 799, 0, - 0, 0, 0, 799, 0, 799, 799, 0, 0, 0, - 789, 0, 789, 799, 799, 0, 0, 0, 0, 787, - 787, 0, 0, 0, 0, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 787, 787, 0, - 787, 787, 787, 0, 787, 787, 787, 787, 787, 787, - 787, 787, 787, 0, 0, 0, 0, 0, 0, 0, - 793, 0, 0, 0, 0, 0, 0, 0, 799, 799, - 0, 799, 799, 799, 0, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 0, 0, 793, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, - 0, 791, 791, 791, 791, 0, 791, 791, 791, 791, - 789, 0, 791, 0, 791, 0, 0, 791, 0, 0, - 0, 0, 0, 0, 791, 791, 791, 0, 0, 0, - 0, 0, 0, 793, 0, 793, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, - 0, 791, 791, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 791, - 791, 0, 791, 791, 791, 0, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 789, 0, 0, 0, 789, 789, 789, 789, 789, 789, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 793, 743, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 789, 789, 789, 789, 0, - 789, 789, 789, 789, 0, 0, 789, 0, 789, 0, - 0, 789, 0, 0, 0, 0, 0, 0, 789, 789, - 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 793, 0, 0, 743, 0, 743, 0, 0, - 0, 0, 0, 0, 0, 789, 789, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 789, 789, 0, 789, 789, 789, 0, - 789, 789, 789, 789, 789, 789, 789, 789, 789, 0, - 0, 0, 0, 0, 0, 745, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 0, 0, 0, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 0, 745, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 793, - 793, 793, 0, 793, 793, 793, 793, 0, 0, 793, - 0, 793, 743, 0, 793, 743, 0, 0, 0, 0, - 0, 793, 793, 793, 0, 743, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, - 745, 0, 0, 0, 0, 0, 0, 0, 793, 793, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 743, 0, 793, 793, 0, 793, - 793, 793, 0, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 0, 0, 0, 743, - 743, 743, 743, 743, 743, 743, 0, 0, 0, 0, - 743, 0, 0, 743, 743, 745, 0, 0, 745, 400, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 0, - 743, 743, 743, 743, 400, 743, 743, 743, 743, 0, - 0, 743, 0, 743, 0, 743, 743, 743, 0, 0, - 743, 743, 0, 743, 743, 743, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 745, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 743, 743, 0, 0, 0, 0, 0, 0, 400, 0, - 400, 0, 0, 0, 0, 0, 0, 0, 743, 743, - 0, 743, 743, 743, 0, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 0, - 0, 0, 745, 745, 745, 745, 745, 745, 745, 0, - 0, 0, 0, 745, 0, 0, 745, 745, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 0, 745, 745, 745, 745, 0, 745, 745, - 745, 745, 0, 0, 745, 0, 745, 0, 745, 745, - 745, 0, 0, 745, 745, 0, 745, 745, 745, 0, - 0, 0, 0, 0, 0, 400, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 745, 745, 442, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 745, 745, 208, 745, 745, 745, 0, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 400, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 208, 0, 208, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 0, - 0, 0, 400, 400, 400, 400, 400, 400, 400, 150, - 151, 0, 442, 400, 0, 442, 400, 400, 208, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 400, 400, 400, 400, 0, 400, 400, - 400, 400, 0, 0, 400, 0, 400, 0, 0, 400, - 0, 0, 0, 0, 210, 0, 400, 400, 400, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 0, 0, 0, 400, 400, 0, 0, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 400, 210, 400, 400, 400, 0, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 0, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 208, 0, 0, 442, - 442, 442, 442, 442, 442, 442, 0, 0, 0, 210, - 442, 0, 0, 442, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 94, 0, 0, - 442, 442, 442, 442, 0, 442, 442, 442, 442, 0, - 93, 442, 0, 442, 0, 208, 442, 0, 0, 0, - 0, 0, 0, 442, 442, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, - 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, - 0, 442, 442, 442, 0, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 208, 208, 208, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, - 0, 208, 94, 0, 208, 208, 0, 210, 0, 0, - 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 208, 208, 208, 0, 208, 208, 208, 208, - 0, 0, 0, 0, 208, 0, 0, 208, 93, 0, - 0, 0, 0, 0, 208, 208, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 208, 0, 208, 208, 208, 0, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, - 0, 0, 0, 210, 210, 210, 210, 210, 0, 0, - 94, 0, 48, 0, 0, 0, 0, 210, 0, 0, - 0, 0, 210, 0, 0, 210, 210, 0, 0, 0, - 0, 0, 0, 0, 93, 93, 93, 93, 93, 0, - 47, 0, 210, 210, 210, 210, 0, 210, 210, 210, - 210, 0, 0, 0, 0, 210, 93, 93, 210, 0, - 0, 0, 0, 0, 0, 210, 210, 210, 0, 0, - 0, 48, 0, 93, 93, 93, 93, 0, 0, 0, - 93, 93, 0, 0, 0, 0, 93, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 93, 93, 0, 0, - 0, 0, 210, 210, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 1131, 0, 0, 0, 0, 0, 0, - 210, 210, 0, 210, 210, 210, 0, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 0, 48, 0, 0, - 0, 0, 0, 796, 0, 0, 94, 94, 94, 94, - 94, 93, 93, 0, 93, 93, 93, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 49, 94, 94, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 94, 94, 94, 0, - 0, 0, 94, 94, 0, 0, 0, 0, 94, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 94, 94, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 94, 0, 94, 94, 94, 0, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 796, - 796, 796, 796, 796, 0, 48, 0, 0, 0, 0, - 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 796, 796, 0, 0, 0, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 796, 796, - 796, 796, 0, 0, 0, 796, 796, 0, 1091, 0, - 0, 796, 0, 0, 796, 0, 0, 0, 0, 51, - 0, 796, 796, 0, 0, 0, 0, 1092, 1093, 0, - 1094, 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, - 1102, 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 47, 47, 47, 0, 796, 796, 51, 796, - 796, 796, 0, 796, 796, 796, 796, 796, 796, 796, - 796, 796, 47, 47, 0, 0, 0, 0, 0, 0, - 0, 48, 48, 48, 48, 48, 0, 0, 0, 47, - 47, 47, 47, 50, 0, 0, 47, 47, 0, 0, - 49, 0, 47, 48, 48, 47, 0, 0, 0, 0, - 799, 0, 47, 47, 0, 0, 0, 0, 0, 0, - 48, 48, 48, 48, 51, 0, 0, 48, 48, 0, - 0, 0, 0, 48, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 47, 799, - 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, - 1111, 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, - 0, 0, 0, 0, 0, 799, 49, 49, 49, 49, - 49, 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 49, 49, 49, 49, 0, - 0, 0, 49, 49, 0, 0, 0, 0, 49, 0, - 0, 49, 0, 0, 0, 0, 0, 0, 49, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 49, 0, 49, 49, 49, 0, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, - 50, 50, 0, 799, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 50, 0, 0, 0, 0, 0, 0, 0, 51, 51, - 51, 51, 51, 0, 0, 0, 50, 50, 50, 50, - 0, 0, 0, 50, 50, 0, 0, 0, 0, 50, - 51, 51, 50, 0, 0, 0, 0, 0, 0, 50, - 50, 0, 0, 0, 0, 0, 0, 51, 51, 51, - 51, 0, 157, 0, 51, 51, 0, 297, 0, 0, - 51, 296, 0, 51, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 0, 0, 0, 295, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 50, 0, 50, 50, 50, - 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 480, 0, 0, 0, 0, 0, 0, 0, 0, 799, - 799, 799, 799, 799, 0, 51, 51, 0, 51, 51, - 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 799, 799, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 799, 799, - 799, 799, 0, 0, 0, 799, 799, 0, 0, 0, - 0, 799, 0, 0, 799, 0, 0, 0, 0, 0, - 0, 799, 799, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 297, - 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 799, 799, 0, 799, - 799, 799, 0, 799, 799, 799, 799, 799, 799, 799, - 799, 799, 480, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 34, 34, 34, 34, 34, 34, 34, 0, 0, 788, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 786, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, + 800, 34, 34, 34, 34, 0, 34, 34, 34, 34, + 0, 0, 34, 0, 34, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, + 0, 0, 0, 788, 0, 788, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 786, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 34, 0, 0, 0, 800, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 34, 0, 34, 34, 34, 0, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, + 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, + 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, + 788, 0, 0, 0, 786, 786, 786, 786, 0, 786, + 786, 786, 786, 788, 0, 786, 0, 786, 0, 0, + 786, 0, 0, 0, 0, 0, 0, 786, 786, 786, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 792, 0, 792, 0, 0, + 0, 0, 788, 0, 786, 786, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 786, 786, 0, 786, 786, 786, 0, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 788, 788, 788, 788, + 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, + 788, 788, 788, 788, 0, 0, 0, 788, 788, 788, + 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, + 788, 788, 788, 0, 0, 790, 0, 0, 0, 0, + 800, 800, 800, 800, 800, 0, 0, 0, 788, 788, + 788, 788, 792, 788, 788, 788, 788, 0, 0, 788, + 0, 788, 800, 800, 788, 792, 0, 0, 0, 0, + 0, 788, 788, 788, 0, 0, 0, 0, 0, 800, + 800, 800, 800, 0, 0, 0, 800, 800, 0, 0, + 0, 0, 800, 0, 800, 800, 0, 0, 0, 790, + 0, 790, 800, 800, 0, 0, 0, 0, 788, 788, + 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 788, 788, 0, 788, + 788, 788, 0, 788, 788, 788, 788, 788, 788, 788, + 788, 788, 0, 0, 0, 0, 0, 0, 0, 794, + 0, 0, 0, 0, 0, 0, 0, 800, 800, 0, + 800, 800, 800, 0, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 0, 0, 794, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, + 792, 792, 792, 792, 0, 792, 792, 792, 792, 790, + 0, 792, 0, 792, 0, 0, 792, 0, 0, 0, + 0, 0, 0, 792, 792, 792, 0, 0, 0, 0, + 0, 0, 794, 0, 794, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 790, 0, + 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, + 0, 792, 792, 792, 0, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 0, 0, 0, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 794, + 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 794, 0, 790, 790, 790, 790, 0, 790, + 790, 790, 790, 0, 0, 790, 0, 790, 0, 0, + 790, 0, 0, 0, 0, 0, 0, 790, 790, 790, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 794, 0, 0, 744, 0, 744, 0, 0, 0, + 0, 0, 0, 0, 790, 790, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 790, 790, 0, 790, 790, 790, 0, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 0, 0, + 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 794, 0, 0, 0, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 0, 746, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 794, 794, 794, + 794, 0, 794, 794, 794, 794, 0, 0, 794, 0, + 794, 744, 0, 794, 744, 0, 0, 0, 0, 0, + 794, 794, 794, 0, 744, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 746, 0, 746, + 0, 0, 0, 0, 0, 0, 0, 794, 794, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 744, 0, 794, 794, 0, 794, 794, + 794, 0, 794, 794, 794, 794, 794, 794, 794, 794, + 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 401, 0, 0, 744, 744, 744, + 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 744, 744, 0, 0, 0, 744, 744, + 744, 744, 744, 744, 744, 0, 0, 0, 0, 744, + 0, 0, 744, 744, 746, 0, 0, 746, 401, 0, + 0, 0, 0, 0, 0, 0, 0, 746, 0, 744, + 744, 744, 744, 401, 744, 744, 744, 744, 0, 0, + 744, 0, 744, 0, 744, 744, 744, 0, 0, 744, + 744, 0, 744, 744, 744, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 746, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, + 744, 0, 0, 0, 0, 0, 0, 401, 0, 401, + 0, 0, 0, 0, 0, 0, 0, 744, 744, 0, + 744, 744, 744, 0, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 746, 746, 746, 0, 0, + 0, 746, 746, 746, 746, 746, 746, 746, 0, 0, + 0, 0, 746, 0, 0, 746, 746, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 746, 746, 746, 746, 0, 746, 746, 746, + 746, 0, 0, 746, 0, 746, 0, 746, 746, 746, + 0, 0, 746, 746, 0, 746, 746, 746, 0, 0, + 0, 0, 0, 0, 401, 0, 0, 401, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 746, 746, 443, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 746, 746, 209, 746, 746, 746, 0, 746, 746, 746, + 746, 746, 746, 746, 746, 746, 401, 0, 0, 0, + 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, + 0, 209, 0, 209, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 0, 0, + 0, 401, 401, 401, 401, 401, 401, 401, 150, 151, + 0, 443, 401, 0, 443, 401, 401, 209, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 401, 401, 401, 401, 0, 401, 401, 401, + 401, 0, 0, 401, 0, 401, 0, 0, 401, 0, + 0, 0, 0, 211, 0, 401, 401, 401, 0, 0, + 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, + 0, 0, 401, 401, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 401, 401, 211, 401, 401, 401, 0, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 0, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 209, 0, 0, 443, 443, + 443, 443, 443, 443, 443, 0, 0, 0, 211, 443, + 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 94, 0, 0, 443, + 443, 443, 443, 0, 443, 443, 443, 443, 0, 93, + 443, 0, 443, 0, 209, 443, 0, 0, 0, 0, + 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 0, 0, 0, 443, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, + 443, 443, 443, 0, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 209, 209, 209, 209, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, + 209, 94, 0, 209, 209, 0, 211, 0, 0, 797, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 209, 209, 209, 0, 209, 209, 209, 209, 0, + 0, 0, 0, 209, 0, 0, 209, 93, 0, 0, + 0, 0, 0, 209, 209, 209, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 209, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, + 0, 209, 209, 209, 0, 209, 209, 209, 209, 209, + 209, 209, 209, 209, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, + 0, 0, 211, 211, 211, 211, 211, 0, 0, 94, + 0, 48, 0, 0, 0, 0, 211, 0, 0, 0, + 0, 211, 0, 0, 211, 211, 0, 0, 0, 0, + 0, 0, 0, 93, 93, 93, 93, 93, 0, 47, + 0, 211, 211, 211, 211, 0, 211, 211, 211, 211, + 0, 0, 0, 0, 211, 93, 93, 211, 0, 0, + 0, 0, 0, 0, 211, 211, 211, 0, 0, 0, + 48, 0, 93, 93, 93, 93, 0, 0, 0, 93, + 93, 0, 0, 0, 0, 93, 0, 0, 93, 0, + 0, 0, 0, 0, 0, 93, 93, 0, 0, 0, + 0, 211, 211, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 1131, 0, 0, 0, 0, 0, 0, 211, + 211, 0, 211, 211, 211, 0, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 0, 48, 0, 0, 0, + 0, 0, 797, 0, 0, 94, 94, 94, 94, 94, + 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 49, 94, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 94, 94, 0, 0, + 0, 94, 94, 0, 0, 0, 0, 94, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 94, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 94, 0, 94, 94, 94, 0, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 797, 797, + 797, 797, 797, 0, 48, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 797, 797, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 797, 797, 797, + 797, 0, 0, 0, 797, 797, 0, 1091, 0, 0, + 797, 0, 0, 797, 0, 0, 0, 0, 51, 0, + 797, 797, 0, 0, 0, 0, 1092, 1093, 0, 1094, + 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, 1102, + 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 47, 47, 47, 47, 0, 797, 797, 51, 797, 797, + 797, 0, 797, 797, 797, 797, 797, 797, 797, 797, + 797, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 0, 0, 0, 47, 47, + 47, 47, 50, 0, 0, 47, 47, 0, 0, 49, + 0, 47, 48, 48, 47, 0, 0, 0, 0, 800, + 0, 47, 47, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 51, 0, 0, 48, 48, 0, 0, + 0, 0, 48, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 47, 47, 800, 47, + 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, + 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, 1111, + 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, 0, + 0, 0, 0, 0, 800, 49, 49, 49, 49, 49, + 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 0, 0, 49, 49, 49, 49, 0, 0, + 0, 49, 49, 0, 0, 0, 0, 49, 0, 0, + 49, 0, 0, 0, 0, 0, 0, 49, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 49, 0, 49, 49, 49, 0, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, + 50, 0, 800, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, + 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 51, 0, 0, 0, 50, 50, 50, 50, 0, + 0, 0, 50, 50, 0, 0, 0, 0, 50, 51, + 51, 50, 0, 0, 0, 0, 0, 0, 50, 50, + 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, + 0, 157, 0, 51, 51, 0, 297, 0, 0, 51, + 743, 0, 51, 0, 0, 0, 0, 0, 0, 51, + 51, 0, 0, 0, 0, 0, 0, 0, 295, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 50, 0, 50, 50, 50, 0, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 480, + 0, 0, 0, 0, 0, 0, 0, 0, 800, 800, + 800, 800, 800, 0, 51, 51, 0, 51, 51, 51, + 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 800, 800, 800, + 800, 0, 0, 0, 800, 800, 0, 0, 0, 0, + 800, 0, 0, 800, 0, 0, 0, 0, 0, 0, + 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 700, 0, 0, 0, 0, 700, 0, + 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 800, 800, 0, 800, 800, + 800, 0, 800, 800, 800, 800, 800, 800, 800, 800, + 800, 700, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 0, 290, 291, + 292, 0, 157, 0, 0, 0, 0, 297, 0, 0, + 0, 296, 478, 479, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 700, 700, 0, 700, 0, 0, 0, 0, 700, 0, + 0, 700, 152, 153, 154, 700, 700, 700, 700, 700, + 480, 700, 700, 700, 700, 0, 700, 700, 0, 0, + 700, 700, 700, 700, 0, 0, 700, 700, 700, 0, + 0, 0, 0, 0, 0, 0, 700, 0, 700, 0, + 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, + 0, 0, 0, 700, 700, 700, 0, 0, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 448, 0, 0, 143, 144, 700, 0, + 700, 700, 700, 0, 0, 145, 0, 146, 0, 0, + 0, 0, 0, 0, 700, 700, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 449, 0, 450, 451, + 452, 453, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 700, 700, 700, 150, 0, 0, + 0, 0, 0, 0, 0, 454, 455, 456, 457, 0, + 0, 458, 0, 0, 0, 459, 460, 461, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 699, 0, 0, 0, 0, 699, 0, 0, 0, - 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 699, 290, - 291, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 478, 479, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 152, 153, 154, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 157, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 290, 291, 292, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 479, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 152, 153, 154, 699, 699, - 0, 699, 0, 0, 0, 0, 699, 0, 0, 699, - 0, 0, 0, 699, 699, 699, 699, 699, 0, 699, - 699, 699, 699, 0, 699, 699, 0, 0, 699, 699, - 699, 699, 0, 0, 699, 699, 699, 0, 0, 0, - 0, 0, 0, 0, 699, 157, 699, 0, 0, 0, - 297, 0, 225, 0, 296, 0, 0, 0, 0, 0, - 0, 699, 699, 699, 0, 0, 0, 0, 0, 0, - 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 699, 0, 699, 699, - 699, 0, 0, 480, 212, 0, 0, 0, 0, 0, - 0, 0, 699, 699, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 0, 155, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 448, 0, 0, 143, 144, 0, - 0, 0, 699, 699, 699, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 449, 0, 450, - 451, 452, 453, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 454, 455, 456, 457, - 0, 0, 458, 0, 157, 0, 459, 460, 461, 0, - 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, - 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, - 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 225, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, - 126, 699, 210, 127, 225, 225, 225, 128, 129, 130, - 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, - 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 145, 225, - 146, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 462, 0, 0, 0, 0, 147, 148, 149, 0, 0, - 0, 0, 212, 0, 0, 0, 212, 212, 212, 212, - 212, 0, 212, 212, 212, 212, 0, 212, 212, 0, - 0, 212, 212, 212, 212, 212, 0, 0, 212, 212, - 150, 0, 290, 291, 292, 0, 0, 212, 0, 212, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 212, 212, 212, 0, 212, 0, - 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 152, 153, 154, 212, - 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, - 212, 0, 0, 212, 0, 0, 0, 212, 212, 212, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 157, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 0, 212, 210, 67, 68, 155, 69, 0, 0, 0, - 0, 126, 0, 973, 127, 0, 0, 157, 128, 129, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, + 0, 0, 0, 700, 0, 0, 0, 150, 0, 290, + 291, 292, 0, 0, 213, 0, 0, 0, 213, 213, + 213, 213, 213, 0, 213, 213, 213, 213, 0, 213, + 213, 0, 0, 213, 213, 213, 213, 213, 0, 0, + 213, 213, 210, 0, 0, 0, 0, 0, 0, 213, + 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 152, 153, 154, 213, 213, 213, 157, + 213, 0, 213, 213, 213, 213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 213, 0, 0, 0, 0, 0, 0, 0, 213, + 213, 213, 213, 0, 0, 213, 0, 0, 0, 213, + 213, 213, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 157, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 146, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 212, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 0, 0, 225, 225, 225, 225, - 225, 0, 225, 225, 225, 225, 0, 225, 225, 0, - 0, 225, 225, 225, 225, 0, 0, 0, 225, 225, - 0, 0, 0, 0, 210, 0, 0, 225, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 225, 225, 225, 0, 0, 317, - 0, 67, 68, 0, 69, 0, 0, 562, 0, 126, - 0, 0, 127, 0, 155, 0, 128, 129, 130, 131, - 132, 0, 133, 134, 135, 136, 0, 137, 138, 225, - 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 317, 159, 0, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 147, 148, 149, 0, + 972, 0, 0, 0, 0, 210, 0, 0, 0, 0, + 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, + 0, 0, 127, 213, 0, 0, 128, 129, 130, 131, + 132, 150, 133, 134, 135, 136, 0, 137, 138, 0, + 0, 139, 140, 141, 142, 973, 0, 98, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 145, 157, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 213, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 150, + 151, 128, 129, 130, 131, 132, 210, 133, 134, 135, + 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, + 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 147, + 148, 149, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 569, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 316, - 98, 143, 144, 0, 0, 0, 155, 0, 0, 0, - 692, 0, 146, 0, 0, 0, 0, 317, 316, 316, + 129, 130, 131, 132, 150, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 210, 155, 0, 0, 0, + 145, 233, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 152, 153, 154, 128, 129, - 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, - 138, 0, 150, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 317, 0, 0, 0, 145, - 0, 146, 316, 0, 316, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 752, 317, 317, 317, 317, 0, 317, 317, 317, - 317, 0, 317, 317, 0, 0, 317, 317, 317, 317, - 0, 0, 236, 317, 317, 0, 0, 0, 579, 0, - 0, 0, 317, 0, 317, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 155, 0, 0, 0, 0, 317, - 317, 317, 0, 0, 0, 0, 159, 152, 153, 154, - 159, 159, 159, 159, 159, 0, 159, 159, 159, 159, - 0, 159, 159, 0, 0, 159, 159, 159, 159, 0, - 0, 0, 159, 159, 317, 0, 0, 0, 0, 316, - 0, 159, 316, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 236, 0, 236, 0, 159, 159, - 159, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 235, 0, 0, 0, 317, 0, 0, 0, 0, - 317, 317, 317, 317, 0, 317, 317, 317, 317, 235, - 317, 317, 0, 159, 317, 317, 317, 317, 0, 0, - 0, 317, 317, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 235, 0, 0, 0, 0, - 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, - 0, 236, 316, 0, 236, 0, 316, 316, 316, 316, - 316, 316, 0, 0, 236, 579, 0, 0, 0, 0, - 316, 316, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, - 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, - 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, - 0, 0, 316, 0, 0, 0, 0, 0, 0, 540, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 316, 316, - 235, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, - 316, 0, 236, 540, 0, 540, 0, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 0, 0, 34, 0, 236, 0, 0, 317, 236, 236, - 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 336, 0, 337, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 0, 0, 0, 0, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 236, - 236, 34, 0, 235, 0, 0, 0, 235, 235, 235, - 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, - 540, 235, 235, 540, 0, 0, 236, 236, 236, 236, - 236, 236, 236, 540, 579, 0, 0, 0, 235, 235, - 235, 235, 0, 0, 0, 0, 0, 0, 0, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 0, 336, 0, 785, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, - 0, 0, 0, 67, 0, 0, 69, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, - 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, - 0, 0, 0, 540, 0, 0, 0, 540, 540, 540, - 540, 540, 540, 0, 0, 0, 0, 0, 0, 0, - 0, 540, 540, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 0, 0, 69, 0, 0, 540, 540, - 540, 540, 0, 0, 0, 2, 336, 0, 987, 540, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 540, 0, 0, 0, 0, 0, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 7, 0, 0, 0, - 326, 327, 328, 329, 330, 331, 0, 0, 540, 540, - 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 540, 540, 540, 540, 540, - 540, 540, 332, 545, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 334, 335, 67, 0, 7, 69, 0, 0, 326, - 327, 328, 329, 330, 331, 0, 2, 545, 0, 545, - 0, 0, 0, 8, 9, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, - 0, 332, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 0, 371, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 363, 0, 0, 0, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 545, 0, 7, 545, 0, 0, - 326, 327, 328, 329, 330, 331, 0, 545, 0, 0, - 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 0, 0, 0, 0, 363, - 0, 363, 332, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 334, 335, 371, 0, 0, 371, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 0, 356, 0, 0, 0, - 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, - 545, 545, 545, 0, 0, 0, 0, 545, 0, 0, - 0, 545, 545, 545, 545, 545, 545, 0, 0, 0, - 0, 0, 0, 0, 0, 545, 545, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 363, 0, 0, 363, - 0, 0, 545, 545, 545, 545, 0, 0, 0, 363, - 356, 0, 356, 545, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 371, - 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 545, 545, 0, 0, 371, 0, 0, 0, - 371, 371, 371, 371, 371, 371, 0, 0, 0, 0, - 0, 0, 0, 0, 371, 371, 0, 0, 0, 545, - 545, 545, 545, 545, 545, 545, 0, 0, 0, 0, - 0, 371, 371, 371, 371, 0, 0, 0, 0, 210, - 0, 210, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, - 0, 0, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 363, 363, 363, 363, 0, 0, 356, 0, 363, - 356, 0, 0, 363, 363, 363, 363, 363, 363, 0, - 356, 371, 371, 0, 0, 0, 0, 363, 363, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 363, 363, 363, 371, 371, - 371, 371, 371, 371, 371, 363, 539, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 363, 363, 210, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 539, 0, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 363, 363, 363, 363, 363, 363, 0, 0, - 0, 0, 0, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 561, 0, 0, 0, - 356, 0, 0, 0, 356, 356, 356, 356, 356, 356, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 356, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 356, 356, 356, 356, 0, - 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 356, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 356, 356, 539, 0, 210, - 539, 0, 0, 210, 210, 210, 210, 210, 210, 0, - 539, 0, 0, 0, 0, 0, 0, 210, 210, 0, - 0, 0, 356, 356, 356, 356, 356, 356, 356, 0, - 0, 0, 0, 34, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 0, 2, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 210, 0, 0, 0, 1215, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 210, 210, 210, 210, 210, 210, 0, 0, - 0, 0, 0, 539, 539, 539, 539, 539, 539, 539, - 539, 539, 539, 539, 539, 539, 0, 0, 0, 0, - 539, 0, 0, 0, 539, 539, 539, 539, 539, 539, - 0, 0, 0, 0, 0, 0, 0, 0, 539, 539, - 187, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 3, 4, 5, 6, 7, 539, 539, 539, 539, 0, - 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 19, 0, 539, 539, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 539, 539, 539, 539, 539, 539, 539, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 538, 20, 21, 0, - 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 3, 4, 5, 6, 7, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 0, 0, 14, - 15, 0, 0, 0, 0, 16, 0, 187, 17, 0, - 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, - 0, 0, 892, 539, 0, 5, 6, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 540, 0, 0, - 0, 0, 541, 0, 0, 8, 9, 0, 0, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 12, 13, 0, 542, 543, 0, - 20, 21, 0, 22, 23, 24, 0, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 0, 544, 0, 0, - 0, 0, 0, 0, 187, 0, 187, 187, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 187, 0, 0, 187, 187, 0, 0, - 0, 0, 545, 546, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 187, 187, 187, 0, 187, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 851, 0, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 852, 0, 0, 0, 0, 853, 854, 0, 855, 856, - 857, 858, 859, 860, 0, 861, 862, 0, 863, 864, - 865, 866, 867, 187, 187, 0, 0, 0, 0, 0, + 0, 0, 569, 0, 0, 0, 0, 0, 0, 233, + 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, + 0, 0, 0, 126, 155, 0, 127, 0, 0, 226, + 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, + 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, + 0, 98, 143, 144, 0, 0, 0, 0, 152, 153, + 154, 692, 0, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 0, 0, 0, 318, 0, 0, 226, 0, 0, + 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 150, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 318, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 226, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 233, + 0, 0, 0, 233, 233, 233, 233, 233, 0, 233, + 233, 233, 233, 0, 233, 233, 0, 0, 233, 233, + 233, 233, 752, 0, 0, 233, 233, 0, 0, 0, + 159, 0, 0, 0, 233, 0, 233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 233, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 152, 153, + 154, 226, 226, 226, 226, 226, 233, 226, 226, 226, + 226, 317, 226, 226, 0, 0, 226, 226, 226, 226, + 0, 0, 0, 226, 226, 0, 0, 0, 155, 0, + 317, 317, 226, 0, 226, 318, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, + 226, 226, 318, 0, 0, 0, 0, 318, 318, 318, + 318, 0, 318, 318, 318, 318, 0, 318, 318, 0, + 0, 318, 318, 318, 318, 0, 0, 0, 318, 318, + 0, 0, 0, 0, 226, 0, 0, 318, 0, 318, + 0, 0, 0, 318, 317, 0, 317, 0, 0, 0, + 0, 0, 0, 0, 318, 318, 318, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 226, 0, 155, 0, 226, + 226, 226, 226, 226, 0, 226, 226, 226, 226, 318, + 226, 226, 0, 0, 226, 226, 226, 226, 0, 0, + 0, 226, 226, 0, 0, 0, 0, 0, 0, 0, + 226, 0, 226, 237, 0, 0, 0, 0, 0, 580, + 0, 0, 0, 0, 0, 0, 0, 226, 226, 226, + 0, 237, 0, 0, 0, 0, 0, 0, 159, 0, + 0, 233, 159, 159, 159, 159, 159, 0, 159, 159, + 159, 159, 0, 159, 159, 0, 0, 159, 159, 159, + 159, 0, 226, 0, 159, 159, 0, 0, 0, 0, + 0, 0, 0, 159, 0, 159, 0, 0, 0, 0, + 0, 317, 0, 0, 317, 0, 0, 0, 0, 0, + 159, 159, 159, 0, 317, 237, 236, 237, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 226, + 0, 0, 0, 318, 0, 159, 0, 0, 318, 318, + 318, 318, 0, 318, 318, 318, 318, 0, 318, 318, + 0, 0, 318, 318, 318, 318, 0, 0, 0, 318, + 318, 0, 0, 0, 0, 0, 0, 0, 318, 0, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 318, 318, 318, 318, 236, 0, + 236, 0, 0, 0, 0, 580, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 541, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 318, 0, 0, 0, 0, 0, 0, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 0, 0, 237, 0, 317, 237, 0, 0, 317, 317, + 317, 317, 317, 317, 0, 237, 580, 226, 0, 0, + 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, + 0, 541, 0, 541, 0, 0, 0, 0, 0, 317, + 317, 317, 317, 0, 0, 0, 0, 0, 0, 0, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 236, 0, 0, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 317, + 317, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, + 317, 317, 317, 237, 34, 0, 0, 0, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 0, 0, 0, 0, 237, 0, 0, 0, 237, + 237, 237, 237, 237, 237, 318, 0, 0, 541, 0, + 0, 541, 0, 237, 237, 0, 0, 0, 0, 0, + 0, 541, 580, 0, 0, 0, 0, 0, 0, 0, + 237, 237, 237, 237, 0, 0, 0, 0, 336, 0, + 337, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 237, 236, 0, 0, 0, + 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 0, 0, 0, 0, 236, 0, + 0, 0, 236, 236, 236, 236, 236, 236, 0, 0, + 237, 237, 0, 0, 0, 0, 236, 236, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 236, 236, 236, 237, 237, 237, + 237, 237, 237, 237, 236, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, + 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, + 0, 541, 0, 0, 0, 541, 541, 541, 541, 541, + 541, 0, 0, 236, 236, 67, 0, 0, 69, 541, + 541, 0, 0, 0, 0, 0, 0, 0, 2, 336, + 0, 785, 0, 0, 0, 0, 541, 541, 541, 541, + 236, 236, 236, 236, 236, 236, 236, 541, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 541, 541, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 987, 0, 0, 0, 0, 0, + 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, + 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 67, 0, 7, 69, + 0, 0, 326, 327, 328, 329, 330, 331, 0, 2, + 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, + 0, 0, 0, 0, 0, 546, 0, 546, 0, 0, + 0, 0, 0, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 334, 335, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 0, 0, 0, 0, 7, + 0, 0, 0, 326, 327, 328, 329, 330, 331, 0, + 0, 0, 546, 0, 0, 546, 0, 8, 9, 0, + 0, 0, 0, 0, 0, 546, 372, 0, 372, 0, + 0, 0, 0, 0, 10, 11, 12, 13, 0, 0, + 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, + 0, 0, 7, 0, 0, 0, 326, 327, 328, 329, + 330, 331, 0, 0, 334, 335, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, + 13, 27, 28, 29, 30, 31, 32, 33, 332, 364, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 0, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 0, 0, 372, 0, 546, 372, 0, 0, 546, + 546, 546, 546, 546, 546, 0, 372, 334, 335, 0, + 0, 0, 0, 546, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 364, 0, 364, 0, 0, 0, 0, + 546, 546, 546, 546, 27, 28, 29, 30, 31, 32, + 33, 546, 357, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 546, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 357, 0, 357, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 546, 546, + 546, 546, 546, 546, 0, 211, 0, 0, 0, 372, + 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, + 372, 372, 0, 0, 0, 0, 372, 0, 0, 0, + 372, 372, 372, 372, 372, 372, 0, 0, 0, 0, + 364, 0, 0, 364, 372, 372, 0, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, + 0, 372, 372, 372, 372, 0, 0, 0, 0, 211, + 0, 211, 372, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 372, 372, 357, 0, 0, 357, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 372, 372, + 372, 372, 372, 372, 372, 0, 540, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 364, 364, 364, 364, + 364, 364, 364, 364, 364, 364, 364, 364, 364, 0, + 0, 0, 0, 364, 0, 0, 0, 364, 364, 364, + 364, 364, 364, 0, 0, 0, 211, 34, 0, 211, + 0, 364, 364, 0, 0, 0, 0, 0, 0, 211, + 540, 0, 540, 0, 0, 0, 0, 0, 364, 364, + 364, 364, 0, 0, 0, 0, 0, 0, 0, 364, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 0, 0, 0, 357, + 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, + 357, 357, 0, 561, 0, 0, 357, 0, 0, 0, + 357, 357, 357, 357, 357, 357, 0, 0, 364, 364, + 0, 0, 0, 0, 357, 357, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 357, 357, 357, 357, 364, 364, 364, 364, 364, + 364, 364, 357, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, + 34, 0, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 0, 0, 540, 0, 211, + 540, 0, 0, 211, 211, 211, 211, 211, 211, 0, + 540, 357, 357, 0, 0, 0, 0, 211, 211, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 211, 211, 211, 211, 357, 357, + 357, 357, 357, 357, 357, 211, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 211, 211, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1215, 0, 0, 0, 0, + 0, 211, 211, 211, 211, 211, 211, 211, 0, 0, + 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, + 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, + 540, 188, 0, 0, 540, 540, 540, 540, 540, 540, + 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 540, 540, 540, 540, 0, + 0, 0, 0, 0, 2, 0, 540, 3, 4, 5, + 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 540, 0, 0, 0, 0, 0, 0, 188, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 0, 0, 0, 14, 15, 540, 540, 0, 0, 16, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 540, 540, 540, 540, 540, 540, 540, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 538, 0, 20, 21, 0, 22, 23, 24, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 187, 187, 187, 187, 187, 187, 0, 0, 851, - 0, 0, 0, 0, 868, 0, 869, 0, 0, 0, - 0, 870, 0, 852, 0, 0, 0, 0, 853, 854, - 0, 855, 856, 857, 858, 859, 860, 871, 861, 862, - 0, 863, 864, 865, 866, 867, 0, 0, 0, 0, + 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 0, 0, 0, 10, + 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, + 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 18, 19, 0, 0, 0, 0, 0, 539, + 892, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 540, 188, 0, 0, 0, 541, 0, + 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 0, 542, 543, 0, 0, 20, 21, 0, + 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 868, 0, 869, - 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 545, 546, + 0, 188, 0, 188, 188, 188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, + 188, 0, 0, 188, 188, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 851, 0, 0, 0, 0, 0, + 188, 188, 188, 188, 0, 188, 188, 0, 852, 0, + 0, 0, 0, 853, 854, 0, 855, 856, 857, 858, + 859, 860, 851, 861, 862, 188, 863, 864, 865, 866, + 867, 0, 0, 0, 0, 0, 852, 0, 0, 0, + 0, 853, 854, 0, 855, 856, 857, 858, 859, 860, + 0, 861, 862, 0, 863, 864, 865, 866, 867, 0, + 188, 188, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 868, 0, 869, 0, 0, 0, 0, 870, + 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, + 188, 188, 188, 188, 0, 871, 0, 0, 0, 0, + 868, 0, 869, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 871, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 873, 0, 874, 875, 876, 877, 878, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 0, - 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 873, 0, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 0, 0, 0, 891, + 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 888, 889, 890, 0, 0, 0, + 891, 0, 0, 0, 0, 0, 873, 0, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 0, 0, 0, 891, }; static const YYINT yycheck[] = { 4, - 24, 24, 24, 102, 103, 167, 1, 779, 311, 428, - 704, 430, 20, 21, 19, 311, 93, 1, 311, 36, - 37, 181, 27, 28, 29, 30, 22, 23, 899, 1, - 996, 690, 38, 1, 91, 64, 482, 1018, 44, 1188, - 38, 1, 833, 60, 42, 1, 38, 46, 264, 41, - 41, 40, 44, 24, 61, 43, 365, 65, 76, 46, - 46, 44, 60, 41, 72, 123, 59, 41, 167, 514, - 515, 516, 125, 767, 41, 123, 123, 46, 43, 43, - 45, 42, 105, 42, 41, 91, 13, 41, 507, 508, - 1266, 190, 169, 91, 1150, 92, 44, 24, 61, 91, - 125, 40, 1542, 111, 112, 128, 319, 41, 113, 470, - 115, 116, 117, 38, 40, 46, 215, 42, 193, 194, - 195, 196, 197, 145, 364, 43, 148, 45, 151, 93, - 40, 263, 125, 104, 41, 60, 262, 41, 40, 911, - 912, 44, 41, 1529, 41, 40, 168, 40, 40, 157, - 91, 156, 157, 42, 40, 47, 233, 528, 40, 42, - 46, 40, 288, 181, 40, 91, 91, 380, 60, 40, - 199, 46, 41, 1559, 40, 42, 61, 104, 59, 41, - 40, 91, 187, 345, 123, 208, 203, 59, 40, 91, - 93, 188, 46, 41, 42, 61, 91, 41, 970, 264, - 205, 206, 91, 38, 41, 210, 366, 42, 40, 91, - 93, 41, 91, 221, 222, 91, 342, 44, 93, 260, - 261, 1531, 263, 1399, 470, 60, 1666, 232, 40, 156, - 123, 91, 1004, 542, 239, 232, 264, 265, 260, 91, - 167, 686, 267, 91, 125, 38, 44, 40, 44, 42, - 349, 1561, 123, 125, 470, 262, 91, 315, 316, 91, - 58, 1317, 267, 311, 41, 42, 93, 60, 40, 316, - 267, 348, 295, 264, 265, 91, 91, 282, 286, 302, - 263, 286, 304, 210, 289, 263, 294, 732, 293, 1160, - 264, 985, 266, 298, 299, 300, 301, 93, 91, 262, - 264, 260, 261, 264, 263, 123, 359, 264, 365, 549, - 264, 364, 286, 287, 91, 263, 311, 312, 326, 348, - 328, 299, 340, 346, 332, 288, 344, 311, 312, 294, - 264, 265, 340, 341, 264, 352, 344, 296, 335, 311, - 312, 306, 307, 311, 312, 91, 342, 343, 366, 318, - 347, 311, 312, 320, 321, 311, 312, 264, 366, 324, - 264, 265, 360, 361, 362, 264, 359, 264, 813, 262, - 1064, 364, 367, 368, 369, 370, 294, 260, 261, 350, - 263, 264, 274, 367, 368, 369, 370, 318, 306, 307, - 1539, 262, 275, 260, 261, 264, 263, 41, 395, 367, - 44, 273, 264, 391, 391, 391, 324, 59, 262, 374, - 40, 419, 420, 296, 422, 1396, 424, 435, 345, 346, - 264, 462, 421, 350, 1573, 260, 261, 264, 263, 296, - 426, 439, 440, 59, 264, 360, 361, 362, 93, 599, - 505, 506, 507, 43, 260, 261, 469, 263, 260, 261, - 610, 263, 268, 898, 262, 40, 374, 33, 463, 123, - 465, 91, 59, 452, 262, 263, 391, 339, 914, 40, - 569, 40, 480, 125, 471, 480, 1267, 123, 359, 1532, - 296, 40, 480, 364, 46, 542, 40, 492, 260, 261, - 498, 263, 1151, 93, 46, 503, 504, 505, 267, 507, - 47, 509, 510, 511, 41, 260, 261, 40, 263, 1562, - 506, 123, 508, 472, 260, 261, 512, 263, 46, 525, - 91, 40, 91, 520, 521, 360, 361, 362, 125, 40, - 535, 93, 91, 525, 542, 543, 482, 91, 535, 123, - 617, 93, 535, 536, 537, 538, 539, 540, 541, 546, - 477, 1323, 1324, 480, 44, 40, 502, 565, 91, 40, - 568, 566, 567, 279, 280, 93, 1547, 360, 361, 362, - 593, 40, 91, 289, 40, 592, 123, 595, 543, 451, - 91, 599, 587, 660, 40, 662, 315, 595, 40, 472, - 587, 463, 610, 465, 466, 755, 468, 469, 414, 415, - 416, 40, 610, 93, 601, 472, 91, 624, 625, 264, - 91, 1577, 91, 630, 260, 632, 260, 263, 264, 263, - 275, 273, 91, 43, 59, 91, 38, 635, 46, 266, - 46, 636, 41, 91, 43, 91, 263, 642, 661, 91, - 648, 61, 671, 260, 261, 61, 263, 746, 91, 286, - 287, 659, 91, 752, 535, 536, 537, 538, 539, 540, - 541, 46, 0, 535, 536, 537, 538, 539, 540, 541, - 692, 1524, 299, 123, 682, 60, 273, 1530, 701, 264, - 265, 266, 44, 986, 260, 261, 1557, 263, 264, 123, - 986, 708, 264, 986, 44, 772, 46, 1391, 123, 704, - 62, 286, 287, 275, 709, 44, 711, 1560, 716, 717, - 718, 123, 1484, 260, 261, 470, 263, 260, 261, 742, - 263, 59, 706, 719, 44, 1497, 40, 264, 265, 266, - 738, 739, 40, 359, 91, 41, 42, 755, 364, 44, - 745, 46, 62, 766, 749, 750, 751, 744, 745, 286, - 287, 759, 61, 761, 91, 763, 40, 1176, 781, 1178, - 768, 306, 767, 838, 91, 840, 841, 842, 843, 844, - 788, 41, 42, 769, 41, 427, 43, 429, 430, 797, - 788, 260, 261, 260, 263, 91, 263, 125, 283, 284, - 798, 799, 1486, 38, 320, 321, 448, 449, 450, 451, - 393, 394, 260, 261, 812, 263, 41, 264, 1580, 266, - 268, 816, 44, 818, 46, 38, 47, 260, 261, 42, - 263, 91, 899, 318, 829, 391, 41, 835, 43, 286, - 287, 908, 260, 59, 831, 263, 264, 60, 296, 847, - 391, 849, 277, 278, 279, 462, 281, 282, 283, 284, - 1622, 286, 287, 288, 451, 290, 291, 292, 293, 607, - 608, 609, 297, 298, 461, 267, 278, 464, 91, 281, - 282, 283, 284, 391, 286, 287, 288, 899, 896, 391, - 1005, 1653, 1007, 535, 536, 537, 538, 539, 540, 541, - 301, 899, 303, 304, 305, 41, 1668, 260, 261, 125, - 263, 909, 41, 260, 261, 44, 263, 904, 41, 535, - 536, 537, 538, 539, 540, 541, 330, 331, 332, 936, - 41, 939, 316, 260, 261, 262, 263, 264, 42, 1623, - 365, 268, 40, 260, 261, 273, 263, 40, 535, 536, - 537, 538, 539, 540, 541, 41, 283, 971, 44, 93, - 934, 61, 366, 367, 368, 978, 414, 415, 416, 296, - 40, 984, 457, 458, 43, 460, 1043, 330, 331, 263, - 975, 1665, 980, 41, 982, 260, 261, 93, 263, 41, - 985, 43, 44, 320, 321, 393, 394, 1005, 475, 1007, - 280, 986, 40, 988, 989, 990, 1001, 1005, 995, 1007, - 997, 41, 986, 40, 988, 989, 990, 93, 1085, 38, - 43, 44, 1035, 42, 986, 40, 988, 989, 986, 260, - 261, 1029, 263, 264, 1032, 40, 986, 264, 988, 989, - 986, 60, 40, 278, 1039, 40, 281, 282, 283, 284, - 1037, 286, 287, 288, 281, 282, 283, 273, 43, 44, - 40, 91, 41, 42, 1216, 1217, 1218, 1219, 59, 1064, - 40, 1138, 91, 40, 1226, 1227, 1228, 281, 282, 283, - 284, 409, 410, 411, 412, 413, 38, 414, 415, 416, - 42, 886, 887, 40, 46, 47, 264, 265, 266, 374, - 375, 40, 40, 431, 432, 93, 260, 261, 60, 263, - 535, 536, 537, 538, 539, 540, 541, 40, 286, 287, - 448, 449, 450, 451, 330, 331, 332, 455, 456, 281, - 282, 283, 284, 461, 125, 1133, 464, 40, 310, 91, - 312, 313, 314, 471, 472, 91, 58, 360, 361, 362, - 280, 281, 282, 283, 284, 40, 125, 40, 1567, 1568, - 366, 367, 368, 1161, 1162, 1163, 260, 261, 40, 263, - 1168, 1169, 1170, 1171, 1172, 1173, 91, 1175, 1176, 1177, + 24, 24, 24, 102, 103, 167, 1, 311, 311, 428, + 311, 430, 20, 21, 19, 899, 93, 1, 704, 36, + 37, 779, 27, 28, 29, 30, 22, 23, 996, 1, + 690, 91, 181, 1, 38, 64, 482, 1018, 1188, 46, + 44, 1, 833, 60, 46, 1, 38, 40, 264, 41, + 24, 41, 44, 125, 43, 46, 91, 65, 76, 264, + 46, 123, 123, 41, 72, 59, 123, 364, 167, 1266, + 40, 38, 319, 46, 93, 42, 42, 47, 43, 61, + 45, 767, 105, 44, 46, 40, 13, 91, 507, 508, + 60, 190, 169, 60, 44, 92, 47, 24, 1544, 91, + 1150, 470, 41, 111, 112, 128, 260, 261, 113, 263, + 115, 116, 117, 61, 40, 40, 215, 263, 193, 194, + 195, 196, 197, 145, 91, 40, 148, 125, 151, 262, + 104, 125, 40, 380, 41, 514, 515, 516, 365, 41, + 38, 40, 42, 40, 42, 41, 168, 42, 44, 157, + 42, 156, 157, 911, 912, 288, 233, 40, 91, 41, + 40, 46, 60, 181, 41, 91, 44, 41, 123, 44, + 199, 40, 123, 40, 40, 60, 91, 104, 59, 91, + 41, 44, 187, 345, 62, 208, 203, 59, 61, 43, + 41, 188, 91, 91, 91, 61, 91, 41, 123, 44, + 205, 206, 1399, 42, 41, 210, 41, 43, 91, 342, + 33, 91, 970, 221, 222, 123, 41, 366, 93, 41, + 374, 375, 91, 1669, 91, 260, 261, 232, 263, 156, + 93, 283, 284, 268, 239, 232, 1526, 44, 260, 93, + 167, 40, 1532, 1531, 125, 264, 1004, 46, 93, 311, + 349, 58, 549, 125, 93, 316, 275, 93, 315, 316, + 528, 296, 267, 41, 470, 470, 318, 1317, 123, 267, + 267, 348, 295, 1563, 1562, 91, 1160, 282, 286, 302, + 262, 286, 304, 210, 289, 263, 294, 359, 293, 505, + 506, 507, 364, 298, 299, 300, 301, 1494, 264, 985, + 262, 264, 263, 1533, 274, 365, 288, 686, 40, 260, + 261, 318, 263, 263, 262, 542, 311, 312, 326, 348, + 328, 299, 340, 346, 332, 264, 344, 311, 312, 294, + 320, 321, 340, 341, 1564, 352, 344, 262, 335, 311, + 312, 306, 307, 311, 312, 318, 342, 343, 366, 262, + 347, 311, 312, 732, 262, 311, 312, 264, 366, 324, + 260, 261, 264, 263, 260, 359, 267, 263, 260, 261, + 364, 263, 367, 368, 369, 370, 350, 123, 1064, 414, + 415, 416, 264, 367, 368, 369, 370, 264, 265, 391, + 264, 1541, 59, 360, 361, 362, 296, 40, 395, 367, + 391, 273, 391, 264, 296, 457, 458, 59, 460, 374, + 264, 419, 420, 264, 422, 1396, 424, 435, 345, 346, + 264, 260, 261, 350, 263, 264, 1576, 264, 265, 264, + 426, 439, 440, 40, 813, 421, 275, 260, 261, 264, + 263, 264, 264, 265, 260, 261, 469, 263, 1534, 40, + 599, 43, 268, 45, 40, 262, 263, 296, 463, 452, + 465, 610, 360, 361, 362, 41, 42, 339, 914, 40, + 569, 40, 480, 125, 471, 480, 1267, 123, 359, 1565, + 296, 40, 542, 364, 91, 123, 264, 492, 266, 263, + 498, 1151, 40, 391, 123, 503, 504, 505, 315, 507, + 91, 509, 510, 511, 40, 91, 41, 40, 286, 287, + 506, 123, 508, 480, 38, 91, 512, 91, 42, 898, + 91, 525, 91, 520, 521, 299, 264, 265, 260, 261, + 535, 263, 91, 525, 542, 543, 60, 40, 535, 46, + 617, 535, 536, 537, 538, 539, 540, 541, 46, 546, + 477, 482, 40, 480, 40, 91, 91, 565, 91, 40, + 568, 566, 567, 40, 46, 1323, 1324, 91, 1549, 41, + 593, 502, 472, 260, 261, 592, 263, 595, 543, 451, + 472, 599, 587, 660, 40, 662, 93, 595, 91, 123, + 587, 463, 610, 465, 466, 93, 468, 469, 414, 415, + 416, 40, 610, 91, 601, 91, 755, 624, 625, 123, + 91, 93, 1580, 630, 91, 632, 43, 260, 261, 38, + 263, 273, 260, 42, 59, 263, 264, 635, 40, 40, + 46, 636, 46, 472, 61, 91, 91, 642, 661, 264, + 648, 60, 671, 260, 261, 44, 263, 746, 91, 44, + 275, 659, 91, 752, 535, 536, 537, 538, 539, 540, + 541, 40, 0, 535, 536, 537, 538, 539, 540, 541, + 692, 44, 91, 46, 682, 46, 1560, 93, 701, 91, + 91, 260, 986, 986, 263, 986, 260, 261, 38, 263, + 61, 708, 359, 260, 261, 772, 263, 364, 93, 704, + 41, 42, 294, 40, 709, 1391, 711, 61, 716, 717, + 718, 44, 320, 321, 306, 307, 264, 265, 266, 742, + 40, 59, 706, 719, 306, 260, 261, 1485, 263, 62, + 738, 739, 324, 268, 41, 42, 47, 755, 286, 287, + 745, 1499, 91, 766, 749, 750, 751, 744, 745, 41, + 91, 759, 44, 761, 41, 763, 43, 1176, 781, 1178, + 768, 296, 767, 838, 299, 840, 841, 842, 843, 844, + 788, 306, 44, 769, 46, 427, 91, 429, 430, 797, + 788, 391, 374, 470, 91, 41, 42, 125, 41, 391, + 798, 799, 264, 265, 266, 391, 448, 449, 450, 451, + 41, 1487, 43, 44, 812, 260, 261, 391, 263, 260, + 261, 816, 263, 818, 286, 287, 41, 260, 261, 44, + 263, 41, 899, 43, 829, 1583, 41, 835, 330, 331, + 332, 908, 41, 59, 831, 91, 360, 361, 362, 847, + 266, 849, 277, 278, 279, 462, 281, 282, 283, 284, + 267, 286, 287, 288, 41, 290, 291, 292, 293, 316, + 286, 287, 297, 298, 366, 367, 368, 1625, 535, 536, + 537, 538, 539, 540, 541, 393, 394, 899, 896, 414, + 415, 416, 41, 535, 536, 537, 538, 539, 540, 541, + 44, 899, 46, 59, 41, 462, 43, 42, 1656, 125, + 38, 909, 260, 261, 38, 263, 40, 904, 42, 393, + 394, 260, 261, 1671, 263, 330, 331, 332, 1005, 936, + 1007, 939, 40, 374, 375, 93, 60, 40, 278, 61, + 365, 281, 282, 283, 284, 273, 286, 287, 288, 40, + 1626, 360, 361, 362, 59, 260, 261, 971, 263, 43, + 934, 366, 367, 368, 263, 978, 264, 91, 266, 125, + 41, 984, 260, 261, 93, 263, 1043, 279, 280, 475, + 975, 40, 980, 93, 982, 280, 295, 289, 286, 287, + 985, 300, 1668, 302, 40, 123, 40, 1005, 40, 1007, + 309, 986, 59, 988, 989, 990, 1001, 1005, 995, 1007, + 997, 40, 986, 40, 988, 989, 990, 326, 1085, 40, + 125, 40, 1035, 40, 986, 40, 988, 989, 986, 41, + 42, 1029, 341, 40, 1032, 264, 986, 40, 988, 989, + 986, 295, 330, 331, 1039, 93, 300, 40, 302, 40, + 1037, 294, 281, 282, 283, 309, 125, 273, 301, 91, + 303, 304, 305, 58, 1216, 1217, 1218, 1219, 125, 1064, + 40, 1138, 326, 327, 1226, 1227, 1228, 281, 282, 283, + 284, 409, 410, 411, 412, 413, 38, 341, 260, 91, + 42, 263, 264, 40, 46, 47, 607, 608, 609, 342, + 343, 344, 125, 431, 432, 43, 44, 40, 60, 40, + 535, 536, 537, 538, 539, 540, 541, 273, 372, 40, + 448, 449, 450, 451, 43, 44, 44, 455, 456, 886, + 887, 59, 41, 461, 40, 1133, 464, 40, 123, 91, + 296, 262, 262, 471, 472, 388, 389, 390, 44, 392, + 278, 41, 395, 281, 282, 283, 284, 41, 286, 287, + 288, 1570, 1571, 1161, 1162, 1163, 60, 274, 273, 463, + 1168, 1169, 1170, 1171, 1172, 1173, 274, 1175, 1176, 1177, 1192, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1174, 1187, - 33, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, - 1186, 529, 530, 531, 44, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 1209, 431, 432, 41, 40, 40, - 374, 375, 262, 123, 1291, 1212, 1213, 262, 1236, 44, - 260, 261, 41, 263, 328, 451, 330, 331, 268, 41, - 41, 60, 1250, 337, 1252, 274, 463, 463, 274, 465, - 40, 40, 468, 469, 40, 1253, 40, 40, 275, 62, - 1258, 281, 282, 283, 284, 1260, 296, 44, 365, 299, - 123, 1269, 281, 282, 283, 284, 306, 58, 123, 40, - 274, 1279, 273, 295, 123, 1283, 1284, 123, 300, 1206, - 302, 40, 1381, 40, 275, 41, 1294, 309, 40, 1216, - 1217, 1218, 1219, 317, 317, 296, 467, 61, 61, 1226, - 1227, 1228, 40, 61, 326, 327, 41, 1315, 1316, 535, - 536, 537, 538, 539, 540, 541, 470, 470, 0, 341, - 44, 1329, 1330, 1331, 1332, 1333, 1334, 93, 1336, 41, - 41, 360, 361, 362, 1318, 260, 261, 1414, 263, 1335, - 41, 295, 41, 268, 41, 41, 300, 1369, 302, 58, - 372, 33, 41, 44, 44, 309, 38, 125, 40, 41, - 42, 61, 44, 269, 263, 47, 272, 1372, 61, 40, - 40, 296, 326, 41, 414, 415, 416, 59, 60, 61, - 62, 306, 125, 41, 41, 41, 1391, 341, 41, 295, - 296, 41, 41, 1390, 300, 41, 302, 41, 360, 361, - 362, 41, 41, 309, 1401, 1413, 41, 41, 409, 91, - 41, 93, 1420, 41, 41, 41, 40, 270, 271, 272, - 326, 93, 275, 276, 277, 278, 279, 274, 281, 282, - 283, 284, 93, 286, 287, 341, 274, 290, 291, 292, - 293, 123, 59, 125, 297, 298, 41, 1431, 44, 41, - 451, 44, 41, 306, 44, 308, 40, 58, 40, 40, - 461, 41, 41, 464, 1487, 280, 281, 282, 283, 284, - 323, 324, 325, 1550, 40, 294, 269, 41, 41, 272, - 41, 1486, 301, 40, 303, 304, 305, 294, 1485, 414, - 415, 416, 59, 62, 41, 41, 40, 91, 1506, 1507, - 1508, 497, 295, 296, 489, 358, 40, 300, 125, 302, - 277, 41, 61, 501, 125, 123, 309, 62, 61, 41, - 41, 41, 41, 342, 343, 344, 41, 451, 93, 391, - 41, 93, 41, 326, 535, 536, 537, 538, 539, 540, - 541, 41, 317, 317, 41, 40, 1543, 40, 341, 1626, - 1558, 58, 58, 1575, 93, 1563, 1564, 1565, 125, 1567, - 1659, 1569, 1570, 1571, 93, 93, 93, 40, 263, 388, - 389, 390, 1568, 392, 504, 91, 395, 91, 260, 261, - 262, 263, 40, 1591, 1592, 1593, 268, 40, 123, 271, - 93, 273, 274, 275, 276, 277, 278, 279, 41, 281, - 282, 283, 284, 41, 286, 287, 288, 40, 290, 291, - 292, 293, 40, 421, 296, 297, 298, 299, 1623, 41, - 41, 93, 93, 510, 306, 44, 308, 274, 41, 311, - 41, 58, 41, 315, 316, 60, 318, 44, 61, 1662, - 322, 323, 324, 325, 93, 125, 1654, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 273, 339, 40, 40, - 1665, 40, 62, 294, 41, 41, 1663, 93, 41, 93, - 301, 41, 303, 304, 305, 93, 358, 359, 360, 361, - 362, 93, 364, 365, 41, 93, 41, 93, 41, 41, - 543, 93, 374, 375, 41, 41, 91, 93, 41, 93, - 41, 41, 33, 41, 41, 41, 273, 41, 41, 391, - 93, 342, 343, 344, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 93, 41, 263, 93, 0, 44, 388, 389, 390, - 91, 392, 274, 93, 395, 93, 448, 449, 450, 451, - 93, 453, 454, 455, 456, 41, 41, 459, 41, 461, - 40, 463, 464, 465, 466, 263, 468, 469, 33, 471, - 472, 473, 93, 38, 93, 40, 41, 42, 480, 44, - 93, 40, 47, 40, 40, 40, 58, 424, 425, 426, - 427, 41, 58, 41, 59, 60, 61, 62, 58, 41, - 41, 40, 40, 93, 38, 41, 508, 509, 510, 41, - 41, 448, 449, 450, 451, 93, 93, 41, 93, 40, - 40, 40, 40, 40, 526, 527, 91, 529, 530, 531, - 40, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 40, 543, 40, 40, 40, 260, 261, 40, 263, 40, - 93, 41, 40, 268, 60, 58, 41, 40, 123, 263, - 125, 40, 40, 93, 451, 40, 91, 41, 40, 263, - 41, 41, 41, 41, 461, 40, 274, 464, 41, 41, - 40, 296, 40, 510, 299, 41, 358, 41, 274, 123, - 40, 306, 41, 41, 123, 41, 123, 125, 535, 536, - 537, 538, 539, 540, 541, 44, 40, 123, 123, 260, - 261, 62, 263, 125, 123, 123, 41, 268, 125, 62, - 271, 123, 41, 41, 275, 276, 277, 278, 279, 123, - 281, 282, 283, 284, 41, 286, 287, 41, 41, 290, - 291, 292, 293, 125, 125, 296, 297, 298, 535, 536, - 537, 538, 539, 540, 541, 306, 123, 308, 41, 123, - 62, 41, 123, 40, 40, 417, 41, 180, 123, 828, - 1034, 1011, 323, 324, 325, 739, 1502, 895, 277, 278, - 279, 41, 281, 282, 283, 284, 1009, 286, 287, 1138, - 1276, 290, 291, 292, 293, 260, 261, 1196, 263, 414, - 415, 416, 59, 268, 914, 701, 271, 358, 273, 274, - 275, 276, 277, 278, 279, 904, 281, 282, 283, 284, - 1264, 286, 287, 1277, 350, 290, 291, 292, 293, 24, - 901, 296, 297, 298, 299, 9, 114, 477, 1200, 0, - 544, 306, 24, 308, 278, 605, 311, 281, 282, 283, - 284, 316, 286, 287, 288, 754, 64, 322, 323, 324, - 325, 758, 368, 414, 415, 416, 671, 304, 125, -1, - 489, -1, 33, 260, 261, -1, 263, 38, -1, 40, - 41, 42, -1, 44, -1, -1, 47, -1, -1, -1, - -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, - 375, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 391, -1, -1, -1, - 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 123, 428, 125, -1, 431, 432, 355, 356, - 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 543, 380, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 480, 273, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, - -1, -1, 339, -1, -1, -1, -1, 474, -1, 476, - 477, 478, 479, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, 365, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, 123, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, 33, -1, -1, -1, - -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, - -1, -1, -1, -1, 451, -1, -1, 358, -1, 360, - 361, 362, 59, 60, 61, 62, 463, -1, 465, 466, - -1, 468, 469, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, - 431, 432, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, 294, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, 309, -1, -1, -1, -1, 480, - -1, -1, 277, 278, 279, -1, 281, 282, 283, 284, - 325, 286, 287, 288, -1, 290, 291, 292, 293, 334, - -1, -1, 297, 298, -1, -1, -1, 508, 509, -1, - -1, -1, -1, 348, 349, 350, 351, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, 543, -1, -1, 380, 381, 382, 383, 384, - 385, 386, -1, -1, -1, -1, 38, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - 365, 268, 59, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, - 33, 123, -1, 260, 261, 38, 263, 40, 41, 42, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, 355, 356, - 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, 380, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, 260, -1, - -1, 263, -1, 480, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 278, -1, -1, 281, - 282, 283, 284, -1, 286, 287, 288, -1, -1, 296, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 474, -1, 476, - 477, 478, 479, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, 59, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, 409, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 125, -1, 33, -1, -1, -1, -1, 38, - -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, 451, 358, -1, 360, 361, 362, - 59, 60, 61, 62, 461, -1, -1, 464, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, - -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 40, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, + 1186, 529, 530, 531, 40, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 1209, 275, 273, 264, 265, 266, + 281, 282, 283, 284, 1291, 1212, 1213, 301, 1236, 303, + 304, 305, 62, 40, 339, 451, 360, 361, 362, 286, + 287, 44, 1250, 123, 1252, 461, 260, 261, 464, 263, + 264, 365, 123, 409, 123, 1253, 123, 58, 260, 261, + 1258, 263, 40, 274, 40, 1260, 268, 40, 317, 41, + 40, 1269, 280, 281, 282, 283, 284, 275, 317, 467, + 310, 1279, 312, 313, 314, 1283, 1284, 61, 40, 1206, + 41, 470, 1381, 61, 296, 451, 1294, 299, 61, 1216, + 1217, 1218, 1219, 470, 306, 461, 44, 41, 464, 1226, + 1227, 1228, 280, 281, 282, 283, 284, 1315, 1316, 535, + 536, 537, 538, 539, 540, 541, 431, 432, 93, 41, + 41, 1329, 1330, 1331, 1332, 1333, 1334, 41, 1336, 281, + 282, 283, 284, 41, 1318, 273, 451, 41, 1415, 1335, + 260, 261, 41, 263, 44, 58, 41, 1369, 463, 125, + 465, 466, 44, 468, 469, 61, 263, 424, 425, 426, + 427, 40, 59, 281, 282, 283, 284, 1372, 61, 535, + 536, 537, 538, 539, 540, 541, 40, 40, 125, 41, + 41, 448, 449, 450, 451, 41, 1391, 38, 41, 40, + 274, 42, 41, 1390, 41, 1400, 41, 0, 360, 361, + 362, 91, 414, 415, 416, 1402, 1414, 41, 328, 60, + 330, 331, 41, 1421, 41, 41, 41, 337, 41, 41, + 535, 536, 537, 538, 539, 540, 541, 41, 125, 41, + 33, 274, 41, 93, 93, 38, 44, 40, 41, 42, + 91, 44, 41, 44, 47, 41, 44, 40, 1432, 40, + 40, 58, 269, 41, 41, 272, 59, 60, 61, 62, + 40, 294, 41, 41, 41, 1488, 40, 62, 535, 536, + 537, 538, 539, 540, 541, 41, 1553, 41, 295, 296, + 91, 40, 1487, 300, 40, 302, 497, 489, 91, 1486, + 93, 501, 309, 431, 432, 41, 277, 125, 61, 61, + 1508, 1509, 1510, 123, 62, 41, 41, 41, 41, 326, + 41, 451, 93, 451, 41, 391, 317, 93, 41, 41, + 123, 317, 125, 41, 341, 463, 40, 465, 40, 58, + 468, 469, 58, 294, 38, 40, 93, 263, 93, 93, + 301, 93, 303, 304, 305, 504, 91, 40, 1545, 59, + 91, 40, 1629, 1561, 123, 93, 1578, 41, 1566, 1567, + 1568, 41, 1570, 1662, 1572, 1573, 1574, 40, 40, 421, + 260, 261, 41, 263, 41, 1571, 273, 93, 268, 44, + 93, 342, 343, 344, 510, 274, 1594, 1595, 1596, 41, + 58, 41, 41, 44, 60, 93, 40, 535, 536, 537, + 538, 539, 540, 541, 61, 40, 296, 40, 40, 260, + 261, 40, 263, 40, 40, 125, 306, 40, 40, 123, + 40, 1626, 40, 40, 125, 62, 41, 388, 389, 390, + 93, 392, 41, 93, 395, 41, 41, 93, 93, 41, + 93, 41, 1665, 41, 41, 93, 93, 41, 41, 1657, + 93, 41, 93, 41, 93, 41, 41, 260, 261, 262, + 263, 41, 93, 1668, 41, 268, 41, 41, 271, 1666, + 273, 274, 275, 276, 277, 278, 279, 93, 281, 282, + 283, 284, 93, 286, 287, 288, 93, 290, 291, 292, + 293, 263, 41, 296, 297, 298, 299, 93, 44, 274, + 41, 41, 41, 306, 40, 308, 93, 40, 311, 360, + 361, 362, 315, 316, 263, 318, 40, 93, 33, 322, + 323, 324, 325, 38, 414, 415, 416, 42, 93, 40, + 40, 58, 41, 277, 278, 279, 339, 281, 282, 283, + 284, 41, 286, 287, 58, 60, 290, 291, 292, 293, + 58, 41, 41, 41, 451, 358, 359, 360, 361, 362, + 40, 364, 365, 273, 461, 40, 40, 464, 41, 41, + 93, 374, 375, 93, 278, 41, 91, 281, 282, 283, + 284, 93, 286, 287, 288, 41, 296, 93, 391, 40, + 40, 40, 40, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, 262, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, - 273, -1, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, - -1, -1, -1, 296, 299, 508, 509, -1, -1, -1, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 40, 40, 40, 40, 0, 40, 40, 40, 535, 536, + 537, 538, 539, 540, 541, 448, 449, 450, 451, 41, + 453, 454, 455, 456, 40, 263, 459, 93, 461, 60, + 463, 464, 465, 466, 58, 468, 469, 33, 471, 472, + 473, 41, 38, 93, 40, 41, 42, 480, 44, 40, + 40, 47, 40, 40, 263, 41, 40, 358, 41, 91, + 41, 41, 41, 59, 60, 61, 62, 40, 40, 409, + 41, 274, 41, 40, 510, 508, 509, 510, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 526, 527, 91, 529, 530, 531, 41, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 41, + 543, 451, 274, 40, 123, 260, 261, 41, 263, 41, + 125, 461, 41, 268, 464, 123, 271, 123, 123, 125, + 275, 276, 277, 278, 279, 44, 281, 282, 283, 284, + 125, 286, 287, 125, 62, 290, 291, 292, 293, 123, + 40, 296, 297, 298, 62, 294, 41, 123, 41, 59, + 123, 306, 301, 308, 303, 304, 305, 38, 123, 125, + 123, 42, 41, 41, 41, 41, 125, 123, 323, 324, + 325, 41, 123, 62, 123, 41, 40, 40, 123, 60, + 41, 180, 417, 828, 1011, 535, 536, 537, 538, 539, + 540, 541, 739, 342, 343, 344, 1034, 895, 1504, 1276, + 1009, 1138, 914, 358, 1196, 360, 361, 362, 1260, 701, + 91, 904, 350, 1264, 1277, 125, 477, 24, 9, 374, + 375, 1200, 901, 114, 24, 544, 754, 758, 605, 304, + 64, 671, 368, -1, -1, 489, -1, -1, -1, 388, + 389, 390, -1, 392, -1, -1, 395, -1, 38, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, 414, + 415, 416, 268, 59, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, 269, -1, -1, 272, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, 91, -1, -1, 322, 323, 324, 325, + 295, 296, -1, -1, -1, 300, -1, 302, -1, 125, + -1, 33, -1, 123, 309, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, 47, -1, -1, -1, -1, + -1, 326, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, 273, -1, -1, 341, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, 391, 296, -1, 543, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + 260, -1, -1, 263, 480, -1, -1, 273, -1, 360, + 361, 362, 260, 261, 262, 263, 264, -1, 278, -1, + 268, 281, 282, 283, 284, -1, 286, 287, 288, 409, + 296, -1, 508, 509, -1, 283, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, + -1, 451, 320, 321, -1, -1, -1, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, 59, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, 409, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, 535, 536, 537, 538, 539, + 540, 541, -1, 125, -1, 33, 414, 415, 416, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, 451, 358, -1, 360, 361, + 362, 59, 60, 61, 62, 461, -1, -1, 464, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, 535, + 536, 537, 538, 539, 540, 541, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, 262, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, + -1, 273, -1, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, + -1, -1, -1, -1, 296, 299, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - 59, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, 409, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 125, -1, 33, -1, - -1, -1, -1, 38, -1, 40, 41, 42, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 451, 358, - -1, 360, 361, 362, 59, 60, 61, 62, 461, -1, - -1, 464, -1, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, - 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 480, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, 409, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, 451, + 358, -1, 360, 361, 362, 59, 60, 61, 62, 461, + -1, -1, 464, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 480, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, + -1, -1, -1, -1, 474, -1, 476, 477, 478, 479, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, 365, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, 123, 290, 291, 292, 293, + -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, + -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, 294, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, 309, -1, -1, -1, -1, 480, -1, -1, 277, + 278, 279, -1, 281, 282, 283, 284, 325, 286, 287, + 288, -1, 290, 291, 292, 293, 334, -1, -1, 297, + 298, -1, -1, -1, 508, 509, -1, -1, -1, -1, + 348, 349, 350, 351, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, + -1, -1, 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, 59, -1, 271, -1, 273, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - 409, 316, -1, -1, -1, -1, -1, 322, 323, 324, - 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, -1, 33, -1, -1, -1, -1, 38, -1, 40, - 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, 451, 358, -1, 360, 361, 362, 59, 60, - 61, 62, 461, -1, -1, 464, -1, -1, -1, 374, - 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 480, -1, -1, 273, -1, + 260, 261, -1, 263, -1, -1, -1, 365, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, 260, 261, + -1, 263, 38, -1, 40, 41, 42, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, + -1, 431, 432, 355, 356, 357, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 380, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, 271, -1, -1, -1, -1, + 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 296, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, + 346, -1, 474, -1, 476, 477, 478, 479, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, + -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, + 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, + 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, + 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, - -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, - 311, -1, -1, -1, 409, 316, -1, -1, -1, -1, - -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, 451, 358, -1, 360, - 361, 362, 59, 60, 61, 62, 461, -1, -1, 464, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, 271, -1, -1, -1, -1, 480, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, - 297, 298, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, 543, -1, -1, -1, -1, -1, -1, 346, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, 365, -1, - -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, - -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, + -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, + -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, + -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, + 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, + 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, - 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, - 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, - -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, - -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, - 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, - 59, -1, 61, 62, -1, -1, -1, -1, -1, -1, - -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 391, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, + -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 41, 391, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, + 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, + -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, - -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 294, -1, -1, -1, -1, -1, -1, 301, -1, 303, - 304, 305, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, 374, 375, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 342, 343, - 344, -1, 391, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 123, -1, 125, -1, 428, - -1, -1, 431, 432, 388, 389, 390, -1, 392, -1, - -1, 395, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, 294, -1, -1, -1, -1, - -1, 480, 301, -1, 303, 304, 305, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 342, 343, 344, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, 388, - 389, 390, -1, 392, -1, 273, 395, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, + -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, + -1, -1, -1, -1, -1, -1, 301, -1, 303, 304, + 305, -1, -1, -1, -1, -1, -1, -1, 358, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, 374, 375, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 342, 343, 344, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 123, -1, 125, -1, 428, -1, + -1, 431, 432, 388, 389, 390, -1, 392, -1, -1, + 395, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, - -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, - -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, - 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 0, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, 323, -1, - -1, -1, 327, -1, -1, 330, 331, -1, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 260, -1, -1, 263, -1, -1, 353, -1, - -1, 356, 543, -1, -1, 273, -1, -1, 363, 277, - 278, 279, -1, 281, 282, 283, 284, 372, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, 294, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, 323, -1, -1, + -1, 327, -1, -1, 330, 331, -1, -1, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 260, -1, -1, 263, -1, -1, 353, -1, -1, + 356, 543, -1, -1, 273, -1, -1, 363, 277, 278, + 279, -1, 281, 282, 283, 284, 372, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 0, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 123, -1, 125, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, 294, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, 323, -1, -1, + -1, 327, -1, -1, 330, 331, -1, -1, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 260, -1, -1, 263, -1, -1, 353, -1, -1, + 356, 543, -1, -1, 273, -1, -1, 363, 277, 278, + 279, -1, 281, 282, 283, 284, 372, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, 0, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 123, -1, 125, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, 0, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 322, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, - -1, 339, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 359, 323, 324, 325, -1, 364, 365, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, 543, -1, -1, 273, -1, -1, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, 0, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, + 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, - -1, -1, 543, -1, -1, 273, -1, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - 288, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, 59, 294, 295, -1, -1, -1, -1, 300, -1, - 302, -1, -1, -1, 322, -1, -1, 309, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 339, -1, -1, 326, 327, -1, 329, 330, 331, - 332, 333, -1, -1, -1, -1, 338, -1, -1, 341, - -1, 359, -1, -1, -1, 347, 364, 365, -1, -1, - 352, -1, 354, -1, -1, -1, -1, 125, -1, -1, - -1, -1, -1, -1, 366, 367, 368, 369, 370, 371, - 372, 373, -1, -1, -1, -1, -1, 379, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, 0, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, - 468, 469, -1, 471, 472, 473, -1, 296, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, 273, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 391, -1, 322, -1, -1, 396, 397, 398, + -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, + 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, 260, -1, -1, 263, - 448, 449, 450, 451, -1, 453, 454, 526, 527, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, 473, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 539, 540, 541, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - 0, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, 448, 449, 450, 451, 273, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, - -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, 543, -1, -1, 273, -1, -1, -1, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 59, 294, 295, -1, -1, -1, -1, 300, -1, 302, + -1, -1, -1, 322, -1, -1, 309, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 339, -1, -1, 326, 327, -1, 329, 330, 331, 332, + 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, + 359, -1, -1, -1, 347, 364, 365, -1, -1, 352, + -1, 354, -1, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, 370, 371, 372, + 373, -1, -1, -1, -1, -1, 379, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, + 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, -1, 273, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, 322, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + 409, -1, 411, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 423, -1, -1, -1, -1, 428, + -1, -1, 431, 432, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, 260, -1, -1, 263, 448, + 449, 450, 451, -1, 453, 454, 526, 527, 273, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, 473, -1, -1, -1, -1, -1, + -1, 296, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 425, 426, 427, 428, 429, 430, 431, 432, -1, 0, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, 448, 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, 40, 41, -1, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, + 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 273, 529, 530, 531, -1, 533, 534, + -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 339, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, 448, 449, - 450, 451, -1, 453, 454, 455, 456, 273, 274, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, 40, 41, -1, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 311, 61, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, 274, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, 311, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, 0, -1, -1, -1, -1, 306, -1, 308, + 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 358, - -1, 59, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, 273, 274, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, - -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, 543, -1, 417, 418, 419, 420, - 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, - 431, 432, 260, 59, -1, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, - 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, 448, 449, 450, + 451, -1, 453, 454, 455, 456, 273, 274, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, + 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 311, 61, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, 59, -1, -1, -1, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, 260, -1, 464, 263, -1, -1, - -1, -1, -1, 471, 472, 473, -1, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, 274, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, 311, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 260, -1, -1, + 406, 407, 408, 409, 410, 411, 412, 413, 358, -1, + 59, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 273, 59, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 273, 274, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, + -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, + 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, 273, -1, 459, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, 543, -1, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, + 432, 260, 59, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, + 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 322, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 59, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, - 449, 450, 451, 260, 453, 454, 455, 456, -1, -1, - 459, -1, 461, 431, 432, 464, 273, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, 463, 464, -1, -1, -1, - 123, -1, 125, 471, 472, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, 260, -1, 464, 263, -1, -1, -1, + -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - 273, -1, 459, -1, 461, -1, -1, 464, -1, -1, + 427, 428, 429, 430, 431, 432, 260, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, + 59, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 260, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, - 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, - 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 273, -1, 459, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, - -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, + 430, 431, 432, -1, -1, 59, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, -1, -1, 448, 449, + 450, 451, 260, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 431, 432, 464, 273, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, + -1, -1, 461, -1, 463, 464, -1, -1, -1, 123, + -1, 125, 471, 472, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 540, 541, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 260, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, 448, 449, 450, 451, -1, 453, + 454, 455, 456, -1, -1, 459, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, 260, -1, -1, 263, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, - 448, 449, 450, 451, 59, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, 322, -1, -1, + -1, 322, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 260, -1, 464, 263, -1, -1, -1, -1, -1, + 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 508, 509, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 0, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 322, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, 59, -1, 61, -1, -1, 306, -1, 308, + -1, -1, -1, 322, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 358, - 359, -1, 260, 428, -1, 263, 431, 432, 125, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, - -1, -1, -1, -1, 0, -1, 471, 472, 473, -1, - -1, -1, -1, -1, -1, 414, 415, 416, -1, -1, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, 451, -1, -1, -1, -1, -1, -1, -1, - -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 273, -1, -1, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 125, - 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 543, -1, -1, 0, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 125, 459, -1, 461, -1, 322, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, 125, -1, 431, 432, -1, 273, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, -1, -1, 461, -1, -1, 464, 273, -1, - -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, 0, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, -1, 428, + -1, -1, 431, 432, 260, -1, -1, 263, 44, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, 448, + 449, 450, 451, 59, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, -1, -1, - 273, -1, 0, -1, -1, -1, -1, 423, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, 409, 410, 411, 412, 413, -1, - 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, -1, -1, 461, 431, 432, 464, -1, - -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, - -1, 59, -1, 448, 449, 450, 451, -1, -1, -1, - 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, - -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, - -1, -1, 508, 509, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 125, -1, -1, - -1, -1, -1, 273, -1, -1, 409, 410, 411, 412, - 413, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, 0, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 322, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, 59, -1, 61, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 358, 359, + -1, 260, 428, -1, 263, 431, 432, 125, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 409, - 410, 411, 412, 413, -1, 273, -1, -1, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, 257, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, 0, - -1, 471, 472, -1, -1, -1, -1, 276, 277, -1, - 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, - 289, 290, 291, 292, 293, -1, -1, 59, -1, -1, + -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, + -1, -1, -1, 0, -1, 471, 472, 473, -1, -1, + -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, + 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 273, -1, -1, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 125, 428, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 543, -1, -1, 0, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 125, + 459, -1, 461, -1, 322, 464, -1, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, 526, 527, 59, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, 448, - 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, - 273, -1, 461, 431, 432, 464, -1, -1, -1, -1, - 0, -1, 471, 472, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, 125, -1, -1, 455, 456, -1, - -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, 59, + -1, -1, -1, -1, -1, 59, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 484, 485, -1, 487, 488, - 489, -1, 491, 492, -1, -1, 495, 496, -1, 498, - -1, -1, -1, -1, -1, 125, 409, 410, 411, 412, - 413, 273, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, - -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, + 428, 125, -1, 431, 432, -1, 273, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, -1, -1, 461, -1, -1, 464, 273, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, -1, 273, + -1, 0, -1, -1, -1, -1, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, 409, 410, 411, 412, 413, -1, 59, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, -1, -1, 461, 431, 432, 464, -1, -1, + -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, + 59, -1, 448, 449, 450, 451, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, + -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, + -1, 508, 509, -1, -1, 125, -1, -1, -1, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, 125, -1, -1, -1, + -1, -1, 273, -1, -1, 409, 410, 411, 412, 413, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, - 431, 432, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 33, -1, 455, 456, -1, 38, -1, -1, - 461, 42, -1, 464, -1, -1, -1, -1, -1, -1, - 471, 472, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 91, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, 526, 527, -1, 529, 530, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 409, 410, + 411, 412, 413, -1, 273, -1, -1, -1, -1, -1, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, 455, 456, -1, 257, -1, -1, + 461, -1, -1, 464, -1, -1, -1, -1, 0, -1, + 471, 472, -1, -1, -1, -1, 276, 277, -1, 279, + 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, + 290, 291, 292, 293, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, - -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, -1, -1, 448, 449, + 450, 451, 125, -1, -1, 455, 456, -1, -1, 273, + -1, 461, 431, 432, 464, -1, -1, -1, -1, 0, + -1, 471, 472, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + -1, -1, -1, -1, -1, -1, 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 91, -1, -1, -1, -1, -1, -1, -1, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, 484, 485, -1, 487, 488, 489, + -1, 491, 492, -1, -1, 495, 496, -1, 498, -1, + -1, -1, -1, -1, 125, 409, 410, 411, 412, 413, + 273, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, 273, -1, -1, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, 60, 360, - 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, 414, 415, 416, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, 33, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, 361, 362, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, + 413, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, 431, + 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 33, -1, 455, 456, -1, 38, -1, -1, 461, + 42, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 91, + -1, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, + 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, + 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, 414, 415, 416, 260, 261, + 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 91, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, - 38, -1, 91, -1, 42, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, -1, 91, 33, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, 271, -1, -1, 543, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, - -1, -1, 414, 415, 416, -1, 306, -1, 308, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, - 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, - -1, -1, 372, -1, 33, -1, 376, 377, 378, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, 543, 91, 271, 323, 324, 325, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, 358, - 308, -1, -1, -1, -1, -1, 33, -1, -1, -1, - 480, -1, -1, -1, -1, 323, 324, 325, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 294, -1, -1, 297, 298, - 358, -1, 360, 361, 362, -1, -1, 306, -1, 308, + -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, + 362, -1, 33, -1, -1, -1, -1, 38, -1, -1, + -1, 42, 374, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, + -1, 271, 414, 415, 416, 275, 276, 277, 278, 279, + 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, 294, -1, -1, 297, 298, 358, -1, + 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, + 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 416, 358, -1, -1, + -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, + -1, 372, -1, -1, -1, 376, 377, 378, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1, -1, -1, 543, 323, 324, 325, -1, 327, -1, - 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 414, 415, 416, 358, - -1, -1, -1, -1, -1, -1, -1, 366, 367, 368, - 369, -1, -1, 372, -1, -1, -1, 376, 377, 378, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, 33, -1, -1, 306, -1, 308, - -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, 327, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, 543, -1, -1, -1, 358, -1, 360, + 361, 362, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, + 297, 298, 91, -1, -1, -1, -1, -1, -1, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 543, 414, 415, 416, 323, 324, 325, 33, + 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 480, 91, 260, 261, 543, 263, -1, -1, -1, - -1, 268, -1, 372, 271, -1, -1, 33, 275, 276, + -1, 358, -1, -1, -1, -1, -1, -1, -1, 366, + 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, + 377, 378, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, 33, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, 414, 415, 416, -1, -1, - -1, -1, -1, -1, 543, -1, 323, 324, 325, -1, - -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 543, -1, -1, -1, 323, 324, 325, -1, + 327, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, 480, -1, -1, 275, 276, 277, 278, + 279, 358, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, 372, -1, 296, 297, 298, + -1, -1, -1, -1, -1, -1, -1, 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, 359, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 271, -1, -1, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, 91, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, - -1, -1, -1, -1, 323, 324, 325, -1, -1, 33, - -1, 260, 261, -1, 263, -1, -1, 41, -1, 268, - -1, -1, 271, -1, 543, -1, 275, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 358, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, -1, 308, - -1, -1, -1, -1, -1, -1, -1, 91, 33, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 543, 414, 415, 416, + -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, 358, + 359, 275, 276, 277, 278, 279, 91, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, 323, + 324, 325, -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, - 286, 287, -1, -1, 290, 291, 292, 293, -1, 40, - 296, 297, 298, -1, -1, -1, 543, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, 33, 59, 60, + 276, 277, 278, 279, 358, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, 91, 543, -1, -1, -1, + 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, 414, 415, 416, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, 358, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, 91, -1, -1, -1, 306, - -1, 308, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, - -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 416, -1, -1, -1, -1, -1, -1, 271, -1, -1, - -1, 358, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 41, 297, 298, -1, -1, -1, 47, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - 59, -1, -1, -1, 543, -1, -1, -1, -1, 323, - 324, 325, -1, -1, -1, -1, 271, 414, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, 543, -1, 271, -1, -1, 33, 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, -1, 297, 298, 358, -1, -1, -1, -1, 260, - -1, 306, 263, 308, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 123, -1, 125, -1, 323, 324, - 325, -1, -1, -1, -1, -1, -1, 543, -1, -1, - -1, 41, -1, -1, -1, 271, -1, -1, -1, -1, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 59, - 286, 287, -1, 358, 290, 291, 292, 293, -1, -1, + -1, 296, 297, 298, -1, -1, -1, -1, 414, 415, + 416, 306, -1, 308, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, + 325, -1, -1, -1, 33, -1, -1, 91, -1, -1, + -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 543, + -1, -1, -1, 358, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 91, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, -1, -1, 33, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, 414, + 415, 416, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, 543, -1, 271, + -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, 358, -1, -1, 297, 298, -1, -1, -1, + 33, -1, -1, -1, 306, -1, 308, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, 414, 415, + 416, 275, 276, 277, 278, 279, 358, 281, 282, 283, + 284, 40, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, -1, 297, 298, -1, -1, -1, 543, -1, + 59, 60, 306, -1, 308, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, + 324, 325, 271, -1, -1, -1, -1, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, + -1, -1, -1, -1, 358, -1, -1, 306, -1, 308, + -1, -1, -1, 91, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 271, -1, 543, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, 41, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - -1, 260, 413, -1, 263, -1, 417, 418, 419, 420, - 421, 422, -1, -1, 273, 274, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, 543, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, - -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, -1, 59, + -1, 59, -1, -1, -1, -1, -1, -1, 271, -1, + -1, 543, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, 358, -1, 297, 298, -1, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, + 323, 324, 325, -1, 273, 123, 41, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 543, -1, - -1, -1, -1, -1, -1, -1, -1, 508, 509, 510, - 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, - 541, -1, 391, 123, -1, 125, -1, 396, 397, 398, + -1, -1, -1, -1, 59, -1, -1, -1, -1, 543, + -1, -1, -1, 271, -1, 358, -1, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 543, 323, 324, 325, 123, -1, + 125, -1, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 358, -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 59, -1, 413, -1, -1, 543, 417, 418, - 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, 413, 263, -1, -1, 417, 418, + 419, 420, 421, 422, -1, 273, 274, 543, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + -1, 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, 123, -1, 125, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 543, -1, -1, -1, -1, 260, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 508, + 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, 391, 59, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 543, -1, -1, 260, -1, + -1, 263, -1, 431, 432, -1, -1, -1, -1, -1, + -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, -1, -1, -1, 123, -1, + 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, + 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 508, - 509, 59, -1, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, - 260, 431, 432, 263, -1, -1, 535, 536, 537, 538, - 539, 540, 541, 273, 274, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, + -1, -1, -1, 448, 449, 450, 451, 535, 536, 537, + 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, 508, 509, 260, -1, -1, 263, 431, + 432, -1, -1, -1, -1, -1, -1, -1, 273, 123, + -1, 125, -1, -1, -1, -1, 448, 449, 450, 451, + 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, 123, -1, 125, -1, -1, + -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, -1, 263, -1, -1, 448, 449, - 450, 451, -1, -1, -1, 273, 123, -1, 125, 459, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, + -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, - 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, + -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, + -1, -1, 260, -1, -1, 263, -1, 431, 432, -1, + -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, + -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, + -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, -1, -1, 508, 509, -1, -1, -1, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 508, 509, 260, -1, 413, 263, -1, -1, 417, - 418, 419, 420, 421, 422, -1, 273, 123, -1, 125, - -1, -1, -1, 431, 432, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, -1, -1, -1, - -1, 459, 59, -1, -1, -1, -1, -1, -1, -1, + 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, + 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, + -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, + 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4319,10 +4360,10 @@ static const YYINT yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, 260, -1, 413, 263, -1, -1, - 417, 418, 419, 420, 421, 422, -1, 273, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + 260, -1, -1, 263, 431, 432, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, @@ -4333,138 +4374,114 @@ static const YYINT yycheck[] = { 4, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 273, - 123, -1, 125, 459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, 396, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, -1, 260, 59, -1, 263, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, + 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 508, 509, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, - -1, -1, -1, -1, 431, 432, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, - -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + 407, 408, -1, 125, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, + 540, 541, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 59, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, - 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, + 537, 538, 539, 540, 541, 459, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, 260, -1, -1, 263, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 125, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, 59, -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 508, 509, 260, -1, 413, - 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, - 273, -1, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, 273, -1, 459, 409, 410, 411, + 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, -1, 125, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, 508, 509, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, 59, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, 273, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, 125, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, - 125, -1, -1, -1, -1, -1, -1, 273, -1, -1, - 409, 410, 411, 412, 413, 448, 449, 450, 451, -1, - -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, -1, -1, -1, 448, + -1, -1, -1, -1, -1, 273, -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, 508, 509, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 322, 526, 527, -1, + -1, -1, 471, 472, -1, -1, -1, -1, -1, 409, + 123, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 423, 322, -1, -1, -1, 428, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 409, 410, 411, 412, 413, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, -1, -1, -1, -1, 461, -1, 322, 464, -1, - -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, - -1, -1, 123, 409, -1, 411, 412, 413, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, + 539, 540, 541, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 473, -1, -1, - -1, -1, -1, -1, 409, -1, 411, 412, 413, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 423, -1, - -1, -1, -1, 428, -1, -1, 431, 432, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, 257, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 271, -1, -1, -1, -1, 276, 277, -1, 279, 280, - 281, 282, 283, 284, -1, 286, 287, -1, 289, 290, - 291, 292, 293, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, 535, 536, 537, 538, 539, + 540, 541, -1, -1, 257, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, -1, 271, -1, + -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, + 283, 284, 257, 286, 287, 473, 289, 290, 291, 292, + 293, -1, -1, -1, -1, -1, 271, -1, -1, -1, + -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, + -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 335, -1, 337, -1, -1, -1, -1, 342, + -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, + 538, 539, 540, 541, -1, 358, -1, -1, -1, -1, + 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, 257, - -1, -1, -1, -1, 335, -1, 337, -1, -1, -1, - -1, 342, -1, 271, -1, -1, -1, -1, 276, 277, - -1, 279, 280, 281, 282, 283, 284, 358, 286, 287, - -1, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 335, -1, 337, - -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 481, -1, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, - -1, -1, 503, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, -1, -1, + 503, -1, -1, -1, -1, -1, 481, -1, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, -1, -1, -1, 503, +}; +#if YYBTYACC +static const YYINT yyctable[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 481, -1, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, -1, -1, -1, 503, -}; -#if YYBTYACC -static const YYINT yyctable[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5961,7 +5978,7 @@ static const YYINT yyctable[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, }; #endif #define YYFINAL 1 @@ -6221,6 +6238,7 @@ static const char *const yyrule[] = { "conTyparAttrib : FLAGS_ '(' int32 ')'", "conTyparAttribs :", "conTyparAttribs : conTyparAttrib conTyparAttribs", +"typars : CONST_ conTyparAttribs type tyBound dottedName typarsRest", "typars : CONST_ conTyparAttribs type dottedName typarsRest", "typars : typarAttribs tyBound dottedName typarsRest", "typars : typarAttribs dottedName typarsRest", @@ -7060,11 +7078,11 @@ static YYINT *yylexp = 0; static YYINT *yylexemes = 0; #endif /* YYBTYACC */ -#line 2113 "asmparse.y" +#line 2114 "asmparse.y" #include "grammar_after.cpp" -#line 7068 "asmparse.cpp" +#line 7086 "asmparse.cpp" /* For use in generated program */ #define yydepth (int)(yystack.s_mark - yystack.s_base) @@ -7737,12 +7755,12 @@ YYPARSE_DECL() case 3: #line 195 "asmparse.y" { PASM->EndClass(); } -#line 7741 "asmparse.cpp" +#line 7759 "asmparse.cpp" break; case 4: #line 196 "asmparse.y" { PASM->EndNameSpace(); } -#line 7746 "asmparse.cpp" +#line 7764 "asmparse.cpp" break; case 5: #line 197 "asmparse.y" @@ -7750,27 +7768,27 @@ case 5: { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7754 "asmparse.cpp" +#line 7772 "asmparse.cpp" break; case 12: #line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 7759 "asmparse.cpp" +#line 7777 "asmparse.cpp" break; case 13: #line 208 "asmparse.y" { PASMM->EndAssembly(); } -#line 7764 "asmparse.cpp" +#line 7782 "asmparse.cpp" break; case 14: #line 209 "asmparse.y" { PASMM->EndComType(); } -#line 7769 "asmparse.cpp" +#line 7787 "asmparse.cpp" break; case 15: #line 210 "asmparse.y" { PASMM->EndManifestRes(); } -#line 7774 "asmparse.cpp" +#line 7792 "asmparse.cpp" break; case 19: #line 214 "asmparse.y" @@ -7784,178 +7802,178 @@ case 19: #pragma warning(pop) #endif } -#line 7788 "asmparse.cpp" +#line 7806 "asmparse.cpp" break; case 20: #line 224 "asmparse.y" { PASM->m_dwComImageFlags = yystack.l_mark[0].int32; } -#line 7793 "asmparse.cpp" +#line 7811 "asmparse.cpp" break; case 21: #line 225 "asmparse.y" { PASM->m_dwFileAlignment = yystack.l_mark[0].int32; if((yystack.l_mark[0].int32 & (yystack.l_mark[0].int32 - 1))||(yystack.l_mark[0].int32 < 0x200)||(yystack.l_mark[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 7800 "asmparse.cpp" +#line 7818 "asmparse.cpp" break; case 22: #line 228 "asmparse.y" { PASM->m_stBaseAddress = (ULONGLONG)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 7807 "asmparse.cpp" +#line 7825 "asmparse.cpp" break; case 23: #line 231 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; } -#line 7812 "asmparse.cpp" +#line 7830 "asmparse.cpp" break; case 28: #line 236 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 7817 "asmparse.cpp" +#line 7835 "asmparse.cpp" break; case 31: #line 243 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 7822 "asmparse.cpp" +#line 7840 "asmparse.cpp" break; case 32: #line 244 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 7827 "asmparse.cpp" +#line 7845 "asmparse.cpp" break; case 33: #line 247 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLang)); } -#line 7832 "asmparse.cpp" +#line 7850 "asmparse.cpp" break; case 34: #line 248 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLangVendor));} -#line 7838 "asmparse.cpp" +#line 7856 "asmparse.cpp" break; case 35: #line 250 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidDoc));} -#line 7845 "asmparse.cpp" +#line 7863 "asmparse.cpp" break; case 36: #line 255 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7850 "asmparse.cpp" +#line 7868 "asmparse.cpp" break; case 37: #line 256 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7855 "asmparse.cpp" +#line 7873 "asmparse.cpp" break; case 38: #line 259 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7860 "asmparse.cpp" +#line 7878 "asmparse.cpp" break; case 39: #line 260 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7865 "asmparse.cpp" +#line 7883 "asmparse.cpp" break; case 40: #line 261 "asmparse.y" { yyval.string = newStringWDel(yystack.l_mark[-2].string, '.', yystack.l_mark[0].string); } -#line 7870 "asmparse.cpp" +#line 7888 "asmparse.cpp" break; case 41: #line 264 "asmparse.y" { yyval.int32 = yystack.l_mark[0].int32; } -#line 7875 "asmparse.cpp" +#line 7893 "asmparse.cpp" break; case 42: #line 267 "asmparse.y" { yyval.int64 = yystack.l_mark[0].int64; } -#line 7880 "asmparse.cpp" +#line 7898 "asmparse.cpp" break; case 43: #line 268 "asmparse.y" { yyval.int64 = neg ? new __int64(yystack.l_mark[0].int32) : new __int64((unsigned)yystack.l_mark[0].int32); } -#line 7885 "asmparse.cpp" +#line 7903 "asmparse.cpp" break; case 44: #line 271 "asmparse.y" { yyval.float64 = yystack.l_mark[0].float64; } -#line 7890 "asmparse.cpp" +#line 7908 "asmparse.cpp" break; case 45: #line 272 "asmparse.y" { float f; *((__int32*) (&f)) = yystack.l_mark[-1].int32; yyval.float64 = new double(f); } -#line 7895 "asmparse.cpp" +#line 7913 "asmparse.cpp" break; case 46: #line 273 "asmparse.y" { yyval.float64 = (double*) yystack.l_mark[-1].int64; } -#line 7900 "asmparse.cpp" +#line 7918 "asmparse.cpp" break; case 47: #line 277 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].binstr,yystack.l_mark[0].string); } -#line 7905 "asmparse.cpp" +#line 7923 "asmparse.cpp" break; case 48: #line 278 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } -#line 7910 "asmparse.cpp" +#line 7928 "asmparse.cpp" break; case 49: #line 279 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } -#line 7915 "asmparse.cpp" +#line 7933 "asmparse.cpp" break; case 50: #line 280 "asmparse.y" { yystack.l_mark[-2].cad->tkOwner = 0; PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } -#line 7920 "asmparse.cpp" +#line 7938 "asmparse.cpp" break; case 51: #line 281 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } -#line 7925 "asmparse.cpp" +#line 7943 "asmparse.cpp" break; case 52: #line 286 "asmparse.y" { DefineVar(yystack.l_mark[0].string, NULL); } -#line 7930 "asmparse.cpp" +#line 7948 "asmparse.cpp" break; case 53: #line 287 "asmparse.y" { DefineVar(yystack.l_mark[-1].string, yystack.l_mark[0].binstr); } -#line 7935 "asmparse.cpp" +#line 7953 "asmparse.cpp" break; case 54: #line 288 "asmparse.y" { UndefVar(yystack.l_mark[0].string); } -#line 7940 "asmparse.cpp" +#line 7958 "asmparse.cpp" break; case 55: #line 289 "asmparse.y" { SkipToken = !IsVarDefined(yystack.l_mark[0].string); IfEndif++; } -#line 7947 "asmparse.cpp" +#line 7965 "asmparse.cpp" break; case 56: #line 292 "asmparse.y" { SkipToken = IsVarDefined(yystack.l_mark[0].string); IfEndif++; } -#line 7954 "asmparse.cpp" +#line 7972 "asmparse.cpp" break; case 57: #line 295 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 7959 "asmparse.cpp" +#line 7977 "asmparse.cpp" break; case 58: #line 296 "asmparse.y" @@ -7963,84 +7981,84 @@ case 58: PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 7967 "asmparse.cpp" +#line 7985 "asmparse.cpp" break; case 59: #line 300 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 7972 "asmparse.cpp" +#line 7990 "asmparse.cpp" break; case 60: #line 301 "asmparse.y" { } -#line 7977 "asmparse.cpp" +#line 7995 "asmparse.cpp" break; case 61: #line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[0].token, NULL); } -#line 7982 "asmparse.cpp" +#line 8000 "asmparse.cpp" break; case 62: #line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } -#line 7987 "asmparse.cpp" +#line 8005 "asmparse.cpp" break; case 63: #line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 7992 "asmparse.cpp" +#line 8010 "asmparse.cpp" break; case 64: #line 308 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } -#line 7997 "asmparse.cpp" +#line 8015 "asmparse.cpp" break; case 65: #line 311 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-2].token, yystack.l_mark[0].token, NULL); } -#line 8002 "asmparse.cpp" +#line 8020 "asmparse.cpp" break; case 66: #line 312 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-4].token, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } -#line 8007 "asmparse.cpp" +#line 8025 "asmparse.cpp" break; case 67: #line 314 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-6].token, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 8012 "asmparse.cpp" +#line 8030 "asmparse.cpp" break; case 68: #line 315 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } -#line 8017 "asmparse.cpp" +#line 8035 "asmparse.cpp" break; case 69: #line 318 "asmparse.y" { yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } -#line 8022 "asmparse.cpp" +#line 8040 "asmparse.cpp" break; case 70: #line 322 "asmparse.y" { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yystack.l_mark[-4].token; yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } -#line 8029 "asmparse.cpp" +#line 8047 "asmparse.cpp" break; case 71: #line 327 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8034 "asmparse.cpp" +#line 8052 "asmparse.cpp" break; case 72: #line 330 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8039 "asmparse.cpp" +#line 8057 "asmparse.cpp" break; case 73: #line 331 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8044 "asmparse.cpp" +#line 8062 "asmparse.cpp" break; case 74: #line 335 "asmparse.y" @@ -8048,28 +8066,28 @@ case 74: yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yystack.l_mark[0].binstr); nCustomBlobNVPairs = 0; } -#line 8052 "asmparse.cpp" +#line 8070 "asmparse.cpp" break; case 75: #line 341 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 8057 "asmparse.cpp" +#line 8075 "asmparse.cpp" break; case 76: #line 342 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); } -#line 8063 "asmparse.cpp" +#line 8081 "asmparse.cpp" break; case 77: #line 344 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8068 "asmparse.cpp" +#line 8086 "asmparse.cpp" break; case 78: #line 347 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8073 "asmparse.cpp" +#line 8091 "asmparse.cpp" break; case 79: #line 349 "asmparse.y" @@ -8078,22 +8096,22 @@ case 79: AppendStringWithLength(yyval.binstr,yystack.l_mark[-2].string); AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); nCustomBlobNVPairs++; } -#line 8082 "asmparse.cpp" +#line 8100 "asmparse.cpp" break; case 80: #line 354 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8087 "asmparse.cpp" +#line 8105 "asmparse.cpp" break; case 81: #line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 8092 "asmparse.cpp" +#line 8110 "asmparse.cpp" break; case 82: #line 358 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 8097 "asmparse.cpp" +#line 8115 "asmparse.cpp" break; case 83: #line 361 "asmparse.y" @@ -8101,12 +8119,12 @@ case 83: PASM->DefineCV(yystack.l_mark[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } -#line 8105 "asmparse.cpp" +#line 8123 "asmparse.cpp" break; case 84: #line 365 "asmparse.y" { PASM->DefineCV(yystack.l_mark[0].cad); } -#line 8110 "asmparse.cpp" +#line 8128 "asmparse.cpp" break; case 85: #line 366 "asmparse.y" @@ -8116,49 +8134,49 @@ case 85: PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 8120 "asmparse.cpp" +#line 8138 "asmparse.cpp" break; case 86: #line 374 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8125 "asmparse.cpp" +#line 8143 "asmparse.cpp" break; case 87: #line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 8130 "asmparse.cpp" +#line 8148 "asmparse.cpp" break; case 88: #line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 8135 "asmparse.cpp" +#line 8153 "asmparse.cpp" break; case 89: #line 377 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); } -#line 8141 "asmparse.cpp" +#line 8159 "asmparse.cpp" break; case 90: #line 379 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token)); } -#line 8147 "asmparse.cpp" +#line 8165 "asmparse.cpp" break; case 91: #line 381 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8152 "asmparse.cpp" +#line 8170 "asmparse.cpp" break; case 92: #line 386 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 8157 "asmparse.cpp" +#line 8175 "asmparse.cpp" break; case 93: #line 387 "asmparse.y" { PASMM->SetModuleName(yystack.l_mark[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 8162 "asmparse.cpp" +#line 8180 "asmparse.cpp" break; case 94: #line 388 "asmparse.y" @@ -8166,63 +8184,63 @@ case 94: unsigned L = (unsigned)strlen(yystack.l_mark[0].string); memcpy((char*)(pbs->getBuff(L)),yystack.l_mark[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 8170 "asmparse.cpp" +#line 8188 "asmparse.cpp" break; case 95: #line 395 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, yystack.l_mark[0].string)); } -#line 8176 "asmparse.cpp" +#line 8194 "asmparse.cpp" break; case 96: #line 399 "asmparse.y" { yyval.int32 = 0; } -#line 8181 "asmparse.cpp" +#line 8199 "asmparse.cpp" break; case 97: #line 400 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_32BIT; } -#line 8186 "asmparse.cpp" +#line 8204 "asmparse.cpp" break; case 98: #line 401 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_64BIT; } -#line 8191 "asmparse.cpp" +#line 8209 "asmparse.cpp" break; case 99: #line 402 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 8196 "asmparse.cpp" +#line 8214 "asmparse.cpp" break; case 100: #line 403 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 8201 "asmparse.cpp" +#line 8219 "asmparse.cpp" break; case 101: #line 404 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 8206 "asmparse.cpp" +#line 8224 "asmparse.cpp" break; case 102: #line 407 "asmparse.y" { PASM->m_pVTable = yystack.l_mark[-1].binstr; } -#line 8211 "asmparse.cpp" +#line 8229 "asmparse.cpp" break; case 103: #line 410 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8216 "asmparse.cpp" +#line 8234 "asmparse.cpp" break; case 104: #line 414 "asmparse.y" { PASM->StartNameSpace(yystack.l_mark[0].string); } -#line 8221 "asmparse.cpp" +#line 8239 "asmparse.cpp" break; case 105: #line 417 "asmparse.y" { newclass = TRUE; } -#line 8226 "asmparse.cpp" +#line 8244 "asmparse.cpp" break; case 106: #line 420 "asmparse.y" @@ -8231,347 +8249,352 @@ case 106: TyParFixupList.RESET(false); newclass = FALSE; } -#line 8235 "asmparse.cpp" +#line 8253 "asmparse.cpp" break; case 107: #line 426 "asmparse.y" { PASM->AddClass(); } -#line 8240 "asmparse.cpp" +#line 8258 "asmparse.cpp" break; case 108: #line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 8245 "asmparse.cpp" +#line 8263 "asmparse.cpp" break; case 109: #line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 8250 "asmparse.cpp" +#line 8268 "asmparse.cpp" break; case 110: #line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 8255 "asmparse.cpp" +#line 8273 "asmparse.cpp" break; case 111: #line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x80000000 | tdSealed); } -#line 8260 "asmparse.cpp" +#line 8278 "asmparse.cpp" break; case 112: #line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x40000000); } -#line 8265 "asmparse.cpp" +#line 8283 "asmparse.cpp" break; case 113: #line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdInterface | tdAbstract); } -#line 8270 "asmparse.cpp" +#line 8288 "asmparse.cpp" break; case 114: #line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSealed); } -#line 8275 "asmparse.cpp" +#line 8293 "asmparse.cpp" break; case 115: #line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdAbstract); } -#line 8280 "asmparse.cpp" +#line 8298 "asmparse.cpp" break; case 116: #line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 8285 "asmparse.cpp" +#line 8303 "asmparse.cpp" break; case 117: #line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 8290 "asmparse.cpp" +#line 8308 "asmparse.cpp" break; case 118: #line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 8295 "asmparse.cpp" +#line 8313 "asmparse.cpp" break; case 119: #line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 8300 "asmparse.cpp" +#line 8318 "asmparse.cpp" break; case 120: #line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 8305 "asmparse.cpp" +#line 8323 "asmparse.cpp" break; case 121: #line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 8310 "asmparse.cpp" +#line 8328 "asmparse.cpp" break; case 122: #line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdImport); } -#line 8315 "asmparse.cpp" +#line 8333 "asmparse.cpp" break; case 123: #line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSerializable); } -#line 8320 "asmparse.cpp" +#line 8338 "asmparse.cpp" break; case 124: #line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdWindowsRuntime); } -#line 8325 "asmparse.cpp" +#line 8343 "asmparse.cpp" break; case 125: #line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 8330 "asmparse.cpp" +#line 8348 "asmparse.cpp" break; case 126: #line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 8335 "asmparse.cpp" +#line 8353 "asmparse.cpp" break; case 127: #line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 8340 "asmparse.cpp" +#line 8358 "asmparse.cpp" break; case 128: #line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 8345 "asmparse.cpp" +#line 8363 "asmparse.cpp" break; case 129: #line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 8350 "asmparse.cpp" +#line 8368 "asmparse.cpp" break; case 130: #line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 8355 "asmparse.cpp" +#line 8373 "asmparse.cpp" break; case 131: #line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdBeforeFieldInit); } -#line 8360 "asmparse.cpp" +#line 8378 "asmparse.cpp" break; case 132: #line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSpecialName); } -#line 8365 "asmparse.cpp" +#line 8383 "asmparse.cpp" break; case 133: #line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr); } -#line 8370 "asmparse.cpp" +#line 8388 "asmparse.cpp" break; case 134: #line 455 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].int32); } -#line 8375 "asmparse.cpp" +#line 8393 "asmparse.cpp" break; case 136: #line 459 "asmparse.y" { PASM->m_crExtends = yystack.l_mark[0].token; } -#line 8380 "asmparse.cpp" +#line 8398 "asmparse.cpp" break; case 141: #line 470 "asmparse.y" { PASM->AddToImplList(yystack.l_mark[0].token); } -#line 8385 "asmparse.cpp" +#line 8403 "asmparse.cpp" break; case 142: #line 471 "asmparse.y" { PASM->AddToImplList(yystack.l_mark[0].token); } -#line 8390 "asmparse.cpp" +#line 8408 "asmparse.cpp" break; case 143: #line 475 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8395 "asmparse.cpp" +#line 8413 "asmparse.cpp" break; case 144: #line 476 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8400 "asmparse.cpp" +#line 8418 "asmparse.cpp" break; case 145: #line 479 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[0].token); } -#line 8405 "asmparse.cpp" +#line 8423 "asmparse.cpp" break; case 146: #line 480 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].token); } -#line 8410 "asmparse.cpp" +#line 8428 "asmparse.cpp" break; case 147: #line 483 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 8415 "asmparse.cpp" +#line 8433 "asmparse.cpp" break; case 148: #line 484 "asmparse.y" { PASM->m_TyParList = yystack.l_mark[-1].typarlist; ResolveTyParList(PASM->m_TyParList); yyval.typarlist = PASM->m_TyParList; } -#line 8420 "asmparse.cpp" +#line 8438 "asmparse.cpp" break; case 149: #line 487 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 8425 "asmparse.cpp" +#line 8443 "asmparse.cpp" break; case 150: #line 488 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 8430 "asmparse.cpp" +#line 8448 "asmparse.cpp" break; case 151: #line 489 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 8435 "asmparse.cpp" +#line 8453 "asmparse.cpp" break; case 152: #line 490 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 8440 "asmparse.cpp" +#line 8458 "asmparse.cpp" break; case 153: #line 491 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 8445 "asmparse.cpp" +#line 8463 "asmparse.cpp" break; case 154: #line 492 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 8450 "asmparse.cpp" +#line 8468 "asmparse.cpp" break; case 155: #line 493 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } -#line 8455 "asmparse.cpp" +#line 8473 "asmparse.cpp" break; case 156: #line 496 "asmparse.y" { yyval.int32 = 0; } -#line 8460 "asmparse.cpp" +#line 8478 "asmparse.cpp" break; case 157: #line 497 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } -#line 8465 "asmparse.cpp" +#line 8483 "asmparse.cpp" break; case 158: #line 500 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } -#line 8470 "asmparse.cpp" +#line 8488 "asmparse.cpp" break; case 159: #line 503 "asmparse.y" { yyval.int32 = 0; } -#line 8475 "asmparse.cpp" +#line 8493 "asmparse.cpp" break; case 160: #line 504 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } -#line 8480 "asmparse.cpp" +#line 8498 "asmparse.cpp" break; case 161: #line 507 "asmparse.y" - {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } -#line 8485 "asmparse.cpp" + {yyval.typarlist = new TyParList(yystack.l_mark[-4].int32, yystack.l_mark[-3].binstr, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } +#line 8503 "asmparse.cpp" break; case 162: #line 508 "asmparse.y" - {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} -#line 8490 "asmparse.cpp" + {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } +#line 8508 "asmparse.cpp" break; case 163: #line 509 "asmparse.y" - {yyval.typarlist = new TyParList(yystack.l_mark[-2].int32, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} -#line 8495 "asmparse.cpp" + {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} +#line 8513 "asmparse.cpp" break; case 164: -#line 512 "asmparse.y" - { yyval.typarlist = NULL; } -#line 8500 "asmparse.cpp" +#line 510 "asmparse.y" + {yyval.typarlist = new TyParList(yystack.l_mark[-2].int32, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} +#line 8518 "asmparse.cpp" break; case 165: #line 513 "asmparse.y" - { yyval.typarlist = yystack.l_mark[0].typarlist; } -#line 8505 "asmparse.cpp" + { yyval.typarlist = NULL; } +#line 8523 "asmparse.cpp" break; case 166: -#line 516 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8510 "asmparse.cpp" +#line 514 "asmparse.y" + { yyval.typarlist = yystack.l_mark[0].typarlist; } +#line 8528 "asmparse.cpp" break; case 167: -#line 519 "asmparse.y" - { yyval.int32= 0; } -#line 8515 "asmparse.cpp" +#line 517 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 8533 "asmparse.cpp" break; case 168: #line 520 "asmparse.y" - { yyval.int32 = yystack.l_mark[0].int32; } -#line 8520 "asmparse.cpp" + { yyval.int32= 0; } +#line 8538 "asmparse.cpp" break; case 169: -#line 523 "asmparse.y" - { yyval.int32 = yystack.l_mark[-2].int32; } -#line 8525 "asmparse.cpp" +#line 521 "asmparse.y" + { yyval.int32 = yystack.l_mark[0].int32; } +#line 8543 "asmparse.cpp" break; case 170: -#line 527 "asmparse.y" +#line 524 "asmparse.y" + { yyval.int32 = yystack.l_mark[-2].int32; } +#line 8548 "asmparse.cpp" +break; +case 171: +#line 528 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 8533 "asmparse.cpp" -break; -case 171: -#line 531 "asmparse.y" - { PASM->EndClass(); } -#line 8538 "asmparse.cpp" +#line 8556 "asmparse.cpp" break; case 172: #line 532 "asmparse.y" - { PASM->EndEvent(); } -#line 8543 "asmparse.cpp" + { PASM->EndClass(); } +#line 8561 "asmparse.cpp" break; case 173: #line 533 "asmparse.y" - { PASM->EndProp(); } -#line 8548 "asmparse.cpp" + { PASM->EndEvent(); } +#line 8566 "asmparse.cpp" break; -case 179: -#line 539 "asmparse.y" - { PASM->m_pCurClass->m_ulSize = yystack.l_mark[0].int32; } -#line 8553 "asmparse.cpp" +case 174: +#line 534 "asmparse.y" + { PASM->EndProp(); } +#line 8571 "asmparse.cpp" break; case 180: #line 540 "asmparse.y" - { PASM->m_pCurClass->m_ulPack = yystack.l_mark[0].int32; } -#line 8558 "asmparse.cpp" + { PASM->m_pCurClass->m_ulSize = yystack.l_mark[0].int32; } +#line 8576 "asmparse.cpp" break; case 181: #line 541 "asmparse.y" - { PASMM->EndComType(); } -#line 8563 "asmparse.cpp" + { PASM->m_pCurClass->m_ulPack = yystack.l_mark[0].int32; } +#line 8581 "asmparse.cpp" break; case 182: -#line 543 "asmparse.y" +#line 542 "asmparse.y" + { PASMM->EndComType(); } +#line 8586 "asmparse.cpp" +break; +case 183: +#line 544 "asmparse.y" { BinStr *sig1 = parser->MakeSig(yystack.l_mark[-7].int32, yystack.l_mark[-6].binstr, yystack.l_mark[-1].binstr); BinStr *sig2 = new BinStr(); sig2->append(sig1); PASM->AddMethodImpl(yystack.l_mark[-11].token,yystack.l_mark[-9].string,sig1,yystack.l_mark[-5].token,yystack.l_mark[-3].string,sig2); PASM->ResetArgNameList(); } -#line 8572 "asmparse.cpp" +#line 8595 "asmparse.cpp" break; -case 183: -#line 549 "asmparse.y" +case 184: +#line 550 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-17].token,yystack.l_mark[-15].string, (yystack.l_mark[-14].int32==0 ? parser->MakeSig(yystack.l_mark[-19].int32,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr) : parser->MakeSig(yystack.l_mark[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr,yystack.l_mark[-14].int32)), @@ -8580,163 +8603,163 @@ case 183: parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32))); PASM->ResetArgNameList(); } -#line 8584 "asmparse.cpp" +#line 8607 "asmparse.cpp" break; -case 186: -#line 559 "asmparse.y" +case 187: +#line 560 "asmparse.y" { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 8593 "asmparse.cpp" +#line 8616 "asmparse.cpp" break; -case 187: -#line 564 "asmparse.y" +case 188: +#line 565 "asmparse.y" { int n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 8603 "asmparse.cpp" -break; -case 188: -#line 570 "asmparse.y" - { PASM->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } -#line 8608 "asmparse.cpp" +#line 8626 "asmparse.cpp" break; case 189: #line 571 "asmparse.y" - { PASM->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } -#line 8613 "asmparse.cpp" + { PASM->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } +#line 8631 "asmparse.cpp" break; case 190: #line 572 "asmparse.y" + { PASM->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } +#line 8636 "asmparse.cpp" +break; +case 191: +#line 573 "asmparse.y" { yystack.l_mark[0].cad->tkInterfacePair = yystack.l_mark[-1].token; if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } -#line 8621 "asmparse.cpp" +#line 8644 "asmparse.cpp" break; -case 191: -#line 580 "asmparse.y" +case 192: +#line 581 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yystack.l_mark[-2].string, yystack.l_mark[-3].binstr, yystack.l_mark[-4].fieldAttr, yystack.l_mark[-1].string, yystack.l_mark[0].binstr, yystack.l_mark[-5].int32); } -#line 8627 "asmparse.cpp" -break; -case 192: -#line 584 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 8632 "asmparse.cpp" +#line 8650 "asmparse.cpp" break; case 193: #line 585 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdStatic); } -#line 8637 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) 0; } +#line 8655 "asmparse.cpp" break; case 194: #line 586 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 8642 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdStatic); } +#line 8660 "asmparse.cpp" break; case 195: #line 587 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 8647 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } +#line 8665 "asmparse.cpp" break; case 196: #line 588 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 8652 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } +#line 8670 "asmparse.cpp" break; case 197: #line 589 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdInitOnly); } -#line 8657 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } +#line 8675 "asmparse.cpp" break; case 198: #line 590 "asmparse.y" - { yyval.fieldAttr = yystack.l_mark[-1].fieldAttr; } -#line 8662 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdInitOnly); } +#line 8680 "asmparse.cpp" break; case 199: #line 591 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdSpecialName); } -#line 8667 "asmparse.cpp" + { yyval.fieldAttr = yystack.l_mark[-1].fieldAttr; } +#line 8685 "asmparse.cpp" break; case 200: -#line 604 "asmparse.y" - { PASM->m_pMarshal = yystack.l_mark[-1].binstr; } -#line 8672 "asmparse.cpp" +#line 592 "asmparse.y" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdSpecialName); } +#line 8690 "asmparse.cpp" break; case 201: #line 605 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 8677 "asmparse.cpp" + { PASM->m_pMarshal = yystack.l_mark[-1].binstr; } +#line 8695 "asmparse.cpp" break; case 202: #line 606 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 8682 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } +#line 8700 "asmparse.cpp" break; case 203: #line 607 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 8687 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } +#line 8705 "asmparse.cpp" break; case 204: #line 608 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 8692 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } +#line 8710 "asmparse.cpp" break; case 205: #line 609 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdLiteral); } -#line 8697 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } +#line 8715 "asmparse.cpp" break; case 206: #line 610 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdNotSerialized); } -#line 8702 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdLiteral); } +#line 8720 "asmparse.cpp" break; case 207: #line 611 "asmparse.y" - { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].int32); } -#line 8707 "asmparse.cpp" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdNotSerialized); } +#line 8725 "asmparse.cpp" break; case 208: -#line 614 "asmparse.y" - { yyval.string = 0; } -#line 8712 "asmparse.cpp" +#line 612 "asmparse.y" + { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].int32); } +#line 8730 "asmparse.cpp" break; case 209: #line 615 "asmparse.y" - { yyval.string = yystack.l_mark[0].string; } -#line 8717 "asmparse.cpp" + { yyval.string = 0; } +#line 8735 "asmparse.cpp" break; case 210: -#line 618 "asmparse.y" - { yyval.binstr = NULL; } -#line 8722 "asmparse.cpp" +#line 616 "asmparse.y" + { yyval.string = yystack.l_mark[0].string; } +#line 8740 "asmparse.cpp" break; case 211: #line 619 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8727 "asmparse.cpp" + { yyval.binstr = NULL; } +#line 8745 "asmparse.cpp" break; case 212: -#line 622 "asmparse.y" - { yyval.int32 = 0xFFFFFFFF; } -#line 8732 "asmparse.cpp" +#line 620 "asmparse.y" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 8750 "asmparse.cpp" break; case 213: #line 623 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32; } -#line 8737 "asmparse.cpp" + { yyval.int32 = 0xFFFFFFFF; } +#line 8755 "asmparse.cpp" break; case 214: -#line 628 "asmparse.y" +#line 624 "asmparse.y" + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 8760 "asmparse.cpp" +break; +case 215: +#line 629 "asmparse.y" { PASM->ResetArgNameList(); if (yystack.l_mark[-3].binstr == NULL) { @@ -8753,19 +8776,19 @@ case 214: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); } } -#line 8757 "asmparse.cpp" +#line 8780 "asmparse.cpp" break; -case 215: -#line 645 "asmparse.y" +case 216: +#line 646 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yystack.l_mark[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(yystack.l_mark[-6].token, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-7].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 8766 "asmparse.cpp" +#line 8789 "asmparse.cpp" break; -case 216: -#line 651 "asmparse.y" +case 217: +#line 652 "asmparse.y" { PASM->ResetArgNameList(); if (yystack.l_mark[-3].binstr == NULL) { @@ -8781,254 +8804,254 @@ case 216: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); } } -#line 8785 "asmparse.cpp" +#line 8808 "asmparse.cpp" break; -case 217: -#line 667 "asmparse.y" +case 218: +#line 668 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yystack.l_mark[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-5].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 8793 "asmparse.cpp" -break; -case 218: -#line 671 "asmparse.y" - { yyval.token = yystack.l_mark[0].token; } -#line 8798 "asmparse.cpp" +#line 8816 "asmparse.cpp" break; case 219: #line 672 "asmparse.y" - { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 8803 "asmparse.cpp" + { yyval.token = yystack.l_mark[0].token; } +#line 8821 "asmparse.cpp" break; case 220: #line 673 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 8808 "asmparse.cpp" +#line 8826 "asmparse.cpp" break; case 221: -#line 676 "asmparse.y" - { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 8813 "asmparse.cpp" +#line 674 "asmparse.y" + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } +#line 8831 "asmparse.cpp" break; case 222: #line 677 "asmparse.y" - { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 8818 "asmparse.cpp" + { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } +#line 8836 "asmparse.cpp" break; case 223: #line 678 "asmparse.y" - { yyval.int32 = yystack.l_mark[0].int32; } -#line 8823 "asmparse.cpp" + { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } +#line 8841 "asmparse.cpp" break; case 224: #line 679 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32; } -#line 8828 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[0].int32; } +#line 8846 "asmparse.cpp" break; case 225: -#line 682 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8833 "asmparse.cpp" +#line 680 "asmparse.y" + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 8851 "asmparse.cpp" break; case 226: #line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8838 "asmparse.cpp" +#line 8856 "asmparse.cpp" break; case 227: #line 684 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 8843 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } +#line 8861 "asmparse.cpp" break; case 228: #line 685 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 8848 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } +#line 8866 "asmparse.cpp" break; case 229: #line 686 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 8853 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } +#line 8871 "asmparse.cpp" break; case 230: #line 687 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 8858 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } +#line 8876 "asmparse.cpp" break; case 231: #line 688 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 8863 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } +#line 8881 "asmparse.cpp" break; case 232: #line 689 "asmparse.y" - { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 8868 "asmparse.cpp" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } +#line 8886 "asmparse.cpp" break; case 233: -#line 692 "asmparse.y" - { yyval.token = yystack.l_mark[-1].int32; } -#line 8873 "asmparse.cpp" +#line 690 "asmparse.y" + { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } +#line 8891 "asmparse.cpp" break; case 234: -#line 695 "asmparse.y" +#line 693 "asmparse.y" + { yyval.token = yystack.l_mark[-1].int32; } +#line 8896 "asmparse.cpp" +break; +case 235: +#line 696 "asmparse.y" { yyval.token = yystack.l_mark[0].token; PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yystack.l_mark[0].token,iOpcodeLen); } -#line 8882 "asmparse.cpp" +#line 8905 "asmparse.cpp" break; -case 235: -#line 701 "asmparse.y" +case 236: +#line 702 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8889 "asmparse.cpp" +#line 8912 "asmparse.cpp" break; -case 236: -#line 705 "asmparse.y" +case 237: +#line 706 "asmparse.y" { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8896 "asmparse.cpp" -break; -case 237: -#line 708 "asmparse.y" - { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; - PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8902 "asmparse.cpp" +#line 8919 "asmparse.cpp" break; case 238: -#line 710 "asmparse.y" +#line 709 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8908 "asmparse.cpp" +#line 8925 "asmparse.cpp" break; case 239: -#line 712 "asmparse.y" - { yyval.token = yystack.l_mark[0].token; +#line 711 "asmparse.y" + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8914 "asmparse.cpp" +#line 8931 "asmparse.cpp" break; case 240: -#line 717 "asmparse.y" - { PASM->ResetEvent(yystack.l_mark[0].string, yystack.l_mark[-1].token, yystack.l_mark[-2].eventAttr); } -#line 8919 "asmparse.cpp" +#line 713 "asmparse.y" + { yyval.token = yystack.l_mark[0].token; + PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } +#line 8937 "asmparse.cpp" break; case 241: #line 718 "asmparse.y" - { PASM->ResetEvent(yystack.l_mark[0].string, mdTypeRefNil, yystack.l_mark[-1].eventAttr); } -#line 8924 "asmparse.cpp" + { PASM->ResetEvent(yystack.l_mark[0].string, yystack.l_mark[-1].token, yystack.l_mark[-2].eventAttr); } +#line 8942 "asmparse.cpp" break; case 242: -#line 722 "asmparse.y" - { yyval.eventAttr = (CorEventAttr) 0; } -#line 8929 "asmparse.cpp" +#line 719 "asmparse.y" + { PASM->ResetEvent(yystack.l_mark[0].string, mdTypeRefNil, yystack.l_mark[-1].eventAttr); } +#line 8947 "asmparse.cpp" break; case 243: #line 723 "asmparse.y" - { yyval.eventAttr = yystack.l_mark[-1].eventAttr; } -#line 8934 "asmparse.cpp" + { yyval.eventAttr = (CorEventAttr) 0; } +#line 8952 "asmparse.cpp" break; case 244: #line 724 "asmparse.y" - { yyval.eventAttr = (CorEventAttr) (yystack.l_mark[-1].eventAttr | evSpecialName); } -#line 8939 "asmparse.cpp" + { yyval.eventAttr = yystack.l_mark[-1].eventAttr; } +#line 8957 "asmparse.cpp" break; -case 247: -#line 731 "asmparse.y" - { PASM->SetEventMethod(0, yystack.l_mark[0].token); } -#line 8944 "asmparse.cpp" +case 245: +#line 725 "asmparse.y" + { yyval.eventAttr = (CorEventAttr) (yystack.l_mark[-1].eventAttr | evSpecialName); } +#line 8962 "asmparse.cpp" break; case 248: #line 732 "asmparse.y" - { PASM->SetEventMethod(1, yystack.l_mark[0].token); } -#line 8949 "asmparse.cpp" + { PASM->SetEventMethod(0, yystack.l_mark[0].token); } +#line 8967 "asmparse.cpp" break; case 249: #line 733 "asmparse.y" - { PASM->SetEventMethod(2, yystack.l_mark[0].token); } -#line 8954 "asmparse.cpp" + { PASM->SetEventMethod(1, yystack.l_mark[0].token); } +#line 8972 "asmparse.cpp" break; case 250: #line 734 "asmparse.y" + { PASM->SetEventMethod(2, yystack.l_mark[0].token); } +#line 8977 "asmparse.cpp" +break; +case 251: +#line 735 "asmparse.y" { PASM->SetEventMethod(3, yystack.l_mark[0].token); } -#line 8959 "asmparse.cpp" +#line 8982 "asmparse.cpp" break; -case 255: -#line 743 "asmparse.y" +case 256: +#line 744 "asmparse.y" { PASM->ResetProp(yystack.l_mark[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yystack.l_mark[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yystack.l_mark[-5].binstr,yystack.l_mark[-2].binstr), yystack.l_mark[-7].propAttr, yystack.l_mark[0].binstr);} -#line 8966 "asmparse.cpp" -break; -case 256: -#line 748 "asmparse.y" - { yyval.propAttr = (CorPropertyAttr) 0; } -#line 8971 "asmparse.cpp" +#line 8989 "asmparse.cpp" break; case 257: #line 749 "asmparse.y" - { yyval.propAttr = yystack.l_mark[-1].propAttr; } -#line 8976 "asmparse.cpp" + { yyval.propAttr = (CorPropertyAttr) 0; } +#line 8994 "asmparse.cpp" break; case 258: #line 750 "asmparse.y" - { yyval.propAttr = (CorPropertyAttr) (yystack.l_mark[-1].propAttr | prSpecialName); } -#line 8981 "asmparse.cpp" + { yyval.propAttr = yystack.l_mark[-1].propAttr; } +#line 8999 "asmparse.cpp" break; -case 261: -#line 758 "asmparse.y" - { PASM->SetPropMethod(0, yystack.l_mark[0].token); } -#line 8986 "asmparse.cpp" +case 259: +#line 751 "asmparse.y" + { yyval.propAttr = (CorPropertyAttr) (yystack.l_mark[-1].propAttr | prSpecialName); } +#line 9004 "asmparse.cpp" break; case 262: #line 759 "asmparse.y" - { PASM->SetPropMethod(1, yystack.l_mark[0].token); } -#line 8991 "asmparse.cpp" + { PASM->SetPropMethod(0, yystack.l_mark[0].token); } +#line 9009 "asmparse.cpp" break; case 263: #line 760 "asmparse.y" + { PASM->SetPropMethod(1, yystack.l_mark[0].token); } +#line 9014 "asmparse.cpp" +break; +case 264: +#line 761 "asmparse.y" { PASM->SetPropMethod(2, yystack.l_mark[0].token); } -#line 8996 "asmparse.cpp" +#line 9019 "asmparse.cpp" break; -case 268: -#line 768 "asmparse.y" +case 269: +#line 769 "asmparse.y" { PASM->ResetForNextMethod(); uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 9004 "asmparse.cpp" -break; -case 269: -#line 774 "asmparse.y" - { yyval.binstr = NULL; } -#line 9009 "asmparse.cpp" +#line 9027 "asmparse.cpp" break; case 270: #line 775 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 9014 "asmparse.cpp" + { yyval.binstr = NULL; } +#line 9032 "asmparse.cpp" break; case 271: -#line 778 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9019 "asmparse.cpp" +#line 776 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 9037 "asmparse.cpp" break; case 272: #line 779 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 9024 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9042 "asmparse.cpp" break; case 273: -#line 782 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 9029 "asmparse.cpp" +#line 780 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 9047 "asmparse.cpp" break; case 274: -#line 786 "asmparse.y" +#line 783 "asmparse.y" + { bParsingByteArray = TRUE; } +#line 9052 "asmparse.cpp" +break; +case 275: +#line 787 "asmparse.y" { BinStr* sig; if (yystack.l_mark[-5].typarlist == NULL) sig = parser->MakeSig(yystack.l_mark[-10].int32, yystack.l_mark[-8].binstr, yystack.l_mark[-3].binstr); else { @@ -9042,377 +9065,377 @@ case 274: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 9046 "asmparse.cpp" -break; -case 275: -#line 801 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) 0; } -#line 9051 "asmparse.cpp" +#line 9069 "asmparse.cpp" break; case 276: #line 802 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdStatic); } -#line 9056 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) 0; } +#line 9074 "asmparse.cpp" break; case 277: #line 803 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 9061 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdStatic); } +#line 9079 "asmparse.cpp" break; case 278: #line 804 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 9066 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } +#line 9084 "asmparse.cpp" break; case 279: #line 805 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 9071 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } +#line 9089 "asmparse.cpp" break; case 280: #line 806 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdFinal); } -#line 9076 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } +#line 9094 "asmparse.cpp" break; case 281: #line 807 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdSpecialName); } -#line 9081 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdFinal); } +#line 9099 "asmparse.cpp" break; case 282: #line 808 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdVirtual); } -#line 9086 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdSpecialName); } +#line 9104 "asmparse.cpp" break; case 283: #line 809 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdCheckAccessOnOverride); } -#line 9091 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdVirtual); } +#line 9109 "asmparse.cpp" break; case 284: #line 810 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdAbstract); } -#line 9096 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdCheckAccessOnOverride); } +#line 9114 "asmparse.cpp" break; case 285: #line 811 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 9101 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdAbstract); } +#line 9119 "asmparse.cpp" break; case 286: #line 812 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 9106 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } +#line 9124 "asmparse.cpp" break; case 287: #line 813 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 9111 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } +#line 9129 "asmparse.cpp" break; case 288: #line 814 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 9116 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } +#line 9134 "asmparse.cpp" break; case 289: #line 815 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdHideBySig); } -#line 9121 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } +#line 9139 "asmparse.cpp" break; case 290: #line 816 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdNewSlot); } -#line 9126 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdHideBySig); } +#line 9144 "asmparse.cpp" break; case 291: #line 817 "asmparse.y" - { yyval.methAttr = yystack.l_mark[-1].methAttr; } -#line 9131 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdNewSlot); } +#line 9149 "asmparse.cpp" break; case 292: #line 818 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdUnmanagedExport); } -#line 9136 "asmparse.cpp" + { yyval.methAttr = yystack.l_mark[-1].methAttr; } +#line 9154 "asmparse.cpp" break; case 293: #line 819 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdRequireSecObject); } -#line 9141 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdUnmanagedExport); } +#line 9159 "asmparse.cpp" break; case 294: #line 820 "asmparse.y" - { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].int32); } -#line 9146 "asmparse.cpp" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdRequireSecObject); } +#line 9164 "asmparse.cpp" break; case 295: -#line 822 "asmparse.y" +#line 821 "asmparse.y" + { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].int32); } +#line 9169 "asmparse.cpp" +break; +case 296: +#line 823 "asmparse.y" { PASM->SetPinvoke(yystack.l_mark[-4].binstr,0,yystack.l_mark[-2].binstr,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-7].methAttr | mdPinvokeImpl); } -#line 9152 "asmparse.cpp" +#line 9175 "asmparse.cpp" break; -case 296: -#line 825 "asmparse.y" +case 297: +#line 826 "asmparse.y" { PASM->SetPinvoke(yystack.l_mark[-2].binstr,0,NULL,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-5].methAttr | mdPinvokeImpl); } -#line 9158 "asmparse.cpp" +#line 9181 "asmparse.cpp" break; -case 297: -#line 828 "asmparse.y" +case 298: +#line 829 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-4].methAttr | mdPinvokeImpl); } -#line 9164 "asmparse.cpp" -break; -case 298: -#line 832 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 9169 "asmparse.cpp" +#line 9187 "asmparse.cpp" break; case 299: #line 833 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmNoMangle); } -#line 9174 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) 0; } +#line 9192 "asmparse.cpp" break; case 300: #line 834 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAnsi); } -#line 9179 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmNoMangle); } +#line 9197 "asmparse.cpp" break; case 301: #line 835 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetUnicode); } -#line 9184 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAnsi); } +#line 9202 "asmparse.cpp" break; case 302: #line 836 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAuto); } -#line 9189 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetUnicode); } +#line 9207 "asmparse.cpp" break; case 303: #line 837 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmSupportsLastError); } -#line 9194 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAuto); } +#line 9212 "asmparse.cpp" break; case 304: #line 838 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvWinapi); } -#line 9199 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmSupportsLastError); } +#line 9217 "asmparse.cpp" break; case 305: #line 839 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvCdecl); } -#line 9204 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvWinapi); } +#line 9222 "asmparse.cpp" break; case 306: #line 840 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvStdcall); } -#line 9209 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvCdecl); } +#line 9227 "asmparse.cpp" break; case 307: #line 841 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvThiscall); } -#line 9214 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvStdcall); } +#line 9232 "asmparse.cpp" break; case 308: #line 842 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvFastcall); } -#line 9219 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvThiscall); } +#line 9237 "asmparse.cpp" break; case 309: #line 843 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitEnabled); } -#line 9224 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvFastcall); } +#line 9242 "asmparse.cpp" break; case 310: #line 844 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitDisabled); } -#line 9229 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitEnabled); } +#line 9247 "asmparse.cpp" break; case 311: #line 845 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 9234 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitDisabled); } +#line 9252 "asmparse.cpp" break; case 312: #line 846 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 9239 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } +#line 9257 "asmparse.cpp" break; case 313: #line 847 "asmparse.y" - { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].int32); } -#line 9244 "asmparse.cpp" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } +#line 9262 "asmparse.cpp" break; case 314: -#line 850 "asmparse.y" - { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 9249 "asmparse.cpp" +#line 848 "asmparse.y" + { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].int32); } +#line 9267 "asmparse.cpp" break; case 315: #line 851 "asmparse.y" - { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 9254 "asmparse.cpp" + { yyval.string = newString(COR_CTOR_METHOD_NAME); } +#line 9272 "asmparse.cpp" break; case 316: #line 852 "asmparse.y" - { yyval.string = yystack.l_mark[0].string; } -#line 9259 "asmparse.cpp" + { yyval.string = newString(COR_CCTOR_METHOD_NAME); } +#line 9277 "asmparse.cpp" break; case 317: -#line 855 "asmparse.y" - { yyval.int32 = 0; } -#line 9264 "asmparse.cpp" +#line 853 "asmparse.y" + { yyval.string = yystack.l_mark[0].string; } +#line 9282 "asmparse.cpp" break; case 318: #line 856 "asmparse.y" - { yyval.int32 = yystack.l_mark[-3].int32 | pdIn; } -#line 9269 "asmparse.cpp" + { yyval.int32 = 0; } +#line 9287 "asmparse.cpp" break; case 319: #line 857 "asmparse.y" - { yyval.int32 = yystack.l_mark[-3].int32 | pdOut; } -#line 9274 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-3].int32 | pdIn; } +#line 9292 "asmparse.cpp" break; case 320: #line 858 "asmparse.y" - { yyval.int32 = yystack.l_mark[-3].int32 | pdOptional; } -#line 9279 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-3].int32 | pdOut; } +#line 9297 "asmparse.cpp" break; case 321: #line 859 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32 + 1; } -#line 9284 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-3].int32 | pdOptional; } +#line 9302 "asmparse.cpp" break; case 322: -#line 862 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 9289 "asmparse.cpp" +#line 860 "asmparse.y" + { yyval.int32 = yystack.l_mark[-1].int32 + 1; } +#line 9307 "asmparse.cpp" break; case 323: #line 863 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miNative); } -#line 9294 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } +#line 9312 "asmparse.cpp" break; case 324: #line 864 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miIL); } -#line 9299 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miNative); } +#line 9317 "asmparse.cpp" break; case 325: #line 865 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 9304 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miIL); } +#line 9322 "asmparse.cpp" break; case 326: #line 866 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miManaged); } -#line 9309 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miOPTIL); } +#line 9327 "asmparse.cpp" break; case 327: #line 867 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 9314 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miManaged); } +#line 9332 "asmparse.cpp" break; case 328: #line 868 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miForwardRef); } -#line 9319 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miUnmanaged); } +#line 9337 "asmparse.cpp" break; case 329: #line 869 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miPreserveSig); } -#line 9324 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miForwardRef); } +#line 9342 "asmparse.cpp" break; case 330: #line 870 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miRuntime); } -#line 9329 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miPreserveSig); } +#line 9347 "asmparse.cpp" break; case 331: #line 871 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miInternalCall); } -#line 9334 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miRuntime); } +#line 9352 "asmparse.cpp" break; case 332: #line 872 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miSynchronized); } -#line 9339 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miInternalCall); } +#line 9357 "asmparse.cpp" break; case 333: #line 873 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoInlining); } -#line 9344 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miSynchronized); } +#line 9362 "asmparse.cpp" break; case 334: #line 874 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveInlining); } -#line 9349 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoInlining); } +#line 9367 "asmparse.cpp" break; case 335: #line 875 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoOptimization); } -#line 9354 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveInlining); } +#line 9372 "asmparse.cpp" break; case 336: #line 876 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveOptimization); } -#line 9359 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoOptimization); } +#line 9377 "asmparse.cpp" break; case 337: #line 877 "asmparse.y" - { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].int32); } -#line 9364 "asmparse.cpp" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveOptimization); } +#line 9382 "asmparse.cpp" break; case 338: -#line 880 "asmparse.y" +#line 878 "asmparse.y" + { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].int32); } +#line 9387 "asmparse.cpp" +break; +case 339: +#line 881 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 9370 "asmparse.cpp" -break; -case 341: -#line 888 "asmparse.y" - { PASM->EmitByte(yystack.l_mark[0].int32); } -#line 9375 "asmparse.cpp" +#line 9393 "asmparse.cpp" break; case 342: #line 889 "asmparse.y" - { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 9380 "asmparse.cpp" + { PASM->EmitByte(yystack.l_mark[0].int32); } +#line 9398 "asmparse.cpp" break; case 343: #line 890 "asmparse.y" - { PASM->EmitMaxStack(yystack.l_mark[0].int32); } -#line 9385 "asmparse.cpp" + { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } +#line 9403 "asmparse.cpp" break; case 344: #line 891 "asmparse.y" + { PASM->EmitMaxStack(yystack.l_mark[0].int32); } +#line 9408 "asmparse.cpp" +break; +case 345: +#line 892 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 9391 "asmparse.cpp" +#line 9414 "asmparse.cpp" break; -case 345: -#line 893 "asmparse.y" +case 346: +#line 894 "asmparse.y" { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 9398 "asmparse.cpp" -break; -case 346: -#line 896 "asmparse.y" - { PASM->EmitEntryPoint(); } -#line 9403 "asmparse.cpp" +#line 9421 "asmparse.cpp" break; case 347: #line 897 "asmparse.y" + { PASM->EmitEntryPoint(); } +#line 9426 "asmparse.cpp" +break; +case 348: +#line 898 "asmparse.y" { PASM->EmitZeroInit(); } -#line 9408 "asmparse.cpp" +#line 9431 "asmparse.cpp" break; -case 350: -#line 900 "asmparse.y" +case 351: +#line 901 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yystack.l_mark[-1].string); /*PASM->EmitLabel($1);*/ } -#line 9413 "asmparse.cpp" +#line 9436 "asmparse.cpp" break; -case 356: -#line 906 "asmparse.y" +case 357: +#line 907 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-1].int32; @@ -9423,10 +9446,10 @@ case 356: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9427 "asmparse.cpp" +#line 9450 "asmparse.cpp" break; -case 357: -#line 916 "asmparse.y" +case 358: +#line 917 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-3].int32; @@ -9437,60 +9460,60 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9441 "asmparse.cpp" +#line 9464 "asmparse.cpp" break; -case 358: -#line 926 "asmparse.y" +case 359: +#line 927 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yystack.l_mark[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yystack.l_mark[0].int32; } -#line 9447 "asmparse.cpp" +#line 9470 "asmparse.cpp" break; -case 359: -#line 929 "asmparse.y" +case 360: +#line 930 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-2].token,yystack.l_mark[0].string,NULL,NULL,NULL,NULL); } -#line 9452 "asmparse.cpp" +#line 9475 "asmparse.cpp" break; -case 360: -#line 932 "asmparse.y" +case 361: +#line 933 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-6].token,yystack.l_mark[-4].string, (yystack.l_mark[-3].int32==0 ? parser->MakeSig(yystack.l_mark[-8].int32,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr) : parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32)) ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 9462 "asmparse.cpp" +#line 9485 "asmparse.cpp" break; -case 362: -#line 939 "asmparse.y" +case 363: +#line 940 "asmparse.y" { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 9471 "asmparse.cpp" +#line 9494 "asmparse.cpp" break; -case 363: -#line 944 "asmparse.y" +case 364: +#line 945 "asmparse.y" { int n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 9481 "asmparse.cpp" -break; -case 364: -#line 950 "asmparse.y" - { PASM->m_pCurMethod->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } -#line 9486 "asmparse.cpp" +#line 9504 "asmparse.cpp" break; case 365: #line 951 "asmparse.y" - { PASM->m_pCurMethod->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } -#line 9491 "asmparse.cpp" + { PASM->m_pCurMethod->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } +#line 9509 "asmparse.cpp" break; case 366: -#line 954 "asmparse.y" +#line 952 "asmparse.y" + { PASM->m_pCurMethod->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } +#line 9514 "asmparse.cpp" +break; +case 367: +#line 955 "asmparse.y" { if( yystack.l_mark[-2].int32 ) { ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yystack.l_mark[-2].int32 - 1); if(pAN) @@ -9509,207 +9532,207 @@ case 366: } PASM->m_tkCurrentCVOwner = 0; } -#line 9513 "asmparse.cpp" -break; -case 367: -#line 974 "asmparse.y" - { PASM->m_pCurMethod->CloseScope(); } -#line 9518 "asmparse.cpp" +#line 9536 "asmparse.cpp" break; case 368: -#line 977 "asmparse.y" - { PASM->m_pCurMethod->OpenScope(); } -#line 9523 "asmparse.cpp" +#line 975 "asmparse.y" + { PASM->m_pCurMethod->CloseScope(); } +#line 9541 "asmparse.cpp" break; -case 372: -#line 988 "asmparse.y" - { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 9528 "asmparse.cpp" +case 369: +#line 978 "asmparse.y" + { PASM->m_pCurMethod->OpenScope(); } +#line 9546 "asmparse.cpp" break; case 373: #line 989 "asmparse.y" - { PASM->SetTryLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } -#line 9533 "asmparse.cpp" + { PASM->m_SEHD->tryTo = PASM->m_CurPC; } +#line 9551 "asmparse.cpp" break; case 374: #line 990 "asmparse.y" + { PASM->SetTryLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } +#line 9556 "asmparse.cpp" +break; +case 375: +#line 991 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yystack.l_mark[-2].int32; PASM->m_SEHD->tryTo = yystack.l_mark[0].int32;} } -#line 9539 "asmparse.cpp" +#line 9562 "asmparse.cpp" break; -case 375: -#line 994 "asmparse.y" +case 376: +#line 995 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 9545 "asmparse.cpp" -break; -case 376: -#line 999 "asmparse.y" - { PASM->EmitTry(); } -#line 9550 "asmparse.cpp" +#line 9568 "asmparse.cpp" break; case 377: #line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 9555 "asmparse.cpp" +#line 9573 "asmparse.cpp" break; case 378: #line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 9560 "asmparse.cpp" +#line 9578 "asmparse.cpp" break; case 379: #line 1002 "asmparse.y" { PASM->EmitTry(); } -#line 9565 "asmparse.cpp" +#line 9583 "asmparse.cpp" break; case 380: -#line 1006 "asmparse.y" - { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9570 "asmparse.cpp" +#line 1003 "asmparse.y" + { PASM->EmitTry(); } +#line 9588 "asmparse.cpp" break; case 381: #line 1007 "asmparse.y" + { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } +#line 9593 "asmparse.cpp" +break; +case 382: +#line 1008 "asmparse.y" { PASM->SetFilterLabel(yystack.l_mark[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9576 "asmparse.cpp" +#line 9599 "asmparse.cpp" break; -case 382: -#line 1009 "asmparse.y" +case 383: +#line 1010 "asmparse.y" { PASM->m_SEHD->sehFilter = yystack.l_mark[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9582 "asmparse.cpp" +#line 9605 "asmparse.cpp" break; -case 383: -#line 1013 "asmparse.y" +case 384: +#line 1014 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 9588 "asmparse.cpp" +#line 9611 "asmparse.cpp" break; -case 384: -#line 1017 "asmparse.y" +case 385: +#line 1018 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yystack.l_mark[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9595 "asmparse.cpp" +#line 9618 "asmparse.cpp" break; -case 385: -#line 1022 "asmparse.y" +case 386: +#line 1023 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9601 "asmparse.cpp" +#line 9624 "asmparse.cpp" break; -case 386: -#line 1026 "asmparse.y" +case 387: +#line 1027 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9607 "asmparse.cpp" -break; -case 387: -#line 1030 "asmparse.y" - { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 9612 "asmparse.cpp" +#line 9630 "asmparse.cpp" break; case 388: #line 1031 "asmparse.y" - { PASM->SetHandlerLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } -#line 9617 "asmparse.cpp" + { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } +#line 9635 "asmparse.cpp" break; case 389: #line 1032 "asmparse.y" + { PASM->SetHandlerLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } +#line 9640 "asmparse.cpp" +break; +case 390: +#line 1033 "asmparse.y" { PASM->m_SEHD->sehHandler = yystack.l_mark[-2].int32; PASM->m_SEHD->sehHandlerTo = yystack.l_mark[0].int32; } -#line 9623 "asmparse.cpp" +#line 9646 "asmparse.cpp" break; -case 391: -#line 1040 "asmparse.y" +case 392: +#line 1041 "asmparse.y" { PASM->EmitDataLabel(yystack.l_mark[-1].string); } -#line 9628 "asmparse.cpp" -break; -case 393: -#line 1044 "asmparse.y" - { PASM->SetDataSection(); } -#line 9633 "asmparse.cpp" +#line 9651 "asmparse.cpp" break; case 394: #line 1045 "asmparse.y" - { PASM->SetTLSSection(); } -#line 9638 "asmparse.cpp" + { PASM->SetDataSection(); } +#line 9656 "asmparse.cpp" break; case 395: #line 1046 "asmparse.y" - { PASM->SetILSection(); } -#line 9643 "asmparse.cpp" + { PASM->SetTLSSection(); } +#line 9661 "asmparse.cpp" break; -case 400: -#line 1057 "asmparse.y" - { yyval.int32 = 1; } -#line 9648 "asmparse.cpp" +case 396: +#line 1047 "asmparse.y" + { PASM->SetILSection(); } +#line 9666 "asmparse.cpp" break; case 401: #line 1058 "asmparse.y" + { yyval.int32 = 1; } +#line 9671 "asmparse.cpp" +break; +case 402: +#line 1059 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32; if(yystack.l_mark[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yystack.l_mark[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 9655 "asmparse.cpp" -break; -case 402: -#line 1063 "asmparse.y" - { PASM->EmitDataString(yystack.l_mark[-1].binstr); } -#line 9660 "asmparse.cpp" +#line 9678 "asmparse.cpp" break; case 403: #line 1064 "asmparse.y" - { PASM->EmitDD(yystack.l_mark[-1].string); } -#line 9665 "asmparse.cpp" + { PASM->EmitDataString(yystack.l_mark[-1].binstr); } +#line 9683 "asmparse.cpp" break; case 404: #line 1065 "asmparse.y" - { PASM->EmitData(yystack.l_mark[-1].binstr->ptr(),yystack.l_mark[-1].binstr->length()); } -#line 9670 "asmparse.cpp" + { PASM->EmitDD(yystack.l_mark[-1].string); } +#line 9688 "asmparse.cpp" break; case 405: -#line 1067 "asmparse.y" +#line 1066 "asmparse.y" + { PASM->EmitData(yystack.l_mark[-1].binstr->ptr(),yystack.l_mark[-1].binstr->length()); } +#line 9693 "asmparse.cpp" +break; +case 406: +#line 1068 "asmparse.y" { float f = (float) (*yystack.l_mark[-2].float64); float* p = new (nothrow) float[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; i < yystack.l_mark[0].int32; i++) p[i] = f; PASM->EmitData(p, sizeof(float)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yystack.l_mark[0].int32); } -#line 9680 "asmparse.cpp" +#line 9703 "asmparse.cpp" break; -case 406: -#line 1074 "asmparse.y" +case 407: +#line 1075 "asmparse.y" { double* p = new (nothrow) double[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(double)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yystack.l_mark[0].int32); } -#line 9690 "asmparse.cpp" +#line 9713 "asmparse.cpp" break; -case 407: -#line 1081 "asmparse.y" +case 408: +#line 1082 "asmparse.y" { __int64* p = new (nothrow) __int64[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int64)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yystack.l_mark[0].int32); } -#line 9700 "asmparse.cpp" +#line 9723 "asmparse.cpp" break; -case 408: -#line 1088 "asmparse.y" +case 409: +#line 1089 "asmparse.y" { __int32* p = new (nothrow) __int32[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int32)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yystack.l_mark[0].int32); } -#line 9710 "asmparse.cpp" +#line 9733 "asmparse.cpp" break; -case 409: -#line 1095 "asmparse.y" +case 410: +#line 1096 "asmparse.y" { __int16 i = (__int16) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); __int16* p = new (nothrow) __int16[yystack.l_mark[0].int32]; if(p != NULL) { @@ -9717,10 +9740,10 @@ case 409: PASM->EmitData(p, sizeof(__int16)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yystack.l_mark[0].int32); } -#line 9721 "asmparse.cpp" +#line 9744 "asmparse.cpp" break; -case 410: -#line 1103 "asmparse.y" +case 411: +#line 1104 "asmparse.y" { __int8 i = (__int8) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); __int8* p = new (nothrow) __int8[yystack.l_mark[0].int32]; if(p != NULL) { @@ -9728,728 +9751,728 @@ case 410: PASM->EmitData(p, sizeof(__int8)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yystack.l_mark[0].int32); } -#line 9732 "asmparse.cpp" -break; -case 411: -#line 1110 "asmparse.y" - { PASM->EmitData(NULL, sizeof(float)*yystack.l_mark[0].int32); } -#line 9737 "asmparse.cpp" +#line 9755 "asmparse.cpp" break; case 412: #line 1111 "asmparse.y" - { PASM->EmitData(NULL, sizeof(double)*yystack.l_mark[0].int32); } -#line 9742 "asmparse.cpp" + { PASM->EmitData(NULL, sizeof(float)*yystack.l_mark[0].int32); } +#line 9760 "asmparse.cpp" break; case 413: #line 1112 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int64)*yystack.l_mark[0].int32); } -#line 9747 "asmparse.cpp" + { PASM->EmitData(NULL, sizeof(double)*yystack.l_mark[0].int32); } +#line 9765 "asmparse.cpp" break; case 414: #line 1113 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int32)*yystack.l_mark[0].int32); } -#line 9752 "asmparse.cpp" + { PASM->EmitData(NULL, sizeof(__int64)*yystack.l_mark[0].int32); } +#line 9770 "asmparse.cpp" break; case 415: #line 1114 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int16)*yystack.l_mark[0].int32); } -#line 9757 "asmparse.cpp" + { PASM->EmitData(NULL, sizeof(__int32)*yystack.l_mark[0].int32); } +#line 9775 "asmparse.cpp" break; case 416: #line 1115 "asmparse.y" - { PASM->EmitData(NULL, sizeof(__int8)*yystack.l_mark[0].int32); } -#line 9762 "asmparse.cpp" + { PASM->EmitData(NULL, sizeof(__int16)*yystack.l_mark[0].int32); } +#line 9780 "asmparse.cpp" break; case 417: -#line 1119 "asmparse.y" +#line 1116 "asmparse.y" + { PASM->EmitData(NULL, sizeof(__int8)*yystack.l_mark[0].int32); } +#line 9785 "asmparse.cpp" +break; +case 418: +#line 1120 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yystack.l_mark[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } -#line 9769 "asmparse.cpp" +#line 9792 "asmparse.cpp" break; -case 418: -#line 1122 "asmparse.y" +case 419: +#line 1123 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } -#line 9775 "asmparse.cpp" +#line 9798 "asmparse.cpp" break; -case 419: -#line 1124 "asmparse.y" +case 420: +#line 1125 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9781 "asmparse.cpp" +#line 9804 "asmparse.cpp" break; -case 420: -#line 1126 "asmparse.y" +case 421: +#line 1127 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9787 "asmparse.cpp" +#line 9810 "asmparse.cpp" break; -case 421: -#line 1128 "asmparse.y" +case 422: +#line 1129 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9793 "asmparse.cpp" +#line 9816 "asmparse.cpp" break; -case 422: -#line 1130 "asmparse.y" +case 423: +#line 1131 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9799 "asmparse.cpp" +#line 9822 "asmparse.cpp" break; -case 423: -#line 1132 "asmparse.y" +case 424: +#line 1133 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9805 "asmparse.cpp" +#line 9828 "asmparse.cpp" break; -case 424: -#line 1134 "asmparse.y" +case 425: +#line 1135 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9811 "asmparse.cpp" +#line 9834 "asmparse.cpp" break; -case 425: -#line 1136 "asmparse.y" +case 426: +#line 1137 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9817 "asmparse.cpp" +#line 9840 "asmparse.cpp" break; -case 426: -#line 1138 "asmparse.y" +case 427: +#line 1139 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9823 "asmparse.cpp" +#line 9846 "asmparse.cpp" break; -case 427: -#line 1140 "asmparse.y" +case 428: +#line 1141 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9829 "asmparse.cpp" +#line 9852 "asmparse.cpp" break; -case 428: -#line 1142 "asmparse.y" +case 429: +#line 1143 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9835 "asmparse.cpp" +#line 9858 "asmparse.cpp" break; -case 429: -#line 1144 "asmparse.y" +case 430: +#line 1145 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9841 "asmparse.cpp" +#line 9864 "asmparse.cpp" break; -case 430: -#line 1146 "asmparse.y" +case 431: +#line 1147 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9847 "asmparse.cpp" +#line 9870 "asmparse.cpp" break; -case 431: -#line 1148 "asmparse.y" +case 432: +#line 1149 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9853 "asmparse.cpp" +#line 9876 "asmparse.cpp" break; -case 432: -#line 1150 "asmparse.y" +case 433: +#line 1151 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9859 "asmparse.cpp" +#line 9882 "asmparse.cpp" break; -case 433: -#line 1152 "asmparse.y" +case 434: +#line 1153 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9865 "asmparse.cpp" +#line 9888 "asmparse.cpp" break; -case 434: -#line 1154 "asmparse.y" +case 435: +#line 1155 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} -#line 9871 "asmparse.cpp" +#line 9894 "asmparse.cpp" break; -case 435: -#line 1156 "asmparse.y" +case 436: +#line 1157 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-1].binstr;} -#line 9877 "asmparse.cpp" -break; -case 436: -#line 1160 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 9882 "asmparse.cpp" +#line 9900 "asmparse.cpp" break; case 437: -#line 1163 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 9887 "asmparse.cpp" +#line 1161 "asmparse.y" + { bParsingByteArray = TRUE; } +#line 9905 "asmparse.cpp" break; case 438: #line 1164 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9892 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 9910 "asmparse.cpp" break; case 439: -#line 1167 "asmparse.y" - { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 9897 "asmparse.cpp" +#line 1165 "asmparse.y" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9915 "asmparse.cpp" break; case 440: #line 1168 "asmparse.y" - { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(i); } -#line 9902 "asmparse.cpp" + { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } +#line 9920 "asmparse.cpp" break; case 441: -#line 1172 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9907 "asmparse.cpp" +#line 1169 "asmparse.y" + { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(i); } +#line 9925 "asmparse.cpp" break; case 442: #line 1173 "asmparse.y" - { yyval.binstr = BinStrToUnicode(yystack.l_mark[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 9912 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9930 "asmparse.cpp" break; case 443: #line 1174 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); - yyval.binstr->appendInt32(0); } -#line 9918 "asmparse.cpp" + { yyval.binstr = BinStrToUnicode(yystack.l_mark[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} +#line 9935 "asmparse.cpp" break; case 444: -#line 1179 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9923 "asmparse.cpp" +#line 1175 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); + yyval.binstr->appendInt32(0); } +#line 9941 "asmparse.cpp" break; case 445: #line 1180 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 9928 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 9946 "asmparse.cpp" break; case 446: #line 1181 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); - AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} -#line 9934 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } +#line 9951 "asmparse.cpp" break; case 447: -#line 1183 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); +#line 1182 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} -#line 9940 "asmparse.cpp" +#line 9957 "asmparse.cpp" break; case 448: -#line 1185 "asmparse.y" +#line 1184 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); - AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[-1].token));} -#line 9946 "asmparse.cpp" + AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} +#line 9963 "asmparse.cpp" break; case 449: -#line 1187 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 9951 "asmparse.cpp" +#line 1186 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); + AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[-1].token));} +#line 9969 "asmparse.cpp" break; case 450: #line 1188 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 9956 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } +#line 9974 "asmparse.cpp" break; case 451: -#line 1190 "asmparse.y" +#line 1189 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} +#line 9979 "asmparse.cpp" +break; +case 452: +#line 1191 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9963 "asmparse.cpp" +#line 9986 "asmparse.cpp" break; -case 452: -#line 1194 "asmparse.y" +case 453: +#line 1195 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9970 "asmparse.cpp" +#line 9993 "asmparse.cpp" break; -case 453: -#line 1198 "asmparse.y" +case 454: +#line 1199 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9977 "asmparse.cpp" +#line 10000 "asmparse.cpp" break; -case 454: -#line 1202 "asmparse.y" +case 455: +#line 1203 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9984 "asmparse.cpp" +#line 10007 "asmparse.cpp" break; -case 455: -#line 1206 "asmparse.y" +case 456: +#line 1207 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9991 "asmparse.cpp" +#line 10014 "asmparse.cpp" break; -case 456: -#line 1210 "asmparse.y" +case 457: +#line 1211 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9998 "asmparse.cpp" +#line 10021 "asmparse.cpp" break; -case 457: -#line 1214 "asmparse.y" +case 458: +#line 1215 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10005 "asmparse.cpp" +#line 10028 "asmparse.cpp" break; -case 458: -#line 1218 "asmparse.y" +case 459: +#line 1219 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10012 "asmparse.cpp" +#line 10035 "asmparse.cpp" break; -case 459: -#line 1222 "asmparse.y" +case 460: +#line 1223 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10019 "asmparse.cpp" +#line 10042 "asmparse.cpp" break; -case 460: -#line 1226 "asmparse.y" +case 461: +#line 1227 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10026 "asmparse.cpp" +#line 10049 "asmparse.cpp" break; -case 461: -#line 1230 "asmparse.y" +case 462: +#line 1231 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10033 "asmparse.cpp" +#line 10056 "asmparse.cpp" break; -case 462: -#line 1234 "asmparse.y" +case 463: +#line 1235 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10040 "asmparse.cpp" +#line 10063 "asmparse.cpp" break; -case 463: -#line 1238 "asmparse.y" +case 464: +#line 1239 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10047 "asmparse.cpp" +#line 10070 "asmparse.cpp" break; -case 464: -#line 1242 "asmparse.y" +case 465: +#line 1243 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10054 "asmparse.cpp" +#line 10077 "asmparse.cpp" break; -case 465: -#line 1246 "asmparse.y" +case 466: +#line 1247 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10061 "asmparse.cpp" +#line 10084 "asmparse.cpp" break; -case 466: -#line 1250 "asmparse.y" +case 467: +#line 1251 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10068 "asmparse.cpp" +#line 10091 "asmparse.cpp" break; -case 467: -#line 1254 "asmparse.y" +case 468: +#line 1255 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10075 "asmparse.cpp" +#line 10098 "asmparse.cpp" break; -case 468: -#line 1258 "asmparse.y" +case 469: +#line 1259 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10082 "asmparse.cpp" +#line 10105 "asmparse.cpp" break; -case 469: -#line 1262 "asmparse.y" +case 470: +#line 1263 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10089 "asmparse.cpp" +#line 10112 "asmparse.cpp" break; -case 470: -#line 1267 "asmparse.y" +case 471: +#line 1268 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yystack.l_mark[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } -#line 10096 "asmparse.cpp" +#line 10119 "asmparse.cpp" break; -case 471: -#line 1270 "asmparse.y" +case 472: +#line 1271 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } -#line 10102 "asmparse.cpp" +#line 10125 "asmparse.cpp" break; -case 472: -#line 1272 "asmparse.y" +case 473: +#line 1273 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10108 "asmparse.cpp" +#line 10131 "asmparse.cpp" break; -case 473: -#line 1274 "asmparse.y" +case 474: +#line 1275 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10114 "asmparse.cpp" +#line 10137 "asmparse.cpp" break; -case 474: -#line 1276 "asmparse.y" +case 475: +#line 1277 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10120 "asmparse.cpp" +#line 10143 "asmparse.cpp" break; -case 475: -#line 1278 "asmparse.y" +case 476: +#line 1279 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10126 "asmparse.cpp" +#line 10149 "asmparse.cpp" break; -case 476: -#line 1280 "asmparse.y" +case 477: +#line 1281 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10132 "asmparse.cpp" +#line 10155 "asmparse.cpp" break; -case 477: -#line 1282 "asmparse.y" +case 478: +#line 1283 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10138 "asmparse.cpp" +#line 10161 "asmparse.cpp" break; -case 478: -#line 1284 "asmparse.y" +case 479: +#line 1285 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10144 "asmparse.cpp" +#line 10167 "asmparse.cpp" break; -case 479: -#line 1286 "asmparse.y" +case 480: +#line 1287 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10150 "asmparse.cpp" +#line 10173 "asmparse.cpp" break; -case 480: -#line 1288 "asmparse.y" +case 481: +#line 1289 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10156 "asmparse.cpp" +#line 10179 "asmparse.cpp" break; -case 481: -#line 1290 "asmparse.y" +case 482: +#line 1291 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10162 "asmparse.cpp" +#line 10185 "asmparse.cpp" break; -case 482: -#line 1292 "asmparse.y" +case 483: +#line 1293 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10168 "asmparse.cpp" +#line 10191 "asmparse.cpp" break; -case 483: -#line 1294 "asmparse.y" +case 484: +#line 1295 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10174 "asmparse.cpp" +#line 10197 "asmparse.cpp" break; -case 484: -#line 1296 "asmparse.y" +case 485: +#line 1297 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10180 "asmparse.cpp" +#line 10203 "asmparse.cpp" break; -case 485: -#line 1298 "asmparse.y" +case 486: +#line 1299 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10186 "asmparse.cpp" +#line 10209 "asmparse.cpp" break; -case 486: -#line 1300 "asmparse.y" +case 487: +#line 1301 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10192 "asmparse.cpp" +#line 10215 "asmparse.cpp" break; -case 487: -#line 1302 "asmparse.y" +case 488: +#line 1303 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} -#line 10198 "asmparse.cpp" -break; -case 488: -#line 1307 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10203 "asmparse.cpp" +#line 10221 "asmparse.cpp" break; case 489: #line 1308 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; - float f = (float) (*yystack.l_mark[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[0].float64; } -#line 10209 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10226 "asmparse.cpp" break; case 490: -#line 1310 "asmparse.y" +#line 1309 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; - yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 10215 "asmparse.cpp" + float f = (float) (*yystack.l_mark[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[0].float64; } +#line 10232 "asmparse.cpp" break; case 491: -#line 1314 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10220 "asmparse.cpp" +#line 1311 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt32(yystack.l_mark[0].int32); } +#line 10238 "asmparse.cpp" break; case 492: #line 1315 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].float64); delete yystack.l_mark[0].float64; } -#line 10226 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10243 "asmparse.cpp" break; case 493: -#line 1317 "asmparse.y" +#line 1316 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } -#line 10232 "asmparse.cpp" + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].float64); delete yystack.l_mark[0].float64; } +#line 10249 "asmparse.cpp" break; case 494: -#line 1321 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10237 "asmparse.cpp" +#line 1318 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } +#line 10255 "asmparse.cpp" break; case 495: #line 1322 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; - yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } -#line 10243 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10260 "asmparse.cpp" break; case 496: -#line 1326 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10248 "asmparse.cpp" +#line 1323 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } +#line 10266 "asmparse.cpp" break; case 497: #line 1327 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].int32);} -#line 10253 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10271 "asmparse.cpp" break; case 498: -#line 1330 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10258 "asmparse.cpp" +#line 1328 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].int32);} +#line 10276 "asmparse.cpp" break; case 499: #line 1331 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt16(yystack.l_mark[0].int32);} -#line 10263 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10281 "asmparse.cpp" break; case 500: -#line 1334 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10268 "asmparse.cpp" +#line 1332 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt16(yystack.l_mark[0].int32);} +#line 10286 "asmparse.cpp" break; case 501: #line 1335 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(yystack.l_mark[0].int32); } -#line 10273 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10291 "asmparse.cpp" break; case 502: -#line 1338 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10278 "asmparse.cpp" +#line 1336 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(yystack.l_mark[0].int32); } +#line 10296 "asmparse.cpp" break; case 503: #line 1339 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; - yyval.binstr->appendInt8(yystack.l_mark[0].int32);} -#line 10284 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10301 "asmparse.cpp" break; case 504: -#line 1343 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10289 "asmparse.cpp" +#line 1340 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; + yyval.binstr->appendInt8(yystack.l_mark[0].int32);} +#line 10307 "asmparse.cpp" break; case 505: #line 1344 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10294 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10312 "asmparse.cpp" break; case 506: #line 1345 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; - AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} -#line 10300 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 10317 "asmparse.cpp" break; case 507: -#line 1349 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10305 "asmparse.cpp" +#line 1346 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; + AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} +#line 10323 "asmparse.cpp" break; case 508: #line 1350 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10310 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10328 "asmparse.cpp" break; case 509: #line 1351 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } +#line 10333 "asmparse.cpp" +break; +case 510: +#line 1352 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} -#line 10316 "asmparse.cpp" +#line 10339 "asmparse.cpp" break; -case 510: -#line 1353 "asmparse.y" +case 511: +#line 1354 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token));} -#line 10322 "asmparse.cpp" -break; -case 511: -#line 1357 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10327 "asmparse.cpp" +#line 10345 "asmparse.cpp" break; case 512: #line 1358 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10332 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10350 "asmparse.cpp" break; case 513: -#line 1362 "asmparse.y" +#line 1359 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10355 "asmparse.cpp" +break; +case 514: +#line 1363 "asmparse.y" { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 10340 "asmparse.cpp" -break; -case 514: -#line 1368 "asmparse.y" - { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10345 "asmparse.cpp" +#line 10363 "asmparse.cpp" break; case 515: -#line 1371 "asmparse.y" +#line 1369 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10350 "asmparse.cpp" +#line 10368 "asmparse.cpp" break; case 516: -#line 1374 "asmparse.y" +#line 1372 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10355 "asmparse.cpp" +#line 10373 "asmparse.cpp" break; case 517: -#line 1377 "asmparse.y" +#line 1375 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10360 "asmparse.cpp" +#line 10378 "asmparse.cpp" break; case 518: -#line 1380 "asmparse.y" +#line 1378 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10365 "asmparse.cpp" +#line 10383 "asmparse.cpp" break; case 519: -#line 1383 "asmparse.y" +#line 1381 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10370 "asmparse.cpp" +#line 10388 "asmparse.cpp" break; case 520: -#line 1386 "asmparse.y" +#line 1384 "asmparse.y" + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10393 "asmparse.cpp" +break; +case 521: +#line 1387 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); if((!PASM->OnErrGo)&& ((yystack.l_mark[0].opcode == CEE_NEWOBJ)|| (yystack.l_mark[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 10380 "asmparse.cpp" -break; -case 521: -#line 1394 "asmparse.y" - { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10385 "asmparse.cpp" +#line 10403 "asmparse.cpp" break; case 522: -#line 1397 "asmparse.y" +#line 1395 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10390 "asmparse.cpp" +#line 10408 "asmparse.cpp" break; case 523: -#line 1400 "asmparse.y" +#line 1398 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10395 "asmparse.cpp" +#line 10413 "asmparse.cpp" break; case 524: -#line 1403 "asmparse.y" +#line 1401 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10400 "asmparse.cpp" +#line 10418 "asmparse.cpp" break; case 525: -#line 1406 "asmparse.y" - { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 10405 "asmparse.cpp" +#line 1404 "asmparse.y" + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10423 "asmparse.cpp" break; case 526: -#line 1409 "asmparse.y" - { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10410 "asmparse.cpp" +#line 1407 "asmparse.y" + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } +#line 10428 "asmparse.cpp" break; case 527: -#line 1412 "asmparse.y" - { yyval.instr = yystack.l_mark[-1].instr; bParsingByteArray = TRUE; } -#line 10415 "asmparse.cpp" +#line 1410 "asmparse.y" + { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } +#line 10433 "asmparse.cpp" break; case 528: -#line 1416 "asmparse.y" - { PASM->EmitOpcode(yystack.l_mark[0].instr); } -#line 10420 "asmparse.cpp" +#line 1413 "asmparse.y" + { yyval.instr = yystack.l_mark[-1].instr; bParsingByteArray = TRUE; } +#line 10438 "asmparse.cpp" break; case 529: #line 1417 "asmparse.y" - { PASM->EmitInstrVar(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10425 "asmparse.cpp" + { PASM->EmitOpcode(yystack.l_mark[0].instr); } +#line 10443 "asmparse.cpp" break; case 530: #line 1418 "asmparse.y" - { PASM->EmitInstrVarByName(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } -#line 10430 "asmparse.cpp" + { PASM->EmitInstrVar(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10448 "asmparse.cpp" break; case 531: #line 1419 "asmparse.y" - { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10435 "asmparse.cpp" + { PASM->EmitInstrVarByName(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } +#line 10453 "asmparse.cpp" break; case 532: #line 1420 "asmparse.y" - { PASM->EmitInstrI8(yystack.l_mark[-1].instr, yystack.l_mark[0].int64); } -#line 10440 "asmparse.cpp" + { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10458 "asmparse.cpp" break; case 533: #line 1421 "asmparse.y" - { PASM->EmitInstrR(yystack.l_mark[-1].instr, yystack.l_mark[0].float64); delete (yystack.l_mark[0].float64);} -#line 10445 "asmparse.cpp" + { PASM->EmitInstrI8(yystack.l_mark[-1].instr, yystack.l_mark[0].int64); } +#line 10463 "asmparse.cpp" break; case 534: #line 1422 "asmparse.y" - { double f = (double) (*yystack.l_mark[0].int64); PASM->EmitInstrR(yystack.l_mark[-1].instr, &f); } -#line 10450 "asmparse.cpp" + { PASM->EmitInstrR(yystack.l_mark[-1].instr, yystack.l_mark[0].float64); delete (yystack.l_mark[0].float64);} +#line 10468 "asmparse.cpp" break; case 535: #line 1423 "asmparse.y" + { double f = (double) (*yystack.l_mark[0].int64); PASM->EmitInstrR(yystack.l_mark[-1].instr, &f); } +#line 10473 "asmparse.cpp" +break; +case 536: +#line 1424 "asmparse.y" { unsigned L = yystack.l_mark[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -10459,30 +10482,30 @@ case 535: : (double)(*(float *)(yystack.l_mark[-1].binstr->ptr())); PASM->EmitInstrR(yystack.l_mark[-2].instr,&f); } delete yystack.l_mark[-1].binstr; } -#line 10463 "asmparse.cpp" -break; -case 536: -#line 1432 "asmparse.y" - { PASM->EmitInstrBrOffset(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10468 "asmparse.cpp" +#line 10486 "asmparse.cpp" break; case 537: #line 1433 "asmparse.y" - { PASM->EmitInstrBrTarget(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } -#line 10473 "asmparse.cpp" + { PASM->EmitInstrBrOffset(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } +#line 10491 "asmparse.cpp" break; case 538: -#line 1435 "asmparse.y" +#line 1434 "asmparse.y" + { PASM->EmitInstrBrTarget(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } +#line 10496 "asmparse.cpp" +break; +case 539: +#line 1436 "asmparse.y" { PASM->SetMemberRefFixup(yystack.l_mark[0].token,PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 10483 "asmparse.cpp" +#line 10506 "asmparse.cpp" break; -case 539: -#line 1442 "asmparse.y" +case 540: +#line 1443 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-4].instr)); @@ -10490,10 +10513,10 @@ case 539: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10494 "asmparse.cpp" +#line 10517 "asmparse.cpp" break; -case 540: -#line 1450 "asmparse.y" +case 541: +#line 1451 "asmparse.y" { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-2].instr)); @@ -10501,909 +10524,909 @@ case 540: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10505 "asmparse.cpp" +#line 10528 "asmparse.cpp" break; -case 541: -#line 1457 "asmparse.y" +case 542: +#line 1458 "asmparse.y" { mdToken mr = yystack.l_mark[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10515 "asmparse.cpp" +#line 10538 "asmparse.cpp" break; -case 542: -#line 1463 "asmparse.y" +case 543: +#line 1464 "asmparse.y" { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10525 "asmparse.cpp" +#line 10548 "asmparse.cpp" break; -case 543: -#line 1469 "asmparse.y" +case 544: +#line 1470 "asmparse.y" { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10535 "asmparse.cpp" +#line 10558 "asmparse.cpp" break; -case 544: -#line 1475 "asmparse.y" +case 545: +#line 1476 "asmparse.y" { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; } -#line 10543 "asmparse.cpp" +#line 10566 "asmparse.cpp" break; -case 545: -#line 1479 "asmparse.y" +case 546: +#line 1480 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-1].instr, yystack.l_mark[0].binstr,TRUE); } -#line 10548 "asmparse.cpp" +#line 10571 "asmparse.cpp" break; -case 546: -#line 1481 "asmparse.y" +case 547: +#line 1482 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-4].instr, yystack.l_mark[-1].binstr,FALSE); } -#line 10553 "asmparse.cpp" +#line 10576 "asmparse.cpp" break; -case 547: -#line 1483 "asmparse.y" +case 548: +#line 1484 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-3].instr, yystack.l_mark[-1].binstr,FALSE,TRUE); } -#line 10558 "asmparse.cpp" +#line 10581 "asmparse.cpp" break; -case 548: -#line 1485 "asmparse.y" +case 549: +#line 1486 "asmparse.y" { PASM->EmitInstrSig(yystack.l_mark[-5].instr, parser->MakeSig(yystack.l_mark[-4].int32, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr)); PASM->ResetArgNameList(); } -#line 10565 "asmparse.cpp" +#line 10588 "asmparse.cpp" break; -case 549: -#line 1489 "asmparse.y" +case 550: +#line 1490 "asmparse.y" { PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 10574 "asmparse.cpp" -break; -case 550: -#line 1494 "asmparse.y" - { PASM->EmitInstrSwitch(yystack.l_mark[-3].instr, yystack.l_mark[-1].labels); } -#line 10579 "asmparse.cpp" +#line 10597 "asmparse.cpp" break; case 551: -#line 1497 "asmparse.y" - { yyval.labels = 0; } -#line 10584 "asmparse.cpp" +#line 1495 "asmparse.y" + { PASM->EmitInstrSwitch(yystack.l_mark[-3].instr, yystack.l_mark[-1].labels); } +#line 10602 "asmparse.cpp" break; case 552: #line 1498 "asmparse.y" - { yyval.labels = new Labels(yystack.l_mark[-2].string, yystack.l_mark[0].labels, TRUE); } -#line 10589 "asmparse.cpp" + { yyval.labels = 0; } +#line 10607 "asmparse.cpp" break; case 553: #line 1499 "asmparse.y" - { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[-2].int32, yystack.l_mark[0].labels, FALSE); } -#line 10594 "asmparse.cpp" + { yyval.labels = new Labels(yystack.l_mark[-2].string, yystack.l_mark[0].labels, TRUE); } +#line 10612 "asmparse.cpp" break; case 554: #line 1500 "asmparse.y" - { yyval.labels = new Labels(yystack.l_mark[0].string, NULL, TRUE); } -#line 10599 "asmparse.cpp" + { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[-2].int32, yystack.l_mark[0].labels, FALSE); } +#line 10617 "asmparse.cpp" break; case 555: #line 1501 "asmparse.y" - { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[0].int32, NULL, FALSE); } -#line 10604 "asmparse.cpp" + { yyval.labels = new Labels(yystack.l_mark[0].string, NULL, TRUE); } +#line 10622 "asmparse.cpp" break; case 556: -#line 1505 "asmparse.y" - { yyval.binstr = NULL; } -#line 10609 "asmparse.cpp" +#line 1502 "asmparse.y" + { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[0].int32, NULL, FALSE); } +#line 10627 "asmparse.cpp" break; case 557: #line 1506 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 10614 "asmparse.cpp" + { yyval.binstr = NULL; } +#line 10632 "asmparse.cpp" break; case 558: -#line 1509 "asmparse.y" - { yyval.binstr = NULL; } -#line 10619 "asmparse.cpp" +#line 1507 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; } +#line 10637 "asmparse.cpp" break; case 559: #line 1510 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10624 "asmparse.cpp" + { yyval.binstr = NULL; } +#line 10642 "asmparse.cpp" break; case 560: -#line 1513 "asmparse.y" +#line 1511 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10629 "asmparse.cpp" +#line 10647 "asmparse.cpp" break; case 561: #line 1514 "asmparse.y" - { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10634 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 10652 "asmparse.cpp" break; case 562: -#line 1518 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10639 "asmparse.cpp" +#line 1515 "asmparse.y" + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10657 "asmparse.cpp" break; case 563: #line 1519 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr;} -#line 10644 "asmparse.cpp" + { yyval.binstr = new BinStr(); } +#line 10662 "asmparse.cpp" break; case 564: -#line 1522 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10649 "asmparse.cpp" +#line 1520 "asmparse.y" + { yyval.binstr = yystack.l_mark[0].binstr;} +#line 10667 "asmparse.cpp" break; case 565: #line 1523 "asmparse.y" - { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10654 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 10672 "asmparse.cpp" break; case 566: -#line 1526 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 10659 "asmparse.cpp" +#line 1524 "asmparse.y" + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 10677 "asmparse.cpp" break; case 567: #line 1527 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->addArgName(NULL, yystack.l_mark[-1].binstr, yystack.l_mark[0].binstr, yystack.l_mark[-2].int32); } -#line 10664 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } +#line 10682 "asmparse.cpp" break; case 568: #line 1528 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-2].binstr); PASM->addArgName(yystack.l_mark[0].string, yystack.l_mark[-2].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32);} -#line 10669 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->addArgName(NULL, yystack.l_mark[-1].binstr, yystack.l_mark[0].binstr, yystack.l_mark[-2].int32); } +#line 10687 "asmparse.cpp" break; case 569: -#line 1532 "asmparse.y" - { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yystack.l_mark[-2].string), yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} -#line 10674 "asmparse.cpp" +#line 1529 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-2].binstr); PASM->addArgName(yystack.l_mark[0].string, yystack.l_mark[-2].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32);} +#line 10692 "asmparse.cpp" break; case 570: #line 1533 "asmparse.y" - { yyval.token = PASM->ResolveClassRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, NULL); } -#line 10679 "asmparse.cpp" + { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yystack.l_mark[-2].string), yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} +#line 10697 "asmparse.cpp" break; case 571: #line 1534 "asmparse.y" - { yyval.token = PASM->ResolveClassRef(mdTokenNil, yystack.l_mark[0].string, NULL); } -#line 10684 "asmparse.cpp" + { yyval.token = PASM->ResolveClassRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, NULL); } +#line 10702 "asmparse.cpp" break; case 572: #line 1535 "asmparse.y" - { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yystack.l_mark[-2].string),yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} -#line 10689 "asmparse.cpp" + { yyval.token = PASM->ResolveClassRef(mdTokenNil, yystack.l_mark[0].string, NULL); } +#line 10707 "asmparse.cpp" break; case 573: #line 1536 "asmparse.y" - { yyval.token = PASM->ResolveClassRef(1,yystack.l_mark[0].string,NULL); } -#line 10694 "asmparse.cpp" + { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yystack.l_mark[-2].string),yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} +#line 10712 "asmparse.cpp" break; case 574: #line 1537 "asmparse.y" - { yyval.token = yystack.l_mark[0].token; } -#line 10699 "asmparse.cpp" + { yyval.token = PASM->ResolveClassRef(1,yystack.l_mark[0].string,NULL); } +#line 10717 "asmparse.cpp" break; case 575: #line 1538 "asmparse.y" - { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 10704 "asmparse.cpp" + { yyval.token = yystack.l_mark[0].token; } +#line 10722 "asmparse.cpp" break; case 576: #line 1539 "asmparse.y" + { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } +#line 10727 "asmparse.cpp" +break; +case 577: +#line 1540 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 10711 "asmparse.cpp" +#line 10734 "asmparse.cpp" break; -case 577: -#line 1542 "asmparse.y" +case 578: +#line 1543 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 10721 "asmparse.cpp" +#line 10744 "asmparse.cpp" break; -case 578: -#line 1548 "asmparse.y" +case 579: +#line 1549 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 10730 "asmparse.cpp" -break; -case 579: -#line 1555 "asmparse.y" - { yyval.string = yystack.l_mark[0].string; } -#line 10735 "asmparse.cpp" +#line 10753 "asmparse.cpp" break; case 580: #line 1556 "asmparse.y" - { yyval.string = newStringWDel(yystack.l_mark[-2].string, NESTING_SEP, yystack.l_mark[0].string); } -#line 10740 "asmparse.cpp" + { yyval.string = yystack.l_mark[0].string; } +#line 10758 "asmparse.cpp" break; case 581: -#line 1559 "asmparse.y" - { yyval.token = yystack.l_mark[0].token;} -#line 10745 "asmparse.cpp" +#line 1557 "asmparse.y" + { yyval.string = newStringWDel(yystack.l_mark[-2].string, NESTING_SEP, yystack.l_mark[0].string); } +#line 10763 "asmparse.cpp" break; case 582: #line 1560 "asmparse.y" - { yyval.token = PASM->GetAsmRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} -#line 10750 "asmparse.cpp" + { yyval.token = yystack.l_mark[0].token;} +#line 10768 "asmparse.cpp" break; case 583: #line 1561 "asmparse.y" - { yyval.token = PASM->GetModRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} -#line 10755 "asmparse.cpp" + { yyval.token = PASM->GetAsmRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} +#line 10773 "asmparse.cpp" break; case 584: #line 1562 "asmparse.y" - { yyval.token = PASM->ResolveTypeSpec(yystack.l_mark[0].binstr); } -#line 10760 "asmparse.cpp" + { yyval.token = PASM->GetModRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} +#line 10778 "asmparse.cpp" break; case 585: -#line 1566 "asmparse.y" - { yyval.binstr = new BinStr(); } -#line 10765 "asmparse.cpp" +#line 1563 "asmparse.y" + { yyval.token = PASM->ResolveTypeSpec(yystack.l_mark[0].binstr); } +#line 10783 "asmparse.cpp" break; case 586: -#line 1568 "asmparse.y" +#line 1567 "asmparse.y" + { yyval.binstr = new BinStr(); } +#line 10788 "asmparse.cpp" +break; +case 587: +#line 1569 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yystack.l_mark[-7].binstr->length()); yyval.binstr->append(yystack.l_mark[-7].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-5].binstr->length()); yyval.binstr->append(yystack.l_mark[-5].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 10775 "asmparse.cpp" +#line 10798 "asmparse.cpp" break; -case 587: -#line 1575 "asmparse.y" +case 588: +#line 1576 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); } -#line 10784 "asmparse.cpp" +#line 10807 "asmparse.cpp" break; -case 588: -#line 1580 "asmparse.y" +case 589: +#line 1581 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } -#line 10790 "asmparse.cpp" +#line 10813 "asmparse.cpp" break; -case 589: -#line 1583 "asmparse.y" +case 590: +#line 1584 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); yyval.binstr->append(yystack.l_mark[0].binstr); } -#line 10796 "asmparse.cpp" +#line 10819 "asmparse.cpp" break; -case 590: -#line 1585 "asmparse.y" +case 591: +#line 1586 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 10802 "asmparse.cpp" -break; -case 591: -#line 1587 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 10807 "asmparse.cpp" +#line 10825 "asmparse.cpp" break; case 592: #line 1588 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } +#line 10830 "asmparse.cpp" +break; +case 593: +#line 1589 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 10813 "asmparse.cpp" +#line 10836 "asmparse.cpp" break; -case 593: -#line 1590 "asmparse.y" +case 594: +#line 1591 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 10819 "asmparse.cpp" -break; -case 594: -#line 1592 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 10824 "asmparse.cpp" +#line 10842 "asmparse.cpp" break; case 595: #line 1593 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 10829 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } +#line 10847 "asmparse.cpp" break; case 596: #line 1594 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 10834 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } +#line 10852 "asmparse.cpp" break; case 597: #line 1595 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 10839 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } +#line 10857 "asmparse.cpp" break; case 598: #line 1596 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 10844 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } +#line 10862 "asmparse.cpp" break; case 599: #line 1597 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 10849 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } +#line 10867 "asmparse.cpp" break; case 600: #line 1598 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 10854 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } +#line 10872 "asmparse.cpp" break; case 601: #line 1599 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 10859 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } +#line 10877 "asmparse.cpp" break; case 602: #line 1600 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10864 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } +#line 10882 "asmparse.cpp" break; case 603: #line 1601 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10869 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 10887 "asmparse.cpp" break; case 604: #line 1602 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10874 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 10892 "asmparse.cpp" break; case 605: #line 1603 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10879 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 10897 "asmparse.cpp" break; case 606: #line 1604 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10884 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 10902 "asmparse.cpp" break; case 607: #line 1605 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10889 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } +#line 10907 "asmparse.cpp" break; case 608: #line 1606 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10894 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } +#line 10912 "asmparse.cpp" break; case 609: #line 1607 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10899 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } +#line 10917 "asmparse.cpp" break; case 610: #line 1608 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } +#line 10922 "asmparse.cpp" +break; +case 611: +#line 1609 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 10905 "asmparse.cpp" +#line 10928 "asmparse.cpp" break; -case 611: -#line 1610 "asmparse.y" +case 612: +#line 1611 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10911 "asmparse.cpp" +#line 10934 "asmparse.cpp" break; -case 612: -#line 1612 "asmparse.y" +case 613: +#line 1613 "asmparse.y" { yyval.binstr = yystack.l_mark[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10920 "asmparse.cpp" +#line 10943 "asmparse.cpp" break; -case 613: -#line 1617 "asmparse.y" +case 614: +#line 1618 "asmparse.y" { yyval.binstr = yystack.l_mark[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); corEmitInt(yyval.binstr,yystack.l_mark[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10929 "asmparse.cpp" +#line 10952 "asmparse.cpp" break; -case 614: -#line 1622 "asmparse.y" +case 615: +#line 1623 "asmparse.y" { yyval.binstr = yystack.l_mark[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } -#line 10936 "asmparse.cpp" +#line 10959 "asmparse.cpp" break; -case 615: -#line 1625 "asmparse.y" +case 616: +#line 1626 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10942 "asmparse.cpp" +#line 10965 "asmparse.cpp" break; -case 616: -#line 1627 "asmparse.y" +case 617: +#line 1628 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10948 "asmparse.cpp" -break; -case 617: -#line 1629 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10953 "asmparse.cpp" +#line 10971 "asmparse.cpp" break; case 618: #line 1630 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10958 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } +#line 10976 "asmparse.cpp" break; case 619: #line 1631 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10963 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } +#line 10981 "asmparse.cpp" break; case 620: #line 1632 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10968 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } +#line 10986 "asmparse.cpp" break; case 621: #line 1633 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } +#line 10991 "asmparse.cpp" +break; +case 622: +#line 1634 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10974 "asmparse.cpp" +#line 10997 "asmparse.cpp" break; -case 622: -#line 1635 "asmparse.y" +case 623: +#line 1636 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 10980 "asmparse.cpp" +#line 11003 "asmparse.cpp" break; -case 623: -#line 1637 "asmparse.y" +case 624: +#line 1638 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 10986 "asmparse.cpp" -break; -case 624: -#line 1639 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 10991 "asmparse.cpp" +#line 11009 "asmparse.cpp" break; case 625: #line 1640 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } +#line 11014 "asmparse.cpp" +break; +case 626: +#line 1641 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 10997 "asmparse.cpp" +#line 11020 "asmparse.cpp" break; -case 626: -#line 1642 "asmparse.y" +case 627: +#line 1643 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yystack.l_mark[0].int32); corEmitInt(yyval.binstr,0);} -#line 11004 "asmparse.cpp" +#line 11027 "asmparse.cpp" break; -case 627: -#line 1645 "asmparse.y" +case 628: +#line 1646 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); corEmitInt(yyval.binstr,yystack.l_mark[0].binstr->length()); yyval.binstr->append(yystack.l_mark[0].binstr); } -#line 11011 "asmparse.cpp" -break; -case 628: -#line 1649 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 11016 "asmparse.cpp" +#line 11034 "asmparse.cpp" break; case 629: #line 1650 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11021 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } +#line 11039 "asmparse.cpp" break; case 630: #line 1651 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11026 "asmparse.cpp" +#line 11044 "asmparse.cpp" break; case 631: #line 1652 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); - PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 11032 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } +#line 11049 "asmparse.cpp" break; case 632: -#line 1654 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 11037 "asmparse.cpp" +#line 1653 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); + PASM->report->warn("Deprecated native type 'nested struct'\n"); } +#line 11055 "asmparse.cpp" break; case 633: #line 1655 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 11042 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } +#line 11060 "asmparse.cpp" break; case 634: #line 1656 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 11047 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } +#line 11065 "asmparse.cpp" break; case 635: #line 1657 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 11052 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } +#line 11070 "asmparse.cpp" break; case 636: #line 1658 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 11057 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } +#line 11075 "asmparse.cpp" break; case 637: #line 1659 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 11062 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } +#line 11080 "asmparse.cpp" break; case 638: #line 1660 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 11067 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } +#line 11085 "asmparse.cpp" break; case 639: #line 1661 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } -#line 11072 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } +#line 11090 "asmparse.cpp" break; case 640: -#line 1664 "asmparse.y" - { yyval.int32 = -1; } -#line 11077 "asmparse.cpp" +#line 1662 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } +#line 11095 "asmparse.cpp" break; case 641: #line 1665 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32; } -#line 11082 "asmparse.cpp" + { yyval.int32 = -1; } +#line 11100 "asmparse.cpp" break; case 642: -#line 1668 "asmparse.y" - { yyval.int32 = VT_EMPTY; } -#line 11087 "asmparse.cpp" +#line 1666 "asmparse.y" + { yyval.int32 = yystack.l_mark[-1].int32; } +#line 11105 "asmparse.cpp" break; case 643: #line 1669 "asmparse.y" - { yyval.int32 = VT_NULL; } -#line 11092 "asmparse.cpp" + { yyval.int32 = VT_EMPTY; } +#line 11110 "asmparse.cpp" break; case 644: #line 1670 "asmparse.y" - { yyval.int32 = VT_VARIANT; } -#line 11097 "asmparse.cpp" + { yyval.int32 = VT_NULL; } +#line 11115 "asmparse.cpp" break; case 645: #line 1671 "asmparse.y" - { yyval.int32 = VT_CY; } -#line 11102 "asmparse.cpp" + { yyval.int32 = VT_VARIANT; } +#line 11120 "asmparse.cpp" break; case 646: #line 1672 "asmparse.y" - { yyval.int32 = VT_VOID; } -#line 11107 "asmparse.cpp" + { yyval.int32 = VT_CY; } +#line 11125 "asmparse.cpp" break; case 647: #line 1673 "asmparse.y" - { yyval.int32 = VT_BOOL; } -#line 11112 "asmparse.cpp" + { yyval.int32 = VT_VOID; } +#line 11130 "asmparse.cpp" break; case 648: #line 1674 "asmparse.y" - { yyval.int32 = VT_I1; } -#line 11117 "asmparse.cpp" + { yyval.int32 = VT_BOOL; } +#line 11135 "asmparse.cpp" break; case 649: #line 1675 "asmparse.y" - { yyval.int32 = VT_I2; } -#line 11122 "asmparse.cpp" + { yyval.int32 = VT_I1; } +#line 11140 "asmparse.cpp" break; case 650: #line 1676 "asmparse.y" - { yyval.int32 = VT_I4; } -#line 11127 "asmparse.cpp" + { yyval.int32 = VT_I2; } +#line 11145 "asmparse.cpp" break; case 651: #line 1677 "asmparse.y" - { yyval.int32 = VT_I8; } -#line 11132 "asmparse.cpp" + { yyval.int32 = VT_I4; } +#line 11150 "asmparse.cpp" break; case 652: #line 1678 "asmparse.y" - { yyval.int32 = VT_R4; } -#line 11137 "asmparse.cpp" + { yyval.int32 = VT_I8; } +#line 11155 "asmparse.cpp" break; case 653: #line 1679 "asmparse.y" - { yyval.int32 = VT_R8; } -#line 11142 "asmparse.cpp" + { yyval.int32 = VT_R4; } +#line 11160 "asmparse.cpp" break; case 654: #line 1680 "asmparse.y" - { yyval.int32 = VT_UI1; } -#line 11147 "asmparse.cpp" + { yyval.int32 = VT_R8; } +#line 11165 "asmparse.cpp" break; case 655: #line 1681 "asmparse.y" - { yyval.int32 = VT_UI2; } -#line 11152 "asmparse.cpp" + { yyval.int32 = VT_UI1; } +#line 11170 "asmparse.cpp" break; case 656: #line 1682 "asmparse.y" - { yyval.int32 = VT_UI4; } -#line 11157 "asmparse.cpp" + { yyval.int32 = VT_UI2; } +#line 11175 "asmparse.cpp" break; case 657: #line 1683 "asmparse.y" - { yyval.int32 = VT_UI8; } -#line 11162 "asmparse.cpp" + { yyval.int32 = VT_UI4; } +#line 11180 "asmparse.cpp" break; case 658: #line 1684 "asmparse.y" - { yyval.int32 = VT_UI1; } -#line 11167 "asmparse.cpp" + { yyval.int32 = VT_UI8; } +#line 11185 "asmparse.cpp" break; case 659: #line 1685 "asmparse.y" - { yyval.int32 = VT_UI2; } -#line 11172 "asmparse.cpp" + { yyval.int32 = VT_UI1; } +#line 11190 "asmparse.cpp" break; case 660: #line 1686 "asmparse.y" - { yyval.int32 = VT_UI4; } -#line 11177 "asmparse.cpp" + { yyval.int32 = VT_UI2; } +#line 11195 "asmparse.cpp" break; case 661: #line 1687 "asmparse.y" - { yyval.int32 = VT_UI8; } -#line 11182 "asmparse.cpp" + { yyval.int32 = VT_UI4; } +#line 11200 "asmparse.cpp" break; case 662: #line 1688 "asmparse.y" - { yyval.int32 = VT_PTR; } -#line 11187 "asmparse.cpp" + { yyval.int32 = VT_UI8; } +#line 11205 "asmparse.cpp" break; case 663: #line 1689 "asmparse.y" - { yyval.int32 = yystack.l_mark[-2].int32 | VT_ARRAY; } -#line 11192 "asmparse.cpp" + { yyval.int32 = VT_PTR; } +#line 11210 "asmparse.cpp" break; case 664: #line 1690 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32 | VT_VECTOR; } -#line 11197 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-2].int32 | VT_ARRAY; } +#line 11215 "asmparse.cpp" break; case 665: #line 1691 "asmparse.y" - { yyval.int32 = yystack.l_mark[-1].int32 | VT_BYREF; } -#line 11202 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-1].int32 | VT_VECTOR; } +#line 11220 "asmparse.cpp" break; case 666: #line 1692 "asmparse.y" - { yyval.int32 = VT_DECIMAL; } -#line 11207 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[-1].int32 | VT_BYREF; } +#line 11225 "asmparse.cpp" break; case 667: #line 1693 "asmparse.y" - { yyval.int32 = VT_DATE; } -#line 11212 "asmparse.cpp" + { yyval.int32 = VT_DECIMAL; } +#line 11230 "asmparse.cpp" break; case 668: #line 1694 "asmparse.y" - { yyval.int32 = VT_BSTR; } -#line 11217 "asmparse.cpp" + { yyval.int32 = VT_DATE; } +#line 11235 "asmparse.cpp" break; case 669: #line 1695 "asmparse.y" - { yyval.int32 = VT_LPSTR; } -#line 11222 "asmparse.cpp" + { yyval.int32 = VT_BSTR; } +#line 11240 "asmparse.cpp" break; case 670: #line 1696 "asmparse.y" - { yyval.int32 = VT_LPWSTR; } -#line 11227 "asmparse.cpp" + { yyval.int32 = VT_LPSTR; } +#line 11245 "asmparse.cpp" break; case 671: #line 1697 "asmparse.y" - { yyval.int32 = VT_UNKNOWN; } -#line 11232 "asmparse.cpp" + { yyval.int32 = VT_LPWSTR; } +#line 11250 "asmparse.cpp" break; case 672: #line 1698 "asmparse.y" - { yyval.int32 = VT_DISPATCH; } -#line 11237 "asmparse.cpp" + { yyval.int32 = VT_UNKNOWN; } +#line 11255 "asmparse.cpp" break; case 673: #line 1699 "asmparse.y" - { yyval.int32 = VT_SAFEARRAY; } -#line 11242 "asmparse.cpp" + { yyval.int32 = VT_DISPATCH; } +#line 11260 "asmparse.cpp" break; case 674: #line 1700 "asmparse.y" - { yyval.int32 = VT_INT; } -#line 11247 "asmparse.cpp" + { yyval.int32 = VT_SAFEARRAY; } +#line 11265 "asmparse.cpp" break; case 675: #line 1701 "asmparse.y" - { yyval.int32 = VT_UINT; } -#line 11252 "asmparse.cpp" + { yyval.int32 = VT_INT; } +#line 11270 "asmparse.cpp" break; case 676: #line 1702 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 11257 "asmparse.cpp" +#line 11275 "asmparse.cpp" break; case 677: #line 1703 "asmparse.y" - { yyval.int32 = VT_ERROR; } -#line 11262 "asmparse.cpp" + { yyval.int32 = VT_UINT; } +#line 11280 "asmparse.cpp" break; case 678: #line 1704 "asmparse.y" - { yyval.int32 = VT_HRESULT; } -#line 11267 "asmparse.cpp" + { yyval.int32 = VT_ERROR; } +#line 11285 "asmparse.cpp" break; case 679: #line 1705 "asmparse.y" - { yyval.int32 = VT_CARRAY; } -#line 11272 "asmparse.cpp" + { yyval.int32 = VT_HRESULT; } +#line 11290 "asmparse.cpp" break; case 680: #line 1706 "asmparse.y" - { yyval.int32 = VT_USERDEFINED; } -#line 11277 "asmparse.cpp" + { yyval.int32 = VT_CARRAY; } +#line 11295 "asmparse.cpp" break; case 681: #line 1707 "asmparse.y" - { yyval.int32 = VT_RECORD; } -#line 11282 "asmparse.cpp" + { yyval.int32 = VT_USERDEFINED; } +#line 11300 "asmparse.cpp" break; case 682: #line 1708 "asmparse.y" - { yyval.int32 = VT_FILETIME; } -#line 11287 "asmparse.cpp" + { yyval.int32 = VT_RECORD; } +#line 11305 "asmparse.cpp" break; case 683: #line 1709 "asmparse.y" - { yyval.int32 = VT_BLOB; } -#line 11292 "asmparse.cpp" + { yyval.int32 = VT_FILETIME; } +#line 11310 "asmparse.cpp" break; case 684: #line 1710 "asmparse.y" - { yyval.int32 = VT_STREAM; } -#line 11297 "asmparse.cpp" + { yyval.int32 = VT_BLOB; } +#line 11315 "asmparse.cpp" break; case 685: #line 1711 "asmparse.y" - { yyval.int32 = VT_STORAGE; } -#line 11302 "asmparse.cpp" + { yyval.int32 = VT_STREAM; } +#line 11320 "asmparse.cpp" break; case 686: #line 1712 "asmparse.y" - { yyval.int32 = VT_STREAMED_OBJECT; } -#line 11307 "asmparse.cpp" + { yyval.int32 = VT_STORAGE; } +#line 11325 "asmparse.cpp" break; case 687: #line 1713 "asmparse.y" - { yyval.int32 = VT_STORED_OBJECT; } -#line 11312 "asmparse.cpp" + { yyval.int32 = VT_STREAMED_OBJECT; } +#line 11330 "asmparse.cpp" break; case 688: #line 1714 "asmparse.y" - { yyval.int32 = VT_BLOB_OBJECT; } -#line 11317 "asmparse.cpp" + { yyval.int32 = VT_STORED_OBJECT; } +#line 11335 "asmparse.cpp" break; case 689: #line 1715 "asmparse.y" - { yyval.int32 = VT_CF; } -#line 11322 "asmparse.cpp" + { yyval.int32 = VT_BLOB_OBJECT; } +#line 11340 "asmparse.cpp" break; case 690: #line 1716 "asmparse.y" - { yyval.int32 = VT_CLSID; } -#line 11327 "asmparse.cpp" + { yyval.int32 = VT_CF; } +#line 11345 "asmparse.cpp" break; case 691: -#line 1720 "asmparse.y" +#line 1717 "asmparse.y" + { yyval.int32 = VT_CLSID; } +#line 11350 "asmparse.cpp" +break; +case 692: +#line 1721 "asmparse.y" { if(yystack.l_mark[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yystack.l_mark[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yystack.l_mark[0].token); } -#line 11337 "asmparse.cpp" -break; -case 692: -#line 1726 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 11342 "asmparse.cpp" +#line 11360 "asmparse.cpp" break; case 693: #line 1727 "asmparse.y" - { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } -#line 11347 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } +#line 11365 "asmparse.cpp" break; case 694: #line 1728 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } -#line 11352 "asmparse.cpp" +#line 11370 "asmparse.cpp" break; case 695: #line 1729 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 11357 "asmparse.cpp" + { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } +#line 11375 "asmparse.cpp" break; case 696: #line 1730 "asmparse.y" - { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 11362 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } +#line 11380 "asmparse.cpp" break; case 697: #line 1731 "asmparse.y" - { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr); } -#line 11367 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } +#line 11385 "asmparse.cpp" break; case 698: #line 1732 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 11372 "asmparse.cpp" + { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr); } +#line 11390 "asmparse.cpp" break; case 699: #line 1733 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 11377 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } +#line 11395 "asmparse.cpp" break; case 700: #line 1734 "asmparse.y" - { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 11382 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } +#line 11400 "asmparse.cpp" break; case 701: #line 1735 "asmparse.y" + { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } +#line 11405 "asmparse.cpp" +break; +case 702: +#line 1736 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yystack.l_mark[-1].token); yyval.binstr->append(yystack.l_mark[-4].binstr); } -#line 11388 "asmparse.cpp" +#line 11411 "asmparse.cpp" break; -case 702: -#line 1737 "asmparse.y" +case 703: +#line 1738 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yystack.l_mark[-1].token); yyval.binstr->append(yystack.l_mark[-4].binstr); } -#line 11394 "asmparse.cpp" +#line 11417 "asmparse.cpp" break; -case 703: -#line 1740 "asmparse.y" +case 704: +#line 1741 "asmparse.y" { yyval.binstr = parser->MakeSig(yystack.l_mark[-5].int32, yystack.l_mark[-4].binstr, yystack.l_mark[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 11404 "asmparse.cpp" +#line 11427 "asmparse.cpp" break; -case 704: -#line 1746 "asmparse.y" +case 705: +#line 1747 "asmparse.y" { if(yystack.l_mark[-1].binstr == NULL) yyval.binstr = yystack.l_mark[-3].binstr; else { yyval.binstr = new BinStr(); @@ -11411,30 +11434,30 @@ case 704: yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yystack.l_mark[-1].binstr)); yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-3].binstr; delete yystack.l_mark[-1].binstr; }} -#line 11415 "asmparse.cpp" +#line 11438 "asmparse.cpp" break; -case 705: -#line 1753 "asmparse.y" +case 706: +#line 1754 "asmparse.y" { /*if(PASM->m_pCurMethod) { */ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) */ /* PASM->report->error("Invalid method type parameter '%d'\n",$3); */ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); */ } -#line 11425 "asmparse.cpp" +#line 11448 "asmparse.cpp" break; -case 706: -#line 1759 "asmparse.y" +case 707: +#line 1760 "asmparse.y" { /*if(PASM->m_pCurClass) { */ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) */ /* PASM->report->error("Invalid type parameter '%d'\n",$2); */ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); */ } -#line 11435 "asmparse.cpp" +#line 11458 "asmparse.cpp" break; -case 707: -#line 1765 "asmparse.y" +case 708: +#line 1766 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); @@ -11450,10 +11473,10 @@ case 707: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11454 "asmparse.cpp" +#line 11477 "asmparse.cpp" break; -case 708: -#line 1780 "asmparse.y" +case 709: +#line 1781 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); @@ -11469,781 +11492,781 @@ case 708: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11473 "asmparse.cpp" -break; -case 709: -#line 1795 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 11478 "asmparse.cpp" +#line 11496 "asmparse.cpp" break; case 710: #line 1796 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 11483 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } +#line 11501 "asmparse.cpp" break; case 711: #line 1797 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 11488 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } +#line 11506 "asmparse.cpp" break; case 712: #line 1798 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 11493 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } +#line 11511 "asmparse.cpp" break; case 713: #line 1799 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 11498 "asmparse.cpp" +#line 11516 "asmparse.cpp" break; case 714: #line 1800 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 11503 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } +#line 11521 "asmparse.cpp" break; case 715: #line 1801 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 11508 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 11526 "asmparse.cpp" break; case 716: -#line 1804 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 11513 "asmparse.cpp" +#line 1802 "asmparse.y" + { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } +#line 11531 "asmparse.cpp" break; case 717: #line 1805 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 11518 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } +#line 11536 "asmparse.cpp" break; case 718: #line 1806 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 11523 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } +#line 11541 "asmparse.cpp" break; case 719: #line 1807 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 11528 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } +#line 11546 "asmparse.cpp" break; case 720: #line 1808 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 11533 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } +#line 11551 "asmparse.cpp" break; case 721: #line 1809 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 11538 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } +#line 11556 "asmparse.cpp" break; case 722: #line 1810 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 11543 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } +#line 11561 "asmparse.cpp" break; case 723: #line 1811 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 11548 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } +#line 11566 "asmparse.cpp" break; case 724: #line 1812 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 11553 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } +#line 11571 "asmparse.cpp" break; case 725: #line 1813 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11558 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } +#line 11576 "asmparse.cpp" break; case 726: #line 1814 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11563 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11581 "asmparse.cpp" break; case 727: #line 1815 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11568 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11586 "asmparse.cpp" break; case 728: #line 1816 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11573 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11591 "asmparse.cpp" break; case 729: #line 1817 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11578 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11596 "asmparse.cpp" break; case 730: #line 1818 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11583 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } +#line 11601 "asmparse.cpp" break; case 731: #line 1819 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11588 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } +#line 11606 "asmparse.cpp" break; case 732: #line 1820 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11593 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } +#line 11611 "asmparse.cpp" break; case 733: #line 1821 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } -#line 11598 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } +#line 11616 "asmparse.cpp" break; case 734: -#line 1824 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; } -#line 11603 "asmparse.cpp" +#line 1822 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } +#line 11621 "asmparse.cpp" break; case 735: #line 1825 "asmparse.y" - { yyval.binstr = yystack.l_mark[-2].binstr; yystack.l_mark[-2].binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 11608 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; } +#line 11626 "asmparse.cpp" break; case 736: -#line 1828 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11613 "asmparse.cpp" +#line 1826 "asmparse.y" + { yyval.binstr = yystack.l_mark[-2].binstr; yystack.l_mark[-2].binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } +#line 11631 "asmparse.cpp" break; case 737: #line 1829 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11618 "asmparse.cpp" +#line 11636 "asmparse.cpp" break; case 738: #line 1830 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 11623 "asmparse.cpp" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11641 "asmparse.cpp" break; case 739: #line 1831 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } +#line 11646 "asmparse.cpp" +break; +case 740: +#line 1832 "asmparse.y" { FAIL_UNLESS(yystack.l_mark[-2].int32 <= yystack.l_mark[0].int32, ("lower bound %d must be <= upper bound %d\n", yystack.l_mark[-2].int32, yystack.l_mark[0].int32)); if (yystack.l_mark[-2].int32 > yystack.l_mark[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-2].int32); yyval.binstr->appendInt32(yystack.l_mark[0].int32-yystack.l_mark[-2].int32+1); } -#line 11630 "asmparse.cpp" -break; -case 740: -#line 1834 "asmparse.y" - { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11635 "asmparse.cpp" +#line 11653 "asmparse.cpp" break; case 741: -#line 1839 "asmparse.y" - { PASM->AddPermissionDecl(yystack.l_mark[-4].secAct, yystack.l_mark[-3].token, yystack.l_mark[-1].pair); } -#line 11640 "asmparse.cpp" +#line 1835 "asmparse.y" + { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } +#line 11658 "asmparse.cpp" break; case 742: -#line 1841 "asmparse.y" - { PASM->AddPermissionDecl(yystack.l_mark[-5].secAct, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 11645 "asmparse.cpp" +#line 1840 "asmparse.y" + { PASM->AddPermissionDecl(yystack.l_mark[-4].secAct, yystack.l_mark[-3].token, yystack.l_mark[-1].pair); } +#line 11663 "asmparse.cpp" break; case 743: #line 1842 "asmparse.y" - { PASM->AddPermissionDecl(yystack.l_mark[-1].secAct, yystack.l_mark[0].token, (NVPair *)NULL); } -#line 11650 "asmparse.cpp" + { PASM->AddPermissionDecl(yystack.l_mark[-5].secAct, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } +#line 11668 "asmparse.cpp" break; case 744: #line 1843 "asmparse.y" - { PASM->AddPermissionSetDecl(yystack.l_mark[-2].secAct, yystack.l_mark[-1].binstr); } -#line 11655 "asmparse.cpp" + { PASM->AddPermissionDecl(yystack.l_mark[-1].secAct, yystack.l_mark[0].token, (NVPair *)NULL); } +#line 11673 "asmparse.cpp" break; case 745: -#line 1845 "asmparse.y" - { PASM->AddPermissionSetDecl(yystack.l_mark[-1].secAct,BinStrToUnicode(yystack.l_mark[0].binstr,true));} -#line 11660 "asmparse.cpp" +#line 1844 "asmparse.y" + { PASM->AddPermissionSetDecl(yystack.l_mark[-2].secAct, yystack.l_mark[-1].binstr); } +#line 11678 "asmparse.cpp" break; case 746: -#line 1847 "asmparse.y" +#line 1846 "asmparse.y" + { PASM->AddPermissionSetDecl(yystack.l_mark[-1].secAct,BinStrToUnicode(yystack.l_mark[0].binstr,true));} +#line 11683 "asmparse.cpp" +break; +case 747: +#line 1848 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yystack.l_mark[-1].binstr); PASM->AddPermissionSetDecl(yystack.l_mark[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 11670 "asmparse.cpp" -break; -case 747: -#line 1855 "asmparse.y" - { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 11675 "asmparse.cpp" +#line 11693 "asmparse.cpp" break; case 748: #line 1856 "asmparse.y" - { yyval.binstr = yystack.l_mark[0].binstr; nSecAttrBlobs = 1; } -#line 11680 "asmparse.cpp" + { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} +#line 11698 "asmparse.cpp" break; case 749: #line 1857 "asmparse.y" - { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); nSecAttrBlobs++; } -#line 11685 "asmparse.cpp" + { yyval.binstr = yystack.l_mark[0].binstr; nSecAttrBlobs = 1; } +#line 11703 "asmparse.cpp" break; case 750: -#line 1861 "asmparse.y" - { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yystack.l_mark[-4].token),yystack.l_mark[-1].binstr,nCustomBlobNVPairs); - nCustomBlobNVPairs = 0; } -#line 11691 "asmparse.cpp" +#line 1858 "asmparse.y" + { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); nSecAttrBlobs++; } +#line 11708 "asmparse.cpp" break; case 751: -#line 1864 "asmparse.y" - { yyval.binstr = PASM->EncodeSecAttr(yystack.l_mark[-4].string,yystack.l_mark[-1].binstr,nCustomBlobNVPairs); +#line 1862 "asmparse.y" + { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yystack.l_mark[-4].token),yystack.l_mark[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11697 "asmparse.cpp" +#line 11714 "asmparse.cpp" break; case 752: -#line 1868 "asmparse.y" - { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } -#line 11702 "asmparse.cpp" +#line 1865 "asmparse.y" + { yyval.binstr = PASM->EncodeSecAttr(yystack.l_mark[-4].string,yystack.l_mark[-1].binstr,nCustomBlobNVPairs); + nCustomBlobNVPairs = 0; } +#line 11720 "asmparse.cpp" break; case 753: -#line 1870 "asmparse.y" +#line 1869 "asmparse.y" { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } -#line 11707 "asmparse.cpp" +#line 11725 "asmparse.cpp" break; case 754: -#line 1873 "asmparse.y" - { yyval.pair = yystack.l_mark[0].pair; } -#line 11712 "asmparse.cpp" +#line 1871 "asmparse.y" + { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } +#line 11730 "asmparse.cpp" break; case 755: #line 1874 "asmparse.y" - { yyval.pair = yystack.l_mark[-2].pair->Concat(yystack.l_mark[0].pair); } -#line 11717 "asmparse.cpp" + { yyval.pair = yystack.l_mark[0].pair; } +#line 11735 "asmparse.cpp" break; case 756: -#line 1877 "asmparse.y" - { yystack.l_mark[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yystack.l_mark[-2].binstr, yystack.l_mark[0].binstr); } -#line 11722 "asmparse.cpp" +#line 1875 "asmparse.y" + { yyval.pair = yystack.l_mark[-2].pair->Concat(yystack.l_mark[0].pair); } +#line 11740 "asmparse.cpp" break; case 757: -#line 1880 "asmparse.y" - { yyval.int32 = 1; } -#line 11727 "asmparse.cpp" +#line 1878 "asmparse.y" + { yystack.l_mark[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yystack.l_mark[-2].binstr, yystack.l_mark[0].binstr); } +#line 11745 "asmparse.cpp" break; case 758: #line 1881 "asmparse.y" - { yyval.int32 = 0; } -#line 11732 "asmparse.cpp" + { yyval.int32 = 1; } +#line 11750 "asmparse.cpp" break; case 759: -#line 1884 "asmparse.y" +#line 1882 "asmparse.y" + { yyval.int32 = 0; } +#line 11755 "asmparse.cpp" +break; +case 760: +#line 1885 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[0].int32); } -#line 11739 "asmparse.cpp" +#line 11762 "asmparse.cpp" break; -case 760: -#line 1887 "asmparse.y" +case 761: +#line 1888 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 11746 "asmparse.cpp" +#line 11769 "asmparse.cpp" break; -case 761: -#line 1890 "asmparse.y" +case 762: +#line 1891 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11753 "asmparse.cpp" +#line 11776 "asmparse.cpp" break; -case 762: -#line 1893 "asmparse.y" +case 763: +#line 1894 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; yyval.binstr->appendInt8(0); } -#line 11761 "asmparse.cpp" +#line 11784 "asmparse.cpp" break; -case 763: -#line 1897 "asmparse.y" +case 764: +#line 1898 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11771 "asmparse.cpp" +#line 11794 "asmparse.cpp" break; -case 764: -#line 1903 "asmparse.y" +case 765: +#line 1904 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11781 "asmparse.cpp" +#line 11804 "asmparse.cpp" break; -case 765: -#line 1909 "asmparse.y" +case 766: +#line 1910 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11791 "asmparse.cpp" +#line 11814 "asmparse.cpp" break; -case 766: -#line 1915 "asmparse.y" +case 767: +#line 1916 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11801 "asmparse.cpp" -break; -case 767: -#line 1923 "asmparse.y" - { yyval.secAct = dclRequest; } -#line 11806 "asmparse.cpp" +#line 11824 "asmparse.cpp" break; case 768: #line 1924 "asmparse.y" - { yyval.secAct = dclDemand; } -#line 11811 "asmparse.cpp" + { yyval.secAct = dclRequest; } +#line 11829 "asmparse.cpp" break; case 769: #line 1925 "asmparse.y" - { yyval.secAct = dclAssert; } -#line 11816 "asmparse.cpp" + { yyval.secAct = dclDemand; } +#line 11834 "asmparse.cpp" break; case 770: #line 1926 "asmparse.y" - { yyval.secAct = dclDeny; } -#line 11821 "asmparse.cpp" + { yyval.secAct = dclAssert; } +#line 11839 "asmparse.cpp" break; case 771: #line 1927 "asmparse.y" - { yyval.secAct = dclPermitOnly; } -#line 11826 "asmparse.cpp" + { yyval.secAct = dclDeny; } +#line 11844 "asmparse.cpp" break; case 772: #line 1928 "asmparse.y" - { yyval.secAct = dclLinktimeCheck; } -#line 11831 "asmparse.cpp" + { yyval.secAct = dclPermitOnly; } +#line 11849 "asmparse.cpp" break; case 773: #line 1929 "asmparse.y" - { yyval.secAct = dclInheritanceCheck; } -#line 11836 "asmparse.cpp" + { yyval.secAct = dclLinktimeCheck; } +#line 11854 "asmparse.cpp" break; case 774: #line 1930 "asmparse.y" - { yyval.secAct = dclRequestMinimum; } -#line 11841 "asmparse.cpp" + { yyval.secAct = dclInheritanceCheck; } +#line 11859 "asmparse.cpp" break; case 775: #line 1931 "asmparse.y" - { yyval.secAct = dclRequestOptional; } -#line 11846 "asmparse.cpp" + { yyval.secAct = dclRequestMinimum; } +#line 11864 "asmparse.cpp" break; case 776: #line 1932 "asmparse.y" - { yyval.secAct = dclRequestRefuse; } -#line 11851 "asmparse.cpp" + { yyval.secAct = dclRequestOptional; } +#line 11869 "asmparse.cpp" break; case 777: #line 1933 "asmparse.y" - { yyval.secAct = dclPrejitGrant; } -#line 11856 "asmparse.cpp" + { yyval.secAct = dclRequestRefuse; } +#line 11874 "asmparse.cpp" break; case 778: #line 1934 "asmparse.y" - { yyval.secAct = dclPrejitDenied; } -#line 11861 "asmparse.cpp" + { yyval.secAct = dclPrejitGrant; } +#line 11879 "asmparse.cpp" break; case 779: #line 1935 "asmparse.y" - { yyval.secAct = dclNonCasDemand; } -#line 11866 "asmparse.cpp" + { yyval.secAct = dclPrejitDenied; } +#line 11884 "asmparse.cpp" break; case 780: #line 1936 "asmparse.y" - { yyval.secAct = dclNonCasLinkDemand; } -#line 11871 "asmparse.cpp" + { yyval.secAct = dclNonCasDemand; } +#line 11889 "asmparse.cpp" break; case 781: #line 1937 "asmparse.y" - { yyval.secAct = dclNonCasInheritance; } -#line 11876 "asmparse.cpp" + { yyval.secAct = dclNonCasLinkDemand; } +#line 11894 "asmparse.cpp" break; case 782: -#line 1941 "asmparse.y" - { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11881 "asmparse.cpp" +#line 1938 "asmparse.y" + { yyval.secAct = dclNonCasInheritance; } +#line 11899 "asmparse.cpp" break; case 783: #line 1942 "asmparse.y" - { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11886 "asmparse.cpp" + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } +#line 11904 "asmparse.cpp" break; case 784: -#line 1945 "asmparse.y" +#line 1943 "asmparse.y" + { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } +#line 11909 "asmparse.cpp" +break; +case 785: +#line 1946 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11893 "asmparse.cpp" +#line 11916 "asmparse.cpp" break; -case 785: -#line 1948 "asmparse.y" +case 786: +#line 1949 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11899 "asmparse.cpp" +#line 11922 "asmparse.cpp" break; -case 786: -#line 1950 "asmparse.y" +case 787: +#line 1951 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-3].int32; PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11906 "asmparse.cpp" +#line 11929 "asmparse.cpp" break; -case 787: -#line 1953 "asmparse.y" +case 788: +#line 1954 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-2].int32; PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11912 "asmparse.cpp" +#line 11935 "asmparse.cpp" break; -case 788: -#line 1956 "asmparse.y" +case 789: +#line 1957 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-5].int32; PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11919 "asmparse.cpp" +#line 11942 "asmparse.cpp" break; -case 789: -#line 1960 "asmparse.y" +case 790: +#line 1961 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-4].int32; PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } -#line 11925 "asmparse.cpp" +#line 11948 "asmparse.cpp" break; -case 790: -#line 1963 "asmparse.y" +case 791: +#line 1964 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-5].int32; PENV->nExtLineEnd = yystack.l_mark[-3].int32; PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11932 "asmparse.cpp" +#line 11955 "asmparse.cpp" break; -case 791: -#line 1967 "asmparse.y" +case 792: +#line 1968 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-4].int32; PENV->nExtLineEnd = yystack.l_mark[-2].int32; PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11938 "asmparse.cpp" +#line 11961 "asmparse.cpp" break; -case 792: -#line 1970 "asmparse.y" +case 793: +#line 1971 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-7].int32; PENV->nExtLineEnd = yystack.l_mark[-5].int32; PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11945 "asmparse.cpp" +#line 11968 "asmparse.cpp" break; -case 793: -#line 1974 "asmparse.y" +case 794: +#line 1975 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-6].int32; PENV->nExtLineEnd = yystack.l_mark[-4].int32; PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } -#line 11951 "asmparse.cpp" +#line 11974 "asmparse.cpp" break; -case 794: -#line 1976 "asmparse.y" +case 795: +#line 1977 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].binstr);} -#line 11958 "asmparse.cpp" -break; -case 795: -#line 1983 "asmparse.y" - { PASMM->AddFile(yystack.l_mark[-5].string, yystack.l_mark[-6].fileAttr|yystack.l_mark[-4].fileAttr|yystack.l_mark[0].fileAttr, yystack.l_mark[-2].binstr); } -#line 11963 "asmparse.cpp" +#line 11981 "asmparse.cpp" break; case 796: #line 1984 "asmparse.y" - { PASMM->AddFile(yystack.l_mark[-1].string, yystack.l_mark[-2].fileAttr|yystack.l_mark[0].fileAttr, NULL); } -#line 11968 "asmparse.cpp" + { PASMM->AddFile(yystack.l_mark[-5].string, yystack.l_mark[-6].fileAttr|yystack.l_mark[-4].fileAttr|yystack.l_mark[0].fileAttr, yystack.l_mark[-2].binstr); } +#line 11986 "asmparse.cpp" break; case 797: -#line 1987 "asmparse.y" - { yyval.fileAttr = (CorFileFlags) 0; } -#line 11973 "asmparse.cpp" +#line 1985 "asmparse.y" + { PASMM->AddFile(yystack.l_mark[-1].string, yystack.l_mark[-2].fileAttr|yystack.l_mark[0].fileAttr, NULL); } +#line 11991 "asmparse.cpp" break; case 798: #line 1988 "asmparse.y" - { yyval.fileAttr = (CorFileFlags) (yystack.l_mark[-1].fileAttr | ffContainsNoMetaData); } -#line 11978 "asmparse.cpp" + { yyval.fileAttr = (CorFileFlags) 0; } +#line 11996 "asmparse.cpp" break; case 799: -#line 1991 "asmparse.y" - { yyval.fileAttr = (CorFileFlags) 0; } -#line 11983 "asmparse.cpp" +#line 1989 "asmparse.y" + { yyval.fileAttr = (CorFileFlags) (yystack.l_mark[-1].fileAttr | ffContainsNoMetaData); } +#line 12001 "asmparse.cpp" break; case 800: #line 1992 "asmparse.y" - { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 11988 "asmparse.cpp" + { yyval.fileAttr = (CorFileFlags) 0; } +#line 12006 "asmparse.cpp" break; case 801: -#line 1995 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 11993 "asmparse.cpp" +#line 1993 "asmparse.y" + { yyval.fileAttr = (CorFileFlags) 0x80000000; } +#line 12011 "asmparse.cpp" break; case 802: -#line 1998 "asmparse.y" - { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, (DWORD)yystack.l_mark[-1].asmAttr, FALSE); } -#line 11998 "asmparse.cpp" +#line 1996 "asmparse.y" + { bParsingByteArray = TRUE; } +#line 12016 "asmparse.cpp" break; case 803: -#line 2001 "asmparse.y" - { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 12003 "asmparse.cpp" +#line 1999 "asmparse.y" + { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, (DWORD)yystack.l_mark[-1].asmAttr, FALSE); } +#line 12021 "asmparse.cpp" break; case 804: #line 2002 "asmparse.y" - { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afRetargetable); } -#line 12008 "asmparse.cpp" + { yyval.asmAttr = (CorAssemblyFlags) 0; } +#line 12026 "asmparse.cpp" break; case 805: #line 2003 "asmparse.y" - { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afContentType_WindowsRuntime); } -#line 12013 "asmparse.cpp" + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afRetargetable); } +#line 12031 "asmparse.cpp" break; case 806: #line 2004 "asmparse.y" - { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afPA_NoPlatform); } -#line 12018 "asmparse.cpp" + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afContentType_WindowsRuntime); } +#line 12036 "asmparse.cpp" break; case 807: #line 2005 "asmparse.y" - { yyval.asmAttr = yystack.l_mark[-2].asmAttr; } -#line 12023 "asmparse.cpp" + { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afPA_NoPlatform); } +#line 12041 "asmparse.cpp" break; case 808: #line 2006 "asmparse.y" - { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_MSIL); } -#line 12028 "asmparse.cpp" + { yyval.asmAttr = yystack.l_mark[-2].asmAttr; } +#line 12046 "asmparse.cpp" break; case 809: #line 2007 "asmparse.y" - { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_x86); } -#line 12033 "asmparse.cpp" + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_MSIL); } +#line 12051 "asmparse.cpp" break; case 810: #line 2008 "asmparse.y" - { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_AMD64); } -#line 12038 "asmparse.cpp" + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_x86); } +#line 12056 "asmparse.cpp" break; case 811: #line 2009 "asmparse.y" - { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM); } -#line 12043 "asmparse.cpp" + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_AMD64); } +#line 12061 "asmparse.cpp" break; case 812: #line 2010 "asmparse.y" + { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM); } +#line 12066 "asmparse.cpp" +break; +case 813: +#line 2011 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM64); } -#line 12048 "asmparse.cpp" +#line 12071 "asmparse.cpp" break; -case 815: -#line 2017 "asmparse.y" +case 816: +#line 2018 "asmparse.y" { PASMM->SetAssemblyHashAlg(yystack.l_mark[0].int32); } -#line 12053 "asmparse.cpp" -break; -case 818: -#line 2022 "asmparse.y" - { yyval.int32 = yystack.l_mark[0].int32; } -#line 12058 "asmparse.cpp" +#line 12076 "asmparse.cpp" break; case 819: #line 2023 "asmparse.y" - { yyval.int32 = 0xFFFF; } -#line 12063 "asmparse.cpp" + { yyval.int32 = yystack.l_mark[0].int32; } +#line 12081 "asmparse.cpp" break; case 820: -#line 2026 "asmparse.y" - { PASMM->SetAssemblyPublicKey(yystack.l_mark[-1].binstr); } -#line 12068 "asmparse.cpp" +#line 2024 "asmparse.y" + { yyval.int32 = 0xFFFF; } +#line 12086 "asmparse.cpp" break; case 821: -#line 2028 "asmparse.y" - { PASMM->SetAssemblyVer((USHORT)yystack.l_mark[-6].int32, (USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, (USHORT)yystack.l_mark[0].int32); } -#line 12073 "asmparse.cpp" +#line 2027 "asmparse.y" + { PASMM->SetAssemblyPublicKey(yystack.l_mark[-1].binstr); } +#line 12091 "asmparse.cpp" break; case 822: #line 2029 "asmparse.y" - { yystack.l_mark[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yystack.l_mark[0].binstr,TRUE); } -#line 12078 "asmparse.cpp" + { PASMM->SetAssemblyVer((USHORT)yystack.l_mark[-6].int32, (USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, (USHORT)yystack.l_mark[0].int32); } +#line 12096 "asmparse.cpp" break; case 823: #line 2030 "asmparse.y" - { PASMM->SetAssemblyLocale(yystack.l_mark[-1].binstr,FALSE); } -#line 12083 "asmparse.cpp" + { yystack.l_mark[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yystack.l_mark[0].binstr,TRUE); } +#line 12101 "asmparse.cpp" break; -case 826: -#line 2035 "asmparse.y" - { bParsingByteArray = TRUE; } -#line 12088 "asmparse.cpp" +case 824: +#line 2031 "asmparse.y" + { PASMM->SetAssemblyLocale(yystack.l_mark[-1].binstr,FALSE); } +#line 12106 "asmparse.cpp" break; case 827: -#line 2038 "asmparse.y" +#line 2036 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12093 "asmparse.cpp" +#line 12111 "asmparse.cpp" break; case 828: -#line 2041 "asmparse.y" +#line 2039 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12098 "asmparse.cpp" +#line 12116 "asmparse.cpp" break; case 829: -#line 2045 "asmparse.y" - { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, yystack.l_mark[-1].asmAttr, TRUE); } -#line 12103 "asmparse.cpp" +#line 2042 "asmparse.y" + { bParsingByteArray = TRUE; } +#line 12121 "asmparse.cpp" break; case 830: -#line 2047 "asmparse.y" +#line 2046 "asmparse.y" + { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, yystack.l_mark[-1].asmAttr, TRUE); } +#line 12126 "asmparse.cpp" +break; +case 831: +#line 2048 "asmparse.y" { PASMM->StartAssembly(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].asmAttr, TRUE); } -#line 12108 "asmparse.cpp" +#line 12131 "asmparse.cpp" break; -case 833: -#line 2054 "asmparse.y" +case 834: +#line 2055 "asmparse.y" { PASMM->SetAssemblyHashBlob(yystack.l_mark[-1].binstr); } -#line 12113 "asmparse.cpp" -break; -case 835: -#line 2056 "asmparse.y" - { PASMM->SetAssemblyPublicKeyToken(yystack.l_mark[-1].binstr); } -#line 12118 "asmparse.cpp" +#line 12136 "asmparse.cpp" break; case 836: #line 2057 "asmparse.y" - { PASMM->SetAssemblyAutodetect(); } -#line 12123 "asmparse.cpp" + { PASMM->SetAssemblyPublicKeyToken(yystack.l_mark[-1].binstr); } +#line 12141 "asmparse.cpp" break; case 837: -#line 2060 "asmparse.y" - { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr);} -#line 12128 "asmparse.cpp" +#line 2058 "asmparse.y" + { PASMM->SetAssemblyAutodetect(); } +#line 12146 "asmparse.cpp" break; case 838: -#line 2063 "asmparse.y" - { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr); } -#line 12133 "asmparse.cpp" +#line 2061 "asmparse.y" + { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr);} +#line 12151 "asmparse.cpp" break; case 839: -#line 2066 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) 0; } -#line 12138 "asmparse.cpp" +#line 2064 "asmparse.y" + { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr); } +#line 12156 "asmparse.cpp" break; case 840: #line 2067 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdNotPublic); } -#line 12143 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) 0; } +#line 12161 "asmparse.cpp" break; case 841: #line 2068 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdPublic); } -#line 12148 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdNotPublic); } +#line 12166 "asmparse.cpp" break; case 842: #line 2069 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdForwarder); } -#line 12153 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdPublic); } +#line 12171 "asmparse.cpp" break; case 843: #line 2070 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPublic); } -#line 12158 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdForwarder); } +#line 12176 "asmparse.cpp" break; case 844: #line 2071 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPrivate); } -#line 12163 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPublic); } +#line 12181 "asmparse.cpp" break; case 845: #line 2072 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamily); } -#line 12168 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPrivate); } +#line 12186 "asmparse.cpp" break; case 846: #line 2073 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedAssembly); } -#line 12173 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamily); } +#line 12191 "asmparse.cpp" break; case 847: #line 2074 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamANDAssem); } -#line 12178 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedAssembly); } +#line 12196 "asmparse.cpp" break; case 848: #line 2075 "asmparse.y" - { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamORAssem); } -#line 12183 "asmparse.cpp" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamANDAssem); } +#line 12201 "asmparse.cpp" break; -case 851: -#line 2082 "asmparse.y" - { PASMM->SetComTypeFile(yystack.l_mark[0].string); } -#line 12188 "asmparse.cpp" +case 849: +#line 2076 "asmparse.y" + { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamORAssem); } +#line 12206 "asmparse.cpp" break; case 852: #line 2083 "asmparse.y" - { PASMM->SetComTypeComType(yystack.l_mark[0].string); } -#line 12193 "asmparse.cpp" + { PASMM->SetComTypeFile(yystack.l_mark[0].string); } +#line 12211 "asmparse.cpp" break; case 853: #line 2084 "asmparse.y" - { PASMM->SetComTypeAsmRef(yystack.l_mark[0].string); } -#line 12198 "asmparse.cpp" + { PASMM->SetComTypeComType(yystack.l_mark[0].string); } +#line 12216 "asmparse.cpp" break; case 854: #line 2085 "asmparse.y" + { PASMM->SetComTypeAsmRef(yystack.l_mark[0].string); } +#line 12221 "asmparse.cpp" +break; +case 855: +#line 2086 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yystack.l_mark[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 12204 "asmparse.cpp" +#line 12227 "asmparse.cpp" break; -case 855: -#line 2087 "asmparse.y" +case 856: +#line 2088 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yystack.l_mark[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 12210 "asmparse.cpp" -break; -case 858: -#line 2093 "asmparse.y" - { PASMM->StartManifestRes(yystack.l_mark[0].string, yystack.l_mark[0].string, yystack.l_mark[-1].manresAttr); } -#line 12215 "asmparse.cpp" +#line 12233 "asmparse.cpp" break; case 859: -#line 2095 "asmparse.y" - { PASMM->StartManifestRes(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].manresAttr); } -#line 12220 "asmparse.cpp" +#line 2094 "asmparse.y" + { PASMM->StartManifestRes(yystack.l_mark[0].string, yystack.l_mark[0].string, yystack.l_mark[-1].manresAttr); } +#line 12238 "asmparse.cpp" break; case 860: -#line 2098 "asmparse.y" - { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 12225 "asmparse.cpp" +#line 2096 "asmparse.y" + { PASMM->StartManifestRes(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].manresAttr); } +#line 12243 "asmparse.cpp" break; case 861: #line 2099 "asmparse.y" - { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPublic); } -#line 12230 "asmparse.cpp" + { yyval.manresAttr = (CorManifestResourceFlags) 0; } +#line 12248 "asmparse.cpp" break; case 862: #line 2100 "asmparse.y" - { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPrivate); } -#line 12235 "asmparse.cpp" + { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPublic); } +#line 12253 "asmparse.cpp" break; -case 865: -#line 2107 "asmparse.y" - { PASMM->SetManifestResFile(yystack.l_mark[-2].string, (ULONG)yystack.l_mark[0].int32); } -#line 12240 "asmparse.cpp" +case 863: +#line 2101 "asmparse.y" + { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPrivate); } +#line 12258 "asmparse.cpp" break; case 866: #line 2108 "asmparse.y" + { PASMM->SetManifestResFile(yystack.l_mark[-2].string, (ULONG)yystack.l_mark[0].int32); } +#line 12263 "asmparse.cpp" +break; +case 867: +#line 2109 "asmparse.y" { PASMM->SetManifestResAsmRef(yystack.l_mark[0].string); } -#line 12245 "asmparse.cpp" +#line 12268 "asmparse.cpp" break; -#line 12247 "asmparse.cpp" +#line 12270 "asmparse.cpp" default: break; } From edab29d35cacf0402d21022112c50204488b02b6 Mon Sep 17 00:00:00 2001 From: Steven He Date: Fri, 4 Aug 2023 21:14:47 +0900 Subject: [PATCH 73/80] Correctly format method name --- src/coreclr/inc/cor.h | 8 +++- src/coreclr/vm/sigformat.cpp | 83 +++++++++++++++++++++++++++++++++++- src/coreclr/vm/sigformat.h | 1 + 3 files changed, 88 insertions(+), 4 deletions(-) diff --git a/src/coreclr/inc/cor.h b/src/coreclr/inc/cor.h index 636e4ec82b4c1..7771f9ca5fe88 100644 --- a/src/coreclr/inc/cor.h +++ b/src/coreclr/inc/cor.h @@ -1808,10 +1808,14 @@ FORCEINLINE ULONG CorSigUncompressData( } inline ULONG CorSigUncompressConstTypeArgData( - PCCOR_SIGNATURE & pData) // [IN,OUT] compressed const type argument data + PCCOR_SIGNATURE & pData, // [IN,OUT] compressed const type argument data + CorElementType* pType = NULL) // [OUT] const type argument type { ULONG size = 1; - switch (*pData++) + CorElementType type = (CorElementType)*pData++; + if (pType) + *pType = type; + switch (type) { case ELEMENT_TYPE_BOOLEAN : case ELEMENT_TYPE_I1 : diff --git a/src/coreclr/vm/sigformat.cpp b/src/coreclr/vm/sigformat.cpp index 52ac7f9ad3192..1211898da5569 100644 --- a/src/coreclr/vm/sigformat.cpp +++ b/src/coreclr/vm/sigformat.cpp @@ -338,13 +338,86 @@ void SigFormat::AddTypeString(Module* pModule, SigPointer sig, const SigTypeCont AddString(")"); break; } - + case ELEMENT_TYPE_CTARG: + { + CorElementType constValueType; + uint32_t cbSig; + PCCOR_SIGNATURE pSig; + IfFailThrow(sig.GetConstTypeArg(&constValueType, &cbSig, &pSig)); + uint64_t constValue = 0; + memcpy(&constValue, pSig, cbSig); + AddConstValueTypeString(constValueType, constValue); + break; + } default: AddString("**UNKNOWN TYPE**"); } } +void SigFormat::AddConstValueTypeString(CorElementType constValueType, uint64_t constValue) +{ + AddString("const "); + char buffer[42]; + switch (constValueType) + { + case ELEMENT_TYPE_BOOLEAN: + AddString("Boolean ("); + sprintf_s(buffer, sizeof(buffer), *(uint8_t*)&constValue == 1 ? "true" : "false"); + break; + case ELEMENT_TYPE_I1: + AddString("SByte ("); + sprintf_s(buffer, sizeof(buffer), "%hhd", *(int8_t*)&constValue); + break; + case ELEMENT_TYPE_U1: + AddString("Byte ("); + sprintf_s(buffer, sizeof(buffer), "%hhu", *(uint8_t*)&constValue); + break; + case ELEMENT_TYPE_I2: + AddString("Int16 ("); + sprintf_s(buffer, sizeof(buffer), "%hd", *(int16_t*)&constValue); + break; + case ELEMENT_TYPE_U2: + AddString("UInt16 ("); + sprintf_s(buffer, sizeof(buffer), "%hu", *(uint16_t*)&constValue); + break; + case ELEMENT_TYPE_CHAR: + AddString("Char ("); + sprintf_s(buffer, sizeof(buffer), "0x%04hX", *(uint16_t*)&constValue); + break; + case ELEMENT_TYPE_I4: + AddString("Int32 ("); + sprintf_s(buffer, sizeof(buffer), "%d", *(int32_t*)&constValue); + break; + case ELEMENT_TYPE_U4: + AddString("UInt32 ("); + sprintf_s(buffer, sizeof(buffer), "%u", *(uint32_t*)&constValue); + break; + case ELEMENT_TYPE_I8: + AddString("Int64 ("); + sprintf_s(buffer, sizeof(buffer), "%lld", *(int64_t*)&constValue); + break; + case ELEMENT_TYPE_U8: + AddString("UInt64 ("); + sprintf_s(buffer, sizeof(buffer), "%llu", *(uint64_t*)&constValue); + break; + case ELEMENT_TYPE_R4: + AddString("Single ("); + sprintf_s(buffer, sizeof(buffer), "%f", *(float*)&constValue); + break; + case ELEMENT_TYPE_R8: + AddString("Double ("); + sprintf_s(buffer, sizeof(buffer), "%lf", *(double*)&constValue); + break; + default: + AddString("**UNKNOWN CONST VALUE TYPE** ("); + sprintf_s(buffer, sizeof(buffer), "**UNKNOWN CONST VALUE**"); + break; + } + AddString(buffer); + AddString(")"); +} + void SigFormat::FormatSig(MetaSig &sig, LPCUTF8 szMemberName, LPCUTF8 szClassName, LPCUTF8 szNameSpace) { CONTRACTL @@ -568,7 +641,13 @@ void SigFormat::AddType(TypeHandle th) break; } - + case ELEMENT_TYPE_CTARG: + { + _ASSERTE(th.IsConstValue()); + AddConstValueTypeString(th.AsConstValue()->GetConstValueType().GetInternalCorElementType(), + th.AsConstValue()->GetConstValue()); + break; + } default: AddString("**UNKNOWN TYPE**"); } diff --git a/src/coreclr/vm/sigformat.h b/src/coreclr/vm/sigformat.h index 65a50db0a8448..762b0b1db03bb 100644 --- a/src/coreclr/vm/sigformat.h +++ b/src/coreclr/vm/sigformat.h @@ -35,6 +35,7 @@ class SigFormat size_t _pos; void AddString(LPCUTF8 s); + void AddConstValueTypeString(CorElementType constValueType, uint64_t constValue); void AddTypeString(Module* pModule, SigPointer sig, const SigTypeContext *pTypeContext); }; From 902e196b5e3d9bfebf29d7bf9f47ccedecd1607d Mon Sep 17 00:00:00 2001 From: Steven He Date: Sun, 6 Aug 2023 20:03:27 +0900 Subject: [PATCH 74/80] Reuse "literal" keyword in IL and get rid of "const" --- src/coreclr/ilasm/asmparse.y | 7 +- src/coreclr/ilasm/prebuilt/asmparse.cpp | 11259 ++++++++++++---------- src/coreclr/ildasm/dasm.cpp | 2 +- src/coreclr/inc/formattype.cpp | 1 - src/coreclr/inc/il_kywd.h | 1 - src/coreclr/jit/eeinterface.cpp | 1 - src/coreclr/vm/sigformat.cpp | 1 - src/coreclr/vm/typestring.cpp | 4 +- 8 files changed, 6327 insertions(+), 4949 deletions(-) diff --git a/src/coreclr/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y index e4a5fc0595dc5..838bd96c69cfe 100644 --- a/src/coreclr/ilasm/asmparse.y +++ b/src/coreclr/ilasm/asmparse.y @@ -142,7 +142,6 @@ /* newly added tokens go here */ %token CONSTRAINT_ -%token CONST_ /* nonTerminals */ %type dottedName id methodName atOpt slashedName @@ -504,8 +503,8 @@ conTyparAttribs : /* EMPTY */ { $$ = 0; } | conTyparAttrib conTyparAttribs { $$ = $1 | $2; } ; -typars : CONST_ conTyparAttribs type tyBound dottedName typarsRest {$$ = new TyParList($2, $3, $4, $5, $6); } - | CONST_ conTyparAttribs type dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } +typars : LITERAL_ conTyparAttribs type tyBound dottedName typarsRest {$$ = new TyParList($2, $3, $4, $5, $6); } + | LITERAL_ conTyparAttribs type dottedName typarsRest {$$ = new TyParList($2, $3, NULL, $4, $5); } | typarAttribs tyBound dottedName typarsRest {$$ = new TyParList($1, $2, $3, $4);} | typarAttribs dottedName typarsRest {$$ = new TyParList($1, NULL, $2, $3);} ; @@ -1727,7 +1726,7 @@ type : CLASS_ className { if($2 == PASM->m | OBJECT_ { $$ = new BinStr(); $$->appendInt8(ELEMENT_TYPE_OBJECT); } | VALUE_ CLASS_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $3); } | VALUETYPE_ className { $$ = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, $2); } - | CONST_ constTypeArg { $$ = $2; $$->insertInt8(ELEMENT_TYPE_CTARG); } + | constTypeArg { $$ = $1; $$->insertInt8(ELEMENT_TYPE_CTARG); } | type '[' ']' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_SZARRAY); } | type '[' bounds1 ']' { $$ = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, $1, $3); } | type '&' { $$ = $1; $$->insertInt8(ELEMENT_TYPE_BYREF); } diff --git a/src/coreclr/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp index d22055dafc998..0340ae1d90209 100644 --- a/src/coreclr/ilasm/prebuilt/asmparse.cpp +++ b/src/coreclr/ilasm/prebuilt/asmparse.cpp @@ -392,7 +392,6 @@ extern int YYPARSE_DECL(); #define P_ENDIF 540 #define P_INCLUDE 541 #define CONSTRAINT_ 542 -#define CONST_ 543 #define YYERRCODE 256 typedef int YYINT; static const YYINT yylhs[] = { -1, @@ -554,7 +553,7 @@ static const YYINT yylen[] = { 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 3, 2, 2, 3, 4, 2, 2, + 1, 2, 1, 3, 2, 1, 3, 4, 2, 2, 2, 5, 5, 7, 4, 3, 2, 3, 2, 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, @@ -586,10 +585,10 @@ static const YYINT yydefred[] = { 1, 782, 0, 0, 0, 220, 221, 0, 0, 227, 228, 0, 0, 0, 0, 0, 224, 0, 71, 219, 0, 0, 0, 0, 804, 0, 0, 0, 0, 41, 19, - 20, 43, 42, 22, 23, 576, 734, 0, 711, 719, - 717, 0, 720, 721, 722, 723, 724, 725, 730, 731, - 732, 733, 693, 718, 0, 710, 0, 0, 0, 514, - 0, 577, 578, 579, 0, 0, 0, 0, 0, 0, + 20, 43, 42, 22, 23, 576, 734, 0, 711, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 693, 718, 0, 710, 0, 0, 0, 514, + 0, 577, 578, 579, 0, 0, 0, 0, 0, 696, 715, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 59, 440, 0, 0, 0, 0, 139, 1, 0, 814, 832, 850, 864, 0, 0, 0, 0, 0, @@ -599,57 +598,57 @@ static const YYINT yydefred[] = { 1, 0, 0, 229, 230, 231, 232, 222, 223, 72, 0, 73, 0, 0, 103, 0, 21, 799, 0, 0, 805, 806, 807, 809, 0, 810, 811, 812, 813, 0, 862, - 863, 0, 0, 0, 726, 727, 728, 729, 692, 0, - 695, 0, 712, 714, 238, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 696, 0, 0, 0, 0, 0, 0, 707, 0, 701, - 0, 0, 0, 0, 0, 700, 699, 0, 0, 0, - 0, 0, 235, 0, 0, 0, 64, 441, 68, 745, - 0, 0, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 0, 376, 0, 339, 347, - 348, 0, 0, 0, 0, 369, 5, 0, 529, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 349, 353, 352, 355, 354, 356, 0, 341, - 343, 350, 362, 340, 0, 0, 0, 0, 0, 0, - 102, 0, 111, 132, 109, 110, 113, 114, 0, 115, - 116, 117, 118, 119, 120, 121, 122, 112, 131, 124, - 123, 133, 0, 136, 0, 107, 0, 282, 277, 278, - 279, 280, 281, 285, 283, 293, 284, 286, 287, 288, - 289, 290, 291, 292, 0, 294, 318, 0, 0, 0, - 417, 0, 416, 0, 415, 0, 414, 0, 412, 0, - 413, 437, 0, 0, 0, 0, 795, 785, 0, 0, - 843, 842, 841, 0, 0, 0, 214, 0, 200, 194, - 195, 196, 197, 202, 203, 204, 205, 199, 206, 207, - 198, 0, 0, 392, 0, 0, 0, 0, 0, 754, - 0, 753, 0, 0, 0, 0, 0, 315, 316, 0, - 0, 0, 0, 75, 69, 0, 96, 801, 0, 0, - 808, 0, 694, 713, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, - 0, 0, 738, 697, 0, 735, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 27, 0, 105, 243, - 257, 0, 0, 840, 0, 0, 3, 0, 340, 175, - 176, 178, 177, 179, 185, 186, 140, 0, 0, 0, - 4, 342, 344, 0, 0, 0, 0, 0, 0, 0, - 351, 531, 530, 532, 533, 44, 0, 0, 528, 534, - 535, 538, 537, 539, 543, 544, 0, 542, 545, 0, - 0, 0, 0, 550, 0, 0, 0, 0, 0, 386, - 0, 384, 387, 370, 0, 0, 0, 0, 0, 0, - 0, 0, 373, 0, 0, 0, 0, 12, 817, 825, - 826, 815, 818, 0, 0, 837, 0, 0, 13, 0, - 835, 0, 833, 0, 0, 0, 0, 14, 857, 858, - 851, 0, 0, 15, 868, 869, 865, 0, 125, 126, - 127, 128, 129, 130, 0, 106, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, - 0, 0, 405, 0, 0, 844, 845, 846, 847, 848, - 849, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 32, 0, 225, 234, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 758, 759, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 698, - 705, 0, 0, 0, 0, 0, 180, 181, 0, 0, - 0, 0, 0, 139, 0, 246, 260, 850, 0, 0, + 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 692, 0, 695, 0, 712, 714, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 707, 0, 701, 0, 0, + 0, 0, 0, 700, 699, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 64, 441, 68, 745, 0, 0, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 0, 376, 0, 339, 347, 348, 0, + 0, 0, 0, 369, 5, 0, 529, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 349, 353, 352, 355, 354, 356, 0, 341, 343, 350, + 362, 340, 0, 0, 0, 0, 0, 0, 102, 0, + 111, 132, 109, 110, 113, 114, 0, 115, 116, 117, + 118, 119, 120, 121, 122, 112, 131, 124, 123, 133, + 0, 136, 0, 107, 0, 282, 277, 278, 279, 280, + 281, 285, 283, 293, 284, 286, 287, 288, 289, 290, + 291, 292, 0, 294, 318, 0, 0, 0, 417, 0, + 416, 0, 415, 0, 414, 0, 412, 0, 413, 437, + 0, 0, 0, 0, 795, 785, 0, 0, 843, 842, + 841, 0, 0, 0, 214, 0, 200, 194, 195, 196, + 197, 202, 203, 204, 205, 199, 206, 207, 198, 0, + 0, 392, 0, 0, 0, 0, 0, 754, 0, 753, + 0, 0, 0, 0, 0, 315, 316, 0, 0, 0, + 0, 75, 69, 0, 96, 801, 0, 0, 808, 0, + 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 694, 713, 0, 0, 0, 0, 0, + 0, 0, 706, 0, 0, 0, 0, 738, 697, 0, + 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 27, 0, 105, 243, 257, 0, 0, 840, 0, + 0, 3, 0, 340, 175, 176, 178, 177, 179, 185, + 186, 140, 0, 0, 0, 4, 342, 344, 0, 0, + 0, 0, 0, 0, 0, 351, 531, 530, 532, 533, + 528, 534, 535, 538, 537, 539, 543, 544, 0, 542, + 545, 0, 0, 0, 0, 550, 0, 0, 0, 0, + 0, 386, 0, 384, 387, 370, 0, 0, 0, 0, + 0, 0, 0, 0, 373, 0, 0, 0, 0, 12, + 817, 825, 826, 815, 818, 0, 0, 837, 0, 0, + 13, 0, 835, 0, 833, 0, 0, 0, 0, 14, + 857, 858, 851, 0, 0, 15, 868, 869, 865, 0, + 125, 126, 127, 128, 129, 130, 0, 106, 142, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 397, 0, 0, 405, 0, 0, 844, 845, 846, + 847, 848, 849, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 32, 0, 225, + 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 488, 487, 0, 0, 0, 0, 478, 477, + 476, 475, 0, 0, 473, 471, 472, 474, 486, 485, + 484, 483, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 698, 705, 0, 0, 0, 0, 0, 180, 181, + 0, 0, 0, 0, 0, 139, 0, 246, 260, 850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 567, 0, 0, 0, 565, 368, 385, 371, 0, 388, 377, @@ -668,613 +667,613 @@ static const YYINT yydefred[] = { 1, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 445, 0, 77, 0, 97, 98, 0, 99, - 100, 101, 0, 0, 0, 488, 487, 0, 0, 0, - 0, 478, 477, 476, 475, 473, 471, 472, 474, 486, - 485, 484, 483, 0, 702, 703, 740, 736, 0, 0, - 0, 245, 244, 0, 0, 259, 258, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, - 359, 0, 0, 0, 0, 0, 0, 360, 0, 0, - 0, 0, 548, 0, 0, 551, 0, 0, 0, 345, - 0, 0, 0, 374, 375, 816, 827, 0, 829, 821, - 824, 802, 828, 834, 836, 0, 0, 0, 0, 0, - 134, 0, 0, 0, 0, 157, 0, 0, 0, 148, - 141, 295, 0, 0, 0, 306, 307, 308, 309, 301, - 302, 303, 300, 304, 305, 0, 0, 298, 0, 0, - 0, 0, 0, 0, 403, 411, 410, 409, 408, 406, - 407, 0, 0, 208, 630, 603, 604, 605, 606, 0, - 626, 632, 634, 638, 0, 0, 0, 636, 623, 624, - 678, 647, 648, 0, 675, 649, 650, 651, 652, 653, - 654, 677, 659, 660, 661, 662, 645, 646, 667, 668, - 669, 670, 671, 672, 673, 674, 644, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 663, 0, 0, 611, 201, 0, 210, 0, 192, 0, - 761, 760, 0, 757, 0, 756, 743, 0, 750, 78, - 75, 70, 0, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 81, 82, 0, 80, 0, 95, 0, - 482, 481, 480, 479, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 172, 0, 0, 0, 0, 173, - 252, 253, 254, 255, 247, 0, 0, 0, 174, 266, - 265, 267, 268, 261, 182, 0, 363, 0, 366, 367, - 0, 45, 46, 0, 547, 0, 553, 554, 346, 0, - 566, 0, 0, 0, 855, 866, 0, 0, 160, 0, - 0, 0, 145, 0, 164, 0, 0, 297, 0, 0, - 0, 319, 320, 321, 322, 0, 0, 791, 0, 789, - 0, 0, 0, 0, 676, 655, 656, 657, 658, 665, - 0, 0, 666, 0, 612, 0, 273, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 444, 0, 212, 442, 0, 0, 78, 0, 0, 0, - 218, 217, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 0, 87, - 86, 0, 436, 796, 704, 0, 187, 0, 190, 0, - 0, 248, 249, 250, 251, 264, 262, 263, 358, 0, - 0, 549, 569, 389, 390, 0, 155, 0, 0, 0, - 167, 0, 166, 163, 0, 0, 310, 311, 312, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 664, 0, - 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 751, 67, 170, 0, 0, 435, 0, 434, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, - 0, 424, 0, 423, 0, 422, 0, 420, 418, 0, - 419, 421, 0, 433, 0, 432, 0, 431, 0, 430, - 0, 451, 0, 447, 446, 0, 450, 0, 449, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 365, 0, - 0, 158, 162, 0, 146, 296, 314, 271, 0, 793, - 0, 0, 589, 0, 615, 0, 762, 0, 0, 0, - 767, 752, 216, 215, 503, 499, 429, 0, 428, 0, - 427, 0, 426, 0, 501, 499, 497, 495, 489, 492, - 501, 499, 497, 495, 512, 505, 448, 508, 89, 91, - 0, 0, 189, 0, 0, 0, 0, 169, 0, 161, - 0, 642, 0, 588, 0, 614, 0, 0, 0, 0, - 0, 501, 499, 497, 495, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, - 0, 0, 0, 822, 323, 0, 764, 765, 766, 467, - 504, 466, 500, 0, 0, 0, 0, 457, 502, 456, - 455, 498, 454, 496, 452, 491, 490, 453, 493, 494, - 461, 460, 459, 458, 470, 513, 507, 506, 468, 509, - 0, 469, 511, 256, 0, 0, 0, 0, 0, 465, - 464, 463, 462, 510, 0, 0, 361, 0, 328, 324, - 333, 334, 335, 336, 337, 325, 326, 327, 329, 330, - 331, 332, 275, 0, 0, 0, 0, 587, 0, 0, - 0, 0, 183, 338, 0, 0, 0, 0, 0, 0, - 0, 0, 184, + 100, 101, 0, 0, 482, 481, 480, 479, 0, 0, + 0, 0, 702, 703, 740, 736, 0, 0, 0, 245, + 244, 0, 0, 259, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 359, 0, + 0, 0, 0, 0, 0, 360, 0, 0, 548, 0, + 0, 551, 0, 0, 0, 345, 0, 0, 0, 374, + 375, 816, 827, 0, 829, 821, 824, 802, 828, 834, + 836, 0, 0, 0, 0, 0, 134, 0, 0, 0, + 0, 157, 0, 0, 0, 148, 141, 295, 0, 0, + 0, 306, 307, 308, 309, 301, 302, 303, 300, 304, + 305, 0, 0, 298, 0, 0, 0, 0, 0, 0, + 403, 411, 410, 409, 408, 406, 407, 0, 0, 208, + 630, 603, 604, 605, 606, 0, 626, 632, 634, 638, + 0, 0, 0, 636, 623, 624, 678, 647, 648, 0, + 675, 649, 650, 651, 652, 653, 654, 677, 659, 660, + 661, 662, 645, 646, 667, 668, 669, 670, 671, 672, + 673, 674, 644, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 663, 0, 0, 611, + 201, 0, 210, 0, 192, 0, 761, 760, 0, 757, + 0, 756, 743, 0, 750, 78, 75, 70, 0, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, + 82, 0, 80, 0, 95, 0, 45, 46, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 172, 0, + 0, 0, 0, 173, 252, 253, 254, 255, 247, 0, + 0, 0, 174, 266, 265, 267, 268, 261, 182, 0, + 363, 0, 366, 367, 0, 0, 547, 0, 553, 554, + 346, 0, 566, 0, 0, 0, 855, 866, 0, 0, + 160, 0, 0, 0, 145, 0, 164, 0, 0, 297, + 0, 0, 0, 319, 320, 321, 322, 0, 0, 791, + 0, 789, 0, 0, 0, 0, 676, 655, 656, 657, + 658, 665, 0, 0, 666, 0, 612, 0, 273, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 0, 212, 442, 0, 0, 78, 0, + 0, 0, 218, 217, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 719, + 717, 0, 720, 721, 722, 723, 724, 725, 730, 731, + 732, 733, 88, 0, 87, 86, 0, 436, 796, 704, + 0, 187, 0, 190, 0, 0, 248, 249, 250, 251, + 264, 262, 263, 358, 0, 0, 549, 569, 389, 390, + 0, 155, 0, 0, 0, 167, 0, 166, 163, 0, + 0, 310, 311, 312, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 664, 0, 0, 613, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 751, 67, 170, + 0, 0, 435, 0, 434, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 425, 0, 424, 0, 423, 0, + 422, 0, 420, 418, 0, 419, 421, 0, 433, 0, + 432, 0, 431, 0, 430, 0, 451, 0, 447, 446, + 0, 450, 0, 449, 0, 726, 727, 728, 729, 0, + 90, 0, 0, 0, 0, 0, 0, 365, 0, 0, + 158, 162, 0, 146, 296, 314, 271, 0, 793, 0, + 0, 589, 0, 615, 0, 762, 0, 0, 0, 767, + 752, 216, 215, 503, 499, 429, 0, 428, 0, 427, + 0, 426, 0, 501, 499, 497, 495, 489, 492, 501, + 499, 497, 495, 512, 505, 448, 508, 89, 91, 0, + 0, 189, 0, 0, 0, 0, 169, 0, 161, 0, + 642, 0, 588, 0, 614, 0, 0, 0, 0, 0, + 501, 499, 497, 495, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 0, 0, 822, 323, 0, 764, 765, 766, 467, 504, + 466, 500, 0, 0, 0, 0, 457, 502, 456, 455, + 498, 454, 496, 452, 491, 490, 453, 493, 494, 461, + 460, 459, 458, 470, 513, 507, 506, 468, 509, 0, + 469, 511, 256, 0, 0, 0, 0, 0, 465, 464, + 463, 462, 510, 0, 0, 361, 0, 328, 324, 333, + 334, 335, 336, 337, 325, 326, 327, 329, 330, 331, + 332, 275, 0, 0, 0, 0, 587, 0, 0, 0, + 0, 183, 338, 0, 0, 0, 0, 0, 0, 0, + 0, 184, }; #if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING) static const YYINT yystos[] = { 0, - 545, 273, 409, 410, 411, 412, 413, 431, 432, 448, + 544, 273, 409, 410, 411, 412, 413, 431, 432, 448, 449, 450, 451, 455, 456, 461, 464, 471, 472, 526, 527, 529, 530, 531, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 59, 555, 556, 635, 641, 642, 657, - 658, 660, 661, 663, 664, 665, 666, 667, 668, 669, - 671, 673, 675, 677, 678, 679, 680, 681, 682, 684, - 685, 686, 699, 717, 723, 470, 260, 261, 263, 546, - 547, 91, 561, 319, 380, 719, 433, 434, 435, 436, + 539, 540, 541, 59, 554, 555, 634, 640, 641, 656, + 657, 659, 660, 662, 663, 664, 665, 666, 667, 668, + 670, 672, 674, 676, 677, 678, 679, 680, 681, 683, + 684, 685, 698, 716, 722, 470, 260, 261, 263, 545, + 546, 91, 560, 319, 380, 718, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 634, 634, 263, 269, 272, 295, 296, 300, 302, - 309, 326, 341, 40, 552, 553, 621, 623, 624, 61, - 91, 528, 636, 470, 638, 640, 470, 546, 264, 554, - 554, 264, 265, 571, 571, 268, 271, 275, 276, 277, + 447, 633, 633, 263, 269, 272, 295, 296, 300, 302, + 309, 326, 341, 40, 551, 552, 620, 622, 623, 61, + 91, 528, 635, 470, 637, 639, 470, 545, 264, 553, + 553, 264, 265, 570, 570, 268, 271, 275, 276, 277, 278, 279, 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, 297, 298, 306, 308, 323, 324, 325, 358, - 359, 414, 415, 416, 543, 91, 33, 546, 550, 575, - 600, 618, 622, 624, 641, 642, 696, 123, 546, 546, - 546, 546, 262, 267, 578, 579, 578, 578, 123, 123, - 662, 123, 123, 123, 123, 578, 625, 315, 687, 626, + 359, 414, 415, 416, 91, 33, 545, 549, 574, 588, + 599, 617, 621, 623, 640, 641, 695, 123, 545, 545, + 545, 545, 262, 267, 577, 578, 577, 577, 123, 123, + 661, 123, 123, 123, 123, 577, 624, 315, 686, 625, 278, 281, 282, 283, 284, 286, 287, 288, 123, 38, - 718, 721, 722, 554, 639, 46, 554, 627, 547, 91, - 575, 618, 619, 624, 696, 262, 288, 61, 583, 44, - 40, 40, 301, 303, 304, 305, 552, 552, 619, 620, - 622, 575, 61, 40, 554, 554, 462, 546, 638, 355, - 356, 357, 380, 474, 476, 477, 478, 479, 546, 330, - 331, 546, 546, 575, 281, 282, 283, 284, 618, 306, - 618, 279, 280, 289, 270, 272, 575, 277, 278, 279, - 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, - 589, 472, 42, 546, 624, 33, 546, 554, 47, 360, - 361, 362, 391, 91, 60, 42, 38, 391, 391, 391, - 391, 552, 623, 618, 683, 583, 41, 267, 41, 41, - 659, 545, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 417, 418, 419, 420, 421, - 422, 459, 473, 508, 509, 123, 125, 547, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 664, 667, 678, 679, 680, 682, 701, 702, - 703, 704, 705, 706, 707, 710, 670, 672, 674, 676, - 41, 294, 323, 327, 330, 331, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 353, 356, - 363, 372, 546, 619, 316, 688, 294, 327, 329, 330, - 331, 332, 333, 338, 347, 352, 354, 366, 367, 368, - 369, 370, 371, 372, 373, 379, 552, 42, 40, 91, - 559, 40, 559, 40, 559, 40, 559, 40, 559, 40, - 559, 40, 720, 721, 40, 578, 262, 263, 44, 58, - 328, 330, 331, 337, 546, 546, 93, 294, 327, 329, - 330, 331, 332, 366, 367, 368, 369, 372, 376, 377, - 378, 480, 575, 61, 472, 546, 40, 61, 552, 40, - 123, 40, 43, 263, 554, 554, 41, 374, 375, 91, - 546, 548, 619, 123, 40, 583, 93, 421, 637, 546, - 475, 391, 618, 280, 546, 619, 40, 40, 281, 282, - 283, 284, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 546, 93, 93, 93, 546, 554, 546, 40, - 40, 546, 275, 93, 554, 576, 577, 575, 602, 603, - 546, 546, 546, 546, 575, 683, 125, 322, 409, 423, - 428, 453, 454, 473, 508, 509, 125, 658, 661, 663, - 664, 667, 678, 679, 680, 682, 690, 691, 693, 695, - 125, 554, 554, 554, 91, 365, 542, 91, 358, 619, - 58, 547, 554, 554, 571, 266, 286, 287, 40, 570, - 571, 547, 554, 623, 270, 272, 575, 624, 619, 342, - 583, 722, 552, 620, 40, 578, 452, 40, 662, 310, - 312, 313, 314, 708, 709, 711, 713, 714, 715, 716, - 547, 554, 705, 463, 465, 468, 469, 125, 678, 679, - 682, 725, 726, 727, 728, 339, 463, 466, 125, 724, - 726, 729, 730, 296, 409, 461, 464, 125, 679, 682, - 731, 461, 464, 125, 679, 682, 732, 40, 330, 331, - 332, 366, 367, 368, 60, 617, 619, 689, 40, 40, - 558, 40, 554, 554, 554, 554, 571, 570, 570, 125, - 44, 547, 41, 554, 554, 330, 331, 332, 366, 367, - 368, 40, 40, 546, 546, 93, 583, 632, 633, 123, - 575, 306, 611, 612, 619, 262, 44, 41, 41, 621, - 60, 569, 601, 274, 607, 609, 557, 724, 391, 546, - 274, 320, 321, 562, 554, 40, 40, 40, 40, 554, - 554, 554, 571, 554, 570, 570, 571, 554, 554, 554, - 571, 93, 550, 550, 550, 619, 619, 275, 44, 93, - 62, 44, 42, 365, 629, 630, 554, 554, 639, 365, - 542, 358, 619, 123, 662, 123, 123, 123, 58, 554, - 91, 546, 91, 546, 554, 552, 274, 40, 40, 546, - 619, 40, 578, 575, 547, 551, 554, 41, 40, 275, - 558, 572, 573, 574, 125, 619, 708, 311, 705, 712, - 712, 712, 712, 547, 554, 705, 317, 317, 467, 61, - 42, 554, 614, 61, 583, 578, 578, 61, 61, 578, - 578, 40, 470, 554, 546, 470, 546, 470, 554, 294, - 306, 307, 324, 374, 543, 43, 45, 563, 564, 616, - 44, 554, 583, 631, 91, 575, 583, 41, 93, 41, - 41, 41, 41, 41, 720, 41, 58, 263, 44, 554, + 717, 720, 721, 553, 638, 46, 553, 626, 546, 91, + 574, 617, 618, 623, 695, 262, 288, 61, 582, 44, + 40, 40, 301, 303, 304, 305, 551, 551, 618, 619, + 621, 574, 61, 40, 553, 553, 462, 545, 637, 355, + 356, 357, 380, 474, 476, 477, 478, 479, 545, 330, + 331, 545, 545, 574, 40, 40, 281, 282, 283, 284, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 617, 306, 617, 279, 280, 289, 270, 272, 574, 472, + 42, 545, 623, 33, 545, 553, 47, 360, 361, 362, + 391, 91, 60, 42, 38, 391, 391, 391, 391, 551, + 622, 617, 682, 582, 41, 267, 41, 41, 658, 544, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 417, 418, 419, 420, 421, 422, 459, + 473, 508, 509, 123, 125, 546, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 663, 666, 677, 678, 679, 681, 700, 701, 702, 703, + 704, 705, 706, 709, 669, 671, 673, 675, 41, 294, + 323, 327, 330, 331, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 353, 356, 363, 372, + 545, 618, 316, 687, 294, 327, 329, 330, 331, 332, + 333, 338, 347, 352, 354, 366, 367, 368, 369, 370, + 371, 372, 373, 379, 551, 42, 40, 91, 558, 40, + 558, 40, 558, 40, 558, 40, 558, 40, 558, 40, + 719, 720, 40, 577, 262, 263, 44, 58, 328, 330, + 331, 337, 545, 545, 93, 294, 327, 329, 330, 331, + 332, 366, 367, 368, 369, 372, 376, 377, 378, 480, + 574, 61, 472, 545, 40, 61, 551, 40, 123, 40, + 43, 263, 553, 553, 41, 374, 375, 91, 545, 547, + 618, 123, 40, 582, 93, 421, 636, 545, 475, 391, + 320, 321, 561, 553, 40, 40, 40, 40, 553, 553, + 553, 570, 266, 286, 287, 553, 569, 569, 570, 553, + 553, 553, 570, 617, 280, 545, 618, 545, 93, 93, + 93, 545, 553, 545, 40, 40, 545, 275, 93, 553, + 575, 576, 574, 601, 602, 545, 545, 545, 545, 574, + 682, 125, 322, 409, 423, 428, 453, 454, 473, 508, + 509, 125, 657, 660, 662, 663, 666, 677, 678, 679, + 681, 689, 690, 692, 694, 125, 553, 553, 553, 91, + 365, 542, 91, 358, 618, 58, 546, 553, 553, 570, + 40, 569, 570, 546, 553, 622, 270, 272, 574, 623, + 618, 342, 582, 721, 551, 619, 40, 577, 452, 40, + 661, 310, 312, 313, 314, 707, 708, 710, 712, 713, + 714, 715, 546, 553, 704, 463, 465, 468, 469, 125, + 677, 678, 681, 724, 725, 726, 727, 339, 463, 466, + 125, 723, 725, 728, 729, 296, 409, 461, 464, 125, + 678, 681, 730, 461, 464, 125, 678, 681, 731, 40, + 330, 331, 332, 366, 367, 368, 60, 616, 618, 688, + 40, 40, 557, 40, 553, 553, 553, 553, 570, 569, + 569, 125, 44, 546, 41, 553, 553, 330, 331, 332, + 366, 367, 368, 40, 40, 545, 545, 93, 582, 631, + 632, 123, 574, 306, 610, 611, 618, 262, 44, 41, + 41, 620, 60, 568, 600, 274, 606, 608, 556, 723, + 391, 545, 41, 41, 553, 553, 553, 570, 41, 41, + 41, 41, 40, 40, 41, 41, 41, 41, 41, 41, + 41, 41, 274, 93, 549, 549, 549, 618, 618, 275, + 44, 93, 62, 44, 42, 365, 628, 629, 553, 553, + 638, 365, 542, 358, 618, 123, 661, 123, 123, 123, + 58, 553, 91, 545, 91, 545, 553, 551, 274, 545, + 618, 40, 577, 574, 546, 550, 553, 41, 40, 275, + 557, 571, 572, 573, 125, 618, 707, 311, 704, 711, + 711, 711, 711, 546, 553, 704, 317, 317, 467, 61, + 42, 553, 613, 61, 582, 577, 577, 61, 61, 577, + 577, 40, 470, 553, 545, 470, 545, 470, 553, 294, + 306, 307, 324, 374, 376, 43, 45, 562, 563, 615, + 44, 553, 582, 630, 91, 574, 582, 41, 93, 41, + 41, 41, 41, 41, 719, 41, 58, 263, 44, 553, 257, 271, 276, 277, 279, 280, 281, 282, 283, 284, 286, 287, 289, 290, 291, 292, 293, 335, 337, 342, 358, 391, 481, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 503, 123, 580, 581, 700, 318, 549, 93, 61, 41, - 44, 607, 263, 44, 125, 61, 263, 61, 91, 602, - 40, 40, 546, 548, 125, 277, 278, 279, 281, 282, + 503, 123, 579, 580, 699, 318, 548, 93, 61, 41, + 44, 606, 263, 44, 125, 61, 263, 61, 91, 601, + 40, 40, 545, 547, 125, 277, 278, 279, 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, 297, 298, - 365, 587, 588, 610, 682, 722, 283, 284, 318, 457, - 458, 460, 578, 546, 546, 41, 41, 554, 554, 554, - 571, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 550, 41, 41, 554, 576, 575, 40, - 619, 327, 372, 546, 619, 327, 372, 552, 546, 91, - 546, 91, 546, 552, 274, 659, 125, 692, 694, 674, - 554, 93, 554, 554, 44, 93, 575, 548, 554, 571, - 274, 583, 41, 40, 44, 41, 44, 572, 575, 41, - 44, 547, 554, 547, 554, 554, 40, 58, 40, 41, - 41, 40, 40, 41, 41, 554, 550, 546, 318, 546, - 41, 40, 294, 565, 566, 564, 40, 546, 606, 62, - 619, 41, 391, 631, 294, 301, 303, 304, 305, 342, - 343, 344, 388, 389, 390, 392, 395, 41, 505, 506, - 507, 554, 480, 585, 41, 559, 559, 559, 559, 559, - 559, 554, 554, 41, 280, 281, 282, 283, 284, 40, - 567, 497, 489, 501, 40, 482, 502, 277, 567, 567, - 257, 276, 277, 279, 280, 281, 282, 283, 284, 286, - 287, 289, 290, 291, 292, 293, 484, 485, 487, 488, - 489, 491, 492, 495, 496, 498, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 42, 560, 91, 42, 41, 579, 547, 61, 582, 283, - 554, 562, 583, 584, 618, 632, 125, 61, 612, 123, - 123, 40, 583, 554, 62, 572, 572, 569, 601, 40, - 91, 40, 91, 281, 282, 283, 284, 40, 91, 40, + 365, 586, 587, 609, 681, 721, 283, 284, 318, 457, + 458, 460, 577, 545, 41, 41, 41, 41, 553, 570, + 545, 549, 41, 41, 553, 575, 574, 40, 618, 327, + 372, 545, 618, 327, 372, 551, 545, 91, 545, 91, + 545, 551, 274, 658, 125, 691, 693, 673, 553, 93, + 553, 553, 44, 93, 574, 547, 274, 582, 41, 40, + 44, 41, 44, 571, 574, 41, 44, 546, 553, 546, + 553, 553, 40, 58, 40, 41, 41, 40, 40, 41, + 41, 553, 549, 545, 318, 545, 41, 40, 294, 564, + 565, 563, 40, 545, 605, 62, 618, 41, 391, 630, + 294, 301, 303, 304, 305, 342, 343, 344, 388, 389, + 390, 392, 395, 41, 505, 506, 507, 553, 480, 584, + 41, 558, 558, 558, 558, 558, 558, 553, 553, 41, + 280, 281, 282, 283, 284, 40, 566, 497, 489, 501, + 40, 482, 502, 277, 566, 566, 257, 276, 277, 279, + 280, 281, 282, 283, 284, 286, 287, 289, 290, 291, + 292, 293, 484, 485, 487, 488, 489, 491, 492, 495, + 496, 498, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 42, 559, 91, 42, + 41, 578, 546, 61, 581, 283, 553, 561, 582, 583, + 617, 631, 125, 61, 611, 123, 123, 40, 582, 553, + 62, 571, 571, 568, 600, 40, 91, 40, 91, 281, + 282, 283, 284, 40, 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, - 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, - 91, 40, 91, 359, 364, 613, 682, 578, 547, 41, - 41, 41, 41, 41, 572, 451, 641, 546, 575, 554, - 554, 44, 575, 548, 125, 424, 425, 426, 427, 125, - 667, 679, 680, 682, 697, 427, 429, 430, 125, 667, - 679, 680, 682, 698, 125, 391, 93, 93, 619, 582, - 619, 41, 41, 546, 41, 572, 551, 551, 41, 585, - 574, 317, 317, 614, 41, 554, 554, 40, 566, 575, - 604, 605, 619, 44, 615, 546, 583, 41, 40, 58, - 58, 93, 93, 93, 93, 40, 548, 263, 44, 263, - 504, 583, 91, 91, 280, 281, 282, 283, 284, 525, - 44, 91, 38, 43, 93, 554, 125, 277, 278, 279, - 281, 282, 283, 284, 286, 287, 290, 291, 292, 293, - 299, 583, 586, 588, 40, 40, 123, 610, 607, 93, - 41, 41, 40, 40, 562, 554, 554, 554, 40, 91, - 40, 91, 40, 91, 40, 91, 554, 554, 554, 554, - 554, 554, 571, 554, 554, 570, 554, 570, 571, 554, - 554, 554, 554, 554, 554, 554, 571, 554, 587, 554, - 263, 299, 554, 299, 306, 618, 554, 297, 346, 365, - 600, 608, 41, 637, 41, 546, 93, 93, 619, 619, - 510, 623, 623, 623, 623, 623, 623, 623, 547, 44, - 274, 41, 547, 547, 554, 58, 41, 554, 546, 606, - 41, 44, 616, 615, 631, 554, 393, 394, 393, 394, - 581, 617, 554, 61, 44, 554, 554, 583, 93, 554, - 43, 93, 281, 282, 283, 284, 554, 281, 282, 283, - 554, 610, 125, 125, 62, 572, 572, 41, 93, 41, - 93, 554, 554, 554, 554, 554, 554, 571, 554, 41, - 93, 41, 93, 41, 93, 41, 93, 41, 41, 93, - 41, 41, 93, 41, 93, 41, 93, 41, 93, 41, - 93, 41, 93, 41, 41, 93, 41, 263, 41, 93, - 306, 618, 91, 546, 40, 44, 274, 552, 619, 548, - 614, 41, 615, 546, 619, 41, 41, 41, 40, 263, - 554, 583, 93, 93, 93, 554, 41, 58, 58, 58, - 41, 125, 41, 41, 40, 40, 41, 93, 41, 93, - 41, 93, 41, 93, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 41, 40, 263, 93, - 61, 572, 619, 548, 575, 60, 568, 569, 58, 615, - 572, 41, 44, 41, 580, 93, 554, 554, 554, 596, - 593, 40, 40, 40, 40, 592, 593, 594, 595, 590, - 591, 592, 593, 594, 595, 599, 597, 598, 587, 41, - 568, 619, 40, 614, 41, 583, 41, 41, 41, 41, - 562, 41, 554, 592, 593, 594, 595, 41, 554, 41, - 41, 554, 41, 571, 41, 554, 570, 41, 570, 571, - 41, 41, 41, 41, 41, 587, 263, 299, 41, 299, - 306, 41, 618, 582, 40, 274, 572, 628, 44, 41, - 41, 41, 41, 263, 572, 548, 41, 294, 309, 325, - 334, 348, 349, 350, 351, 380, 381, 382, 383, 384, - 385, 386, 123, 583, 41, 40, 40, 41, 510, 572, - 554, 358, 41, 41, 552, 575, 619, 274, 548, 568, - 40, 572, 41, + 91, 40, 91, 40, 91, 40, 91, 40, 91, 359, + 364, 612, 681, 577, 546, 41, 41, 41, 571, 451, + 640, 545, 574, 553, 553, 44, 574, 547, 125, 424, + 425, 426, 427, 125, 666, 678, 679, 681, 696, 427, + 429, 430, 125, 666, 678, 679, 681, 697, 125, 391, + 93, 93, 618, 581, 618, 545, 41, 571, 550, 550, + 41, 584, 573, 317, 317, 613, 41, 553, 553, 40, + 565, 574, 603, 604, 618, 44, 614, 545, 582, 41, + 40, 58, 58, 93, 93, 93, 93, 40, 547, 263, + 44, 263, 504, 582, 91, 91, 280, 281, 282, 283, + 284, 525, 44, 91, 38, 43, 93, 553, 125, 277, + 278, 279, 281, 282, 283, 284, 286, 287, 290, 291, + 292, 293, 299, 582, 585, 587, 40, 40, 123, 609, + 606, 93, 41, 41, 40, 40, 561, 553, 553, 553, + 40, 91, 40, 91, 40, 91, 40, 91, 553, 553, + 553, 553, 553, 553, 570, 553, 553, 569, 553, 569, + 570, 553, 553, 553, 553, 553, 553, 553, 570, 553, + 586, 553, 263, 299, 553, 299, 306, 617, 553, 277, + 278, 279, 281, 282, 283, 284, 286, 287, 290, 291, + 292, 293, 297, 346, 365, 599, 607, 41, 636, 41, + 545, 93, 93, 618, 618, 510, 622, 622, 622, 622, + 622, 622, 622, 546, 44, 274, 41, 546, 546, 553, + 58, 41, 553, 545, 605, 41, 44, 615, 614, 630, + 553, 393, 394, 393, 394, 580, 616, 553, 61, 44, + 553, 553, 582, 93, 553, 43, 93, 281, 282, 283, + 284, 553, 281, 282, 283, 553, 609, 125, 125, 62, + 571, 571, 41, 93, 41, 93, 553, 553, 553, 553, + 553, 553, 570, 553, 41, 93, 41, 93, 41, 93, + 41, 93, 41, 41, 93, 41, 41, 93, 41, 93, + 41, 93, 41, 93, 41, 93, 41, 93, 41, 41, + 93, 41, 263, 41, 93, 281, 282, 283, 284, 306, + 617, 91, 545, 40, 44, 274, 551, 618, 547, 613, + 41, 614, 545, 618, 41, 41, 41, 40, 263, 553, + 582, 93, 93, 93, 553, 41, 58, 58, 58, 41, + 125, 41, 41, 40, 40, 41, 93, 41, 93, 41, + 93, 41, 93, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 41, 40, 263, 93, 61, + 571, 618, 547, 574, 60, 567, 568, 58, 614, 571, + 41, 44, 41, 579, 93, 553, 553, 553, 595, 592, + 40, 40, 40, 40, 591, 592, 593, 594, 589, 590, + 591, 592, 593, 594, 598, 596, 597, 586, 41, 567, + 618, 40, 613, 41, 582, 41, 41, 41, 41, 561, + 41, 553, 591, 592, 593, 594, 41, 553, 41, 41, + 553, 41, 570, 41, 553, 569, 41, 569, 570, 41, + 41, 41, 41, 41, 586, 263, 299, 41, 299, 306, + 41, 617, 581, 40, 274, 571, 627, 44, 41, 41, + 41, 41, 263, 571, 547, 41, 294, 309, 325, 334, + 348, 349, 350, 351, 380, 381, 382, 383, 384, 385, + 386, 123, 582, 41, 40, 40, 41, 510, 571, 553, + 358, 41, 41, 551, 574, 618, 274, 547, 567, 40, + 571, 41, }; #endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */ static const YYINT yydgoto[] = { 1, - 158, 71, 482, 897, 159, 776, 105, 106, 802, 35, - 36, 707, 781, 421, 1132, 73, 714, 828, 829, 1034, - 1035, 1081, 1547, 1548, 580, 1604, 782, 783, 784, 211, - 526, 527, 175, 176, 893, 894, 1139, 687, 1144, 1064, - 1313, 932, 933, 281, 1570, 1571, 1566, 1561, 1568, 1569, - 1560, 1577, 1578, 1576, 161, 703, 529, 530, 1261, 1262, - 1039, 705, 1372, 706, 934, 693, 694, 1196, 803, 1265, - 830, 656, 212, 229, 230, 107, 231, 108, 214, 187, - 190, 208, 1628, 745, 746, 834, 688, 689, 92, 37, - 113, 489, 115, 205, 116, 38, 39, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 40, 41, 311, 42, 43, 181, 44, 353, 46, - 47, 354, 49, 50, 367, 51, 368, 52, 369, 53, - 370, 54, 355, 356, 357, 58, 358, 305, 60, 61, - 62, 189, 396, 658, 557, 558, 988, 559, 989, 560, - 215, 1225, 1234, 63, 895, 359, 360, 361, 362, 789, - 364, 365, 604, 605, 366, 606, 790, 607, 608, 609, - 610, 64, 201, 76, 433, 434, 936, 65, 630, 622, - 623, 624, 625, 632, 633, 641, 647, + 157, 71, 480, 897, 158, 776, 105, 106, 802, 35, + 36, 709, 781, 419, 1118, 73, 493, 828, 829, 1020, + 1021, 1067, 1546, 1547, 507, 1603, 782, 783, 784, 211, + 531, 532, 175, 176, 893, 894, 1125, 689, 1130, 1050, + 1295, 932, 933, 160, 1569, 1570, 1565, 1560, 1567, 1568, + 1559, 1576, 1577, 1575, 161, 705, 534, 535, 1243, 1244, + 1025, 707, 1367, 708, 934, 695, 696, 1182, 803, 1247, + 830, 658, 212, 229, 230, 107, 231, 108, 214, 187, + 190, 208, 1627, 747, 748, 834, 690, 691, 92, 37, + 113, 487, 115, 205, 116, 38, 39, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 40, 41, 309, 42, 43, 181, 44, 351, 46, + 47, 352, 49, 50, 365, 51, 366, 52, 367, 53, + 368, 54, 353, 354, 355, 58, 356, 303, 60, 61, + 62, 189, 394, 660, 562, 563, 976, 564, 977, 565, + 215, 1209, 1218, 63, 895, 357, 358, 359, 360, 789, + 362, 363, 606, 607, 364, 608, 790, 609, 610, 611, + 612, 64, 201, 76, 431, 432, 936, 65, 632, 624, + 625, 626, 627, 634, 635, 643, 649, }; static const YYINT yysindex[] = { 0, -14122, 0, -368, 643, 0, 68, -246, 1476, 1476, 0, - 0, -145, 1184, 128, 89, -267, -205, 0, 314, 38, - 38, 263, 263, 9541, 146, 0, 643, 643, 643, 643, - 0, 0, 88, 0, 100, 100, 100, 0, 0, 0, - 255, 355, 0, 0, 0, 0, 0, 0, 0, 372, - 389, 467, 487, 0, 0, 0, 0, 0, 0, 100, - 0, 184, 0, 863, 38, 0, 0, 0, 0, 587, - 0, 38, 0, 0, 0, 422, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,11827, 19, 602, 0, 0, 622, 664, 0, 0, - 917, 682, 682,11742, 7471, 0, 647, 0, 0, 681, - 38, 38, 384, 0, 2521, 703, 643, 587, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7471, 0, 0, - 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -34, 0, 419, -34, 689, 0, - 5219, 0, 0, 0, 1457, 101, 178, 587, 690, 103, - 0, 391, 399, 0, 405, 417, 1866, -34, 39, 587, - 587, 587, 0, 0, 786, 584, 792, 814, 0, 0, -12986, 0, 0, 0, 0, 842, 5095,11827, 544, 6128, - 856, 75, 86, 102, 104, 118, 121, 883, 651, 888, - 0, 0, 100, 194, 1081, 643, 833,11310, 869, 109, - 477, 0, 135, 0, 682, 0, 900, 46, 907, 692, - 38, 38, 0, 0, 0, 0, 0, 0, 0, 920, - 0, 1686, 76, 0, 872, 0, 0, 15, 2521, 0, - 0, 0, 0, 495, 0, 0, 0, 0, 587, 0, - 0, -1, 587, 477, 0, 0, 0, 0, 0, -34, - 0, 696, 0, 0, 0, 0,11440, 932, 945, 930, - 947, 949, 962, 964, 970, 972, 974, 976, 984, 988, - 0, 643, 881, 494, 943, 977, 587, 0, 643, 0, - 998, 1000, 643, -18, 7471, 0, 0, 643, 643, 643, - 643, 7471, 0, -34, 922, 907, 0, 0, 0, 0, - 6362,13989, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 38, 0, 38, 0, 0, - 0, 38, 959, -59,11905, 0, 0, 996, 0, 819, - 38, 263, 453, 819, 1866, 4909,11827, -132, 682,11742, - 1021, 100, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 961, 363, 1063, 129, 835, 775, - 0, 1044, 0, 0, 0, 0, 0, 0, 499, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 116, 0,11827, 0, 1058, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1060, 0, 0, 1070, 38, 38, - 0, 38, 0, 38, 0, 263, 0, 575, 0, 575, - 0, 0, 968, 1073, 422, 1082, 0, 0, 38, 38, - 0, 0, 0, 586, 587, 587, 0, 1085, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1088, 1960, 0, 643, 503, 870, 1006, 7471, 0, -12016, 0, 871, 1095, 1101, 1107, 1866, 0, 0, 162, - 587, 1097, 884, 0, 0, 907, 0, 0, 697, 10, - 0, 643, 0, 0, 587, 893, 393, 38, 1141, 1145, - 1147, 1155, 38, 38, 38, 263, 693, 944, 38, 38, - 38, 263, 519, 643, 643, 643, 587, 0, 587,11827, -11827, 587, 0, 0, 931, 0, 126, 477, 1161, 1188, - 587, 587, 587, 587,11109, 0, 0, 877, 0, 0, - 0, 38, 38, 0, -226,12115, 0, 1111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1120, 1122, 1124, - 0, 0, 0, 1190, 38, 427, 546, 38, 682, 980, - 0, 0, 0, 0, 0, 0, 1213, 1215, 0, 0, - 0, 0, 0, 0, 0, 0,11440, 0, 0, 1218, - 907, 100, 7471, 0, 819, 1219, 1221, 993,13137, 0, -11827, 0, 0, 0, 961, -61, -61, -61, -61, 363, - 942, 952, 0, 803, 1217, 35, 53, 0, 0, 0, - 0, 0, 0, 100, 100, 0, 1223, 1228, 0, 100, - 0, 100, 0, 1239, -204, 643, 812, 0, 0, 0, - 0, 643, 824, 0, 0, 0, 0, 38, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 1253, 38, 870, - 5529, 870, 1257, 1226, 1279, 1280, 1287, 1293, 1297, 0, - 651, 1302, 0, 1288, 40, 0, 0, 0, 0, 0, - 0, 38,14478, -6, 585, 643, 574, 1306, 1301, 0, - 582, 185, 1309, 1225, 1295, 0, 1094, 0, 0, 1308, - 5839, 1322, 1337, -153, 1254, 566, -51, 100, 643, 587, - 643, 0, 0, 1339, 1340, 38, 38, 38, 263, 1345, - 1348, 1352, 1354, 1356, 1367, 1372, 1374, 1375, 1376, 1378, - 1379, 643, 690, 690, 690, 1387, 1389, 38, 376, 0, - 0, 7471, 1338,11827,11664, 737, 0, 0, 1081, 558, - 652, 682, 1117, 0,13220, 0, 0, 0, 38, 1341, - 38, 587, 38, 628, 1342, 7471, -153, 38, 263, 587, - 1158, 870, 1392, 867, 1393, 1402, 1400, 0, 993, 0, - 5529, 1405, 1403, 0, 0, 0, 0, 819, 0, 0, - 0, 0, 0, 0, 0, 0, 422, 38, 38, 1408, - 0, 0, 1394, 1410, 907, 1413, 1414, 1411, 1421, 1422, - 1423, 38, 643, 0, 587, 643, 28, 643, 1424, 1427, - 0, 0, 0, 0, 1168, 0, 0, 409, 269, 1406, -11827, 1435, 12, 748, -215, 34, 714, 1390, 0, 1390, - 1390, 1390, 1390, 1390, 0, 0, 38, 0, 38, 1437, - 0, 0, 0, 0, 983, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1442, 990, 999, - 0, 991, 1445, 70, 1220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1442, 1442, 0,10421, 0, - 0, 0, 106, 1455, 100, 422, 1438, 643, 2063, 0, - 870, 1373, 1439,12016, 0, 1381, 0, 93, 38, 1443, - 993, 993, 587, 1097, 0, 132, 134, 1049, 394, 410, - 415, 430, 432, 442, 465, 468, 498, 513, 515, 520, - 524, 0, 0, 334, 0, 100, 0, 0, 422, 0, - 0, 0, 1465, 587, 587, 0, 0, 1466, 1467, 1468, - 1470, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 690, 0, 0, 0, 0, 477, 993, - 1061, 0, 0, 587, 643, 0, 0, 7471, 587, 38, - 587, 38, 729, 7471, -153,14191, 0, 934, 349, 1491, - 0, 1125, 1420, 1425,11827, 1438,11440, 0, 1474, 1478, - 643, 781, 0, 993, 819, 0, 819, 1479, 34, 0, - 993, 1200, 1205, 0, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 1483, 690, 587, 38, 587, - 0, 38, 1487, 1168, 7471, 0,11827, 847, 643, 0, - 0, 0, 870, 1240, 1489, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1472, 1475, 0, 1444, 1446, - 1447, 1449, 1496, -153, 0, 0, 0, 0, 0, 0, - 0, 51, 1275, 0, 0, 0, 0, 0, 0, 1042, - 0, 0, 0, 0, 870, 1456, 1460, 0, 0, 0, - 0, 0, 0, 1023, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -3, 147, 0, 0, 3, 0, 2347, 0, 1508, - 0, 0, 907, 0, 1512, 0, 0, 1432, 0, 0, - 0, 0, 907, 1463, 0, 1517, 1521, 1528, 1529, 393, - 38, 38, 38, 545, 562, 589, 590, 38, 38, 38, - 38, 38, 38, 263, 38, 693, 38, 944, 38, 38, - 38, 38, 38, 38, 38, 263, 38, 2953, 38, 227, - 38, 989, 38, 0, 0, 3255, 0, 1532, 0, 1149, - 0, 0, 0, 0, 1534, 1866, 0, 587, 1960, 1485, - 1488,11827,11440, 1075, 0, 1866, 1866, 1866, 1866, 0, - 0, 0, 0, 0, 0, 1866, 1866, 1866, 0, 0, - 0, 0, 0, 0, 0, 422, 0, 1536, 0, 0, - 1312, 0, 0, 587, 0, 1549, 0, 0, 0, 422, - 0, 422, 38, 1533, 0, 0, 1551, 38, 0, 1350, - 1552, 1550, 0, 36, 0, 847, 907, 0, 38, 483, - 517, 0, 0, 0, 0,14478, 1535, 0, 38, 0, - 1544, 1053, 38, 38, 0, 0, 0, 0, 0, 0, - 870, 1503, 0, 38, 0, 165, 0, 1557, 1566, 1083, - 1568, 1569, 1572, 1574, 1575, 1578, 1579, 1581, 1583, 1584, - 0, 907, 0, 0, 38, 762, 0, 7, 1500, 1564, - 0, 0, 993, 993, 1586, 1538, 1592, 1541, 38, 38, - 38, 38, 38, 38, 263, 38, 1595, 1545, 1596, 1546, - 1599, 1548, 1601, 1553, 1603, 1604, 1554, 1607, 1608, 1558, - 1611, 1560, 1613, 1562, 1615, 1570, 1616, 1585, 1621, 1590, - 1624, 1626, 1594, 1627, 1429, 1652, 1605, 0, 1311, 0, - 0, 686, 0, 0, 0, 202, 0, 1655, 0, 1426, - 682, 0, 0, 0, 0, 0, 0, 0, 0,11827, - -153, 0, 0, 0, 0, 35, 0, 1660, 847, 643, - 0,11827, 0, 0, 1692, 1661, 0, 0, 0, 0, - 1662, 1665, 1452, 38, 870, 1614, 1625, 907, 0, 1636, - 38, 0, 1668, 1677, 1690, 1691, 1701, 1674, 1687, 1693, - 1711, 120, 0, 0, 0, 1712, 1713, 0, 1721, 0, - 1726, 1728, 1678, 1729, 1681, 1735, 1689, 1745, 1695, 0, - 1727, 0, 1750, 0, 1751, 0, 1752, 0, 0, 1753, - 0, 0, 1791, 0, 1792, 0, 1793, 0, 1794, 0, - 1796, 0, 1797, 0, 0, 1798, 0, 1809, 0, 1815, - 1593, 0, 1765, 630, 993,11827, -153, 7471, 0, 1800, - 1807, 0, 0, 847, 0, 0, 0, 0, 993, 0, - 1831, 760, 0,14506, 0, 1781, 0, 38, 38, 38, - 0, 0, 0, 0, 0, 0, 0, 1840, 0, 1841, - 0, 1843, 0, 1844, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2953, 1845, 0, 1800,11440, 1799, 1847, 0, 35, 0, - 1848, 0, 870, 0, 106, 0, 1850, 1851, 1852, 11, - 62, 0, 0, 0, 0, 94, 99, 119, 124, 223, - 529, 127, 140, 150, 164, 2647, 23, 466, 0, 1438, - 1858, 1628, 993, 0, 0, 1072, 0, 0, 0, 0, - 0, 0, 0, 157, 166, 176, 179, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1622, 0, 0, 0, 993, -153, 1860, 2913, 870, 0, - 0, 0, 0, 0, 1862, 1859, 0, 1864, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 854, 1395, 993, 38, 0, 1530, 1889, - 1899, 682, 0, 0, 7471,11440, 1669, -153, 1800, 1904, - 993, 1907, 0, +17429, 0, -347, 566, 0, 55, -247, 1763, 1763, 0, + 0, -136, 260, 110, 70, -338, -271, 0, -34, -39, + -39, 473, 473,14390, 93, 0, 566, 566, 566, 566, + 0, 0, -21, 0, 12, 12, 12, 0, 0, 0, + 175, 243, 0, 0, 0, 0, 0, 0, 0, 251, + 333, 352, 414, 0, 0, 0, 0, 0, 0, 12, + 0, 227, 0, 1197, -39, 0, 0, 0, 0, 550, + 0, -39, 0, 0, 0, 429, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,18521, 1, 262, 0, 0, 531, 593, 0, 0, + 701, 775, 775,16114,10230, 0, 547, 0, 0, 635, + -39, -39, -27, 0, 2202, -113, 566, 550, 0, 0, + 0, 0, 0, 0, 0, 0, 0,10230, 0, 726, + 770, 799, 778, 784, 792, 814, 820, 831, 845, 855, + 860, 878, 0, 0, 1561, 0, 643, 1561, 662, 0, +10068, 0, 0, 0, 112, 234, 550, 911, 78, 0, + 0, 569, 573, 0, 584, 586, 1696, 1561, 28, 550, + 550, 550, 0, 0, 921, 703, 949, 957, 0, 0, + 1613, 0, 0, 0, 0, 959, 9944,18521, 699,11828, + 977, 62, 96, 116, 155, 156, 410, 985, 1346, 997, + 0, 0, 12, 568, 705, 566, 962,17771, 1006, 126, + 102, 0, 393, 0, 775, 0, 1036, 59, 1042, 841, + -39, -39, 0, 0, 0, 0, 0, 0, 0, 1068, + 0,18018, 99, 0, 1021, 0, 0, 8, 2202, 0, + 0, 0, 0, 640, 0, 0, 0, 0, 550, 0, + 0, 18, 550, 102, 603, -39, 1077, 1085, 1099, 1113, + -39, -39, -39, 473, 707, 731, -39, -39, -39, 473, + 0, 1561, 0, 877, 0, 0, 0, 0,18339, 566, + 1072, 44, 1074, 1055, 550, 0, 566, 0, 1129, 1139, + 566, -16,10230, 0, 0, 566, 566, 566, 566,10230, + 0, 1561, 1070, 1042, 0, 0, 0, 0,11211,17296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -39, 0, -39, 0, 0, 0, -39, + 1102, -57,18617, 0, 0, 1138, 0, 760, -39, 473, + 359, 760, 1696, 9758,18521, -166, 775,16114, 1158, 12, + 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 823, 416, 788, 42, 9, 1009, 0, 1160, + 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 467, 0,18521, 0, 1162, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1163, 0, 0, 1168, -39, -39, 0, -39, + 0, -39, 0, 473, 0, -168, 0, -168, 0, 0, + 1086, 1166, 429, 1183, 0, 0, -39, -39, 0, 0, + 0, 1027, 550, 550, 0, 1185, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1186, + 1350, 0, 566, 441, 967, 1108,10230, 0,18695, 0, + 970, 1190, 1199, 1206, 1696, 0, 0, 66, 550, 1189, + 978, 0, 0, 1042, 0, 0, 797, 21, 0, 566, + 0, 0, 1214, 1221, -39, -39, -39, 473, 1224, 1227, + 1234, 1239, 0, 1241, 1244, 1248, 1251, 1253, 1255, 1258, + 1262, 1269, 1271, 0, 0, 550, 993, 659, 566, 566, + 566, 550, 0, 550,18521,18521, 550, 0, 0, 1046, + 0, 73, 102, 1260, 1273, 550, 550, 550, 550,18175, + 0, 0, 971, 0, 0, 0, -39, -39, 0, -268, +18783, 0, 1212, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1217, 1219, 1220, 0, 0, 0, 1279, -39, + 130, 548, -39, 775, 1075, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,18339, 0, + 0, 1304, 1042, 12,10230, 0, 760, 1309, 1313, 1081, +16377, 0,18521, 0, 0, 0, 823, 65, 65, 65, + 65, 416, 1043, 1045, 0, 897, 1315, 88, -5, 0, + 0, 0, 0, 0, 0, 12, 12, 0, 1317, 1318, + 0, 12, 0, 12, 0, 1334, -198, 566, 907, 0, + 0, 0, 0, 566, 915, 0, 0, 0, 0, -39, + 0, 0, 0, 0, 0, 0, 308, 0, 0, 1337, + -39, 967,10378, 967, 1345, 1294, 1348, 1349, 1355, 1356, + 1357, 0, 1346, 1358, 0, 1342, 71, 0, 0, 0, + 0, 0, 0, -39,18842, 25, 695, 566, 733, 1360, + 1359, 0, 861, 1895, 1361, 1281, 1343, 0, 1145, 0, + 0, 1365,10688, 1377, 1378, -135, 1295, 591, 480, 12, + 566, 550, 0, 0, 1381, 1387, 1390, 1391, 0, 0, + 0, 0, -39, 473, 0, 0, 0, 0, 0, 0, + 0, 0, 566, 566, 911, 911, 911, 1392, 1394, -39, + 389, 0, 0,10230, 1379,18521,18443, 1039, 0, 0, + 705, 560, 578, 775, 1173, 0,16528, 0, 0, 0, + -39, 1347, -39, 550, -39, 574, 1363,10230, -135, 550, + 1177, 967, 1425, 702, 1423, 1430, 1428, 0, 1081, 0, +10378, 1436, 1442, 0, 0, 0, 0, 760, 0, 0, + 0, 0, 0, 0, 0, 0, 429, -39, -39, 1447, + 0, 0, 1431, 1450, 1042, 1452, 1455, 1451, 1458, 1463, + 1464, -39, 566, 0, 550, 566, 41, 566, 1466, 1469, + 0, 0, 0, 0, 1216, 0, 0, 461, 137, 1449, +18521, 1471, 14, 427, -80, 3, 642, 1426, 0, 1426, + 1426, 1426, 1426, 1426, 0, 0, -39, 0, -39, 1477, + 0, 0, 0, 0, 933, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1479, 1023, 1032, + 0, 1031, 1491, 147, 1256, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1479, 1479, 0,12114, 0, + 0, 0, 101, 1494, 12, 429, 1476, 566, 2196, 0, + 967, 1413, 1478,18695, 0, 1418, 0, 145, -39, 1480, + 1081, 1081, 550, 1189, 0, 418, 426, 839, 437, 452, + 525, 530, 536, 557, 571, 579, 623, 628, 634, 648, + 654, 0, 0, 551, 0, 12, 0, 0, 429, 0, + 0, 0, 1510, 550, 0, 0, 0, 0, 1511, 1513, + 550, 911, 0, 0, 0, 0, 102, 1081, 1104, 0, + 0, 550, 566, 0, 0,10230, 550, -39, 550, -39, + 753,10230, -135,15790, 0, 988, 1065, 326, 0, 1165, + 1468, 1470,18521, 1476,18339, 0, 566, 710, 0, 1081, + 760, 0, 760, 1516, 3, 0, 1081, 1250, 1254, 0, + 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, + 0, 1527, 911, 550, -39, 550, 0, -39, 1530, 1216, +10230, 0,18521, 806, 566, 0, 0, 0, 967, 1659, + 1532, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1517, 1522, 0, 1488, 1489, 1490, 1492, 1549, -135, + 0, 0, 0, 0, 0, 0, 0, 77, 1327, 0, + 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, + 967, 1501, 1503, 0, 0, 0, 0, 0, 0, 990, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -11, 38, 0, + 0, -37, 0, 2336, 0, 1555, 0, 0, 1042, 0, + 1556, 0, 0, 1474, 0, 0, 0, 0, 1042, 1505, + 0, 1558, 1567, 1569, 1583, 603, -39, -39, -39, 669, + 683, 684, 687, -39, -39, -39, -39, -39, -39, 473, + -39, 707, -39, 731, -39, -39, -39, -39, -39, -39, + -39, 473, -39, 2085, -39, 296, -39, 2340, -39, 0, + 0, 2936, 0, 1584, 0, 1205, 0, 0, 1590, 1696, + 0, 550, 1350, 1543, 1544,18521,18339, 1128, 0, 1696, + 1696, 1696, 1696, 0, 0, 0, 0, 0, 0, 1696, + 1696, 1696, 0, 0, 0, 0, 0, 0, 0, 429, + 0, 1595, 0, 0, 1366, 550, 0, 1600, 0, 0, + 0, 429, 0, 429, -39, 1589, 0, 0, 1607, -39, + 0, 440, 1609, 1611, 0, 308, 0, 806, 1042, 0, + -39, 660, 672, 0, 0, 0, 0,18842, 1593, 0, + -39, 0, 1617, 938, -39, -39, 0, 0, 0, 0, + 0, 0, 967, 1575, 0, -39, 0, 115, 0, 1643, + 1644, 862, 1646, 1648, 1652, 1653, 1655, 1656, 1657, 1662, + 1663, 1664, 0, 1042, 0, 0, -39, 645, 0, -15, + 1588, 1654, 0, 0, 1081, 1081, 1668, 1622, 1677, 1626, + -39, -39, -39, -39, -39, -39, 473, -39, 1679, 1628, + 1682, 1631, 1684, 1633, 1686, 1635, 1688, 1692, 1641, 1694, + 1698, 1658, 1699, 1660, 1705, 1661, 1708, 1666, 1709, 1667, + 1711, 1675, 1714, 1715, 1676, 1730, 1509, 1732, 1683, 0, + 0, 1049, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1316, 0, 0, 596, 0, 0, 0, + 198, 0, 1693, 0, 1504, 775, 0, 0, 0, 0, + 0, 0, 0, 0,18521, -135, 0, 0, 0, 0, + 88, 0, 1734, 806, 566, 0,18521, 0, 0, 2001, + 1736, 0, 0, 0, 0, 1775, 1777, 1560, -39, 967, + 1725, 1726, 1042, 0, 1733, -39, 0, 1785, 1787, 1788, + 1790, 1794, 1782, 1783, 1792, 1802, 120, 0, 0, 0, + 1804, 1818, 0, 1825, 0, 1826, 1827, 1776, 1829, 1778, + 1831, 1781, 1834, 1784, 0, 1838, 0, 1843, 0, 1844, + 0, 1845, 0, 0, 1847, 0, 0, 1848, 0, 1849, + 0, 1850, 0, 1854, 0, 1856, 0, 1857, 0, 0, + 1858, 0, 1859, 0, 1861, 0, 0, 0, 0, 1636, + 0, 1809, 469, 1081,18521, -135,10230, 0, 1846, 1868, + 0, 0, 806, 0, 0, 0, 0, 1081, 0, 1862, + 1030, 0,19121, 0, 1811, 0, -39, -39, -39, 0, + 0, 0, 0, 0, 0, 0, 1867, 0, 1875, 0, + 1887, 0, 1892, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085, + 1896, 0, 1846,18339, 1851, 1898, 0, 88, 0, 1899, + 0, 967, 0, 101, 0, 1900, 1903, 1905, 35, 20, + 0, 0, 0, 0, 32, 50, 52, 45, 157, 765, + 150, 153, 164, 83, 1171, 34, 931, 0, 1476, 1907, + 1665, 1081, 0, 0, 1050, 0, 0, 0, 0, 0, + 0, 0, 168, 170, 183, 119, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1673, + 0, 0, 0, 1081, -135, 1908, 2594, 967, 0, 0, + 0, 0, 0, 1909, 1911, 0, 1912, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 873, 1438, 1081, -39, 0, 1596, 1914, 1915, + 775, 0, 0,10230,18339, 1685, -135, 1846, 1917, 1081, + 1920, 0, }; static const YYINT yyrindex[] = { 0, - 0, 0, 5405, 0, 0,11534, 2051, 0, 0, 0, - 0, 0,12385, 0, 0, 434, 3129, 0, 663, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1909, 1909, 1909, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1909, - 0, -60, 0, 0, 0, 0, 0, 0, 0, 1822, - 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7772, 0, 0, 0, 0, 0, 0, -12179,12257,12257, 0, 0, 0, 6291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9975, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,10874, 0, 0,17880, 2036, 0, 0, 0, + 0, 0,10540, 0, 0, -10, 2810, 0,13211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1835, 2443, 0, - 0, 0, 0, 0, 0, 0,12385, 1826, 4872, 5182, - 5492, 5802, 0, 0, 0, 1912, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1833,12257, - 0, 9475, 9475, 9475, 9475, 9475, 9475, 0, 0, 0, - 0, 0, 1909, 8147, 0, 0, 0, 0, 0, 0, - 7164, 0, 9082, 0,12385, 0, 0, 0, 9255, 0, + 0, 0, 0, 0, 1925, 1925, 1925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8362, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1836, 0, - 0, 1857,10087, 4571, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1925, + 0, 100, 0, 0, 0, 0, 0, 0, 0, 1835, + 0, 0, 0, 0, 0, 1647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,12621, 0, 0, 0, 0, 0, 0, +10998,18931,18931, 0, 0, 0,11140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,14824, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4556, + 4860, 0, 5164, 5468, 5772, 6076, 6380, 6684, 6988, 7292, + 7596, 7900, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1820, 2428, 0, 0, + 0, 0, 0, 0, 0, 0,10540, 1842, 9721,10031, +10341,10651, 0, 0, 0, 1928, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1855,18931, + 0,14324,14324,14324,14324,14324,14324, 0, 0, 0, + 0, 0, 1925,12996, 0, 0, 0, 0, 0, 0, +12013, 0,13931, 0,10540, 0, 0, 0,14104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3963, 0, 0, 0, - 0, 0, 0, 1922, 1913, 0, 0, 0, 0, 0, - 0, 0, 0, 1826, 0, 6112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1864, 0, + 0, 1865,14936, 9420, 0, 0, 8204, 8508, 8812, 9116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3948, 0, 0, 0, 0, 0, + 0, 1926, 1910, 0, 0, 0, 0, 0, 0, 0, + 0, 1842, 0,10961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12385, 0, 0, 0,12385, 0, - 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,10540, 0, 0, 0,10540, 0, 0, 1925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1846, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1865, 1398, 0, 0, 0, 0, + 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1849, 0, 0, 7974, 0, 0,12385, 0, 0, 1922, - 31, 1941, 0, 0, 0, 6546, 0, 0,10220, 1868, - 0, 0, 0, 0,12653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4267, 0, 2139, 0, - 0,10331, 0, 0, 138, 0, 0, 123, 0, 1923, -10362,10517,10658,10689, 0, 0, 0, 0, 0, 0, + 0, 1869, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1866, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1870, 0, + 0,12823, 0, 0,10540, 0, 0, 1926, 172, 1931, + 0, 0, 0,11395, 0, 0,15069, 1874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,16044, 0, 0, 0, 0, + 0, 4252, 0, 2124, 0, 0,15180, 0, 0, 111, + 0, 0, 745, 0, 1937,15211,15366,15507,15538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13303, 1909, 0, 0, 1946, 0, 0,12312, 0, 0, - 0, 0, 0, 0,13454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1909, 1909, 0, 0, 0, 0, 1909, - 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 358, 0, 0, 1876, 0, 4616, + 0, 0, 0,10540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8331, 0, 0, 0, 0, 0, - 0, 0, 425, 9783, 0, 7415, 0, 0, 1948, 0, - 0, 0, 1875, 0, 0, 0, 0, 0, 0, 6725, - 1913, 0, 0, 0, 0, -71, 0, 1909, 0, 1878, + 0, 0,16695, 1925, 0, 0, 1932, 0, 0,18993, + 0, 0, 0, 0, 0, 0,16778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1925, 1925, 0, 0, 0, + 0, 1925, 0, 1925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2747, 3051, 3355, 0, 0, 156, 606, 0, - 0, 0,11251, 0, 0,12385, 0, 0, 0, 0, - 0,12385, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13621, 0, 0, 0, 0, 0, 0, 0,12819, - 0, 0, 0, 0, 1962, 0, 1963, 0,12312, 0, - 0, 0, 1964, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 331, 0, 0, 1877, + 0, 9465, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,13180, 0, 0, 0, + 0, 0, 0, 0, 742,14632, 0,12264, 0, 0, + 1933, 0, 0, 0, 1879, 0, 0, 0, 0, 0, + 0,11574, 1910, 0, 0, 0, 0, -46, 0, 1925, + 0, 1883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1931, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12448, 0, 0, 358, 0, 0, - 0, 0, 4616, 0, 0, 550, 0, 9475, 0, 9475, - 9475, 9475, 9475, 9475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2732, 3036, 3340, 0, 0, 159, + 468, 0, 0, 0,18280, 0, 0,10540, 0, 0, + 0, 0, 0,10540, 0, 0, 0, 0, 0, 0, + 0, 0, 0,16861, 0, 0, 0, 0, 0,16294, + 0, 0, 0, 0, 1949, 0, 1952, 0,18993, 0, + 0, 0, 1966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 660, 0, 0, - 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 660, 660, 0, 9, 0, - 0, 0, 1965, 0, 0, 0, 9944, 7599, 0, 0, - 0, 0, 1039, 1849, 0, 0, 0, 0, 0, 0, -12312,12312,12502, 1941, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, + 0, 0, 0, 0,15848, 0, 0, 331, 0, 0, + 0, 0, 9465, 0, 0, 519, 0,14324, 0,14324, +14324,14324,14324,14324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1882, 0, 1909, 0, 0, 0, 0, - 0, 0, 0, 1885,12736, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, + 0, 0, 0, 0, 856, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 795, 795, 0, -9, 0, + 0, 0, 1967, 0, 0, 0,14793,12448, 0, 0, + 0, 0, 666, 1870, 0, 0, 0, 0, 0, 0, +18993,18993,15829, 1931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3659, 0, 0, 0, 0, 668,12312, - 0, 0, 0, 50, 0, 0, 0, 0, 1890, 0, -14293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,13704, 0, 0, 0,13787, 0, 0, 0, 0, - 0, 0, 0,12312, 1946, 0, 1946, 0, 105, 0, -12533, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2045, 2349, 0, 1304, - 0, 0, 0,12448, 0, 0, 1971, 1952, 0, 0, + 0, 0, 0, 1902, 0, 1925, 0, 0, 0, 0, + 0, 0, 0, 1901, 0, 0, 0, 0, 0, 0, +16211, 3644, 0, 0, 0, 0, 857,18993, 0, 0, + 0, 588, 0, 0, 0, 0, 1906, 0,17499, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,17012, + 0, 0, 0,17179, 0, 0, 0, 0, 0,18993, + 1932, 0, 1932, 0, 455, 0,19071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1079, 1226, 0, 1444, 0, 0, 0,15848, + 0, 0, 1982, 1963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8523, 8707, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13372,13556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 979, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6980, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1058, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,10800, - 0, 0, 0, 0, 0,12385, 0, 1892, 0, 0, - 0, 0, 0, 0, 0,12385,12385,12385,12385, 0, - 0, 0, 0, 0, 0,12385,12385,12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,13938, 0, 0, 0, 0, 0, 776, + 0, 0, 0, 0, 0,15649, 0, 0, 0,10540, + 0, 1913, 0, 0, 0, 0, 0, 0, 0,10540, +10540,10540,10540, 0, 0, 0, 0, 0, 0,10540, +10540,10540, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,17262, 0, 0, 0, 0, + 0, 846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1987, 0, 331, 0, 1963, 9465, 0, + 0, 0, 0, 0, 0, 0, 0, 742, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1975, 0, 358, 0, 1952, 4616, 0, 0, 0, - 0, 0, 0, 0, 0, 425, 1977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,14491, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,18993,18993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9642, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,12312,12312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12385, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, + 0, 0, 0, 0, 0,10540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8880, 0, 0, 0, 0, 745, 0, 0, + 0, 0, 0, 1963, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,13729, 0, 0, + 0, 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12312, 0, 0, 0, 0, 1978, - 0, 0, 0, 1952, 0, 0, 0, 0,12312, 0, - 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, + 0, 0, 0,18993, 0, 0, 0, 0, 1999, 0, + 0, 0, 1963, 0, 0, 0, 0,18993, 0, 0, + 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1978, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1980, 0, 0, 0, 0, 0, + 0, 0, 1999, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1896, - 0, 0,12312, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, + 0,18993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,12312, 0, 0, 0, 0, 0, + 0, 0, 0,18993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,12312, 0, 0, 0, 0, - 0,12385, 0, 0, 0, 0, 0, 0, 1978, 0, -12312, 0, 0, + 0, 0, 0, 0,18993, 0, 0, 0, 0, 0, +10540, 0, 0, 0, 0, 0, 0, 1999, 0,18993, + 0, 0, }; #if YYBTYACC static const YYINT yycindex[] = { 0, @@ -1445,3039 +1444,4423 @@ static const YYINT yycindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, + 0, 0, }; #endif -static const YYINT yygindex[] = { 1842, - -4, -17, -685, 0, -378, -86, -98, 0, -7, 0, - 0, 0, 1606, -74, 0, 0, -883, 0, 1196, 0, - 1003, 234,-1445, -445, -418, 5, -757, 0, 1014, -22, - 1294, 0, -16, 1143, 535, 764, -967, -76, 0, 1032, - 0,-1149, 904, 0, 0, 0,-1287,-1289,-1229,-1085, - 0, 0, 0, 0, 849, 1129, 1349, 0, 0, 0, - 789, -659, 0, 0,-1049, 0, 1148, 0, -980,-1196, - 790, 778, -21, 4, 1703, 1580, 2034, -161, 74, 0, - 0, 0, 0, 0, 0, -790, 1162, 0, 2050, 0, - 0, 862, 1950, 1522, 0, -23, 2041, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -303, 1313, 0, -302, -296, -300, 45, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 1310, 0, - 0, 0, 33, 6, 41, 0, 17, 1766, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 0, 0, 0, 0, 0, 0, 0, 0, -148, - 0, 0, 1464, 0, 0, 0, 480, 0, 0, 0, - 0, 0, 0, 0, 1401, 2007, -28, 0, 1587, 0, - 1705, 0, 0, 0, 0, 0, 0, +static const YYINT yygindex[] = { 1860, + -4, 16, -700, 0, -346, -48, -83, 0, -7, 0, + 0, 0, 1637, -145, 0, 0, -881, 0, 1215, 0, + 1033, 220,-1448, -438, -256, 37, -748, 0, 1053, -22, + 1314, 0, 10, 1161, 554, 800, -973, -55, 0, 1064, + 0,-1134, 936, 0, 0, 0,-1058, -614,-1030, -961, + 0, 0, 0, 0, 883, 1152, 1364, 0, 0, 0, + 826, -656, 0, 0,-1033, 0, 1167, 0, -995,-1205, + 824, 810, -3, 49, 1727, 1598, 2052, -162, 76, 0, + 0, 0, 0, 0, 0, -794, 1176, 0, 2069, 0, + 0, 893, 1968, 1535, 0, -20, 2061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -308, 1331, 0, -302, -284, -301, 29, 0, + 0, 11, 0, 0, 0, 0, 0, 0, 1329, 0, + 0, 0, 27, 36, 15, 0, 2, 1798, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, -164, + 0, 0, 1483, 0, 0, 0, 434, 0, 0, 0, + 0, 0, 0, 0, 1419, 2041, -42, 0, 1621, 0, + 1743, 0, 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 15009 +#define YYTABLESIZE 19624 static const YYINT yytable[] = { 70, - 165, 160, 162, 227, 228, 303, 56, 548, 549, 668, - 550, 669, 120, 121, 118, 1142, 219, 59, 914, 177, - 178, 1008, 169, 170, 171, 172, 124, 125, 1240, 48, - 902, 568, 363, 55, 1293, 203, 702, 1254, 1359, 206, - 1291, 57, 1044, 186, 206, 45, 643, 598, 119, 643, - 167, 1590, 643, 78, 473, 206, 156, 204, 209, 119, - 206, 336, 135, 1619, 207, 34, 147, 599, 302, 1404, - 317, 297, 74, 206, 524, 296, 801, 580, 826, 218, - 827, 998, 232, 849, 206, 472, 109, 1292, 725, 726, - 317, 417, 306, 295, 1279, 213, 580, 164, 1581, 643, - 1318, 66, 1592, 235, 236, 254, 67, 68, 238, 69, - 249, 252, 253, 804, 419, 485, 469, 94, 423, 425, - 427, 429, 431, 259, 294, 422, 261, 1297, 267, 216, - 167, 1433, 1152, 75, 1598, 733, 734, 735, 750, 1600, - 297, 424, 283, 426, 296, 270, 304, 1134, 270, 288, - 283, 284, 287, 1156, 1157, 198, 486, 428, 72, 1601, - 430, 206, 295, 338, 1603, 420, 561, 1611, 471, 739, - 203, 1160, 242, 1162, 467, 655, 420, 164, 34, 111, - 1612, 739, 393, 584, 561, 463, 436, 34, 110, 1294, - 1613, 394, 420, 294, 420, 468, 1133, 1630, 484, 741, - 445, 446, 1493, 283, 1614, 466, 1631, 1421, 420, 590, - 286, 420, 1205, 475, 476, 1151, 1632, 613, 740, 1633, - 478, 479, 1161, 1670, 1163, 67, 68, 481, 69, 285, - 739, 937, 938, 126, 490, 483, 1567, 439, 493, 1295, - 109, 1485, 1573, 1572, 1512, 119, 1246, 206, 741, 788, - 593, 440, 755, 629, 524, 135, 523, 1422, 147, 147, - 112, 98, 495, 1605, 114, 813, 939, 1432, 168, 308, - 496, 591, 528, 1595, 1594, 156, 1325, 513, 518, 535, - 216, 517, 304, 285, 519, 1617, 525, 78, 522, 1059, - 1060, 1061, 78, 531, 532, 533, 534, 1550, 119, 1214, - 216, 119, 848, 1574, 580, 566, 217, 734, 1037, 580, - 580, 896, 580, 1278, 216, 751, 554, 56, 562, 592, - 563, 1618, 572, 587, 564, 119, 582, 556, 59, 820, - 712, 713, 573, 574, 1596, 596, 583, 216, 570, 552, - 48, 821, 822, 553, 55, 1029, 575, 581, 611, 173, - 589, 555, 57, 964, 216, 551, 45, 119, 612, 823, - 67, 68, 119, 69, 270, 1194, 174, 270, 67, 68, - 1195, 69, 620, 620, 639, 645, 167, 179, 1277, 152, - 153, 154, 119, 621, 621, 640, 646, 122, 123, 492, - 119, 1579, 34, 290, 291, 292, 98, 156, 657, 619, - 709, 2, 1043, 119, 98, 940, 941, 34, 942, 824, - 119, 663, 664, 119, 665, 1491, 666, 672, 109, 588, - 119, 67, 68, 164, 69, 119, 1616, 122, 123, 119, - 667, 674, 675, 1168, 1027, 488, 523, 67, 68, 119, - 69, 119, 122, 123, 67, 68, 691, 903, 1575, 1170, - 363, 826, 126, 827, 1172, 437, 438, 98, 684, 597, - 685, 796, 290, 291, 292, 586, 586, 626, 1158, 1174, - 766, 1176, 525, 1229, 695, 466, 1405, 180, 1194, 1597, - 98, 1178, 567, 1195, 1169, 336, 119, 710, 576, 1361, - 715, 1319, 579, 293, 182, 720, 721, 722, 188, 724, - 1171, 728, 729, 730, 1180, 1173, 1622, 1182, 577, 578, - 723, 183, 727, 1063, 297, 586, 731, 761, 296, 964, - 1175, 1290, 1177, 736, 737, 1362, 122, 123, 67, 68, - 481, 69, 1179, 643, 747, 748, 295, 1184, 483, 206, - 805, 27, 28, 29, 30, 31, 32, 33, 206, 753, - 109, 1086, 1186, 285, 1188, 1181, 156, 760, 1183, 1190, - 765, 762, 764, 1192, 206, 1436, 1437, 294, 1584, 1608, - 774, 1087, 282, 67, 68, 773, 69, 775, 825, 13, - 465, 338, 770, 833, 1329, 837, 515, 777, 1185, 184, - 771, 627, 794, 615, 628, 686, 616, 617, 152, 153, - 154, 1331, 795, 1187, 786, 1189, 363, 806, 807, 185, - 1191, 732, 1624, 810, 1193, 811, 473, 156, 156, 297, - 156, 2, 67, 743, 34, 69, 119, 814, 1333, 1335, - 206, 815, 206, 465, 899, 1330, 763, 817, 836, 119, - 819, 295, 203, 67, 68, 220, 69, 978, 980, 737, - 523, 832, 1332, 984, 27, 28, 29, 30, 31, 32, - 33, 221, 92, 27, 28, 29, 30, 31, 32, 33, - 259, 995, 294, 206, 850, 206, 1591, 898, 528, 1334, - 1336, 67, 548, 549, 69, 550, 67, 68, 200, 69, - 1541, 943, 1194, 798, 798, 1002, 798, 1195, 737, 913, - 641, 641, 820, 222, 944, 1490, 945, 233, 948, 949, - 950, 562, 712, 713, 821, 822, 122, 123, 576, 969, - 234, 92, 935, 951, 260, 67, 68, 1542, 69, 562, - 967, 525, 823, 126, 591, 591, 289, 338, 577, 578, - 974, 1551, 982, 997, 979, 981, 983, 971, 975, 763, - 641, 991, 763, 993, 1065, 994, 473, 1346, 1009, 1348, - 999, 98, 913, 1066, 1620, 1067, 1068, 1069, 1070, 1071, - 1012, 1621, 1212, 1000, 206, 1226, 1483, 1227, 1228, 1014, - 1013, 298, 824, 117, 591, 628, 628, 92, 1058, 299, - 1015, 1016, 122, 123, 576, 300, 10, 11, 12, 13, - 1554, 1544, 473, 1553, 1026, 67, 68, 301, 69, 270, - 270, 1028, 270, 1030, 577, 578, 568, 67, 68, 568, - 69, 1245, 1143, 473, 1038, 1627, 307, 1062, 649, 650, - 651, 1153, 309, 34, 1041, 628, 290, 291, 292, 1072, - 576, 1073, 916, 917, 918, 237, 919, 920, 921, 922, - 308, 923, 924, 198, 310, 925, 926, 927, 928, 395, - 577, 578, 929, 930, 652, 653, 654, 1635, 27, 28, - 29, 30, 31, 32, 33, 1407, 1408, 1145, 1137, 152, - 153, 154, 371, 27, 28, 29, 30, 31, 32, 33, - 1264, 1141, 206, 34, 1658, 798, 473, 418, 1660, 644, - 200, 1154, 67, 68, 297, 69, 1004, 695, 296, 1409, - 1410, 67, 68, 1672, 69, 676, 677, 678, 1247, 1198, - 1248, 1199, 432, 270, 270, 447, 295, 435, 191, 464, - 931, 192, 193, 194, 195, 92, 196, 197, 198, 470, - 1636, 290, 291, 292, 823, 67, 68, 1207, 69, 473, - 1197, 679, 680, 681, 474, 1209, 119, 294, 576, 638, - 477, 1213, 67, 68, 487, 69, 1267, 262, 263, 491, - 1208, 497, 1210, 514, 1211, 494, 97, 264, 577, 578, - 913, 99, 1669, 100, 498, 199, 503, 775, 504, 775, - 101, 554, 34, 1222, 1231, 639, 1244, 777, 1239, 777, - 1241, 505, 556, 506, 1224, 1233, 640, 102, 1282, 507, - 823, 508, 1260, 509, 552, 510, 1221, 1230, 553, 627, - 627, 1256, 103, 511, 1257, 119, 555, 512, 1223, 1232, - 551, 97, 250, 251, 1266, 516, 99, 520, 100, 521, - 1263, 1045, 1428, 1429, 1430, 101, 537, 2, 1046, 565, - 1047, 1048, 1049, 571, 1382, 1383, 1384, 1385, 1220, 913, - 595, 1312, 102, 976, 1386, 1387, 1388, 255, 256, 257, - 258, 92, 92, 92, 92, 92, 37, 103, 67, 156, - 37, 69, 119, 648, 37, 37, 791, 792, 793, 1050, - 1051, 1052, 670, 92, 92, 473, 1415, 659, 37, 660, - 27, 28, 29, 30, 31, 32, 33, 2, 977, 662, - 92, 92, 92, 92, 473, 1629, 671, 92, 92, 1089, - 1090, 34, 673, 92, 682, 1296, 92, 683, 690, 37, - 634, 216, 696, 92, 92, 1053, 1054, 1055, 697, 1056, - 191, 698, 1057, 192, 193, 194, 195, 699, 196, 197, - 198, 1607, 1609, 1326, 1327, 1328, 701, 704, 823, 627, - 1337, 1338, 1339, 1340, 1341, 1342, 711, 1344, 1345, 1347, - 1366, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1343, 1358, - 716, 1360, 1349, 1363, 717, 1367, 718, 618, 92, 92, - 1357, 92, 92, 92, 719, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 1376, 738, 2, 122, 123, 576, - 499, 500, 501, 502, 1418, 1379, 1380, 223, 1389, 224, - 225, 226, 741, 104, 823, 13, 290, 291, 292, 577, - 578, 742, 1393, 754, 1394, 642, 67, 68, 643, 69, - 119, 744, 756, 635, 757, 1395, 758, 759, 67, 68, - 1398, 69, 768, 767, 769, 1399, 126, 772, 797, 778, - 779, 1406, 1075, 1076, 1077, 1078, 1079, 780, 798, 799, - 600, 1413, 601, 602, 603, 1416, 1417, 800, 812, 109, - 1268, 816, 1488, 808, 98, 13, 1420, 1364, 809, 109, - 109, 109, 109, 818, 1365, 636, 831, 838, 637, 109, - 109, 109, 1285, 1286, 1287, 1288, 1289, 1427, 1431, 27, - 28, 29, 30, 31, 32, 33, 823, 823, 839, 840, - 841, 1442, 1443, 1444, 1445, 1446, 1447, 842, 1449, 1164, - 1165, 1166, 1167, 843, 1197, 2, 823, 844, 1502, 1448, - 67, 68, 846, 69, 901, 847, 900, 1482, 823, 905, - 823, 823, 904, 823, 823, 906, 907, 1216, 1217, 1218, - 1219, 911, 867, 1423, 1424, 1425, 1426, 1484, 908, 27, - 28, 29, 30, 31, 32, 33, 912, 970, 915, 946, - 947, 10, 11, 12, 13, 952, 913, 297, 953, 1037, - 985, 296, 954, 1489, 955, 1494, 956, 40, 37, 37, - 37, 156, 152, 153, 154, 1495, 1501, 957, 441, 295, - 442, 443, 958, 1506, 959, 960, 961, 444, 962, 963, - 823, 823, 823, 823, 823, 823, 823, 965, 867, 966, - 40, 1001, 1003, 992, 996, 40, 1005, 40, 40, 40, - 294, 40, 1006, 1007, 40, 1010, 1011, 1017, 1197, 1019, - 1022, 1018, 95, 1020, 1021, 96, 40, 40, 40, 40, - 1023, 1033, 1024, 1025, 1031, 1545, 1032, 1040, 27, 28, - 29, 30, 31, 32, 33, 1042, 1586, 1074, 97, 98, - 420, 1080, 913, 99, 1085, 100, 1082, 1083, 40, 1543, - 40, 1084, 101, 8, 9, 1135, 1088, 1147, 1138, 1148, - 1557, 1558, 1559, 1150, 1155, 1200, 1201, 1202, 1203, 102, - 1204, 1206, 1237, 13, 1242, 1236, 1252, 1238, 1243, 1249, - 40, 1253, 40, 1255, 103, 614, 1258, 615, 1269, 1270, - 616, 617, 1271, 1045, 393, 1276, 1272, 1280, 1273, 1274, - 1046, 1275, 1047, 1048, 1049, 1281, 1283, 1315, 1582, 34, - 1284, 1316, 1654, 1593, 1317, 1320, 1623, 1321, 1599, 1593, - 1602, 1322, 1606, 1665, 1599, 1593, 1602, 1323, 1324, 488, - 67, 68, 1373, 69, 1375, 1610, 867, 1377, 126, 1390, - 1378, 1050, 1051, 1052, 1381, 1391, 1599, 1593, 1602, 1392, - 1396, 1397, 1401, 1402, 655, 1419, 1160, 27, 28, 29, - 30, 31, 32, 33, 1414, 1162, 98, 1168, 1170, 67, - 68, 1172, 69, 1174, 1176, 1235, 1481, 1178, 1180, 393, - 1182, 913, 1184, 1186, 1434, 1435, 1438, 1053, 1054, 1055, - 1439, 1056, 1440, 1441, 1057, 1450, 1452, 1451, 1453, 1454, - 1455, 1456, 1666, 1458, 1459, 1457, 1460, 1461, 1462, 1661, - 1463, 1464, 1465, 1466, 1467, 1468, 1470, 40, 40, 40, - 40, 1472, 1469, 913, 1474, 40, 1475, 1477, 40, 1667, - 40, 40, 40, 40, 40, 40, 40, 1471, 40, 40, - 40, 40, 1473, 40, 40, 40, 1476, 40, 40, 40, - 40, 1478, 1479, 40, 40, 40, 40, 1480, 1486, 1487, - 1492, 1497, 1498, 40, 1499, 40, 1503, 1329, 40, 290, - 291, 292, 40, 40, 1500, 40, 1331, 1504, 157, 40, - 40, 40, 40, 297, 152, 153, 154, 296, 1505, 1333, - 1335, 1508, 1496, 268, 269, 270, 40, 271, 272, 273, - 274, 1507, 275, 276, 1509, 295, 277, 278, 279, 280, - 1510, 1511, 1513, 1514, 867, 40, 40, 40, 40, 40, - 1515, 40, 40, 2, 867, 1516, 1525, 867, 1517, 1519, - 1518, 40, 40, 1520, 393, 1521, 480, 393, 393, 393, - 393, 1522, 393, 393, 393, 1523, 634, 1524, 40, 1526, - 1527, 1528, 1529, 40, 40, 40, 40, 40, 40, 40, + 553, 159, 59, 165, 301, 914, 554, 555, 1236, 508, + 1224, 48, 120, 121, 118, 57, 361, 1128, 227, 228, + 162, 203, 169, 170, 171, 172, 1275, 55, 643, 45, + 994, 643, 1273, 573, 643, 902, 56, 219, 1030, 1341, + 295, 704, 1399, 34, 294, 177, 178, 421, 423, 425, + 427, 429, 600, 206, 167, 804, 471, 204, 124, 125, + 1591, 218, 293, 206, 207, 119, 206, 34, 986, 186, + 206, 74, 1597, 206, 1618, 1589, 529, 601, 78, 1274, + 1276, 643, 232, 300, 582, 1602, 206, 1279, 109, 206, + 1599, 209, 1600, 292, 1580, 216, 752, 503, 470, 164, + 34, 417, 1300, 235, 236, 254, 415, 281, 238, 1428, + 249, 252, 253, 304, 849, 295, 741, 504, 505, 294, + 1261, 198, 66, 1613, 67, 68, 94, 69, 279, 801, + 1277, 467, 75, 640, 167, 420, 520, 293, 483, 295, + 213, 271, 1120, 294, 273, 72, 67, 68, 286, 69, + 282, 285, 418, 281, 739, 422, 203, 1416, 529, 1632, + 111, 293, 1142, 1143, 302, 742, 631, 281, 292, 670, + 110, 671, 735, 736, 737, 592, 1023, 484, 34, 164, + 586, 469, 391, 119, 1138, 461, 418, 334, 1492, 112, + 1610, 1119, 292, 1611, 424, 426, 336, 1604, 114, 615, + 443, 444, 741, 739, 1612, 464, 418, 1417, 1629, 1189, + 1630, 317, 434, 473, 474, 168, 250, 251, 580, 1669, + 763, 482, 135, 1631, 119, 67, 68, 479, 69, 306, + 283, 317, 67, 68, 488, 69, 392, 1484, 476, 477, + 173, 1228, 109, 206, 1511, 418, 418, 119, 494, 798, + 798, 741, 798, 499, 500, 501, 216, 506, 528, 510, + 511, 512, 216, 595, 1307, 1427, 284, 1137, 514, 757, + 533, 813, 1198, 753, 516, 518, 523, 540, 174, 522, + 481, 2, 524, 119, 530, 283, 527, 1549, 217, 216, + 593, 536, 537, 538, 539, 119, 1616, 179, 302, 104, + 502, 119, 509, 594, 636, 220, 513, 571, 122, 123, + 561, 59, 78, 119, 2, 119, 567, 78, 568, 557, + 48, 589, 569, 560, 57, 67, 68, 517, 69, 119, + 578, 579, 1617, 848, 585, 558, 55, 556, 45, 1260, + 528, 736, 896, 1180, 559, 56, 122, 123, 1181, 1259, + 826, 119, 827, 577, 491, 492, 614, 584, 1015, 598, + 216, 98, 288, 289, 290, 180, 623, 623, 642, 648, + 156, 67, 68, 182, 69, 788, 580, 583, 167, 613, + 628, 575, 122, 123, 34, 67, 68, 952, 69, 67, + 68, 621, 69, 591, 147, 1490, 67, 68, 581, 69, + 622, 622, 641, 647, 1029, 1578, 216, 98, 490, 665, + 666, 711, 667, 119, 668, 135, 119, 637, 109, 590, + 119, 98, 503, 164, 1045, 1046, 1047, 119, 486, 676, + 677, 119, 465, 119, 237, 117, 361, 288, 289, 290, + 1615, 659, 504, 505, 693, 580, 119, 796, 674, 428, + 1219, 798, 852, 466, 1400, 183, 686, 1146, 687, 13, + 669, 288, 289, 290, 599, 1148, 1013, 1044, 291, 638, + 530, 1571, 639, 464, 184, 1144, 1154, 295, 1180, 1023, + 1301, 294, 1049, 1181, 572, 712, 206, 715, 716, 717, + 768, 1156, 13, 67, 68, 270, 69, 119, 270, 293, + 418, 1573, 1593, 826, 629, 827, 617, 630, 1147, 618, + 619, 737, 206, 1272, 206, 643, 1149, 697, 852, 27, + 28, 29, 30, 31, 32, 33, 657, 1155, 95, 1540, + 292, 96, 1595, 688, 718, 479, 185, 463, 334, 749, + 750, 188, 1157, 27, 28, 29, 30, 31, 32, 33, + 109, 952, 1583, 283, 97, 98, 1431, 1432, 1343, 99, + 737, 100, 762, 805, 1158, 767, 764, 766, 101, 1160, + 221, 1574, 774, 738, 739, 1162, 27, 28, 29, 30, + 31, 32, 33, 280, 770, 102, 147, 147, 481, 777, + 156, 156, 361, 156, 1344, 206, 1164, 463, 2, 755, + 103, 820, 1596, 773, 795, 1623, 833, 233, 837, 34, + 1166, 437, 775, 821, 822, 1159, 336, 983, 1168, 206, + 1161, 636, 122, 123, 503, 438, 1163, 794, 1072, 814, + 203, 823, 222, 815, 580, 806, 807, 771, 765, 817, + 836, 810, 819, 811, 504, 505, 800, 1165, 1073, 34, + 968, 786, 119, 832, 27, 28, 29, 30, 31, 32, + 33, 1167, 1170, 528, 966, 553, 852, 1172, 970, 1169, + 972, 554, 555, 1174, 234, 67, 850, 1590, 69, 119, + 533, 824, 1051, 825, 471, 1489, 1482, 1176, 67, 852, + 271, 69, 1052, 1178, 1053, 1054, 1055, 1056, 1057, 67, + 68, 913, 69, 37, 206, 800, 944, 37, 1311, 935, + 242, 37, 37, 1171, 270, 949, 988, 270, 1173, 943, + 1031, 957, 1313, 1315, 1175, 37, 1317, 1032, 951, 1033, + 1034, 1035, 955, 530, 637, 1541, 122, 123, 1177, 295, + 206, 990, 962, 294, 1179, 985, 967, 969, 971, 1550, + 1227, 734, 471, 979, 820, 981, 37, 982, 995, 1312, + 950, 293, 937, 938, 913, 255, 821, 822, 1036, 1037, + 1038, 800, 336, 1314, 1316, 471, 13, 1318, 270, 270, + 999, 270, 586, 586, 823, 1543, 638, 898, 561, 639, + 1001, 1002, 292, 899, 959, 963, 1196, 939, 206, 288, + 289, 290, 852, 998, 1012, 1607, 561, 67, 68, 256, + 69, 1014, 1000, 1016, 1039, 1040, 1041, 261, 1042, 67, + 68, 1043, 69, 262, 1024, 67, 68, 1048, 69, 435, + 436, 263, 586, 1626, 824, 641, 641, 67, 68, 1058, + 69, 1059, 763, 1129, 852, 763, 34, 580, 580, 1246, + 580, 206, 1139, 264, 852, 67, 68, 852, 69, 265, + 27, 28, 29, 30, 31, 32, 33, 916, 917, 918, + 266, 919, 920, 921, 922, 1634, 923, 924, 198, 1027, + 925, 926, 927, 928, 267, 641, 568, 929, 930, 568, + 823, 1127, 270, 270, 268, 1131, 591, 591, 295, 269, + 562, 1140, 745, 628, 628, 1328, 1659, 1330, 119, 1180, + 1566, 1123, 620, 1657, 1181, 471, 1572, 270, 562, 800, + 293, 1671, 491, 492, 1635, 1423, 1424, 1425, 852, 852, + 852, 852, 852, 852, 852, 1183, 940, 941, 1191, 942, + 274, 275, 1229, 1193, 1230, 1184, 591, 1594, 272, 1197, + 276, 292, 697, 628, 1185, 931, 823, 287, 1192, 296, + 1194, 305, 1195, 297, 67, 68, 1668, 69, 913, 306, + 119, 1621, 503, 1249, 298, 561, 299, 1208, 1217, 642, + 471, 1410, 1226, 777, 557, 777, 1205, 1214, 560, 307, + 1207, 1216, 504, 505, 122, 123, 503, 308, 1242, 369, + 558, 223, 556, 224, 225, 226, 775, 1238, 775, 559, + 1239, 1206, 1215, 641, 393, 1264, 504, 505, 416, 67, + 1248, 155, 69, 119, 430, 37, 37, 37, 122, 123, + 503, 1223, 439, 1225, 440, 441, 433, 1377, 1378, 1379, + 1380, 442, 791, 792, 793, 913, 34, 1381, 1382, 1383, + 504, 505, 1402, 1403, 445, 800, 800, 800, 800, 800, + 2, 288, 289, 290, 1404, 1405, 462, 34, 1294, 97, + 1553, 1245, 471, 1552, 99, 468, 100, 800, 800, 257, + 258, 259, 260, 101, 471, 27, 28, 29, 30, 31, + 32, 33, 471, 1628, 800, 800, 800, 800, 627, 627, + 102, 800, 800, 472, 823, 1075, 1076, 800, 475, 800, + 800, 1278, 1204, 485, 489, 103, 495, 800, 800, 1150, + 1151, 1152, 1153, 34, 496, 27, 28, 29, 30, 31, + 32, 33, 602, 646, 603, 604, 605, 853, 497, 1308, + 1309, 1310, 1418, 1419, 1420, 1421, 1319, 1320, 1321, 1322, + 1323, 1324, 498, 1326, 1327, 1329, 515, 1332, 1333, 1334, + 1335, 1336, 1337, 1338, 519, 1340, 521, 1342, 525, 1345, + 823, 1349, 800, 800, 1348, 800, 800, 800, 526, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 1371, 1213, + 67, 68, 570, 69, 542, 576, 1325, 597, 126, 650, + 1331, 661, 662, 853, 651, 652, 653, 664, 1339, 673, + 672, 1614, 1061, 1062, 1063, 1064, 1065, 1413, 8, 9, + 288, 289, 290, 675, 684, 685, 98, 1390, 216, 1619, + 692, 698, 1393, 699, 200, 1384, 1620, 1394, 13, 700, + 654, 655, 656, 1401, 1374, 1375, 701, 1388, 703, 1389, + 616, 706, 617, 1408, 713, 618, 619, 1411, 1412, 629, + 2, 714, 823, 823, 719, 109, 733, 720, 1415, 1267, + 1268, 1269, 1270, 1271, 721, 109, 109, 109, 109, 722, + 723, 2, 823, 724, 854, 109, 109, 109, 725, 1422, + 1426, 726, 1487, 727, 823, 728, 823, 823, 729, 823, + 823, 1183, 730, 1437, 1438, 1439, 1440, 1441, 1442, 731, + 1444, 732, 1606, 1608, 67, 68, 744, 69, 119, 199, + 740, 743, 27, 28, 29, 30, 31, 32, 33, 1476, + 1477, 1478, 1479, 97, 756, 746, 761, 2, 99, 758, + 100, 759, 760, 772, 152, 153, 154, 101, 769, 778, + 854, 853, 779, 1443, 1501, 780, 678, 679, 680, 797, + 1481, 798, 1483, 799, 102, 964, 823, 823, 823, 823, + 823, 823, 823, 812, 853, 800, 816, 808, 809, 103, + 831, 913, 40, 200, 818, 838, 839, 295, 840, 841, + 1493, 294, 681, 682, 683, 842, 843, 844, 846, 847, + 900, 1500, 901, 906, 904, 905, 155, 907, 1505, 293, + 965, 1200, 1201, 1202, 1203, 40, 911, 912, 958, 915, + 40, 945, 40, 40, 40, 908, 40, 946, 1183, 40, + 947, 948, 953, 1488, 954, 10, 11, 12, 13, 980, + 292, 40, 40, 40, 40, 1494, 973, 916, 917, 918, + 987, 919, 920, 921, 922, 984, 923, 924, 198, 13, + 925, 926, 927, 928, 1544, 989, 991, 929, 930, 644, + 992, 993, 645, 40, 191, 40, 996, 192, 193, 194, + 195, 913, 196, 197, 198, 997, 1003, 853, 1004, 1005, + 1008, 1210, 1006, 1211, 1212, 1007, 1585, 1009, 854, 1556, + 1557, 1558, 867, 1010, 1011, 40, 1017, 40, 1018, 1019, + 1026, 1028, 10, 11, 12, 13, 418, 1060, 1066, 1068, + 1069, 854, 27, 28, 29, 30, 31, 32, 33, 853, + 1071, 1070, 1074, 1542, 1121, 931, 1124, 1133, 1134, 853, + 1136, 1141, 853, 27, 28, 29, 30, 31, 32, 33, + 1186, 1187, 1592, 1188, 1190, 1220, 1231, 1598, 1592, 1601, + 1221, 1605, 1222, 1598, 1592, 1601, 1234, 1237, 867, 1240, + 1235, 1251, 1653, 1622, 1252, 67, 68, 1664, 69, 1253, + 1254, 1255, 1256, 126, 1257, 1598, 1592, 1601, 1258, 1262, + 1263, 1265, 1581, 1266, 1297, 1298, 1299, 1302, 1303, 27, + 28, 29, 30, 31, 32, 33, 1609, 1304, 1305, 67, + 68, 98, 69, 853, 853, 853, 853, 853, 853, 853, + 913, 1480, 1306, 191, 1368, 486, 192, 193, 194, 195, + 1370, 196, 197, 198, 854, 1372, 1373, 1376, 1385, 1386, + 1387, 1665, 40, 40, 40, 40, 1391, 1392, 1660, 1396, + 40, 155, 657, 40, 1397, 40, 40, 40, 40, 40, + 40, 40, 913, 40, 40, 40, 40, 1414, 40, 40, + 40, 34, 40, 40, 40, 40, 854, 1409, 40, 40, + 40, 40, 1146, 1148, 393, 1154, 854, 1156, 40, 854, + 40, 1158, 1160, 40, 1162, 1164, 1166, 40, 40, 1250, + 40, 1168, 1170, 1172, 40, 40, 40, 40, 1433, 288, + 289, 290, 1429, 1666, 1434, 1430, 867, 1435, 1436, 1445, + 1446, 40, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 152, + 153, 154, 1454, 1455, 1456, 334, 1485, 335, 1457, 1459, + 40, 40, 40, 40, 40, 1461, 40, 40, 1463, 1465, + 1458, 1467, 1460, 1462, 1469, 1470, 40, 40, 1464, 1466, + 854, 854, 854, 854, 854, 854, 854, 1468, 1471, 393, + 1472, 1473, 1474, 40, 1491, 1475, 1496, 1486, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 1530, 1531, 1532, 1533, 580, 1534, 1535, 1536, 867, 867, - 867, 867, 867, 867, 867, 40, 40, 40, 40, 1537, - 40, 40, 40, 40, 1538, 1539, 40, 1540, 40, 1546, - 40, 40, 40, 40, 1549, 40, 40, 580, 40, 40, - 40, 1552, 580, 1556, 580, 580, 580, 40, 580, 1562, - 1563, 580, 1564, 1565, 1634, 1580, 1583, 1662, 1585, 909, - 1587, 1588, 1589, 580, 580, 580, 580, 1625, 1656, 635, - 1637, 1626, 1655, 1657, 1659, 40, 40, 40, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 40, 40, 580, 40, 40, 40, 1663, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 1664, - 40, 13, 1668, 1671, 104, 67, 68, 1673, 69, 438, - 29, 636, 439, 126, 637, 137, 127, 580, 803, 580, - 128, 129, 130, 131, 132, 737, 133, 134, 135, 136, - 400, 137, 138, 748, 559, 139, 140, 141, 142, 859, - 557, 98, 143, 144, 560, 1045, 552, 838, 755, 852, - 830, 145, 1046, 146, 1047, 1048, 1049, 297, 138, 749, - 860, 296, 555, 556, 564, 272, 74, 831, 147, 148, - 149, 143, 839, 165, 241, 144, 147, 168, 211, 295, - 590, 312, 661, 1036, 1251, 27, 28, 29, 30, 31, - 32, 33, 968, 1050, 1051, 1052, 1259, 1136, 1555, 1411, - 1250, 1314, 1159, 150, 1371, 290, 291, 292, 1400, 910, - 294, 1149, 594, 1403, 1412, 852, 700, 163, 93, 478, - 479, 1374, 1146, 239, 166, 749, 986, 990, 787, 536, - 202, 845, 631, 0, 0, 708, 0, 0, 0, 1053, - 1054, 1055, 0, 1056, 0, 0, 1057, 0, 394, 0, - 0, 0, 0, 0, 580, 580, 0, 580, 0, 152, - 153, 154, 580, 853, 0, 580, 0, 580, 580, 580, - 580, 580, 580, 580, 0, 580, 580, 580, 580, 0, - 580, 580, 0, 0, 580, 580, 580, 580, 0, 0, - 580, 580, 580, 580, 95, 0, 0, 96, 581, 0, - 580, 0, 580, 0, 0, 580, 0, 0, 0, 0, - 580, 0, 0, 156, 0, 0, 580, 580, 580, 580, - 97, 98, 0, 0, 0, 99, 0, 100, 0, 853, - 0, 581, 0, 394, 101, 0, 581, 0, 581, 581, - 581, 0, 581, 0, 0, 581, 0, 0, 0, 0, - 0, 102, 580, 0, 580, 580, 580, 581, 581, 581, - 581, 0, 0, 852, 0, 0, 103, 0, 580, 580, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 69, 0, 0, 580, 852, 0, 155, 581, + 40, 40, 40, 40, 40, 1497, 1498, 1502, 1503, 580, + 67, 68, 1499, 69, 1311, 1504, 1313, 1315, 126, 1317, + 40, 40, 40, 40, 1506, 40, 40, 40, 40, 1507, + 1508, 40, 1510, 40, 1512, 40, 40, 40, 40, 1509, + 40, 40, 580, 40, 40, 40, 98, 580, 1513, 580, + 580, 580, 40, 580, 1514, 1515, 580, 1516, 1517, 1518, + 1519, 1520, 67, 1521, 1522, 69, 1523, 1524, 580, 580, + 580, 580, 1525, 1526, 1527, 2, 1528, 1529, 1530, 1531, + 40, 40, 40, 1532, 867, 1533, 1534, 1535, 1538, 1536, + 1537, 1539, 1551, 1555, 867, 1545, 1561, 867, 40, 40, + 580, 40, 40, 40, 1562, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 393, 1548, 1563, 393, 393, 393, + 393, 1564, 393, 393, 393, 1633, 1579, 1582, 1625, 1584, + 1586, 909, 580, 1587, 580, 1588, 1624, 1658, 1636, 1654, + 1655, 1656, 1031, 1661, 1662, 1663, 1670, 104, 1667, 1032, + 1672, 1033, 1034, 1035, 95, 438, 29, 96, 439, 737, + 557, 559, 552, 755, 152, 153, 154, 137, 867, 867, + 867, 867, 867, 867, 867, 155, 803, 859, 838, 555, + 97, 98, 556, 400, 748, 99, 830, 100, 560, 138, + 1036, 1037, 1038, 749, 101, 860, 564, 272, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 102, 143, 831, 165, 7, 74, 144, 839, 324, + 325, 326, 327, 328, 329, 241, 103, 147, 168, 310, + 590, 1495, 1022, 8, 9, 211, 1039, 1040, 1041, 1233, + 1042, 663, 1241, 1043, 956, 1122, 1554, 1406, 1232, 1296, + 10, 11, 12, 13, 1366, 1145, 910, 1395, 1407, 1398, + 1135, 330, 702, 394, 596, 163, 1132, 93, 1369, 580, + 580, 239, 580, 751, 166, 331, 974, 580, 978, 787, + 580, 845, 580, 580, 580, 580, 580, 580, 580, 541, + 580, 580, 580, 580, 202, 580, 580, 710, 633, 580, + 580, 580, 580, 0, 0, 580, 580, 580, 580, 0, + 332, 333, 0, 581, 0, 580, 0, 580, 0, 0, + 580, 0, 0, 0, 0, 580, 0, 0, 0, 0, + 0, 580, 580, 580, 580, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 67, 68, 581, 903, 394, 0, + 0, 581, 126, 581, 581, 581, 0, 581, 0, 0, + 581, 0, 0, 0, 0, 0, 0, 580, 0, 580, + 580, 580, 581, 581, 581, 581, 0, 0, 0, 0, + 98, 0, 0, 580, 580, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 580, 0, 0, 0, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 0, 0, - 0, 581, 580, 581, 0, 580, 580, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 580, 580, 580, 580, 0, 580, 580, 580, - 580, 0, 0, 580, 0, 580, 0, 580, 580, 580, - 0, 0, 580, 580, 0, 580, 580, 580, 0, 0, - 394, 0, 0, 394, 580, 0, 0, 853, 0, 290, - 291, 292, 67, 68, 216, 69, 119, 0, 394, 0, - 126, 394, 394, 394, 394, 0, 394, 394, 394, 852, - 853, 0, 580, 580, 0, 1140, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, - 580, 580, 0, 580, 580, 580, 0, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 0, 580, 0, 0, - 0, 852, 712, 713, 0, 0, 0, 0, 0, 0, - 0, 852, 0, 0, 852, 0, 0, 0, 581, 581, - 0, 581, 0, 0, 0, 0, 581, 854, 0, 581, - 0, 581, 581, 581, 581, 581, 581, 581, 0, 581, - 581, 581, 581, 0, 581, 581, 0, 0, 581, 581, - 581, 581, 0, 0, 581, 581, 581, 581, 0, 0, - 0, 0, 574, 0, 581, 0, 581, 0, 0, 581, - 0, 0, 0, 853, 581, 0, 0, 0, 0, 0, - 581, 581, 581, 581, 0, 852, 852, 852, 852, 852, - 852, 852, 0, 854, 0, 574, 152, 153, 154, 0, - 574, 0, 574, 574, 574, 0, 574, 0, 0, 0, - 0, 0, 0, 0, 0, 853, 581, 0, 581, 581, - 581, 574, 574, 574, 574, 853, 0, 0, 853, 0, - 0, 0, 581, 581, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, - 0, 0, 0, 574, 581, 581, 581, 581, 581, 581, + 580, 580, 580, 0, 0, 0, 581, 580, 581, 0, + 580, 580, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 580, 580, 580, + 580, 0, 580, 580, 580, 580, 0, 0, 580, 0, + 580, 0, 580, 580, 580, 0, 155, 580, 580, 0, + 580, 580, 580, 0, 1031, 394, 0, 0, 394, 580, + 0, 1032, 0, 1033, 1034, 1035, 0, 0, 152, 153, + 154, 0, 0, 394, 0, 0, 394, 394, 394, 394, + 0, 394, 394, 394, 0, 0, 0, 580, 580, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1036, 1037, 1038, 580, 580, 0, 580, 580, + 580, 0, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 916, 917, 918, 0, 919, 920, 921, 922, 0, + 923, 924, 198, 0, 925, 926, 927, 928, 0, 0, + 0, 929, 930, 581, 581, 0, 581, 0, 1039, 1040, + 1041, 581, 1042, 0, 581, 1043, 581, 581, 581, 581, + 581, 581, 581, 0, 581, 581, 581, 581, 0, 581, + 581, 0, 0, 581, 581, 581, 581, 0, 0, 581, + 581, 581, 581, 0, 0, 0, 0, 574, 0, 581, + 155, 581, 0, 0, 581, 0, 0, 0, 0, 581, + 0, 0, 0, 0, 0, 581, 581, 581, 581, 931, + 0, 0, 0, 0, 0, 67, 68, 216, 69, 119, + 574, 67, 68, 126, 69, 574, 0, 574, 574, 574, + 0, 574, 0, 0, 0, 0, 0, 0, 1126, 0, + 0, 581, 0, 581, 581, 581, 574, 574, 574, 574, + 0, 98, 0, 0, 0, 0, 0, 581, 581, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 581, 491, 492, 0, 574, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, - 581, 581, 0, 0, 0, 574, 581, 574, 0, 581, - 581, 0, 0, 0, 0, 0, 0, 0, 0, 853, - 853, 853, 853, 853, 853, 853, 581, 581, 581, 581, - 0, 581, 581, 581, 581, 0, 0, 581, 0, 581, - 0, 581, 581, 581, 0, 0, 581, 581, 216, 581, - 581, 581, 0, 0, 0, 0, 0, 0, 581, 0, - 0, 854, 0, 1298, 1299, 1300, 0, 1301, 1302, 1303, - 1304, 0, 1305, 1306, 198, 0, 1307, 1308, 1309, 1310, - 0, 0, 0, 0, 854, 1311, 581, 581, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 581, 581, 0, 581, 581, 581, - 0, 581, 581, 581, 581, 581, 581, 581, 581, 581, - 0, 581, 0, 0, 0, 0, 0, 1615, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 574, 574, 0, 574, 0, 0, 0, 0, - 574, 0, 0, 574, 0, 574, 574, 574, 574, 574, - 574, 574, 0, 574, 574, 574, 574, 0, 574, 574, - 0, 0, 574, 574, 574, 574, 0, 0, 574, 574, - 574, 574, 0, 0, 0, 0, 572, 0, 574, 0, - 574, 0, 0, 574, 0, 0, 0, 854, 574, 0, - 0, 0, 0, 0, 574, 574, 574, 574, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, - 67, 68, 0, 69, 572, 0, 572, 572, 572, 0, - 572, 0, 0, 0, 0, 0, 0, 0, 0, 854, - 574, 0, 574, 574, 574, 572, 572, 572, 572, 854, - 0, 0, 854, 0, 0, 0, 574, 574, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 574, 0, 0, 0, 572, 574, 574, + 581, 581, 581, 581, 581, 581, 581, 0, 0, 0, + 574, 581, 574, 0, 581, 581, 240, 241, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 581, 581, 581, 581, 0, 581, 581, 581, 581, + 0, 243, 581, 0, 581, 0, 581, 581, 581, 0, + 0, 581, 581, 0, 581, 581, 581, 216, 0, 67, + 68, 0, 69, 581, 0, 0, 0, 126, 0, 152, + 153, 154, 1280, 1281, 1282, 0, 1283, 1284, 1285, 1286, + 0, 1287, 1288, 198, 0, 1289, 1290, 1291, 1292, 0, + 0, 581, 581, 0, 1293, 98, 0, 0, 1346, 0, + 0, 0, 0, 0, 0, 1347, 0, 0, 0, 581, + 581, 0, 581, 581, 581, 0, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 244, 0, 245, 246, 247, + 248, 0, 0, 0, 0, 0, 0, 574, 574, 0, + 574, 0, 0, 0, 0, 574, 0, 0, 574, 0, + 574, 574, 574, 574, 574, 574, 574, 0, 574, 574, + 574, 574, 0, 574, 574, 0, 1652, 574, 574, 574, + 574, 0, 0, 574, 574, 574, 574, 0, 0, 0, + 0, 572, 0, 574, 0, 574, 0, 0, 574, 0, + 0, 0, 0, 574, 0, 0, 0, 0, 0, 574, + 574, 574, 574, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 572, 0, 0, 0, 0, 572, + 0, 572, 572, 572, 0, 572, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 574, 0, 574, 574, 574, + 572, 572, 572, 572, 0, 0, 0, 0, 0, 0, + 0, 574, 574, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, + 0, 0, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, - 574, 574, 574, 574, 574, 574, 0, 0, 0, 572, - 574, 572, 0, 574, 574, 240, 241, 242, 0, 0, - 0, 0, 0, 854, 854, 854, 854, 854, 854, 854, - 574, 574, 574, 574, 0, 574, 574, 574, 574, 0, - 243, 574, 0, 574, 0, 574, 574, 574, 0, 0, - 574, 574, 0, 574, 574, 574, 0, 0, 0, 0, - 0, 0, 574, 916, 917, 918, 0, 919, 920, 921, - 922, 0, 923, 924, 198, 0, 925, 926, 927, 928, - 0, 0, 0, 929, 930, 0, 0, 0, 0, 0, - 574, 574, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 574, 574, - 0, 574, 574, 574, 0, 574, 574, 574, 574, 574, - 574, 574, 574, 574, 0, 574, 0, 0, 0, 0, - 0, 0, 0, 0, 244, 0, 245, 246, 247, 248, - 0, 0, 0, 0, 0, 0, 572, 572, 0, 572, - 0, 931, 0, 0, 572, 0, 0, 572, 0, 572, - 572, 572, 572, 572, 572, 572, 0, 572, 572, 572, - 572, 0, 572, 572, 0, 1653, 572, 572, 572, 572, - 0, 0, 572, 572, 572, 572, 0, 0, 0, 0, - 570, 0, 572, 0, 572, 0, 0, 572, 0, 0, - 0, 0, 572, 0, 0, 0, 0, 0, 572, 572, - 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 570, 0, 0, 0, 0, 570, 0, - 570, 570, 570, 0, 570, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 572, 0, 572, 572, 572, 570, - 570, 570, 570, 0, 0, 0, 0, 0, 0, 0, - 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, - 0, 570, 572, 572, 572, 572, 572, 572, 572, 572, + 574, 0, 0, 0, 572, 574, 572, 0, 574, 574, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 574, 574, 574, 574, 0, + 574, 574, 574, 574, 0, 0, 574, 1637, 574, 0, + 574, 574, 574, 0, 0, 574, 574, 0, 574, 574, + 574, 0, 1638, 0, 0, 0, 0, 574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1639, 0, + 0, 0, 0, 0, 0, 0, 0, 1640, 0, 0, + 0, 0, 0, 0, 0, 574, 574, 0, 0, 0, + 0, 1641, 1642, 1643, 1644, 0, 0, 0, 0, 0, + 0, 0, 0, 574, 574, 0, 574, 574, 574, 0, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 0, + 0, 0, 0, 1645, 1646, 1647, 1648, 1649, 1650, 1651, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 572, 572, 0, 572, 0, 0, 0, 0, 572, + 0, 0, 572, 0, 572, 572, 572, 572, 572, 572, + 572, 0, 572, 572, 572, 572, 0, 572, 572, 0, + 0, 572, 572, 572, 572, 0, 0, 572, 572, 572, + 572, 0, 0, 0, 0, 570, 0, 572, 0, 572, + 0, 0, 572, 0, 0, 0, 0, 572, 0, 0, + 0, 0, 0, 572, 572, 572, 572, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 570, 804, + 804, 0, 804, 570, 0, 570, 570, 570, 0, 570, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, + 0, 572, 572, 572, 570, 570, 570, 570, 0, 0, + 0, 0, 0, 0, 0, 572, 572, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 572, 0, 0, 0, 570, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 0, 0, 0, 570, 572, 570, 0, 572, 572, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 572, 572, 572, 572, 0, 572, - 572, 572, 572, 0, 0, 572, 1638, 572, 0, 572, - 572, 572, 0, 0, 572, 572, 0, 572, 572, 572, - 0, 1639, 0, 0, 0, 0, 572, 0, 0, 916, - 917, 918, 0, 919, 920, 921, 922, 1640, 923, 924, - 198, 0, 925, 926, 927, 928, 1641, 0, 0, 929, - 930, 0, 0, 0, 572, 572, 0, 0, 0, 0, - 1642, 1643, 1644, 1645, 0, 0, 0, 0, 0, 0, - 0, 0, 572, 572, 0, 572, 572, 572, 0, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 0, 572, - 0, 0, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 570, 570, 0, 570, 0, 0, 0, 931, 570, 0, - 0, 570, 0, 570, 570, 570, 570, 570, 570, 570, - 0, 570, 570, 570, 570, 0, 570, 570, 0, 0, - 570, 570, 570, 570, 0, 0, 570, 570, 570, 570, - 0, 0, 0, 0, 571, 0, 570, 0, 570, 0, - 0, 570, 0, 0, 0, 0, 570, 0, 0, 0, - 0, 0, 570, 570, 570, 570, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 571, 804, 804, - 0, 804, 571, 0, 571, 571, 571, 0, 571, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, - 570, 570, 570, 571, 571, 571, 571, 0, 0, 0, - 0, 0, 0, 0, 570, 570, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 570, 0, 0, 0, 571, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 572, 572, 572, 572, 572, 0, 0, 0, 570, 572, + 570, 0, 572, 572, 804, 804, 804, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, + 572, 572, 572, 0, 572, 572, 572, 572, 0, 804, + 572, 0, 572, 0, 572, 572, 572, 0, 0, 572, + 572, 0, 572, 572, 572, 0, 127, 0, 0, 0, + 0, 572, 1350, 1351, 1352, 0, 1353, 1354, 1355, 1356, + 0, 1357, 1358, 0, 0, 1359, 1360, 1361, 1362, 0, + 0, 0, 1363, 144, 0, 0, 0, 0, 0, 572, + 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 572, 572, 0, + 572, 572, 572, 0, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 0, 0, 0, 0, 0, 0, 0, + 0, 1364, 0, 804, 0, 804, 804, 804, 804, 0, + 0, 0, 0, 0, 0, 570, 570, 0, 570, 0, + 1365, 0, 0, 570, 0, 0, 570, 0, 570, 570, + 570, 570, 570, 570, 570, 0, 570, 570, 570, 570, + 0, 570, 570, 0, 0, 570, 570, 570, 570, 0, + 0, 570, 570, 570, 570, 0, 0, 0, 0, 571, + 0, 570, 0, 570, 0, 0, 570, 0, 0, 0, + 0, 570, 0, 0, 0, 0, 0, 570, 570, 570, + 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 571, 0, 0, 0, 0, 571, 0, 571, + 571, 571, 0, 571, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 570, 0, 570, 570, 570, 571, 571, + 571, 571, 0, 0, 0, 0, 0, 0, 0, 570, + 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, + 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 0, 0, 0, 571, 570, 571, - 0, 570, 570, 804, 804, 804, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 570, 570, - 570, 570, 0, 570, 570, 570, 570, 0, 804, 570, - 0, 570, 0, 570, 570, 570, 0, 0, 570, 570, - 0, 570, 570, 570, 0, 127, 0, 0, 0, 0, - 570, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 0, 1368, 144, 0, 0, 0, 0, 0, 570, 570, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 570, 570, 0, 570, - 570, 570, 0, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 0, 570, 0, 0, 0, 0, 0, 0, - 1369, 0, 804, 0, 804, 804, 804, 804, 0, 0, - 0, 0, 0, 0, 571, 571, 0, 571, 0, 1370, - 0, 0, 571, 0, 0, 571, 0, 571, 571, 571, - 571, 571, 571, 571, 0, 571, 571, 571, 571, 0, - 571, 571, 0, 0, 571, 571, 571, 571, 0, 0, - 571, 571, 571, 571, 0, 0, 0, 0, 573, 0, - 571, 0, 571, 0, 0, 571, 0, 0, 0, 0, - 571, 0, 0, 0, 0, 0, 571, 571, 571, 571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 573, 0, 0, 0, 0, 573, 0, 573, 573, - 573, 0, 573, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 571, 0, 571, 571, 571, 573, 573, 573, - 573, 0, 0, 0, 0, 0, 0, 0, 571, 571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 571, 0, 0, 0, 573, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 0, + 0, 0, 571, 570, 571, 0, 570, 570, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 570, 570, 570, 570, 0, 570, 570, + 570, 570, 0, 0, 570, 0, 570, 0, 570, 570, + 570, 0, 0, 570, 570, 0, 570, 570, 570, 0, + 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 570, 570, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 570, 570, 0, 570, 570, 570, 0, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, + 571, 0, 571, 0, 0, 0, 0, 571, 0, 0, + 571, 0, 571, 571, 571, 571, 571, 571, 571, 0, + 571, 571, 571, 571, 0, 571, 571, 0, 0, 571, + 571, 571, 571, 0, 0, 571, 571, 571, 571, 0, + 0, 0, 0, 573, 0, 571, 0, 571, 0, 0, + 571, 0, 0, 0, 0, 571, 0, 0, 0, 0, + 0, 571, 571, 571, 571, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, + 0, 573, 0, 573, 573, 573, 0, 573, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 0, 571, + 571, 571, 573, 573, 573, 573, 0, 0, 0, 0, + 0, 0, 0, 571, 571, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 571, 0, 0, 0, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 0, 0, - 0, 573, 571, 573, 0, 571, 571, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 571, 571, 571, 571, 0, 571, 571, 571, - 571, 0, 0, 571, 0, 571, 0, 571, 571, 571, - 0, 0, 571, 571, 0, 571, 571, 571, 0, 0, - 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 571, 571, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 571, 571, 0, 571, 571, 571, 0, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 0, 571, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 573, 573, - 0, 573, 0, 0, 0, 0, 573, 0, 0, 573, - 0, 573, 573, 573, 573, 573, 573, 573, 0, 573, - 573, 573, 573, 0, 573, 573, 0, 0, 573, 573, - 573, 573, 0, 0, 573, 573, 573, 573, 0, 0, - 0, 0, 709, 0, 573, 0, 573, 0, 0, 573, - 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, - 573, 573, 573, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, - 709, 0, 709, 709, 709, 0, 709, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 573, 0, 573, 573, - 573, 709, 709, 709, 709, 0, 0, 0, 0, 0, - 0, 0, 573, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, - 0, 0, 0, 709, 573, 573, 573, 573, 573, 573, + 571, 571, 571, 0, 0, 0, 573, 571, 573, 0, + 571, 571, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 571, 571, + 571, 0, 571, 571, 571, 571, 0, 0, 571, 0, + 571, 0, 571, 571, 571, 0, 0, 571, 571, 0, + 571, 571, 571, 0, 0, 0, 0, 0, 0, 571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 571, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 571, 571, 0, 571, 571, + 571, 0, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 573, 573, 0, 573, 0, 0, 0, + 0, 573, 0, 0, 573, 0, 573, 573, 573, 573, + 573, 573, 573, 0, 573, 573, 573, 573, 0, 573, + 573, 0, 0, 573, 573, 573, 573, 0, 0, 573, + 573, 573, 573, 0, 0, 0, 0, 709, 0, 573, + 0, 573, 0, 0, 573, 0, 0, 0, 0, 573, + 0, 0, 0, 0, 0, 573, 573, 573, 573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 709, 0, 0, 0, 0, 709, 0, 709, 709, 709, + 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 0, 573, 573, 573, 709, 709, 709, 709, + 0, 0, 0, 0, 0, 0, 0, 573, 573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 573, 0, 0, 0, 709, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 0, 0, 0, 709, 573, 709, 0, 573, - 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 573, 573, 573, 573, - 0, 573, 573, 573, 573, 0, 0, 573, 0, 573, - 0, 573, 573, 573, 0, 0, 573, 573, 0, 573, - 573, 573, 0, 0, 0, 0, 0, 0, 573, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 573, 573, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 573, 573, 0, 573, 573, 573, - 0, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 709, 709, 0, 709, 0, 0, 0, 0, - 709, 0, 0, 709, 0, 709, 709, 709, 709, 709, - 709, 709, 0, 709, 709, 709, 709, 0, 709, 709, - 0, 0, 709, 709, 709, 709, 0, 0, 709, 709, - 709, 0, 0, 0, 0, 0, 708, 0, 709, 0, - 709, 0, 0, 709, 0, 0, 0, 0, 709, 0, - 0, 0, 0, 0, 709, 709, 709, 709, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, - 0, 0, 0, 0, 708, 0, 708, 708, 708, 0, - 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 709, 0, 709, 709, 709, 708, 708, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 709, 709, 0, 0, + 573, 573, 573, 573, 573, 573, 573, 0, 0, 0, + 709, 573, 709, 0, 573, 573, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 573, 573, 573, 0, 573, 573, 573, 573, + 0, 0, 573, 0, 573, 0, 573, 573, 573, 0, + 0, 573, 573, 0, 573, 573, 573, 0, 0, 0, + 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 709, 0, 0, 0, 708, 709, 709, + 0, 573, 573, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, + 573, 0, 573, 573, 573, 0, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 709, 709, 0, + 709, 0, 0, 0, 0, 709, 0, 0, 709, 0, + 709, 709, 709, 709, 709, 709, 709, 0, 709, 709, + 709, 709, 0, 709, 709, 0, 0, 709, 709, 709, + 709, 0, 0, 709, 709, 709, 0, 0, 0, 0, + 0, 708, 0, 709, 0, 709, 0, 0, 709, 0, + 0, 0, 0, 709, 0, 0, 0, 0, 0, 709, + 709, 709, 709, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 708, 0, 0, 0, 0, 708, + 0, 708, 708, 708, 0, 708, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 709, 0, 709, 709, 709, + 708, 708, 708, 708, 0, 0, 0, 0, 0, 0, + 0, 709, 709, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 709, 0, + 0, 0, 708, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 0, 0, 0, 708, - 709, 708, 0, 709, 709, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 709, 709, 709, 709, 0, 709, 709, 709, 709, 0, - 0, 709, 0, 709, 0, 709, 709, 709, 0, 0, - 709, 709, 0, 709, 709, 709, 0, 0, 0, 0, - 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 709, 709, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 709, 709, - 0, 709, 709, 709, 0, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 0, 709, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 708, 708, 0, 708, - 0, 0, 0, 0, 708, 0, 0, 708, 0, 708, - 708, 708, 708, 708, 708, 708, 0, 708, 708, 708, - 708, 0, 708, 708, 0, 0, 708, 708, 708, 708, - 0, 0, 708, 708, 708, 0, 0, 0, 0, 0, - 716, 0, 708, 0, 708, 0, 0, 708, 0, 0, - 0, 0, 708, 0, 0, 0, 0, 0, 708, 708, - 708, 708, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 716, 0, 0, 0, 0, 0, 0, - 716, 716, 0, 0, 716, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 708, 708, 708, 716, - 0, 716, 716, 0, 0, 0, 0, 0, 0, 0, - 708, 708, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 708, 0, 0, - 0, 0, 708, 708, 708, 708, 708, 708, 708, 708, + 709, 0, 0, 0, 708, 709, 708, 0, 709, 709, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 709, 709, 709, 709, 0, + 709, 709, 709, 709, 0, 0, 709, 0, 709, 0, + 709, 709, 709, 0, 0, 709, 709, 0, 709, 709, + 709, 0, 0, 0, 0, 0, 0, 709, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 709, 709, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 709, 709, 0, 709, 709, 709, 0, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 708, 708, 0, 708, 0, 0, 0, 0, 708, + 0, 0, 708, 0, 708, 708, 708, 708, 708, 708, + 708, 0, 708, 708, 708, 708, 0, 708, 708, 0, + 0, 708, 708, 708, 708, 0, 0, 708, 708, 708, + 0, 0, 0, 0, 0, 719, 0, 708, 0, 708, + 0, 0, 708, 0, 0, 0, 0, 708, 0, 0, + 0, 0, 0, 708, 708, 708, 708, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 719, 0, + 0, 0, 0, 719, 0, 0, 719, 719, 0, 719, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 0, 708, 708, 708, 719, 719, 719, 719, 0, 0, + 0, 0, 0, 0, 0, 708, 708, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 708, 0, 0, 0, 719, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 0, 0, 0, 716, 708, 716, 0, 708, 708, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 708, 708, 708, 708, 0, 708, - 708, 708, 708, 0, 0, 708, 0, 708, 0, 708, - 708, 708, 0, 0, 708, 708, 0, 708, 708, 708, - 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 708, 708, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 708, 708, 0, 708, 708, 708, 0, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 0, 708, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 716, 716, 0, 716, 0, 0, 0, 0, 716, 0, - 0, 716, 0, 716, 716, 716, 716, 716, 716, 716, - 0, 716, 716, 716, 716, 0, 716, 716, 0, 0, - 716, 716, 716, 716, 0, 0, 716, 716, 716, 0, - 0, 52, 0, 0, 0, 0, 716, 0, 716, 0, - 0, 716, 0, 0, 0, 0, 716, 0, 0, 0, - 0, 0, 716, 716, 716, 716, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 299, 0, 299, 299, - 299, 0, 0, 0, 0, 0, 0, 0, 716, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 716, 716, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 299, 299, - 0, 716, 0, 0, 0, 0, 716, 716, 716, 716, + 708, 708, 708, 708, 708, 0, 0, 0, 719, 708, + 719, 0, 708, 708, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 708, 708, 708, 0, 708, 708, 708, 708, 0, 0, + 708, 0, 708, 0, 708, 708, 708, 0, 0, 708, + 708, 0, 708, 708, 708, 0, 0, 0, 0, 0, + 0, 708, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, + 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 708, 708, 0, + 708, 708, 708, 0, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 719, 719, 0, 719, 0, + 0, 0, 0, 719, 0, 0, 719, 0, 719, 719, + 719, 719, 719, 719, 719, 0, 719, 719, 719, 719, + 0, 719, 719, 0, 0, 719, 719, 719, 719, 0, + 0, 719, 719, 719, 0, 0, 0, 0, 0, 717, + 0, 719, 0, 719, 0, 0, 719, 0, 0, 0, + 0, 719, 0, 0, 0, 0, 0, 719, 719, 719, + 719, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 717, 0, 0, 0, 0, 717, 0, 0, + 717, 717, 0, 717, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 719, 0, 719, 719, 719, 717, 717, + 717, 717, 0, 0, 0, 0, 0, 0, 0, 719, + 719, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 719, 0, 0, 0, + 717, 719, 719, 719, 719, 719, 719, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 719, 719, 0, + 0, 0, 717, 719, 717, 0, 719, 719, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 719, 719, 719, 719, 0, 719, 719, + 719, 719, 0, 0, 719, 0, 719, 0, 719, 719, + 719, 0, 0, 719, 719, 0, 719, 719, 719, 0, + 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 719, 719, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 719, 719, 0, 719, 719, 719, 0, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 717, + 717, 0, 717, 0, 0, 0, 0, 717, 0, 0, + 717, 0, 717, 717, 717, 717, 717, 717, 717, 0, + 717, 717, 717, 717, 0, 717, 717, 0, 0, 717, + 717, 717, 717, 0, 0, 717, 717, 717, 0, 0, + 0, 0, 0, 720, 0, 717, 0, 717, 0, 0, + 717, 0, 0, 0, 0, 717, 0, 0, 0, 0, + 0, 717, 717, 717, 717, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 720, 0, 0, 0, + 0, 720, 0, 0, 720, 720, 0, 720, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 717, 0, 717, + 717, 717, 720, 720, 720, 720, 0, 0, 0, 0, + 0, 0, 0, 717, 717, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 717, 0, 0, 0, 720, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 0, 0, 0, 720, 717, 720, 0, + 717, 717, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 717, 717, 717, + 717, 0, 717, 717, 717, 717, 0, 0, 717, 0, + 717, 0, 717, 717, 717, 0, 0, 717, 717, 0, + 717, 717, 717, 0, 0, 0, 0, 0, 0, 717, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 717, 717, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 717, 717, 0, 717, 717, + 717, 0, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 720, 720, 0, 720, 0, 0, 0, + 0, 720, 0, 0, 720, 0, 720, 720, 720, 720, + 720, 720, 720, 0, 720, 720, 720, 720, 0, 720, + 720, 0, 0, 720, 720, 720, 720, 0, 0, 720, + 720, 720, 0, 0, 0, 0, 0, 721, 0, 720, + 0, 720, 0, 0, 720, 0, 0, 0, 0, 720, + 0, 0, 0, 0, 0, 720, 720, 720, 720, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 721, 0, 0, 0, 0, 721, 0, 0, 721, 721, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 720, 0, 720, 720, 720, 721, 721, 721, 721, + 0, 0, 0, 0, 0, 0, 0, 720, 720, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 720, 0, 0, 0, 721, 720, + 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, + 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, + 720, 720, 720, 720, 720, 720, 720, 0, 0, 0, + 721, 720, 721, 0, 720, 720, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 720, 720, 720, 720, 0, 720, 720, 720, 720, + 0, 0, 720, 0, 720, 0, 720, 720, 720, 0, + 0, 720, 720, 0, 720, 720, 720, 0, 0, 0, + 0, 0, 0, 720, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 720, 720, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 720, + 720, 0, 720, 720, 720, 0, 720, 720, 720, 720, + 720, 720, 720, 720, 720, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 721, 721, 0, + 721, 0, 0, 0, 0, 721, 0, 0, 721, 0, + 721, 721, 721, 721, 721, 721, 721, 0, 721, 721, + 721, 721, 0, 721, 721, 0, 0, 721, 721, 721, + 721, 0, 0, 721, 721, 721, 0, 0, 0, 0, + 0, 722, 0, 721, 0, 721, 0, 0, 721, 0, + 0, 0, 0, 721, 0, 0, 0, 0, 0, 721, + 721, 721, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 722, 0, 0, 0, 0, 722, + 0, 0, 722, 722, 0, 722, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 721, 0, 721, 721, 721, + 722, 722, 722, 722, 0, 0, 0, 0, 0, 0, + 0, 721, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, + 0, 0, 722, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 0, 0, 0, 722, 721, 722, 0, 721, 721, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 721, 721, 721, 721, 0, + 721, 721, 721, 721, 0, 0, 721, 0, 721, 0, + 721, 721, 721, 0, 0, 721, 721, 0, 721, 721, + 721, 0, 0, 0, 0, 0, 0, 721, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 721, 721, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 721, 721, 0, 721, 721, 721, 0, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 722, 722, 0, 722, 0, 0, 0, 0, 722, + 0, 0, 722, 0, 722, 722, 722, 722, 722, 722, + 722, 0, 722, 722, 722, 722, 0, 722, 722, 0, + 0, 722, 722, 722, 722, 0, 0, 722, 722, 722, + 0, 0, 0, 0, 0, 723, 0, 722, 0, 722, + 0, 0, 722, 0, 0, 0, 0, 722, 0, 0, + 0, 0, 0, 722, 722, 722, 722, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 723, 0, + 0, 0, 0, 723, 0, 0, 723, 723, 0, 723, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, + 0, 722, 722, 722, 723, 723, 723, 723, 0, 0, + 0, 0, 0, 0, 0, 722, 722, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 722, 0, 0, 0, 723, 722, 722, 722, + 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, + 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, + 722, 722, 722, 722, 722, 0, 0, 0, 723, 722, + 723, 0, 722, 722, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, + 722, 722, 722, 0, 722, 722, 722, 722, 0, 0, + 722, 0, 722, 0, 722, 722, 722, 0, 0, 722, + 722, 0, 722, 722, 722, 0, 0, 0, 0, 0, + 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, + 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 722, 0, + 722, 722, 722, 0, 722, 722, 722, 722, 722, 722, + 722, 722, 722, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 723, 723, 0, 723, 0, + 0, 0, 0, 723, 0, 0, 723, 0, 723, 723, + 723, 723, 723, 723, 723, 0, 723, 723, 723, 723, + 0, 723, 723, 0, 0, 723, 723, 723, 723, 0, + 0, 723, 723, 723, 0, 0, 0, 0, 0, 724, + 0, 723, 0, 723, 0, 0, 723, 0, 0, 0, + 0, 723, 0, 0, 0, 0, 0, 723, 723, 723, + 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 724, 0, 0, 0, 0, 724, 0, 0, + 724, 724, 0, 724, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 723, 0, 723, 723, 723, 724, 724, + 724, 724, 0, 0, 0, 0, 0, 0, 0, 723, + 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 723, 0, 0, 0, + 724, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 0, + 0, 0, 724, 723, 724, 0, 723, 723, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 723, 723, 723, 723, 0, 723, 723, + 723, 723, 0, 0, 723, 0, 723, 0, 723, 723, + 723, 0, 0, 723, 723, 0, 723, 723, 723, 0, + 0, 0, 0, 0, 0, 723, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 723, 723, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 723, 723, 0, 723, 723, 723, 0, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, + 724, 0, 724, 0, 0, 0, 0, 724, 0, 0, + 724, 0, 724, 724, 724, 724, 724, 724, 724, 0, + 724, 724, 724, 724, 0, 724, 724, 0, 0, 724, + 724, 724, 724, 0, 0, 724, 724, 724, 0, 0, + 0, 0, 0, 725, 0, 724, 0, 724, 0, 0, + 724, 0, 0, 0, 0, 724, 0, 0, 0, 0, + 0, 724, 724, 724, 724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 725, 0, 0, 0, + 0, 725, 0, 0, 725, 725, 0, 725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 724, 0, 724, + 724, 724, 725, 725, 725, 725, 0, 0, 0, 0, + 0, 0, 0, 724, 724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 724, 0, 0, 0, 725, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 0, 0, 0, 725, 724, 725, 0, + 724, 724, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 724, 724, 724, + 724, 0, 724, 724, 724, 724, 0, 0, 724, 0, + 724, 0, 724, 724, 724, 0, 0, 724, 724, 0, + 724, 724, 724, 0, 0, 0, 0, 0, 0, 724, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 724, 724, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 724, 724, 0, 724, 724, + 724, 0, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 725, 725, 0, 725, 0, 0, 0, + 0, 725, 0, 0, 725, 0, 725, 725, 725, 725, + 725, 725, 725, 0, 725, 725, 725, 725, 0, 725, + 725, 0, 0, 725, 725, 725, 725, 0, 0, 725, + 725, 725, 0, 0, 0, 0, 0, 730, 0, 725, + 0, 725, 0, 0, 725, 0, 0, 0, 0, 725, + 0, 0, 0, 0, 0, 725, 725, 725, 725, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 730, 0, 0, 0, 0, 730, 0, 0, 730, 730, + 0, 730, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 725, 0, 725, 725, 725, 730, 730, 730, 730, + 0, 0, 0, 0, 0, 0, 0, 725, 725, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 725, 0, 0, 0, 730, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 0, 0, 0, + 730, 725, 730, 0, 725, 725, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 725, 725, 725, 725, 0, 725, 725, 725, 725, + 0, 0, 725, 0, 725, 0, 725, 725, 725, 0, + 0, 725, 725, 0, 725, 725, 725, 0, 0, 0, + 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 725, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 725, + 725, 0, 725, 725, 725, 0, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 730, 730, 0, + 730, 0, 0, 0, 0, 730, 0, 0, 730, 0, + 730, 730, 730, 730, 730, 730, 730, 0, 730, 730, + 730, 730, 0, 730, 730, 0, 0, 730, 730, 730, + 730, 0, 0, 730, 730, 730, 0, 0, 0, 0, + 0, 731, 0, 730, 0, 730, 0, 0, 730, 0, + 0, 0, 0, 730, 0, 0, 0, 0, 0, 730, + 730, 730, 730, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 731, 0, 0, 0, 0, 731, + 0, 0, 731, 731, 0, 731, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 730, 0, 730, 730, 730, + 731, 731, 731, 731, 0, 0, 0, 0, 0, 0, + 0, 730, 730, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, + 0, 0, 731, 730, 730, 730, 730, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, + 730, 0, 0, 0, 731, 730, 731, 0, 730, 730, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 730, 730, 730, 730, 0, + 730, 730, 730, 730, 0, 0, 730, 0, 730, 0, + 730, 730, 730, 0, 0, 730, 730, 0, 730, 730, + 730, 0, 0, 0, 0, 0, 0, 730, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 730, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 730, 0, 730, 730, 730, 0, + 730, 730, 730, 730, 730, 730, 730, 730, 730, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 731, 731, 0, 731, 0, 0, 0, 0, 731, + 0, 0, 731, 0, 731, 731, 731, 731, 731, 731, + 731, 0, 731, 731, 731, 731, 0, 731, 731, 0, + 0, 731, 731, 731, 731, 0, 0, 731, 731, 731, + 0, 0, 0, 0, 0, 732, 0, 731, 0, 731, + 0, 0, 731, 0, 0, 0, 0, 731, 0, 0, + 0, 0, 0, 731, 731, 731, 731, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, + 0, 0, 0, 732, 0, 0, 732, 732, 0, 732, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 731, + 0, 731, 731, 731, 732, 732, 732, 732, 0, 0, + 0, 0, 0, 0, 0, 731, 731, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 731, 0, 0, 0, 732, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 0, 0, 0, 732, 731, + 732, 0, 731, 731, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 731, + 731, 731, 731, 0, 731, 731, 731, 731, 0, 0, + 731, 0, 731, 0, 731, 731, 731, 0, 0, 731, + 731, 0, 731, 731, 731, 0, 0, 0, 0, 0, + 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 731, + 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 731, 731, 0, + 731, 731, 731, 0, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 732, 732, 0, 732, 0, + 0, 0, 0, 732, 0, 0, 732, 0, 732, 732, + 732, 732, 732, 732, 732, 0, 732, 732, 732, 732, + 0, 732, 732, 0, 0, 732, 732, 732, 732, 0, + 0, 732, 732, 732, 0, 0, 0, 0, 0, 733, + 0, 732, 0, 732, 0, 0, 732, 0, 0, 0, + 0, 732, 0, 0, 0, 0, 0, 732, 732, 732, + 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 733, 0, 0, 0, 0, 733, 0, 0, + 733, 733, 0, 733, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 732, 0, 732, 732, 732, 733, 733, + 733, 733, 0, 0, 0, 0, 0, 0, 0, 732, + 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, + 733, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 0, + 0, 0, 733, 732, 733, 0, 732, 732, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 732, 732, 732, 732, 0, 732, 732, + 732, 732, 0, 0, 732, 0, 732, 0, 732, 732, + 732, 0, 0, 732, 732, 0, 732, 732, 732, 0, + 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 732, 732, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 732, 732, 0, 732, 732, 732, 0, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, + 733, 0, 733, 0, 0, 0, 0, 733, 0, 0, + 733, 0, 733, 733, 733, 733, 733, 733, 733, 0, + 733, 733, 733, 733, 0, 733, 733, 0, 0, 733, + 733, 733, 733, 0, 0, 733, 733, 733, 0, 0, + 0, 0, 0, 726, 0, 733, 0, 733, 0, 0, + 733, 0, 0, 0, 0, 733, 0, 0, 0, 0, + 0, 733, 733, 733, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 726, 0, 0, 0, + 0, 726, 0, 0, 726, 726, 0, 726, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 733, 0, 733, + 733, 733, 726, 726, 726, 726, 0, 0, 0, 0, + 0, 0, 0, 733, 733, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 733, 0, 0, 0, 726, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 0, 0, 0, 726, 733, 726, 0, + 733, 733, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 733, 733, 733, + 733, 0, 733, 733, 733, 733, 0, 0, 733, 0, + 733, 0, 733, 733, 733, 0, 0, 733, 733, 0, + 733, 733, 733, 0, 0, 0, 0, 0, 0, 733, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 733, 733, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 733, 733, 0, 733, 733, + 733, 0, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 726, 726, 0, 726, 0, 0, 0, + 0, 726, 0, 0, 726, 0, 726, 726, 726, 726, + 726, 726, 726, 0, 726, 726, 726, 726, 0, 726, + 726, 0, 0, 726, 726, 726, 726, 0, 0, 726, + 726, 726, 0, 0, 0, 0, 0, 727, 0, 726, + 0, 726, 0, 0, 726, 0, 0, 0, 0, 726, + 0, 0, 0, 0, 0, 726, 726, 726, 726, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 727, 0, 0, 0, 0, 727, 0, 0, 727, 727, + 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 726, 0, 726, 726, 726, 727, 727, 727, 727, + 0, 0, 0, 0, 0, 0, 0, 726, 726, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 726, 0, 0, 0, 727, 726, + 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 0, 0, 0, + 727, 726, 727, 0, 726, 726, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 726, 726, 726, 726, 0, 726, 726, 726, 726, + 0, 0, 726, 0, 726, 0, 726, 726, 726, 0, + 0, 726, 726, 0, 726, 726, 726, 0, 0, 0, + 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 726, 726, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 726, + 726, 0, 726, 726, 726, 0, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 727, 727, 0, + 727, 0, 0, 0, 0, 727, 0, 0, 727, 0, + 727, 727, 727, 727, 727, 727, 727, 0, 727, 727, + 727, 727, 0, 727, 727, 0, 0, 727, 727, 727, + 727, 0, 0, 727, 727, 727, 0, 0, 0, 0, + 0, 728, 0, 727, 0, 727, 0, 0, 727, 0, + 0, 0, 0, 727, 0, 0, 0, 0, 0, 727, + 727, 727, 727, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 728, 0, 0, 0, 0, 728, + 0, 0, 728, 728, 0, 728, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 727, 0, 727, 727, 727, + 728, 728, 728, 728, 0, 0, 0, 0, 0, 0, + 0, 727, 727, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, + 0, 0, 728, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, + 727, 0, 0, 0, 728, 727, 728, 0, 727, 727, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 727, 727, 727, 727, 0, + 727, 727, 727, 727, 0, 0, 727, 0, 727, 0, + 727, 727, 727, 0, 0, 727, 727, 0, 727, 727, + 727, 0, 0, 0, 0, 0, 0, 727, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 727, 727, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 727, 727, 0, 727, 727, 727, 0, + 727, 727, 727, 727, 727, 727, 727, 727, 727, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 728, 728, 0, 728, 0, 0, 0, 0, 728, + 0, 0, 728, 0, 728, 728, 728, 728, 728, 728, + 728, 0, 728, 728, 728, 728, 0, 728, 728, 0, + 0, 728, 728, 728, 728, 0, 0, 728, 728, 728, + 0, 0, 0, 0, 0, 729, 0, 728, 0, 728, + 0, 0, 728, 0, 0, 0, 0, 728, 0, 0, + 0, 0, 0, 728, 728, 728, 728, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, + 0, 0, 0, 729, 0, 0, 729, 729, 0, 729, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, + 0, 728, 728, 728, 729, 729, 729, 729, 0, 0, + 0, 0, 0, 0, 0, 728, 728, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 728, 0, 0, 0, 729, 728, 728, 728, + 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, + 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, + 728, 728, 728, 728, 728, 0, 0, 0, 729, 728, + 729, 0, 728, 728, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, + 728, 728, 728, 0, 728, 728, 728, 728, 0, 0, + 728, 0, 728, 0, 728, 728, 728, 0, 0, 728, + 728, 0, 728, 728, 728, 0, 0, 0, 0, 0, + 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, + 728, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 728, 728, 0, + 728, 728, 728, 0, 728, 728, 728, 728, 728, 728, + 728, 728, 728, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 729, 729, 0, 729, 0, + 0, 0, 0, 729, 0, 0, 729, 0, 729, 729, + 729, 729, 729, 729, 729, 0, 729, 729, 729, 729, + 0, 729, 729, 0, 0, 729, 729, 729, 729, 0, + 0, 729, 729, 729, 0, 0, 0, 0, 0, 716, + 0, 729, 0, 729, 0, 0, 729, 0, 0, 0, + 0, 729, 0, 0, 0, 0, 0, 729, 729, 729, + 729, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 716, 0, 0, 0, 0, 0, 0, 716, + 716, 0, 0, 716, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 729, 0, 729, 729, 729, 716, 0, + 716, 716, 0, 0, 0, 0, 0, 0, 0, 729, + 729, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 729, 0, 0, 0, + 0, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 729, 729, 0, + 0, 0, 716, 729, 716, 0, 729, 729, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 729, 729, 729, 729, 0, 729, 729, + 729, 729, 0, 0, 729, 0, 729, 0, 729, 729, + 729, 0, 0, 729, 729, 0, 729, 729, 729, 0, + 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 729, 729, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 729, 729, 0, 729, 729, 729, 0, 729, 729, + 729, 729, 729, 729, 729, 729, 729, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, + 716, 0, 716, 0, 0, 0, 0, 716, 0, 0, + 716, 0, 716, 716, 716, 716, 716, 716, 716, 0, + 716, 716, 716, 716, 0, 716, 716, 0, 0, 716, + 716, 716, 716, 0, 0, 716, 716, 716, 0, 0, + 52, 0, 0, 0, 0, 716, 0, 716, 0, 0, + 716, 0, 0, 0, 0, 716, 0, 0, 0, 0, + 0, 716, 716, 716, 716, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 299, 0, 299, 299, 299, + 0, 0, 0, 0, 0, 0, 0, 716, 0, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 716, 716, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 299, 299, 0, + 716, 0, 0, 0, 0, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 52, 0, 52, 0, 716, 0, - 0, 716, 716, 299, 299, 299, 0, 299, 0, 0, - 299, 0, 0, 0, 0, 0, 0, 0, 716, 716, - 716, 716, 0, 716, 716, 716, 716, 0, 0, 716, - 0, 716, 0, 716, 716, 716, 0, 0, 716, 716, - 0, 716, 716, 716, 0, 0, 0, 0, 0, 0, + 716, 716, 716, 52, 0, 52, 0, 716, 0, 0, + 716, 716, 299, 299, 299, 0, 299, 0, 0, 299, + 0, 0, 0, 0, 0, 0, 0, 716, 716, 716, + 716, 0, 716, 716, 716, 716, 0, 0, 716, 0, + 716, 0, 716, 716, 716, 0, 0, 716, 716, 0, + 716, 716, 716, 0, 0, 0, 0, 0, 0, 716, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 716, 716, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 716, 716, 0, 716, 716, + 716, 0, 716, 716, 716, 716, 716, 716, 716, 716, 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 716, 716, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 716, 716, 0, 716, - 716, 716, 0, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 0, 716, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 52, 52, - 52, 0, 52, 52, 52, 52, 0, 52, 52, 52, - 0, 52, 52, 52, 52, 0, 0, 52, 52, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 585, 127, - 586, 54, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 52, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 52, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 147, 148, 149, 0, 52, 52, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 52, 52, 52, + 52, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 52, 52, 52, + 0, 52, 52, 52, 52, 0, 52, 52, 52, 0, + 52, 52, 52, 52, 0, 0, 52, 52, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 587, 127, 588, + 54, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 52, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 98, 143, 144, 0, 0, 0, 52, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 147, 148, 149, 0, 52, 52, 0, 0, 0, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 0, 0, 0, 52, 52, + 52, 52, 52, 52, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 54, 0, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 52, 52, 52, 0, 52, 52, 52, 52, 0, 0, - 52, 0, 52, 0, 52, 52, 52, 52, 0, 52, - 52, 0, 52, 52, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, + 52, 52, 52, 54, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 52, 52, 0, 52, 52, 52, 52, 0, 0, 52, + 0, 52, 0, 52, 52, 52, 52, 0, 52, 52, + 0, 52, 52, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 52, 0, 0, 0, 0, 0, 0, 0, 372, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 52, 0, - 52, 52, 52, 0, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 0, 0, 0, 0, 373, 0, 0, - 0, 374, 0, 0, 375, 376, 0, 0, 0, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 54, 0, 0, 54, 0, 0, 389, 0, 0, - 390, 155, 0, 0, 54, 0, 0, 391, 54, 54, - 54, 0, 54, 54, 54, 54, 392, 54, 54, 54, - 0, 54, 54, 54, 54, 0, 0, 54, 54, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 127, - 266, 55, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 54, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 54, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 147, 148, 149, 0, 54, 54, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 54, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, + 0, 0, 0, 0, 0, 0, 0, 370, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 52, 0, 52, + 52, 52, 0, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 156, 0, 0, 0, 371, 0, 0, 0, + 372, 0, 0, 373, 374, 0, 0, 0, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 54, 0, 0, 54, 0, 0, 387, 0, 0, 388, + 0, 0, 0, 54, 0, 0, 389, 54, 54, 54, + 0, 54, 54, 54, 54, 390, 54, 54, 54, 0, + 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 277, 127, 278, + 55, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 54, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 54, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 147, 148, 149, 0, 54, 54, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 0, 0, 0, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 55, 0, 55, 0, 0, 835, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 54, 54, 0, 54, 54, 54, 54, 0, 0, - 54, 0, 54, 0, 54, 54, 54, 54, 0, 54, - 54, 0, 54, 54, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 105, 0, 105, 0, 0, + 54, 54, 54, 55, 0, 55, 0, 0, 835, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, + 0, 54, 0, 54, 54, 54, 54, 0, 54, 54, + 127, 54, 54, 54, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 0, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 146, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 54, 54, 0, 54, + 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 226, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 55, 55, 55, + 0, 55, 55, 55, 55, 0, 55, 55, 55, 0, + 55, 55, 55, 55, 0, 0, 55, 55, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 56, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 55, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 55, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 147, 148, 149, 0, 55, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 54, 0, 0, 0, 0, 0, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, - 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 0, 0, 0, 0, 105, 0, 0, - 0, 105, 0, 0, 105, 105, 0, 0, 0, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 55, 0, 0, 55, 0, 0, 105, 0, 0, - 105, 155, 0, 0, 55, 0, 0, 105, 55, 55, - 55, 0, 55, 55, 55, 55, 105, 55, 55, 55, - 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 0, 56, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 55, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 55, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 147, 148, 149, 0, 55, 55, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 55, 55, 55, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, + 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 56, 0, 56, 0, 0, 909, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, - 55, 0, 55, 0, 55, 55, 55, 55, 0, 55, - 55, 0, 55, 55, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 56, 0, 56, 0, 0, 909, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, + 0, 55, 0, 55, 55, 55, 55, 0, 55, 55, + 226, 55, 55, 55, 226, 226, 226, 226, 226, 0, + 226, 226, 226, 226, 0, 226, 226, 0, 0, 226, + 226, 226, 226, 0, 0, 0, 226, 226, 0, 0, + 0, 0, 0, 0, 0, 226, 0, 226, 55, 55, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 226, 226, 226, 0, 55, 55, 0, 55, + 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 0, 56, 56, 56, + 0, 56, 56, 56, 56, 0, 56, 56, 56, 0, + 56, 56, 56, 56, 0, 0, 56, 56, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 53, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 56, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 0, 0, 143, 144, 0, 0, 0, 56, + 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 147, 148, 149, 0, 56, 56, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 55, 0, - 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 56, 0, 0, 0, 0, 0, - 0, 155, 0, 0, 56, 0, 0, 0, 56, 56, - 56, 0, 56, 56, 56, 56, 0, 56, 56, 56, - 0, 56, 56, 56, 56, 0, 0, 56, 56, 56, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 0, 53, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 56, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 0, 143, 144, 0, 0, 0, - 56, 0, 0, 0, 145, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 147, 148, 149, 0, 56, 56, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 56, 56, 56, + 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 0, 0, 0, 56, 56, + 56, 56, 56, 56, 0, 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 53, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 56, 56, 56, 0, 56, 56, 56, 56, 0, 0, - 56, 0, 56, 0, 56, 56, 56, 56, 0, 56, - 56, 0, 56, 56, 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 56, 0, - 56, 56, 56, 0, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 0, 0, 0, 0, 0, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 53, 0, 0, 0, 0, 0, - 0, 155, 0, 0, 53, 0, 0, 0, 53, 53, - 53, 0, 53, 53, 53, 53, 0, 53, 53, 53, - 0, 53, 53, 53, 53, 0, 0, 53, 53, 53, - 0, 0, 0, 61, 0, 61, 0, 0, 0, 0, - 34, 397, 97, 0, 0, 0, 0, 99, 0, 100, - 0, 0, 0, 53, 0, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 102, 398, 0, 399, 400, 401, 402, - 403, 0, 0, 0, 0, 404, 0, 0, 103, 0, - 53, 0, 0, 0, 405, 53, 53, 0, 0, 406, - 0, 407, 0, 0, 0, 0, 547, 0, 0, 0, - 0, 0, 0, 408, 409, 410, 411, 412, 413, 414, - 415, 0, 0, 0, 0, 0, 416, 53, 53, 53, + 56, 56, 56, 53, 0, 53, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 56, 56, 0, 56, 56, 56, 56, 0, 0, 56, + 0, 56, 0, 56, 56, 56, 56, 0, 56, 56, + 0, 56, 56, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 105, 0, 105, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, + 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 56, 0, 56, + 56, 56, 0, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 0, 0, 0, 0, 105, 0, 61, 0, + 105, 0, 0, 105, 105, 0, 0, 0, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 53, 0, 0, 53, 0, 0, 105, 0, 0, 105, + 0, 0, 0, 53, 0, 0, 105, 53, 53, 53, + 0, 53, 53, 53, 53, 105, 53, 53, 53, 0, + 53, 53, 53, 53, 0, 0, 53, 53, 53, 0, + 0, 0, 61, 0, 61, 0, 0, 0, 233, 34, + 0, 0, 233, 233, 233, 233, 233, 0, 233, 233, + 233, 233, 53, 233, 233, 0, 0, 233, 233, 233, + 233, 0, 0, 0, 233, 233, 0, 0, 0, 53, + 0, 0, 0, 233, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 233, 233, 233, 0, 53, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 233, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 0, 0, 0, 53, 53, + 53, 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 0, 62, 0, 0, 0, 0, - 61, 0, 0, 61, 0, 0, 0, 0, 0, 53, - 53, 53, 53, 61, 53, 53, 53, 53, 0, 0, - 53, 0, 53, 0, 53, 53, 53, 53, 0, 53, - 53, 0, 53, 53, 53, 0, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 53, - 53, 0, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 0, 0, 0, 2, 0, 0, 53, 53, 0, - 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 538, 0, 0, 61, 61, 61, 61, + 53, 53, 53, 0, 62, 0, 0, 0, 0, 61, + 0, 0, 61, 0, 0, 0, 0, 0, 53, 53, + 53, 53, 61, 53, 53, 53, 53, 0, 0, 53, + 0, 53, 0, 53, 53, 53, 53, 0, 53, 53, + 0, 53, 53, 53, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 53, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, + 0, 0, 0, 2, 0, 0, 53, 53, 0, 53, + 53, 53, 0, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 543, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 0, 0, 0, 61, 61, 61, + 61, 61, 61, 0, 0, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 61, - 61, 61, 0, 61, 61, 61, 61, 0, 0, 61, - 0, 61, 0, 61, 61, 61, 61, 0, 61, 61, - 0, 61, 61, 61, 0, 0, 0, 0, 0, 0, - 539, 0, 5, 6, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 540, 0, 0, 0, 0, 541, - 0, 0, 8, 9, 0, 0, 0, 0, 61, 61, - 0, 0, 0, 0, 0, 62, 0, 0, 62, 10, - 11, 12, 13, 0, 542, 543, 61, 61, 62, 61, - 61, 61, 0, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 0, 0, 544, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 65, 0, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 545, - 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 61, 61, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 61, 61, + 61, 0, 61, 61, 61, 61, 0, 0, 61, 0, + 61, 0, 61, 61, 61, 61, 0, 61, 61, 0, + 61, 61, 61, 0, 0, 0, 0, 0, 0, 544, + 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 545, 0, 0, 0, 0, 546, 0, + 0, 8, 9, 0, 0, 0, 0, 61, 61, 0, + 0, 0, 0, 0, 62, 0, 0, 62, 10, 11, + 12, 13, 0, 547, 548, 61, 61, 62, 61, 61, + 61, 0, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 0, 0, 549, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 65, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 550, 551, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, - 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 0, 66, - 0, 0, 0, 0, 65, 0, 0, 65, 0, 0, - 0, 0, 0, 62, 62, 62, 62, 65, 62, 62, - 62, 62, 0, 0, 62, 0, 62, 0, 62, 62, - 62, 62, 0, 62, 62, 0, 62, 62, 62, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 0, 62, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, - 0, 62, 62, 0, 62, 62, 62, 0, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 66, 0, 0, 0, 0, 0, + 62, 62, 62, 62, 62, 62, 62, 0, 66, 0, + 0, 0, 0, 65, 0, 0, 65, 0, 0, 0, + 0, 0, 62, 62, 62, 62, 65, 62, 62, 62, + 62, 0, 0, 62, 0, 62, 0, 62, 62, 62, + 62, 0, 62, 62, 0, 62, 62, 62, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 62, 62, 0, 62, 62, 62, 0, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, - 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, - 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 65, 65, 65, 0, 65, 65, 65, - 65, 0, 0, 65, 0, 65, 0, 65, 65, 65, - 65, 0, 65, 65, 0, 65, 65, 65, 0, 0, - 0, 0, 0, 585, 585, 0, 0, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 585, 0, 585, 0, 0, 0, 0, 0, - 0, 0, 65, 65, 0, 0, 0, 0, 0, 66, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 65, 65, 66, 65, 65, 65, 0, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 585, 0, 585, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 66, 66, 66, 66, 66, + 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 65, 65, 0, 65, 65, 65, 65, + 0, 0, 65, 0, 65, 0, 65, 65, 65, 65, + 0, 65, 65, 0, 65, 65, 65, 0, 0, 0, + 0, 0, 585, 585, 0, 0, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 585, 0, 585, 0, 0, 0, 0, 0, 0, + 0, 65, 65, 0, 0, 0, 0, 0, 66, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 65, + 65, 66, 65, 65, 65, 0, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, + 0, 395, 97, 0, 66, 0, 0, 99, 0, 100, + 0, 0, 0, 0, 0, 585, 101, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 102, 396, 1117, 397, 398, 399, 400, + 401, 0, 0, 0, 0, 402, 0, 66, 103, 0, + 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, + 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 406, 407, 408, 409, 410, 411, 412, + 413, 0, 0, 0, 0, 0, 414, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 0, 0, 0, 66, 66, 66, 66, + 66, 66, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 0, 0, 583, 0, 0, 0, 0, 0, - 0, 0, 0, 585, 585, 0, 585, 66, 66, 66, - 66, 0, 66, 66, 66, 66, 585, 585, 66, 0, - 66, 0, 66, 66, 66, 66, 0, 66, 66, 0, - 66, 66, 66, 0, 583, 583, 0, 0, 583, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 583, 585, 583, 0, 0, 0, 585, - 0, 0, 0, 0, 0, 585, 0, 66, 66, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 66, 66, 0, 66, 66, - 66, 0, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 583, 0, 583, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, + 66, 0, 0, 583, 0, 0, 0, 0, 0, 0, + 0, 0, 585, 585, 0, 585, 66, 66, 66, 66, + 0, 66, 66, 66, 66, 585, 585, 66, 0, 66, + 0, 66, 66, 66, 66, 0, 66, 66, 0, 66, + 66, 66, 0, 583, 583, 0, 0, 583, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 583, 585, 583, 0, 0, 0, 585, 0, + 0, 0, 0, 0, 585, 0, 66, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 66, 0, 66, 66, 66, + 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 583, 0, 583, 1078, + 1079, 0, 1080, 1081, 1082, 1083, 1084, 1085, 0, 1086, + 1087, 0, 1088, 1089, 1090, 1091, 1092, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, - 585, 585, 585, 585, 585, 585, 585, 0, 0, 0, - 585, 585, 585, 585, 585, 585, 585, 0, 0, 0, - 0, 585, 0, 0, 585, 585, 0, 0, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 585, 585, 585, 585, 0, 585, 585, 585, 585, - 0, 0, 585, 0, 585, 0, 585, 585, 585, 0, - 0, 585, 585, 0, 585, 585, 585, 0, 584, 584, - 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 584, 0, 584, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 585, 585, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 583, 583, 585, - 585, 0, 585, 585, 585, 0, 585, 585, 585, 585, - 585, 585, 585, 585, 585, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 584, 0, 584, 0, 583, 0, 0, 0, 0, - 583, 0, 0, 0, 0, 0, 583, 0, 0, 0, - 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 0, 143, 144, 0, - 0, 33, 0, 0, 0, 0, 145, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 585, 585, 585, 585, 585, 585, 0, 0, 0, 585, + 585, 585, 585, 585, 585, 585, 0, 0, 0, 0, + 585, 0, 0, 585, 585, 0, 0, 584, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 585, 585, 585, 585, 0, 585, 585, 585, 585, 0, + 0, 585, 0, 585, 0, 585, 585, 585, 0, 0, + 585, 585, 0, 585, 585, 585, 0, 584, 584, 0, + 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 584, 0, 584, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 583, 583, 585, 585, + 0, 585, 585, 585, 0, 585, 585, 585, 585, 585, + 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 584, 0, 584, 0, 583, 0, 0, 0, 0, 583, + 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1093, 1094, 0, + 1095, 1096, 1097, 0, 1098, 1099, 0, 0, 1100, 1101, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 1103, 1104, 1105, 1106, 1107, 1108, + 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, - 583, 583, 583, 583, 583, 583, 583, 583, 150, 0, - 33, 583, 583, 583, 583, 583, 583, 583, 0, 0, - 0, 0, 583, 0, 0, 583, 583, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 583, 583, 583, 583, 0, 583, 583, 583, - 583, 584, 584, 583, 0, 583, 0, 583, 583, 583, - 0, 0, 583, 583, 0, 583, 583, 583, 0, 0, - 0, 0, 0, 0, 33, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, - 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, - 584, 0, 583, 583, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 583, 583, 0, 583, 583, 583, 0, 583, 583, 583, - 583, 583, 583, 583, 583, 583, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 584, 584, 584, 584, 584, 584, + 583, 583, 583, 583, 583, 583, 583, 0, 0, 33, + 583, 583, 583, 583, 583, 583, 583, 0, 0, 0, + 0, 583, 0, 0, 583, 583, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 583, 583, 583, 583, 0, 583, 583, 583, 583, + 584, 584, 583, 0, 583, 0, 583, 583, 583, 0, + 0, 583, 583, 0, 583, 583, 583, 0, 0, 0, + 0, 0, 0, 33, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, + 0, 0, 0, 584, 0, 0, 0, 0, 0, 584, + 0, 583, 583, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, + 583, 0, 583, 583, 583, 0, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, - 584, 584, 0, 155, 0, 584, 584, 584, 584, 584, - 584, 584, 0, 0, 0, 0, 584, 0, 0, 584, - 584, 33, 34, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 584, 584, 584, 584, - 0, 584, 584, 584, 584, 0, 0, 584, 0, 584, - 0, 584, 584, 584, 0, 0, 584, 584, 0, 584, - 584, 584, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 34, 0, 34, 0, - 0, 0, 0, 0, 0, 0, 584, 584, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 584, 584, 0, 584, 584, 584, - 0, 584, 584, 584, 584, 584, 584, 584, 584, 584, - 0, 0, 0, 0, 0, 0, 786, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, + 584, 0, 0, 0, 584, 584, 584, 584, 584, 584, + 584, 0, 0, 0, 0, 584, 0, 0, 584, 584, + 33, 34, 0, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 584, 584, 584, 584, 0, + 584, 584, 584, 584, 0, 0, 584, 0, 584, 0, + 584, 584, 584, 0, 0, 584, 584, 0, 584, 584, + 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 34, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 584, 584, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 584, 584, 0, 584, 584, 584, 0, + 584, 584, 584, 584, 584, 584, 584, 584, 584, 0, + 0, 0, 0, 0, 0, 786, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 0, 0, 33, 33, + 33, 33, 33, 33, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 0, 786, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 33, 33, 33, 0, 33, 33, 33, 33, 0, 0, - 33, 0, 33, 34, 0, 33, 34, 0, 0, 0, - 0, 0, 33, 33, 33, 0, 34, 0, 0, 0, + 33, 33, 33, 0, 786, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, + 33, 33, 0, 33, 33, 33, 33, 0, 0, 33, + 0, 33, 34, 0, 33, 34, 0, 0, 0, 0, + 0, 33, 33, 33, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 786, 0, + 786, 0, 0, 0, 0, 0, 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, - 0, 786, 0, 0, 0, 0, 0, 0, 0, 33, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 33, 33, 0, - 33, 33, 33, 0, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 33, 33, 0, 33, + 33, 33, 0, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 800, 0, 0, 0, 0, 0, 0, 0, 34, + 92, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 788, + 34, 34, 34, 34, 34, 34, 0, 0, 788, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 786, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, - 800, 34, 34, 34, 34, 0, 34, 34, 34, 34, - 0, 0, 34, 0, 34, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, - 0, 0, 0, 788, 0, 788, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 786, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 0, 0, 0, 800, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 34, 0, 34, 34, 34, 0, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, - 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 786, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 786, 92, + 34, 34, 34, 34, 0, 34, 34, 34, 34, 0, + 0, 34, 0, 34, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, + 0, 0, 788, 0, 788, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 786, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 0, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, + 0, 34, 34, 34, 0, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, + 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, - 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, - 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, + 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, - 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, - 788, 0, 0, 0, 786, 786, 786, 786, 0, 786, - 786, 786, 786, 788, 0, 786, 0, 786, 0, 0, - 786, 0, 0, 0, 0, 0, 0, 786, 786, 786, + 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, + 792, 0, 0, 0, 0, 0, 0, 0, 0, 788, + 0, 0, 0, 786, 786, 786, 786, 0, 786, 786, + 786, 786, 788, 0, 786, 0, 786, 0, 0, 786, + 0, 0, 0, 0, 0, 0, 786, 786, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 792, 0, 792, 0, 0, - 0, 0, 788, 0, 786, 786, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 792, 0, 792, 0, 0, 0, + 0, 788, 0, 786, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 786, 786, 0, 786, 786, 786, 0, 786, - 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, + 0, 786, 786, 0, 786, 786, 786, 0, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, + 0, 0, 0, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 788, 788, 788, 788, + 0, 0, 0, 0, 0, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 788, 0, 0, 0, 788, 788, 788, + 788, 788, 788, 0, 0, 0, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 0, 0, 790, 0, 0, 0, 0, - 800, 800, 800, 800, 800, 0, 0, 0, 788, 788, - 788, 788, 792, 788, 788, 788, 788, 0, 0, 788, - 0, 788, 800, 800, 788, 792, 0, 0, 0, 0, - 0, 788, 788, 788, 0, 0, 0, 0, 0, 800, - 800, 800, 800, 0, 0, 0, 800, 800, 0, 0, - 0, 0, 800, 0, 800, 800, 0, 0, 0, 790, - 0, 790, 800, 800, 0, 0, 0, 0, 788, 788, - 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 788, 788, 0, 788, - 788, 788, 0, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 0, 0, 0, 0, 0, 0, 0, 794, - 0, 0, 0, 0, 0, 0, 0, 800, 800, 0, - 800, 800, 800, 0, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, + 788, 788, 0, 0, 790, 0, 0, 0, 0, 92, + 92, 92, 92, 92, 0, 0, 0, 788, 788, 788, + 788, 792, 788, 788, 788, 788, 0, 0, 788, 0, + 788, 92, 92, 788, 792, 0, 0, 0, 0, 0, + 788, 788, 788, 0, 0, 0, 0, 0, 92, 92, + 92, 92, 0, 0, 0, 92, 92, 0, 0, 0, + 0, 92, 0, 0, 92, 0, 0, 0, 790, 0, + 790, 92, 92, 0, 0, 0, 0, 788, 788, 0, + 0, 0, 0, 792, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 788, 788, 0, 788, 788, + 788, 0, 788, 788, 788, 788, 788, 788, 788, 788, + 788, 0, 0, 0, 0, 0, 0, 0, 794, 0, + 0, 0, 0, 0, 0, 0, 92, 92, 0, 92, + 92, 92, 0, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, - 792, 792, 792, 792, 792, 792, 0, 0, 794, 792, + 792, 792, 792, 792, 792, 0, 0, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, - 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, - 792, 792, 792, 792, 0, 792, 792, 792, 792, 790, - 0, 792, 0, 792, 0, 0, 792, 0, 0, 0, - 0, 0, 0, 792, 792, 792, 0, 0, 0, 0, - 0, 0, 794, 0, 794, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 790, 0, - 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 792, 792, - 0, 792, 792, 792, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 790, 0, 0, 0, 792, + 792, 792, 792, 0, 792, 792, 792, 792, 790, 0, + 792, 0, 792, 0, 0, 792, 0, 0, 0, 0, + 0, 0, 792, 792, 792, 0, 0, 0, 0, 0, + 0, 794, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 790, 0, 792, + 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 792, 792, 0, + 792, 792, 792, 0, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, + 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 0, 0, 0, 790, 790, 790, 790, 790, 790, 790, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, - 0, 0, 0, 790, 790, 790, 790, 790, 790, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 794, - 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 0, 790, 790, 790, 790, 0, 790, - 790, 790, 790, 0, 0, 790, 0, 790, 0, 0, - 790, 0, 0, 0, 0, 0, 0, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 794, 744, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 794, 0, 790, 790, 790, 790, 0, 790, 790, + 790, 790, 0, 0, 790, 0, 790, 0, 0, 790, + 0, 0, 0, 0, 0, 0, 790, 790, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 744, 0, 744, 0, 0, 0, - 0, 0, 0, 0, 790, 790, 0, 0, 0, 0, + 794, 0, 0, 744, 0, 744, 0, 0, 0, 0, + 0, 0, 0, 790, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 790, 790, 0, 790, 790, 790, 0, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 0, 0, - 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, + 0, 790, 790, 0, 790, 790, 790, 0, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 0, 0, 0, + 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 794, 794, 794, 794, + 0, 0, 0, 0, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 794, 0, 0, 0, 794, 794, 794, 794, + 794, 794, 0, 0, 0, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 0, 746, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 794, 794, 794, - 794, 0, 794, 794, 794, 794, 0, 0, 794, 0, - 794, 744, 0, 794, 744, 0, 0, 0, 0, 0, - 794, 794, 794, 0, 744, 0, 0, 0, 0, 0, + 794, 0, 746, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 794, 794, 794, 794, + 0, 794, 794, 794, 794, 0, 0, 794, 0, 794, + 744, 0, 794, 744, 0, 0, 0, 0, 0, 794, + 794, 794, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 746, 0, 746, - 0, 0, 0, 0, 0, 0, 0, 794, 794, 0, + 0, 0, 0, 0, 0, 0, 746, 0, 746, 0, + 0, 0, 0, 0, 0, 0, 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 744, 0, 794, 794, 0, 794, 794, - 794, 0, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 744, 0, 794, 794, 0, 794, 794, 794, + 0, 794, 794, 794, 794, 794, 794, 794, 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 0, 744, 744, 744, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 401, 0, 0, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 0, 0, 0, 744, 744, - 744, 744, 744, 744, 744, 0, 0, 0, 0, 744, - 0, 0, 744, 744, 746, 0, 0, 746, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 746, 0, 744, - 744, 744, 744, 401, 744, 744, 744, 744, 0, 0, - 744, 0, 744, 0, 744, 744, 744, 0, 0, 744, - 744, 0, 744, 744, 744, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 746, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, - 744, 0, 0, 0, 0, 0, 0, 401, 0, 401, - 0, 0, 0, 0, 0, 0, 0, 744, 744, 0, - 744, 744, 744, 0, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 744, 744, 744, 744, 0, 0, 0, 744, 744, 744, + 744, 744, 744, 744, 0, 0, 0, 0, 744, 0, + 0, 744, 744, 746, 0, 0, 746, 401, 0, 0, + 0, 0, 0, 0, 0, 0, 746, 0, 744, 744, + 744, 744, 401, 744, 744, 744, 744, 0, 0, 744, + 0, 744, 0, 744, 744, 744, 0, 0, 744, 744, + 0, 744, 744, 744, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 746, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 744, 744, + 0, 0, 0, 0, 0, 0, 401, 0, 401, 0, + 0, 0, 0, 0, 0, 0, 744, 744, 0, 744, + 744, 744, 0, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 746, 746, 0, 0, - 0, 746, 746, 746, 746, 746, 746, 746, 0, 0, - 0, 0, 746, 0, 0, 746, 746, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 746, 746, 746, 746, 0, 746, 746, 746, - 746, 0, 0, 746, 0, 746, 0, 746, 746, 746, - 0, 0, 746, 746, 0, 746, 746, 746, 0, 0, - 0, 0, 0, 0, 401, 0, 0, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 746, 746, 443, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 746, 746, 209, 746, 746, 746, 0, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 401, 0, 0, 0, - 67, 68, 0, 69, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, - 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, - 0, 209, 0, 209, 0, 0, 145, 0, 146, 0, + 746, 746, 746, 746, 746, 746, 746, 0, 0, 0, + 746, 746, 746, 746, 746, 746, 746, 0, 0, 0, + 0, 746, 0, 0, 746, 746, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 746, 746, 746, 746, 0, 746, 746, 746, 746, + 0, 0, 746, 0, 746, 0, 746, 746, 746, 0, + 0, 746, 746, 0, 746, 746, 746, 0, 0, 0, + 0, 0, 0, 401, 0, 0, 401, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 746, 746, 443, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, + 746, 209, 746, 746, 746, 0, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 401, 0, 0, 0, 67, + 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, + 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, + 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, + 209, 0, 209, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 0, 0, - 0, 401, 401, 401, 401, 401, 401, 401, 150, 151, - 0, 443, 401, 0, 443, 401, 401, 209, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 401, 401, 401, 401, 0, 401, 401, 401, - 401, 0, 0, 401, 0, 401, 0, 0, 401, 0, - 0, 0, 0, 211, 0, 401, 401, 401, 0, 0, - 0, 0, 0, 0, 152, 153, 154, 0, 0, 0, + 401, 401, 401, 401, 401, 401, 401, 0, 0, 0, + 401, 401, 401, 401, 401, 401, 401, 150, 151, 0, + 443, 401, 0, 443, 401, 401, 209, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, - 0, 0, 401, 401, 0, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 401, 401, 211, 401, 401, 401, 0, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 443, 443, 443, + 0, 401, 401, 401, 401, 0, 401, 401, 401, 401, + 0, 0, 401, 0, 401, 0, 0, 401, 0, 0, + 0, 0, 211, 0, 401, 401, 401, 0, 0, 0, + 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, + 0, 401, 401, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 401, + 401, 211, 401, 401, 401, 0, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, - 443, 443, 443, 443, 443, 209, 0, 0, 443, 443, - 443, 443, 443, 443, 443, 0, 0, 0, 211, 443, - 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 94, 0, 0, 443, - 443, 443, 443, 0, 443, 443, 443, 443, 0, 93, - 443, 0, 443, 0, 209, 443, 0, 0, 0, 0, - 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 0, 0, 0, 443, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, - 443, 443, 443, 0, 443, 443, 443, 443, 443, 443, - 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 209, 209, 209, 209, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, - 209, 94, 0, 209, 209, 0, 211, 0, 0, 797, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 209, 209, 209, 0, 209, 209, 209, 209, 0, - 0, 0, 0, 209, 0, 0, 209, 93, 0, 0, - 0, 0, 0, 209, 209, 209, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 209, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, - 0, 209, 209, 209, 0, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 0, 0, 0, 0, 0, 0, + 443, 443, 443, 443, 209, 0, 0, 443, 443, 443, + 443, 443, 443, 443, 0, 0, 0, 211, 443, 0, + 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 0, 0, 443, 443, + 443, 443, 0, 443, 443, 443, 443, 0, 93, 443, + 0, 443, 0, 209, 443, 0, 0, 0, 0, 0, + 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 0, 0, 0, 443, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 443, 0, 443, + 443, 443, 0, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 209, 209, 209, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 0, 0, 0, 0, 209, + 94, 0, 209, 209, 0, 211, 0, 0, 797, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 209, 209, 209, 0, 209, 209, 209, 209, 0, 0, + 0, 0, 209, 0, 0, 209, 93, 0, 0, 0, + 0, 0, 209, 209, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 797, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 209, 0, + 209, 209, 209, 0, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 0, 0, 0, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, + 0, 211, 211, 211, 211, 211, 0, 0, 94, 0, + 48, 0, 0, 0, 0, 211, 0, 0, 0, 0, + 211, 0, 0, 211, 211, 0, 0, 0, 0, 0, + 0, 0, 93, 93, 93, 93, 93, 0, 47, 0, + 211, 211, 211, 211, 0, 211, 211, 211, 211, 0, + 0, 0, 0, 211, 93, 93, 211, 0, 0, 0, + 0, 0, 0, 211, 211, 211, 0, 0, 0, 48, + 0, 93, 93, 93, 93, 0, 0, 0, 93, 93, + 0, 0, 0, 0, 93, 0, 0, 93, 0, 0, + 0, 0, 0, 0, 93, 93, 0, 0, 0, 0, + 211, 211, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 211, 211, + 0, 211, 211, 211, 0, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 0, 48, 0, 0, 0, 0, + 0, 797, 0, 0, 94, 94, 94, 94, 94, 93, + 93, 0, 93, 93, 93, 0, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 49, 94, 94, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 94, 94, 94, 0, 0, 0, + 94, 94, 0, 0, 0, 0, 94, 0, 0, 94, + 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 94, 0, 94, 94, 94, 0, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 797, 797, 797, + 797, 797, 0, 48, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 0, 0, 0, 0, 0, 797, + 797, 0, 0, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 797, 797, 797, 797, + 0, 0, 0, 797, 797, 0, 0, 0, 0, 797, + 0, 0, 797, 0, 0, 0, 0, 51, 0, 797, + 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, + 47, 47, 47, 0, 797, 797, 51, 797, 797, 797, + 0, 797, 797, 797, 797, 797, 797, 797, 797, 797, + 47, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 48, 0, 0, 0, 47, 47, 47, + 47, 50, 0, 0, 47, 47, 0, 0, 49, 0, + 47, 48, 48, 47, 0, 0, 0, 0, 800, 0, + 47, 47, 0, 0, 0, 0, 0, 0, 48, 48, + 48, 48, 51, 0, 0, 48, 48, 0, 0, 0, + 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 47, 800, 47, 47, + 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, - 0, 0, 211, 211, 211, 211, 211, 0, 0, 94, - 0, 48, 0, 0, 0, 0, 211, 0, 0, 0, - 0, 211, 0, 0, 211, 211, 0, 0, 0, 0, - 0, 0, 0, 93, 93, 93, 93, 93, 0, 47, - 0, 211, 211, 211, 211, 0, 211, 211, 211, 211, - 0, 0, 0, 0, 211, 93, 93, 211, 0, 0, - 0, 0, 0, 0, 211, 211, 211, 0, 0, 0, - 48, 0, 93, 93, 93, 93, 0, 0, 0, 93, - 93, 0, 0, 0, 0, 93, 0, 0, 93, 0, - 0, 0, 0, 0, 0, 93, 93, 0, 0, 0, - 0, 211, 211, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 1131, 0, 0, 0, 0, 0, 0, 211, - 211, 0, 211, 211, 211, 0, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 0, 48, 0, 0, 0, - 0, 0, 797, 0, 0, 94, 94, 94, 94, 94, - 93, 93, 0, 93, 93, 93, 0, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 49, 94, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 94, 94, 94, 0, 0, - 0, 94, 94, 0, 0, 0, 0, 94, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 94, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 94, 0, 94, 94, 94, 0, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 797, 797, - 797, 797, 797, 0, 48, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 797, 797, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 797, 797, 797, - 797, 0, 0, 0, 797, 797, 0, 1091, 0, 0, - 797, 0, 0, 797, 0, 0, 0, 0, 51, 0, - 797, 797, 0, 0, 0, 0, 1092, 1093, 0, 1094, - 1095, 1096, 1097, 1098, 1099, 0, 1100, 1101, 0, 1102, - 1103, 1104, 1105, 1106, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 47, 47, 47, 47, 0, 797, 797, 51, 797, 797, - 797, 0, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 47, 47, 0, 0, 0, 0, 0, 0, 0, - 48, 48, 48, 48, 48, 0, 0, 0, 47, 47, - 47, 47, 50, 0, 0, 47, 47, 0, 0, 49, - 0, 47, 48, 48, 47, 0, 0, 0, 0, 800, - 0, 47, 47, 0, 0, 0, 0, 0, 0, 48, - 48, 48, 48, 51, 0, 0, 48, 48, 0, 0, - 0, 0, 48, 0, 0, 48, 0, 0, 0, 0, - 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 47, 800, 47, - 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, - 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 1107, 1108, 0, 1109, 1110, 1111, - 0, 1112, 1113, 0, 0, 1114, 1115, 0, 1116, 0, - 0, 0, 0, 0, 800, 49, 49, 49, 49, 49, - 50, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 0, 0, 49, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 49, 49, 49, 49, 0, 0, - 0, 49, 49, 0, 0, 0, 0, 49, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 49, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 0, 49, 49, 49, 0, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, - 50, 0, 800, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, - 0, 0, 0, 0, 0, 0, 0, 51, 51, 51, - 51, 51, 0, 0, 0, 50, 50, 50, 50, 0, - 0, 0, 50, 50, 0, 0, 0, 0, 50, 51, - 51, 50, 0, 0, 0, 0, 0, 0, 50, 50, - 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, - 0, 157, 0, 51, 51, 0, 297, 0, 0, 51, - 743, 0, 51, 0, 0, 0, 0, 0, 0, 51, - 51, 0, 0, 0, 0, 0, 0, 0, 295, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 50, 0, 50, 50, 50, 0, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 480, - 0, 0, 0, 0, 0, 0, 0, 0, 800, 800, - 800, 800, 800, 0, 51, 51, 0, 51, 51, 51, - 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 800, 800, 800, - 800, 0, 0, 0, 800, 800, 0, 0, 0, 0, - 800, 0, 0, 800, 0, 0, 0, 0, 0, 0, - 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 700, 0, 0, 0, 0, 700, 0, - 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 800, 800, 0, 800, 800, - 800, 0, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 700, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, - 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, - 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, + 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 800, 49, 49, 49, 49, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 0, 290, 291, - 292, 0, 157, 0, 0, 0, 0, 297, 0, 0, - 0, 296, 478, 479, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, + 51, 0, 0, 49, 49, 49, 49, 0, 0, 0, + 49, 49, 0, 0, 0, 0, 49, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 700, 700, 0, 700, 0, 0, 0, 0, 700, 0, - 0, 700, 152, 153, 154, 700, 700, 700, 700, 700, - 480, 700, 700, 700, 700, 0, 700, 700, 0, 0, - 700, 700, 700, 700, 0, 0, 700, 700, 700, 0, - 0, 0, 0, 0, 0, 0, 700, 0, 700, 0, - 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, - 0, 0, 0, 700, 700, 700, 0, 0, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 448, 0, 0, 143, 144, 700, 0, - 700, 700, 700, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 700, 700, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 449, 0, 450, 451, - 452, 453, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 700, 700, 700, 150, 0, 0, - 0, 0, 0, 0, 0, 454, 455, 456, 457, 0, - 0, 458, 0, 0, 0, 459, 460, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, - 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, - 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, - 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, - 0, 0, 0, 700, 0, 0, 0, 150, 0, 290, - 291, 292, 0, 0, 213, 0, 0, 0, 213, 213, - 213, 213, 213, 0, 213, 213, 213, 213, 0, 213, - 213, 0, 0, 213, 213, 213, 213, 213, 0, 0, - 213, 213, 210, 0, 0, 0, 0, 0, 0, 213, - 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 152, 153, 154, 213, 213, 213, 157, - 213, 0, 213, 213, 213, 213, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 213, 0, 0, 0, 0, 0, 0, 0, 213, - 213, 213, 213, 0, 0, 213, 0, 0, 0, 213, - 213, 213, 0, 0, 0, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 317, 317, 0, + 0, 49, 49, 0, 49, 49, 49, 0, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 0, 0, 0, + 0, 0, 0, 0, 1199, 50, 50, 50, 50, 50, + 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 50, 0, + 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, + 51, 317, 0, 317, 50, 50, 50, 50, 0, 0, + 0, 50, 50, 0, 0, 0, 0, 50, 51, 51, + 50, 0, 0, 0, 0, 0, 0, 50, 50, 0, + 0, 0, 0, 0, 0, 51, 51, 51, 51, 0, + 0, 0, 51, 51, 0, 0, 0, 0, 51, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 51, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 50, 0, 50, 50, 50, 0, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 800, 800, 800, + 800, 800, 2, 51, 51, 0, 51, 51, 51, 0, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 800, + 800, 0, 0, 0, 237, 0, 0, 0, 317, 0, + 580, 317, 0, 0, 0, 0, 800, 800, 800, 800, + 0, 317, 237, 800, 800, 0, 0, 0, 0, 800, + 0, 543, 800, 0, 0, 0, 0, 0, 159, 800, + 800, 0, 159, 159, 159, 159, 159, 0, 159, 159, + 159, 159, 0, 159, 159, 0, 0, 159, 159, 159, + 159, 0, 0, 0, 159, 159, 156, 0, 0, 0, + 0, 0, 0, 159, 0, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 237, 0, 237, 0, + 159, 159, 159, 0, 800, 800, 0, 800, 800, 800, + 0, 800, 800, 800, 800, 800, 800, 800, 800, 800, + 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, + 5, 6, 7, 0, 210, 159, 0, 0, 0, 0, + 0, 0, 545, 0, 0, 0, 0, 546, 0, 0, + 8, 9, 0, 0, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 10, 11, 12, + 13, 317, 547, 548, 0, 317, 317, 317, 317, 317, + 317, 236, 0, 0, 0, 0, 0, 0, 0, 317, + 317, 0, 549, 0, 0, 0, 0, 0, 0, 236, + 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, + 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 550, 551, 0, + 0, 317, 0, 237, 0, 0, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 237, 580, 0, 0, + 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 236, 0, 236, 317, 317, 317, 0, + 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 317, 317, 317, 317, 317, 317, 0, 0, 0, 67, 68, 0, 69, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 157, 128, 129, + 0, 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, + 143, 144, 0, 0, 0, 0, 541, 0, 541, 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 147, 148, 149, 0, - 972, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 126, - 0, 0, 127, 213, 0, 0, 128, 129, 130, 131, - 132, 150, 133, 134, 135, 136, 0, 137, 138, 0, - 0, 139, 140, 141, 142, 973, 0, 98, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 145, 157, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 150, - 151, 128, 129, 130, 131, 132, 210, 133, 134, 135, + 0, 0, 0, 0, 237, 34, 147, 148, 149, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 0, 0, 0, 0, 237, 0, 0, 0, + 237, 237, 237, 237, 237, 237, 0, 0, 0, 0, + 236, 150, 151, 236, 237, 237, 0, 0, 0, 0, + 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, + 0, 237, 237, 237, 237, 0, 0, 0, 0, 334, + 0, 785, 237, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 237, 237, 541, 0, 0, 541, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 541, 580, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 237, 237, + 237, 237, 237, 237, 237, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 236, 0, 0, 0, 0, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 0, + 0, 0, 0, 236, 0, 0, 0, 236, 236, 236, + 236, 236, 236, 0, 0, 0, 67, 0, 0, 69, + 0, 236, 236, 0, 0, 0, 0, 0, 0, 2, + 334, 0, 975, 0, 0, 0, 0, 0, 236, 236, + 236, 236, 0, 0, 0, 0, 0, 0, 0, 236, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 0, 0, 0, 0, 0, 541, + 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, + 541, 541, 0, 0, 0, 0, 541, 0, 0, 0, + 541, 541, 541, 541, 541, 541, 0, 0, 236, 236, + 0, 0, 0, 0, 541, 541, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 541, 541, 541, 541, 236, 236, 236, 236, 236, + 236, 236, 541, 546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, + 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 67, 0, 7, + 69, 0, 0, 324, 325, 326, 327, 328, 329, 0, + 2, 541, 541, 0, 0, 0, 0, 8, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 0, 546, + 0, 0, 0, 0, 10, 11, 12, 13, 541, 541, + 541, 541, 541, 541, 541, 330, 372, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 332, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 372, 0, 372, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 28, 29, 30, 31, 32, 33, 0, 364, + 0, 0, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 0, 0, 0, 0, + 7, 0, 0, 0, 324, 325, 326, 327, 328, 329, + 0, 0, 0, 0, 546, 0, 0, 546, 8, 9, + 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, + 0, 0, 0, 364, 0, 364, 330, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 332, 333, 372, 0, 0, + 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 28, 29, 30, 31, 32, 33, 0, + 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 0, 0, 0, 0, 546, 0, 0, + 0, 546, 546, 546, 546, 546, 546, 0, 0, 0, + 364, 0, 0, 364, 0, 546, 546, 0, 0, 0, + 0, 0, 0, 364, 357, 0, 357, 0, 0, 0, + 0, 0, 546, 546, 546, 546, 0, 0, 0, 0, + 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, + 0, 0, 0, 372, 372, 372, 372, 372, 372, 372, + 372, 372, 372, 372, 372, 372, 0, 0, 0, 0, + 372, 0, 0, 0, 372, 372, 372, 372, 372, 372, + 0, 0, 546, 546, 0, 0, 0, 0, 372, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 372, 372, 372, 372, 546, + 546, 546, 546, 546, 546, 546, 372, 211, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 372, 0, 0, 0, 0, 0, 364, 364, 364, 364, + 364, 364, 364, 364, 364, 364, 364, 364, 364, 0, + 0, 357, 0, 364, 357, 0, 0, 364, 364, 364, + 364, 364, 364, 0, 357, 372, 372, 0, 0, 0, + 0, 364, 364, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 0, 211, 0, 0, 0, 0, 364, 364, + 364, 364, 372, 372, 372, 372, 372, 372, 372, 364, + 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 364, 364, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 540, 0, 540, 0, 0, 0, + 0, 0, 0, 0, 0, 364, 364, 364, 364, 364, + 364, 364, 0, 0, 0, 0, 0, 357, 357, 357, + 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, + 566, 0, 0, 0, 357, 0, 0, 0, 357, 357, + 357, 357, 357, 357, 0, 0, 0, 0, 211, 0, + 0, 211, 357, 357, 0, 0, 0, 0, 0, 0, + 0, 211, 0, 0, 0, 0, 0, 0, 0, 357, + 357, 357, 357, 0, 0, 0, 0, 0, 0, 0, + 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 357, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, + 357, 540, 0, 0, 540, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 357, 357, 357, 357, + 357, 357, 357, 0, 0, 0, 0, 188, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 0, 0, 0, + 0, 211, 0, 0, 0, 211, 211, 211, 211, 211, + 211, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 0, 0, 211, 211, 211, 211, + 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 0, 0, 0, 0, 0, 540, 540, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, + 0, 0, 0, 0, 540, 0, 0, 0, 540, 540, + 540, 540, 540, 540, 0, 0, 211, 211, 0, 0, + 0, 0, 540, 540, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 3, 4, 5, 6, 7, 540, + 540, 540, 540, 211, 211, 211, 211, 211, 211, 211, + 540, 0, 0, 0, 0, 0, 8, 9, 0, 0, + 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 12, 13, 0, 0, 0, + 14, 15, 0, 0, 0, 0, 16, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 18, 19, 0, 540, + 540, 188, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, + 540, 540, 540, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 188, 20, 21, 0, 22, 23, 24, 0, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 3, 4, 5, + 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, + 0, 0, 0, 14, 15, 0, 0, 0, 0, 16, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 0, 0, 0, 0, 188, 0, 188, + 188, 188, 213, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 0, 0, 0, 0, 188, 0, 0, 188, + 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 188, 188, 188, + 0, 188, 188, 0, 20, 21, 0, 22, 23, 24, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 188, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 188, 188, 188, 188, 188, 188, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 156, 133, 134, 135, 136, 295, 137, 138, 0, 294, + 139, 140, 141, 142, 446, 0, 0, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 293, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 447, 0, 448, + 449, 450, 451, 0, 0, 0, 0, 0, 478, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 0, 0, 0, 0, 0, 452, 453, 454, 455, + 0, 0, 456, 0, 0, 0, 457, 458, 459, 0, + 213, 0, 0, 0, 213, 213, 213, 213, 213, 0, + 213, 213, 213, 213, 0, 213, 213, 0, 0, 213, + 213, 213, 213, 213, 0, 0, 213, 213, 0, 0, + 0, 0, 0, 0, 0, 213, 0, 213, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 213, 213, 213, 0, 213, 156, 213, 213, + 213, 213, 295, 0, 0, 0, 745, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 293, 0, 0, 213, 0, 0, + 0, 0, 0, 0, 0, 213, 213, 213, 213, 0, + 460, 213, 0, 0, 0, 213, 213, 213, 0, 0, + 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, + 69, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 128, 129, 130, 131, 132, 0, 133, 134, + 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, + 142, 0, 700, 98, 143, 144, 0, 700, 0, 0, + 0, 700, 0, 145, 0, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 700, + 147, 148, 149, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 700, 156, 0, 0, 0, 150, 295, 288, 289, 290, + 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 476, 477, 0, 0, 0, 0, 0, 293, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, + 0, 152, 153, 154, 67, 68, 0, 69, 0, 0, + 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, + 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, + 98, 143, 144, 0, 0, 156, 0, 0, 0, 0, + 145, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 210, 288, 289, 290, 0, 0, 700, + 700, 0, 700, 0, 0, 0, 0, 700, 476, 477, + 700, 0, 0, 156, 700, 700, 700, 700, 700, 0, + 700, 700, 700, 700, 0, 700, 700, 0, 0, 700, + 700, 700, 700, 0, 0, 700, 700, 700, 0, 0, + 0, 0, 0, 0, 0, 700, 0, 700, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 67, 68, + 0, 69, 700, 700, 700, 0, 126, 0, 0, 127, + 0, 210, 0, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 98, 143, 144, 700, 0, 700, + 700, 700, 0, 0, 145, 0, 146, 0, 0, 156, + 0, 0, 0, 700, 700, 0, 0, 0, 0, 0, + 0, 147, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 700, 700, 700, 150, 0, 288, 289, + 290, 0, 67, 68, 0, 69, 0, 210, 0, 0, + 126, 0, 0, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 156, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 146, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 148, 149, 0, 960, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 68, 0, 69, 0, 210, 0, 0, 126, 0, + 0, 127, 0, 0, 0, 128, 129, 130, 131, 132, + 150, 133, 134, 135, 136, 0, 137, 138, 0, 0, + 139, 140, 141, 142, 961, 156, 98, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 67, 68, 150, 69, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 147, - 148, 149, 0, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 152, 153, 154, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 150, 133, 134, 135, 136, 0, + 0, 0, 126, 226, 892, 127, 0, 0, 0, 128, + 129, 130, 131, 132, 574, 133, 134, 135, 136, 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 210, 155, 0, 0, 0, - 145, 233, 146, 0, 0, 0, 0, 0, 0, 0, + 98, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 694, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 233, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 126, 155, 0, 127, 0, 0, 226, - 128, 129, 130, 131, 132, 0, 133, 134, 135, 136, - 0, 137, 138, 0, 0, 139, 140, 141, 142, 0, - 0, 98, 143, 144, 0, 0, 0, 0, 152, 153, - 154, 692, 0, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, - 149, 0, 0, 0, 318, 0, 0, 226, 0, 0, - 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 150, 67, 68, 0, 69, 0, 0, - 0, 0, 126, 0, 0, 127, 0, 0, 0, 128, - 129, 130, 131, 132, 0, 133, 134, 135, 136, 0, - 137, 138, 318, 0, 139, 140, 141, 142, 0, 0, - 98, 143, 144, 0, 0, 0, 0, 226, 0, 0, - 145, 0, 146, 0, 0, 0, 0, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 147, 148, 149, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 233, - 0, 0, 0, 233, 233, 233, 233, 233, 0, 233, - 233, 233, 233, 0, 233, 233, 0, 0, 233, 233, - 233, 233, 752, 0, 0, 233, 233, 0, 0, 0, - 159, 0, 0, 0, 233, 0, 233, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 233, 233, 233, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 226, 152, 153, - 154, 226, 226, 226, 226, 226, 233, 226, 226, 226, - 226, 317, 226, 226, 0, 0, 226, 226, 226, 226, - 0, 0, 0, 226, 226, 0, 0, 0, 155, 0, - 317, 317, 226, 0, 226, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, - 226, 226, 318, 0, 0, 0, 0, 318, 318, 318, - 318, 0, 318, 318, 318, 318, 0, 318, 318, 0, - 0, 318, 318, 318, 318, 0, 0, 0, 318, 318, - 0, 0, 0, 0, 226, 0, 0, 318, 0, 318, - 0, 0, 0, 318, 317, 0, 317, 0, 0, 0, - 0, 0, 0, 0, 318, 318, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 226, 0, 155, 0, 226, - 226, 226, 226, 226, 0, 226, 226, 226, 226, 318, - 226, 226, 0, 0, 226, 226, 226, 226, 0, 0, - 0, 226, 226, 0, 0, 0, 0, 0, 0, 0, - 226, 0, 226, 237, 0, 0, 0, 0, 0, 580, - 0, 0, 0, 0, 0, 0, 0, 226, 226, 226, - 0, 237, 0, 0, 0, 0, 0, 0, 159, 0, - 0, 233, 159, 159, 159, 159, 159, 0, 159, 159, - 159, 159, 0, 159, 159, 0, 0, 159, 159, 159, - 159, 0, 226, 0, 159, 159, 0, 0, 0, 0, - 0, 0, 0, 159, 0, 159, 0, 0, 0, 0, - 0, 317, 0, 0, 317, 0, 0, 0, 0, 0, - 159, 159, 159, 0, 317, 237, 236, 237, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 0, 0, 226, - 0, 0, 0, 318, 0, 159, 0, 0, 318, 318, + 0, 226, 0, 0, 0, 318, 0, 0, 0, 0, + 152, 153, 154, 563, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 126, 0, 150, 127, 0, 0, 0, 128, 129, 130, + 131, 132, 0, 133, 134, 135, 136, 0, 137, 138, + 0, 0, 139, 140, 141, 142, 0, 0, 98, 143, + 144, 0, 0, 318, 0, 0, 0, 0, 145, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 851, 0, + 0, 0, 0, 318, 0, 147, 148, 149, 152, 153, + 154, 0, 852, 0, 0, 0, 0, 853, 854, 0, + 855, 856, 857, 858, 859, 860, 0, 861, 862, 0, + 863, 864, 865, 866, 867, 0, 0, 0, 0, 0, + 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 868, 0, 869, 0, + 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 152, 153, 154, 871, + 0, 226, 0, 0, 0, 226, 226, 226, 226, 226, + 0, 226, 226, 226, 226, 0, 226, 226, 0, 0, + 226, 226, 226, 226, 0, 0, 0, 226, 226, 0, + 0, 0, 872, 0, 0, 0, 226, 0, 226, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 226, 226, 226, 0, 0, 0, 0, + 0, 0, 0, 318, 0, 0, 0, 0, 318, 318, 318, 318, 0, 318, 318, 318, 318, 0, 318, 318, - 0, 0, 318, 318, 318, 318, 0, 0, 0, 318, + 0, 0, 318, 318, 318, 318, 0, 0, 226, 318, 318, 0, 0, 0, 0, 0, 0, 0, 318, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 318, 318, 318, 318, 236, 0, - 236, 0, 0, 0, 0, 580, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 541, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 0, 0, 237, 0, 317, 237, 0, 0, 317, 317, - 317, 317, 317, 317, 0, 237, 580, 226, 0, 0, - 0, 0, 317, 317, 0, 0, 0, 0, 0, 0, - 0, 541, 0, 541, 0, 0, 0, 0, 0, 317, - 317, 317, 317, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 236, 0, 0, 236, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 317, - 317, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 318, 318, 318, 0, 0, + 0, 0, 873, 0, 874, 875, 876, 877, 878, 879, + 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, + 890, 318, 0, 0, 891, 0, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 0, 318, 318, 0, 0, + 318, 318, 318, 318, 0, 0, 0, 318, 318, 0, + 0, 0, 0, 0, 0, 0, 318, 851, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, - 317, 317, 317, 237, 34, 0, 0, 0, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 0, 0, 0, 0, 237, 0, 0, 0, 237, - 237, 237, 237, 237, 237, 318, 0, 0, 541, 0, - 0, 541, 0, 237, 237, 0, 0, 0, 0, 0, - 0, 541, 580, 0, 0, 0, 0, 0, 0, 0, - 237, 237, 237, 237, 0, 0, 0, 0, 336, 0, - 337, 237, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 237, 236, 0, 0, 0, - 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 0, 0, 0, 0, 236, 0, - 0, 0, 236, 236, 236, 236, 236, 236, 0, 0, - 237, 237, 0, 0, 0, 0, 236, 236, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 236, 236, 236, 237, 237, 237, - 237, 237, 237, 237, 236, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, - 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, - 0, 541, 0, 0, 0, 541, 541, 541, 541, 541, - 541, 0, 0, 236, 236, 67, 0, 0, 69, 541, - 541, 0, 0, 0, 0, 0, 0, 0, 2, 336, - 0, 785, 0, 0, 0, 0, 541, 541, 541, 541, - 236, 236, 236, 236, 236, 236, 236, 541, 34, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 541, 541, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 987, 0, 0, 0, 0, 0, - 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 0, 0, 67, 0, 7, 69, - 0, 0, 326, 327, 328, 329, 330, 331, 0, 2, - 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, - 0, 0, 0, 0, 0, 546, 0, 546, 0, 0, - 0, 0, 0, 10, 11, 12, 13, 0, 0, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 334, 335, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 0, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 0, 0, 0, 0, 7, - 0, 0, 0, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 546, 0, 0, 546, 0, 8, 9, 0, - 0, 0, 0, 0, 0, 546, 372, 0, 372, 0, - 0, 0, 0, 0, 10, 11, 12, 13, 0, 0, - 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, - 0, 0, 0, 0, 0, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 7, 0, 0, 0, 326, 327, 328, 329, - 330, 331, 0, 0, 334, 335, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, - 13, 27, 28, 29, 30, 31, 32, 33, 332, 364, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 0, 546, 546, - 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, - 546, 0, 0, 372, 0, 546, 372, 0, 0, 546, - 546, 546, 546, 546, 546, 0, 372, 334, 335, 0, - 0, 0, 0, 546, 546, 0, 0, 0, 0, 0, - 0, 0, 0, 364, 0, 364, 0, 0, 0, 0, - 546, 546, 546, 546, 27, 28, 29, 30, 31, 32, - 33, 546, 357, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 546, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 357, 0, 357, 0, - 0, 0, 0, 0, 0, 0, 0, 546, 546, 546, - 546, 546, 546, 546, 0, 211, 0, 0, 0, 372, - 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 0, 0, 0, 0, 372, 0, 0, 0, - 372, 372, 372, 372, 372, 372, 0, 0, 0, 0, - 364, 0, 0, 364, 372, 372, 0, 0, 0, 0, - 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, - 0, 372, 372, 372, 372, 0, 0, 0, 0, 211, - 0, 211, 372, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, + 0, 852, 0, 318, 318, 318, 853, 854, 0, 855, + 856, 857, 858, 859, 860, 0, 861, 862, 0, 863, + 864, 865, 866, 867, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 868, 0, 869, 0, 0, + 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 372, 372, 357, 0, 0, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 372, 372, - 372, 372, 372, 372, 372, 0, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 364, 364, 364, 364, - 364, 364, 364, 364, 364, 364, 364, 364, 364, 0, - 0, 0, 0, 364, 0, 0, 0, 364, 364, 364, - 364, 364, 364, 0, 0, 0, 211, 34, 0, 211, - 0, 364, 364, 0, 0, 0, 0, 0, 0, 211, - 540, 0, 540, 0, 0, 0, 0, 0, 364, 364, - 364, 364, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 364, 0, 0, 0, 0, 0, 357, - 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 357, 357, 0, 561, 0, 0, 357, 0, 0, 0, - 357, 357, 357, 357, 357, 357, 0, 0, 364, 364, - 0, 0, 0, 0, 357, 357, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 357, 357, 357, 357, 364, 364, 364, 364, 364, - 364, 364, 357, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, - 34, 0, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 0, 0, 540, 0, 211, - 540, 0, 0, 211, 211, 211, 211, 211, 211, 0, - 540, 357, 357, 0, 0, 0, 0, 211, 211, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 211, 211, 211, 211, 357, 357, - 357, 357, 357, 357, 357, 211, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 211, 211, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1215, 0, 0, 0, 0, - 0, 211, 211, 211, 211, 211, 211, 211, 0, 0, - 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, - 540, 188, 0, 0, 540, 540, 540, 540, 540, 540, - 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 540, 540, 540, 540, 0, - 0, 0, 0, 0, 2, 0, 540, 3, 4, 5, - 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 540, 0, 0, 0, 0, 0, 0, 188, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, - 0, 0, 0, 14, 15, 540, 540, 0, 0, 16, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 19, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 540, 540, 540, 540, 540, 540, 540, 0, + 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 538, 0, 20, 21, 0, 22, 23, 24, - 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 0, 0, 0, 10, - 11, 12, 13, 0, 0, 0, 14, 15, 0, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 19, 0, 0, 0, 0, 0, 539, - 892, 5, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 540, 188, 0, 0, 0, 541, 0, - 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 12, 13, 0, 542, 543, 0, 0, 20, 21, 0, - 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 544, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 545, 546, - 0, 188, 0, 188, 188, 188, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, - 188, 0, 0, 188, 188, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 851, 0, 0, 0, 0, 0, - 188, 188, 188, 188, 0, 188, 188, 0, 852, 0, - 0, 0, 0, 853, 854, 0, 855, 856, 857, 858, - 859, 860, 851, 861, 862, 188, 863, 864, 865, 866, - 867, 0, 0, 0, 0, 0, 852, 0, 0, 0, - 0, 853, 854, 0, 855, 856, 857, 858, 859, 860, - 0, 861, 862, 0, 863, 864, 865, 866, 867, 0, - 188, 188, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 868, 0, 869, 0, 0, 0, 0, 870, - 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, - 188, 188, 188, 188, 0, 871, 0, 0, 0, 0, - 868, 0, 869, 0, 0, 0, 0, 870, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 871, 0, 0, 0, 0, 872, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, - 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, - 884, 885, 886, 887, 888, 889, 890, 0, 0, 0, - 891, 0, 0, 0, 0, 0, 873, 0, 874, 875, - 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 887, 888, 889, 890, 0, 0, 0, 891, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 873, 0, 874, 875, 876, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, + 0, 0, 0, 891, }; static const YYINT yycheck[] = { 4, - 24, 24, 24, 102, 103, 167, 1, 311, 311, 428, - 311, 430, 20, 21, 19, 899, 93, 1, 704, 36, - 37, 779, 27, 28, 29, 30, 22, 23, 996, 1, - 690, 91, 181, 1, 38, 64, 482, 1018, 1188, 46, - 44, 1, 833, 60, 46, 1, 38, 40, 264, 41, - 24, 41, 44, 125, 43, 46, 91, 65, 76, 264, - 46, 123, 123, 41, 72, 59, 123, 364, 167, 1266, - 40, 38, 319, 46, 93, 42, 42, 47, 43, 61, - 45, 767, 105, 44, 46, 40, 13, 91, 507, 508, - 60, 190, 169, 60, 44, 92, 47, 24, 1544, 91, - 1150, 470, 41, 111, 112, 128, 260, 261, 113, 263, - 115, 116, 117, 61, 40, 40, 215, 263, 193, 194, - 195, 196, 197, 145, 91, 40, 148, 125, 151, 262, - 104, 125, 40, 380, 41, 514, 515, 516, 365, 41, - 38, 40, 42, 40, 42, 41, 168, 42, 44, 157, - 42, 156, 157, 911, 912, 288, 233, 40, 91, 41, - 40, 46, 60, 181, 41, 91, 44, 41, 123, 44, - 199, 40, 123, 40, 40, 60, 91, 104, 59, 91, - 41, 44, 187, 345, 62, 208, 203, 59, 61, 43, - 41, 188, 91, 91, 91, 61, 91, 41, 123, 44, - 205, 206, 1399, 42, 41, 210, 41, 43, 91, 342, - 33, 91, 970, 221, 222, 123, 41, 366, 93, 41, - 374, 375, 91, 1669, 91, 260, 261, 232, 263, 156, - 93, 283, 284, 268, 239, 232, 1526, 44, 260, 93, - 167, 40, 1532, 1531, 125, 264, 1004, 46, 93, 311, - 349, 58, 549, 125, 93, 316, 275, 93, 315, 316, - 528, 296, 267, 41, 470, 470, 318, 1317, 123, 267, - 267, 348, 295, 1563, 1562, 91, 1160, 282, 286, 302, - 262, 286, 304, 210, 289, 263, 294, 359, 293, 505, - 506, 507, 364, 298, 299, 300, 301, 1494, 264, 985, - 262, 264, 263, 1533, 274, 365, 288, 686, 40, 260, - 261, 318, 263, 263, 262, 542, 311, 312, 326, 348, - 328, 299, 340, 346, 332, 264, 344, 311, 312, 294, - 320, 321, 340, 341, 1564, 352, 344, 262, 335, 311, - 312, 306, 307, 311, 312, 318, 342, 343, 366, 262, - 347, 311, 312, 732, 262, 311, 312, 264, 366, 324, - 260, 261, 264, 263, 260, 359, 267, 263, 260, 261, - 364, 263, 367, 368, 369, 370, 350, 123, 1064, 414, - 415, 416, 264, 367, 368, 369, 370, 264, 265, 391, - 264, 1541, 59, 360, 361, 362, 296, 40, 395, 367, - 391, 273, 391, 264, 296, 457, 458, 59, 460, 374, - 264, 419, 420, 264, 422, 1396, 424, 435, 345, 346, - 264, 260, 261, 350, 263, 264, 1576, 264, 265, 264, - 426, 439, 440, 40, 813, 421, 275, 260, 261, 264, - 263, 264, 264, 265, 260, 261, 469, 263, 1534, 40, - 599, 43, 268, 45, 40, 262, 263, 296, 463, 452, - 465, 610, 360, 361, 362, 41, 42, 339, 914, 40, - 569, 40, 480, 125, 471, 480, 1267, 123, 359, 1565, - 296, 40, 542, 364, 91, 123, 264, 492, 266, 263, - 498, 1151, 40, 391, 123, 503, 504, 505, 315, 507, - 91, 509, 510, 511, 40, 91, 41, 40, 286, 287, - 506, 123, 508, 480, 38, 91, 512, 91, 42, 898, - 91, 525, 91, 520, 521, 299, 264, 265, 260, 261, - 535, 263, 91, 525, 542, 543, 60, 40, 535, 46, - 617, 535, 536, 537, 538, 539, 540, 541, 46, 546, - 477, 482, 40, 480, 40, 91, 91, 565, 91, 40, - 568, 566, 567, 40, 46, 1323, 1324, 91, 1549, 41, - 593, 502, 472, 260, 261, 592, 263, 595, 543, 451, - 472, 599, 587, 660, 40, 662, 93, 595, 91, 123, - 587, 463, 610, 465, 466, 93, 468, 469, 414, 415, - 416, 40, 610, 91, 601, 91, 755, 624, 625, 123, - 91, 93, 1580, 630, 91, 632, 43, 260, 261, 38, - 263, 273, 260, 42, 59, 263, 264, 635, 40, 40, - 46, 636, 46, 472, 61, 91, 91, 642, 661, 264, - 648, 60, 671, 260, 261, 44, 263, 746, 91, 44, - 275, 659, 91, 752, 535, 536, 537, 538, 539, 540, - 541, 40, 0, 535, 536, 537, 538, 539, 540, 541, - 692, 44, 91, 46, 682, 46, 1560, 93, 701, 91, - 91, 260, 986, 986, 263, 986, 260, 261, 38, 263, - 61, 708, 359, 260, 261, 772, 263, 364, 93, 704, - 41, 42, 294, 40, 709, 1391, 711, 61, 716, 717, - 718, 44, 320, 321, 306, 307, 264, 265, 266, 742, - 40, 59, 706, 719, 306, 260, 261, 1485, 263, 62, - 738, 739, 324, 268, 41, 42, 47, 755, 286, 287, - 745, 1499, 91, 766, 749, 750, 751, 744, 745, 41, - 91, 759, 44, 761, 41, 763, 43, 1176, 781, 1178, - 768, 296, 767, 838, 299, 840, 841, 842, 843, 844, - 788, 306, 44, 769, 46, 427, 91, 429, 430, 797, - 788, 391, 374, 470, 91, 41, 42, 125, 41, 391, - 798, 799, 264, 265, 266, 391, 448, 449, 450, 451, - 41, 1487, 43, 44, 812, 260, 261, 391, 263, 260, - 261, 816, 263, 818, 286, 287, 41, 260, 261, 44, - 263, 41, 899, 43, 829, 1583, 41, 835, 330, 331, - 332, 908, 41, 59, 831, 91, 360, 361, 362, 847, - 266, 849, 277, 278, 279, 462, 281, 282, 283, 284, - 267, 286, 287, 288, 41, 290, 291, 292, 293, 316, - 286, 287, 297, 298, 366, 367, 368, 1625, 535, 536, - 537, 538, 539, 540, 541, 393, 394, 899, 896, 414, - 415, 416, 41, 535, 536, 537, 538, 539, 540, 541, - 44, 899, 46, 59, 41, 462, 43, 42, 1656, 125, - 38, 909, 260, 261, 38, 263, 40, 904, 42, 393, - 394, 260, 261, 1671, 263, 330, 331, 332, 1005, 936, - 1007, 939, 40, 374, 375, 93, 60, 40, 278, 61, - 365, 281, 282, 283, 284, 273, 286, 287, 288, 40, - 1626, 360, 361, 362, 59, 260, 261, 971, 263, 43, - 934, 366, 367, 368, 263, 978, 264, 91, 266, 125, - 41, 984, 260, 261, 93, 263, 1043, 279, 280, 475, - 975, 40, 980, 93, 982, 280, 295, 289, 286, 287, - 985, 300, 1668, 302, 40, 123, 40, 1005, 40, 1007, - 309, 986, 59, 988, 989, 990, 1001, 1005, 995, 1007, - 997, 40, 986, 40, 988, 989, 990, 326, 1085, 40, - 125, 40, 1035, 40, 986, 40, 988, 989, 986, 41, - 42, 1029, 341, 40, 1032, 264, 986, 40, 988, 989, - 986, 295, 330, 331, 1039, 93, 300, 40, 302, 40, - 1037, 294, 281, 282, 283, 309, 125, 273, 301, 91, - 303, 304, 305, 58, 1216, 1217, 1218, 1219, 125, 1064, - 40, 1138, 326, 327, 1226, 1227, 1228, 281, 282, 283, - 284, 409, 410, 411, 412, 413, 38, 341, 260, 91, - 42, 263, 264, 40, 46, 47, 607, 608, 609, 342, - 343, 344, 125, 431, 432, 43, 44, 40, 60, 40, - 535, 536, 537, 538, 539, 540, 541, 273, 372, 40, - 448, 449, 450, 451, 43, 44, 44, 455, 456, 886, - 887, 59, 41, 461, 40, 1133, 464, 40, 123, 91, - 296, 262, 262, 471, 472, 388, 389, 390, 44, 392, - 278, 41, 395, 281, 282, 283, 284, 41, 286, 287, - 288, 1570, 1571, 1161, 1162, 1163, 60, 274, 273, 463, - 1168, 1169, 1170, 1171, 1172, 1173, 274, 1175, 1176, 1177, - 1192, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1174, 1187, - 40, 1189, 1178, 1191, 40, 1193, 40, 125, 526, 527, - 1186, 529, 530, 531, 40, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 1209, 275, 273, 264, 265, 266, - 281, 282, 283, 284, 1291, 1212, 1213, 301, 1236, 303, - 304, 305, 62, 40, 339, 451, 360, 361, 362, 286, - 287, 44, 1250, 123, 1252, 461, 260, 261, 464, 263, - 264, 365, 123, 409, 123, 1253, 123, 58, 260, 261, - 1258, 263, 40, 274, 40, 1260, 268, 40, 317, 41, - 40, 1269, 280, 281, 282, 283, 284, 275, 317, 467, - 310, 1279, 312, 313, 314, 1283, 1284, 61, 40, 1206, - 41, 470, 1381, 61, 296, 451, 1294, 299, 61, 1216, - 1217, 1218, 1219, 470, 306, 461, 44, 41, 464, 1226, - 1227, 1228, 280, 281, 282, 283, 284, 1315, 1316, 535, - 536, 537, 538, 539, 540, 541, 431, 432, 93, 41, - 41, 1329, 1330, 1331, 1332, 1333, 1334, 41, 1336, 281, - 282, 283, 284, 41, 1318, 273, 451, 41, 1415, 1335, - 260, 261, 41, 263, 44, 58, 41, 1369, 463, 125, - 465, 466, 44, 468, 469, 61, 263, 424, 425, 426, - 427, 40, 59, 281, 282, 283, 284, 1372, 61, 535, - 536, 537, 538, 539, 540, 541, 40, 40, 125, 41, - 41, 448, 449, 450, 451, 41, 1391, 38, 41, 40, - 274, 42, 41, 1390, 41, 1400, 41, 0, 360, 361, - 362, 91, 414, 415, 416, 1402, 1414, 41, 328, 60, - 330, 331, 41, 1421, 41, 41, 41, 337, 41, 41, - 535, 536, 537, 538, 539, 540, 541, 41, 125, 41, - 33, 274, 41, 93, 93, 38, 44, 40, 41, 42, - 91, 44, 41, 44, 47, 41, 44, 40, 1432, 40, - 40, 58, 269, 41, 41, 272, 59, 60, 61, 62, - 40, 294, 41, 41, 41, 1488, 40, 62, 535, 536, - 537, 538, 539, 540, 541, 41, 1553, 41, 295, 296, - 91, 40, 1487, 300, 40, 302, 497, 489, 91, 1486, - 93, 501, 309, 431, 432, 41, 277, 125, 61, 61, - 1508, 1509, 1510, 123, 62, 41, 41, 41, 41, 326, - 41, 451, 93, 451, 41, 391, 317, 93, 41, 41, - 123, 317, 125, 41, 341, 463, 40, 465, 40, 58, - 468, 469, 58, 294, 38, 40, 93, 263, 93, 93, - 301, 93, 303, 304, 305, 504, 91, 40, 1545, 59, - 91, 40, 1629, 1561, 123, 93, 1578, 41, 1566, 1567, - 1568, 41, 1570, 1662, 1572, 1573, 1574, 40, 40, 421, - 260, 261, 41, 263, 41, 1571, 273, 93, 268, 44, - 93, 342, 343, 344, 510, 274, 1594, 1595, 1596, 41, - 58, 41, 41, 44, 60, 93, 40, 535, 536, 537, - 538, 539, 540, 541, 61, 40, 296, 40, 40, 260, - 261, 40, 263, 40, 40, 125, 306, 40, 40, 123, - 40, 1626, 40, 40, 125, 62, 41, 388, 389, 390, - 93, 392, 41, 93, 395, 41, 41, 93, 93, 41, - 93, 41, 1665, 41, 41, 93, 93, 41, 41, 1657, - 93, 41, 93, 41, 93, 41, 41, 260, 261, 262, - 263, 41, 93, 1668, 41, 268, 41, 41, 271, 1666, - 273, 274, 275, 276, 277, 278, 279, 93, 281, 282, - 283, 284, 93, 286, 287, 288, 93, 290, 291, 292, - 293, 263, 41, 296, 297, 298, 299, 93, 44, 274, - 41, 41, 41, 306, 40, 308, 93, 40, 311, 360, - 361, 362, 315, 316, 263, 318, 40, 93, 33, 322, - 323, 324, 325, 38, 414, 415, 416, 42, 93, 40, - 40, 58, 41, 277, 278, 279, 339, 281, 282, 283, - 284, 41, 286, 287, 58, 60, 290, 291, 292, 293, - 58, 41, 41, 41, 451, 358, 359, 360, 361, 362, - 40, 364, 365, 273, 461, 40, 40, 464, 41, 41, - 93, 374, 375, 93, 278, 41, 91, 281, 282, 283, - 284, 93, 286, 287, 288, 41, 296, 93, 391, 40, - 40, 40, 40, 396, 397, 398, 399, 400, 401, 402, + 309, 24, 1, 24, 167, 706, 309, 309, 1004, 266, + 984, 1, 20, 21, 19, 1, 181, 899, 102, 103, + 24, 64, 27, 28, 29, 30, 38, 1, 38, 1, + 779, 41, 44, 91, 44, 692, 1, 93, 833, 1174, + 38, 480, 1248, 59, 42, 36, 37, 193, 194, 195, + 196, 197, 40, 46, 24, 61, 43, 65, 22, 23, + 41, 61, 60, 46, 72, 264, 46, 59, 769, 60, + 46, 319, 41, 46, 41, 41, 93, 362, 125, 91, + 43, 91, 105, 167, 341, 41, 46, 125, 13, 46, + 41, 76, 41, 91, 1543, 262, 365, 266, 40, 24, + 59, 40, 1136, 111, 112, 128, 190, 42, 113, 125, + 115, 116, 117, 169, 44, 38, 44, 286, 287, 42, + 44, 288, 470, 41, 260, 261, 263, 263, 151, 42, + 93, 215, 380, 125, 104, 40, 93, 60, 40, 38, + 92, 145, 42, 42, 148, 91, 260, 261, 156, 263, + 155, 156, 91, 42, 44, 40, 199, 43, 93, 41, + 91, 60, 911, 912, 168, 93, 125, 42, 91, 426, + 61, 428, 519, 520, 521, 342, 40, 233, 59, 104, + 343, 123, 187, 264, 40, 208, 91, 123, 1394, 528, + 41, 91, 91, 41, 40, 40, 181, 41, 470, 364, + 205, 206, 44, 93, 41, 210, 91, 93, 41, 958, + 41, 40, 203, 221, 222, 123, 330, 331, 47, 1668, + 91, 123, 123, 41, 264, 260, 261, 232, 263, 267, + 155, 60, 260, 261, 239, 263, 188, 40, 374, 375, + 262, 990, 167, 46, 125, 91, 91, 264, 256, 260, + 261, 93, 263, 261, 262, 263, 262, 265, 275, 267, + 268, 269, 262, 347, 1146, 1299, 33, 123, 272, 554, + 293, 470, 973, 542, 279, 280, 284, 300, 267, 284, + 232, 273, 287, 264, 292, 210, 291, 1493, 288, 262, + 346, 296, 297, 298, 299, 264, 263, 123, 302, 40, + 264, 264, 266, 346, 296, 44, 270, 365, 264, 265, + 309, 310, 359, 264, 273, 264, 324, 364, 326, 309, + 310, 344, 330, 309, 310, 260, 261, 279, 263, 264, + 338, 339, 299, 263, 342, 309, 310, 309, 310, 263, + 275, 688, 318, 359, 309, 310, 264, 265, 364, 1050, + 43, 264, 45, 338, 320, 321, 364, 342, 318, 350, + 262, 296, 360, 361, 362, 123, 365, 366, 367, 368, + 40, 260, 261, 123, 263, 311, 340, 341, 348, 364, + 339, 333, 264, 265, 59, 260, 261, 734, 263, 260, + 261, 365, 263, 345, 123, 1391, 260, 261, 40, 263, + 365, 366, 367, 368, 391, 1540, 262, 296, 391, 417, + 418, 391, 420, 264, 422, 316, 264, 409, 343, 344, + 264, 296, 266, 348, 505, 506, 507, 264, 421, 437, + 438, 264, 40, 264, 462, 470, 601, 360, 361, 362, + 1575, 393, 286, 287, 467, 274, 264, 612, 433, 40, + 125, 462, 59, 61, 1249, 123, 461, 40, 463, 451, + 424, 360, 361, 362, 452, 40, 813, 41, 391, 461, + 478, 1530, 464, 478, 123, 914, 40, 38, 359, 40, + 1137, 42, 480, 364, 542, 490, 46, 495, 496, 497, + 574, 40, 451, 260, 261, 41, 263, 264, 44, 60, + 91, 1532, 1561, 43, 463, 45, 465, 466, 91, 468, + 469, 44, 46, 525, 46, 525, 91, 469, 125, 535, + 536, 537, 538, 539, 540, 541, 60, 91, 269, 61, + 91, 272, 1563, 93, 498, 540, 123, 472, 123, 547, + 548, 315, 91, 535, 536, 537, 538, 539, 540, 541, + 475, 898, 1548, 478, 295, 296, 1305, 1306, 263, 300, + 93, 302, 570, 619, 40, 573, 571, 572, 309, 40, + 40, 1533, 595, 525, 526, 40, 535, 536, 537, 538, + 539, 540, 541, 472, 589, 326, 315, 316, 540, 597, + 260, 261, 757, 263, 299, 46, 40, 472, 273, 551, + 341, 294, 1564, 594, 612, 1579, 662, 61, 664, 59, + 40, 44, 597, 306, 307, 91, 601, 44, 40, 46, + 91, 296, 264, 265, 266, 58, 91, 612, 482, 637, + 673, 324, 40, 638, 47, 626, 627, 589, 91, 644, + 663, 632, 650, 634, 286, 287, 0, 91, 502, 59, + 91, 603, 264, 661, 535, 536, 537, 538, 539, 540, + 541, 91, 40, 275, 748, 974, 273, 40, 91, 91, + 754, 974, 974, 40, 40, 260, 684, 1559, 263, 264, + 703, 374, 41, 376, 43, 1386, 91, 40, 260, 296, + 694, 263, 838, 40, 840, 841, 842, 843, 844, 260, + 261, 706, 263, 38, 46, 59, 711, 42, 40, 708, + 123, 46, 47, 91, 260, 723, 772, 263, 91, 710, + 294, 744, 40, 40, 91, 60, 40, 301, 733, 303, + 304, 305, 740, 741, 409, 1484, 264, 265, 91, 38, + 46, 40, 747, 42, 91, 768, 751, 752, 753, 1498, + 41, 93, 43, 761, 294, 763, 91, 765, 781, 91, + 724, 60, 283, 284, 769, 40, 306, 307, 342, 343, + 344, 125, 757, 91, 91, 43, 451, 91, 260, 261, + 788, 263, 41, 42, 324, 1486, 461, 93, 44, 464, + 798, 799, 91, 61, 746, 747, 44, 318, 46, 360, + 361, 362, 409, 788, 812, 41, 62, 260, 261, 40, + 263, 816, 797, 818, 388, 389, 390, 40, 392, 260, + 261, 395, 263, 40, 829, 260, 261, 835, 263, 262, + 263, 40, 91, 1582, 374, 41, 42, 260, 261, 847, + 263, 849, 41, 899, 451, 44, 59, 260, 261, 44, + 263, 46, 908, 40, 461, 260, 261, 464, 263, 40, + 535, 536, 537, 538, 539, 540, 541, 277, 278, 279, + 40, 281, 282, 283, 284, 1624, 286, 287, 288, 831, + 290, 291, 292, 293, 40, 91, 41, 297, 298, 44, + 59, 899, 374, 375, 40, 899, 41, 42, 38, 40, + 44, 909, 42, 41, 42, 1162, 1655, 1164, 264, 359, + 1525, 896, 125, 41, 364, 43, 1531, 40, 62, 273, + 60, 1670, 320, 321, 1625, 281, 282, 283, 535, 536, + 537, 538, 539, 540, 541, 934, 457, 458, 959, 460, + 279, 280, 991, 966, 993, 936, 91, 1562, 306, 972, + 289, 91, 904, 91, 939, 365, 125, 47, 963, 391, + 968, 41, 970, 391, 260, 261, 1667, 263, 973, 267, + 264, 41, 266, 1029, 391, 974, 391, 976, 977, 978, + 43, 44, 987, 991, 974, 993, 976, 977, 974, 41, + 976, 977, 286, 287, 264, 265, 266, 41, 1021, 41, + 974, 301, 974, 303, 304, 305, 991, 1015, 993, 974, + 1018, 976, 977, 978, 316, 1071, 286, 287, 42, 260, + 1025, 91, 263, 264, 40, 360, 361, 362, 264, 265, + 266, 983, 328, 985, 330, 331, 40, 1200, 1201, 1202, + 1203, 337, 609, 610, 611, 1050, 59, 1210, 1211, 1212, + 286, 287, 393, 394, 93, 409, 410, 411, 412, 413, + 273, 360, 361, 362, 393, 394, 61, 59, 1124, 295, + 41, 1023, 43, 44, 300, 40, 302, 431, 432, 281, + 282, 283, 284, 309, 43, 535, 536, 537, 538, 539, + 540, 541, 43, 44, 448, 449, 450, 451, 41, 42, + 326, 455, 456, 263, 273, 886, 887, 461, 41, 463, + 464, 1119, 125, 93, 475, 341, 40, 471, 472, 281, + 282, 283, 284, 59, 40, 535, 536, 537, 538, 539, + 540, 541, 310, 125, 312, 313, 314, 59, 40, 1147, + 1148, 1149, 281, 282, 283, 284, 1154, 1155, 1156, 1157, + 1158, 1159, 40, 1161, 1162, 1163, 280, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 93, 1173, 93, 1175, 40, 1177, + 339, 1179, 526, 527, 1178, 529, 530, 531, 40, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 1193, 125, + 260, 261, 91, 263, 125, 58, 1160, 40, 268, 40, + 1164, 40, 40, 125, 330, 331, 332, 40, 1172, 44, + 125, 41, 280, 281, 282, 283, 284, 1273, 431, 432, + 360, 361, 362, 41, 40, 40, 296, 1235, 262, 299, + 123, 262, 1240, 44, 38, 1220, 306, 1242, 451, 41, + 366, 367, 368, 1251, 1196, 1197, 41, 1232, 60, 1234, + 463, 274, 465, 1261, 41, 468, 469, 1265, 1266, 463, + 273, 41, 431, 432, 41, 1190, 274, 41, 1276, 280, + 281, 282, 283, 284, 41, 1200, 1201, 1202, 1203, 41, + 40, 273, 451, 40, 59, 1210, 1211, 1212, 41, 1297, + 1298, 41, 1376, 41, 463, 41, 465, 466, 41, 468, + 469, 1300, 41, 1311, 1312, 1313, 1314, 1315, 1316, 41, + 1318, 41, 1569, 1570, 260, 261, 44, 263, 264, 123, + 275, 62, 535, 536, 537, 538, 539, 540, 541, 281, + 282, 283, 284, 295, 123, 365, 58, 273, 300, 123, + 302, 123, 123, 40, 414, 415, 416, 309, 274, 41, + 125, 273, 40, 1317, 1410, 275, 330, 331, 332, 317, + 1364, 317, 1367, 467, 326, 327, 535, 536, 537, 538, + 539, 540, 541, 40, 296, 61, 470, 61, 61, 341, + 44, 1386, 0, 38, 470, 41, 93, 38, 41, 41, + 1395, 42, 366, 367, 368, 41, 41, 41, 41, 58, + 41, 1409, 44, 61, 44, 125, 91, 263, 1416, 60, + 372, 424, 425, 426, 427, 33, 40, 40, 40, 125, + 38, 41, 40, 41, 42, 61, 44, 41, 1427, 47, + 41, 41, 41, 1385, 41, 448, 449, 450, 451, 93, + 91, 59, 60, 61, 62, 1397, 274, 277, 278, 279, + 274, 281, 282, 283, 284, 93, 286, 287, 288, 451, + 290, 291, 292, 293, 1487, 41, 44, 297, 298, 461, + 41, 44, 464, 91, 278, 93, 41, 281, 282, 283, + 284, 1486, 286, 287, 288, 44, 40, 409, 58, 40, + 40, 427, 41, 429, 430, 41, 1552, 40, 273, 1507, + 1508, 1509, 59, 41, 41, 123, 41, 125, 40, 294, + 62, 41, 448, 449, 450, 451, 91, 41, 40, 497, + 489, 296, 535, 536, 537, 538, 539, 540, 541, 451, + 40, 501, 277, 1485, 41, 365, 61, 125, 61, 461, + 123, 62, 464, 535, 536, 537, 538, 539, 540, 541, + 41, 41, 1560, 41, 451, 391, 41, 1565, 1566, 1567, + 93, 1569, 93, 1571, 1572, 1573, 317, 41, 125, 40, + 317, 40, 1628, 1577, 58, 260, 261, 1661, 263, 58, + 93, 93, 93, 268, 93, 1593, 1594, 1595, 40, 263, + 504, 91, 1544, 91, 40, 40, 123, 93, 41, 535, + 536, 537, 538, 539, 540, 541, 1570, 41, 40, 260, + 261, 296, 263, 535, 536, 537, 538, 539, 540, 541, + 1625, 306, 40, 278, 41, 421, 281, 282, 283, 284, + 41, 286, 287, 288, 409, 93, 93, 510, 44, 274, + 41, 1664, 260, 261, 262, 263, 58, 41, 1656, 41, + 268, 91, 60, 271, 44, 273, 274, 275, 276, 277, + 278, 279, 1667, 281, 282, 283, 284, 93, 286, 287, + 288, 59, 290, 291, 292, 293, 451, 61, 296, 297, + 298, 299, 40, 40, 38, 40, 461, 40, 306, 464, + 308, 40, 40, 311, 40, 40, 40, 315, 316, 41, + 318, 40, 40, 40, 322, 323, 324, 325, 41, 360, + 361, 362, 125, 1665, 93, 62, 273, 41, 93, 41, + 93, 339, 41, 93, 41, 93, 41, 93, 41, 414, + 415, 416, 41, 93, 41, 123, 44, 125, 41, 41, + 358, 359, 360, 361, 362, 41, 364, 365, 41, 41, + 93, 41, 93, 93, 41, 41, 374, 375, 93, 93, + 535, 536, 537, 538, 539, 540, 541, 93, 93, 123, + 41, 263, 41, 391, 41, 93, 41, 274, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 41, 40, 93, 93, 0, + 260, 261, 263, 263, 40, 93, 40, 40, 268, 40, + 448, 449, 450, 451, 41, 453, 454, 455, 456, 58, + 58, 459, 41, 461, 41, 463, 464, 465, 466, 58, + 468, 469, 33, 471, 472, 473, 296, 38, 41, 40, + 41, 42, 480, 44, 40, 40, 47, 41, 93, 41, + 93, 41, 260, 93, 41, 263, 93, 40, 59, 60, + 61, 62, 40, 40, 40, 273, 40, 40, 40, 40, + 508, 509, 510, 40, 451, 40, 40, 40, 263, 41, + 40, 93, 41, 93, 461, 60, 40, 464, 526, 527, + 91, 529, 530, 531, 40, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 278, 58, 40, 281, 282, 283, + 284, 40, 286, 287, 288, 263, 41, 40, 274, 41, + 41, 91, 123, 41, 125, 41, 40, 510, 41, 41, + 40, 40, 294, 358, 41, 41, 40, 123, 274, 301, + 41, 303, 304, 305, 269, 41, 125, 272, 41, 44, + 40, 62, 41, 41, 414, 415, 416, 123, 535, 536, + 537, 538, 539, 540, 541, 91, 123, 123, 123, 41, + 295, 296, 41, 125, 125, 300, 123, 302, 62, 123, + 342, 343, 344, 125, 309, 123, 41, 41, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 326, 41, 123, 62, 413, 125, 41, 123, 417, + 418, 419, 420, 421, 422, 123, 341, 40, 40, 180, + 41, 41, 828, 431, 432, 123, 388, 389, 390, 997, + 392, 415, 1020, 395, 741, 895, 1503, 1258, 995, 1124, + 448, 449, 450, 451, 1182, 914, 703, 1242, 1259, 1246, + 904, 459, 475, 38, 348, 24, 901, 9, 1186, 260, + 261, 114, 263, 549, 24, 473, 756, 268, 760, 607, + 271, 673, 273, 274, 275, 276, 277, 278, 279, 302, + 281, 282, 283, 284, 64, 286, 287, 487, 366, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + 508, 509, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, 535, 536, 537, + 538, 539, 540, 541, 260, 261, 33, 263, 123, -1, + -1, 38, 268, 40, 41, 42, -1, 44, -1, -1, + 47, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + 296, -1, -1, 374, 375, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, 91, 468, 469, -1, + 471, 472, 473, -1, 294, 260, -1, -1, 263, 480, + -1, 301, -1, 303, 304, 305, -1, -1, 414, 415, + 416, -1, -1, 278, -1, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 342, 343, 344, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, 288, -1, 290, 291, 292, 293, -1, -1, + -1, 297, 298, 260, 261, -1, 263, -1, 388, 389, + 390, 268, 392, -1, 271, 395, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, + 91, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, 365, + -1, -1, -1, -1, -1, 260, 261, 262, 263, 264, + 33, 260, 261, 268, 263, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, 283, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, 296, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, 320, 321, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, 355, 356, 357, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, 380, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, 262, -1, 260, + 261, -1, 263, 480, -1, -1, -1, 268, -1, 414, + 415, 416, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, 288, -1, 290, 291, 292, 293, -1, + -1, 508, 509, -1, 299, 296, -1, -1, 299, -1, + -1, -1, -1, -1, -1, 306, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 474, -1, 476, 477, 478, + 479, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, 123, 290, 291, 292, + 293, -1, -1, 296, 297, 298, 299, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, 414, 415, 416, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 40, 40, 40, 40, 0, 40, 40, 40, 535, 536, - 537, 538, 539, 540, 541, 448, 449, 450, 451, 41, - 453, 454, 455, 456, 40, 263, 459, 93, 461, 60, - 463, 464, 465, 466, 58, 468, 469, 33, 471, 472, - 473, 41, 38, 93, 40, 41, 42, 480, 44, 40, - 40, 47, 40, 40, 263, 41, 40, 358, 41, 91, - 41, 41, 41, 59, 60, 61, 62, 40, 40, 409, - 41, 274, 41, 40, 510, 508, 509, 510, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 526, 527, 91, 529, 530, 531, 41, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 41, - 543, 451, 274, 40, 123, 260, 261, 41, 263, 41, - 125, 461, 41, 268, 464, 123, 271, 123, 123, 125, - 275, 276, 277, 278, 279, 44, 281, 282, 283, 284, - 125, 286, 287, 125, 62, 290, 291, 292, 293, 123, - 40, 296, 297, 298, 62, 294, 41, 123, 41, 59, - 123, 306, 301, 308, 303, 304, 305, 38, 123, 125, - 123, 42, 41, 41, 41, 41, 125, 123, 323, 324, - 325, 41, 123, 62, 123, 41, 40, 40, 123, 60, - 41, 180, 417, 828, 1011, 535, 536, 537, 538, 539, - 540, 541, 739, 342, 343, 344, 1034, 895, 1504, 1276, - 1009, 1138, 914, 358, 1196, 360, 361, 362, 1260, 701, - 91, 904, 350, 1264, 1277, 125, 477, 24, 9, 374, - 375, 1200, 901, 114, 24, 544, 754, 758, 605, 304, - 64, 671, 368, -1, -1, 489, -1, -1, -1, 388, - 389, 390, -1, 392, -1, -1, 395, -1, 38, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, 414, - 415, 416, 268, 59, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, 269, -1, -1, 272, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, 91, -1, -1, 322, 323, 324, 325, - 295, 296, -1, -1, -1, 300, -1, 302, -1, 125, - -1, 33, -1, 123, 309, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, 47, -1, -1, -1, -1, - -1, 326, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, 273, -1, -1, 341, -1, 374, 375, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - 261, -1, 263, -1, -1, 391, 296, -1, 543, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - 260, -1, -1, 263, 480, -1, -1, 273, -1, 360, - 361, 362, 260, 261, 262, 263, 264, -1, 278, -1, - 268, 281, 282, 283, 284, -1, 286, 287, 288, 409, - 296, -1, 508, 509, -1, 283, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, - -1, 451, 320, 321, -1, -1, -1, -1, -1, -1, - -1, 461, -1, -1, 464, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, 59, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, 409, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, 535, 536, 537, 538, 539, - 540, 541, -1, 125, -1, 33, 414, 415, 416, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, 451, 358, -1, 360, 361, - 362, 59, 60, 61, 62, 461, -1, -1, 464, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, 535, - 536, 537, 538, 539, 540, 541, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, 262, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, - -1, 273, -1, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, - -1, -1, -1, -1, 296, 299, 508, 509, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, 294, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, 309, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, + -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, 348, 349, 350, 351, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, 380, 381, 382, 383, 384, 385, 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, 41, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + 299, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, 260, + 261, -1, 263, 38, -1, 40, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, 355, 356, 357, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 380, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, 271, -1, -1, -1, + -1, 480, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, -1, 297, 298, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, 346, -1, 474, -1, 476, 477, 478, 479, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + 365, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, 299, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, 40, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, 409, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 260, 261, -1, 263, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, 451, - 358, -1, 360, 361, 362, 59, 60, 61, 62, 461, - -1, -1, 464, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, 355, 356, 357, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 380, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, 288, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, - -1, -1, -1, -1, 474, -1, 476, 477, 478, 479, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, 365, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, 123, 290, 291, 292, 293, - -1, -1, 296, 297, 298, 299, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 391, -1, -1, - -1, 91, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, 294, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, 309, -1, -1, -1, -1, 480, -1, -1, 277, - 278, 279, -1, 281, 282, 283, 284, 325, 286, 287, - 288, -1, 290, 291, 292, 293, 334, -1, -1, 297, - 298, -1, -1, -1, 508, 509, -1, -1, -1, -1, - 348, 349, 350, 351, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, - -1, -1, 380, 381, 382, 383, 384, 385, 386, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, 365, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, - -1, -1, -1, -1, 0, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, 260, 261, - -1, 263, 38, -1, 40, 41, 42, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 360, 361, 362, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, -1, -1, 91, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 123, 428, 125, - -1, 431, 432, 355, 356, 357, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 380, 459, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, 299, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, 40, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, 299, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, 40, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, -1, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, -1, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, -1, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, -1, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, -1, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, -1, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, -1, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, -1, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, -1, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, -1, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, -1, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, 38, -1, -1, + 41, 42, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, + 91, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, 0, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, 38, -1, -1, 41, 42, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 360, + 361, 362, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, -1, -1, 91, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 123, 428, 125, -1, + 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, -1, 0, -1, 306, + -1, 308, -1, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, 38, -1, -1, 41, 42, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, 360, 361, 362, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, 91, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, -1, + -1, 0, -1, 306, -1, 308, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, -1, -1, -1, -1, 38, + -1, -1, 41, 42, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, 360, 361, 362, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 391, -1, + -1, -1, 91, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 123, 428, 125, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, + -1, -1, 271, -1, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, + -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, + -1, -1, -1, -1, -1, 0, -1, 306, -1, 308, + -1, -1, 311, -1, -1, -1, -1, 316, -1, -1, + -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 38, -1, -1, 41, 42, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, 361, 362, 59, 60, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 391, -1, -1, -1, 91, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 123, 428, + 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, + 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, + -1, -1, -1, 268, -1, -1, 271, -1, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, + -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, + -1, 296, 297, 298, -1, -1, -1, -1, -1, 0, + -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, + -1, 316, -1, -1, -1, -1, -1, 322, 323, 324, + 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, 360, 361, 362, 59, -1, + 61, 62, -1, -1, -1, -1, -1, -1, -1, 374, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 41, 391, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, + 465, -1, -1, 468, 469, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, + 311, -1, -1, -1, -1, 316, -1, -1, -1, -1, + -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, + -1, -1, -1, -1, -1, 301, -1, 303, 304, 305, + -1, -1, -1, -1, -1, -1, -1, 358, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 342, 343, 344, -1, + 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 123, -1, 125, -1, 428, -1, -1, + 431, 432, 388, 389, 390, -1, 392, -1, -1, 395, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, -1, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, 296, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 33, -1, -1, -1, 323, -1, -1, -1, + 327, -1, -1, 330, 331, -1, -1, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 260, -1, -1, 263, -1, -1, 353, -1, -1, 356, + -1, -1, -1, 273, -1, -1, 363, 277, 278, 279, + -1, 281, 282, 283, 284, 372, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + 271, 471, 472, 473, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, + 0, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 123, -1, 125, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, 261, -1, 263, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, 323, -1, 59, -1, + 327, -1, -1, 330, 331, -1, -1, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 260, -1, -1, 263, -1, -1, 353, -1, -1, 356, + -1, -1, -1, 273, -1, -1, 363, 277, 278, 279, + -1, 281, 282, 283, 284, 372, 286, 287, 288, -1, + 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, + -1, -1, 123, -1, 125, -1, -1, -1, 271, 59, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 322, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, -1, -1, -1, 339, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 359, + 323, 324, 325, -1, 364, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 0, -1, -1, -1, -1, 260, + -1, -1, 263, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 273, 453, 454, 455, 456, -1, -1, 459, + -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, + -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, + -1, -1, -1, 273, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, 322, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, + 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, + 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, + 471, 472, 473, -1, -1, -1, -1, -1, -1, 409, + -1, 411, 412, 413, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, -1, 260, -1, -1, 263, 448, 449, + 450, 451, -1, 453, 454, 526, 527, 273, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, 473, -1, -1, -1, -1, -1, -1, + 296, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, 0, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, 448, 449, 450, 451, 273, 453, 454, 455, + 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, + 466, -1, 468, 469, -1, 471, 472, 473, -1, 296, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, + -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, + 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, + 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, 466, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, 260, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 273, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, 294, 295, -1, 296, -1, -1, 300, -1, 302, + -1, -1, -1, -1, -1, 123, 309, 125, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, 326, 327, 42, 329, 330, 331, 332, + 333, -1, -1, -1, -1, 338, -1, 339, 341, -1, + -1, -1, -1, -1, 347, -1, -1, -1, -1, 352, + -1, 354, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 366, 367, 368, 369, 370, 371, 372, + 373, -1, -1, -1, -1, -1, 379, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 273, 274, 459, -1, 461, + -1, 463, 464, 465, 466, -1, 468, 469, -1, 471, + 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 311, 61, -1, -1, -1, 316, -1, + -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, 276, + 277, -1, 279, 280, 281, 282, 283, 284, -1, 286, + 287, -1, 289, 290, 291, 292, 293, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, + 468, 469, -1, 471, 472, 473, -1, 40, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, 274, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, 311, -1, -1, -1, -1, 316, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 484, 485, -1, + 487, 488, 489, -1, 491, 492, -1, -1, 495, 496, + -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 273, 274, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, + -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, -1, 428, -1, -1, 431, 432, + 260, 59, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, 448, 449, 450, 451, -1, + 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, + 463, 464, 465, -1, -1, 468, 469, -1, 471, 472, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 260, -1, 464, 263, -1, -1, -1, -1, + -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 260, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, 59, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 508, 509, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 273, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 59, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, + 451, 260, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 431, 432, 464, 273, -1, -1, -1, -1, -1, + 471, 472, 473, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, 123, -1, + 125, 471, 472, -1, -1, -1, -1, 508, 509, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, -1, -1, 59, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 273, -1, + 459, -1, 461, -1, -1, 464, -1, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 260, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, 448, 449, 450, 451, -1, 453, 454, + 455, 456, -1, -1, 459, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, + 260, -1, 464, 263, -1, -1, -1, -1, -1, 471, + 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, -1, 428, -1, + -1, 431, 432, 260, -1, -1, 263, 44, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, 448, 449, + 450, 451, 59, 453, 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, 271, -1, -1, -1, -1, - 480, 277, 278, 279, -1, 281, 282, 283, 284, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, + -1, 468, 469, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 0, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 322, -1, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + 59, -1, 61, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, 423, 358, 359, -1, + 260, 428, -1, 263, 431, 432, 125, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, + -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, + -1, -1, 0, -1, 471, 472, 473, -1, -1, -1, + -1, -1, -1, 414, 415, 416, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + 451, -1, -1, -1, -1, -1, -1, -1, -1, 526, + 527, 59, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 273, -1, -1, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 125, 428, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, 448, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 125, 459, + -1, 461, -1, 322, 464, -1, -1, -1, -1, -1, + -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 423, -1, -1, -1, -1, 428, + 125, -1, 431, 432, -1, 273, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, + -1, -1, 461, -1, -1, 464, 273, -1, -1, -1, + -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, + 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 409, 410, 411, 412, 413, -1, -1, 273, -1, + 0, -1, -1, -1, -1, 423, -1, -1, -1, -1, + 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, + -1, -1, 409, 410, 411, 412, 413, -1, 59, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, + -1, -1, -1, 461, 431, 432, 464, -1, -1, -1, + -1, -1, -1, 471, 472, 473, -1, -1, -1, 59, + -1, 448, 449, 450, 451, -1, -1, -1, 455, 456, + -1, -1, -1, -1, 461, -1, -1, 464, -1, -1, + -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, + 508, 509, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, + -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, + 538, 539, 540, 541, -1, 125, -1, -1, -1, -1, + -1, 273, -1, -1, 409, 410, 411, 412, 413, 526, + 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 409, 410, 411, + 412, 413, -1, 273, -1, -1, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, 0, -1, 471, + 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 409, 410, + 411, 412, 413, -1, 526, 527, 59, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 431, 432, -1, -1, -1, -1, -1, -1, -1, 409, + 410, 411, 412, 413, -1, -1, -1, 448, 449, 450, + 451, 125, -1, -1, 455, 456, -1, -1, 273, -1, + 461, 431, 432, 464, -1, -1, -1, -1, 0, -1, + 471, 472, -1, -1, -1, -1, -1, -1, 448, 449, + 450, 451, 125, -1, -1, 455, 456, -1, -1, -1, + -1, 461, -1, -1, 464, -1, -1, -1, -1, -1, + -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, 527, 59, 529, 530, + 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, + 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, + 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, 409, 410, 411, 412, 413, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, 59, 60, -1, + -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, + -1, -1, -1, -1, 125, 409, 410, 411, 412, 413, + -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, + 413, 123, -1, 125, 448, 449, 450, 451, -1, -1, + -1, 455, 456, -1, -1, -1, -1, 461, 431, 432, + 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, 455, 456, -1, -1, -1, -1, 461, -1, + -1, 464, -1, -1, -1, -1, -1, -1, 471, 472, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, + 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, + 412, 413, 273, 526, 527, -1, 529, 530, 531, -1, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 431, + 432, -1, -1, -1, 41, -1, -1, -1, 260, -1, + 47, 263, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 273, 59, 455, 456, -1, -1, -1, -1, 461, + -1, 322, 464, -1, -1, -1, -1, -1, 271, 471, + 472, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, -1, -1, 297, 298, 33, -1, -1, -1, + -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + 323, 324, 325, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, -1, -1, -1, -1, -1, 409, -1, + 411, 412, 413, -1, 91, 358, -1, -1, -1, -1, + -1, -1, 423, -1, -1, -1, -1, 428, -1, -1, + 431, 432, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 448, 449, 450, + 451, 413, 453, 454, -1, 417, 418, 419, 420, 421, + 422, 41, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, 473, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, + -1, 473, -1, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, 274, -1, -1, + -1, -1, -1, -1, 535, 536, 537, 538, 539, 540, + 541, -1, -1, 123, -1, 125, 508, 509, 510, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, 275, 276, + 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, + 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, + 297, 298, -1, -1, -1, -1, 123, -1, 125, 306, + -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 391, 59, 323, 324, 325, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, + 260, 358, 359, 263, 431, 432, -1, -1, -1, -1, + -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, + -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 414, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 273, 274, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, + 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, + 420, 421, 422, -1, -1, -1, 260, -1, -1, 263, + -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, + 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, + 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, + 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, + -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, + 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, + 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, + 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, + 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + -1, 535, 536, 537, 538, 539, 540, 541, -1, 59, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, -1, -1, 260, -1, -1, 263, 431, 432, + -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, + -1, -1, -1, 123, -1, 125, 459, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, 260, -1, -1, + 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, -1, -1, 413, -1, -1, + -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, + 260, -1, -1, 263, -1, 431, 432, -1, -1, -1, + -1, -1, -1, 273, 123, -1, 125, -1, -1, -1, + -1, -1, 448, 449, 450, 451, -1, -1, -1, -1, + -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, + 413, -1, -1, -1, 417, 418, 419, 420, 421, 422, + -1, -1, 508, 509, -1, -1, -1, -1, 431, 432, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 448, 449, 450, 451, 535, + 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 473, -1, -1, -1, -1, -1, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 260, -1, 413, 263, -1, -1, 417, 418, 419, + 420, 421, 422, -1, 273, 508, 509, -1, -1, -1, + -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, 448, 449, + 450, 451, 535, 536, 537, 538, 539, 540, 541, 459, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, 535, 536, 537, 538, 539, + 540, 541, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 125, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, -1, -1, 260, -1, + -1, 263, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, 448, + 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, + 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, + 509, 260, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, + -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, + 422, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, -1, 448, 449, 450, 451, + -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, -1, -1, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, -1, -1, 413, -1, -1, -1, 417, 418, + 419, 420, 421, 422, -1, -1, 508, 509, -1, -1, + -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, 409, 410, 411, 412, 413, 448, + 449, 450, 451, 535, 536, 537, 538, 539, 540, 541, + 459, -1, -1, -1, -1, -1, 431, 432, -1, -1, + -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, + 455, 456, -1, -1, -1, -1, 461, -1, -1, 464, + -1, -1, -1, -1, -1, -1, 471, 472, -1, 508, + 509, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, + 539, 540, 541, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 322, 526, 527, -1, 529, 530, 531, -1, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 409, 410, 411, + 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, -1, -1, 455, 456, -1, -1, -1, -1, 461, + -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, + 472, -1, -1, -1, -1, -1, -1, 409, -1, 411, + 412, 413, 33, -1, -1, -1, -1, -1, -1, -1, + -1, 423, -1, -1, -1, -1, 428, -1, -1, 431, + 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, + -1, 453, 454, -1, 526, 527, -1, 529, 530, 531, + -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, + -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + 33, 281, 282, 283, 284, 38, 286, 287, -1, 42, + 290, 291, 292, 293, 294, -1, -1, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, 60, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, 327, -1, 329, + 330, 331, 332, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, + -1, -1, 372, -1, -1, -1, 376, 377, 378, -1, + 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, 294, -1, -1, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 323, 324, 325, -1, 327, 33, 329, 330, + 331, 332, 38, -1, -1, -1, 42, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, + 480, 372, -1, -1, -1, 376, 377, 378, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, + 263, -1, -1, -1, -1, 268, -1, -1, 271, -1, + -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, + 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, + 293, -1, 33, 296, 297, 298, -1, 38, -1, -1, + -1, 42, -1, 306, -1, 308, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 91, 33, -1, -1, -1, 358, 38, 360, 361, 362, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 374, 375, -1, -1, -1, -1, -1, 60, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, 414, 415, 416, 260, 261, -1, 263, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, + 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, + 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, + 296, 297, 298, -1, -1, 33, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 358, 91, 360, 361, 362, -1, -1, 260, + 261, -1, 263, -1, -1, -1, -1, 268, 374, 375, + 271, -1, -1, 33, 275, 276, 277, 278, 279, -1, + 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, + 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, + -1, -1, -1, -1, -1, 306, -1, 308, 414, 415, + 416, -1, -1, -1, -1, -1, -1, -1, 260, 261, + -1, 263, 323, 324, 325, -1, 268, -1, -1, 271, + -1, 91, -1, 275, 276, 277, 278, 279, -1, 281, + 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, + 292, 293, -1, -1, 296, 297, 298, 358, -1, 360, + 361, 362, -1, -1, 306, -1, 308, -1, -1, 33, + -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, + -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 414, 415, 416, 358, -1, 360, 361, + 362, -1, 260, 261, -1, 263, -1, 91, -1, -1, + 268, -1, -1, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 33, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, 414, 415, 416, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, 327, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, 261, -1, 263, -1, 91, -1, -1, 268, -1, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, 372, 33, 296, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 414, 415, 416, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, 260, 261, 358, 263, + -1, -1, -1, -1, 268, -1, -1, 271, -1, -1, + -1, 275, 276, 277, 278, 279, -1, 281, 282, 283, + 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, + -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, + -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 416, -1, -1, 323, + 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, + -1, -1, 268, 33, 123, 271, -1, -1, -1, 275, + 276, 277, 278, 279, 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, -1, 508, 509, + 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, + 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, + -1, 91, -1, -1, -1, 33, -1, -1, -1, -1, + 414, 415, 416, 41, -1, -1, -1, -1, -1, -1, + -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, + 268, -1, 358, 271, -1, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, + 298, -1, -1, 91, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, 257, -1, + -1, -1, -1, 33, -1, 323, 324, 325, 414, 415, + 416, -1, 271, -1, -1, -1, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, -1, 286, 287, -1, + 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, + 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 335, -1, 337, -1, + -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 414, 415, 416, 358, + -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, 391, -1, -1, -1, 306, -1, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, + -1, -1, -1, 271, -1, -1, -1, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, + -1, -1, 290, 291, 292, 293, -1, -1, 358, 297, + 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, + -1, -1, 481, -1, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 271, -1, -1, 503, -1, 276, 277, 278, 279, + 358, 281, 282, 283, 284, -1, 286, 287, -1, -1, + 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, + -1, -1, -1, -1, -1, -1, 306, 257, 308, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 271, -1, 323, 324, 325, 276, 277, -1, 279, + 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, + 290, 291, 292, 293, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 335, -1, 337, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 481, -1, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, -1, -1, 503, +}; +#if YYBTYACC +static const YYINT yyctable[] = { -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, - 346, -1, 474, -1, 476, 477, 478, 479, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, 365, - -1, -1, 268, -1, -1, 271, -1, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, 299, -1, -1, -1, -1, 0, -1, - 306, -1, 308, -1, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, 360, 361, 362, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, 91, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, 299, -1, -1, - -1, -1, 0, -1, 306, -1, 308, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, 323, 324, 325, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, 59, 60, 61, 62, -1, -1, -1, -1, -1, - -1, -1, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 391, - -1, -1, -1, 91, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 123, 428, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, - 268, -1, -1, 271, -1, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, 296, 297, - 298, -1, -1, -1, -1, -1, 0, -1, 306, -1, - 308, -1, -1, 311, -1, -1, -1, -1, 316, -1, - -1, -1, -1, -1, 322, 323, 324, 325, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, 360, 361, 362, 59, 60, 61, 62, -1, - -1, -1, -1, -1, -1, -1, 374, 375, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 391, -1, -1, -1, 91, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 123, - 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, 459, -1, 461, -1, 463, 464, 465, -1, -1, - 468, 469, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - 0, -1, 306, -1, 308, -1, -1, 311, -1, -1, - -1, -1, 316, -1, -1, -1, -1, -1, 322, 323, - 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, - 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, 361, 362, 59, - -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, 391, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 123, 428, 125, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, 463, - 464, 465, -1, -1, 468, 469, -1, 471, 472, 473, - -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, - -1, 311, -1, -1, -1, -1, 316, -1, -1, -1, - -1, -1, 322, 323, 324, 325, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, - -1, -1, -1, -1, -1, -1, 301, -1, 303, 304, - 305, -1, -1, -1, -1, -1, -1, -1, 358, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 342, 343, 344, - -1, 391, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 123, -1, 125, -1, 428, -1, - -1, 431, 432, 388, 389, 390, -1, 392, -1, -1, - 395, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, -1, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, - 272, 0, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, 294, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, 323, -1, -1, - -1, 327, -1, -1, 330, 331, -1, -1, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 260, -1, -1, 263, -1, -1, 353, -1, -1, - 356, 543, -1, -1, 273, -1, -1, 363, 277, 278, - 279, -1, 281, 282, 283, 284, 372, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, - 272, 0, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 123, -1, 125, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, 294, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, 323, -1, -1, - -1, 327, -1, -1, 330, 331, -1, -1, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 260, -1, -1, 263, -1, -1, 353, -1, -1, - 356, 543, -1, -1, 273, -1, -1, 363, 277, 278, - 279, -1, 281, 282, 283, 284, 372, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, - -1, 0, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 123, -1, 125, -1, -1, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, 543, -1, -1, 273, -1, -1, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, - -1, 0, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 322, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, -1, 297, 298, -1, -1, -1, - 339, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 359, 323, 324, 325, -1, 364, 365, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - -1, 543, -1, -1, 273, -1, -1, -1, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, 288, - -1, 290, 291, 292, 293, -1, -1, 296, 297, 298, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - 59, 294, 295, -1, -1, -1, -1, 300, -1, 302, - -1, -1, -1, 322, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, 326, 327, -1, 329, 330, 331, 332, - 333, -1, -1, -1, -1, 338, -1, -1, 341, -1, - 359, -1, -1, -1, 347, 364, 365, -1, -1, 352, - -1, 354, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 366, 367, 368, 369, 370, 371, 372, - 373, -1, -1, -1, -1, -1, 379, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 0, -1, -1, -1, -1, - 260, -1, -1, 263, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 273, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, 466, -1, 468, - 469, -1, 471, 472, 473, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, 339, - -1, -1, -1, -1, 273, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, 322, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, 455, 456, -1, -1, 459, - -1, 461, -1, 463, 464, 465, 466, -1, 468, 469, - -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, - 409, -1, 411, 412, 413, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 423, -1, -1, -1, -1, 428, - -1, -1, 431, 432, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, -1, 260, -1, -1, 263, 448, - 449, 450, 451, -1, 453, 454, 526, 527, 273, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, 473, -1, -1, -1, -1, -1, - -1, 296, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 322, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 0, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, 448, 449, 450, 451, 273, 453, 454, - 455, 456, -1, -1, 459, -1, 461, -1, 463, 464, - 465, 466, -1, 468, 469, -1, 471, 472, 473, -1, - 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, - -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, - -1, 526, 527, -1, 529, 530, 531, -1, 533, 534, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - 466, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - 526, 527, 273, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 391, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, 260, 261, -1, 263, 448, 449, 450, - 451, -1, 453, 454, 455, 456, 273, 274, 459, -1, - 461, -1, 463, 464, 465, 466, -1, 468, 469, -1, - 471, 472, 473, -1, 40, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 311, 61, -1, -1, -1, 316, - -1, -1, -1, -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, 463, 464, 465, -1, - -1, 468, 469, -1, 471, 472, 473, -1, 40, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, 274, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, 311, -1, -1, -1, -1, - 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, -1, 297, 298, -1, - -1, 0, -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 358, -1, - 59, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, 273, 274, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, - -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, - 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, 543, -1, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, -1, 428, -1, -1, 431, - 432, 260, 59, -1, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, 448, 449, 450, 451, - -1, 453, 454, 455, 456, -1, -1, 459, -1, 461, - -1, 463, 464, 465, -1, -1, 468, 469, -1, 471, - 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, -1, - 459, -1, 461, 260, -1, 464, 263, -1, -1, -1, - -1, -1, 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, -1, -1, 59, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 260, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 273, - 59, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, 459, -1, 461, -1, -1, 464, -1, -1, - -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, - -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, 273, -1, 459, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, 322, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 59, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, -1, -1, 448, 449, - 450, 451, 260, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 431, 432, 464, 273, -1, -1, -1, -1, - -1, 471, 472, 473, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, - -1, -1, 461, -1, 463, 464, -1, -1, -1, 123, - -1, 125, 471, 472, -1, -1, -1, -1, 508, 509, - -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, -1, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, 59, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, 273, - -1, 459, -1, 461, -1, -1, 464, -1, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 260, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, -1, 448, 449, 450, 451, -1, 453, - 454, 455, 456, -1, -1, 459, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 322, -1, -1, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 260, -1, 464, 263, -1, -1, -1, -1, -1, - 471, 472, 473, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 322, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, -1, 428, - -1, -1, 431, 432, 260, -1, -1, 263, 44, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, 448, - 449, 450, 451, 59, 453, 454, 455, 456, -1, -1, - 459, -1, 461, -1, 463, 464, 465, -1, -1, 468, - 469, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, 322, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, 463, 464, 465, - -1, -1, 468, 469, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 509, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, 0, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 322, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, -1, -1, -1, 275, 276, 277, 278, 279, - -1, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, 59, -1, 61, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, 419, 420, 421, 422, 423, 358, 359, - -1, 260, 428, -1, 263, 431, 432, 125, -1, -1, - -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, - -1, -1, 448, 449, 450, 451, -1, 453, 454, 455, - 456, -1, -1, 459, -1, 461, -1, -1, 464, -1, - -1, -1, -1, 0, -1, 471, 472, 473, -1, -1, - -1, -1, -1, -1, 414, 415, 416, -1, -1, -1, - -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, - -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, - 526, 527, 59, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 273, -1, -1, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 125, 428, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 543, -1, -1, 0, -1, -1, 448, - 449, 450, 451, -1, 453, 454, 455, 456, -1, 125, - 459, -1, 461, -1, 322, 464, -1, -1, -1, -1, - -1, -1, 471, 472, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, 508, - 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, - -1, 409, 410, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, - 428, 125, -1, 431, 432, -1, 273, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, - -1, -1, -1, 461, -1, -1, 464, 273, -1, -1, - -1, -1, -1, 471, 472, 473, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, - -1, 529, 530, 531, -1, 533, 534, 535, 536, 537, - 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, 409, 410, 411, 412, 413, -1, -1, 273, - -1, 0, -1, -1, -1, -1, 423, -1, -1, -1, - -1, 428, -1, -1, 431, 432, -1, -1, -1, -1, - -1, -1, -1, 409, 410, 411, 412, 413, -1, 59, - -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, - -1, -1, -1, -1, 461, 431, 432, 464, -1, -1, - -1, -1, -1, -1, 471, 472, 473, -1, -1, -1, - 59, -1, 448, 449, 450, 451, -1, -1, -1, 455, - 456, -1, -1, -1, -1, 461, -1, -1, 464, -1, - -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, - -1, 508, 509, -1, -1, 125, -1, -1, -1, -1, - -1, -1, 42, -1, -1, -1, -1, -1, -1, 526, - 527, -1, 529, 530, 531, -1, 533, 534, 535, 536, - 537, 538, 539, 540, 541, -1, 125, -1, -1, -1, - -1, -1, 273, -1, -1, 409, 410, 411, 412, 413, - 526, 527, -1, 529, 530, 531, -1, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 0, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 409, 410, - 411, 412, 413, -1, 273, -1, -1, -1, -1, -1, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, 455, 456, -1, 257, -1, -1, - 461, -1, -1, 464, -1, -1, -1, -1, 0, -1, - 471, 472, -1, -1, -1, -1, 276, 277, -1, 279, - 280, 281, 282, 283, 284, -1, 286, 287, -1, 289, - 290, 291, 292, 293, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, - 410, 411, 412, 413, -1, 526, 527, 59, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 431, 432, -1, -1, -1, -1, -1, -1, -1, - 409, 410, 411, 412, 413, -1, -1, -1, 448, 449, - 450, 451, 125, -1, -1, 455, 456, -1, -1, 273, - -1, 461, 431, 432, 464, -1, -1, -1, -1, 0, - -1, 471, 472, -1, -1, -1, -1, -1, -1, 448, - 449, 450, 451, 125, -1, -1, 455, 456, -1, -1, - -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, 527, 59, 529, - 530, 531, -1, 533, 534, 535, 536, 537, 538, 539, - 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, -1, 484, 485, -1, 487, 488, 489, - -1, 491, 492, -1, -1, 495, 496, -1, 498, -1, - -1, -1, -1, -1, 125, 409, 410, 411, 412, 413, - 273, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 273, -1, -1, 448, 449, 450, 451, -1, -1, - -1, 455, 456, -1, -1, -1, -1, 461, -1, -1, - 464, -1, -1, -1, -1, -1, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 526, 527, -1, 529, 530, 531, -1, 533, - 534, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, -1, -1, -1, 409, 410, 411, 412, - 413, -1, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, - -1, -1, -1, -1, -1, -1, -1, 409, 410, 411, - 412, 413, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, 455, 456, -1, -1, -1, -1, 461, 431, - 432, 464, -1, -1, -1, -1, -1, -1, 471, 472, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, 33, -1, 455, 456, -1, 38, -1, -1, 461, - 42, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 526, 527, -1, 529, 530, 531, -1, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 91, - -1, -1, -1, -1, -1, -1, -1, -1, 409, 410, - 411, 412, 413, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, -1, -1, -1, 455, 456, -1, -1, -1, -1, - 461, -1, -1, 464, -1, -1, -1, -1, -1, -1, - 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, -1, -1, 38, -1, - -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, 527, -1, 529, 530, - 531, -1, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 91, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, - -1, 263, -1, -1, -1, -1, 268, -1, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, -1, -1, 296, 297, 298, -1, -1, -1, - -1, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 358, -1, 360, 361, - 362, -1, 33, -1, -1, -1, -1, 38, -1, -1, - -1, 42, 374, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, -1, 263, -1, -1, -1, -1, 268, -1, - -1, 271, 414, 415, 416, 275, 276, 277, 278, 279, - 91, 281, 282, 283, 284, -1, 286, 287, -1, -1, - 290, 291, 292, 293, -1, -1, 296, 297, 298, -1, - -1, -1, -1, -1, -1, -1, 306, -1, 308, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, 294, -1, -1, 297, 298, 358, -1, - 360, 361, 362, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, 374, 375, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, 327, -1, 329, 330, - 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 543, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, 415, 416, 358, -1, -1, - -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, - -1, 372, -1, -1, -1, 376, 377, 378, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, 260, - 261, -1, 263, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, 284, -1, 286, 287, -1, -1, 290, - 291, 292, 293, -1, -1, 296, 297, 298, -1, -1, - -1, -1, -1, -1, -1, 306, -1, 308, -1, -1, - -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, - -1, -1, -1, 543, -1, -1, -1, 358, -1, 360, - 361, 362, -1, -1, 271, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, 294, -1, -1, - 297, 298, 91, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, 414, 415, 416, 323, 324, 325, 33, - 327, -1, 329, 330, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, -1, -1, -1, -1, -1, 366, - 367, 368, 369, -1, -1, 372, -1, -1, -1, 376, - 377, 378, -1, -1, -1, -1, -1, 91, -1, -1, - -1, -1, -1, 260, 261, -1, 263, -1, -1, -1, - -1, 268, -1, -1, 271, -1, -1, 33, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, -1, 286, - 287, -1, -1, 290, 291, 292, 293, -1, -1, 296, - 297, 298, -1, -1, -1, -1, -1, -1, -1, 306, - -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, -1, -1, -1, 323, 324, 325, -1, - 327, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, 260, 261, -1, 263, -1, -1, -1, -1, 268, - -1, -1, 271, 480, -1, -1, 275, 276, 277, 278, - 279, 358, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, 372, -1, 296, 297, 298, - -1, -1, -1, -1, -1, -1, -1, 306, 33, 308, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 543, 414, 415, 416, - -1, -1, -1, -1, -1, -1, 260, 261, -1, 263, - -1, -1, -1, -1, 268, -1, -1, 271, -1, 358, - 359, 275, 276, 277, 278, 279, 91, 281, 282, 283, - 284, -1, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, 296, 297, 298, -1, -1, -1, -1, -1, - -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, 323, - 324, 325, -1, -1, -1, 414, 415, 416, -1, -1, - -1, -1, -1, -1, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, 358, 281, 282, 283, 284, -1, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, 91, 543, -1, -1, -1, - 306, 33, 308, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 358, -1, -1, -1, -1, -1, -1, 91, - -1, -1, -1, -1, -1, 260, 261, -1, 263, -1, - -1, -1, -1, 268, 543, -1, 271, -1, -1, 33, - 275, 276, 277, 278, 279, -1, 281, 282, 283, 284, - -1, 286, 287, -1, -1, 290, 291, 292, 293, -1, - -1, 296, 297, 298, -1, -1, -1, -1, 414, 415, - 416, 306, -1, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, - 325, -1, -1, -1, 33, -1, -1, 91, -1, -1, - -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 543, - -1, -1, -1, 358, 260, 261, -1, 263, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, -1, - 286, 287, 91, -1, 290, 291, 292, 293, -1, -1, - 296, 297, 298, -1, -1, -1, -1, 33, -1, -1, - 306, -1, 308, -1, -1, -1, -1, -1, -1, 414, - 415, 416, -1, -1, -1, -1, -1, 323, 324, 325, - -1, -1, -1, -1, -1, -1, -1, 543, -1, 271, - -1, -1, -1, 275, 276, 277, 278, 279, -1, 281, - 282, 283, 284, -1, 286, 287, -1, -1, 290, 291, - 292, 293, 358, -1, -1, 297, 298, -1, -1, -1, - 33, -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 271, 414, 415, - 416, 275, 276, 277, 278, 279, 358, 281, 282, 283, - 284, 40, 286, 287, -1, -1, 290, 291, 292, 293, - -1, -1, -1, 297, 298, -1, -1, -1, 543, -1, - 59, 60, 306, -1, 308, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, - 324, 325, 271, -1, -1, -1, -1, 276, 277, 278, - 279, -1, 281, 282, 283, 284, -1, 286, 287, -1, - -1, 290, 291, 292, 293, -1, -1, -1, 297, 298, - -1, -1, -1, -1, 358, -1, -1, 306, -1, 308, - -1, -1, -1, 91, 123, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 323, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 271, -1, 543, -1, 275, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 358, - 286, 287, -1, -1, 290, 291, 292, 293, -1, -1, - -1, 297, 298, -1, -1, -1, -1, -1, -1, -1, - 306, -1, 308, 41, -1, -1, -1, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, 323, 324, 325, - -1, 59, -1, -1, -1, -1, -1, -1, 271, -1, - -1, 543, 275, 276, 277, 278, 279, -1, 281, 282, - 283, 284, -1, 286, 287, -1, -1, 290, 291, 292, - 293, -1, 358, -1, 297, 298, -1, -1, -1, -1, - -1, -1, -1, 306, -1, 308, -1, -1, -1, -1, - -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, - 323, 324, 325, -1, 273, 123, 41, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, 543, - -1, -1, -1, 271, -1, 358, -1, -1, 276, 277, - 278, 279, -1, 281, 282, 283, 284, -1, 286, 287, - -1, -1, 290, 291, 292, 293, -1, -1, -1, 297, - 298, -1, -1, -1, -1, -1, -1, -1, 306, -1, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 543, 323, 324, 325, 123, -1, - 125, -1, -1, -1, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 358, -1, -1, -1, -1, -1, -1, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 260, -1, 413, 263, -1, -1, 417, 418, - 419, 420, 421, 422, -1, 273, 274, 543, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, 123, -1, 125, -1, -1, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, -1, -1, -1, -1, - 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 543, -1, -1, -1, -1, 260, -1, -1, 263, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 273, 508, - 509, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 535, 536, 537, 538, - 539, 540, 541, 391, 59, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, -1, -1, -1, 417, - 418, 419, 420, 421, 422, 543, -1, -1, 260, -1, - -1, 263, -1, 431, 432, -1, -1, -1, -1, -1, - -1, 273, 274, -1, -1, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, -1, -1, -1, 123, -1, - 125, 459, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, 391, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, -1, - -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, - 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 448, 449, 450, 451, 535, 536, 537, - 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, - -1, -1, -1, -1, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, -1, -1, -1, 417, 418, 419, 420, 421, - 422, -1, -1, 508, 509, 260, -1, -1, 263, 431, - 432, -1, -1, -1, -1, -1, -1, -1, 273, 123, - -1, 125, -1, -1, -1, -1, 448, 449, 450, 451, - 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 535, 536, 537, 538, 539, 540, 541, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 260, -1, 413, 263, - -1, -1, 417, 418, 419, 420, 421, 422, -1, 273, - -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, -1, -1, 448, 449, 450, 451, -1, -1, -1, - -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 273, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, - -1, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, - -1, -1, -1, 417, 418, 419, 420, 421, 422, -1, - -1, -1, 260, -1, -1, 263, -1, 431, 432, -1, - -1, -1, -1, -1, -1, 273, 123, -1, 125, -1, - -1, -1, -1, -1, 448, 449, 450, 451, -1, -1, - -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, -1, -1, -1, -1, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - -1, -1, 413, -1, -1, -1, 417, 418, 419, 420, - 421, 422, -1, -1, 508, 509, -1, -1, -1, -1, - 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, - 451, 535, 536, 537, 538, 539, 540, 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 473, -1, -1, -1, -1, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 260, -1, 413, 263, -1, -1, 417, - 418, 419, 420, 421, 422, -1, 273, 508, 509, -1, - -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, - 448, 449, 450, 451, 535, 536, 537, 538, 539, 540, - 541, 459, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 59, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, - 260, -1, -1, 263, 431, 432, -1, -1, -1, -1, - -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, -1, -1, -1, -1, 123, - -1, 125, 459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 508, 509, 260, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 535, 536, - 537, 538, 539, 540, 541, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, -1, -1, 413, -1, -1, -1, 417, 418, 419, - 420, 421, 422, -1, -1, -1, 260, 59, -1, 263, - -1, 431, 432, -1, -1, -1, -1, -1, -1, 273, - 123, -1, 125, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, 125, -1, -1, 413, -1, -1, -1, - 417, 418, 419, 420, 421, 422, -1, -1, 508, 509, - -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 448, 449, 450, 451, 535, 536, 537, 538, 539, - 540, 541, 459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, - 59, -1, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 260, -1, 413, - 263, -1, -1, 417, 418, 419, 420, 421, 422, -1, - 273, 508, 509, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 448, 449, 450, 451, 535, 536, - 537, 538, 539, 540, 541, 459, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, - -1, -1, -1, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, 59, -1, -1, 417, 418, 419, 420, 421, 422, - -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 448, 449, 450, 451, -1, - -1, -1, -1, -1, 273, -1, 459, 409, 410, 411, - 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, - 473, -1, -1, -1, -1, -1, -1, 125, -1, 431, - 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 449, 450, 451, - -1, -1, -1, 455, 456, 508, 509, -1, -1, 461, - -1, -1, 464, -1, -1, -1, -1, -1, -1, 471, - 472, -1, -1, 273, -1, -1, -1, -1, -1, -1, - -1, -1, 535, 536, 537, 538, 539, 540, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, 526, 527, -1, 529, 530, 531, - -1, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 409, 410, 411, 412, 413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 431, 432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 273, -1, -1, -1, 448, - 449, 450, 451, -1, -1, -1, 455, 456, -1, -1, - -1, -1, 461, -1, -1, 464, -1, -1, -1, -1, - -1, -1, 471, 472, -1, -1, -1, -1, -1, 409, - 123, 411, 412, 413, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 423, 322, -1, -1, -1, 428, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, - 450, 451, -1, 453, 454, -1, -1, 526, 527, -1, - 529, 530, 531, -1, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 508, 509, - -1, 409, -1, 411, 412, 413, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, - 428, -1, -1, 431, 432, 535, 536, 537, 538, 539, - 540, 541, -1, -1, 257, -1, -1, -1, -1, -1, - 448, 449, 450, 451, -1, 453, 454, -1, 271, -1, - -1, -1, -1, 276, 277, -1, 279, 280, 281, 282, - 283, 284, 257, 286, 287, 473, 289, 290, 291, 292, - 293, -1, -1, -1, -1, -1, 271, -1, -1, -1, - -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, - -1, 286, 287, -1, 289, 290, 291, 292, 293, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 335, -1, 337, -1, -1, -1, -1, 342, - -1, -1, -1, -1, -1, -1, -1, 535, 536, 537, - 538, 539, 540, 541, -1, 358, -1, -1, -1, -1, - 335, -1, 337, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, -1, -1, -1, - 503, -1, -1, -1, -1, -1, 481, -1, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, -1, -1, -1, 503, -}; -#if YYBTYACC -static const YYINT yyctable[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5978,15 +7361,17 @@ static const YYINT yyctable[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, }; #endif #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 543 -#define YYUNDFTOKEN 733 +#define YYMAXTOKEN 542 +#define YYUNDFTOKEN 732 #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) #if YYDEBUG static const char *const yyname[] = { @@ -6042,39 +7427,39 @@ static const char *const yyname[] = { "CF_","CLSID_","VECTOR_","_SUBSYSTEM","_CORFLAGS","ALIGNMENT_","_IMAGEBASE", "_STACKRESERVE","_TYPEDEF","_TEMPLATE","_TYPELIST","_MSCORLIB","P_DEFINE", "P_UNDEF","P_IFDEF","P_IFNDEF","P_ELSE","P_ENDIF","P_INCLUDE","CONSTRAINT_", -"CONST_","$accept","decls","dottedName","id","methodName","atOpt","slashedName", -"labels","callConv","callKind","int32","customHead","customHeadWithOwner", -"vtfixupAttr","paramAttr","ddItemCount","variantType","repeatOpt","truefalse", -"typarAttrib","typarAttribs","conTyparAttrib","conTyparAttribs","iidParamIndex", -"genArity","genArityNotEmpty","float64","int64","sigArgs0","sigArgs1","sigArg", -"type","bound","bounds1","bytes","hexbytes","nativeType","marshalBlob", -"initOpt","compQstring","caValue","marshalClause","fieldInit","serInit", -"fieldSerInit","constTypeArg","f32seq","f64seq","i8seq","i16seq","i32seq", -"i64seq","boolSeq","sqstringSeq","classSeq","objSeq","simpleType","tyArgs0", -"tyArgs1","tyArgs2","typeList","typeListNotEmpty","tyBound","customBlobDescr", -"serializType","customBlobArgs","customBlobNVPairs","secAttrBlob", -"secAttrSetBlob","fieldOrProp","intOrWildcard","typarsRest","typars", -"typarsClause","className","typeSpec","ownerType","customType","memberRef", -"methodRef","mdtoken","classAttr","methAttr","fieldAttr","implAttr","eventAttr", -"propAttr","pinvAttr","nameValPairs","nameValPair","secAction","psetHead", -"fileAttr","fileEntry","asmAttr","exptAttr","manresAttr","customDescr", -"customDescrWithOwner","instr_none","instr_var","instr_i","instr_i8","instr_r", -"instr_brtarget","instr_method","instr_field","instr_type","instr_string", -"instr_sig","instr_tok","instr_switch","instr_r_head","decl","classHead", -"classDecls","nameSpaceHead","methodHead","methodDecls","fieldDecl","dataDecl", -"vtableDecl","vtfixupDecl","extSourceSpec","fileDecl","assemblyHead", -"assemblyDecls","assemblyRefHead","assemblyRefDecls","exptypeHead", -"exptypeDecls","manifestResHead","manifestResDecls","moduleHead","secDecl", -"customAttrDecl","languageDecl","typedefDecl","compControl","classNameSeq", -"vtableHead","_class","classHeadBegin","extendsClause","implClause","implList", -"classDecl","eventHead","eventDecls","propHead","propDecls","exportHead", -"methodSpec","eventDecl","propDecl","methodHeadPart1","marshalBlobHead", -"localsHead","methodDecl","sehBlock","instr","scopeBlock","scopeOpen", -"tryBlock","sehClauses","sehClause","tryHead","catchClause","handlerBlock", -"filterClause","finallyClause","faultClause","filterHead","ddHead","ddBody", -"tls","ddItemList","ddItem","bytearrayhead","esHead","hashHead","assemblyDecl", -"asmOrRefDecl","publicKeyHead","localeHead","publicKeyTokenHead", -"assemblyRefDecl","exptypeDecl","manifestResDecl","illegal-symbol", +"$accept","decls","dottedName","id","methodName","atOpt","slashedName","labels", +"callConv","callKind","int32","customHead","customHeadWithOwner","vtfixupAttr", +"paramAttr","ddItemCount","variantType","repeatOpt","truefalse","typarAttrib", +"typarAttribs","conTyparAttrib","conTyparAttribs","iidParamIndex","genArity", +"genArityNotEmpty","float64","int64","sigArgs0","sigArgs1","sigArg","type", +"bound","bounds1","bytes","hexbytes","nativeType","marshalBlob","initOpt", +"compQstring","caValue","marshalClause","fieldInit","serInit","fieldSerInit", +"constTypeArg","f32seq","f64seq","i8seq","i16seq","i32seq","i64seq","boolSeq", +"sqstringSeq","classSeq","objSeq","simpleType","tyArgs0","tyArgs1","tyArgs2", +"typeList","typeListNotEmpty","tyBound","customBlobDescr","serializType", +"customBlobArgs","customBlobNVPairs","secAttrBlob","secAttrSetBlob", +"fieldOrProp","intOrWildcard","typarsRest","typars","typarsClause","className", +"typeSpec","ownerType","customType","memberRef","methodRef","mdtoken", +"classAttr","methAttr","fieldAttr","implAttr","eventAttr","propAttr","pinvAttr", +"nameValPairs","nameValPair","secAction","psetHead","fileAttr","fileEntry", +"asmAttr","exptAttr","manresAttr","customDescr","customDescrWithOwner", +"instr_none","instr_var","instr_i","instr_i8","instr_r","instr_brtarget", +"instr_method","instr_field","instr_type","instr_string","instr_sig", +"instr_tok","instr_switch","instr_r_head","decl","classHead","classDecls", +"nameSpaceHead","methodHead","methodDecls","fieldDecl","dataDecl","vtableDecl", +"vtfixupDecl","extSourceSpec","fileDecl","assemblyHead","assemblyDecls", +"assemblyRefHead","assemblyRefDecls","exptypeHead","exptypeDecls", +"manifestResHead","manifestResDecls","moduleHead","secDecl","customAttrDecl", +"languageDecl","typedefDecl","compControl","classNameSeq","vtableHead","_class", +"classHeadBegin","extendsClause","implClause","implList","classDecl", +"eventHead","eventDecls","propHead","propDecls","exportHead","methodSpec", +"eventDecl","propDecl","methodHeadPart1","marshalBlobHead","localsHead", +"methodDecl","sehBlock","instr","scopeBlock","scopeOpen","tryBlock", +"sehClauses","sehClause","tryHead","catchClause","handlerBlock","filterClause", +"finallyClause","faultClause","filterHead","ddHead","ddBody","tls","ddItemList", +"ddItem","bytearrayhead","esHead","hashHead","assemblyDecl","asmOrRefDecl", +"publicKeyHead","localeHead","publicKeyTokenHead","assemblyRefDecl", +"exptypeDecl","manifestResDecl","illegal-symbol", }; static const char *const yyrule[] = { "$accept : decls", @@ -6238,8 +7623,8 @@ static const char *const yyrule[] = { "conTyparAttrib : FLAGS_ '(' int32 ')'", "conTyparAttribs :", "conTyparAttribs : conTyparAttrib conTyparAttribs", -"typars : CONST_ conTyparAttribs type tyBound dottedName typarsRest", -"typars : CONST_ conTyparAttribs type dottedName typarsRest", +"typars : LITERAL_ conTyparAttribs type tyBound dottedName typarsRest", +"typars : LITERAL_ conTyparAttribs type dottedName typarsRest", "typars : typarAttribs tyBound dottedName typarsRest", "typars : typarAttribs dottedName typarsRest", "typarsRest :", @@ -6773,7 +8158,7 @@ static const char *const yyrule[] = { "type : OBJECT_", "type : VALUE_ CLASS_ className", "type : VALUETYPE_ className", -"type : CONST_ constTypeArg", +"type : constTypeArg", "type : type '[' ']'", "type : type '[' bounds1 ']'", "type : type '&'", @@ -7078,11 +8463,11 @@ static YYINT *yylexp = 0; static YYINT *yylexemes = 0; #endif /* YYBTYACC */ -#line 2114 "asmparse.y" +#line 2113 "asmparse.y" #include "grammar_after.cpp" -#line 7086 "asmparse.cpp" +#line 8471 "asmparse.cpp" /* For use in generated program */ #define yydepth (int)(yystack.s_mark - yystack.s_base) @@ -7753,45 +9138,45 @@ YYPARSE_DECL() switch (yyn) { case 3: -#line 195 "asmparse.y" +#line 194 "asmparse.y" { PASM->EndClass(); } -#line 7759 "asmparse.cpp" +#line 9144 "asmparse.cpp" break; case 4: -#line 196 "asmparse.y" +#line 195 "asmparse.y" { PASM->EndNameSpace(); } -#line 7764 "asmparse.cpp" +#line 9149 "asmparse.cpp" break; case 5: -#line 197 "asmparse.y" +#line 196 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 7772 "asmparse.cpp" +#line 9157 "asmparse.cpp" break; case 12: -#line 207 "asmparse.y" +#line 206 "asmparse.y" { PASMM->EndAssembly(); } -#line 7777 "asmparse.cpp" +#line 9162 "asmparse.cpp" break; case 13: -#line 208 "asmparse.y" +#line 207 "asmparse.y" { PASMM->EndAssembly(); } -#line 7782 "asmparse.cpp" +#line 9167 "asmparse.cpp" break; case 14: -#line 209 "asmparse.y" +#line 208 "asmparse.y" { PASMM->EndComType(); } -#line 7787 "asmparse.cpp" +#line 9172 "asmparse.cpp" break; case 15: -#line 210 "asmparse.y" +#line 209 "asmparse.y" { PASMM->EndManifestRes(); } -#line 7792 "asmparse.cpp" +#line 9177 "asmparse.cpp" break; case 19: -#line 214 "asmparse.y" +#line 213 "asmparse.y" { #ifdef _PREFAST_ #pragma warning(push) @@ -7802,799 +9187,799 @@ case 19: #pragma warning(pop) #endif } -#line 7806 "asmparse.cpp" +#line 9191 "asmparse.cpp" break; case 20: -#line 224 "asmparse.y" +#line 223 "asmparse.y" { PASM->m_dwComImageFlags = yystack.l_mark[0].int32; } -#line 7811 "asmparse.cpp" +#line 9196 "asmparse.cpp" break; case 21: -#line 225 "asmparse.y" +#line 224 "asmparse.y" { PASM->m_dwFileAlignment = yystack.l_mark[0].int32; if((yystack.l_mark[0].int32 & (yystack.l_mark[0].int32 - 1))||(yystack.l_mark[0].int32 < 0x200)||(yystack.l_mark[0].int32 > 0x10000)) PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n");} -#line 7818 "asmparse.cpp" +#line 9203 "asmparse.cpp" break; case 22: -#line 228 "asmparse.y" +#line 227 "asmparse.y" { PASM->m_stBaseAddress = (ULONGLONG)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; if(PASM->m_stBaseAddress & 0xFFFF) PASM->report->error("Invalid image base, must be 0x10000-aligned\n");} -#line 7825 "asmparse.cpp" +#line 9210 "asmparse.cpp" break; case 23: -#line 231 "asmparse.y" +#line 230 "asmparse.y" { PASM->m_stSizeOfStackReserve = (size_t)(*(yystack.l_mark[0].int64)); delete yystack.l_mark[0].int64; } -#line 7830 "asmparse.cpp" +#line 9215 "asmparse.cpp" break; case 28: -#line 236 "asmparse.y" +#line 235 "asmparse.y" { PASM->m_fIsMscorlib = TRUE; } -#line 7835 "asmparse.cpp" +#line 9220 "asmparse.cpp" break; case 31: -#line 243 "asmparse.y" +#line 242 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 7840 "asmparse.cpp" +#line 9225 "asmparse.cpp" break; case 32: -#line 244 "asmparse.y" +#line 243 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 7845 "asmparse.cpp" +#line 9230 "asmparse.cpp" break; case 33: -#line 247 "asmparse.y" +#line 246 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLang)); } -#line 7850 "asmparse.cpp" +#line 9235 "asmparse.cpp" break; case 34: -#line 248 "asmparse.y" +#line 247 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLang)); LPCSTRToGuid(yystack.l_mark[0].string,&(PASM->m_guidLangVendor));} -#line 7856 "asmparse.cpp" +#line 9241 "asmparse.cpp" break; case 35: -#line 250 "asmparse.y" +#line 249 "asmparse.y" { LPCSTRToGuid(yystack.l_mark[-4].string,&(PASM->m_guidLang)); LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidLangVendor)); LPCSTRToGuid(yystack.l_mark[-2].string,&(PASM->m_guidDoc));} -#line 7863 "asmparse.cpp" +#line 9248 "asmparse.cpp" break; case 36: -#line 255 "asmparse.y" +#line 254 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7868 "asmparse.cpp" +#line 9253 "asmparse.cpp" break; case 37: -#line 256 "asmparse.y" +#line 255 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7873 "asmparse.cpp" +#line 9258 "asmparse.cpp" break; case 38: -#line 259 "asmparse.y" +#line 258 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7878 "asmparse.cpp" +#line 9263 "asmparse.cpp" break; case 39: -#line 260 "asmparse.y" +#line 259 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 7883 "asmparse.cpp" +#line 9268 "asmparse.cpp" break; case 40: -#line 261 "asmparse.y" +#line 260 "asmparse.y" { yyval.string = newStringWDel(yystack.l_mark[-2].string, '.', yystack.l_mark[0].string); } -#line 7888 "asmparse.cpp" +#line 9273 "asmparse.cpp" break; case 41: -#line 264 "asmparse.y" +#line 263 "asmparse.y" { yyval.int32 = yystack.l_mark[0].int32; } -#line 7893 "asmparse.cpp" +#line 9278 "asmparse.cpp" break; case 42: -#line 267 "asmparse.y" +#line 266 "asmparse.y" { yyval.int64 = yystack.l_mark[0].int64; } -#line 7898 "asmparse.cpp" +#line 9283 "asmparse.cpp" break; case 43: -#line 268 "asmparse.y" +#line 267 "asmparse.y" { yyval.int64 = neg ? new __int64(yystack.l_mark[0].int32) : new __int64((unsigned)yystack.l_mark[0].int32); } -#line 7903 "asmparse.cpp" +#line 9288 "asmparse.cpp" break; case 44: -#line 271 "asmparse.y" +#line 270 "asmparse.y" { yyval.float64 = yystack.l_mark[0].float64; } -#line 7908 "asmparse.cpp" +#line 9293 "asmparse.cpp" break; case 45: -#line 272 "asmparse.y" +#line 271 "asmparse.y" { float f; *((__int32*) (&f)) = yystack.l_mark[-1].int32; yyval.float64 = new double(f); } -#line 7913 "asmparse.cpp" +#line 9298 "asmparse.cpp" break; case 46: -#line 273 "asmparse.y" +#line 272 "asmparse.y" { yyval.float64 = (double*) yystack.l_mark[-1].int64; } -#line 7918 "asmparse.cpp" +#line 9303 "asmparse.cpp" break; case 47: -#line 277 "asmparse.y" +#line 276 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].binstr,yystack.l_mark[0].string); } -#line 7923 "asmparse.cpp" +#line 9308 "asmparse.cpp" break; case 48: -#line 278 "asmparse.y" +#line 277 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } -#line 7928 "asmparse.cpp" +#line 9313 "asmparse.cpp" break; case 49: -#line 279 "asmparse.y" +#line 278 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].token,yystack.l_mark[0].string); } -#line 7933 "asmparse.cpp" +#line 9318 "asmparse.cpp" break; case 50: -#line 280 "asmparse.y" +#line 279 "asmparse.y" { yystack.l_mark[-2].cad->tkOwner = 0; PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } -#line 7938 "asmparse.cpp" +#line 9323 "asmparse.cpp" break; case 51: -#line 281 "asmparse.y" +#line 280 "asmparse.y" { PASM->AddTypeDef(yystack.l_mark[-2].cad,yystack.l_mark[0].string); } -#line 7943 "asmparse.cpp" +#line 9328 "asmparse.cpp" break; case 52: -#line 286 "asmparse.y" +#line 285 "asmparse.y" { DefineVar(yystack.l_mark[0].string, NULL); } -#line 7948 "asmparse.cpp" +#line 9333 "asmparse.cpp" break; case 53: -#line 287 "asmparse.y" +#line 286 "asmparse.y" { DefineVar(yystack.l_mark[-1].string, yystack.l_mark[0].binstr); } -#line 7953 "asmparse.cpp" +#line 9338 "asmparse.cpp" break; case 54: -#line 288 "asmparse.y" +#line 287 "asmparse.y" { UndefVar(yystack.l_mark[0].string); } -#line 7958 "asmparse.cpp" +#line 9343 "asmparse.cpp" break; case 55: -#line 289 "asmparse.y" +#line 288 "asmparse.y" { SkipToken = !IsVarDefined(yystack.l_mark[0].string); IfEndif++; } -#line 7965 "asmparse.cpp" +#line 9350 "asmparse.cpp" break; case 56: -#line 292 "asmparse.y" +#line 291 "asmparse.y" { SkipToken = IsVarDefined(yystack.l_mark[0].string); IfEndif++; } -#line 7972 "asmparse.cpp" +#line 9357 "asmparse.cpp" break; case 57: -#line 295 "asmparse.y" +#line 294 "asmparse.y" { if(IfEndif == 1) SkipToken = !SkipToken;} -#line 7977 "asmparse.cpp" +#line 9362 "asmparse.cpp" break; case 58: -#line 296 "asmparse.y" +#line 295 "asmparse.y" { if(IfEndif == 0) PASM->report->error("Unmatched #endif\n"); else IfEndif--; } -#line 7985 "asmparse.cpp" +#line 9370 "asmparse.cpp" break; case 59: -#line 300 "asmparse.y" +#line 299 "asmparse.y" { _ASSERTE(!"yylex should have dealt with this"); } -#line 7990 "asmparse.cpp" +#line 9375 "asmparse.cpp" break; case 60: -#line 301 "asmparse.y" +#line 300 "asmparse.y" { } -#line 7995 "asmparse.cpp" +#line 9380 "asmparse.cpp" break; case 61: -#line 305 "asmparse.y" +#line 304 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[0].token, NULL); } -#line 8000 "asmparse.cpp" +#line 9385 "asmparse.cpp" break; case 62: -#line 306 "asmparse.y" +#line 305 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } -#line 8005 "asmparse.cpp" +#line 9390 "asmparse.cpp" break; case 63: -#line 307 "asmparse.y" +#line 306 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 8010 "asmparse.cpp" +#line 9395 "asmparse.cpp" break; case 64: -#line 308 "asmparse.y" +#line 307 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } -#line 8015 "asmparse.cpp" +#line 9400 "asmparse.cpp" break; case 65: -#line 311 "asmparse.y" +#line 310 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-2].token, yystack.l_mark[0].token, NULL); } -#line 8020 "asmparse.cpp" +#line 9405 "asmparse.cpp" break; case 66: -#line 312 "asmparse.y" +#line 311 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-4].token, yystack.l_mark[-2].token, yystack.l_mark[0].binstr); } -#line 8025 "asmparse.cpp" +#line 9410 "asmparse.cpp" break; case 67: -#line 314 "asmparse.y" +#line 313 "asmparse.y" { yyval.cad = new CustomDescr(yystack.l_mark[-6].token, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 8030 "asmparse.cpp" +#line 9415 "asmparse.cpp" break; case 68: -#line 315 "asmparse.y" +#line 314 "asmparse.y" { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yystack.l_mark[-2].int32, yystack.l_mark[-1].binstr); } -#line 8035 "asmparse.cpp" +#line 9420 "asmparse.cpp" break; case 69: -#line 318 "asmparse.y" +#line 317 "asmparse.y" { yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } -#line 8040 "asmparse.cpp" +#line 9425 "asmparse.cpp" break; case 70: -#line 322 "asmparse.y" +#line 321 "asmparse.y" { PASM->m_pCustomDescrList = NULL; PASM->m_tkCurrentCVOwner = yystack.l_mark[-4].token; yyval.int32 = yystack.l_mark[-2].token; bParsingByteArray = TRUE; } -#line 8047 "asmparse.cpp" +#line 9432 "asmparse.cpp" break; case 71: -#line 327 "asmparse.y" +#line 326 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8052 "asmparse.cpp" +#line 9437 "asmparse.cpp" break; case 72: -#line 330 "asmparse.y" +#line 329 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8057 "asmparse.cpp" +#line 9442 "asmparse.cpp" break; case 73: -#line 331 "asmparse.y" +#line 330 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8062 "asmparse.cpp" +#line 9447 "asmparse.cpp" break; case 74: -#line 335 "asmparse.y" +#line 334 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt16(VAL16(nCustomBlobNVPairs)); yyval.binstr->append(yystack.l_mark[0].binstr); nCustomBlobNVPairs = 0; } -#line 8070 "asmparse.cpp" +#line 9455 "asmparse.cpp" break; case 75: -#line 341 "asmparse.y" +#line 340 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } -#line 8075 "asmparse.cpp" +#line 9460 "asmparse.cpp" break; case 76: -#line 342 "asmparse.y" +#line 341 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); } -#line 8081 "asmparse.cpp" +#line 9466 "asmparse.cpp" break; case 77: -#line 344 "asmparse.y" +#line 343 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8086 "asmparse.cpp" +#line 9471 "asmparse.cpp" break; case 78: -#line 347 "asmparse.y" +#line 346 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8091 "asmparse.cpp" +#line 9476 "asmparse.cpp" break; case 79: -#line 349 "asmparse.y" +#line 348 "asmparse.y" { yyval.binstr = yystack.l_mark[-5].binstr; yyval.binstr->appendInt8(yystack.l_mark[-4].int32); yyval.binstr->append(yystack.l_mark[-3].binstr); AppendStringWithLength(yyval.binstr,yystack.l_mark[-2].string); AppendFieldToCustomBlob(yyval.binstr,yystack.l_mark[0].binstr); nCustomBlobNVPairs++; } -#line 8100 "asmparse.cpp" +#line 9485 "asmparse.cpp" break; case 80: -#line 354 "asmparse.y" +#line 353 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8105 "asmparse.cpp" +#line 9490 "asmparse.cpp" break; case 81: -#line 357 "asmparse.y" +#line 356 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_FIELD; } -#line 8110 "asmparse.cpp" +#line 9495 "asmparse.cpp" break; case 82: -#line 358 "asmparse.y" +#line 357 "asmparse.y" { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } -#line 8115 "asmparse.cpp" +#line 9500 "asmparse.cpp" break; case 83: -#line 361 "asmparse.y" +#line 360 "asmparse.y" { if(yystack.l_mark[0].cad->tkOwner && !yystack.l_mark[0].cad->tkInterfacePair) PASM->DefineCV(yystack.l_mark[0].cad); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } -#line 8123 "asmparse.cpp" +#line 9508 "asmparse.cpp" break; case 84: -#line 365 "asmparse.y" +#line 364 "asmparse.y" { PASM->DefineCV(yystack.l_mark[0].cad); } -#line 8128 "asmparse.cpp" +#line 9513 "asmparse.cpp" break; case 85: -#line 366 "asmparse.y" +#line 365 "asmparse.y" { CustomDescr* pNew = new CustomDescr(yystack.l_mark[0].tdd->m_pCA); if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; if(pNew->tkOwner) PASM->DefineCV(pNew); else if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(pNew); } -#line 8138 "asmparse.cpp" +#line 9523 "asmparse.cpp" break; case 86: -#line 374 "asmparse.y" +#line 373 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8143 "asmparse.cpp" +#line 9528 "asmparse.cpp" break; case 87: -#line 375 "asmparse.y" +#line 374 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } -#line 8148 "asmparse.cpp" +#line 9533 "asmparse.cpp" break; case 88: -#line 376 "asmparse.y" +#line 375 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } -#line 8153 "asmparse.cpp" +#line 9538 "asmparse.cpp" break; case 89: -#line 377 "asmparse.y" +#line 376 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); } -#line 8159 "asmparse.cpp" +#line 9544 "asmparse.cpp" break; case 90: -#line 379 "asmparse.y" +#line 378 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token)); } -#line 8165 "asmparse.cpp" +#line 9550 "asmparse.cpp" break; case 91: -#line 381 "asmparse.y" +#line 380 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 8170 "asmparse.cpp" +#line 9555 "asmparse.cpp" break; case 92: -#line 386 "asmparse.y" +#line 385 "asmparse.y" { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } -#line 8175 "asmparse.cpp" +#line 9560 "asmparse.cpp" break; case 93: -#line 387 "asmparse.y" +#line 386 "asmparse.y" { PASMM->SetModuleName(yystack.l_mark[0].string); PASM->m_tkCurrentCVOwner=1; } -#line 8180 "asmparse.cpp" +#line 9565 "asmparse.cpp" break; case 94: -#line 388 "asmparse.y" +#line 387 "asmparse.y" { BinStr* pbs = new BinStr(); unsigned L = (unsigned)strlen(yystack.l_mark[0].string); memcpy((char*)(pbs->getBuff(L)),yystack.l_mark[0].string,L); PASM->EmitImport(pbs); delete pbs;} -#line 8188 "asmparse.cpp" +#line 9573 "asmparse.cpp" break; case 95: -#line 395 "asmparse.y" +#line 394 "asmparse.y" { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, yystack.l_mark[0].string)); } -#line 8194 "asmparse.cpp" +#line 9579 "asmparse.cpp" break; case 96: -#line 399 "asmparse.y" +#line 398 "asmparse.y" { yyval.int32 = 0; } -#line 8199 "asmparse.cpp" +#line 9584 "asmparse.cpp" break; case 97: -#line 400 "asmparse.y" +#line 399 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_32BIT; } -#line 8204 "asmparse.cpp" +#line 9589 "asmparse.cpp" break; case 98: -#line 401 "asmparse.y" +#line 400 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_64BIT; } -#line 8209 "asmparse.cpp" +#line 9594 "asmparse.cpp" break; case 99: -#line 402 "asmparse.y" +#line 401 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } -#line 8214 "asmparse.cpp" +#line 9599 "asmparse.cpp" break; case 100: -#line 403 "asmparse.y" +#line 402 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } -#line 8219 "asmparse.cpp" +#line 9604 "asmparse.cpp" break; case 101: -#line 404 "asmparse.y" +#line 403 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } -#line 8224 "asmparse.cpp" +#line 9609 "asmparse.cpp" break; case 102: -#line 407 "asmparse.y" +#line 406 "asmparse.y" { PASM->m_pVTable = yystack.l_mark[-1].binstr; } -#line 8229 "asmparse.cpp" +#line 9614 "asmparse.cpp" break; case 103: -#line 410 "asmparse.y" +#line 409 "asmparse.y" { bParsingByteArray = TRUE; } -#line 8234 "asmparse.cpp" +#line 9619 "asmparse.cpp" break; case 104: -#line 414 "asmparse.y" +#line 413 "asmparse.y" { PASM->StartNameSpace(yystack.l_mark[0].string); } -#line 8239 "asmparse.cpp" +#line 9624 "asmparse.cpp" break; case 105: -#line 417 "asmparse.y" +#line 416 "asmparse.y" { newclass = TRUE; } -#line 8244 "asmparse.cpp" +#line 9629 "asmparse.cpp" break; case 106: -#line 420 "asmparse.y" +#line 419 "asmparse.y" { if(yystack.l_mark[0].typarlist) FixupConstraints(); PASM->StartClass(yystack.l_mark[-1].string, yystack.l_mark[-2].classAttr, yystack.l_mark[0].typarlist); TyParFixupList.RESET(false); newclass = FALSE; } -#line 8253 "asmparse.cpp" +#line 9638 "asmparse.cpp" break; case 107: -#line 426 "asmparse.y" +#line 425 "asmparse.y" { PASM->AddClass(); } -#line 8258 "asmparse.cpp" +#line 9643 "asmparse.cpp" break; case 108: -#line 429 "asmparse.y" +#line 428 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) 0; } -#line 8263 "asmparse.cpp" +#line 9648 "asmparse.cpp" break; case 109: -#line 430 "asmparse.y" +#line 429 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdPublic); } -#line 8268 "asmparse.cpp" +#line 9653 "asmparse.cpp" break; case 110: -#line 431 "asmparse.y" +#line 430 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } -#line 8273 "asmparse.cpp" +#line 9658 "asmparse.cpp" break; case 111: -#line 432 "asmparse.y" +#line 431 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x80000000 | tdSealed); } -#line 8278 "asmparse.cpp" +#line 9663 "asmparse.cpp" break; case 112: -#line 433 "asmparse.y" +#line 432 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | 0x40000000); } -#line 8283 "asmparse.cpp" +#line 9668 "asmparse.cpp" break; case 113: -#line 434 "asmparse.y" +#line 433 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdInterface | tdAbstract); } -#line 8288 "asmparse.cpp" +#line 9673 "asmparse.cpp" break; case 114: -#line 435 "asmparse.y" +#line 434 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSealed); } -#line 8293 "asmparse.cpp" +#line 9678 "asmparse.cpp" break; case 115: -#line 436 "asmparse.y" +#line 435 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdAbstract); } -#line 8298 "asmparse.cpp" +#line 9683 "asmparse.cpp" break; case 116: -#line 437 "asmparse.y" +#line 436 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } -#line 8303 "asmparse.cpp" +#line 9688 "asmparse.cpp" break; case 117: -#line 438 "asmparse.y" +#line 437 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } -#line 8308 "asmparse.cpp" +#line 9693 "asmparse.cpp" break; case 118: -#line 439 "asmparse.y" +#line 438 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } -#line 8313 "asmparse.cpp" +#line 9698 "asmparse.cpp" break; case 119: -#line 440 "asmparse.y" +#line 439 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } -#line 8318 "asmparse.cpp" +#line 9703 "asmparse.cpp" break; case 120: -#line 441 "asmparse.y" +#line 440 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } -#line 8323 "asmparse.cpp" +#line 9708 "asmparse.cpp" break; case 121: -#line 442 "asmparse.y" +#line 441 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } -#line 8328 "asmparse.cpp" +#line 9713 "asmparse.cpp" break; case 122: -#line 443 "asmparse.y" +#line 442 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdImport); } -#line 8333 "asmparse.cpp" +#line 9718 "asmparse.cpp" break; case 123: -#line 444 "asmparse.y" +#line 443 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSerializable); } -#line 8338 "asmparse.cpp" +#line 9723 "asmparse.cpp" break; case 124: -#line 445 "asmparse.y" +#line 444 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdWindowsRuntime); } -#line 8343 "asmparse.cpp" +#line 9728 "asmparse.cpp" break; case 125: -#line 446 "asmparse.y" +#line 445 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } -#line 8348 "asmparse.cpp" +#line 9733 "asmparse.cpp" break; case 126: -#line 447 "asmparse.y" +#line 446 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } -#line 8353 "asmparse.cpp" +#line 9738 "asmparse.cpp" break; case 127: -#line 448 "asmparse.y" +#line 447 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } -#line 8358 "asmparse.cpp" +#line 9743 "asmparse.cpp" break; case 128: -#line 449 "asmparse.y" +#line 448 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } -#line 8363 "asmparse.cpp" +#line 9748 "asmparse.cpp" break; case 129: -#line 450 "asmparse.y" +#line 449 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } -#line 8368 "asmparse.cpp" +#line 9753 "asmparse.cpp" break; case 130: -#line 451 "asmparse.y" +#line 450 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) ((yystack.l_mark[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } -#line 8373 "asmparse.cpp" +#line 9758 "asmparse.cpp" break; case 131: -#line 452 "asmparse.y" +#line 451 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdBeforeFieldInit); } -#line 8378 "asmparse.cpp" +#line 9763 "asmparse.cpp" break; case 132: -#line 453 "asmparse.y" +#line 452 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr | tdSpecialName); } -#line 8383 "asmparse.cpp" +#line 9768 "asmparse.cpp" break; case 133: -#line 454 "asmparse.y" +#line 453 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].classAttr); } -#line 8388 "asmparse.cpp" +#line 9773 "asmparse.cpp" break; case 134: -#line 455 "asmparse.y" +#line 454 "asmparse.y" { yyval.classAttr = (CorRegTypeAttr) (yystack.l_mark[-1].int32); } -#line 8393 "asmparse.cpp" +#line 9778 "asmparse.cpp" break; case 136: -#line 459 "asmparse.y" +#line 458 "asmparse.y" { PASM->m_crExtends = yystack.l_mark[0].token; } -#line 8398 "asmparse.cpp" +#line 9783 "asmparse.cpp" break; case 141: -#line 470 "asmparse.y" +#line 469 "asmparse.y" { PASM->AddToImplList(yystack.l_mark[0].token); } -#line 8403 "asmparse.cpp" +#line 9788 "asmparse.cpp" break; case 142: -#line 471 "asmparse.y" +#line 470 "asmparse.y" { PASM->AddToImplList(yystack.l_mark[0].token); } -#line 8408 "asmparse.cpp" +#line 9793 "asmparse.cpp" break; case 143: -#line 475 "asmparse.y" +#line 474 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 8413 "asmparse.cpp" +#line 9798 "asmparse.cpp" break; case 144: -#line 476 "asmparse.y" +#line 475 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8418 "asmparse.cpp" +#line 9803 "asmparse.cpp" break; case 145: -#line 479 "asmparse.y" +#line 478 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[0].token); } -#line 8423 "asmparse.cpp" +#line 9808 "asmparse.cpp" break; case 146: -#line 480 "asmparse.y" +#line 479 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].token); } -#line 8428 "asmparse.cpp" +#line 9813 "asmparse.cpp" break; case 147: -#line 483 "asmparse.y" +#line 482 "asmparse.y" { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} -#line 8433 "asmparse.cpp" +#line 9818 "asmparse.cpp" break; case 148: -#line 484 "asmparse.y" +#line 483 "asmparse.y" { PASM->m_TyParList = yystack.l_mark[-1].typarlist; ResolveTyParList(PASM->m_TyParList); yyval.typarlist = PASM->m_TyParList; } -#line 8438 "asmparse.cpp" +#line 9823 "asmparse.cpp" break; case 149: -#line 487 "asmparse.y" +#line 486 "asmparse.y" { yyval.int32 = gpCovariant; } -#line 8443 "asmparse.cpp" +#line 9828 "asmparse.cpp" break; case 150: -#line 488 "asmparse.y" +#line 487 "asmparse.y" { yyval.int32 = gpContravariant; } -#line 8448 "asmparse.cpp" +#line 9833 "asmparse.cpp" break; case 151: -#line 489 "asmparse.y" +#line 488 "asmparse.y" { yyval.int32 = gpReferenceTypeConstraint; } -#line 8453 "asmparse.cpp" +#line 9838 "asmparse.cpp" break; case 152: -#line 490 "asmparse.y" +#line 489 "asmparse.y" { yyval.int32 = gpNotNullableValueTypeConstraint; } -#line 8458 "asmparse.cpp" +#line 9843 "asmparse.cpp" break; case 153: -#line 491 "asmparse.y" +#line 490 "asmparse.y" { yyval.int32 = gpAcceptByRefLike; } -#line 8463 "asmparse.cpp" +#line 9848 "asmparse.cpp" break; case 154: -#line 492 "asmparse.y" +#line 491 "asmparse.y" { yyval.int32 = gpDefaultConstructorConstraint; } -#line 8468 "asmparse.cpp" +#line 9853 "asmparse.cpp" break; case 155: -#line 493 "asmparse.y" +#line 492 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } -#line 8473 "asmparse.cpp" +#line 9858 "asmparse.cpp" break; case 156: -#line 496 "asmparse.y" +#line 495 "asmparse.y" { yyval.int32 = 0; } -#line 8478 "asmparse.cpp" +#line 9863 "asmparse.cpp" break; case 157: -#line 497 "asmparse.y" +#line 496 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } -#line 8483 "asmparse.cpp" +#line 9868 "asmparse.cpp" break; case 158: -#line 500 "asmparse.y" +#line 499 "asmparse.y" { yyval.int32 = (CorGenericParamAttr)yystack.l_mark[-1].int32; } -#line 8488 "asmparse.cpp" +#line 9873 "asmparse.cpp" break; case 159: -#line 503 "asmparse.y" +#line 502 "asmparse.y" { yyval.int32 = 0; } -#line 8493 "asmparse.cpp" +#line 9878 "asmparse.cpp" break; case 160: -#line 504 "asmparse.y" +#line 503 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | yystack.l_mark[0].int32; } -#line 8498 "asmparse.cpp" +#line 9883 "asmparse.cpp" break; case 161: -#line 507 "asmparse.y" +#line 506 "asmparse.y" {yyval.typarlist = new TyParList(yystack.l_mark[-4].int32, yystack.l_mark[-3].binstr, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } -#line 8503 "asmparse.cpp" +#line 9888 "asmparse.cpp" break; case 162: -#line 508 "asmparse.y" +#line 507 "asmparse.y" {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist); } -#line 8508 "asmparse.cpp" +#line 9893 "asmparse.cpp" break; case 163: -#line 509 "asmparse.y" +#line 508 "asmparse.y" {yyval.typarlist = new TyParList(yystack.l_mark[-3].int32, yystack.l_mark[-2].binstr, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} -#line 8513 "asmparse.cpp" +#line 9898 "asmparse.cpp" break; case 164: -#line 510 "asmparse.y" +#line 509 "asmparse.y" {yyval.typarlist = new TyParList(yystack.l_mark[-2].int32, NULL, yystack.l_mark[-1].string, yystack.l_mark[0].typarlist);} -#line 8518 "asmparse.cpp" +#line 9903 "asmparse.cpp" break; case 165: -#line 513 "asmparse.y" +#line 512 "asmparse.y" { yyval.typarlist = NULL; } -#line 8523 "asmparse.cpp" +#line 9908 "asmparse.cpp" break; case 166: -#line 514 "asmparse.y" +#line 513 "asmparse.y" { yyval.typarlist = yystack.l_mark[0].typarlist; } -#line 8528 "asmparse.cpp" +#line 9913 "asmparse.cpp" break; case 167: -#line 517 "asmparse.y" +#line 516 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 8533 "asmparse.cpp" +#line 9918 "asmparse.cpp" break; case 168: -#line 520 "asmparse.y" +#line 519 "asmparse.y" { yyval.int32= 0; } -#line 8538 "asmparse.cpp" +#line 9923 "asmparse.cpp" break; case 169: -#line 521 "asmparse.y" +#line 520 "asmparse.y" { yyval.int32 = yystack.l_mark[0].int32; } -#line 8543 "asmparse.cpp" +#line 9928 "asmparse.cpp" break; case 170: -#line 524 "asmparse.y" +#line 523 "asmparse.y" { yyval.int32 = yystack.l_mark[-2].int32; } -#line 8548 "asmparse.cpp" +#line 9933 "asmparse.cpp" break; case 171: -#line 528 "asmparse.y" +#line 527 "asmparse.y" { if(PASM->m_pCurMethod->m_ulLines[1] ==0) { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} PASM->EndMethod(); } -#line 8556 "asmparse.cpp" +#line 9941 "asmparse.cpp" break; case 172: -#line 532 "asmparse.y" +#line 531 "asmparse.y" { PASM->EndClass(); } -#line 8561 "asmparse.cpp" +#line 9946 "asmparse.cpp" break; case 173: -#line 533 "asmparse.y" +#line 532 "asmparse.y" { PASM->EndEvent(); } -#line 8566 "asmparse.cpp" +#line 9951 "asmparse.cpp" break; case 174: -#line 534 "asmparse.y" +#line 533 "asmparse.y" { PASM->EndProp(); } -#line 8571 "asmparse.cpp" +#line 9956 "asmparse.cpp" break; case 180: -#line 540 "asmparse.y" +#line 539 "asmparse.y" { PASM->m_pCurClass->m_ulSize = yystack.l_mark[0].int32; } -#line 8576 "asmparse.cpp" +#line 9961 "asmparse.cpp" break; case 181: -#line 541 "asmparse.y" +#line 540 "asmparse.y" { PASM->m_pCurClass->m_ulPack = yystack.l_mark[0].int32; } -#line 8581 "asmparse.cpp" +#line 9966 "asmparse.cpp" break; case 182: -#line 542 "asmparse.y" +#line 541 "asmparse.y" { PASMM->EndComType(); } -#line 8586 "asmparse.cpp" +#line 9971 "asmparse.cpp" break; case 183: -#line 544 "asmparse.y" +#line 543 "asmparse.y" { BinStr *sig1 = parser->MakeSig(yystack.l_mark[-7].int32, yystack.l_mark[-6].binstr, yystack.l_mark[-1].binstr); BinStr *sig2 = new BinStr(); sig2->append(sig1); PASM->AddMethodImpl(yystack.l_mark[-11].token,yystack.l_mark[-9].string,sig1,yystack.l_mark[-5].token,yystack.l_mark[-3].string,sig2); PASM->ResetArgNameList(); } -#line 8595 "asmparse.cpp" +#line 9980 "asmparse.cpp" break; case 184: -#line 550 "asmparse.y" +#line 549 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-17].token,yystack.l_mark[-15].string, (yystack.l_mark[-14].int32==0 ? parser->MakeSig(yystack.l_mark[-19].int32,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr) : parser->MakeSig(yystack.l_mark[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-18].binstr,yystack.l_mark[-12].binstr,yystack.l_mark[-14].int32)), @@ -8603,163 +9988,163 @@ case 184: parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32))); PASM->ResetArgNameList(); } -#line 8607 "asmparse.cpp" +#line 9992 "asmparse.cpp" break; case 187: -#line 560 "asmparse.y" +#line 559 "asmparse.y" { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 8616 "asmparse.cpp" +#line 10001 "asmparse.cpp" break; case 188: -#line 565 "asmparse.y" +#line 564 "asmparse.y" { int n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 8626 "asmparse.cpp" +#line 10011 "asmparse.cpp" break; case 189: -#line 571 "asmparse.y" +#line 570 "asmparse.y" { PASM->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } -#line 8631 "asmparse.cpp" +#line 10016 "asmparse.cpp" break; case 190: -#line 572 "asmparse.y" +#line 571 "asmparse.y" { PASM->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } -#line 8636 "asmparse.cpp" +#line 10021 "asmparse.cpp" break; case 191: -#line 573 "asmparse.y" +#line 572 "asmparse.y" { yystack.l_mark[0].cad->tkInterfacePair = yystack.l_mark[-1].token; if(PASM->m_pCustomDescrList) PASM->m_pCustomDescrList->PUSH(yystack.l_mark[0].cad); } -#line 8644 "asmparse.cpp" +#line 10029 "asmparse.cpp" break; case 192: -#line 581 "asmparse.y" +#line 580 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); PASM->AddField(yystack.l_mark[-2].string, yystack.l_mark[-3].binstr, yystack.l_mark[-4].fieldAttr, yystack.l_mark[-1].string, yystack.l_mark[0].binstr, yystack.l_mark[-5].int32); } -#line 8650 "asmparse.cpp" +#line 10035 "asmparse.cpp" break; case 193: -#line 585 "asmparse.y" +#line 584 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) 0; } -#line 8655 "asmparse.cpp" +#line 10040 "asmparse.cpp" break; case 194: -#line 586 "asmparse.y" +#line 585 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdStatic); } -#line 8660 "asmparse.cpp" +#line 10045 "asmparse.cpp" break; case 195: -#line 587 "asmparse.y" +#line 586 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } -#line 8665 "asmparse.cpp" +#line 10050 "asmparse.cpp" break; case 196: -#line 588 "asmparse.y" +#line 587 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } -#line 8670 "asmparse.cpp" +#line 10055 "asmparse.cpp" break; case 197: -#line 589 "asmparse.y" +#line 588 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } -#line 8675 "asmparse.cpp" +#line 10060 "asmparse.cpp" break; case 198: -#line 590 "asmparse.y" +#line 589 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdInitOnly); } -#line 8680 "asmparse.cpp" +#line 10065 "asmparse.cpp" break; case 199: -#line 591 "asmparse.y" +#line 590 "asmparse.y" { yyval.fieldAttr = yystack.l_mark[-1].fieldAttr; } -#line 8685 "asmparse.cpp" +#line 10070 "asmparse.cpp" break; case 200: -#line 592 "asmparse.y" +#line 591 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdSpecialName); } -#line 8690 "asmparse.cpp" +#line 10075 "asmparse.cpp" break; case 201: -#line 605 "asmparse.y" +#line 604 "asmparse.y" { PASM->m_pMarshal = yystack.l_mark[-1].binstr; } -#line 8695 "asmparse.cpp" +#line 10080 "asmparse.cpp" break; case 202: -#line 606 "asmparse.y" +#line 605 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } -#line 8700 "asmparse.cpp" +#line 10085 "asmparse.cpp" break; case 203: -#line 607 "asmparse.y" +#line 606 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } -#line 8705 "asmparse.cpp" +#line 10090 "asmparse.cpp" break; case 204: -#line 608 "asmparse.y" +#line 607 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } -#line 8710 "asmparse.cpp" +#line 10095 "asmparse.cpp" break; case 205: -#line 609 "asmparse.y" +#line 608 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) ((yystack.l_mark[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } -#line 8715 "asmparse.cpp" +#line 10100 "asmparse.cpp" break; case 206: -#line 610 "asmparse.y" +#line 609 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdLiteral); } -#line 8720 "asmparse.cpp" +#line 10105 "asmparse.cpp" break; case 207: -#line 611 "asmparse.y" +#line 610 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].fieldAttr | fdNotSerialized); } -#line 8725 "asmparse.cpp" +#line 10110 "asmparse.cpp" break; case 208: -#line 612 "asmparse.y" +#line 611 "asmparse.y" { yyval.fieldAttr = (CorFieldAttr) (yystack.l_mark[-1].int32); } -#line 8730 "asmparse.cpp" +#line 10115 "asmparse.cpp" break; case 209: -#line 615 "asmparse.y" +#line 614 "asmparse.y" { yyval.string = 0; } -#line 8735 "asmparse.cpp" +#line 10120 "asmparse.cpp" break; case 210: -#line 616 "asmparse.y" +#line 615 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 8740 "asmparse.cpp" +#line 10125 "asmparse.cpp" break; case 211: -#line 619 "asmparse.y" +#line 618 "asmparse.y" { yyval.binstr = NULL; } -#line 8745 "asmparse.cpp" +#line 10130 "asmparse.cpp" break; case 212: -#line 620 "asmparse.y" +#line 619 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 8750 "asmparse.cpp" +#line 10135 "asmparse.cpp" break; case 213: -#line 623 "asmparse.y" +#line 622 "asmparse.y" { yyval.int32 = 0xFFFFFFFF; } -#line 8755 "asmparse.cpp" +#line 10140 "asmparse.cpp" break; case 214: -#line 624 "asmparse.y" +#line 623 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32; } -#line 8760 "asmparse.cpp" +#line 10145 "asmparse.cpp" break; case 215: -#line 629 "asmparse.y" +#line 628 "asmparse.y" { PASM->ResetArgNameList(); if (yystack.l_mark[-3].binstr == NULL) { @@ -8776,19 +10161,19 @@ case 215: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); } } -#line 8780 "asmparse.cpp" +#line 10165 "asmparse.cpp" break; case 216: -#line 646 "asmparse.y" +#line 645 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yystack.l_mark[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(yystack.l_mark[-6].token, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-7].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 8789 "asmparse.cpp" +#line 10174 "asmparse.cpp" break; case 217: -#line 652 "asmparse.y" +#line 651 "asmparse.y" { PASM->ResetArgNameList(); if (yystack.l_mark[-3].binstr == NULL) { @@ -8804,254 +10189,254 @@ case 217: parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yystack.l_mark[-3].binstr)); } } -#line 8808 "asmparse.cpp" +#line 10193 "asmparse.cpp" break; case 218: -#line 668 "asmparse.y" +#line 667 "asmparse.y" { PASM->ResetArgNameList(); if((iCallConv)&&((yystack.l_mark[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n"); yyval.token = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[-4].string, parser->MakeSig(yystack.l_mark[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yystack.l_mark[-5].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32)); } -#line 8816 "asmparse.cpp" +#line 10201 "asmparse.cpp" break; case 219: -#line 672 "asmparse.y" +#line 671 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 8821 "asmparse.cpp" +#line 10206 "asmparse.cpp" break; case 220: -#line 673 "asmparse.y" +#line 672 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 8826 "asmparse.cpp" +#line 10211 "asmparse.cpp" break; case 221: -#line 674 "asmparse.y" +#line 673 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 8831 "asmparse.cpp" +#line 10216 "asmparse.cpp" break; case 222: -#line 677 "asmparse.y" +#line 676 "asmparse.y" { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } -#line 8836 "asmparse.cpp" +#line 10221 "asmparse.cpp" break; case 223: -#line 678 "asmparse.y" +#line 677 "asmparse.y" { yyval.int32 = (yystack.l_mark[0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } -#line 8841 "asmparse.cpp" +#line 10226 "asmparse.cpp" break; case 224: -#line 679 "asmparse.y" +#line 678 "asmparse.y" { yyval.int32 = yystack.l_mark[0].int32; } -#line 8846 "asmparse.cpp" +#line 10231 "asmparse.cpp" break; case 225: -#line 680 "asmparse.y" +#line 679 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32; } -#line 8851 "asmparse.cpp" +#line 10236 "asmparse.cpp" break; case 226: -#line 683 "asmparse.y" +#line 682 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8856 "asmparse.cpp" +#line 10241 "asmparse.cpp" break; case 227: -#line 684 "asmparse.y" +#line 683 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } -#line 8861 "asmparse.cpp" +#line 10246 "asmparse.cpp" break; case 228: -#line 685 "asmparse.y" +#line 684 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } -#line 8866 "asmparse.cpp" +#line 10251 "asmparse.cpp" break; case 229: -#line 686 "asmparse.y" +#line 685 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } -#line 8871 "asmparse.cpp" +#line 10256 "asmparse.cpp" break; case 230: -#line 687 "asmparse.y" +#line 686 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } -#line 8876 "asmparse.cpp" +#line 10261 "asmparse.cpp" break; case 231: -#line 688 "asmparse.y" +#line 687 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } -#line 8881 "asmparse.cpp" +#line 10266 "asmparse.cpp" break; case 232: -#line 689 "asmparse.y" +#line 688 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } -#line 8886 "asmparse.cpp" +#line 10271 "asmparse.cpp" break; case 233: -#line 690 "asmparse.y" +#line 689 "asmparse.y" { yyval.int32 = IMAGE_CEE_CS_CALLCONV_UNMANAGED; } -#line 8891 "asmparse.cpp" +#line 10276 "asmparse.cpp" break; case 234: -#line 693 "asmparse.y" +#line 692 "asmparse.y" { yyval.token = yystack.l_mark[-1].int32; } -#line 8896 "asmparse.cpp" +#line 10281 "asmparse.cpp" break; case 235: -#line 696 "asmparse.y" +#line 695 "asmparse.y" { yyval.token = yystack.l_mark[0].token; PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); PASM->SetMemberRefFixup(yystack.l_mark[0].token,iOpcodeLen); } -#line 8905 "asmparse.cpp" +#line 10290 "asmparse.cpp" break; case 236: -#line 702 "asmparse.y" +#line 701 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8912 "asmparse.cpp" +#line 10297 "asmparse.cpp" break; case 237: -#line 706 "asmparse.y" +#line 705 "asmparse.y" { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); yyval.token = PASM->MakeMemberRef(NULL, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8919 "asmparse.cpp" +#line 10304 "asmparse.cpp" break; case 238: -#line 709 "asmparse.y" +#line 708 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8925 "asmparse.cpp" +#line 10310 "asmparse.cpp" break; case 239: -#line 711 "asmparse.y" +#line 710 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8931 "asmparse.cpp" +#line 10316 "asmparse.cpp" break; case 240: -#line 713 "asmparse.y" +#line 712 "asmparse.y" { yyval.token = yystack.l_mark[0].token; PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } -#line 8937 "asmparse.cpp" +#line 10322 "asmparse.cpp" break; case 241: -#line 718 "asmparse.y" +#line 717 "asmparse.y" { PASM->ResetEvent(yystack.l_mark[0].string, yystack.l_mark[-1].token, yystack.l_mark[-2].eventAttr); } -#line 8942 "asmparse.cpp" +#line 10327 "asmparse.cpp" break; case 242: -#line 719 "asmparse.y" +#line 718 "asmparse.y" { PASM->ResetEvent(yystack.l_mark[0].string, mdTypeRefNil, yystack.l_mark[-1].eventAttr); } -#line 8947 "asmparse.cpp" +#line 10332 "asmparse.cpp" break; case 243: -#line 723 "asmparse.y" +#line 722 "asmparse.y" { yyval.eventAttr = (CorEventAttr) 0; } -#line 8952 "asmparse.cpp" +#line 10337 "asmparse.cpp" break; case 244: -#line 724 "asmparse.y" +#line 723 "asmparse.y" { yyval.eventAttr = yystack.l_mark[-1].eventAttr; } -#line 8957 "asmparse.cpp" +#line 10342 "asmparse.cpp" break; case 245: -#line 725 "asmparse.y" +#line 724 "asmparse.y" { yyval.eventAttr = (CorEventAttr) (yystack.l_mark[-1].eventAttr | evSpecialName); } -#line 8962 "asmparse.cpp" +#line 10347 "asmparse.cpp" break; case 248: -#line 732 "asmparse.y" +#line 731 "asmparse.y" { PASM->SetEventMethod(0, yystack.l_mark[0].token); } -#line 8967 "asmparse.cpp" +#line 10352 "asmparse.cpp" break; case 249: -#line 733 "asmparse.y" +#line 732 "asmparse.y" { PASM->SetEventMethod(1, yystack.l_mark[0].token); } -#line 8972 "asmparse.cpp" +#line 10357 "asmparse.cpp" break; case 250: -#line 734 "asmparse.y" +#line 733 "asmparse.y" { PASM->SetEventMethod(2, yystack.l_mark[0].token); } -#line 8977 "asmparse.cpp" +#line 10362 "asmparse.cpp" break; case 251: -#line 735 "asmparse.y" +#line 734 "asmparse.y" { PASM->SetEventMethod(3, yystack.l_mark[0].token); } -#line 8982 "asmparse.cpp" +#line 10367 "asmparse.cpp" break; case 256: -#line 744 "asmparse.y" +#line 743 "asmparse.y" { PASM->ResetProp(yystack.l_mark[-4].string, parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | (yystack.l_mark[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yystack.l_mark[-5].binstr,yystack.l_mark[-2].binstr), yystack.l_mark[-7].propAttr, yystack.l_mark[0].binstr);} -#line 8989 "asmparse.cpp" +#line 10374 "asmparse.cpp" break; case 257: -#line 749 "asmparse.y" +#line 748 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) 0; } -#line 8994 "asmparse.cpp" +#line 10379 "asmparse.cpp" break; case 258: -#line 750 "asmparse.y" +#line 749 "asmparse.y" { yyval.propAttr = yystack.l_mark[-1].propAttr; } -#line 8999 "asmparse.cpp" +#line 10384 "asmparse.cpp" break; case 259: -#line 751 "asmparse.y" +#line 750 "asmparse.y" { yyval.propAttr = (CorPropertyAttr) (yystack.l_mark[-1].propAttr | prSpecialName); } -#line 9004 "asmparse.cpp" +#line 10389 "asmparse.cpp" break; case 262: -#line 759 "asmparse.y" +#line 758 "asmparse.y" { PASM->SetPropMethod(0, yystack.l_mark[0].token); } -#line 9009 "asmparse.cpp" +#line 10394 "asmparse.cpp" break; case 263: -#line 760 "asmparse.y" +#line 759 "asmparse.y" { PASM->SetPropMethod(1, yystack.l_mark[0].token); } -#line 9014 "asmparse.cpp" +#line 10399 "asmparse.cpp" break; case 264: -#line 761 "asmparse.y" +#line 760 "asmparse.y" { PASM->SetPropMethod(2, yystack.l_mark[0].token); } -#line 9019 "asmparse.cpp" +#line 10404 "asmparse.cpp" break; case 269: -#line 769 "asmparse.y" +#line 768 "asmparse.y" { PASM->ResetForNextMethod(); uMethodBeginLine = PASM->m_ulCurLine; uMethodBeginColumn=PASM->m_ulCurColumn; } -#line 9027 "asmparse.cpp" +#line 10412 "asmparse.cpp" break; case 270: -#line 775 "asmparse.y" +#line 774 "asmparse.y" { yyval.binstr = NULL; } -#line 9032 "asmparse.cpp" +#line 10417 "asmparse.cpp" break; case 271: -#line 776 "asmparse.y" +#line 775 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 9037 "asmparse.cpp" +#line 10422 "asmparse.cpp" break; case 272: -#line 779 "asmparse.y" +#line 778 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9042 "asmparse.cpp" +#line 10427 "asmparse.cpp" break; case 273: -#line 780 "asmparse.y" +#line 779 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 9047 "asmparse.cpp" +#line 10432 "asmparse.cpp" break; case 274: -#line 783 "asmparse.y" +#line 782 "asmparse.y" { bParsingByteArray = TRUE; } -#line 9052 "asmparse.cpp" +#line 10437 "asmparse.cpp" break; case 275: -#line 787 "asmparse.y" +#line 786 "asmparse.y" { BinStr* sig; if (yystack.l_mark[-5].typarlist == NULL) sig = parser->MakeSig(yystack.l_mark[-10].int32, yystack.l_mark[-8].binstr, yystack.l_mark[-3].binstr); else { @@ -9065,377 +10450,377 @@ case 275: PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; } -#line 9069 "asmparse.cpp" +#line 10454 "asmparse.cpp" break; case 276: -#line 802 "asmparse.y" +#line 801 "asmparse.y" { yyval.methAttr = (CorMethodAttr) 0; } -#line 9074 "asmparse.cpp" +#line 10459 "asmparse.cpp" break; case 277: -#line 803 "asmparse.y" +#line 802 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdStatic); } -#line 9079 "asmparse.cpp" +#line 10464 "asmparse.cpp" break; case 278: -#line 804 "asmparse.y" +#line 803 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } -#line 9084 "asmparse.cpp" +#line 10469 "asmparse.cpp" break; case 279: -#line 805 "asmparse.y" +#line 804 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } -#line 9089 "asmparse.cpp" +#line 10474 "asmparse.cpp" break; case 280: -#line 806 "asmparse.y" +#line 805 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } -#line 9094 "asmparse.cpp" +#line 10479 "asmparse.cpp" break; case 281: -#line 807 "asmparse.y" +#line 806 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdFinal); } -#line 9099 "asmparse.cpp" +#line 10484 "asmparse.cpp" break; case 282: -#line 808 "asmparse.y" +#line 807 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdSpecialName); } -#line 9104 "asmparse.cpp" +#line 10489 "asmparse.cpp" break; case 283: -#line 809 "asmparse.y" +#line 808 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdVirtual); } -#line 9109 "asmparse.cpp" +#line 10494 "asmparse.cpp" break; case 284: -#line 810 "asmparse.y" +#line 809 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdCheckAccessOnOverride); } -#line 9114 "asmparse.cpp" +#line 10499 "asmparse.cpp" break; case 285: -#line 811 "asmparse.y" +#line 810 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdAbstract); } -#line 9119 "asmparse.cpp" +#line 10504 "asmparse.cpp" break; case 286: -#line 812 "asmparse.y" +#line 811 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } -#line 9124 "asmparse.cpp" +#line 10509 "asmparse.cpp" break; case 287: -#line 813 "asmparse.y" +#line 812 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } -#line 9129 "asmparse.cpp" +#line 10514 "asmparse.cpp" break; case 288: -#line 814 "asmparse.y" +#line 813 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } -#line 9134 "asmparse.cpp" +#line 10519 "asmparse.cpp" break; case 289: -#line 815 "asmparse.y" +#line 814 "asmparse.y" { yyval.methAttr = (CorMethodAttr) ((yystack.l_mark[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } -#line 9139 "asmparse.cpp" +#line 10524 "asmparse.cpp" break; case 290: -#line 816 "asmparse.y" +#line 815 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdHideBySig); } -#line 9144 "asmparse.cpp" +#line 10529 "asmparse.cpp" break; case 291: -#line 817 "asmparse.y" +#line 816 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdNewSlot); } -#line 9149 "asmparse.cpp" +#line 10534 "asmparse.cpp" break; case 292: -#line 818 "asmparse.y" +#line 817 "asmparse.y" { yyval.methAttr = yystack.l_mark[-1].methAttr; } -#line 9154 "asmparse.cpp" +#line 10539 "asmparse.cpp" break; case 293: -#line 819 "asmparse.y" +#line 818 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdUnmanagedExport); } -#line 9159 "asmparse.cpp" +#line 10544 "asmparse.cpp" break; case 294: -#line 820 "asmparse.y" +#line 819 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].methAttr | mdRequireSecObject); } -#line 9164 "asmparse.cpp" +#line 10549 "asmparse.cpp" break; case 295: -#line 821 "asmparse.y" +#line 820 "asmparse.y" { yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-1].int32); } -#line 9169 "asmparse.cpp" +#line 10554 "asmparse.cpp" break; case 296: -#line 823 "asmparse.y" +#line 822 "asmparse.y" { PASM->SetPinvoke(yystack.l_mark[-4].binstr,0,yystack.l_mark[-2].binstr,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-7].methAttr | mdPinvokeImpl); } -#line 9175 "asmparse.cpp" +#line 10560 "asmparse.cpp" break; case 297: -#line 826 "asmparse.y" +#line 825 "asmparse.y" { PASM->SetPinvoke(yystack.l_mark[-2].binstr,0,NULL,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-5].methAttr | mdPinvokeImpl); } -#line 9181 "asmparse.cpp" +#line 10566 "asmparse.cpp" break; case 298: -#line 829 "asmparse.y" +#line 828 "asmparse.y" { PASM->SetPinvoke(new BinStr(),0,NULL,yystack.l_mark[-1].pinvAttr); yyval.methAttr = (CorMethodAttr) (yystack.l_mark[-4].methAttr | mdPinvokeImpl); } -#line 9187 "asmparse.cpp" +#line 10572 "asmparse.cpp" break; case 299: -#line 833 "asmparse.y" +#line 832 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) 0; } -#line 9192 "asmparse.cpp" +#line 10577 "asmparse.cpp" break; case 300: -#line 834 "asmparse.y" +#line 833 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmNoMangle); } -#line 9197 "asmparse.cpp" +#line 10582 "asmparse.cpp" break; case 301: -#line 835 "asmparse.y" +#line 834 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAnsi); } -#line 9202 "asmparse.cpp" +#line 10587 "asmparse.cpp" break; case 302: -#line 836 "asmparse.y" +#line 835 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetUnicode); } -#line 9207 "asmparse.cpp" +#line 10592 "asmparse.cpp" break; case 303: -#line 837 "asmparse.y" +#line 836 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCharSetAuto); } -#line 9212 "asmparse.cpp" +#line 10597 "asmparse.cpp" break; case 304: -#line 838 "asmparse.y" +#line 837 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmSupportsLastError); } -#line 9217 "asmparse.cpp" +#line 10602 "asmparse.cpp" break; case 305: -#line 839 "asmparse.y" +#line 838 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvWinapi); } -#line 9222 "asmparse.cpp" +#line 10607 "asmparse.cpp" break; case 306: -#line 840 "asmparse.y" +#line 839 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvCdecl); } -#line 9227 "asmparse.cpp" +#line 10612 "asmparse.cpp" break; case 307: -#line 841 "asmparse.y" +#line 840 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvStdcall); } -#line 9232 "asmparse.cpp" +#line 10617 "asmparse.cpp" break; case 308: -#line 842 "asmparse.y" +#line 841 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvThiscall); } -#line 9237 "asmparse.cpp" +#line 10622 "asmparse.cpp" break; case 309: -#line 843 "asmparse.y" +#line 842 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].pinvAttr | pmCallConvFastcall); } -#line 9242 "asmparse.cpp" +#line 10627 "asmparse.cpp" break; case 310: -#line 844 "asmparse.y" +#line 843 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitEnabled); } -#line 9247 "asmparse.cpp" +#line 10632 "asmparse.cpp" break; case 311: -#line 845 "asmparse.y" +#line 844 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmBestFitDisabled); } -#line 9252 "asmparse.cpp" +#line 10637 "asmparse.cpp" break; case 312: -#line 846 "asmparse.y" +#line 845 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } -#line 9257 "asmparse.cpp" +#line 10642 "asmparse.cpp" break; case 313: -#line 847 "asmparse.y" +#line 846 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } -#line 9262 "asmparse.cpp" +#line 10647 "asmparse.cpp" break; case 314: -#line 848 "asmparse.y" +#line 847 "asmparse.y" { yyval.pinvAttr = (CorPinvokeMap) (yystack.l_mark[-1].int32); } -#line 9267 "asmparse.cpp" +#line 10652 "asmparse.cpp" break; case 315: -#line 851 "asmparse.y" +#line 850 "asmparse.y" { yyval.string = newString(COR_CTOR_METHOD_NAME); } -#line 9272 "asmparse.cpp" +#line 10657 "asmparse.cpp" break; case 316: -#line 852 "asmparse.y" +#line 851 "asmparse.y" { yyval.string = newString(COR_CCTOR_METHOD_NAME); } -#line 9277 "asmparse.cpp" +#line 10662 "asmparse.cpp" break; case 317: -#line 853 "asmparse.y" +#line 852 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 9282 "asmparse.cpp" +#line 10667 "asmparse.cpp" break; case 318: -#line 856 "asmparse.y" +#line 855 "asmparse.y" { yyval.int32 = 0; } -#line 9287 "asmparse.cpp" +#line 10672 "asmparse.cpp" break; case 319: -#line 857 "asmparse.y" +#line 856 "asmparse.y" { yyval.int32 = yystack.l_mark[-3].int32 | pdIn; } -#line 9292 "asmparse.cpp" +#line 10677 "asmparse.cpp" break; case 320: -#line 858 "asmparse.y" +#line 857 "asmparse.y" { yyval.int32 = yystack.l_mark[-3].int32 | pdOut; } -#line 9297 "asmparse.cpp" +#line 10682 "asmparse.cpp" break; case 321: -#line 859 "asmparse.y" +#line 858 "asmparse.y" { yyval.int32 = yystack.l_mark[-3].int32 | pdOptional; } -#line 9302 "asmparse.cpp" +#line 10687 "asmparse.cpp" break; case 322: -#line 860 "asmparse.y" +#line 859 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 + 1; } -#line 9307 "asmparse.cpp" +#line 10692 "asmparse.cpp" break; case 323: -#line 863 "asmparse.y" +#line 862 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } -#line 9312 "asmparse.cpp" +#line 10697 "asmparse.cpp" break; case 324: -#line 864 "asmparse.y" +#line 863 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miNative); } -#line 9317 "asmparse.cpp" +#line 10702 "asmparse.cpp" break; case 325: -#line 865 "asmparse.y" +#line 864 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miIL); } -#line 9322 "asmparse.cpp" +#line 10707 "asmparse.cpp" break; case 326: -#line 866 "asmparse.y" +#line 865 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFF4) | miOPTIL); } -#line 9327 "asmparse.cpp" +#line 10712 "asmparse.cpp" break; case 327: -#line 867 "asmparse.y" +#line 866 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miManaged); } -#line 9332 "asmparse.cpp" +#line 10717 "asmparse.cpp" break; case 328: -#line 868 "asmparse.y" +#line 867 "asmparse.y" { yyval.implAttr = (CorMethodImpl) ((yystack.l_mark[-1].implAttr & 0xFFFB) | miUnmanaged); } -#line 9337 "asmparse.cpp" +#line 10722 "asmparse.cpp" break; case 329: -#line 869 "asmparse.y" +#line 868 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miForwardRef); } -#line 9342 "asmparse.cpp" +#line 10727 "asmparse.cpp" break; case 330: -#line 870 "asmparse.y" +#line 869 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miPreserveSig); } -#line 9347 "asmparse.cpp" +#line 10732 "asmparse.cpp" break; case 331: -#line 871 "asmparse.y" +#line 870 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miRuntime); } -#line 9352 "asmparse.cpp" +#line 10737 "asmparse.cpp" break; case 332: -#line 872 "asmparse.y" +#line 871 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miInternalCall); } -#line 9357 "asmparse.cpp" +#line 10742 "asmparse.cpp" break; case 333: -#line 873 "asmparse.y" +#line 872 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miSynchronized); } -#line 9362 "asmparse.cpp" +#line 10747 "asmparse.cpp" break; case 334: -#line 874 "asmparse.y" +#line 873 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoInlining); } -#line 9367 "asmparse.cpp" +#line 10752 "asmparse.cpp" break; case 335: -#line 875 "asmparse.y" +#line 874 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveInlining); } -#line 9372 "asmparse.cpp" +#line 10757 "asmparse.cpp" break; case 336: -#line 876 "asmparse.y" +#line 875 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miNoOptimization); } -#line 9377 "asmparse.cpp" +#line 10762 "asmparse.cpp" break; case 337: -#line 877 "asmparse.y" +#line 876 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].implAttr | miAggressiveOptimization); } -#line 9382 "asmparse.cpp" +#line 10767 "asmparse.cpp" break; case 338: -#line 878 "asmparse.y" +#line 877 "asmparse.y" { yyval.implAttr = (CorMethodImpl) (yystack.l_mark[-1].int32); } -#line 9387 "asmparse.cpp" +#line 10772 "asmparse.cpp" break; case 339: -#line 881 "asmparse.y" +#line 880 "asmparse.y" { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; } -#line 9393 "asmparse.cpp" +#line 10778 "asmparse.cpp" break; case 342: -#line 889 "asmparse.y" +#line 888 "asmparse.y" { PASM->EmitByte(yystack.l_mark[0].int32); } -#line 9398 "asmparse.cpp" +#line 10783 "asmparse.cpp" break; case 343: -#line 890 "asmparse.y" +#line 889 "asmparse.y" { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } -#line 9403 "asmparse.cpp" +#line 10788 "asmparse.cpp" break; case 344: -#line 891 "asmparse.y" +#line 890 "asmparse.y" { PASM->EmitMaxStack(yystack.l_mark[0].int32); } -#line 9408 "asmparse.cpp" +#line 10793 "asmparse.cpp" break; case 345: -#line 892 "asmparse.y" +#line 891 "asmparse.y" { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 9414 "asmparse.cpp" +#line 10799 "asmparse.cpp" break; case 346: -#line 894 "asmparse.y" +#line 893 "asmparse.y" { PASM->EmitZeroInit(); PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yystack.l_mark[-1].binstr)); } -#line 9421 "asmparse.cpp" +#line 10806 "asmparse.cpp" break; case 347: -#line 897 "asmparse.y" +#line 896 "asmparse.y" { PASM->EmitEntryPoint(); } -#line 9426 "asmparse.cpp" +#line 10811 "asmparse.cpp" break; case 348: -#line 898 "asmparse.y" +#line 897 "asmparse.y" { PASM->EmitZeroInit(); } -#line 9431 "asmparse.cpp" +#line 10816 "asmparse.cpp" break; case 351: -#line 901 "asmparse.y" +#line 900 "asmparse.y" { PASM->AddLabel(PASM->m_CurPC,yystack.l_mark[-1].string); /*PASM->EmitLabel($1);*/ } -#line 9436 "asmparse.cpp" +#line 10821 "asmparse.cpp" break; case 357: -#line 907 "asmparse.y" +#line 906 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-1].int32; @@ -9446,10 +10831,10 @@ case 357: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9450 "asmparse.cpp" +#line 10835 "asmparse.cpp" break; case 358: -#line 917 "asmparse.y" +#line 916 "asmparse.y" { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = yystack.l_mark[-3].int32; @@ -9460,60 +10845,60 @@ case 358: else PASM->report->warn("Duplicate .export directive, ignored\n"); } -#line 9464 "asmparse.cpp" +#line 10849 "asmparse.cpp" break; case 359: -#line 927 "asmparse.y" +#line 926 "asmparse.y" { PASM->m_pCurMethod->m_wVTEntry = (WORD)yystack.l_mark[-2].int32; PASM->m_pCurMethod->m_wVTSlot = (WORD)yystack.l_mark[0].int32; } -#line 9470 "asmparse.cpp" +#line 10855 "asmparse.cpp" break; case 360: -#line 930 "asmparse.y" +#line 929 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-2].token,yystack.l_mark[0].string,NULL,NULL,NULL,NULL); } -#line 9475 "asmparse.cpp" +#line 10860 "asmparse.cpp" break; case 361: -#line 933 "asmparse.y" +#line 932 "asmparse.y" { PASM->AddMethodImpl(yystack.l_mark[-6].token,yystack.l_mark[-4].string, (yystack.l_mark[-3].int32==0 ? parser->MakeSig(yystack.l_mark[-8].int32,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr) : parser->MakeSig(yystack.l_mark[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yystack.l_mark[-7].binstr,yystack.l_mark[-1].binstr,yystack.l_mark[-3].int32)) ,NULL,NULL,NULL); PASM->ResetArgNameList(); } -#line 9485 "asmparse.cpp" +#line 10870 "asmparse.cpp" break; case 363: -#line 940 "asmparse.y" +#line 939 "asmparse.y" { if((yystack.l_mark[-1].int32 > 0) && (yystack.l_mark[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yystack.l_mark[-1].int32-1].CAList(); else PASM->report->error("Type parameter index out of range\n"); } -#line 9494 "asmparse.cpp" +#line 10879 "asmparse.cpp" break; case 364: -#line 945 "asmparse.y" +#line 944 "asmparse.y" { int n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); if(n >= 0) PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); else PASM->report->error("Type parameter '%s' undefined\n",yystack.l_mark[0].string); } -#line 9504 "asmparse.cpp" +#line 10889 "asmparse.cpp" break; case 365: -#line 951 "asmparse.y" +#line 950 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(yystack.l_mark[-3].int32, 0, yystack.l_mark[0].token); } -#line 9509 "asmparse.cpp" +#line 10894 "asmparse.cpp" break; case 366: -#line 952 "asmparse.y" +#line 951 "asmparse.y" { PASM->m_pCurMethod->AddGenericParamConstraint(0, yystack.l_mark[-2].string, yystack.l_mark[0].token); } -#line 9514 "asmparse.cpp" +#line 10899 "asmparse.cpp" break; case 367: -#line 955 "asmparse.y" +#line 954 "asmparse.y" { if( yystack.l_mark[-2].int32 ) { ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yystack.l_mark[-2].int32 - 1); if(pAN) @@ -9532,207 +10917,207 @@ case 367: } PASM->m_tkCurrentCVOwner = 0; } -#line 9536 "asmparse.cpp" +#line 10921 "asmparse.cpp" break; case 368: -#line 975 "asmparse.y" +#line 974 "asmparse.y" { PASM->m_pCurMethod->CloseScope(); } -#line 9541 "asmparse.cpp" +#line 10926 "asmparse.cpp" break; case 369: -#line 978 "asmparse.y" +#line 977 "asmparse.y" { PASM->m_pCurMethod->OpenScope(); } -#line 9546 "asmparse.cpp" +#line 10931 "asmparse.cpp" break; case 373: -#line 989 "asmparse.y" +#line 988 "asmparse.y" { PASM->m_SEHD->tryTo = PASM->m_CurPC; } -#line 9551 "asmparse.cpp" +#line 10936 "asmparse.cpp" break; case 374: -#line 990 "asmparse.y" +#line 989 "asmparse.y" { PASM->SetTryLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } -#line 9556 "asmparse.cpp" +#line 10941 "asmparse.cpp" break; case 375: -#line 991 "asmparse.y" +#line 990 "asmparse.y" { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yystack.l_mark[-2].int32; PASM->m_SEHD->tryTo = yystack.l_mark[0].int32;} } -#line 9562 "asmparse.cpp" +#line 10947 "asmparse.cpp" break; case 376: -#line 995 "asmparse.y" +#line 994 "asmparse.y" { PASM->NewSEHDescriptor(); PASM->m_SEHD->tryFrom = PASM->m_CurPC; } -#line 9568 "asmparse.cpp" +#line 10953 "asmparse.cpp" break; case 377: -#line 1000 "asmparse.y" +#line 999 "asmparse.y" { PASM->EmitTry(); } -#line 9573 "asmparse.cpp" +#line 10958 "asmparse.cpp" break; case 378: -#line 1001 "asmparse.y" +#line 1000 "asmparse.y" { PASM->EmitTry(); } -#line 9578 "asmparse.cpp" +#line 10963 "asmparse.cpp" break; case 379: -#line 1002 "asmparse.y" +#line 1001 "asmparse.y" { PASM->EmitTry(); } -#line 9583 "asmparse.cpp" +#line 10968 "asmparse.cpp" break; case 380: -#line 1003 "asmparse.y" +#line 1002 "asmparse.y" { PASM->EmitTry(); } -#line 9588 "asmparse.cpp" +#line 10973 "asmparse.cpp" break; case 381: -#line 1007 "asmparse.y" +#line 1006 "asmparse.y" { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9593 "asmparse.cpp" +#line 10978 "asmparse.cpp" break; case 382: -#line 1008 "asmparse.y" +#line 1007 "asmparse.y" { PASM->SetFilterLabel(yystack.l_mark[0].string); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9599 "asmparse.cpp" +#line 10984 "asmparse.cpp" break; case 383: -#line 1010 "asmparse.y" +#line 1009 "asmparse.y" { PASM->m_SEHD->sehFilter = yystack.l_mark[0].int32; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9605 "asmparse.cpp" +#line 10990 "asmparse.cpp" break; case 384: -#line 1014 "asmparse.y" +#line 1013 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; PASM->m_SEHD->sehFilter = PASM->m_CurPC; } -#line 9611 "asmparse.cpp" +#line 10996 "asmparse.cpp" break; case 385: -#line 1018 "asmparse.y" +#line 1017 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; PASM->SetCatchClass(yystack.l_mark[0].token); PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9618 "asmparse.cpp" +#line 11003 "asmparse.cpp" break; case 386: -#line 1023 "asmparse.y" +#line 1022 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9624 "asmparse.cpp" +#line 11009 "asmparse.cpp" break; case 387: -#line 1027 "asmparse.y" +#line 1026 "asmparse.y" { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; PASM->m_SEHD->sehHandler = PASM->m_CurPC; } -#line 9630 "asmparse.cpp" +#line 11015 "asmparse.cpp" break; case 388: -#line 1031 "asmparse.y" +#line 1030 "asmparse.y" { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } -#line 9635 "asmparse.cpp" +#line 11020 "asmparse.cpp" break; case 389: -#line 1032 "asmparse.y" +#line 1031 "asmparse.y" { PASM->SetHandlerLabels(yystack.l_mark[-2].string, yystack.l_mark[0].string); } -#line 9640 "asmparse.cpp" +#line 11025 "asmparse.cpp" break; case 390: -#line 1033 "asmparse.y" +#line 1032 "asmparse.y" { PASM->m_SEHD->sehHandler = yystack.l_mark[-2].int32; PASM->m_SEHD->sehHandlerTo = yystack.l_mark[0].int32; } -#line 9646 "asmparse.cpp" +#line 11031 "asmparse.cpp" break; case 392: -#line 1041 "asmparse.y" +#line 1040 "asmparse.y" { PASM->EmitDataLabel(yystack.l_mark[-1].string); } -#line 9651 "asmparse.cpp" +#line 11036 "asmparse.cpp" break; case 394: -#line 1045 "asmparse.y" +#line 1044 "asmparse.y" { PASM->SetDataSection(); } -#line 9656 "asmparse.cpp" +#line 11041 "asmparse.cpp" break; case 395: -#line 1046 "asmparse.y" +#line 1045 "asmparse.y" { PASM->SetTLSSection(); } -#line 9661 "asmparse.cpp" +#line 11046 "asmparse.cpp" break; case 396: -#line 1047 "asmparse.y" +#line 1046 "asmparse.y" { PASM->SetILSection(); } -#line 9666 "asmparse.cpp" +#line 11051 "asmparse.cpp" break; case 401: -#line 1058 "asmparse.y" +#line 1057 "asmparse.y" { yyval.int32 = 1; } -#line 9671 "asmparse.cpp" +#line 11056 "asmparse.cpp" break; case 402: -#line 1059 "asmparse.y" +#line 1058 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32; if(yystack.l_mark[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n",yystack.l_mark[-1].int32); if(!PASM->OnErrGo) yyval.int32 = 1; }} -#line 9678 "asmparse.cpp" +#line 11063 "asmparse.cpp" break; case 403: -#line 1064 "asmparse.y" +#line 1063 "asmparse.y" { PASM->EmitDataString(yystack.l_mark[-1].binstr); } -#line 9683 "asmparse.cpp" +#line 11068 "asmparse.cpp" break; case 404: -#line 1065 "asmparse.y" +#line 1064 "asmparse.y" { PASM->EmitDD(yystack.l_mark[-1].string); } -#line 9688 "asmparse.cpp" +#line 11073 "asmparse.cpp" break; case 405: -#line 1066 "asmparse.y" +#line 1065 "asmparse.y" { PASM->EmitData(yystack.l_mark[-1].binstr->ptr(),yystack.l_mark[-1].binstr->length()); } -#line 9693 "asmparse.cpp" +#line 11078 "asmparse.cpp" break; case 406: -#line 1068 "asmparse.y" +#line 1067 "asmparse.y" { float f = (float) (*yystack.l_mark[-2].float64); float* p = new (nothrow) float[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; i < yystack.l_mark[0].int32; i++) p[i] = f; PASM->EmitData(p, sizeof(float)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(float)*yystack.l_mark[0].int32); } -#line 9703 "asmparse.cpp" +#line 11088 "asmparse.cpp" break; case 407: -#line 1075 "asmparse.y" +#line 1074 "asmparse.y" { double* p = new (nothrow) double[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(double)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].float64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(double)*yystack.l_mark[0].int32); } -#line 9713 "asmparse.cpp" +#line 11098 "asmparse.cpp" break; case 408: -#line 1082 "asmparse.y" +#line 1081 "asmparse.y" { __int64* p = new (nothrow) __int64[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int64)*yystack.l_mark[0].int32); delete yystack.l_mark[-2].int64; delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int64)*yystack.l_mark[0].int32); } -#line 9723 "asmparse.cpp" +#line 11108 "asmparse.cpp" break; case 409: -#line 1089 "asmparse.y" +#line 1088 "asmparse.y" { __int32* p = new (nothrow) __int32[yystack.l_mark[0].int32]; if(p != NULL) { for(int i=0; iEmitData(p, sizeof(__int32)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int32)*yystack.l_mark[0].int32); } -#line 9733 "asmparse.cpp" +#line 11118 "asmparse.cpp" break; case 410: -#line 1096 "asmparse.y" +#line 1095 "asmparse.y" { __int16 i = (__int16) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); __int16* p = new (nothrow) __int16[yystack.l_mark[0].int32]; if(p != NULL) { @@ -9740,10 +11125,10 @@ case 410: PASM->EmitData(p, sizeof(__int16)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int16)*yystack.l_mark[0].int32); } -#line 9744 "asmparse.cpp" +#line 11129 "asmparse.cpp" break; case 411: -#line 1104 "asmparse.y" +#line 1103 "asmparse.y" { __int8 i = (__int8) yystack.l_mark[-2].int32; FAIL_UNLESS(i == yystack.l_mark[-2].int32, ("Value %d too big\n", yystack.l_mark[-2].int32)); __int8* p = new (nothrow) __int8[yystack.l_mark[0].int32]; if(p != NULL) { @@ -9751,728 +11136,728 @@ case 411: PASM->EmitData(p, sizeof(__int8)*yystack.l_mark[0].int32); delete [] p; } else PASM->report->error("Out of memory emitting data block %d bytes\n", sizeof(__int8)*yystack.l_mark[0].int32); } -#line 9755 "asmparse.cpp" +#line 11140 "asmparse.cpp" break; case 412: -#line 1111 "asmparse.y" +#line 1110 "asmparse.y" { PASM->EmitData(NULL, sizeof(float)*yystack.l_mark[0].int32); } -#line 9760 "asmparse.cpp" +#line 11145 "asmparse.cpp" break; case 413: -#line 1112 "asmparse.y" +#line 1111 "asmparse.y" { PASM->EmitData(NULL, sizeof(double)*yystack.l_mark[0].int32); } -#line 9765 "asmparse.cpp" +#line 11150 "asmparse.cpp" break; case 414: -#line 1113 "asmparse.y" +#line 1112 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int64)*yystack.l_mark[0].int32); } -#line 9770 "asmparse.cpp" +#line 11155 "asmparse.cpp" break; case 415: -#line 1114 "asmparse.y" +#line 1113 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int32)*yystack.l_mark[0].int32); } -#line 9775 "asmparse.cpp" +#line 11160 "asmparse.cpp" break; case 416: -#line 1115 "asmparse.y" +#line 1114 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int16)*yystack.l_mark[0].int32); } -#line 9780 "asmparse.cpp" +#line 11165 "asmparse.cpp" break; case 417: -#line 1116 "asmparse.y" +#line 1115 "asmparse.y" { PASM->EmitData(NULL, sizeof(__int8)*yystack.l_mark[0].int32); } -#line 9785 "asmparse.cpp" +#line 11170 "asmparse.cpp" break; case 418: -#line 1120 "asmparse.y" +#line 1119 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yystack.l_mark[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } -#line 9792 "asmparse.cpp" +#line 11177 "asmparse.cpp" break; case 419: -#line 1123 "asmparse.y" +#line 1122 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } -#line 9798 "asmparse.cpp" +#line 11183 "asmparse.cpp" break; case 420: -#line 1125 "asmparse.y" +#line 1124 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9804 "asmparse.cpp" +#line 11189 "asmparse.cpp" break; case 421: -#line 1127 "asmparse.y" +#line 1126 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9810 "asmparse.cpp" +#line 11195 "asmparse.cpp" break; case 422: -#line 1129 "asmparse.y" +#line 1128 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9816 "asmparse.cpp" +#line 11201 "asmparse.cpp" break; case 423: -#line 1131 "asmparse.y" +#line 1130 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9822 "asmparse.cpp" +#line 11207 "asmparse.cpp" break; case 424: -#line 1133 "asmparse.y" +#line 1132 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9828 "asmparse.cpp" +#line 11213 "asmparse.cpp" break; case 425: -#line 1135 "asmparse.y" +#line 1134 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9834 "asmparse.cpp" +#line 11219 "asmparse.cpp" break; case 426: -#line 1137 "asmparse.y" +#line 1136 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9840 "asmparse.cpp" +#line 11225 "asmparse.cpp" break; case 427: -#line 1139 "asmparse.y" +#line 1138 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9846 "asmparse.cpp" +#line 11231 "asmparse.cpp" break; case 428: -#line 1141 "asmparse.y" +#line 1140 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9852 "asmparse.cpp" +#line 11237 "asmparse.cpp" break; case 429: -#line 1143 "asmparse.y" +#line 1142 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9858 "asmparse.cpp" +#line 11243 "asmparse.cpp" break; case 430: -#line 1145 "asmparse.y" +#line 1144 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 9864 "asmparse.cpp" +#line 11249 "asmparse.cpp" break; case 431: -#line 1147 "asmparse.y" +#line 1146 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 9870 "asmparse.cpp" +#line 11255 "asmparse.cpp" break; case 432: -#line 1149 "asmparse.y" +#line 1148 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9876 "asmparse.cpp" +#line 11261 "asmparse.cpp" break; case 433: -#line 1151 "asmparse.y" +#line 1150 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 9882 "asmparse.cpp" +#line 11267 "asmparse.cpp" break; case 434: -#line 1153 "asmparse.y" +#line 1152 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 9888 "asmparse.cpp" +#line 11273 "asmparse.cpp" break; case 435: -#line 1155 "asmparse.y" +#line 1154 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} -#line 9894 "asmparse.cpp" +#line 11279 "asmparse.cpp" break; case 436: -#line 1157 "asmparse.y" +#line 1156 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-1].binstr;} -#line 9900 "asmparse.cpp" +#line 11285 "asmparse.cpp" break; case 437: -#line 1161 "asmparse.y" +#line 1160 "asmparse.y" { bParsingByteArray = TRUE; } -#line 9905 "asmparse.cpp" +#line 11290 "asmparse.cpp" break; case 438: -#line 1164 "asmparse.y" +#line 1163 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 9910 "asmparse.cpp" +#line 11295 "asmparse.cpp" break; case 439: -#line 1165 "asmparse.y" +#line 1164 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9915 "asmparse.cpp" +#line 11300 "asmparse.cpp" break; case 440: -#line 1168 "asmparse.y" +#line 1167 "asmparse.y" { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } -#line 9920 "asmparse.cpp" +#line 11305 "asmparse.cpp" break; case 441: -#line 1169 "asmparse.y" +#line 1168 "asmparse.y" { __int8 i = (__int8) yystack.l_mark[0].int32; yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(i); } -#line 9925 "asmparse.cpp" +#line 11310 "asmparse.cpp" break; case 442: -#line 1173 "asmparse.y" +#line 1172 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9930 "asmparse.cpp" +#line 11315 "asmparse.cpp" break; case 443: -#line 1174 "asmparse.y" +#line 1173 "asmparse.y" { yyval.binstr = BinStrToUnicode(yystack.l_mark[0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} -#line 9935 "asmparse.cpp" +#line 11320 "asmparse.cpp" break; case 444: -#line 1175 "asmparse.y" +#line 1174 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); yyval.binstr->appendInt32(0); } -#line 9941 "asmparse.cpp" +#line 11326 "asmparse.cpp" break; case 445: -#line 1180 "asmparse.y" +#line 1179 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 9946 "asmparse.cpp" +#line 11331 "asmparse.cpp" break; case 446: -#line 1181 "asmparse.y" +#line 1180 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } -#line 9951 "asmparse.cpp" +#line 11336 "asmparse.cpp" break; case 447: -#line 1182 "asmparse.y" +#line 1181 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} -#line 9957 "asmparse.cpp" +#line 11342 "asmparse.cpp" break; case 448: -#line 1184 "asmparse.y" +#line 1183 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,yystack.l_mark[-1].string); delete [] yystack.l_mark[-1].string;} -#line 9963 "asmparse.cpp" +#line 11348 "asmparse.cpp" break; case 449: -#line 1186 "asmparse.y" +#line 1185 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[-1].token));} -#line 9969 "asmparse.cpp" +#line 11354 "asmparse.cpp" break; case 450: -#line 1188 "asmparse.y" +#line 1187 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } -#line 9974 "asmparse.cpp" +#line 11359 "asmparse.cpp" break; case 451: -#line 1189 "asmparse.y" +#line 1188 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} -#line 9979 "asmparse.cpp" +#line 11364 "asmparse.cpp" break; case 452: -#line 1191 "asmparse.y" +#line 1190 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9986 "asmparse.cpp" +#line 11371 "asmparse.cpp" break; case 453: -#line 1195 "asmparse.y" +#line 1194 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_R8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 9993 "asmparse.cpp" +#line 11378 "asmparse.cpp" break; case 454: -#line 1199 "asmparse.y" +#line 1198 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10000 "asmparse.cpp" +#line 11385 "asmparse.cpp" break; case 455: -#line 1203 "asmparse.y" +#line 1202 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10007 "asmparse.cpp" +#line 11392 "asmparse.cpp" break; case 456: -#line 1207 "asmparse.y" +#line 1206 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10014 "asmparse.cpp" +#line 11399 "asmparse.cpp" break; case 457: -#line 1211 "asmparse.y" +#line 1210 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_I1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10021 "asmparse.cpp" +#line 11406 "asmparse.cpp" break; case 458: -#line 1215 "asmparse.y" +#line 1214 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10028 "asmparse.cpp" +#line 11413 "asmparse.cpp" break; case 459: -#line 1219 "asmparse.y" +#line 1218 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10035 "asmparse.cpp" +#line 11420 "asmparse.cpp" break; case 460: -#line 1223 "asmparse.y" +#line 1222 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10042 "asmparse.cpp" +#line 11427 "asmparse.cpp" break; case 461: -#line 1227 "asmparse.y" +#line 1226 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10049 "asmparse.cpp" +#line 11434 "asmparse.cpp" break; case 462: -#line 1231 "asmparse.y" +#line 1230 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U8); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10056 "asmparse.cpp" +#line 11441 "asmparse.cpp" break; case 463: -#line 1235 "asmparse.y" +#line 1234 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U4); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10063 "asmparse.cpp" +#line 11448 "asmparse.cpp" break; case 464: -#line 1239 "asmparse.y" +#line 1238 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U2); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10070 "asmparse.cpp" +#line 11455 "asmparse.cpp" break; case 465: -#line 1243 "asmparse.y" +#line 1242 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_U1); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10077 "asmparse.cpp" +#line 11462 "asmparse.cpp" break; case 466: -#line 1247 "asmparse.y" +#line 1246 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10084 "asmparse.cpp" +#line 11469 "asmparse.cpp" break; case 467: -#line 1251 "asmparse.y" +#line 1250 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10091 "asmparse.cpp" +#line 11476 "asmparse.cpp" break; case 468: -#line 1255 "asmparse.y" +#line 1254 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10098 "asmparse.cpp" +#line 11483 "asmparse.cpp" break; case 469: -#line 1259 "asmparse.y" +#line 1258 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10105 "asmparse.cpp" +#line 11490 "asmparse.cpp" break; case 470: -#line 1263 "asmparse.y" +#line 1262 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt32(yystack.l_mark[-4].int32); yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 10112 "asmparse.cpp" +#line 11497 "asmparse.cpp" break; case 471: -#line 1268 "asmparse.y" +#line 1267 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); float f = (float)(*yystack.l_mark[-1].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[-1].float64; } -#line 10119 "asmparse.cpp" +#line 11504 "asmparse.cpp" break; case 472: -#line 1271 "asmparse.y" +#line 1270 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].float64); delete yystack.l_mark[-1].float64; } -#line 10125 "asmparse.cpp" +#line 11510 "asmparse.cpp" break; case 473: -#line 1273 "asmparse.y" +#line 1272 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10131 "asmparse.cpp" +#line 11516 "asmparse.cpp" break; case 474: -#line 1275 "asmparse.y" +#line 1274 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10137 "asmparse.cpp" +#line 11522 "asmparse.cpp" break; case 475: -#line 1277 "asmparse.y" +#line 1276 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10143 "asmparse.cpp" +#line 11528 "asmparse.cpp" break; case 476: -#line 1279 "asmparse.y" +#line 1278 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10149 "asmparse.cpp" +#line 11534 "asmparse.cpp" break; case 477: -#line 1281 "asmparse.y" +#line 1280 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10155 "asmparse.cpp" +#line 11540 "asmparse.cpp" break; case 478: -#line 1283 "asmparse.y" +#line 1282 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10161 "asmparse.cpp" +#line 11546 "asmparse.cpp" break; case 479: -#line 1285 "asmparse.y" +#line 1284 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10167 "asmparse.cpp" +#line 11552 "asmparse.cpp" break; case 480: -#line 1287 "asmparse.y" +#line 1286 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10173 "asmparse.cpp" +#line 11558 "asmparse.cpp" break; case 481: -#line 1289 "asmparse.y" +#line 1288 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10179 "asmparse.cpp" +#line 11564 "asmparse.cpp" break; case 482: -#line 1291 "asmparse.y" +#line 1290 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10185 "asmparse.cpp" +#line 11570 "asmparse.cpp" break; case 483: -#line 1293 "asmparse.y" +#line 1292 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); yyval.binstr->appendInt64((__int64 *)yystack.l_mark[-1].int64); delete yystack.l_mark[-1].int64; } -#line 10191 "asmparse.cpp" +#line 11576 "asmparse.cpp" break; case 484: -#line 1295 "asmparse.y" +#line 1294 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 10197 "asmparse.cpp" +#line 11582 "asmparse.cpp" break; case 485: -#line 1297 "asmparse.y" +#line 1296 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10203 "asmparse.cpp" +#line 11588 "asmparse.cpp" break; case 486: -#line 1299 "asmparse.y" +#line 1298 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); yyval.binstr->appendInt8(yystack.l_mark[-1].int32); } -#line 10209 "asmparse.cpp" +#line 11594 "asmparse.cpp" break; case 487: -#line 1301 "asmparse.y" +#line 1300 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); yyval.binstr->appendInt16(yystack.l_mark[-1].int32); } -#line 10215 "asmparse.cpp" +#line 11600 "asmparse.cpp" break; case 488: -#line 1303 "asmparse.y" +#line 1302 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[-1].int32);} -#line 10221 "asmparse.cpp" +#line 11606 "asmparse.cpp" break; case 489: -#line 1308 "asmparse.y" +#line 1307 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10226 "asmparse.cpp" +#line 11611 "asmparse.cpp" break; case 490: -#line 1309 "asmparse.y" +#line 1308 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; float f = (float) (*yystack.l_mark[0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yystack.l_mark[0].float64; } -#line 10232 "asmparse.cpp" +#line 11617 "asmparse.cpp" break; case 491: -#line 1311 "asmparse.y" +#line 1310 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 10238 "asmparse.cpp" +#line 11623 "asmparse.cpp" break; case 492: -#line 1315 "asmparse.y" +#line 1314 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10243 "asmparse.cpp" +#line 11628 "asmparse.cpp" break; case 493: -#line 1316 "asmparse.y" +#line 1315 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].float64); delete yystack.l_mark[0].float64; } -#line 10249 "asmparse.cpp" +#line 11634 "asmparse.cpp" break; case 494: -#line 1318 "asmparse.y" +#line 1317 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } -#line 10255 "asmparse.cpp" +#line 11640 "asmparse.cpp" break; case 495: -#line 1322 "asmparse.y" +#line 1321 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10260 "asmparse.cpp" +#line 11645 "asmparse.cpp" break; case 496: -#line 1323 "asmparse.y" +#line 1322 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt64((__int64 *)yystack.l_mark[0].int64); delete yystack.l_mark[0].int64; } -#line 10266 "asmparse.cpp" +#line 11651 "asmparse.cpp" break; case 497: -#line 1327 "asmparse.y" +#line 1326 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10271 "asmparse.cpp" +#line 11656 "asmparse.cpp" break; case 498: -#line 1328 "asmparse.y" +#line 1327 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt32(yystack.l_mark[0].int32);} -#line 10276 "asmparse.cpp" +#line 11661 "asmparse.cpp" break; case 499: -#line 1331 "asmparse.y" +#line 1330 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10281 "asmparse.cpp" +#line 11666 "asmparse.cpp" break; case 500: -#line 1332 "asmparse.y" +#line 1331 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt16(yystack.l_mark[0].int32);} -#line 10286 "asmparse.cpp" +#line 11671 "asmparse.cpp" break; case 501: -#line 1335 "asmparse.y" +#line 1334 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10291 "asmparse.cpp" +#line 11676 "asmparse.cpp" break; case 502: -#line 1336 "asmparse.y" +#line 1335 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(yystack.l_mark[0].int32); } -#line 10296 "asmparse.cpp" +#line 11681 "asmparse.cpp" break; case 503: -#line 1339 "asmparse.y" +#line 1338 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10301 "asmparse.cpp" +#line 11686 "asmparse.cpp" break; case 504: -#line 1340 "asmparse.y" +#line 1339 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(yystack.l_mark[0].int32);} -#line 10307 "asmparse.cpp" +#line 11692 "asmparse.cpp" break; case 505: -#line 1344 "asmparse.y" +#line 1343 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10312 "asmparse.cpp" +#line 11697 "asmparse.cpp" break; case 506: -#line 1345 "asmparse.y" +#line 1344 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10317 "asmparse.cpp" +#line 11702 "asmparse.cpp" break; case 507: -#line 1346 "asmparse.y" +#line 1345 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} -#line 10323 "asmparse.cpp" +#line 11708 "asmparse.cpp" break; case 508: -#line 1350 "asmparse.y" +#line 1349 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10328 "asmparse.cpp" +#line 11713 "asmparse.cpp" break; case 509: -#line 1351 "asmparse.y" +#line 1350 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->appendInt8(0xFF); } -#line 10333 "asmparse.cpp" +#line 11718 "asmparse.cpp" break; case 510: -#line 1352 "asmparse.y" +#line 1351 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; AppendStringWithLength(yyval.binstr,yystack.l_mark[0].string); delete [] yystack.l_mark[0].string;} -#line 10339 "asmparse.cpp" +#line 11724 "asmparse.cpp" break; case 511: -#line 1354 "asmparse.y" +#line 1353 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yystack.l_mark[0].token));} -#line 10345 "asmparse.cpp" +#line 11730 "asmparse.cpp" break; case 512: -#line 1358 "asmparse.y" +#line 1357 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10350 "asmparse.cpp" +#line 11735 "asmparse.cpp" break; case 513: -#line 1359 "asmparse.y" +#line 1358 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10355 "asmparse.cpp" +#line 11740 "asmparse.cpp" break; case 514: -#line 1363 "asmparse.y" +#line 1362 "asmparse.y" { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); parser->m_ANSLast.PUSH(PASM->m_lastArgName); PASM->m_firstArgName = NULL; PASM->m_lastArgName = NULL; } -#line 10363 "asmparse.cpp" +#line 11748 "asmparse.cpp" break; case 515: -#line 1369 "asmparse.y" +#line 1368 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10368 "asmparse.cpp" +#line 11753 "asmparse.cpp" break; case 516: -#line 1372 "asmparse.y" +#line 1371 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10373 "asmparse.cpp" +#line 11758 "asmparse.cpp" break; case 517: -#line 1375 "asmparse.y" +#line 1374 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10378 "asmparse.cpp" +#line 11763 "asmparse.cpp" break; case 518: -#line 1378 "asmparse.y" +#line 1377 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10383 "asmparse.cpp" +#line 11768 "asmparse.cpp" break; case 519: -#line 1381 "asmparse.y" +#line 1380 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10388 "asmparse.cpp" +#line 11773 "asmparse.cpp" break; case 520: -#line 1384 "asmparse.y" +#line 1383 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10393 "asmparse.cpp" +#line 11778 "asmparse.cpp" break; case 521: -#line 1387 "asmparse.y" +#line 1386 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); if((!PASM->OnErrGo)&& ((yystack.l_mark[0].opcode == CEE_NEWOBJ)|| (yystack.l_mark[0].opcode == CEE_CALLVIRT))) iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; } -#line 10403 "asmparse.cpp" +#line 11788 "asmparse.cpp" break; case 522: -#line 1395 "asmparse.y" +#line 1394 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10408 "asmparse.cpp" +#line 11793 "asmparse.cpp" break; case 523: -#line 1398 "asmparse.y" +#line 1397 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10413 "asmparse.cpp" +#line 11798 "asmparse.cpp" break; case 524: -#line 1401 "asmparse.y" +#line 1400 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10418 "asmparse.cpp" +#line 11803 "asmparse.cpp" break; case 525: -#line 1404 "asmparse.y" +#line 1403 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10423 "asmparse.cpp" +#line 11808 "asmparse.cpp" break; case 526: -#line 1407 "asmparse.y" +#line 1406 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } -#line 10428 "asmparse.cpp" +#line 11813 "asmparse.cpp" break; case 527: -#line 1410 "asmparse.y" +#line 1409 "asmparse.y" { yyval.instr = SetupInstr(yystack.l_mark[0].opcode); } -#line 10433 "asmparse.cpp" +#line 11818 "asmparse.cpp" break; case 528: -#line 1413 "asmparse.y" +#line 1412 "asmparse.y" { yyval.instr = yystack.l_mark[-1].instr; bParsingByteArray = TRUE; } -#line 10438 "asmparse.cpp" +#line 11823 "asmparse.cpp" break; case 529: -#line 1417 "asmparse.y" +#line 1416 "asmparse.y" { PASM->EmitOpcode(yystack.l_mark[0].instr); } -#line 10443 "asmparse.cpp" +#line 11828 "asmparse.cpp" break; case 530: -#line 1418 "asmparse.y" +#line 1417 "asmparse.y" { PASM->EmitInstrVar(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10448 "asmparse.cpp" +#line 11833 "asmparse.cpp" break; case 531: -#line 1419 "asmparse.y" +#line 1418 "asmparse.y" { PASM->EmitInstrVarByName(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } -#line 10453 "asmparse.cpp" +#line 11838 "asmparse.cpp" break; case 532: -#line 1420 "asmparse.y" +#line 1419 "asmparse.y" { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10458 "asmparse.cpp" +#line 11843 "asmparse.cpp" break; case 533: -#line 1421 "asmparse.y" +#line 1420 "asmparse.y" { PASM->EmitInstrI8(yystack.l_mark[-1].instr, yystack.l_mark[0].int64); } -#line 10463 "asmparse.cpp" +#line 11848 "asmparse.cpp" break; case 534: -#line 1422 "asmparse.y" +#line 1421 "asmparse.y" { PASM->EmitInstrR(yystack.l_mark[-1].instr, yystack.l_mark[0].float64); delete (yystack.l_mark[0].float64);} -#line 10468 "asmparse.cpp" +#line 11853 "asmparse.cpp" break; case 535: -#line 1423 "asmparse.y" +#line 1422 "asmparse.y" { double f = (double) (*yystack.l_mark[0].int64); PASM->EmitInstrR(yystack.l_mark[-1].instr, &f); } -#line 10473 "asmparse.cpp" +#line 11858 "asmparse.cpp" break; case 536: -#line 1424 "asmparse.y" +#line 1423 "asmparse.y" { unsigned L = yystack.l_mark[-1].binstr->length(); FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n", L,sizeof(float))); @@ -10482,30 +11867,30 @@ case 536: : (double)(*(float *)(yystack.l_mark[-1].binstr->ptr())); PASM->EmitInstrR(yystack.l_mark[-2].instr,&f); } delete yystack.l_mark[-1].binstr; } -#line 10486 "asmparse.cpp" +#line 11871 "asmparse.cpp" break; case 537: -#line 1433 "asmparse.y" +#line 1432 "asmparse.y" { PASM->EmitInstrBrOffset(yystack.l_mark[-1].instr, yystack.l_mark[0].int32); } -#line 10491 "asmparse.cpp" +#line 11876 "asmparse.cpp" break; case 538: -#line 1434 "asmparse.y" +#line 1433 "asmparse.y" { PASM->EmitInstrBrTarget(yystack.l_mark[-1].instr, yystack.l_mark[0].string); } -#line 10496 "asmparse.cpp" +#line 11881 "asmparse.cpp" break; case 539: -#line 1436 "asmparse.y" +#line 1435 "asmparse.y" { PASM->SetMemberRefFixup(yystack.l_mark[0].token,PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; iCallConv = 0; } -#line 10506 "asmparse.cpp" +#line 11891 "asmparse.cpp" break; case 540: -#line 1443 "asmparse.y" +#line 1442 "asmparse.y" { yystack.l_mark[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, yystack.l_mark[-3].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-4].instr)); @@ -10513,10 +11898,10 @@ case 540: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10517 "asmparse.cpp" +#line 11902 "asmparse.cpp" break; case 541: -#line 1451 "asmparse.y" +#line 1450 "asmparse.y" { yystack.l_mark[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); mdToken mr = PASM->MakeMemberRef(mdTokenNil, yystack.l_mark[0].string, yystack.l_mark[-1].binstr); PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-2].instr)); @@ -10524,909 +11909,909 @@ case 541: PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10528 "asmparse.cpp" +#line 11913 "asmparse.cpp" break; case 542: -#line 1458 "asmparse.y" +#line 1457 "asmparse.y" { mdToken mr = yystack.l_mark[0].token; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10538 "asmparse.cpp" +#line 11923 "asmparse.cpp" break; case 543: -#line 1464 "asmparse.y" +#line 1463 "asmparse.y" { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10548 "asmparse.cpp" +#line 11933 "asmparse.cpp" break; case 544: -#line 1470 "asmparse.y" +#line 1469 "asmparse.y" { mdToken mr = yystack.l_mark[0].tdd->m_tkTypeSpec; PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yystack.l_mark[-1].instr)); PASM->EmitInstrI(yystack.l_mark[-1].instr,mr); PASM->m_tkCurrentCVOwner = mr; PASM->m_pCustomDescrList = NULL; } -#line 10558 "asmparse.cpp" +#line 11943 "asmparse.cpp" break; case 545: -#line 1476 "asmparse.y" +#line 1475 "asmparse.y" { PASM->EmitInstrI(yystack.l_mark[-1].instr, yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; } -#line 10566 "asmparse.cpp" +#line 11951 "asmparse.cpp" break; case 546: -#line 1480 "asmparse.y" +#line 1479 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-1].instr, yystack.l_mark[0].binstr,TRUE); } -#line 10571 "asmparse.cpp" +#line 11956 "asmparse.cpp" break; case 547: -#line 1482 "asmparse.y" +#line 1481 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-4].instr, yystack.l_mark[-1].binstr,FALSE); } -#line 10576 "asmparse.cpp" +#line 11961 "asmparse.cpp" break; case 548: -#line 1484 "asmparse.y" +#line 1483 "asmparse.y" { PASM->EmitInstrStringLiteral(yystack.l_mark[-3].instr, yystack.l_mark[-1].binstr,FALSE,TRUE); } -#line 10581 "asmparse.cpp" +#line 11966 "asmparse.cpp" break; case 549: -#line 1486 "asmparse.y" +#line 1485 "asmparse.y" { PASM->EmitInstrSig(yystack.l_mark[-5].instr, parser->MakeSig(yystack.l_mark[-4].int32, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr)); PASM->ResetArgNameList(); } -#line 10588 "asmparse.cpp" +#line 11973 "asmparse.cpp" break; case 550: -#line 1490 "asmparse.y" +#line 1489 "asmparse.y" { PASM->EmitInstrI(yystack.l_mark[-1].instr,yystack.l_mark[0].token); PASM->m_tkCurrentCVOwner = yystack.l_mark[0].token; PASM->m_pCustomDescrList = NULL; iOpcodeLen = 0; } -#line 10597 "asmparse.cpp" +#line 11982 "asmparse.cpp" break; case 551: -#line 1495 "asmparse.y" +#line 1494 "asmparse.y" { PASM->EmitInstrSwitch(yystack.l_mark[-3].instr, yystack.l_mark[-1].labels); } -#line 10602 "asmparse.cpp" +#line 11987 "asmparse.cpp" break; case 552: -#line 1498 "asmparse.y" +#line 1497 "asmparse.y" { yyval.labels = 0; } -#line 10607 "asmparse.cpp" +#line 11992 "asmparse.cpp" break; case 553: -#line 1499 "asmparse.y" +#line 1498 "asmparse.y" { yyval.labels = new Labels(yystack.l_mark[-2].string, yystack.l_mark[0].labels, TRUE); } -#line 10612 "asmparse.cpp" +#line 11997 "asmparse.cpp" break; case 554: -#line 1500 "asmparse.y" +#line 1499 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[-2].int32, yystack.l_mark[0].labels, FALSE); } -#line 10617 "asmparse.cpp" +#line 12002 "asmparse.cpp" break; case 555: -#line 1501 "asmparse.y" +#line 1500 "asmparse.y" { yyval.labels = new Labels(yystack.l_mark[0].string, NULL, TRUE); } -#line 10622 "asmparse.cpp" +#line 12007 "asmparse.cpp" break; case 556: -#line 1502 "asmparse.y" +#line 1501 "asmparse.y" { yyval.labels = new Labels((char *)(UINT_PTR)yystack.l_mark[0].int32, NULL, FALSE); } -#line 10627 "asmparse.cpp" +#line 12012 "asmparse.cpp" break; case 557: -#line 1506 "asmparse.y" +#line 1505 "asmparse.y" { yyval.binstr = NULL; } -#line 10632 "asmparse.cpp" +#line 12017 "asmparse.cpp" break; case 558: -#line 1507 "asmparse.y" +#line 1506 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; } -#line 10637 "asmparse.cpp" +#line 12022 "asmparse.cpp" break; case 559: -#line 1510 "asmparse.y" +#line 1509 "asmparse.y" { yyval.binstr = NULL; } -#line 10642 "asmparse.cpp" +#line 12027 "asmparse.cpp" break; case 560: -#line 1511 "asmparse.y" +#line 1510 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10647 "asmparse.cpp" +#line 12032 "asmparse.cpp" break; case 561: -#line 1514 "asmparse.y" +#line 1513 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10652 "asmparse.cpp" +#line 12037 "asmparse.cpp" break; case 562: -#line 1515 "asmparse.y" +#line 1514 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10657 "asmparse.cpp" +#line 12042 "asmparse.cpp" break; case 563: -#line 1519 "asmparse.y" +#line 1518 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10662 "asmparse.cpp" +#line 12047 "asmparse.cpp" break; case 564: -#line 1520 "asmparse.y" +#line 1519 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr;} -#line 10667 "asmparse.cpp" +#line 12052 "asmparse.cpp" break; case 565: -#line 1523 "asmparse.y" +#line 1522 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 10672 "asmparse.cpp" +#line 12057 "asmparse.cpp" break; case 566: -#line 1524 "asmparse.y" +#line 1523 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 10677 "asmparse.cpp" +#line 12062 "asmparse.cpp" break; case 567: -#line 1527 "asmparse.y" +#line 1526 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } -#line 10682 "asmparse.cpp" +#line 12067 "asmparse.cpp" break; case 568: -#line 1528 "asmparse.y" +#line 1527 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->addArgName(NULL, yystack.l_mark[-1].binstr, yystack.l_mark[0].binstr, yystack.l_mark[-2].int32); } -#line 10687 "asmparse.cpp" +#line 12072 "asmparse.cpp" break; case 569: -#line 1529 "asmparse.y" +#line 1528 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[-2].binstr); PASM->addArgName(yystack.l_mark[0].string, yystack.l_mark[-2].binstr, yystack.l_mark[-1].binstr, yystack.l_mark[-3].int32);} -#line 10692 "asmparse.cpp" +#line 12077 "asmparse.cpp" break; case 570: -#line 1533 "asmparse.y" +#line 1532 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yystack.l_mark[-2].string), yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} -#line 10697 "asmparse.cpp" +#line 12082 "asmparse.cpp" break; case 571: -#line 1534 "asmparse.y" +#line 1533 "asmparse.y" { yyval.token = PASM->ResolveClassRef(yystack.l_mark[-2].token, yystack.l_mark[0].string, NULL); } -#line 10702 "asmparse.cpp" +#line 12087 "asmparse.cpp" break; case 572: -#line 1535 "asmparse.y" +#line 1534 "asmparse.y" { yyval.token = PASM->ResolveClassRef(mdTokenNil, yystack.l_mark[0].string, NULL); } -#line 10707 "asmparse.cpp" +#line 12092 "asmparse.cpp" break; case 573: -#line 1536 "asmparse.y" +#line 1535 "asmparse.y" { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yystack.l_mark[-2].string),yystack.l_mark[0].string, NULL); delete[] yystack.l_mark[-2].string;} -#line 10712 "asmparse.cpp" +#line 12097 "asmparse.cpp" break; case 574: -#line 1537 "asmparse.y" +#line 1536 "asmparse.y" { yyval.token = PASM->ResolveClassRef(1,yystack.l_mark[0].string,NULL); } -#line 10717 "asmparse.cpp" +#line 12102 "asmparse.cpp" break; case 575: -#line 1538 "asmparse.y" +#line 1537 "asmparse.y" { yyval.token = yystack.l_mark[0].token; } -#line 10722 "asmparse.cpp" +#line 12107 "asmparse.cpp" break; case 576: -#line 1539 "asmparse.y" +#line 1538 "asmparse.y" { yyval.token = yystack.l_mark[0].tdd->m_tkTypeSpec; } -#line 10727 "asmparse.cpp" +#line 12112 "asmparse.cpp" break; case 577: -#line 1540 "asmparse.y" +#line 1539 "asmparse.y" { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; else { yyval.token = 0; PASM->report->error(".this outside class scope\n"); } } -#line 10734 "asmparse.cpp" +#line 12119 "asmparse.cpp" break; case 578: -#line 1543 "asmparse.y" +#line 1542 "asmparse.y" { if(PASM->m_pCurClass != NULL) { yyval.token = PASM->m_pCurClass->m_crExtends; if(RidFromToken(yyval.token) == 0) PASM->report->error(".base undefined\n"); } else { yyval.token = 0; PASM->report->error(".base outside class scope\n"); } } -#line 10744 "asmparse.cpp" +#line 12129 "asmparse.cpp" break; case 579: -#line 1549 "asmparse.y" +#line 1548 "asmparse.y" { if(PASM->m_pCurClass != NULL) { if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; else { yyval.token = 0; PASM->report->error(".nester undefined\n"); } } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n"); } } -#line 10753 "asmparse.cpp" +#line 12138 "asmparse.cpp" break; case 580: -#line 1556 "asmparse.y" +#line 1555 "asmparse.y" { yyval.string = yystack.l_mark[0].string; } -#line 10758 "asmparse.cpp" +#line 12143 "asmparse.cpp" break; case 581: -#line 1557 "asmparse.y" +#line 1556 "asmparse.y" { yyval.string = newStringWDel(yystack.l_mark[-2].string, NESTING_SEP, yystack.l_mark[0].string); } -#line 10763 "asmparse.cpp" +#line 12148 "asmparse.cpp" break; case 582: -#line 1560 "asmparse.y" +#line 1559 "asmparse.y" { yyval.token = yystack.l_mark[0].token;} -#line 10768 "asmparse.cpp" +#line 12153 "asmparse.cpp" break; case 583: -#line 1561 "asmparse.y" +#line 1560 "asmparse.y" { yyval.token = PASM->GetAsmRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} -#line 10773 "asmparse.cpp" +#line 12158 "asmparse.cpp" break; case 584: -#line 1562 "asmparse.y" +#line 1561 "asmparse.y" { yyval.token = PASM->GetModRef(yystack.l_mark[-1].string); delete[] yystack.l_mark[-1].string;} -#line 10778 "asmparse.cpp" +#line 12163 "asmparse.cpp" break; case 585: -#line 1563 "asmparse.y" +#line 1562 "asmparse.y" { yyval.token = PASM->ResolveTypeSpec(yystack.l_mark[0].binstr); } -#line 10783 "asmparse.cpp" +#line 12168 "asmparse.cpp" break; case 586: -#line 1567 "asmparse.y" +#line 1566 "asmparse.y" { yyval.binstr = new BinStr(); } -#line 10788 "asmparse.cpp" +#line 12173 "asmparse.cpp" break; case 587: -#line 1569 "asmparse.y" +#line 1568 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,yystack.l_mark[-7].binstr->length()); yyval.binstr->append(yystack.l_mark[-7].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-5].binstr->length()); yyval.binstr->append(yystack.l_mark[-5].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n");} -#line 10798 "asmparse.cpp" +#line 12183 "asmparse.cpp" break; case 588: -#line 1576 "asmparse.y" +#line 1575 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yystack.l_mark[-3].binstr->length()); yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr,yystack.l_mark[-1].binstr->length()); yyval.binstr->append(yystack.l_mark[-1].binstr); } -#line 10807 "asmparse.cpp" +#line 12192 "asmparse.cpp" break; case 589: -#line 1581 "asmparse.y" +#line 1580 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } -#line 10813 "asmparse.cpp" +#line 12198 "asmparse.cpp" break; case 590: -#line 1584 "asmparse.y" +#line 1583 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); yyval.binstr->append(yystack.l_mark[0].binstr); } -#line 10819 "asmparse.cpp" +#line 12204 "asmparse.cpp" break; case 591: -#line 1586 "asmparse.y" +#line 1585 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); PASM->report->warn("Deprecated native type 'variant'\n"); } -#line 10825 "asmparse.cpp" +#line 12210 "asmparse.cpp" break; case 592: -#line 1588 "asmparse.y" +#line 1587 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } -#line 10830 "asmparse.cpp" +#line 12215 "asmparse.cpp" break; case 593: -#line 1589 "asmparse.y" +#line 1588 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); PASM->report->warn("Deprecated native type 'syschar'\n"); } -#line 10836 "asmparse.cpp" +#line 12221 "asmparse.cpp" break; case 594: -#line 1591 "asmparse.y" +#line 1590 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); PASM->report->warn("Deprecated native type 'void'\n"); } -#line 10842 "asmparse.cpp" +#line 12227 "asmparse.cpp" break; case 595: -#line 1593 "asmparse.y" +#line 1592 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } -#line 10847 "asmparse.cpp" +#line 12232 "asmparse.cpp" break; case 596: -#line 1594 "asmparse.y" +#line 1593 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } -#line 10852 "asmparse.cpp" +#line 12237 "asmparse.cpp" break; case 597: -#line 1595 "asmparse.y" +#line 1594 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } -#line 10857 "asmparse.cpp" +#line 12242 "asmparse.cpp" break; case 598: -#line 1596 "asmparse.y" +#line 1595 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } -#line 10862 "asmparse.cpp" +#line 12247 "asmparse.cpp" break; case 599: -#line 1597 "asmparse.y" +#line 1596 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } -#line 10867 "asmparse.cpp" +#line 12252 "asmparse.cpp" break; case 600: -#line 1598 "asmparse.y" +#line 1597 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } -#line 10872 "asmparse.cpp" +#line 12257 "asmparse.cpp" break; case 601: -#line 1599 "asmparse.y" +#line 1598 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } -#line 10877 "asmparse.cpp" +#line 12262 "asmparse.cpp" break; case 602: -#line 1600 "asmparse.y" +#line 1599 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } -#line 10882 "asmparse.cpp" +#line 12267 "asmparse.cpp" break; case 603: -#line 1601 "asmparse.y" +#line 1600 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10887 "asmparse.cpp" +#line 12272 "asmparse.cpp" break; case 604: -#line 1602 "asmparse.y" +#line 1601 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10892 "asmparse.cpp" +#line 12277 "asmparse.cpp" break; case 605: -#line 1603 "asmparse.y" +#line 1602 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10897 "asmparse.cpp" +#line 12282 "asmparse.cpp" break; case 606: -#line 1604 "asmparse.y" +#line 1603 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10902 "asmparse.cpp" +#line 12287 "asmparse.cpp" break; case 607: -#line 1605 "asmparse.y" +#line 1604 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } -#line 10907 "asmparse.cpp" +#line 12292 "asmparse.cpp" break; case 608: -#line 1606 "asmparse.y" +#line 1605 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } -#line 10912 "asmparse.cpp" +#line 12297 "asmparse.cpp" break; case 609: -#line 1607 "asmparse.y" +#line 1606 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } -#line 10917 "asmparse.cpp" +#line 12302 "asmparse.cpp" break; case 610: -#line 1608 "asmparse.y" +#line 1607 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } -#line 10922 "asmparse.cpp" +#line 12307 "asmparse.cpp" break; case 611: -#line 1609 "asmparse.y" +#line 1608 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); PASM->report->warn("Deprecated native type '*'\n"); } -#line 10928 "asmparse.cpp" +#line 12313 "asmparse.cpp" break; case 612: -#line 1611 "asmparse.y" +#line 1610 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } -#line 10934 "asmparse.cpp" +#line 12319 "asmparse.cpp" break; case 613: -#line 1613 "asmparse.y" +#line 1612 "asmparse.y" { yyval.binstr = yystack.l_mark[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,0); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); corEmitInt(yyval.binstr,0); } -#line 10943 "asmparse.cpp" +#line 12328 "asmparse.cpp" break; case 614: -#line 1618 "asmparse.y" +#line 1617 "asmparse.y" { yyval.binstr = yystack.l_mark[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); corEmitInt(yyval.binstr,yystack.l_mark[-3].int32); corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } -#line 10952 "asmparse.cpp" +#line 12337 "asmparse.cpp" break; case 615: -#line 1623 "asmparse.y" +#line 1622 "asmparse.y" { yyval.binstr = yystack.l_mark[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-1].int32); } -#line 10959 "asmparse.cpp" +#line 12344 "asmparse.cpp" break; case 616: -#line 1626 "asmparse.y" +#line 1625 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); PASM->report->warn("Deprecated native type 'decimal'\n"); } -#line 10965 "asmparse.cpp" +#line 12350 "asmparse.cpp" break; case 617: -#line 1628 "asmparse.y" +#line 1627 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); PASM->report->warn("Deprecated native type 'date'\n"); } -#line 10971 "asmparse.cpp" +#line 12356 "asmparse.cpp" break; case 618: -#line 1630 "asmparse.y" +#line 1629 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } -#line 10976 "asmparse.cpp" +#line 12361 "asmparse.cpp" break; case 619: -#line 1631 "asmparse.y" +#line 1630 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } -#line 10981 "asmparse.cpp" +#line 12366 "asmparse.cpp" break; case 620: -#line 1632 "asmparse.y" +#line 1631 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } -#line 10986 "asmparse.cpp" +#line 12371 "asmparse.cpp" break; case 621: -#line 1633 "asmparse.y" +#line 1632 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } -#line 10991 "asmparse.cpp" +#line 12376 "asmparse.cpp" break; case 622: -#line 1634 "asmparse.y" +#line 1633 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); PASM->report->warn("Deprecated native type 'objectref'\n"); } -#line 10997 "asmparse.cpp" +#line 12382 "asmparse.cpp" break; case 623: -#line 1636 "asmparse.y" +#line 1635 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 11003 "asmparse.cpp" +#line 12388 "asmparse.cpp" break; case 624: -#line 1638 "asmparse.y" +#line 1637 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 11009 "asmparse.cpp" +#line 12394 "asmparse.cpp" break; case 625: -#line 1640 "asmparse.y" +#line 1639 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } -#line 11014 "asmparse.cpp" +#line 12399 "asmparse.cpp" break; case 626: -#line 1641 "asmparse.y" +#line 1640 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); if(yystack.l_mark[0].int32 != -1) corEmitInt(yyval.binstr,yystack.l_mark[0].int32); } -#line 11020 "asmparse.cpp" +#line 12405 "asmparse.cpp" break; case 627: -#line 1643 "asmparse.y" +#line 1642 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yystack.l_mark[0].int32); corEmitInt(yyval.binstr,0);} -#line 11027 "asmparse.cpp" +#line 12412 "asmparse.cpp" break; case 628: -#line 1646 "asmparse.y" +#line 1645 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); corEmitInt(yyval.binstr,yystack.l_mark[-2].int32); corEmitInt(yyval.binstr,yystack.l_mark[0].binstr->length()); yyval.binstr->append(yystack.l_mark[0].binstr); } -#line 11034 "asmparse.cpp" +#line 12419 "asmparse.cpp" break; case 629: -#line 1650 "asmparse.y" +#line 1649 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } -#line 11039 "asmparse.cpp" +#line 12424 "asmparse.cpp" break; case 630: -#line 1651 "asmparse.y" +#line 1650 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11044 "asmparse.cpp" +#line 12429 "asmparse.cpp" break; case 631: -#line 1652 "asmparse.y" +#line 1651 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } -#line 11049 "asmparse.cpp" +#line 12434 "asmparse.cpp" break; case 632: -#line 1653 "asmparse.y" +#line 1652 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); PASM->report->warn("Deprecated native type 'nested struct'\n"); } -#line 11055 "asmparse.cpp" +#line 12440 "asmparse.cpp" break; case 633: -#line 1655 "asmparse.y" +#line 1654 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } -#line 11060 "asmparse.cpp" +#line 12445 "asmparse.cpp" break; case 634: -#line 1656 "asmparse.y" +#line 1655 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } -#line 11065 "asmparse.cpp" +#line 12450 "asmparse.cpp" break; case 635: -#line 1657 "asmparse.y" +#line 1656 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } -#line 11070 "asmparse.cpp" +#line 12455 "asmparse.cpp" break; case 636: -#line 1658 "asmparse.y" +#line 1657 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } -#line 11075 "asmparse.cpp" +#line 12460 "asmparse.cpp" break; case 637: -#line 1659 "asmparse.y" +#line 1658 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } -#line 11080 "asmparse.cpp" +#line 12465 "asmparse.cpp" break; case 638: -#line 1660 "asmparse.y" +#line 1659 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } -#line 11085 "asmparse.cpp" +#line 12470 "asmparse.cpp" break; case 639: -#line 1661 "asmparse.y" +#line 1660 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } -#line 11090 "asmparse.cpp" +#line 12475 "asmparse.cpp" break; case 640: -#line 1662 "asmparse.y" +#line 1661 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } -#line 11095 "asmparse.cpp" +#line 12480 "asmparse.cpp" break; case 641: -#line 1665 "asmparse.y" +#line 1664 "asmparse.y" { yyval.int32 = -1; } -#line 11100 "asmparse.cpp" +#line 12485 "asmparse.cpp" break; case 642: -#line 1666 "asmparse.y" +#line 1665 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32; } -#line 11105 "asmparse.cpp" +#line 12490 "asmparse.cpp" break; case 643: -#line 1669 "asmparse.y" +#line 1668 "asmparse.y" { yyval.int32 = VT_EMPTY; } -#line 11110 "asmparse.cpp" +#line 12495 "asmparse.cpp" break; case 644: -#line 1670 "asmparse.y" +#line 1669 "asmparse.y" { yyval.int32 = VT_NULL; } -#line 11115 "asmparse.cpp" +#line 12500 "asmparse.cpp" break; case 645: -#line 1671 "asmparse.y" +#line 1670 "asmparse.y" { yyval.int32 = VT_VARIANT; } -#line 11120 "asmparse.cpp" +#line 12505 "asmparse.cpp" break; case 646: -#line 1672 "asmparse.y" +#line 1671 "asmparse.y" { yyval.int32 = VT_CY; } -#line 11125 "asmparse.cpp" +#line 12510 "asmparse.cpp" break; case 647: -#line 1673 "asmparse.y" +#line 1672 "asmparse.y" { yyval.int32 = VT_VOID; } -#line 11130 "asmparse.cpp" +#line 12515 "asmparse.cpp" break; case 648: -#line 1674 "asmparse.y" +#line 1673 "asmparse.y" { yyval.int32 = VT_BOOL; } -#line 11135 "asmparse.cpp" +#line 12520 "asmparse.cpp" break; case 649: -#line 1675 "asmparse.y" +#line 1674 "asmparse.y" { yyval.int32 = VT_I1; } -#line 11140 "asmparse.cpp" +#line 12525 "asmparse.cpp" break; case 650: -#line 1676 "asmparse.y" +#line 1675 "asmparse.y" { yyval.int32 = VT_I2; } -#line 11145 "asmparse.cpp" +#line 12530 "asmparse.cpp" break; case 651: -#line 1677 "asmparse.y" +#line 1676 "asmparse.y" { yyval.int32 = VT_I4; } -#line 11150 "asmparse.cpp" +#line 12535 "asmparse.cpp" break; case 652: -#line 1678 "asmparse.y" +#line 1677 "asmparse.y" { yyval.int32 = VT_I8; } -#line 11155 "asmparse.cpp" +#line 12540 "asmparse.cpp" break; case 653: -#line 1679 "asmparse.y" +#line 1678 "asmparse.y" { yyval.int32 = VT_R4; } -#line 11160 "asmparse.cpp" +#line 12545 "asmparse.cpp" break; case 654: -#line 1680 "asmparse.y" +#line 1679 "asmparse.y" { yyval.int32 = VT_R8; } -#line 11165 "asmparse.cpp" +#line 12550 "asmparse.cpp" break; case 655: -#line 1681 "asmparse.y" +#line 1680 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 11170 "asmparse.cpp" +#line 12555 "asmparse.cpp" break; case 656: -#line 1682 "asmparse.y" +#line 1681 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 11175 "asmparse.cpp" +#line 12560 "asmparse.cpp" break; case 657: -#line 1683 "asmparse.y" +#line 1682 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 11180 "asmparse.cpp" +#line 12565 "asmparse.cpp" break; case 658: -#line 1684 "asmparse.y" +#line 1683 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 11185 "asmparse.cpp" +#line 12570 "asmparse.cpp" break; case 659: -#line 1685 "asmparse.y" +#line 1684 "asmparse.y" { yyval.int32 = VT_UI1; } -#line 11190 "asmparse.cpp" +#line 12575 "asmparse.cpp" break; case 660: -#line 1686 "asmparse.y" +#line 1685 "asmparse.y" { yyval.int32 = VT_UI2; } -#line 11195 "asmparse.cpp" +#line 12580 "asmparse.cpp" break; case 661: -#line 1687 "asmparse.y" +#line 1686 "asmparse.y" { yyval.int32 = VT_UI4; } -#line 11200 "asmparse.cpp" +#line 12585 "asmparse.cpp" break; case 662: -#line 1688 "asmparse.y" +#line 1687 "asmparse.y" { yyval.int32 = VT_UI8; } -#line 11205 "asmparse.cpp" +#line 12590 "asmparse.cpp" break; case 663: -#line 1689 "asmparse.y" +#line 1688 "asmparse.y" { yyval.int32 = VT_PTR; } -#line 11210 "asmparse.cpp" +#line 12595 "asmparse.cpp" break; case 664: -#line 1690 "asmparse.y" +#line 1689 "asmparse.y" { yyval.int32 = yystack.l_mark[-2].int32 | VT_ARRAY; } -#line 11215 "asmparse.cpp" +#line 12600 "asmparse.cpp" break; case 665: -#line 1691 "asmparse.y" +#line 1690 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | VT_VECTOR; } -#line 11220 "asmparse.cpp" +#line 12605 "asmparse.cpp" break; case 666: -#line 1692 "asmparse.y" +#line 1691 "asmparse.y" { yyval.int32 = yystack.l_mark[-1].int32 | VT_BYREF; } -#line 11225 "asmparse.cpp" +#line 12610 "asmparse.cpp" break; case 667: -#line 1693 "asmparse.y" +#line 1692 "asmparse.y" { yyval.int32 = VT_DECIMAL; } -#line 11230 "asmparse.cpp" +#line 12615 "asmparse.cpp" break; case 668: -#line 1694 "asmparse.y" +#line 1693 "asmparse.y" { yyval.int32 = VT_DATE; } -#line 11235 "asmparse.cpp" +#line 12620 "asmparse.cpp" break; case 669: -#line 1695 "asmparse.y" +#line 1694 "asmparse.y" { yyval.int32 = VT_BSTR; } -#line 11240 "asmparse.cpp" +#line 12625 "asmparse.cpp" break; case 670: -#line 1696 "asmparse.y" +#line 1695 "asmparse.y" { yyval.int32 = VT_LPSTR; } -#line 11245 "asmparse.cpp" +#line 12630 "asmparse.cpp" break; case 671: -#line 1697 "asmparse.y" +#line 1696 "asmparse.y" { yyval.int32 = VT_LPWSTR; } -#line 11250 "asmparse.cpp" +#line 12635 "asmparse.cpp" break; case 672: -#line 1698 "asmparse.y" +#line 1697 "asmparse.y" { yyval.int32 = VT_UNKNOWN; } -#line 11255 "asmparse.cpp" +#line 12640 "asmparse.cpp" break; case 673: -#line 1699 "asmparse.y" +#line 1698 "asmparse.y" { yyval.int32 = VT_DISPATCH; } -#line 11260 "asmparse.cpp" +#line 12645 "asmparse.cpp" break; case 674: -#line 1700 "asmparse.y" +#line 1699 "asmparse.y" { yyval.int32 = VT_SAFEARRAY; } -#line 11265 "asmparse.cpp" +#line 12650 "asmparse.cpp" break; case 675: -#line 1701 "asmparse.y" +#line 1700 "asmparse.y" { yyval.int32 = VT_INT; } -#line 11270 "asmparse.cpp" +#line 12655 "asmparse.cpp" break; case 676: -#line 1702 "asmparse.y" +#line 1701 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 11275 "asmparse.cpp" +#line 12660 "asmparse.cpp" break; case 677: -#line 1703 "asmparse.y" +#line 1702 "asmparse.y" { yyval.int32 = VT_UINT; } -#line 11280 "asmparse.cpp" +#line 12665 "asmparse.cpp" break; case 678: -#line 1704 "asmparse.y" +#line 1703 "asmparse.y" { yyval.int32 = VT_ERROR; } -#line 11285 "asmparse.cpp" +#line 12670 "asmparse.cpp" break; case 679: -#line 1705 "asmparse.y" +#line 1704 "asmparse.y" { yyval.int32 = VT_HRESULT; } -#line 11290 "asmparse.cpp" +#line 12675 "asmparse.cpp" break; case 680: -#line 1706 "asmparse.y" +#line 1705 "asmparse.y" { yyval.int32 = VT_CARRAY; } -#line 11295 "asmparse.cpp" +#line 12680 "asmparse.cpp" break; case 681: -#line 1707 "asmparse.y" +#line 1706 "asmparse.y" { yyval.int32 = VT_USERDEFINED; } -#line 11300 "asmparse.cpp" +#line 12685 "asmparse.cpp" break; case 682: -#line 1708 "asmparse.y" +#line 1707 "asmparse.y" { yyval.int32 = VT_RECORD; } -#line 11305 "asmparse.cpp" +#line 12690 "asmparse.cpp" break; case 683: -#line 1709 "asmparse.y" +#line 1708 "asmparse.y" { yyval.int32 = VT_FILETIME; } -#line 11310 "asmparse.cpp" +#line 12695 "asmparse.cpp" break; case 684: -#line 1710 "asmparse.y" +#line 1709 "asmparse.y" { yyval.int32 = VT_BLOB; } -#line 11315 "asmparse.cpp" +#line 12700 "asmparse.cpp" break; case 685: -#line 1711 "asmparse.y" +#line 1710 "asmparse.y" { yyval.int32 = VT_STREAM; } -#line 11320 "asmparse.cpp" +#line 12705 "asmparse.cpp" break; case 686: -#line 1712 "asmparse.y" +#line 1711 "asmparse.y" { yyval.int32 = VT_STORAGE; } -#line 11325 "asmparse.cpp" +#line 12710 "asmparse.cpp" break; case 687: -#line 1713 "asmparse.y" +#line 1712 "asmparse.y" { yyval.int32 = VT_STREAMED_OBJECT; } -#line 11330 "asmparse.cpp" +#line 12715 "asmparse.cpp" break; case 688: -#line 1714 "asmparse.y" +#line 1713 "asmparse.y" { yyval.int32 = VT_STORED_OBJECT; } -#line 11335 "asmparse.cpp" +#line 12720 "asmparse.cpp" break; case 689: -#line 1715 "asmparse.y" +#line 1714 "asmparse.y" { yyval.int32 = VT_BLOB_OBJECT; } -#line 11340 "asmparse.cpp" +#line 12725 "asmparse.cpp" break; case 690: -#line 1716 "asmparse.y" +#line 1715 "asmparse.y" { yyval.int32 = VT_CF; } -#line 11345 "asmparse.cpp" +#line 12730 "asmparse.cpp" break; case 691: -#line 1717 "asmparse.y" +#line 1716 "asmparse.y" { yyval.int32 = VT_CLSID; } -#line 11350 "asmparse.cpp" +#line 12735 "asmparse.cpp" break; case 692: -#line 1721 "asmparse.y" +#line 1720 "asmparse.y" { if(yystack.l_mark[0].token == PASM->m_tkSysString) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } else if(yystack.l_mark[0].token == PASM->m_tkSysObject) { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } else yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yystack.l_mark[0].token); } -#line 11360 "asmparse.cpp" +#line 12745 "asmparse.cpp" break; case 693: -#line 1727 "asmparse.y" +#line 1726 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } -#line 11365 "asmparse.cpp" +#line 12750 "asmparse.cpp" break; case 694: -#line 1728 "asmparse.y" +#line 1727 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } -#line 11370 "asmparse.cpp" +#line 12755 "asmparse.cpp" break; case 695: -#line 1729 "asmparse.y" +#line 1728 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yystack.l_mark[0].token); } -#line 11375 "asmparse.cpp" +#line 12760 "asmparse.cpp" break; case 696: -#line 1730 "asmparse.y" +#line 1729 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_CTARG); } -#line 11380 "asmparse.cpp" +#line 12765 "asmparse.cpp" break; case 697: -#line 1731 "asmparse.y" +#line 1730 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } -#line 11385 "asmparse.cpp" +#line 12770 "asmparse.cpp" break; case 698: -#line 1732 "asmparse.y" +#line 1731 "asmparse.y" { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yystack.l_mark[-3].binstr, yystack.l_mark[-1].binstr); } -#line 11390 "asmparse.cpp" +#line 12775 "asmparse.cpp" break; case 699: -#line 1733 "asmparse.y" +#line 1732 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } -#line 11395 "asmparse.cpp" +#line 12780 "asmparse.cpp" break; case 700: -#line 1734 "asmparse.y" +#line 1733 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } -#line 11400 "asmparse.cpp" +#line 12785 "asmparse.cpp" break; case 701: -#line 1735 "asmparse.y" +#line 1734 "asmparse.y" { yyval.binstr = yystack.l_mark[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } -#line 11405 "asmparse.cpp" +#line 12790 "asmparse.cpp" break; case 702: -#line 1736 "asmparse.y" +#line 1735 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yystack.l_mark[-1].token); yyval.binstr->append(yystack.l_mark[-4].binstr); } -#line 11411 "asmparse.cpp" +#line 12796 "asmparse.cpp" break; case 703: -#line 1738 "asmparse.y" +#line 1737 "asmparse.y" { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yystack.l_mark[-1].token); yyval.binstr->append(yystack.l_mark[-4].binstr); } -#line 11417 "asmparse.cpp" +#line 12802 "asmparse.cpp" break; case 704: -#line 1741 "asmparse.y" +#line 1740 "asmparse.y" { yyval.binstr = parser->MakeSig(yystack.l_mark[-5].int32, yystack.l_mark[-4].binstr, yystack.l_mark[-1].binstr); yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = parser->m_ANSFirst.POP(); PASM->m_lastArgName = parser->m_ANSLast.POP(); } -#line 11427 "asmparse.cpp" +#line 12812 "asmparse.cpp" break; case 705: -#line 1747 "asmparse.y" +#line 1746 "asmparse.y" { if(yystack.l_mark[-1].binstr == NULL) yyval.binstr = yystack.l_mark[-3].binstr; else { yyval.binstr = new BinStr(); @@ -11434,30 +12819,30 @@ case 705: yyval.binstr->append(yystack.l_mark[-3].binstr); corEmitInt(yyval.binstr, corCountArgs(yystack.l_mark[-1].binstr)); yyval.binstr->append(yystack.l_mark[-1].binstr); delete yystack.l_mark[-3].binstr; delete yystack.l_mark[-1].binstr; }} -#line 11438 "asmparse.cpp" +#line 12823 "asmparse.cpp" break; case 706: -#line 1754 "asmparse.y" +#line 1753 "asmparse.y" { /*if(PASM->m_pCurMethod) { */ /* if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) */ /* PASM->report->error("Invalid method type parameter '%d'\n",$3); */ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); /*} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); */ } -#line 11448 "asmparse.cpp" +#line 12833 "asmparse.cpp" break; case 707: -#line 1760 "asmparse.y" +#line 1759 "asmparse.y" { /*if(PASM->m_pCurClass) { */ /* if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) */ /* PASM->report->error("Invalid type parameter '%d'\n",$2); */ yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yystack.l_mark[0].int32); /*} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); */ } -#line 11458 "asmparse.cpp" +#line 12843 "asmparse.cpp" break; case 708: -#line 1766 "asmparse.y" +#line 1765 "asmparse.y" { int eltype = ELEMENT_TYPE_MVAR; int n=-1; if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yystack.l_mark[0].string); @@ -11473,10 +12858,10 @@ case 708: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11477 "asmparse.cpp" +#line 12862 "asmparse.cpp" break; case 709: -#line 1781 "asmparse.y" +#line 1780 "asmparse.y" { int eltype = ELEMENT_TYPE_VAR; int n=-1; if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yystack.l_mark[0].string); @@ -11492,781 +12877,781 @@ case 709: n = 0x1FFFFFFF; } yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); } -#line 11496 "asmparse.cpp" +#line 12881 "asmparse.cpp" break; case 710: -#line 1796 "asmparse.y" +#line 1795 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } -#line 11501 "asmparse.cpp" +#line 12886 "asmparse.cpp" break; case 711: -#line 1797 "asmparse.y" +#line 1796 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } -#line 11506 "asmparse.cpp" +#line 12891 "asmparse.cpp" break; case 712: -#line 1798 "asmparse.y" +#line 1797 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } -#line 11511 "asmparse.cpp" +#line 12896 "asmparse.cpp" break; case 713: -#line 1799 "asmparse.y" +#line 1798 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 11516 "asmparse.cpp" +#line 12901 "asmparse.cpp" break; case 714: -#line 1800 "asmparse.y" +#line 1799 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } -#line 11521 "asmparse.cpp" +#line 12906 "asmparse.cpp" break; case 715: -#line 1801 "asmparse.y" +#line 1800 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 11526 "asmparse.cpp" +#line 12911 "asmparse.cpp" break; case 716: -#line 1802 "asmparse.y" +#line 1801 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } -#line 11531 "asmparse.cpp" +#line 12916 "asmparse.cpp" break; case 717: -#line 1805 "asmparse.y" +#line 1804 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } -#line 11536 "asmparse.cpp" +#line 12921 "asmparse.cpp" break; case 718: -#line 1806 "asmparse.y" +#line 1805 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } -#line 11541 "asmparse.cpp" +#line 12926 "asmparse.cpp" break; case 719: -#line 1807 "asmparse.y" +#line 1806 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } -#line 11546 "asmparse.cpp" +#line 12931 "asmparse.cpp" break; case 720: -#line 1808 "asmparse.y" +#line 1807 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } -#line 11551 "asmparse.cpp" +#line 12936 "asmparse.cpp" break; case 721: -#line 1809 "asmparse.y" +#line 1808 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } -#line 11556 "asmparse.cpp" +#line 12941 "asmparse.cpp" break; case 722: -#line 1810 "asmparse.y" +#line 1809 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } -#line 11561 "asmparse.cpp" +#line 12946 "asmparse.cpp" break; case 723: -#line 1811 "asmparse.y" +#line 1810 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } -#line 11566 "asmparse.cpp" +#line 12951 "asmparse.cpp" break; case 724: -#line 1812 "asmparse.y" +#line 1811 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } -#line 11571 "asmparse.cpp" +#line 12956 "asmparse.cpp" break; case 725: -#line 1813 "asmparse.y" +#line 1812 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } -#line 11576 "asmparse.cpp" +#line 12961 "asmparse.cpp" break; case 726: -#line 1814 "asmparse.y" +#line 1813 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11581 "asmparse.cpp" +#line 12966 "asmparse.cpp" break; case 727: -#line 1815 "asmparse.y" +#line 1814 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11586 "asmparse.cpp" +#line 12971 "asmparse.cpp" break; case 728: -#line 1816 "asmparse.y" +#line 1815 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11591 "asmparse.cpp" +#line 12976 "asmparse.cpp" break; case 729: -#line 1817 "asmparse.y" +#line 1816 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11596 "asmparse.cpp" +#line 12981 "asmparse.cpp" break; case 730: -#line 1818 "asmparse.y" +#line 1817 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } -#line 11601 "asmparse.cpp" +#line 12986 "asmparse.cpp" break; case 731: -#line 1819 "asmparse.y" +#line 1818 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } -#line 11606 "asmparse.cpp" +#line 12991 "asmparse.cpp" break; case 732: -#line 1820 "asmparse.y" +#line 1819 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } -#line 11611 "asmparse.cpp" +#line 12996 "asmparse.cpp" break; case 733: -#line 1821 "asmparse.y" +#line 1820 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } -#line 11616 "asmparse.cpp" +#line 13001 "asmparse.cpp" break; case 734: -#line 1822 "asmparse.y" +#line 1821 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->append(yystack.l_mark[0].tdd->m_pbsTypeSpec); } -#line 11621 "asmparse.cpp" +#line 13006 "asmparse.cpp" break; case 735: -#line 1825 "asmparse.y" +#line 1824 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; } -#line 11626 "asmparse.cpp" +#line 13011 "asmparse.cpp" break; case 736: -#line 1826 "asmparse.y" +#line 1825 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yystack.l_mark[-2].binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; } -#line 11631 "asmparse.cpp" +#line 13016 "asmparse.cpp" break; case 737: -#line 1829 "asmparse.y" +#line 1828 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11636 "asmparse.cpp" +#line 13021 "asmparse.cpp" break; case 738: -#line 1830 "asmparse.y" +#line 1829 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11641 "asmparse.cpp" +#line 13026 "asmparse.cpp" break; case 739: -#line 1831 "asmparse.y" +#line 1830 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 11646 "asmparse.cpp" +#line 13031 "asmparse.cpp" break; case 740: -#line 1832 "asmparse.y" +#line 1831 "asmparse.y" { FAIL_UNLESS(yystack.l_mark[-2].int32 <= yystack.l_mark[0].int32, ("lower bound %d must be <= upper bound %d\n", yystack.l_mark[-2].int32, yystack.l_mark[0].int32)); if (yystack.l_mark[-2].int32 > yystack.l_mark[0].int32) { YYERROR; }; yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-2].int32); yyval.binstr->appendInt32(yystack.l_mark[0].int32-yystack.l_mark[-2].int32+1); } -#line 11653 "asmparse.cpp" +#line 13038 "asmparse.cpp" break; case 741: -#line 1835 "asmparse.y" +#line 1834 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } -#line 11658 "asmparse.cpp" +#line 13043 "asmparse.cpp" break; case 742: -#line 1840 "asmparse.y" +#line 1839 "asmparse.y" { PASM->AddPermissionDecl(yystack.l_mark[-4].secAct, yystack.l_mark[-3].token, yystack.l_mark[-1].pair); } -#line 11663 "asmparse.cpp" +#line 13048 "asmparse.cpp" break; case 743: -#line 1842 "asmparse.y" +#line 1841 "asmparse.y" { PASM->AddPermissionDecl(yystack.l_mark[-5].secAct, yystack.l_mark[-4].token, yystack.l_mark[-1].binstr); } -#line 11668 "asmparse.cpp" +#line 13053 "asmparse.cpp" break; case 744: -#line 1843 "asmparse.y" +#line 1842 "asmparse.y" { PASM->AddPermissionDecl(yystack.l_mark[-1].secAct, yystack.l_mark[0].token, (NVPair *)NULL); } -#line 11673 "asmparse.cpp" +#line 13058 "asmparse.cpp" break; case 745: -#line 1844 "asmparse.y" +#line 1843 "asmparse.y" { PASM->AddPermissionSetDecl(yystack.l_mark[-2].secAct, yystack.l_mark[-1].binstr); } -#line 11678 "asmparse.cpp" +#line 13063 "asmparse.cpp" break; case 746: -#line 1846 "asmparse.y" +#line 1845 "asmparse.y" { PASM->AddPermissionSetDecl(yystack.l_mark[-1].secAct,BinStrToUnicode(yystack.l_mark[0].binstr,true));} -#line 11683 "asmparse.cpp" +#line 13068 "asmparse.cpp" break; case 747: -#line 1848 "asmparse.y" +#line 1847 "asmparse.y" { BinStr* ret = new BinStr(); ret->insertInt8('.'); corEmitInt(ret, nSecAttrBlobs); ret->append(yystack.l_mark[-1].binstr); PASM->AddPermissionSetDecl(yystack.l_mark[-4].secAct,ret); nSecAttrBlobs = 0; } -#line 11693 "asmparse.cpp" +#line 13078 "asmparse.cpp" break; case 748: -#line 1856 "asmparse.y" +#line 1855 "asmparse.y" { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} -#line 11698 "asmparse.cpp" +#line 13083 "asmparse.cpp" break; case 749: -#line 1857 "asmparse.y" +#line 1856 "asmparse.y" { yyval.binstr = yystack.l_mark[0].binstr; nSecAttrBlobs = 1; } -#line 11703 "asmparse.cpp" +#line 13088 "asmparse.cpp" break; case 750: -#line 1858 "asmparse.y" +#line 1857 "asmparse.y" { yyval.binstr = yystack.l_mark[-2].binstr; yyval.binstr->append(yystack.l_mark[0].binstr); nSecAttrBlobs++; } -#line 11708 "asmparse.cpp" +#line 13093 "asmparse.cpp" break; case 751: -#line 1862 "asmparse.y" +#line 1861 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yystack.l_mark[-4].token),yystack.l_mark[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11714 "asmparse.cpp" +#line 13099 "asmparse.cpp" break; case 752: -#line 1865 "asmparse.y" +#line 1864 "asmparse.y" { yyval.binstr = PASM->EncodeSecAttr(yystack.l_mark[-4].string,yystack.l_mark[-1].binstr,nCustomBlobNVPairs); nCustomBlobNVPairs = 0; } -#line 11720 "asmparse.cpp" +#line 13105 "asmparse.cpp" break; case 753: -#line 1869 "asmparse.y" +#line 1868 "asmparse.y" { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } -#line 11725 "asmparse.cpp" +#line 13110 "asmparse.cpp" break; case 754: -#line 1871 "asmparse.y" +#line 1870 "asmparse.y" { yyval.secAct = yystack.l_mark[-2].secAct; bParsingByteArray = TRUE; } -#line 11730 "asmparse.cpp" +#line 13115 "asmparse.cpp" break; case 755: -#line 1874 "asmparse.y" +#line 1873 "asmparse.y" { yyval.pair = yystack.l_mark[0].pair; } -#line 11735 "asmparse.cpp" +#line 13120 "asmparse.cpp" break; case 756: -#line 1875 "asmparse.y" +#line 1874 "asmparse.y" { yyval.pair = yystack.l_mark[-2].pair->Concat(yystack.l_mark[0].pair); } -#line 11740 "asmparse.cpp" +#line 13125 "asmparse.cpp" break; case 757: -#line 1878 "asmparse.y" +#line 1877 "asmparse.y" { yystack.l_mark[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yystack.l_mark[-2].binstr, yystack.l_mark[0].binstr); } -#line 11745 "asmparse.cpp" +#line 13130 "asmparse.cpp" break; case 758: -#line 1881 "asmparse.y" +#line 1880 "asmparse.y" { yyval.int32 = 1; } -#line 11750 "asmparse.cpp" +#line 13135 "asmparse.cpp" break; case 759: -#line 1882 "asmparse.y" +#line 1881 "asmparse.y" { yyval.int32 = 0; } -#line 11755 "asmparse.cpp" +#line 13140 "asmparse.cpp" break; case 760: -#line 1885 "asmparse.y" +#line 1884 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); yyval.binstr->appendInt8(yystack.l_mark[0].int32); } -#line 11762 "asmparse.cpp" +#line 13147 "asmparse.cpp" break; case 761: -#line 1888 "asmparse.y" +#line 1887 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[0].int32); } -#line 11769 "asmparse.cpp" +#line 13154 "asmparse.cpp" break; case 762: -#line 1891 "asmparse.y" +#line 1890 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11776 "asmparse.cpp" +#line 13161 "asmparse.cpp" break; case 763: -#line 1894 "asmparse.y" +#line 1893 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); yyval.binstr->append(yystack.l_mark[0].binstr); delete yystack.l_mark[0].binstr; yyval.binstr->appendInt8(0); } -#line 11784 "asmparse.cpp" +#line 13169 "asmparse.cpp" break; case 764: -#line 1898 "asmparse.y" +#line 1897 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(1); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11794 "asmparse.cpp" +#line 13179 "asmparse.cpp" break; case 765: -#line 1904 "asmparse.y" +#line 1903 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(2); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11804 "asmparse.cpp" +#line 13189 "asmparse.cpp" break; case 766: -#line 1910 "asmparse.y" +#line 1909 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-5].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11814 "asmparse.cpp" +#line 13199 "asmparse.cpp" break; case 767: -#line 1916 "asmparse.y" +#line 1915 "asmparse.y" { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); char* sz = PASM->ReflectionNotation(yystack.l_mark[-3].token); strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); yyval.binstr->appendInt8(4); yyval.binstr->appendInt32(yystack.l_mark[-1].int32); } -#line 11824 "asmparse.cpp" +#line 13209 "asmparse.cpp" break; case 768: -#line 1924 "asmparse.y" +#line 1923 "asmparse.y" { yyval.secAct = dclRequest; } -#line 11829 "asmparse.cpp" +#line 13214 "asmparse.cpp" break; case 769: -#line 1925 "asmparse.y" +#line 1924 "asmparse.y" { yyval.secAct = dclDemand; } -#line 11834 "asmparse.cpp" +#line 13219 "asmparse.cpp" break; case 770: -#line 1926 "asmparse.y" +#line 1925 "asmparse.y" { yyval.secAct = dclAssert; } -#line 11839 "asmparse.cpp" +#line 13224 "asmparse.cpp" break; case 771: -#line 1927 "asmparse.y" +#line 1926 "asmparse.y" { yyval.secAct = dclDeny; } -#line 11844 "asmparse.cpp" +#line 13229 "asmparse.cpp" break; case 772: -#line 1928 "asmparse.y" +#line 1927 "asmparse.y" { yyval.secAct = dclPermitOnly; } -#line 11849 "asmparse.cpp" +#line 13234 "asmparse.cpp" break; case 773: -#line 1929 "asmparse.y" +#line 1928 "asmparse.y" { yyval.secAct = dclLinktimeCheck; } -#line 11854 "asmparse.cpp" +#line 13239 "asmparse.cpp" break; case 774: -#line 1930 "asmparse.y" +#line 1929 "asmparse.y" { yyval.secAct = dclInheritanceCheck; } -#line 11859 "asmparse.cpp" +#line 13244 "asmparse.cpp" break; case 775: -#line 1931 "asmparse.y" +#line 1930 "asmparse.y" { yyval.secAct = dclRequestMinimum; } -#line 11864 "asmparse.cpp" +#line 13249 "asmparse.cpp" break; case 776: -#line 1932 "asmparse.y" +#line 1931 "asmparse.y" { yyval.secAct = dclRequestOptional; } -#line 11869 "asmparse.cpp" +#line 13254 "asmparse.cpp" break; case 777: -#line 1933 "asmparse.y" +#line 1932 "asmparse.y" { yyval.secAct = dclRequestRefuse; } -#line 11874 "asmparse.cpp" +#line 13259 "asmparse.cpp" break; case 778: -#line 1934 "asmparse.y" +#line 1933 "asmparse.y" { yyval.secAct = dclPrejitGrant; } -#line 11879 "asmparse.cpp" +#line 13264 "asmparse.cpp" break; case 779: -#line 1935 "asmparse.y" +#line 1934 "asmparse.y" { yyval.secAct = dclPrejitDenied; } -#line 11884 "asmparse.cpp" +#line 13269 "asmparse.cpp" break; case 780: -#line 1936 "asmparse.y" +#line 1935 "asmparse.y" { yyval.secAct = dclNonCasDemand; } -#line 11889 "asmparse.cpp" +#line 13274 "asmparse.cpp" break; case 781: -#line 1937 "asmparse.y" +#line 1936 "asmparse.y" { yyval.secAct = dclNonCasLinkDemand; } -#line 11894 "asmparse.cpp" +#line 13279 "asmparse.cpp" break; case 782: -#line 1938 "asmparse.y" +#line 1937 "asmparse.y" { yyval.secAct = dclNonCasInheritance; } -#line 11899 "asmparse.cpp" +#line 13284 "asmparse.cpp" break; case 783: -#line 1942 "asmparse.y" +#line 1941 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } -#line 11904 "asmparse.cpp" +#line 13289 "asmparse.cpp" break; case 784: -#line 1943 "asmparse.y" +#line 1942 "asmparse.y" { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } -#line 11909 "asmparse.cpp" +#line 13294 "asmparse.cpp" break; case 785: -#line 1946 "asmparse.y" +#line 1945 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11916 "asmparse.cpp" +#line 13301 "asmparse.cpp" break; case 786: -#line 1949 "asmparse.y" +#line 1948 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[0].int32; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); } -#line 11922 "asmparse.cpp" +#line 13307 "asmparse.cpp" break; case 787: -#line 1951 "asmparse.y" +#line 1950 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-3].int32; PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11929 "asmparse.cpp" +#line 13314 "asmparse.cpp" break; case 788: -#line 1954 "asmparse.y" +#line 1953 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-2].int32; PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1);} -#line 11935 "asmparse.cpp" +#line 13320 "asmparse.cpp" break; case 789: -#line 1957 "asmparse.y" +#line 1956 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-5].int32; PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11942 "asmparse.cpp" +#line 13327 "asmparse.cpp" break; case 790: -#line 1961 "asmparse.y" +#line 1960 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-4].int32; PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } -#line 11948 "asmparse.cpp" +#line 13333 "asmparse.cpp" break; case 791: -#line 1964 "asmparse.y" +#line 1963 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-5].int32; PENV->nExtLineEnd = yystack.l_mark[-3].int32; PENV->nExtCol=yystack.l_mark[-1].int32; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11955 "asmparse.cpp" +#line 13340 "asmparse.cpp" break; case 792: -#line 1968 "asmparse.y" +#line 1967 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-4].int32; PENV->nExtLineEnd = yystack.l_mark[-2].int32; PENV->nExtCol=yystack.l_mark[0].int32; PENV->nExtColEnd = static_cast(-1); } -#line 11961 "asmparse.cpp" +#line 13346 "asmparse.cpp" break; case 793: -#line 1971 "asmparse.y" +#line 1970 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-7].int32; PENV->nExtLineEnd = yystack.l_mark[-5].int32; PENV->nExtCol=yystack.l_mark[-3].int32; PENV->nExtColEnd = yystack.l_mark[-1].int32; PASM->SetSourceFileName(yystack.l_mark[0].string);} -#line 11968 "asmparse.cpp" +#line 13353 "asmparse.cpp" break; case 794: -#line 1975 "asmparse.y" +#line 1974 "asmparse.y" { PENV->nExtLine = yystack.l_mark[-6].int32; PENV->nExtLineEnd = yystack.l_mark[-4].int32; PENV->nExtCol=yystack.l_mark[-2].int32; PENV->nExtColEnd = yystack.l_mark[0].int32; } -#line 11974 "asmparse.cpp" +#line 13359 "asmparse.cpp" break; case 795: -#line 1977 "asmparse.y" +#line 1976 "asmparse.y" { PENV->nExtLine = PENV->nExtLineEnd = yystack.l_mark[-1].int32 - 1; PENV->nExtCol = 0; PENV->nExtColEnd = static_cast(-1); PASM->SetSourceFileName(yystack.l_mark[0].binstr);} -#line 11981 "asmparse.cpp" +#line 13366 "asmparse.cpp" break; case 796: -#line 1984 "asmparse.y" +#line 1983 "asmparse.y" { PASMM->AddFile(yystack.l_mark[-5].string, yystack.l_mark[-6].fileAttr|yystack.l_mark[-4].fileAttr|yystack.l_mark[0].fileAttr, yystack.l_mark[-2].binstr); } -#line 11986 "asmparse.cpp" +#line 13371 "asmparse.cpp" break; case 797: -#line 1985 "asmparse.y" +#line 1984 "asmparse.y" { PASMM->AddFile(yystack.l_mark[-1].string, yystack.l_mark[-2].fileAttr|yystack.l_mark[0].fileAttr, NULL); } -#line 11991 "asmparse.cpp" +#line 13376 "asmparse.cpp" break; case 798: -#line 1988 "asmparse.y" +#line 1987 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 11996 "asmparse.cpp" +#line 13381 "asmparse.cpp" break; case 799: -#line 1989 "asmparse.y" +#line 1988 "asmparse.y" { yyval.fileAttr = (CorFileFlags) (yystack.l_mark[-1].fileAttr | ffContainsNoMetaData); } -#line 12001 "asmparse.cpp" +#line 13386 "asmparse.cpp" break; case 800: -#line 1992 "asmparse.y" +#line 1991 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0; } -#line 12006 "asmparse.cpp" +#line 13391 "asmparse.cpp" break; case 801: -#line 1993 "asmparse.y" +#line 1992 "asmparse.y" { yyval.fileAttr = (CorFileFlags) 0x80000000; } -#line 12011 "asmparse.cpp" +#line 13396 "asmparse.cpp" break; case 802: -#line 1996 "asmparse.y" +#line 1995 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12016 "asmparse.cpp" +#line 13401 "asmparse.cpp" break; case 803: -#line 1999 "asmparse.y" +#line 1998 "asmparse.y" { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, (DWORD)yystack.l_mark[-1].asmAttr, FALSE); } -#line 12021 "asmparse.cpp" +#line 13406 "asmparse.cpp" break; case 804: -#line 2002 "asmparse.y" +#line 2001 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) 0; } -#line 12026 "asmparse.cpp" +#line 13411 "asmparse.cpp" break; case 805: -#line 2003 "asmparse.y" +#line 2002 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afRetargetable); } -#line 12031 "asmparse.cpp" +#line 13416 "asmparse.cpp" break; case 806: -#line 2004 "asmparse.y" +#line 2003 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afContentType_WindowsRuntime); } -#line 12036 "asmparse.cpp" +#line 13421 "asmparse.cpp" break; case 807: -#line 2005 "asmparse.y" +#line 2004 "asmparse.y" { yyval.asmAttr = (CorAssemblyFlags) (yystack.l_mark[-1].asmAttr | afPA_NoPlatform); } -#line 12041 "asmparse.cpp" +#line 13426 "asmparse.cpp" break; case 808: -#line 2006 "asmparse.y" +#line 2005 "asmparse.y" { yyval.asmAttr = yystack.l_mark[-2].asmAttr; } -#line 12046 "asmparse.cpp" +#line 13431 "asmparse.cpp" break; case 809: -#line 2007 "asmparse.y" +#line 2006 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_MSIL); } -#line 12051 "asmparse.cpp" +#line 13436 "asmparse.cpp" break; case 810: -#line 2008 "asmparse.y" +#line 2007 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_x86); } -#line 12056 "asmparse.cpp" +#line 13441 "asmparse.cpp" break; case 811: -#line 2009 "asmparse.y" +#line 2008 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_AMD64); } -#line 12061 "asmparse.cpp" +#line 13446 "asmparse.cpp" break; case 812: -#line 2010 "asmparse.y" +#line 2009 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM); } -#line 12066 "asmparse.cpp" +#line 13451 "asmparse.cpp" break; case 813: -#line 2011 "asmparse.y" +#line 2010 "asmparse.y" { SET_PA(yyval.asmAttr,yystack.l_mark[-1].asmAttr,afPA_ARM64); } -#line 12071 "asmparse.cpp" +#line 13456 "asmparse.cpp" break; case 816: -#line 2018 "asmparse.y" +#line 2017 "asmparse.y" { PASMM->SetAssemblyHashAlg(yystack.l_mark[0].int32); } -#line 12076 "asmparse.cpp" +#line 13461 "asmparse.cpp" break; case 819: -#line 2023 "asmparse.y" +#line 2022 "asmparse.y" { yyval.int32 = yystack.l_mark[0].int32; } -#line 12081 "asmparse.cpp" +#line 13466 "asmparse.cpp" break; case 820: -#line 2024 "asmparse.y" +#line 2023 "asmparse.y" { yyval.int32 = 0xFFFF; } -#line 12086 "asmparse.cpp" +#line 13471 "asmparse.cpp" break; case 821: -#line 2027 "asmparse.y" +#line 2026 "asmparse.y" { PASMM->SetAssemblyPublicKey(yystack.l_mark[-1].binstr); } -#line 12091 "asmparse.cpp" +#line 13476 "asmparse.cpp" break; case 822: -#line 2029 "asmparse.y" +#line 2028 "asmparse.y" { PASMM->SetAssemblyVer((USHORT)yystack.l_mark[-6].int32, (USHORT)yystack.l_mark[-4].int32, (USHORT)yystack.l_mark[-2].int32, (USHORT)yystack.l_mark[0].int32); } -#line 12096 "asmparse.cpp" +#line 13481 "asmparse.cpp" break; case 823: -#line 2030 "asmparse.y" +#line 2029 "asmparse.y" { yystack.l_mark[0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yystack.l_mark[0].binstr,TRUE); } -#line 12101 "asmparse.cpp" +#line 13486 "asmparse.cpp" break; case 824: -#line 2031 "asmparse.y" +#line 2030 "asmparse.y" { PASMM->SetAssemblyLocale(yystack.l_mark[-1].binstr,FALSE); } -#line 12106 "asmparse.cpp" +#line 13491 "asmparse.cpp" break; case 827: -#line 2036 "asmparse.y" +#line 2035 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12111 "asmparse.cpp" +#line 13496 "asmparse.cpp" break; case 828: -#line 2039 "asmparse.y" +#line 2038 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12116 "asmparse.cpp" +#line 13501 "asmparse.cpp" break; case 829: -#line 2042 "asmparse.y" +#line 2041 "asmparse.y" { bParsingByteArray = TRUE; } -#line 12121 "asmparse.cpp" +#line 13506 "asmparse.cpp" break; case 830: -#line 2046 "asmparse.y" +#line 2045 "asmparse.y" { PASMM->StartAssembly(yystack.l_mark[0].string, NULL, yystack.l_mark[-1].asmAttr, TRUE); } -#line 12126 "asmparse.cpp" +#line 13511 "asmparse.cpp" break; case 831: -#line 2048 "asmparse.y" +#line 2047 "asmparse.y" { PASMM->StartAssembly(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].asmAttr, TRUE); } -#line 12131 "asmparse.cpp" +#line 13516 "asmparse.cpp" break; case 834: -#line 2055 "asmparse.y" +#line 2054 "asmparse.y" { PASMM->SetAssemblyHashBlob(yystack.l_mark[-1].binstr); } -#line 12136 "asmparse.cpp" +#line 13521 "asmparse.cpp" break; case 836: -#line 2057 "asmparse.y" +#line 2056 "asmparse.y" { PASMM->SetAssemblyPublicKeyToken(yystack.l_mark[-1].binstr); } -#line 12141 "asmparse.cpp" +#line 13526 "asmparse.cpp" break; case 837: -#line 2058 "asmparse.y" +#line 2057 "asmparse.y" { PASMM->SetAssemblyAutodetect(); } -#line 12146 "asmparse.cpp" +#line 13531 "asmparse.cpp" break; case 838: -#line 2061 "asmparse.y" +#line 2060 "asmparse.y" { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr);} -#line 12151 "asmparse.cpp" +#line 13536 "asmparse.cpp" break; case 839: -#line 2064 "asmparse.y" +#line 2063 "asmparse.y" { PASMM->StartComType(yystack.l_mark[0].string, yystack.l_mark[-1].exptAttr); } -#line 12156 "asmparse.cpp" +#line 13541 "asmparse.cpp" break; case 840: -#line 2067 "asmparse.y" +#line 2066 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) 0; } -#line 12161 "asmparse.cpp" +#line 13546 "asmparse.cpp" break; case 841: -#line 2068 "asmparse.y" +#line 2067 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdNotPublic); } -#line 12166 "asmparse.cpp" +#line 13551 "asmparse.cpp" break; case 842: -#line 2069 "asmparse.y" +#line 2068 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdPublic); } -#line 12171 "asmparse.cpp" +#line 13556 "asmparse.cpp" break; case 843: -#line 2070 "asmparse.y" +#line 2069 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-1].exptAttr | tdForwarder); } -#line 12176 "asmparse.cpp" +#line 13561 "asmparse.cpp" break; case 844: -#line 2071 "asmparse.y" +#line 2070 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPublic); } -#line 12181 "asmparse.cpp" +#line 13566 "asmparse.cpp" break; case 845: -#line 2072 "asmparse.y" +#line 2071 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedPrivate); } -#line 12186 "asmparse.cpp" +#line 13571 "asmparse.cpp" break; case 846: -#line 2073 "asmparse.y" +#line 2072 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamily); } -#line 12191 "asmparse.cpp" +#line 13576 "asmparse.cpp" break; case 847: -#line 2074 "asmparse.y" +#line 2073 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedAssembly); } -#line 12196 "asmparse.cpp" +#line 13581 "asmparse.cpp" break; case 848: -#line 2075 "asmparse.y" +#line 2074 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamANDAssem); } -#line 12201 "asmparse.cpp" +#line 13586 "asmparse.cpp" break; case 849: -#line 2076 "asmparse.y" +#line 2075 "asmparse.y" { yyval.exptAttr = (CorTypeAttr) (yystack.l_mark[-2].exptAttr | tdNestedFamORAssem); } -#line 12206 "asmparse.cpp" +#line 13591 "asmparse.cpp" break; case 852: -#line 2083 "asmparse.y" +#line 2082 "asmparse.y" { PASMM->SetComTypeFile(yystack.l_mark[0].string); } -#line 12211 "asmparse.cpp" +#line 13596 "asmparse.cpp" break; case 853: -#line 2084 "asmparse.y" +#line 2083 "asmparse.y" { PASMM->SetComTypeComType(yystack.l_mark[0].string); } -#line 12216 "asmparse.cpp" +#line 13601 "asmparse.cpp" break; case 854: -#line 2085 "asmparse.y" +#line 2084 "asmparse.y" { PASMM->SetComTypeAsmRef(yystack.l_mark[0].string); } -#line 12221 "asmparse.cpp" +#line 13606 "asmparse.cpp" break; case 855: -#line 2086 "asmparse.y" +#line 2085 "asmparse.y" { if(!PASMM->SetComTypeImplementationTok(yystack.l_mark[-1].int32)) PASM->report->error("Invalid implementation of exported type\n"); } -#line 12227 "asmparse.cpp" +#line 13612 "asmparse.cpp" break; case 856: -#line 2088 "asmparse.y" +#line 2087 "asmparse.y" { if(!PASMM->SetComTypeClassTok(yystack.l_mark[0].int32)) PASM->report->error("Invalid TypeDefID of exported type\n"); } -#line 12233 "asmparse.cpp" +#line 13618 "asmparse.cpp" break; case 859: -#line 2094 "asmparse.y" +#line 2093 "asmparse.y" { PASMM->StartManifestRes(yystack.l_mark[0].string, yystack.l_mark[0].string, yystack.l_mark[-1].manresAttr); } -#line 12238 "asmparse.cpp" +#line 13623 "asmparse.cpp" break; case 860: -#line 2096 "asmparse.y" +#line 2095 "asmparse.y" { PASMM->StartManifestRes(yystack.l_mark[-2].string, yystack.l_mark[0].string, yystack.l_mark[-3].manresAttr); } -#line 12243 "asmparse.cpp" +#line 13628 "asmparse.cpp" break; case 861: -#line 2099 "asmparse.y" +#line 2098 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) 0; } -#line 12248 "asmparse.cpp" +#line 13633 "asmparse.cpp" break; case 862: -#line 2100 "asmparse.y" +#line 2099 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPublic); } -#line 12253 "asmparse.cpp" +#line 13638 "asmparse.cpp" break; case 863: -#line 2101 "asmparse.y" +#line 2100 "asmparse.y" { yyval.manresAttr = (CorManifestResourceFlags) (yystack.l_mark[-1].manresAttr | mrPrivate); } -#line 12258 "asmparse.cpp" +#line 13643 "asmparse.cpp" break; case 866: -#line 2108 "asmparse.y" +#line 2107 "asmparse.y" { PASMM->SetManifestResFile(yystack.l_mark[-2].string, (ULONG)yystack.l_mark[0].int32); } -#line 12263 "asmparse.cpp" +#line 13648 "asmparse.cpp" break; case 867: -#line 2109 "asmparse.y" +#line 2108 "asmparse.y" { PASMM->SetManifestResAsmRef(yystack.l_mark[0].string); } -#line 12268 "asmparse.cpp" +#line 13653 "asmparse.cpp" break; -#line 12270 "asmparse.cpp" +#line 13655 "asmparse.cpp" default: break; } diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index acbb27c279210..34f62c5711261 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -3123,7 +3123,7 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok if (RidFromToken(tkType)) { CQuickBytes out; - szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"const %s ",PrettyPrintClass(&out, tkType, g_pImport)); + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"literal %s ",PrettyPrintClass(&out, tkType, g_pImport)); } if (chName) { diff --git a/src/coreclr/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp index c6fe7ef647e19..16246f330e55b 100644 --- a/src/coreclr/inc/formattype.cpp +++ b/src/coreclr/inc/formattype.cpp @@ -608,7 +608,6 @@ PCCOR_SIGNATURE PrettyPrintType( str = "class "; goto DO_CLASS; case ELEMENT_TYPE_CTARG : - appendStr(out, KEYWORD("const ")); Reiterate = TRUE; HasData = TRUE; break; diff --git a/src/coreclr/inc/il_kywd.h b/src/coreclr/inc/il_kywd.h index 3795e999a52a9..3a3b86a85fbeb 100644 --- a/src/coreclr/inc/il_kywd.h +++ b/src/coreclr/inc/il_kywd.h @@ -268,7 +268,6 @@ /* Null reference keyword for InitOpt */ KYWD( "nullref", NULLREF_, NO_VALUE ) KYWD( "type", TYPE_, NO_VALUE ) - KYWD( "const", CONST_, NO_VALUE ) KYWD( ".interfaceimpl", _INTERFACEIMPL, NO_VALUE ) /* Header flags keywords */ KYWD( ".subsystem", _SUBSYSTEM, NO_VALUE ) diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index 3c15e4339a7a5..a1e2b49701efd 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -104,7 +104,6 @@ void Compiler::eePrintJitType(StringPrinter* printer, var_types jitType) // void Compiler::eePrintConstValue(StringPrinter* printer, CorInfoType valueType, uint64_t value) { - printer->Append("const "); printer->Append(varTypeName(JitType2PreciseVarType(valueType))); printer->Append("("); char buffer[64]; diff --git a/src/coreclr/vm/sigformat.cpp b/src/coreclr/vm/sigformat.cpp index 1211898da5569..9794a5c249003 100644 --- a/src/coreclr/vm/sigformat.cpp +++ b/src/coreclr/vm/sigformat.cpp @@ -357,7 +357,6 @@ void SigFormat::AddTypeString(Module* pModule, SigPointer sig, const SigTypeCont void SigFormat::AddConstValueTypeString(CorElementType constValueType, uint64_t constValue) { - AddString("const "); char buffer[42]; switch (constValueType) { diff --git a/src/coreclr/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp index 3a3701873a343..90f3a231eef29 100644 --- a/src/coreclr/vm/typestring.cpp +++ b/src/coreclr/vm/typestring.cpp @@ -779,7 +779,7 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t PCCOR_SIGNATURE pSig; ULONG cSig; IfFailThrow(ty.GetModule()->GetMDImport()->GetTypeSpecFromToken(mdType, &pSig, &cSig)); - SmallStackSString typeName(SString::Utf8, "const "); + SmallStackSString typeName(SString::Utf8, "literal "); LPCSTR str; switch (*pSig++) { @@ -890,7 +890,6 @@ void TypeString::AppendType(TypeNameBuilder& tnb, TypeHandle ty, Instantiation t // or a const value else if (ty.IsConstValue()) { - tnb.Append(W("const ")); AppendType(tnb, ty.AsConstValue()->GetConstValueType(), Instantiation(), format & ~FormatAssembly); tnb.Append(W("(")); AppendConstValue(tnb, ty.AsConstValue()->GetConstValueType().GetInternalCorElementType(), ty.AsConstValue()->GetConstValue()); @@ -1231,7 +1230,6 @@ void TypeString::AppendTypeKey(TypeNameBuilder& tnb, TypeKey *pTypeKey, DWORD fo } else if (kind == ELEMENT_TYPE_CTARG) { - tnb.Append(W("const ")); TypeHandle valueType = pTypeKey->GetConstValueType(); AppendType(tnb, valueType, Instantiation(), format & ~FormatAssembly); tnb.Append(W("(")); From c8a27022465e6b058e600885a6c611e5d823c46b Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 21 Aug 2023 12:13:19 +0900 Subject: [PATCH 75/80] Generate new JIT-EE interface --- src/coreclr/inc/jiteeversionguid.h | 10 +- .../JitInterface/CorInfoImpl_generated.cs | 174 +++++++++++++++++- 2 files changed, 178 insertions(+), 6 deletions(-) diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index f92152606c668..f82bc20c4b716 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* 48bfbcf3-2f3c-49a5-ba3d-1a6e37ba0ed2 */ - 0x48bfbcf3, - 0x2f3c, - 0x49a5, - {0xba, 0x3d, 0x1a, 0x6e, 0x37, 0xba, 0x0e, 0xd2} +constexpr GUID JITEEVersionIdentifier = { /* 5fb396c1-a29d-4feb-8268-8eb79d1ff5ef */ + 0x5fb396c1, + 0xa29d, + 0x4feb, + {0x82, 0x68, 0x8e, 0xb7, 0x9d, 0x1f, 0xf5, 0xef} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index 9d2e2863ae813..5ad23a3bf7ef6 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -2569,7 +2569,179 @@ private static IntPtr GetUnmanagedCallbacks() { void** callbacks = (void**)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 173); - // regenerate in the next commit + callbacks[0] = (delegate* unmanaged)&_isIntrinsic; + callbacks[1] = (delegate* unmanaged)&_getMethodAttribs; + callbacks[2] = (delegate* unmanaged)&_setMethodAttribs; + callbacks[3] = (delegate* unmanaged)&_getMethodSig; + callbacks[4] = (delegate* unmanaged)&_getMethodInfo; + callbacks[5] = (delegate* unmanaged)&_haveSameMethodDefinition; + callbacks[6] = (delegate* unmanaged)&_canInline; + callbacks[7] = (delegate* unmanaged)&_beginInlining; + callbacks[8] = (delegate* unmanaged)&_reportInliningDecision; + callbacks[9] = (delegate* unmanaged)&_canTailCall; + callbacks[10] = (delegate* unmanaged)&_reportTailCallDecision; + callbacks[11] = (delegate* unmanaged)&_getEHinfo; + callbacks[12] = (delegate* unmanaged)&_getMethodClass; + callbacks[13] = (delegate* unmanaged)&_getMethodVTableOffset; + callbacks[14] = (delegate* unmanaged)&_resolveVirtualMethod; + callbacks[15] = (delegate* unmanaged)&_getUnboxedEntry; + callbacks[16] = (delegate* unmanaged)&_getDefaultComparerClass; + callbacks[17] = (delegate* unmanaged)&_getDefaultEqualityComparerClass; + callbacks[18] = (delegate* unmanaged)&_expandRawHandleIntrinsic; + callbacks[19] = (delegate* unmanaged)&_isIntrinsicType; + callbacks[20] = (delegate* unmanaged)&_getUnmanagedCallConv; + callbacks[21] = (delegate* unmanaged)&_pInvokeMarshalingRequired; + callbacks[22] = (delegate* unmanaged)&_satisfiesMethodConstraints; + callbacks[23] = (delegate* unmanaged)&_methodMustBeLoadedBeforeCodeIsRun; + callbacks[24] = (delegate* unmanaged)&_mapMethodDeclToMethodImpl; + callbacks[25] = (delegate* unmanaged)&_getGSCookie; + callbacks[26] = (delegate* unmanaged)&_setPatchpointInfo; + callbacks[27] = (delegate* unmanaged)&_getOSRInfo; + callbacks[28] = (delegate* unmanaged)&_resolveToken; + callbacks[29] = (delegate* unmanaged)&_findSig; + callbacks[30] = (delegate* unmanaged)&_findCallSiteSig; + callbacks[31] = (delegate* unmanaged)&_getTokenTypeAsHandle; + callbacks[32] = (delegate* unmanaged)&_getStringLiteral; + callbacks[33] = (delegate* unmanaged)&_printObjectDescription; + callbacks[34] = (delegate* unmanaged)&_asCorInfoType; + callbacks[35] = (delegate* unmanaged)&_getClassNameFromMetadata; + callbacks[36] = (delegate* unmanaged)&_getTypeInstantiationArgument; + callbacks[37] = (delegate* unmanaged)&_printClassName; + callbacks[38] = (delegate* unmanaged)&_isValueClass; + callbacks[39] = (delegate* unmanaged)&_canInlineTypeCheck; + callbacks[40] = (delegate* unmanaged)&_getClassAttribs; + callbacks[41] = (delegate* unmanaged)&_getClassModule; + callbacks[42] = (delegate* unmanaged)&_getModuleAssembly; + callbacks[43] = (delegate* unmanaged)&_getAssemblyName; + callbacks[44] = (delegate* unmanaged)&_LongLifetimeMalloc; + callbacks[45] = (delegate* unmanaged)&_LongLifetimeFree; + callbacks[46] = (delegate* unmanaged)&_getClassModuleIdForStatics; + callbacks[47] = (delegate* unmanaged)&_getIsClassInitedFlagAddress; + callbacks[48] = (delegate* unmanaged)&_getStaticBaseAddress; + callbacks[49] = (delegate* unmanaged)&_getClassSize; + callbacks[50] = (delegate* unmanaged)&_getHeapClassSize; + callbacks[51] = (delegate* unmanaged)&_canAllocateOnStack; + callbacks[52] = (delegate* unmanaged)&_getClassAlignmentRequirement; + callbacks[53] = (delegate* unmanaged)&_getClassGClayout; + callbacks[54] = (delegate* unmanaged)&_getClassNumInstanceFields; + callbacks[55] = (delegate* unmanaged)&_getFieldInClass; + callbacks[56] = (delegate* unmanaged)&_getTypeLayout; + callbacks[57] = (delegate* unmanaged)&_checkMethodModifier; + callbacks[58] = (delegate* unmanaged)&_getNewHelper; + callbacks[59] = (delegate* unmanaged)&_getNewArrHelper; + callbacks[60] = (delegate* unmanaged)&_getCastingHelper; + callbacks[61] = (delegate* unmanaged)&_getSharedCCtorHelper; + callbacks[62] = (delegate* unmanaged)&_getTypeForBox; + callbacks[63] = (delegate* unmanaged)&_getBoxHelper; + callbacks[64] = (delegate* unmanaged)&_getUnBoxHelper; + callbacks[65] = (delegate* unmanaged)&_getRuntimeTypePointer; + callbacks[66] = (delegate* unmanaged)&_isObjectImmutable; + callbacks[67] = (delegate* unmanaged)&_getStringChar; + callbacks[68] = (delegate* unmanaged)&_getObjectType; + callbacks[69] = (delegate* unmanaged)&_getReadyToRunHelper; + callbacks[70] = (delegate* unmanaged)&_getReadyToRunDelegateCtorHelper; + callbacks[71] = (delegate* unmanaged)&_initClass; + callbacks[72] = (delegate* unmanaged)&_classMustBeLoadedBeforeCodeIsRun; + callbacks[73] = (delegate* unmanaged)&_getBuiltinClass; + callbacks[74] = (delegate* unmanaged)&_getTypeForPrimitiveValueClass; + callbacks[75] = (delegate* unmanaged)&_getTypeForPrimitiveNumericClass; + callbacks[76] = (delegate* unmanaged)&_canCast; + callbacks[77] = (delegate* unmanaged)&_compareTypesForCast; + callbacks[78] = (delegate* unmanaged)&_compareTypesForEquality; + callbacks[79] = (delegate* unmanaged)&_isMoreSpecificType; + callbacks[80] = (delegate* unmanaged)&_isEnum; + callbacks[81] = (delegate* unmanaged)&_getParentType; + callbacks[82] = (delegate* unmanaged)&_getChildType; + callbacks[83] = (delegate* unmanaged)&_isSDArray; + callbacks[84] = (delegate* unmanaged)&_getArrayRank; + callbacks[85] = (delegate* unmanaged)&_getArrayIntrinsicID; + callbacks[86] = (delegate* unmanaged)&_getArrayInitializationData; + callbacks[87] = (delegate* unmanaged)&_isConstValue; + callbacks[88] = (delegate* unmanaged)&_getConstValue; + callbacks[89] = (delegate* unmanaged)&_getConstValueType; + callbacks[90] = (delegate* unmanaged)&_canAccessClass; + callbacks[91] = (delegate* unmanaged)&_printFieldName; + callbacks[92] = (delegate* unmanaged)&_getFieldClass; + callbacks[93] = (delegate* unmanaged)&_getFieldType; + callbacks[94] = (delegate* unmanaged)&_getFieldOffset; + callbacks[95] = (delegate* unmanaged)&_getFieldInfo; + callbacks[96] = (delegate* unmanaged)&_getThreadLocalFieldInfo; + callbacks[97] = (delegate* unmanaged)&_getThreadLocalStaticBlocksInfo; + callbacks[98] = (delegate* unmanaged)&_isFieldStatic; + callbacks[99] = (delegate* unmanaged)&_getArrayOrStringLength; + callbacks[100] = (delegate* unmanaged)&_getBoundaries; + callbacks[101] = (delegate* unmanaged)&_setBoundaries; + callbacks[102] = (delegate* unmanaged)&_getVars; + callbacks[103] = (delegate* unmanaged)&_setVars; + callbacks[104] = (delegate* unmanaged)&_reportRichMappings; + callbacks[105] = (delegate* unmanaged)&_allocateArray; + callbacks[106] = (delegate* unmanaged)&_freeArray; + callbacks[107] = (delegate* unmanaged)&_getArgNext; + callbacks[108] = (delegate* unmanaged)&_getArgType; + callbacks[109] = (delegate* unmanaged)&_getExactClasses; + callbacks[110] = (delegate* unmanaged)&_getArgClass; + callbacks[111] = (delegate* unmanaged)&_getHFAType; + callbacks[112] = (delegate* unmanaged)&_runWithErrorTrap; + callbacks[113] = (delegate* unmanaged)&_runWithSPMIErrorTrap; + callbacks[114] = (delegate* unmanaged)&_getEEInfo; + callbacks[115] = (delegate* unmanaged)&_getJitTimeLogFilename; + callbacks[116] = (delegate* unmanaged)&_getMethodDefFromMethod; + callbacks[117] = (delegate* unmanaged)&_printMethodName; + callbacks[118] = (delegate* unmanaged)&_getMethodNameFromMetadata; + callbacks[119] = (delegate* unmanaged)&_getMethodHash; + callbacks[120] = (delegate* unmanaged)&_getSystemVAmd64PassStructInRegisterDescriptor; + callbacks[121] = (delegate* unmanaged)&_getLoongArch64PassStructInRegisterFlags; + callbacks[122] = (delegate* unmanaged)&_getRISCV64PassStructInRegisterFlags; + callbacks[123] = (delegate* unmanaged)&_getThreadTLSIndex; + callbacks[124] = (delegate* unmanaged)&_getAddrOfCaptureThreadGlobal; + callbacks[125] = (delegate* unmanaged)&_getHelperFtn; + callbacks[126] = (delegate* unmanaged)&_getFunctionEntryPoint; + callbacks[127] = (delegate* unmanaged)&_getFunctionFixedEntryPoint; + callbacks[128] = (delegate* unmanaged)&_getMethodSync; + callbacks[129] = (delegate* unmanaged)&_getLazyStringLiteralHelper; + callbacks[130] = (delegate* unmanaged)&_embedModuleHandle; + callbacks[131] = (delegate* unmanaged)&_embedClassHandle; + callbacks[132] = (delegate* unmanaged)&_embedMethodHandle; + callbacks[133] = (delegate* unmanaged)&_embedFieldHandle; + callbacks[134] = (delegate* unmanaged)&_embedGenericHandle; + callbacks[135] = (delegate* unmanaged)&_getLocationOfThisType; + callbacks[136] = (delegate* unmanaged)&_getAddressOfPInvokeTarget; + callbacks[137] = (delegate* unmanaged)&_GetCookieForPInvokeCalliSig; + callbacks[138] = (delegate* unmanaged)&_canGetCookieForPInvokeCalliSig; + callbacks[139] = (delegate* unmanaged)&_getJustMyCodeHandle; + callbacks[140] = (delegate* unmanaged)&_GetProfilingHandle; + callbacks[141] = (delegate* unmanaged)&_getCallInfo; + callbacks[142] = (delegate* unmanaged)&_getClassDomainID; + callbacks[143] = (delegate* unmanaged)&_getStaticFieldContent; + callbacks[144] = (delegate* unmanaged)&_getObjectContent; + callbacks[145] = (delegate* unmanaged)&_getStaticFieldCurrentClass; + callbacks[146] = (delegate* unmanaged)&_getVarArgsHandle; + callbacks[147] = (delegate* unmanaged)&_canGetVarArgsHandle; + callbacks[148] = (delegate* unmanaged)&_constructStringLiteral; + callbacks[149] = (delegate* unmanaged)&_emptyStringLiteral; + callbacks[150] = (delegate* unmanaged)&_getFieldThreadLocalStoreID; + callbacks[151] = (delegate* unmanaged)&_GetDelegateCtor; + callbacks[152] = (delegate* unmanaged)&_MethodCompileComplete; + callbacks[153] = (delegate* unmanaged)&_getTailCallHelpers; + callbacks[154] = (delegate* unmanaged)&_convertPInvokeCalliToCall; + callbacks[155] = (delegate* unmanaged)&_notifyInstructionSetUsage; + callbacks[156] = (delegate* unmanaged)&_updateEntryPointForTailCall; + callbacks[157] = (delegate* unmanaged)&_allocMem; + callbacks[158] = (delegate* unmanaged)&_reserveUnwindInfo; + callbacks[159] = (delegate* unmanaged)&_allocUnwindInfo; + callbacks[160] = (delegate* unmanaged)&_allocGCInfo; + callbacks[161] = (delegate* unmanaged)&_setEHcount; + callbacks[162] = (delegate* unmanaged)&_setEHinfo; + callbacks[163] = (delegate* unmanaged)&_logMsg; + callbacks[164] = (delegate* unmanaged)&_doAssert; + callbacks[165] = (delegate* unmanaged)&_reportFatalError; + callbacks[166] = (delegate* unmanaged)&_getPgoInstrumentationResults; + callbacks[167] = (delegate* unmanaged)&_allocPgoInstrumentationBySchema; + callbacks[168] = (delegate* unmanaged)&_recordCallSite; + callbacks[169] = (delegate* unmanaged)&_recordRelocation; + callbacks[170] = (delegate* unmanaged)&_getRelocTypeHint; + callbacks[171] = (delegate* unmanaged)&_getExpectedTargetArchitecture; + callbacks[172] = (delegate* unmanaged)&_getJitFlags; return (IntPtr)callbacks; } From 4bd7a65269cdd51f53be6fa4ce0c93103fce8068 Mon Sep 17 00:00:00 2001 From: Steven He Date: Mon, 21 Aug 2023 21:26:30 +0900 Subject: [PATCH 76/80] Fix some comments --- src/coreclr/inc/metadata.h | 2 +- src/coreclr/md/enc/mdinternalrw.cpp | 2 +- src/coreclr/md/inc/mdinternalrw.h | 2 +- src/coreclr/md/runtime/mdinternalro.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreclr/inc/metadata.h b/src/coreclr/inc/metadata.h index 5721272882ad4..8946536fc5cc9 100644 --- a/src/coreclr/inc/metadata.h +++ b/src/coreclr/inc/metadata.h @@ -1023,7 +1023,7 @@ DECLARE_INTERFACE_(IMDInternalImport, IUnknown) ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) + mdToken *ptType, // [OUT] The type (TypeDef/Ref/Spec, for const generics) LPCSTR *szName) PURE; // [OUT] The name __checkReturn diff --git a/src/coreclr/md/enc/mdinternalrw.cpp b/src/coreclr/md/enc/mdinternalrw.cpp index 05812c037090f..3150f7b50116f 100644 --- a/src/coreclr/md/enc/mdinternalrw.cpp +++ b/src/coreclr/md/enc/mdinternalrw.cpp @@ -3238,7 +3238,7 @@ HRESULT MDInternalRW::GetGenericParamProps( // S_OK or error. ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) + mdToken *ptType, // [OUT] The type (TypeDef/Ref/Spec, for const generics) LPCSTR *szName) // [OUT] The name { HRESULT hr = NOERROR; diff --git a/src/coreclr/md/inc/mdinternalrw.h b/src/coreclr/md/inc/mdinternalrw.h index 4324e7129cf9f..a5e86af495407 100644 --- a/src/coreclr/md/inc/mdinternalrw.h +++ b/src/coreclr/md/inc/mdinternalrw.h @@ -547,7 +547,7 @@ class MDInternalRW : public IMDInternalImportENC, public IMDCommon ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - mdToken *ptType, // [OUT] The type (TypeDef/Ref, for const generics) + mdToken *ptType, // [OUT] The type (TypeDef/Ref/Spec, for const generics) LPCSTR *szName); // [OUT] The name __checkReturn diff --git a/src/coreclr/md/runtime/mdinternalro.h b/src/coreclr/md/runtime/mdinternalro.h index 7ffab56175ce3..0e2b11ccbe714 100644 --- a/src/coreclr/md/runtime/mdinternalro.h +++ b/src/coreclr/md/runtime/mdinternalro.h @@ -534,7 +534,7 @@ class MDInternalRO : public IMDInternalImport, IMDCommon ULONG* pulSequence, // [OUT] Parameter sequence number DWORD* pdwAttr, // [OUT] Type parameter flags (for future use) mdToken *ptOwner, // [OUT] The owner (TypeDef or MethodDef) - mdToken *ptType, // [OUT] The Type (TypeDef/Ref, for const generics) + mdToken *ptType, // [OUT] The Type (TypeDef/Ref/Spec, for const generics) LPCSTR *szName); // [OUT] The name __checkReturn From 9a7013f4697760dd10dd25f507f0295b82ada83b Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 22 Aug 2023 12:33:56 +0900 Subject: [PATCH 77/80] Use TypeHandle for ConstValueType --- src/coreclr/inc/corinfo.h | 2 +- src/coreclr/inc/icorjitinfoimpl_generated.h | 2 +- src/coreclr/inc/jiteeversionguid.h | 10 +++++----- .../jit/ICorJitInfo_wrapper_generated.hpp | 4 ++-- src/coreclr/jit/compiler.h | 2 +- src/coreclr/jit/eeinterface.cpp | 6 +++--- .../tools/Common/JitInterface/CorInfoImpl.cs | 4 ++-- .../JitInterface/CorInfoImpl_generated.cs | 4 ++-- .../JitInterface/ThunkGenerator/ThunkInput.txt | 2 +- .../aot/jitinterface/jitinterface_generated.h | 6 +++--- .../tools/superpmi/superpmi-shared/lwmlist.h | 2 +- .../superpmi/superpmi-shared/methodcontext.cpp | 17 ++++++++--------- .../superpmi/superpmi-shared/methodcontext.h | 6 +++--- .../superpmi-shim-collector/icorjitinfo.cpp | 4 ++-- .../icorjitinfo_generated.cpp | 2 +- .../icorjitinfo_generated.cpp | 2 +- .../tools/superpmi/superpmi/icorjitinfo.cpp | 2 +- src/coreclr/vm/jitinterface.cpp | 6 +++--- src/coreclr/vm/typehandle.cpp | 4 ++-- src/coreclr/vm/typehandle.h | 2 +- src/coreclr/vm/typehash.cpp | 2 +- 21 files changed, 45 insertions(+), 46 deletions(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index e635ff6e91ffa..ffaf3ddc532ad 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -2780,7 +2780,7 @@ class ICorStaticInfo ) = 0; // Return the type of the const value if this is a const value type - virtual CorInfoType getConstValueType( + virtual CORINFO_CLASS_HANDLE getConstValueType( CORINFO_CLASS_HANDLE cls ) = 0; diff --git a/src/coreclr/inc/icorjitinfoimpl_generated.h b/src/coreclr/inc/icorjitinfoimpl_generated.h index 16387a9a75eb5..b50af60863f4c 100644 --- a/src/coreclr/inc/icorjitinfoimpl_generated.h +++ b/src/coreclr/inc/icorjitinfoimpl_generated.h @@ -369,7 +369,7 @@ bool isConstValue( uint64_t getConstValue( CORINFO_CLASS_HANDLE cls) override; -CorInfoType getConstValueType( +CORINFO_CLASS_HANDLE getConstValueType( CORINFO_CLASS_HANDLE cls) override; CorInfoIsAccessAllowedResult canAccessClass( diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index f82bc20c4b716..297bf62b70c1c 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* 5fb396c1-a29d-4feb-8268-8eb79d1ff5ef */ - 0x5fb396c1, - 0xa29d, - 0x4feb, - {0x82, 0x68, 0x8e, 0xb7, 0x9d, 0x1f, 0xf5, 0xef} +constexpr GUID JITEEVersionIdentifier = { /* abb7adbf-5df8-4ada-bac9-3ac6db8a09c5 */ + 0xabb7adbf, + 0x5df8, + 0x4ada, + {0xba, 0xc9, 0x3a, 0xc6, 0xdb, 0x8a, 0x09, 0xc5} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp index 8af962f2c0d2e..4ffe13ae28892 100644 --- a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp +++ b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp @@ -877,11 +877,11 @@ uint64_t WrapICorJitInfo::getConstValue( return temp; } -CorInfoType WrapICorJitInfo::getConstValueType( +CORINFO_CLASS_HANDLE WrapICorJitInfo::getConstValueType( CORINFO_CLASS_HANDLE cls) { API_ENTER(getConstValueType); - CorInfoType temp = wrapHnd->getConstValueType(cls); + CORINFO_CLASS_HANDLE temp = wrapHnd->getConstValueType(cls); API_LEAVE(getConstValueType); return temp; } diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index 971a05a032073..13f2554d270c1 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -7915,7 +7915,7 @@ class Compiler // functions exposed on top that have SPMI handling and additional buffer // handling. Note that the strings returned are never truncated here. void eePrintJitType(class StringPrinter* printer, var_types jitType); - void eePrintConstValue(class StringPrinter* printer, CorInfoType valueType, uint64_t value); + void eePrintConstValue(class StringPrinter* printer, CORINFO_CLASS_HANDLE valueType, uint64_t value); void eePrintType(class StringPrinter* printer, CORINFO_CLASS_HANDLE clsHnd, bool includeInstantiation); void eePrintTypeOrJitAlias(class StringPrinter* printer, CORINFO_CLASS_HANDLE clsHnd, bool includeInstantiation); void eePrintMethod(class StringPrinter* printer, diff --git a/src/coreclr/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp index a1e2b49701efd..b0dc0defb6f63 100644 --- a/src/coreclr/jit/eeinterface.cpp +++ b/src/coreclr/jit/eeinterface.cpp @@ -102,12 +102,12 @@ void Compiler::eePrintJitType(StringPrinter* printer, var_types jitType) // valueType - the value type // value - the value // -void Compiler::eePrintConstValue(StringPrinter* printer, CorInfoType valueType, uint64_t value) +void Compiler::eePrintConstValue(StringPrinter* printer, CORINFO_CLASS_HANDLE valueType, uint64_t value) { - printer->Append(varTypeName(JitType2PreciseVarType(valueType))); + eePrintType(printer, valueType, true); printer->Append("("); char buffer[64]; - switch (valueType) + switch (info.compCompHnd->asCorInfoType(valueType)) { case CORINFO_TYPE_BOOL: printer->Append(*(uint8_t*)&value == 0 ? "true" : "false"); diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index 264d8afd916f1..a2e326dfda9bb 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -3019,12 +3019,12 @@ private ulong getConstValue(CORINFO_CLASS_STRUCT_* cls) } #pragma warning disable CA1822 // Mark members as static - private CorInfoType getConstValueType(CORINFO_CLASS_STRUCT_* cls) + private CORINFO_CLASS_STRUCT_* getConstValueType(CORINFO_CLASS_STRUCT_* cls) #pragma warning restore CA1822 // Mark members as static { // Implemented for JIT only for now. - return (CorInfoType)0; + return (CORINFO_CLASS_STRUCT_*)0; } private nuint printFieldName(CORINFO_FIELD_STRUCT_* fld, byte* buffer, nuint bufferSize, nuint* requiredBufferSize) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index 5ad23a3bf7ef6..4be1acdf8b369 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -1331,7 +1331,7 @@ private static ulong _getConstValue(IntPtr thisHandle, IntPtr* ppException, CORI } [UnmanagedCallersOnly] - private static CorInfoType _getConstValueType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + private static CORINFO_CLASS_STRUCT_* _getConstValueType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -2658,7 +2658,7 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[86] = (delegate* unmanaged)&_getArrayInitializationData; callbacks[87] = (delegate* unmanaged)&_isConstValue; callbacks[88] = (delegate* unmanaged)&_getConstValue; - callbacks[89] = (delegate* unmanaged)&_getConstValueType; + callbacks[89] = (delegate* unmanaged)&_getConstValueType; callbacks[90] = (delegate* unmanaged)&_canAccessClass; callbacks[91] = (delegate* unmanaged)&_printFieldName; callbacks[92] = (delegate* unmanaged)&_getFieldClass; diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index f94b1cd25f150..266a91d567819 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -251,7 +251,7 @@ FUNCTIONS void* getArrayInitializationData(CORINFO_FIELD_HANDLE field, uint32_t size) bool isConstValue(CORINFO_CLASS_HANDLE cls) uint64_t getConstValue(CORINFO_CLASS_HANDLE cls) - CorInfoType getConstValueType(CORINFO_CLASS_HANDLE cls) + CORINFO_CLASS_HANDLE getConstValueType(CORINFO_CLASS_HANDLE cls) CorInfoIsAccessAllowedResult canAccessClass(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_HELPER_DESC* pAccessHelper) size_t printFieldName(CORINFO_FIELD_HANDLE field, char* buffer, size_t bufferSize, size_t* pRequiredBufferSize) CORINFO_CLASS_HANDLE getFieldClass(CORINFO_FIELD_HANDLE field) diff --git a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h index 497c090d42d85..a4e0167c4e897 100644 --- a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h +++ b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h @@ -100,7 +100,7 @@ struct JitInterfaceCallbacks void* (* getArrayInitializationData)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field, uint32_t size); bool (* isConstValue)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); uint64_t (* getConstValue)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); - CorInfoType (* getConstValueType)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); + CORINFO_CLASS_HANDLE (* getConstValueType)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); CorInfoIsAccessAllowedResult (* canAccessClass)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_HELPER_DESC* pAccessHelper); size_t (* printFieldName)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field, char* buffer, size_t bufferSize, size_t* pRequiredBufferSize); CORINFO_CLASS_HANDLE (* getFieldClass)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_FIELD_HANDLE field); @@ -1064,11 +1064,11 @@ class JitInterfaceWrapper : public ICorJitInfo return temp; } - virtual CorInfoType getConstValueType( + virtual CORINFO_CLASS_HANDLE getConstValueType( CORINFO_CLASS_HANDLE cls) { CorInfoExceptionClass* pException = nullptr; - CorInfoType temp = _callbacks->getConstValueType(_thisHandle, &pException, cls); + CORINFO_CLASS_HANDLE temp = _callbacks->getConstValueType(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } diff --git a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h index 1abf46be2a8ef..67fd96b2414e3 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/lwmlist.h @@ -53,7 +53,7 @@ LWM(GetArrayInitializationData, DLD, DWORDLONG) LWM(GetArrayRank, DWORDLONG, DWORD) LWM(GetArrayIntrinsicID, DWORDLONG, DWORD) LWM(IsConstValue, DWORDLONG, DWORD) -LWM(GetConstValueType, DWORDLONG, DWORD) +LWM(GetConstValueType, DWORDLONG, DWORDLONG) LWM(GetConstValue, DWORDLONG, DWORDLONG) LWM(GetBoundaries, DWORDLONG, Agnostic_GetBoundaries) LWM(GetBoxHelper, DWORDLONG, DWORD) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp index 8f69890de957a..440866a403136 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp @@ -5204,29 +5204,28 @@ DWORDLONG MethodContext::repGetConstValue(CORINFO_CLASS_HANDLE cls) return value; } -void MethodContext::recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result) +void MethodContext::recGetConstValueType(CORINFO_CLASS_HANDLE cls, CORINFO_CLASS_HANDLE result) { if (GetConstValueType == nullptr) - GetConstValueType = new LightWeightMap(); + GetConstValueType = new LightWeightMap(); DWORDLONG key = CastHandle(cls); - GetConstValueType->Add(key, result); + GetConstValueType->Add(key, CastHandle(result)); DEBUG_REC(dmpGetConstValueType(key, result)); } -void MethodContext::dmpGetConstValueType(DWORDLONG key, DWORD value) +void MethodContext::dmpGetConstValueType(DWORDLONG key, DWORDLONG value) { - printf("GetConstValueType key cls-%016" PRIX64 ", value res-%u(%s)", key, value, toString((CorInfoType)value)); + printf("GetConstValueType key cls-%016" PRIX64 ", value res-%016" PRIX64 "", key, value); } -CorInfoType MethodContext::repGetConstValueType(CORINFO_CLASS_HANDLE cls) +CORINFO_CLASS_HANDLE MethodContext::repGetConstValueType(CORINFO_CLASS_HANDLE cls) { DWORDLONG key = CastHandle(cls); - DWORD value = LookupByKeyOrMissNoMessage(GetConstValueType, key); + DWORDLONG value = LookupByKeyOrMissNoMessage(GetConstValueType, key); DEBUG_REP(dmpGetConstValueType(key, value)); - CorInfoType result = (CorInfoType)value; - return result; + return (CORINFO_CLASS_HANDLE)value; } void MethodContext::recGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h index ff415f98c4c9b..80ca38725c662 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h @@ -657,9 +657,9 @@ class MethodContext void dmpGetConstValue(DWORDLONG key, DWORDLONG value); DWORDLONG repGetConstValue(CORINFO_CLASS_HANDLE cls); - void recGetConstValueType(CORINFO_CLASS_HANDLE cls, CorInfoType result); - void dmpGetConstValueType(DWORDLONG key, DWORD value); - CorInfoType repGetConstValueType(CORINFO_CLASS_HANDLE cls); + void recGetConstValueType(CORINFO_CLASS_HANDLE cls, CORINFO_CLASS_HANDLE result); + void dmpGetConstValueType(DWORDLONG key, DWORDLONG value); + CORINFO_CLASS_HANDLE repGetConstValueType(CORINFO_CLASS_HANDLE cls); void recGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup); void dmpGetAddressOfPInvokeTarget(DWORDLONG key, DLD value); diff --git a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp index a5664987ec072..7277f2d8c5775 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -1015,10 +1015,10 @@ uint64_t interceptor_ICJI::getConstValue(CORINFO_CLASS_HANDLE cls) return temp; } -CorInfoType interceptor_ICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) +CORINFO_CLASS_HANDLE interceptor_ICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("getConstValueType"); - CorInfoType temp = original_ICorJitInfo->getConstValueType(cls); + CORINFO_CLASS_HANDLE temp = original_ICorJitInfo->getConstValueType(cls); mc->recGetConstValueType(cls, temp); return temp; } diff --git a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp index 2596ba7a978e0..f36707207364f 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp @@ -716,7 +716,7 @@ uint64_t interceptor_ICJI::getConstValue( return original_ICorJitInfo->getConstValue(cls); } -CorInfoType interceptor_ICJI::getConstValueType( +CORINFO_CLASS_HANDLE interceptor_ICJI::getConstValueType( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("getConstValueType"); diff --git a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp index 1ea63ac0ff1b4..4b4bf79d39169 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp @@ -627,7 +627,7 @@ uint64_t interceptor_ICJI::getConstValue( return original_ICorJitInfo->getConstValue(cls); } -CorInfoType interceptor_ICJI::getConstValueType( +CORINFO_CLASS_HANDLE interceptor_ICJI::getConstValueType( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->getConstValueType(cls); diff --git a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp index 0b04dff061405..c49ebbc04d9c0 100644 --- a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp @@ -842,7 +842,7 @@ uint64_t MyICJI::getConstValue(CORINFO_CLASS_HANDLE cls) return jitInstance->mc->repGetConstValue(cls); } -CorInfoType MyICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) +CORINFO_CLASS_HANDLE MyICJI::getConstValueType(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("getConstValueType"); return jitInstance->mc->repGetConstValueType(cls); diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 4e2a842a8384a..8856987cbfe01 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -5004,7 +5004,7 @@ uint64_t CEEInfo::getConstValue(CORINFO_CLASS_HANDLE cls) } // Return the type of the const value if this is a const value type -CorInfoType CEEInfo::getConstValueType(CORINFO_CLASS_HANDLE cls) +CORINFO_CLASS_HANDLE CEEInfo::getConstValueType(CORINFO_CLASS_HANDLE cls) { CONTRACTL { THROWS; @@ -5012,11 +5012,11 @@ CorInfoType CEEInfo::getConstValueType(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - CorInfoType result = CorInfoType::CORINFO_TYPE_COUNT; + CORINFO_CLASS_HANDLE result = nullptr; JIT_TO_EE_TRANSITION(); - result = CEEInfo::asCorInfoType(((TypeHandle)cls).GetConstValueType()); + result = (CORINFO_CLASS_HANDLE)((TypeHandle)cls).GetConstValueType().AsTAddr(); EE_TO_JIT_TRANSITION(); diff --git a/src/coreclr/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp index c45dd5d2fbbd7..f3e61067b5508 100644 --- a/src/coreclr/vm/typehandle.cpp +++ b/src/coreclr/vm/typehandle.cpp @@ -1046,12 +1046,12 @@ uint64_t TypeHandle::GetConstValue() const return AsConstValue()->GetConstValue(); } -CorElementType TypeHandle::GetConstValueType() const +TypeHandle TypeHandle::GetConstValueType() const { LIMITED_METHOD_DAC_CONTRACT; _ASSERTE(IsTypeDesc()); - return AsConstValue()->GetConstValueType().GetInternalCorElementType(); + return AsConstValue()->GetConstValueType(); } BOOL TypeHandle::IsRestored() const diff --git a/src/coreclr/vm/typehandle.h b/src/coreclr/vm/typehandle.h index fe81a30ac89ac..618aeadb0ce20 100644 --- a/src/coreclr/vm/typehandle.h +++ b/src/coreclr/vm/typehandle.h @@ -482,7 +482,7 @@ class TypeHandle // CTARG BOOL IsConstValue() const; uint64_t GetConstValue() const; - CorElementType GetConstValueType() const; + TypeHandle GetConstValueType() const; // BYREF BOOL IsByRef() const; diff --git a/src/coreclr/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp index 3798c654d5566..27fcfb56b67ae 100644 --- a/src/coreclr/vm/typehash.cpp +++ b/src/coreclr/vm/typehash.cpp @@ -357,7 +357,7 @@ EETypeHashEntry_t *EETypeHashTable::FindItem(TypeKey* pKey) if (!pSearch->GetTypeHandle().IsConstValue()) continue; - CorElementType valueType = pKey->GetConstValueType().GetInternalCorElementType(); + TypeHandle valueType = pKey->GetConstValueType(); if ((pSearch->GetTypeHandle().GetConstValueType() != valueType)) continue; From a70dfdc46c998e534e945ec5897b98a1ce4c7a68 Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 22 Aug 2023 14:22:59 +0900 Subject: [PATCH 78/80] Use TypeHandle in class loader --- src/coreclr/vm/clsload.cpp | 6 ++---- src/coreclr/vm/clsload.hpp | 2 +- src/coreclr/vm/siginfo.cpp | 3 ++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/coreclr/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp index 6ba6a3297f7e5..6033272209d7c 100644 --- a/src/coreclr/vm/clsload.cpp +++ b/src/coreclr/vm/clsload.cpp @@ -1654,7 +1654,7 @@ TypeHandle ClassLoader::LoadFnptrTypeThrowing(BYTE callConv, RETURN(LoadConstructedTypeThrowing(&key, fLoadTypes, level)); } -TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, +TypeHandle ClassLoader::LoadConstValueTypeThrowing(TypeHandle valueType, uint64_t value, CorElementType typ /* ELEMENT_TYPE_CTARG */, LoadTypesFlag fLoadTypes /* LoadTypes */, @@ -1667,15 +1667,13 @@ TypeHandle ClassLoader::LoadConstValueTypeThrowing(CorElementType valueType, if (FORBIDGC_LOADER_USE_ENABLED()) FORBID_FAULT; else { INJECT_FAULT(COMPlusThrowOM()); } if (FORBIDGC_LOADER_USE_ENABLED() || fLoadTypes != LoadTypes) { LOADS_TYPE(CLASS_LOAD_BEGIN); } else { LOADS_TYPE(level); } PRECONDITION(level > CLASS_LOAD_BEGIN && level <= CLASS_LOADED); - PRECONDITION(valueType <= ELEMENT_TYPE_R8 && valueType != ELEMENT_TYPE_VOID); POSTCONDITION(CheckPointer(RETVAL, ((fLoadTypes == LoadTypes) ? NULL_NOT_OK : NULL_OK))); MODE_ANY; SUPPORTS_DAC; } CONTRACT_END - TypeHandle th = TypeHandle(CoreLibBinder::GetElementType(valueType)); - TypeKey key(th, value); + TypeKey key(valueType, value); TypeHandle typeHnd = LookupTypeHandleForTypeKey(&key); if (!typeHnd.IsNull()) diff --git a/src/coreclr/vm/clsload.hpp b/src/coreclr/vm/clsload.hpp index 5719b11bb3cde..2e2c2eda99200 100644 --- a/src/coreclr/vm/clsload.hpp +++ b/src/coreclr/vm/clsload.hpp @@ -700,7 +700,7 @@ class ClassLoader LoadTypesFlag fLoadTypes = LoadTypes, ClassLoadLevel level = CLASS_LOADED); - static TypeHandle LoadConstValueTypeThrowing(CorElementType valueType, + static TypeHandle LoadConstValueTypeThrowing(TypeHandle valueType, uint64_t value, CorElementType typ = ELEMENT_TYPE_CTARG, LoadTypesFlag fLoadTypes = LoadTypes, diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 3cabc70af788e..30771a8085e7d 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -1345,7 +1345,8 @@ TypeHandle SigPointer::GetTypeHandleThrowing( IfFailThrowBF(psig.GetConstTypeArg(&valueType, &cb, &elem), BFA_BAD_SIGNATURE, pOrigModule); uint64_t value = 0; memcpy(&value, elem, cb); - thRet = ClassLoader::LoadConstValueTypeThrowing(valueType, value, typ, fLoadTypes, level); + TypeHandle th = TypeHandle(CoreLibBinder::GetElementType(valueType)); + thRet = ClassLoader::LoadConstValueTypeThrowing(th, value, typ, fLoadTypes, level); #else DacNotImpl(); thRet = TypeHandle(); From 7044cc776beccfbd174f512387f1a565a4435a2e Mon Sep 17 00:00:00 2001 From: Steven He Date: Wed, 23 Aug 2023 19:12:56 +0900 Subject: [PATCH 79/80] Support const generic type to be used in a field --- src/coreclr/utilcode/util.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/coreclr/utilcode/util.cpp b/src/coreclr/utilcode/util.cpp index 5d1c43d15d60d..a8ae65f6cabd3 100644 --- a/src/coreclr/utilcode/util.cpp +++ b/src/coreclr/utilcode/util.cpp @@ -1773,6 +1773,18 @@ HRESULT validateOneArg( //@todo GENERICS: check that index is in range break; + case ELEMENT_TYPE_CTARG: + { + CorElementType argType; + uint32_t argCb; + PCCOR_SIGNATURE argSig; + if (FAILED(pSig->GetConstTypeArg(&argType, &argCb, &argSig))) + { + IfFailGo(VLDTR_E_SIG_BADELTYPE); + } + } + break; + case ELEMENT_TYPE_GENERICINST: // Validate the generic type. IfFailGo(validateOneArg(tk, pSig, pulNSentinels, pImport, TRUE)); From 5d3da96c37b1f88a27fb4b0563944ec212f4e6e2 Mon Sep 17 00:00:00 2001 From: Steven He Date: Tue, 19 Sep 2023 17:36:38 +0900 Subject: [PATCH 80/80] Emit type of type parameter in generic constraint table --- src/coreclr/ildasm/dasm.cpp | 23 +++++- src/coreclr/inc/corhdr.h | 1 + src/coreclr/inc/metamodelpub.h | 77 ++++---------------- src/coreclr/md/compiler/emit.cpp | 40 +++++----- src/coreclr/md/compiler/import.cpp | 16 +++- src/coreclr/md/enc/mdinternalrw.cpp | 16 +++- src/coreclr/md/enc/metamodelrw.cpp | 6 +- src/coreclr/md/inc/metamodel.h | 16 +--- src/coreclr/md/runtime/mdinternalro.cpp | 16 +++- src/coreclr/md/runtime/metamodel.cpp | 27 ++----- src/coreclr/md/runtime/metamodelcolumndefs.h | 16 +--- src/coreclr/vm/siginfo.cpp | 13 +++- src/coreclr/vm/typedesc.cpp | 31 +++++++- 13 files changed, 160 insertions(+), 138 deletions(-) diff --git a/src/coreclr/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp index 34f62c5711261..12ecf12776be3 100644 --- a/src/coreclr/ildasm/dasm.cpp +++ b/src/coreclr/ildasm/dasm.cpp @@ -3099,21 +3099,36 @@ char *DumpGenericPars(_Inout_updates_(SZSTRING_SIZE) char* szString, mdToken tok { CQuickBytes out; mdToken tkConstrType,tkOwner; - szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"("); DWORD ix; + BOOL first = true, hasLiteralTypeParameter = false; for (ix=0; ixGetGenericParamConstraintProps(tkConstr[ix], &tkOwner, &tkConstrType))) return NULL; - - if(ix) szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),", "); + if (TypeFromToken(tkConstrType) == mdtGenericParamType) + { + hasLiteralTypeParameter = true; + continue; + } + if(first) + { + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"("); + first = false; + } + else + { + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),", "); + } CHECK_REMAINING_SIZE; out.Shrink(0); szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),"%s",PrettyPrintClass(&out,tkConstrType,g_pImport)); CHECK_REMAINING_SIZE; } if(ix < NumConstrs) break; - szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),") "); + if (!hasLiteralTypeParameter || NumConstrs > 1) + { + szptr += sprintf_s(szptr,SZSTRING_REMAINING_SIZE(szptr),") "); + } CHECK_REMAINING_SIZE; } // re-get name, wzUniBuf may not contain it any more diff --git a/src/coreclr/inc/corhdr.h b/src/coreclr/inc/corhdr.h index 3d98d2df451b7..22ec94a658ccd 100644 --- a/src/coreclr/inc/corhdr.h +++ b/src/coreclr/inc/corhdr.h @@ -1504,6 +1504,7 @@ typedef enum CorTokenType mdtGenericParam = 0x2a000000, // mdtMethodSpec = 0x2b000000, // mdtGenericParamConstraint = 0x2c000000, + mdtGenericParamType = 0x2d000000, // mdtString = 0x70000000, // mdtName = 0x71000000, // diff --git a/src/coreclr/inc/metamodelpub.h b/src/coreclr/inc/metamodelpub.h index 6f4894bc13d81..8022ab10bd715 100644 --- a/src/coreclr/inc/metamodelpub.h +++ b/src/coreclr/inc/metamodelpub.h @@ -1401,54 +1401,8 @@ class NestedClassRec // Generics - class GenericParamRec { -METADATA_FIELDS_PROTECTION: - USHORT m_Number; // index; zero = first var - USHORT m_Flags; // index; zero = first var -public: - enum { - - COL_Number, // index; zero = first var - COL_Flags, // flags, for future use - COL_Owner, // typeDef/methodDef - COL_Name, // Purely descriptive, not used for binding purposes - COL_Type, - COL_COUNT, - COL_KEY = COL_Owner - }; - - USHORT GetNumber() - { - LIMITED_METHOD_CONTRACT; - - return GET_UNALIGNED_VAL16(&m_Number); - } - void SetNumber(USHORT Number) - { - LIMITED_METHOD_CONTRACT; - - m_Number = VAL16(Number); - } - - USHORT GetFlags() - { - LIMITED_METHOD_CONTRACT; - - return GET_UNALIGNED_VAL16(&m_Flags); - } - void SetFlags(USHORT Flags) - { - LIMITED_METHOD_CONTRACT; - - m_Flags = VAL16(Flags); - } -}; - -// this definition is for reading the old GenericParamRec from a v2.0 assembly. -class GenericParamV2_0Rec -{ METADATA_FIELDS_PROTECTION: USHORT m_Number; // index; zero = first var USHORT m_Flags; // index; zero = first var @@ -1554,7 +1508,7 @@ class GenericParamConstraintRec enum { COL_Owner, // GenericParam - COL_Constraint, // typeDef/Ref/Spec + COL_Constraint, // typeDef/Ref/Spec, can be masked by genericParamTypeMask COL_COUNT, COL_KEY = COL_Owner }; @@ -1774,20 +1728,21 @@ enum { #undef MiniMdTable // List of MiniMd coded token types. -#define MiniMdCodedTokens() \ - MiniMdCodedToken(TypeDefOrRef) \ - MiniMdCodedToken(HasConstant) \ - MiniMdCodedToken(HasCustomAttribute) \ - MiniMdCodedToken(HasFieldMarshal) \ - MiniMdCodedToken(HasDeclSecurity) \ - MiniMdCodedToken(MemberRefParent) \ - MiniMdCodedToken(HasSemantic) \ - MiniMdCodedToken(MethodDefOrRef) \ - MiniMdCodedToken(MemberForwarded) \ - MiniMdCodedToken(Implementation) \ - MiniMdCodedToken(CustomAttributeType) \ - MiniMdCodedToken(ResolutionScope) \ - MiniMdCodedToken(TypeOrMethodDef) \ +#define MiniMdCodedTokens() \ + MiniMdCodedToken(TypeDefOrRef) \ + MiniMdCodedToken(TypeDefOrRefOrGpType) \ + MiniMdCodedToken(HasConstant) \ + MiniMdCodedToken(HasCustomAttribute) \ + MiniMdCodedToken(HasFieldMarshal) \ + MiniMdCodedToken(HasDeclSecurity) \ + MiniMdCodedToken(MemberRefParent) \ + MiniMdCodedToken(HasSemantic) \ + MiniMdCodedToken(MethodDefOrRef) \ + MiniMdCodedToken(MemberForwarded) \ + MiniMdCodedToken(Implementation) \ + MiniMdCodedToken(CustomAttributeType) \ + MiniMdCodedToken(ResolutionScope) \ + MiniMdCodedToken(TypeOrMethodDef) \ #undef MiniMdCodedToken #define MiniMdCodedToken(x) CDTKN_##x, diff --git a/src/coreclr/md/compiler/emit.cpp b/src/coreclr/md/compiler/emit.cpp index 8bf2d04957dee..fa4c51310c965 100644 --- a/src/coreclr/md/compiler/emit.cpp +++ b/src/coreclr/md/compiler/emit.cpp @@ -1657,8 +1657,6 @@ STDMETHODIMP RegMeta::DefineGenericParam( // S_OK or error. // See if this version of the metadata can do Generics if (!m_pStgdb->m_MiniMd.SupportsGenerics()) IfFailGo(CLDB_E_INCOMPATIBLE); - if (!m_pStgdb->m_MiniMd.SupportsConstGenerics()) - IfFailGo(CLDB_E_INCOMPATIBLE); if ((tkOwnerType == mdtTypeDef) || (tkOwnerType == mdtMethodDef)) { @@ -1740,10 +1738,6 @@ STDMETHODIMP RegMeta::SetGenericParamProps( // S_OK or error. if (!m_pStgdb->m_MiniMd.SupportsGenerics()) IfFailGo(CLDB_E_INCOMPATIBLE); - // See if this version of the metadata can do Const Generics - if (!m_pStgdb->m_MiniMd.SupportsConstGenerics()) - IfFailGo(CLDB_E_INCOMPATIBLE); - if (TypeFromToken(gp) == mdtGenericParam) { GenericParamRec *pGenericParam; @@ -1782,19 +1776,15 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. if ((szName != NULL) && (*szName != 0)) IfFailGo(m_pStgdb->m_MiniMd.PutStringW(TBL_GenericParam, GenericParamRec::COL_Name, pGenericParam, szName)); - // If there is a type, set it - if (tkType != NULL) - IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParam, GenericParamRec::COL_Type, - pGenericParam, tkType)); // If there are new flags, set them. if (dwParamFlags != (DWORD) -1) pGenericParam->SetFlags((USHORT)dwParamFlags); - // If there is a new array of constraints, apply it. - if (rtkConstraints != NULL) + // If there is a type or a new array of constraints, apply it. + if (rtkConstraints != NULL || RidFromToken(tkType) != 0) { - //Clear existing constraints + //Clear existing type and constraints GenericParamConstraintRec* pGPCRec; RID ridGPC; RID rid; @@ -1812,19 +1802,35 @@ HRESULT RegMeta::_SetGenericParamProps( // S_OK or error. IfFailGo(UpdateENCLog(TokenFromRid(ridGPC,mdtGenericParamConstraint))); } - //Emit new constraints - mdToken* ptk; - for (ptk = rtkConstraints; (ptk != NULL)&&(RidFromToken(*ptk)!=0); ptk++) + if (RidFromToken(tkType) != 0) { + //Emit type IfFailGo(m_pStgdb->m_MiniMd.AddGenericParamConstraintRecord(&pGPCRec, &ridGPC)); IfFailGo(m_pStgdb->m_MiniMd.PutCol(TBL_GenericParamConstraint, GenericParamConstraintRec::COL_Owner, pGPCRec, RidFromToken(tkGP))); IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParamConstraint, GenericParamConstraintRec::COL_Constraint, - pGPCRec, *ptk)); + pGPCRec, (tkType & ~mdtTypeSpec) | mdtGenericParamType)); IfFailGo(UpdateENCLog(TokenFromRid(ridGPC,mdtGenericParamConstraint))); } + + if (rtkConstraints != NULL) + { + //Emit new constraints + mdToken* ptk; + for (ptk = rtkConstraints; (ptk != NULL)&&(RidFromToken(*ptk)!=0); ptk++) + { + IfFailGo(m_pStgdb->m_MiniMd.AddGenericParamConstraintRecord(&pGPCRec, &ridGPC)); + IfFailGo(m_pStgdb->m_MiniMd.PutCol(TBL_GenericParamConstraint, + GenericParamConstraintRec::COL_Owner, + pGPCRec, RidFromToken(tkGP))); + IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_GenericParamConstraint, + GenericParamConstraintRec::COL_Constraint, + pGPCRec, *ptk)); + IfFailGo(UpdateENCLog(TokenFromRid(ridGPC,mdtGenericParamConstraint))); + } + } } } else diff --git a/src/coreclr/md/compiler/import.cpp b/src/coreclr/md/compiler/import.cpp index 92ebc19e7c05a..3b0d8dc2f43cd 100644 --- a/src/coreclr/md/compiler/import.cpp +++ b/src/coreclr/md/compiler/import.cpp @@ -2847,7 +2847,21 @@ HRESULT RegMeta::GetGenericParamProps( // S_OK or error. if (ptOwner) *ptOwner = pMiniMd->getOwnerOfGenericParam(pGenericParamRec); if (ptType) - *ptType = pMiniMd->SupportsConstGenerics() ? pMiniMd->getTypeOfGenericParam(pGenericParamRec) : NULL; + { + *ptType = NULL; + RID rid; + IfFailGo(pMiniMd->getGenericParamConstraintsForGenericParam(RidFromToken(rd), NULL, &rid)); + if (rid != 0) + { + GenericParamConstraintRec* gpcRec; + IfFailGo(pMiniMd->GetGenericParamConstraintRecord(rid, &gpcRec)); + mdToken tkType = pMiniMd->getConstraintOfGenericParamConstraint(gpcRec); + if (!IsNilToken(tkType) && (TypeFromToken(tkType) == mdtGenericParamType)) + { + *ptType = (tkType & ~mdtGenericParamType) | mdtTypeSpec; + } + } + } // This call has to be last to set 'hr', so CLDB_S_TRUNCATION is not rewritten with S_OK if (pchName || szName) IfFailGo(pMiniMd->getNameOfGenericParam(pGenericParamRec, szName, cchName, pchName)); diff --git a/src/coreclr/md/enc/mdinternalrw.cpp b/src/coreclr/md/enc/mdinternalrw.cpp index 3150f7b50116f..fb9bf75df1883 100644 --- a/src/coreclr/md/enc/mdinternalrw.cpp +++ b/src/coreclr/md/enc/mdinternalrw.cpp @@ -3261,7 +3261,21 @@ HRESULT MDInternalRW::GetGenericParamProps( // S_OK or error. if (ptOwner) *ptOwner = m_pStgdb->m_MiniMd.getOwnerOfGenericParam(pGenericParamRec); if (ptType) - *ptType = m_pStgdb->m_MiniMd.SupportsConstGenerics() ? m_pStgdb->m_MiniMd.getTypeOfGenericParam(pGenericParamRec) : NULL; + { + *ptType = NULL; + RID rid; + IfFailGo(m_pStgdb->m_MiniMd.getGenericParamConstraintsForGenericParam(RidFromToken(rd), NULL, &rid)); + if (rid != 0) + { + GenericParamConstraintRec* gpcRec; + IfFailGo(m_pStgdb->m_MiniMd.GetGenericParamConstraintRecord(rid, &gpcRec)); + mdToken tkType = m_pStgdb->m_MiniMd.getConstraintOfGenericParamConstraint(gpcRec); + if (!IsNilToken(tkType) && (TypeFromToken(tkType) == mdtGenericParamType)) + { + *ptType = (tkType & ~mdtGenericParamType) | mdtTypeSpec; + } + } + } if (szName != NULL) { IfFailGo(m_pStgdb->m_MiniMd.getNameOfGenericParam(pGenericParamRec, szName)); diff --git a/src/coreclr/md/enc/metamodelrw.cpp b/src/coreclr/md/enc/metamodelrw.cpp index ff01a4dc30aed..dab95f1b1df42 100644 --- a/src/coreclr/md/enc/metamodelrw.cpp +++ b/src/coreclr/md/enc/metamodelrw.cpp @@ -310,10 +310,14 @@ ULONG CMiniMdRW::GetTableForToken( // Table index, or -1. mdToken tkn) // Token to find. { ULONG type = TypeFromToken(tkn); - // Get the type -- if a string, no associated table. if (type >= mdtString) return (ULONG) -1; + // Type of generic param is TypeSpec + if (type == mdtGenericParamType) + { + type = mdtTypeSpec; + } // Table number is same as high-byte of token. ULONG ixTbl = type >> 24; // Make sure. diff --git a/src/coreclr/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h index b5efced1692ba..6b8e5978a8ce7 100644 --- a/src/coreclr/md/inc/metamodel.h +++ b/src/coreclr/md/inc/metamodel.h @@ -37,10 +37,7 @@ #define METAMODEL_MAJOR_VER_V2_0 2 // Major version for v2.0 #define METAMODEL_MINOR_VER_V2_0 0 // Minor version for v2.0 -#define METAMODEL_MAJOR_VER_V3_0 3 // Major version for v3.0 -#define METAMODEL_MINOR_VER_V3_0 0 // Minor version for v3.0 - -#define METAMODEL_MAJOR_VER 3 +#define METAMODEL_MAJOR_VER 2 #define METAMODEL_MINOR_VER 0 // Metadata version number up through Whidbey Beta2 @@ -558,6 +555,7 @@ class CMiniMdBase : public IMetaModelCommonRO // use that value to index into an array of token types. //***************************************************************************** static const mdToken mdtTypeDefOrRef[3]; + static const mdToken mdtTypeDefOrRefOrGpType[4]; static const mdToken mdtHasConstant[3]; static const mdToken mdtHasCustomAttribute[24]; static const mdToken mdtHasFieldMarshal[2]; @@ -1981,7 +1979,6 @@ template class CMiniMdTemplate : public CMiniMdBase USHORT _GETFLD(GenericParam,Flags); mdToken _GETCDTKN(GenericParam,Owner,mdtTypeOrMethodDef); _GETSTR(GenericParam,Name); - mdToken _GETCDTKN(GenericParam,Type,mdtTypeDefOrRef) __checkReturn HRESULT getGenericParamConstraintsForGenericParam(RID rid, RID *pEnd, RID *pFoundRid) @@ -1999,7 +1996,7 @@ template class CMiniMdTemplate : public CMiniMdBase //GenericParamConstraintRec mdToken _GETTKN(GenericParamConstraint,Owner,mdtGenericParam); - mdToken _GETCDTKN(GenericParamConstraint,Constraint,mdtTypeDefOrRef); + mdToken _GETCDTKN(GenericParamConstraint,Constraint,mdtTypeDefOrRefOrGpType); BOOL SupportsGenerics() { @@ -2007,13 +2004,6 @@ template class CMiniMdTemplate : public CMiniMdBase return (m_Schema.m_major >= METAMODEL_MAJOR_VER_V2_0 || (m_Schema.m_major == METAMODEL_MAJOR_VER_B1 && m_Schema.m_minor == METAMODEL_MINOR_VER_B1)); }// SupportGenerics - - BOOL SupportsConstGenerics() - { - // Only 3.0 of the metadata support const generics - return (m_Schema.m_major >= METAMODEL_MAJOR_VER_V3_0 || - (m_Schema.m_major == METAMODEL_MAJOR_VER_V3_0 && m_Schema.m_minor >= METAMODEL_MINOR_VER_V3_0)); - }// SupportsConstGenerics protected: //***************************************************************************** diff --git a/src/coreclr/md/runtime/mdinternalro.cpp b/src/coreclr/md/runtime/mdinternalro.cpp index ff02a6620cc14..0e42e27706ebc 100644 --- a/src/coreclr/md/runtime/mdinternalro.cpp +++ b/src/coreclr/md/runtime/mdinternalro.cpp @@ -2489,7 +2489,21 @@ HRESULT MDInternalRO::GetGenericParamProps( // S_OK or error. if (ptOwner) *ptOwner = m_LiteWeightStgdb.m_MiniMd.getOwnerOfGenericParam(pGenericParamRec); if (ptType) - *ptType = m_LiteWeightStgdb.m_MiniMd.SupportsConstGenerics() ? m_LiteWeightStgdb.m_MiniMd.getTypeOfGenericParam(pGenericParamRec) : NULL; + { + *ptType = NULL; + RID rid; + IfFailGo(m_LiteWeightStgdb.m_MiniMd.getGenericParamConstraintsForGenericParam(RidFromToken(rd), NULL, &rid)); + if (rid != 0) + { + GenericParamConstraintRec* gpcRec; + IfFailGo(m_LiteWeightStgdb.m_MiniMd.GetGenericParamConstraintRecord(rid, &gpcRec)); + mdToken tkType = m_LiteWeightStgdb.m_MiniMd.getConstraintOfGenericParamConstraint(gpcRec); + if (!IsNilToken(tkType) && (TypeFromToken(tkType) == mdtGenericParamType)) + { + *ptType = (tkType & ~mdtGenericParamType) | mdtTypeSpec; + } + } + } if (szName != NULL) { IfFailGo(m_LiteWeightStgdb.m_MiniMd.getNameOfGenericParam(pGenericParamRec, szName)); diff --git a/src/coreclr/md/runtime/metamodel.cpp b/src/coreclr/md/runtime/metamodel.cpp index 0150ece16099a..80deb518ae308 100644 --- a/src/coreclr/md/runtime/metamodel.cpp +++ b/src/coreclr/md/runtime/metamodel.cpp @@ -108,8 +108,6 @@ const CMiniTableDefEx g_Tables[TBL_COUNT] = { // Define a table descriptor for the obsolete v1.0 GenericParam table definition. const CMiniTableDefEx g_Table_GenericParamV1_1 = { { rGenericParamV1_1Cols, ARRAY_SIZE(rGenericParamV1_1Cols), GenericParamV1_1Rec::COL_KEY, 0 }, rGenericParamV1_1ColNames, "GenericParamV1_"}; -const CMiniTableDefEx g_Table_GenericParamV2_0 = { { rGenericParamV2_0Cols, ARRAY_SIZE(rGenericParamV2_0Cols), GenericParamV2_0Rec::COL_KEY, 0 }, rGenericParamV2_0ColNames, "GenericParamV2_0"}; - // Define the array of Ptr Tables. This is initialized to TBL_COUNT here. // The correct values will be set in the constructor for MiniMdRW. @@ -323,6 +321,13 @@ const mdToken CMiniMdBase::mdtTypeDefOrRef[3] = { mdtTypeSpec }; +const mdToken CMiniMdBase::mdtTypeDefOrRefOrGpType[4] = { + mdtTypeDef, + mdtTypeRef, + mdtTypeSpec, + mdtGenericParamType +}; + // This array needs to be ordered the same as the source tables are processed (currently // {field, param, property}) for binary search. const mdToken CMiniMdBase::mdtHasConstant[3] = { @@ -567,13 +572,6 @@ CMiniMdBase::SchemaPopulate( m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV1_1.m_Def; m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); } - else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && - (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0)) - { - // 2.0 had a different type of GenericParam table - m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV2_0.m_Def; - m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); - } else { // We don't support this version of the metadata Debug_ReportError("Unsupported version of MetaData."); @@ -620,13 +618,6 @@ CMiniMdBase::SchemaPopulate( m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV1_1.m_Def; m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); } - else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && - (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0)) - { - // 2.0 had a different type of GenericParam table - m_TableDefs[TBL_GenericParam] = g_Table_GenericParamV2_0.m_Def; - m_TableDefs[TBL_GenericParam].m_pColDefs = BYTEARRAY_TO_COLDES(s_GenericParamCol); - } // Is it a supported old version? This should never fail! else { @@ -715,10 +706,6 @@ CMiniMdBase::GetTableDefTemplate( { pTemplate = &g_Table_GenericParamV1_1.m_Def; } - else if ((m_Schema.m_major == METAMODEL_MAJOR_VER_V2_0) && (m_Schema.m_minor == METAMODEL_MINOR_VER_V2_0) && (ixTbl == TBL_GenericParam)) - { - pTemplate = &g_Table_GenericParamV2_0.m_Def; - } else { pTemplate = &g_Tables[ixTbl].m_Def; diff --git a/src/coreclr/md/runtime/metamodelcolumndefs.h b/src/coreclr/md/runtime/metamodelcolumndefs.h index b494c11335fbc..06ed976745a60 100644 --- a/src/coreclr/md/runtime/metamodelcolumndefs.h +++ b/src/coreclr/md/runtime/metamodelcolumndefs.h @@ -7,11 +7,9 @@ // //***************************************************************************** -#if METAMODEL_MAJOR_VER != 3 #if METAMODEL_MAJOR_VER != 2 #if METAMODEL_MAJOR_VER != 1 -#error "METAMODEL_MAJOR_VER other than 1, 2 or 3 is not implemented" -#endif +#error "METAMODEL_MAJOR_VER other than 1 or 2 is not implemented" #endif #endif // @@ -370,16 +368,6 @@ SCHEMA_ITEM(GenericParam, USHORT, Flags) SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) SCHEMA_ITEM_STRING(GenericParam, Name) - SCHEMA_ITEM_CDTKN(GenericParam, Type, TypeDefOrRef) - SCHEMA_TABLE_END(GenericParam) - - //------------------------------------------------------------------------- - // Transitional table for Metadata v2.0 for GenericParam - SCHEMA_TABLE_START(GenericParamV2_0) - SCHEMA_ITEM(GenericParam, USHORT, Number) - SCHEMA_ITEM(GenericParam, USHORT, Flags) - SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) - SCHEMA_ITEM_STRING(GenericParam, Name) SCHEMA_TABLE_END(GenericParam) //------------------------------------------------------------------------- @@ -406,7 +394,7 @@ // GenericParamConstraint SCHEMA_TABLE_START(GenericParamConstraint) SCHEMA_ITEM_RID(GenericParamConstraint, Owner, GenericParam) - SCHEMA_ITEM_CDTKN(GenericParamConstraint, Constraint, TypeDefOrRef) + SCHEMA_ITEM_CDTKN(GenericParamConstraint, Constraint, TypeDefOrRefOrGpType) SCHEMA_TABLE_END(GenericParamConstraint) #ifdef FEATURE_METADATA_EMIT_PORTABLE_PDB diff --git a/src/coreclr/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp index 46241cbe769fc..6ce2617645659 100644 --- a/src/coreclr/vm/siginfo.cpp +++ b/src/coreclr/vm/siginfo.cpp @@ -4824,11 +4824,12 @@ BOOL MetaSig::CompareVariableConstraints(const Substitution *pSubst1, IMDInternalImport *pInternalImport2 = pModule2->GetMDImport(); DWORD specialConstraints1,specialConstraints2; + mdToken type1, type2; // check special constraints { - IfFailThrow(pInternalImport1->GetGenericParamProps(tok1, NULL, &specialConstraints1, NULL, NULL, NULL)); - IfFailThrow(pInternalImport2->GetGenericParamProps(tok2, NULL, &specialConstraints2, NULL, NULL, NULL)); + IfFailThrow(pInternalImport1->GetGenericParamProps(tok1, NULL, &specialConstraints1, NULL, &type1, NULL)); + IfFailThrow(pInternalImport2->GetGenericParamProps(tok2, NULL, &specialConstraints2, NULL, &type2, NULL)); specialConstraints1 = specialConstraints1 & gpSpecialConstraintMask; specialConstraints2 = specialConstraints2 & gpSpecialConstraintMask; @@ -4852,6 +4853,10 @@ BOOL MetaSig::CompareVariableConstraints(const Substitution *pSubst1, if ((specialConstraints2 & gpAcceptByRefLike) == 0) return FALSE; } + if (type1 != type2) + { + return FALSE; + } } @@ -4864,6 +4869,10 @@ BOOL MetaSig::CompareVariableConstraints(const Substitution *pSubst1, mdToken tkConstraintType1, tkParam1; IfFailThrow(pInternalImport1->GetGenericParamConstraintProps(tkConstraint1, &tkParam1, &tkConstraintType1)); _ASSERTE(tkParam1 == tok1); + if (TypeFromToken(tkConstraintType1) == mdtGenericParamType) + { + continue; + } // for each non-object constraint, // and, in the case of a notNullableValueType, each non-ValueType constraint, diff --git a/src/coreclr/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp index 00e8afac51362..994d041ca6885 100644 --- a/src/coreclr/vm/typedesc.cpp +++ b/src/coreclr/vm/typedesc.cpp @@ -886,8 +886,7 @@ void TypeVarTypeDesc::LoadConstraints(ClassLoadLevel level /* = CLASS_LOADED */) { LoaderAllocator* pAllocator = GetModule()->GetLoaderAllocator(); // If there is a single class constraint we place it at index 0 of the array - AllocMemHolder constraints - (pAllocator->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(numConstraints) * S_SIZE_T(sizeof(TypeHandle)))); + AllocMemHolder constraints; DWORD i = 0; while (pInternalImport->EnumNext(&hEnum, &tkConstraint)) @@ -898,6 +897,21 @@ void TypeVarTypeDesc::LoadConstraints(ClassLoadLevel level /* = CLASS_LOADED */) { GetModule()->GetAssembly()->ThrowTypeLoadException(pInternalImport, pMT->GetCl(), IDS_CLASSLOAD_BADFORMAT); } + + if (i == 0) + { + // The first entry may be the type of type parameter, we need to skip it + if (TypeFromToken(tkConstraintType) == mdtGenericParamType) + { + numConstraints--; + continue; + } + else + { + constraints = (pAllocator->GetLowFrequencyHeap()->AllocMem(S_SIZE_T(numConstraints) * S_SIZE_T(sizeof(TypeHandle)))); + } + } + _ASSERTE(tkParam == GetToken()); TypeHandle thConstraint = ClassLoader::LoadTypeDefOrRefOrSpecThrowing(GetModule(), tkConstraintType, &typeContext, @@ -1126,6 +1140,10 @@ TypeHandle LoadTypeVarConstraint(TypeVarTypeDesc *pTypeVar, mdGenericParamConstr ClassLoader::LoadTypes, CLASS_DEPENDENCIES_LOADED, FALSE, pInstContext->m_pSubstChain); } + else if (TypeFromToken(tkConstraintType) == mdtGenericParamType) + { + return TypeHandle(); + } else { LoadConstraintOnOpenType: @@ -1390,7 +1408,11 @@ void GatherConstraintsRecursive(TypeVarTypeDesc *pTyArg, ArrayList *pArgList, co { TypeHandle thConstraint = LoadTypeVarConstraint(pTyArg, tkConstraint, pInstContext); - if (thConstraint.IsGenericVariable()) + if (thConstraint.IsNull()) + { + continue; + } + else if (thConstraint.IsGenericVariable()) { // see if it's safe to recursively call ourselves if (!TypeHandleList::Exists(pVisitedVars, thConstraint)) @@ -1578,6 +1600,9 @@ BOOL TypeVarTypeDesc::SatisfiesConstraints(SigTypeContext *pTypeContextOfConstra mdToken tkConstraintType, tkParam; IfFailThrow(pInternalImport->GetGenericParamConstraintProps(tkConstraint, &tkParam, &tkConstraintType)); + if (TypeFromToken(tkConstraintType) == mdtGenericParamType) + continue; + _ASSERTE(tkParam == GetToken()); TypeHandle thConstraint = ClassLoader::LoadTypeDefOrRefOrSpecThrowing(GetModule(), tkConstraintType,